User Tools

Site Tools


how_jabber_xmpp_works

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
how_jabber_xmpp_works [2008/05/19 02:34] – Added picture mattjhow_jabber_xmpp_works [2018/03/09 08:24] (current) – external edit 127.0.0.1
Line 1: Line 1:
-===== Jabber as an IM protocol =====+===== XMPP as an IM protocol ===== 
 +[[http://xmpp.org/|XMPP]] (formerly named Jabber) is a protocol and an open system for Instant Messaging. 
 +XMPP is a distributed system, which means that there isn't one single server or one centralized service where everybody has to have an account. There are multiple servers and providers, just like with email. You simply log on to your provider's server and start chatting with your friends. The servers will take care of exchanging the messages between the providers.
  
-[[http://www.jabber.org|Jabber]] is an open system for Instant Messaging; it is based on a protocol called [[http://www.xmpp.org|XMPP]]+It is based on [[http://en.wikipedia.org/wiki/XML|XML]], so typical snippet of XMPP traffic looks like this:
-Jabber is distributed system, which means that there isn't one single server or one centralized service where everybody has to have an account. There are multiple servers and providers, just like with email. You simply log on to your provider's server and start chatting with your friends. The servers will take care of exchanging the messages between the providers.+
  
-XMPP is based on [[http://en.wikipedia.org/wiki/XML|XML]], so a typical snippet of Jabber traffic looks like this: +{{ :jabber_architecture.png|XMPP servers and clients exchanging messages}}
- +
-{{ :jabber_architecture.png|Jabber servers and clients exchanging messages}}+
  
    <message    <message
Line 16: Line 15:
    </message>    </message>
  
-This example also shows something special to Jabber: you can provide "resources" (the "/balcony" part), enabling you to be logged in with several clients at the same time.+This example also shows something special to XMPP: you can provide "resources" (the "/balcony" part), enabling you to be logged in with several clients at the same time.
 Messages can be directed at either the "plain" Jabber ID, then the actual recipient is determined by something called "priority" (some numerical value specifying how much priority this login shall have) or some fallback method, otherwise the message is sent to the client where the recipient is logged in with the specified resource. Messages can be directed at either the "plain" Jabber ID, then the actual recipient is determined by something called "priority" (some numerical value specifying how much priority this login shall have) or some fallback method, otherwise the message is sent to the client where the recipient is logged in with the specified resource.
  
-Another Jabber-only feature are "pubsub services". These enable you to publish your mood or the title of the tune you're currently listening to.+Another XMPP-only feature are "pubsub services". These enable you to publish your mood or the title of the tune you're currently listening to.
 Not all servers/clients do support these features though. Not all servers/clients do support these features though.
  
-There are already quite a lot of Jabber servers, but since Jabber is an open system, you can even setup your own server and become part of the network. For this purpose, you can use some of these open source server implementations: +There are already quite a lot of XMPP servers, but since XMPP is an open system, you can even setup your own server and become part of the network. For this purpose, you can use some of these open source server implementations: 
- +  * [[http://prosody.im/|Prosody]] 
-  * [[http://www.process-one.net/en/ejabberd/|ejabberd]] +  * [[http://www.lightwitch.org/metronome|Metronome]] 
-  * [[http://www.igniterealtime.org/projects/openfire/index.jsp|Openfire]]+  * [[http://www.ejabberd.im/|ejabberd]] 
 +  * [[http://www.igniterealtime.org/projects/openfire/|Openfire]]
   * [[http://www.tigase.org|Tigase]]   * [[http://www.tigase.org|Tigase]]
-  * [[http://jabberd2.xiaoka.com/|jabberd2]]+  * [[http://jabberd2.org/|jabberd2]]
   * [[http://www.jabberd.org|jabberd14]]   * [[http://www.jabberd.org|jabberd14]]
  
-You may also visit http://www.jabber.org/servers/ for a list of more server software.+You may also visit http://xmpp.org/xmpp-software/servers/ for a list of more server software.
  
-This fact also makes Jabber the ideal choice for creating a company's internal IM solution, as you do not have to trust your messages to a third-party provider over a public network.+This fact also makes XMPP the ideal choice for creating a company's internal IM solution, as you do not have to trust your messages to a third-party provider over a public network.
  
 The communication between clients and servers is protected with [[http://en.wikipedia.org/wiki/Transport_Layer_Security|TLS]] (if supported by client/server). That means that the communication between users and their servers is secret and nobody can read it. If the servers support it, server-to-server traffic is enrcrypted, too. The communication between clients and servers is protected with [[http://en.wikipedia.org/wiki/Transport_Layer_Security|TLS]] (if supported by client/server). That means that the communication between users and their servers is secret and nobody can read it. If the servers support it, server-to-server traffic is enrcrypted, too.
Line 38: Line 38:
 It is also possible to use end-to-end encryption like [[http://en.wikipedia.org/wiki/GNU_Privacy_Guard|GPG]] or [[http://en.wikipedia.org/wiki/Off-the-Record_Messaging|OTR]]. It is also possible to use end-to-end encryption like [[http://en.wikipedia.org/wiki/GNU_Privacy_Guard|GPG]] or [[http://en.wikipedia.org/wiki/Off-the-Record_Messaging|OTR]].
  
-Servers can have additional services rather than just messaging and presence. Most servers have chatrooms (Jabber is not only one-to-one communiation), many also have gateways to open networks (like IRC) and to closed ones (MSN, Yahoo!, AIM).+Servers can have additional services rather than just messaging and presence. Most servers have chatrooms (XMPP is not only one-to-one communiation), many also have gateways to open networks (like IRC) and to closed ones (MSN, Yahoo!, AIM).
  
 ===== Other uses of Jabber/XMPP ===== ===== Other uses of Jabber/XMPP =====
- 
 There are several other ways Jabber/XMPP can be used: There are several other ways Jabber/XMPP can be used:
-  * As the underlying protocol  powering [[http://en.wikipedia.org/wiki/Whiteboarding|whiteboarding]]: +  * As the underlying protocol powering [[http://en.wikipedia.org/wiki/Whiteboarding|whiteboarding]]: 
-    * [[http://www.inkscape.org/|Inkscape]] whiteboard (Work in progress+    * [[http://gajim.org/|Gajim]] whiteboard (since 0.15
-    * [[http://www.thecoccinella.org/|Coccinella]] whiteboard+    * [[http://psi-plus.com/|Psi+]] whiteboard 
 +    * [[http://coccinella.im/|Coccinella]] whiteboard
   * using Twitter ([[http://blog.twitter.com/2006/10/use-twitter-by-instant-message.html|blog entry]])   * using Twitter ([[http://blog.twitter.com/2006/10/use-twitter-by-instant-message.html|blog entry]])
   * Enabling collaborative editing of text:   * Enabling collaborative editing of text:
-    * Abiword collaboration plugin (Work in progress, [[http://www.abisource.com/release-notes/2.6.0.phtml|2.6.0 Release notes]]))+    * Abiword collaboration plugin ([[http://www.abisource.com/release-notes/2.6.0.phtml|2.6.0 Release notes]])
   * ways still to be discovered... ;)   * ways still to be discovered... ;)
  
-If you want to learn more about Jabber's technical details, you may want to read the [[http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol|Wikipedia entry on XMPP]], [[http://www.jabber.org/jabber-for-geeks/technology-overview|"Technology Overview"]] or [[http://www.jabber.org/technology-detail|"Technology Detail"]] on jabber.org or even one of the specifications/RFCs linked at [[http://www.xmpp.org/]].+If you want to learn more about XMPP's technical details, you may want to read the [[http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol|Wikipedia entry on XMPP]], [[http://xmpp.org/about-xmpp/technology-overview/|Technology Overview]] or even one of the specifications/RFCs on [[http://xmpp.org/|xmpp.org]].
how_jabber_xmpp_works.1211157252.txt.gz · Last modified: 2018/03/09 08:23 (external edit)