28
Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen XMPP: Extensible Messaging and Presence Protocol (aka Jabber) Lukas Kolbe <[email protected]> 5. Dezember 2005 Lukas Kolbe XMPP: Extensible Messaging and Presence Protocol

XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

XMPP:Extensible Messaging and Presence Protocol

(aka Jabber)

Lukas Kolbe<[email protected]>

5. Dezember 2005

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 2: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

EinleitungWas ist XMPP?

ArchitekturAllgemeinesKommunikation via XMPP: Streams, Stanzas

Beispielanwendung”Kommunikation eines Objekterkennungssystems”

ImplementierungenServer & Clients

Referenzen

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 3: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Was ist XMPP?

Zitat aus RFC 3920:XMPP is a protocol for streaming XML elements in

order to exchange structured information in close to realtime between any two network endpoints.

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 4: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Allgemeines

... Protokoll?

XMPP spezifiziert

I die Syntax

I die Semantik

I zu großen Teilen ”best practices”

I wie Nachrichten von Client A nach Client B kommen

I Format der Nachrichten (XML)

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 5: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Allgemeines

”... protocol for streaming XML ...”

I XML als Basis der Kommunikation

I Fokus liegt auf aktuellem Element, nicht dem Dokument

”... change structured information ...”

I z.B. Chatnachrichten, Verfugbarkeitsinformationen

I Datenaustausch intelligenter Systeme

I oder SOAP

I oder RSS oder XML-RPC ...

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 6: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Allgemeines

”... close to real time between any two network endpoints.”

I keine direkte Verbindung zwischen Clients

I Server vermitteln

I Austausch zwischen beliebigen Clients uber Server

I daher ”fast-Echtzeit”

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 7: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Allgemeines

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 8: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Kommunikation via XMPP: Streams, Stanzas

Dokument-zentrisch – Element-zentrisch

XML Dokument ...

I als Ganzes zu verarbeiten

I große bekannt

I kann geoffnet, verarbeitet und gespeichert werden.

... und XML Stream

I einzelne Elemente sind Informationstrager

I XML Namespaces definieren Bedeutung der Elemente

I Dokument vollstandig erst mit Ende des Streams

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 9: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Kommunikation via XMPP: Streams, Stanzas

XML Stanza

I deutsch: etwa ”Absatz”, ”Strophe”

I ein XML-Element inkl. Kind-Nodes

I grundlegende Verarbeitungseinheit in XML Streams

I sind atomar

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 10: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

I 2 fiktive AgentenI Agent 1, in Bielefeld

I erkennt Objekte auf BildernI schickt die Koordinaten zwecks Speicherung und

Veroffentlichung zum Server

I Agent 2, in MunsterI interessiert sich fur Position von ObjektenI wird vom Server benachrichtigt, sobald es neues gibtI bearbeitet die Daten lokal weiter ...

I Realisierung durch eine Erweiterung von XMPP(”Publish-Subscribe”)

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 11: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Initialisierung des Streams: Client Sendet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’to=’techfak.uni-bielefeld.de’>

Server antwortet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’id=’stream1’from=’techfak.uni-bielefeld.de’>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 12: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Initialisierung des Streams: Client Sendet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’to=’techfak.uni-bielefeld.de’>

Server antwortet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’id=’stream1’from=’techfak.uni-bielefeld.de’>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 13: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Initialisierung des Streams: Client Sendet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’to=’techfak.uni-bielefeld.de’>

Server antwortet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’id=’stream1’from=’techfak.uni-bielefeld.de’>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 14: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Initialisierung des Streams: Client Sendet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’to=’techfak.uni-bielefeld.de’>

Server antwortet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’id=’stream1’from=’techfak.uni-bielefeld.de’>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 15: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Initialisierung des Streams: Client Sendet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’to=’techfak.uni-bielefeld.de’>

Server antwortet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’id=’stream1’from=’techfak.uni-bielefeld.de’>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 16: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Initialisierung des Streams: Client Sendet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’to=’techfak.uni-bielefeld.de’>

Server antwortet

<stream:streamxmlns=’jabber:client’xmlns:stream=’http://etherx.jabber.org/streams’version=’1.0’id=’stream1’from=’techfak.uni-bielefeld.de’>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 17: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Agent 1 in Bielefeld veroffentlicht eine Objektposition

