Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und.

Ähnliche Präsentationen


Präsentation zum Thema: "1 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und."—  Präsentation transkript:

1 1 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de BEEP The Blocks Extensible Exchange Protocol Core KM-/VS-Seminar Wintersemester 2002/2003 Betreuer:Frank Strauß

2 2 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de Übersicht Einleitung Konzeption von BEEP Core Nachrichtaustausch Frame der Nachrichten Sitzungsverwaltung Abbildung auf TCP Implementierung der Konzeption mit Java BEEP Client Server Zusammenfassung

3 3 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 1. Einleitung BEEP – Ein standardisierter Rahmenwerk für Internet- Protokoll RFC 3080 und RFC 3081 - Marshall Rose Zielsetzung des BEEPs Verbindungsorientierung, Nachrichtenorientierung, Asynchronisation

4 4 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2. Konzept von BEEP Core BEEP ist ein Anwendungsprotokoll nach dem Peer-to-Peer- Prinzip. Funktionalitäten von BEEP: Trennen einer Nachricht von der Nächsten (Frame), Kodierung der Nachrichten, Unterstützung mehrfacher logischer Kommunikationskanäle, Berichten über Störungen, Aushandlung von Verschlüsselungsparametern, Aushandlung von Authentisierungsparametern.

5 5 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.1 Nachrichtaustausch Rolle Listening-Rolle – auf eine eingehende Verbindung wartet. Initiating-Rolle – eine Verbindung zum Listener erstellen will. Client und Server. Austauscharten message/reply message/error message/answer

6 6 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.2 Frame der Nachrichten Die BEEP-Nachrichten sind in der Regel durch MIME [8] strukturiert. Text oder binärer Code. Beschreibung der Inhalttypen durch MIME-Kopf - entity- headers. Defaultwerte: Content-Type - application/octet-stream, Content-Transfer-Encoding - binary. Beschreibung der Nachrichten durch XML.

7 7 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.2 Frame der Nachrichten Syntax eines BEEP-Frames frame header message frame payloadtrailer type header SP channel SP megno SP more SP seqno SP size CR LF payload OCTET frame END CRLF

8 8 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.2 Frame der Nachrichten Kopf eines Frames channel identifiziert, auf welchem Kanal die BEEP-Peers miteinander kommunizieren sollen. msgno identifiziert die Nummern der Nachrichten. more ist ein Fortsetzungsindikator, der entweder mit * oder mit. gekennzeichnet wird. seqno identifiziert die Sequenznummer des ersten Oktetts in der Nutzlast. size kennzeichnet die Anzahl der Oktetts in der Nutzlast eines Frames.

9 9 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.2 Frame der Nachrichten Nutzlast Besteht aus null oder mehren Oktetts, Zugeordnet durch Sequenznummer. Abschluss besteht aus der Zeichenkette END Ein Beispiel C:MSG 0 1. 52 120 C:Content-Type: application/beep+xml C: C:END

10 10 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.3 Sitzungsverwaltung Verteilung der Sitzung in verschiedenen Kanäle Kanal 0 - Verwaltungskanal Regelung durch Profile session. channel 0 (management) channel 1 (profile A) channel n (profile P, Q)

11 11 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.3 Sitzungsverwaltung Nachrichtenelement Nachrichten wird präsentiert durch Nachrichtenelement (XML-Element). Fünf Grundtypen von Nachrichtenelement für Sitzungsverwaltung, Beziehungen zwischen Rolle, Nachrichtenarten und Nachrichtenelement : RolleMEGRPYERR I und Lgreetingerror I oder Lstartprofileerror I oder Lcloseokerror

12 12 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.3 Sitzungsverwaltung Greeting-Nachrichten L:RPY 0 0. 0 110 L:Content-Type: application/beep+xml L: L:END I:RPY 0 0. 0 110 I:Content-Type: application/beep+xml I: I:END Start-Nachrichten C:RPY 0 1. 30 120 C:Content-Type: application/beep+xml C: C:END

13 13 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.3 Sitzungsverwaltung Error-Nachrichten C:RPY 0 2. 390 80 C:Content-Type: application/beep+xml C: C:END S:RPY 0 2. 211 27 S:Content-Type: application/beep+xml S: still working S:END Close-Nachrichten und OK-Nachrichten C:RPY 0 2. 390 80 C:Content-Type: application/beep+xml C: C:END S:RPY 0 2. 210 257 S:Content-Type: application/beep+xml S: S:END

14 14 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.3 Sitzungsverwaltung Profile Ein Profile stellt dar, welche Nachrichten über den Kanal übertragen werden sollen/können. Ein Profile ist durch einen URI identifiziert und regelt die Syntax und Semantik zugelassener Nachrichten. Vordefinierte Profile für: Kanalmanagement, TLS – Transport Layer Security – und Authentisierung.

