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 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 Ü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 1. Einleitung BEEP – Ein standardisierter Rahmenwerk für Internet- Protokoll RFC 3080 und RFC 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 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 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 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 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 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 Frame der Nachrichten Nutzlast Besteht aus null oder mehren Oktetts, Zugeordnet durch Sequenznummer. Abschluss besteht aus der Zeichenkette END Ein Beispiel C:MSG 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 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 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 Sitzungsverwaltung Greeting-Nachrichten L:RPY L:Content-Type: application/beep+xml L: L:END I:RPY I:Content-Type: application/beep+xml I: I:END Start-Nachrichten C:RPY 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 Sitzungsverwaltung Error-Nachrichten C:RPY C:Content-Type: application/beep+xml C: C:END S:RPY S:Content-Type: application/beep+xml S: still working S:END Close-Nachrichten und OK-Nachrichten C:RPY C:Content-Type: application/beep+xml C: C:END S:RPY 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 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 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 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 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 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 " + " "+ " "; 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 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 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