<iq type="set" id="publish1"from="[email protected]"to="pubsub.techfak.uni-bielefeld.de"

<pubsub xmlns="http://jabber.org/protocol/pubsub"><publish node="generic/positions"><item>

<position xmlns="http://techfak.../xml-isy/positions"source="http://techfak.../xml-isy/bild1.png">

<shape type="rect"x="23" y="42" width="128" height="256" />

</position></item>

</publish></pubsub>

</iq>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 18: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Agent 1 in Bielefeld veroffentlicht eine Objektposition

<iq type="set" id="publish1"from="[email protected]"to="pubsub.techfak.uni-bielefeld.de"

<pubsub xmlns="http://jabber.org/protocol/pubsub"><publish node="generic/positions"><item>

<position xmlns="http://techfak.../xml-isy/positions"source="http://techfak.../xml-isy/bild1.png">

<shape type="rect"x="23" y="42" width="128" height="256" />

</position></item>

</publish></pubsub>

</iq>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 19: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Agent 1 in Bielefeld veroffentlicht eine Objektposition

<iq type="set" id="publish1"from="[email protected]"to="pubsub.techfak.uni-bielefeld.de"

<pubsub xmlns="http://jabber.org/protocol/pubsub"><publish node="generic/positions"><item>

<position xmlns="http://techfak.../xml-isy/positions"source="http://techfak.../xml-isy/bild1.png">

<shape type="rect"x="23" y="42" width="128" height="256" />

</position></item>

</publish></pubsub>

</iq>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 20: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Antwort des Servers an Agent 1

<iq type="result"from="pubsub.techfak.uni-bielefeld.de"to="[email protected]"id="publish1">

<item id="item1" /></iq>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 21: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Agent 2 in Munster bekommt von pubsub.techfak...

<message to="[email protected]"from="pubsub.techfak.uni-bielefeld.de"><event xmlns="http://jabber.org/protocol/pubsub#event">

<items node="generic/positions"><item id="item1">

<position xmlns="http://techfak.../xml-isy/positions"source="http://techfak.../xml-isy/bild1.png">

<shape type="rect"x="23" y="42" width="128" height="256" />

</position></item>

</items></event>

</message>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 22: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Agent 2 in Munster bekommt von pubsub.techfak...

<message to="[email protected]"from="pubsub.techfak.uni-bielefeld.de"><event xmlns="http://jabber.org/protocol/pubsub#event">

<items node="generic/positions"><item id="item1">

<position xmlns="http://techfak.../xml-isy/positions"source="http://techfak.../xml-isy/bild1.png">

<shape type="rect"x="23" y="42" width="128" height="256" />

</position></item>

</items></event>

</message>

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 23: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

”Kommunikation eines Objekterkennungssystems”

Offene Fragen? Verstandnisprobleme?

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 24: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Server & Clients

Server

I 15 Implementationen

I 9 frei, 6 kommerziell

I keiner 100% Standard-Konform

Clients

I ca. 80

I vom Kommandozeilenprogramm uber Handy-Programme biszum Windows-GUI

I ... und das sind nur die Instant Messager!

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 25: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Server & Clients

Bibliotheken zur Server- und Client-Implementierung

I fur fast jede Programmierumgebung

I in fast jedem Abstraktionsgrad

I von J2ME fur mobile Gerate

I uber C, C++

I und Java, .NET

I bis Python, Ruby, Perl, PHP

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 26: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

I Spezifikationen:http://www.jabber.org/protocol/

I Publish-Subscribe (aus dem Beispiel):http://www.jabber.org/jeps/jep-0060.html

I Server/Clients:http://www.jabber.org/software/

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 27: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Inhalt Einleitung Architektur Beispielanwendung Implementierungen Referenzen

Danke fur Eure Aufmerksamkeit!

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol

Page 28: XMPP: Extensible Messaging and Presence …swrede/xml-isy/talks/xmpp.pdfXMPP spezifiziert I die Syntax I die Semantik I zu großen Teilen ”best practices” I wie Nachrichten von

Diskussion

I Unterschied XMPP und Webservices

I Yet Another Middleware?

I Es gibt 165 ”Jabber Enhancement Proposals”. ZuvielBurokratie?

Lukas Kolbe

XMPP: Extensible Messaging and Presence Protocol