15 15 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.4 Abbildung auf TCP Sitzungsverwaltung TCP ATCP B CLOSED OPEN-Active OPEN-Passive SYN, … SYN+ACK, … OPEN-Success ESTABLISHED OPEN-Success ESTABLISHED ACK, …...... …, BEEP Peer ABEEP Peer B InitiatorListener RECEIVE ( ) SEND ( ) RECEIVE ( ) CLOSE …, FIN, …CLOSING CLOSE ACK, … FIN, …TERMINATE ACK, … CLOSED

16 16 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 2.4 Abbildung auf TCP Nachrichtenaustausch TCP ATCP B ESTABLISHED SEND ( ) RECEIVE ( ) …,...... BEEP Peer ABEEP Peer B ClientServer …, RECEIVE ( )...... initial channel 1 successful SEND ( ) RECEIVE ( ) …, RECEIVE ( ) initial channel 2 unsuccessful SEND ( ) RECEIVE ( ) …, RECEIVE ( ) SEND ( ) …, RECEIVE ( ) search person RECEIVE ( ) …,......

17 17 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 3. Implementierung der Konzeption mit Java BEEP Bestandteil der BEEP Konzeption – Klassenabstraktion Session... startChannel() firedChannelClose() firedChannelStarted() firedChannelReceived() sendProfile()... Channel... sendMSG() getProfile() getSession()... -zero -session Message... getChannel() getMsgno() getAnsno() sendMSG() sendRPY() sendANS() sendERR() sendNUL()... channel Reply... getNextReply() hasNext() receiveRPY() receiveERR() receiveANS() receiveNUL() TLSProfile... Init()... Profile Init()

18 18 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 3. Implementierung der Konzeption mit Java BEEP Client import org.beepcore.beep.core.*; import org.beepcore.lib.Reply; import org.beepcore.transport.tcp.*;... public static void main (String args[]) { Session session; try { session = AutomatedTCPSessionCreator.initiate( "dragon", 8888, new ProfileRegistry()); } catch (BEEPException e) { // exception handling } Channel channel; try { channel = session.startChannel( "http://ibr.cs.tu-bs.de/fangming/ADDRESSBOOK"); //profile uri } catch (BEEPError e) { // catch and deal with errors System.out.print("error code: "+ e.getCode()); } catch (BEEPException e) { // catch lower level exceptions } String message = " "+ " Fangming " + " 0049-531-2145611 "+ " "; ByteDataStream msgst = new ByteDataStream( request.getByes("utf-16")); msgst.setContentType("text/xml"); msgst.setTransferEncoding("utf-16"); Reply reply = new Reply(); channel.sendMSG(msgst, reply); while (true) { Message repmsg = reply.getNextReply(); DataStream ds = repmsg.getDataStream(); InputStream is = ds.getInputStream(); // the reply is a stream, not a string byte inputbuf[]=new byte[256]; int inputlen; String reptxt; while (ds.isComplete() == false || is.available() > 0) { inputlen = is.read(inputbuf); if (inputlen > 0) { reptxt = reptxt.concat(new String(inputbuf, 0, inputlen, "utf-16"); } System.out.println("got back:" +reptxt); Thread.currentThread.sleep(6000); } // end while } // end main

19 19 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 3. Implementierung der Konzeption mit Java BEEP Server public class AddressbookProfile implements Profile, StartChannelListener, MessageListener {... public StartChannelListener init(String uri, ProfileConfiguration config) throws BEEPException { return this; } public void startChannel( Channel channel, String encoding, String data) throws StartChannelException { channel.setDataListener(this); } public void closeChannel(Channel channel) throws CloseChannelException { channel.setDataListener(null); } public void receiveMSG(Message message) throws BEEPError, AbortChannelException { DataStream ds = message.getDataStream(); AddressbookEntry newentry; String replytxt = ""; DataStream reply=new ByteDataStream( replytxt.getBytes("utf-16")); reply.setContentType("text/xml"); try { message.sendRPY(reply); } catch (BEEPException e) { // exception handling }... } // end class AddressbookProfile

20 20 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und Rechnerverbund http://www.tu-bs.de http://www.ibr.cs.tu-bs.dehttp://www.tu-bs.dehttp://www.ibr.cs.tu-bs.de 4. Zusammenfassung BEEP ist ein verbindungsorientiertes Protokoll und unterstützt die asynchrone Interaktion. Die ausgetauschten Daten werden mit XML kodiert. BEEP hat die Fähigkeit von Peer-to-Peer, Client-to-Server oder Server-to-Server. Der Missbrauch von HTTP für Anwendungsprotokolle kann durch BEEP elegant abgelöst werden.


Herunterladen ppt "1 BEEP – The Blocks Extensible Exchange Protocol Fangming Xu TECHNISCHE UNIVERSITÄT ZU BRAUNSCHWEIG CAROLO-WILHELMINA Institut für Betriebssysteme und."

Ähnliche Präsentationen


Google-Anzeigen