مقدمة حول XMPP

3,949 views

Published on

عرض حول "XMPP" قدمه محمد أزيرار في اللقاء الأول لهواة التقنية المغاربة، يوم 4 يوليوز 2010.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,949
On SlideShare
0
From Embeds
0
Number of Embeds
332
Actions
Shares
0
Downloads
36
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

مقدمة حول XMPP

  1. 1. eXtensible Messaging and Presence Protocol « Protocole extensible de présence et de messagerie » Présenté par : Mohammed AZIRAR mohammed.azirar@spark.ma
  2. 2. Plan de présentation • Introduction • Applications et usages • XMPP en détail o Services o Architecture o Technologies supportés o Adressage XMPP o Flux XML o Stanzas de XMPP • Démonstration • Conclusion Mohammed Azirar 04/07/2010
  3. 3. Introduction • Protocole standard ouvert ; • Utilisé pour une large variété de systèmes de communication en temps réel ; • Basé sur une architecture client/serveur ; • Échange décentralisé de données XML entre deux points quelconques d'un réseau ; • Authentification sécurisé par SASL ; • Communications client/serveur et serveur/serveur sécurisées par TLS (successeur de SSL); • Chiffrement asymétrique de chaque message par clé PGP ou GnuPG; Mohammed Azirar 04/07/2010
  4. 4. Introduction • Établi par l'IETF (The Internet Engineering Task Force) • Maintenu par la XSF (XMPP Standards Foundation) RFCs (Request for comments) XEPs (XMPP Extension Proposal) Mohammed Azirar 04/07/2010
  5. 5. Applications et usages • Messagerie instantanée et présence ; • Notifications ; • Diffusion par push ; • Transferts de fichiers ; • Travail collaboratif en temps-réel ; • Échange de données ; • Jeux en ligne ; • Recherche en temps-réel ; • Téléphonie sur internet et Visioconférence ; • Middleware et Cloud computing ; • Géolocalisation ; • Robotique ; • Etc. Mohammed Azirar 04/07/2010
  6. 6. Acteurs industriels Mohammed Azirar 04/07/2010
  7. 7. Applications concrètes Mohammed Azirar 04/07/2010
  8. 8. Applications concrètes Google Talk Gmail Transferts de fichiers Téléphonie sur internet Notifications Messagerie instantanée et présence Mohammed Azirar 04/07/2010
  9. 9. Applications concrètes Diffusion par push Notifications en temps-réel Messagerie intantanée et présence Mohammed Azirar 04/07/2010
  10. 10. Applications concrètes Travail collaboratif en temps-réel Mohammed Azirar 04/07/2010
  11. 11. Applications concrètes Recherche en temps-réel Mohammed Azirar 04/07/2010
  12. 12. Applications concrètes Partage et transferts de fichiers en temps-réel Mohammed Azirar 04/07/2010
  13. 13. Applications concrètes Jeux en ligne en temps-réel Mohammed Azirar 04/07/2010
  14. 14. Et nous ? qu'est ce qu'on va réaliser ? Mohammed Azirar 04/07/2010
  15. 15. Mini Robot Qui peut : – Chatter ; – Exécuter des applications sur un PC distant ; – Ouvrir une URL avec un navigateur distant ; – Afficher les informations d’un système distant : o Matériel o Système d’ exploitation o Etc. Mohammed Azirar 04/07/2010
  16. 16. Commandes Réponses / Résultats Client Mini Robot Mohammed Azirar 04/07/2010
  17. 17. XMPP en détail • Services • Architecture • Technologies supportés • Adressage XMPP • Flux XML • Stanzas de XMPP Mohammed Azirar 04/07/2010
  18. 18. Services • Un service est une fonctionnalité qui peut être utilisé par une application donnée. • Les services sont définis dans deux principales spécifications : o RFC (base) : publiées par l’IETF o XEP (extensions ): publiées par XMPP Standards Foundation Mohammed Azirar 04/07/2010
  19. 19. Services • Channel encryption [RFC 3920] • Authentication [RFC 3920] • Presence [RFC 3921] • Contact lists [RFC 3921] • One-to-one messaging [RFC 3920] • Multi-party messaging [XEP-0045] • Notifications [XEP-0060] • Service discovery [XEP-0030] • Capabilities advertisement [XEP-0115] • Structured data forms [XEP-0004] • Workflow management [XEP-0050] • Etc. Mohammed Azirar 04/07/2010
  20. 20. Architecture • Architecture client / serveur décentralisée ; • Très similaire à celle du système de messagerie ; Client XMPP Serveur XMPP Composant XMPP Mohammed Azirar 04/07/2010
  21. 21. Client XMPP Doit être capable : • D'établir une connexion TCP avec un serveur XMPP (port 5222) • D'analyser et d’ interpréter les messages XML qu'il reçoit • Supporter les types de données de bases de XMPP (XMPP Stanzas) Mohammed Azirar 04/07/2010
  22. 22. Serveur XMPP Présente 3 fonctionnalités : • Gérer les connexions directes avec les clients • Communiquer avec les autres serveurs XMPP (port 5269) • Coordonner les différents composants Mohammed Azirar 04/07/2010
  23. 23. Composants XMPP • Un composant est un petit serveur qui se connecte à un serveur XMPP pour étendre ses fonctionnalités. Tinder API agsXMPP SDK Mohammed Azirar 04/07/2010
  24. 24. Technologies supportés Mohammed Azirar 04/07/2010
  25. 25. Adressage • Un JID est l'adresse unique d'une entité XMPP ; • Composé de 2 à 3 parties : utilisateur@domaine/ressource • Basée sur le DNS et des schémas d'URI ; • Ressemble à une adresse e-mail ; Mohammed Azirar 04/07/2010
  26. 26. Adressage : exemple (1) Serveur DNS Serveur XMPP jabber.spark.ma 192.168.232.90 ns1.spark.ma 192.168.232.90 azirar Utilisateur FQDN : spark.ma Mohammed Azirar 04/07/2010
  27. 27. Adressage : exemple (2) • L'adresse de base est : azirar@spark.ma • Pour ouvrir plusieurs sessions du même compte, il est obligatoire de choisir une ressource : azirar@spark.ma/bureau Ressource azirar@spark.ma/phone Mohammed Azirar 04/07/2010
  28. 28. Adressage : URI • Web : http://www.spark.ma • Messagerie : mailto:contact@spark.ma • XMPP : xmpp:azirar@spark.ma Mohammed Azirar 04/07/2010
  29. 29. Flux XML • Chaque session implique deux flux XML unidirectionnels ; • Toutes les communications client/serveur passent exclusivement par ces deux flux ; <stream:stream> … </stream:stream> <stream:stream> … </stream:stream> Mohammed Azirar 04/07/2010
  30. 30. Flux XML : exemple <stream:stream> <iq type=’get’> Stanza <query xmlns=’jabber:iq:roster’/> </iq> <presence/> <message to=’azirar@gmail.com’ from=’azirar@spark.ma’ Stanza type=’chat’> <body>Salam !<body> </message> <presence type=’unavailable’/> </stream:stream> Mohammed Azirar 04/07/2010
  31. 31. Stanzas de XML • Petits morceaux de données échangées durant la communication ; • Il existe 3 stanzas de base : o Presence : <presence> .. </presence> o Message : <message> .. </message> o IQ (Info/Query) : <iq> .. </iq> Mohammed Azirar 04/07/2010
  32. 32. Presence stanza • Indique l’état du client (en ligne / hors ligne) ; • Associée à un statut ainsi qu'un message d'état optionnel ; Etat (Hors ligne / Unavailable) Statuts Etat (En ligne) Mohammed Azirar Message d’état 04/07/2010
  33. 33. Presence stanza : exemple dnd : do not disturb (Busy) Exemple 1 : <presence> <show>dnd</show> <status>Entrain d'éxposer !</status> </presence> Exemple 2 : <presence type=’unavailable’/> 04/07/2010 Mohammed Azirar 33
  34. 34. Message stanza • XMPP offre à la fois les possibilités du : o Courrier électronique o Messagerie instantanée o Salons de discussion de type IRC • 5 types de messages : o normal o chat o groupchat o headline o error Mohammed Azirar 04/07/2010
  35. 35. Normal (normal) • Semblable à un « courrier électronique » ; • Relativement longs (messages assez formels) • Permet de répondre à l'expéditeur ; • l'interface ne présente pas l'historique des conversations passées ; Mohammed Azirar 04/07/2010
  36. 36. Discussion (chat) • Correspond aux messages que l'on rencontre habituellement dans les systèmes de messagerie instantanée ; • Messages nombreux et très courts (une seule phrase) ; • Employés dans le cadre d'une conversation fortement interactive et souvent informelle ; • L'historique de la conversation est présenté dans la même fenêtre que le message actif ; Mohammed Azirar 04/07/2010
  37. 37. Discussion de groupe (groupchat) • Intervient dans le contexte de groupes de discussions ; • L'interface présente l'ensemble des participants à la conversation ainsi que l'historique des messages ; Mohammed Azirar 04/07/2010
  38. 38. Titre ou Information (headline) • Messages automatiques produits par des robots ; • Permet de transmettre des messages à caractère informatif ; • L'interface ne permet pas de répondre à l'expéditeur ; Mohammed Azirar 04/07/2010
  39. 39. Erreur (error) • Permet d'informer l'utilisateur qu'une erreur s'est produite ; Mohammed Azirar 04/07/2010
  40. 40. IQ stanza • Mécanisme de base pour les réquêtes/réponses ; • Similaire au protocole HTTP (GET et POST) ; • Utilisé pour différentes fonctionnalités (création de compte authentification, récupération d'une liste de contact, etc.) IQ-get IQ-result IQ-set IQ-error • Set : pour envoyer des données ; Get : pour requêter des données ; • Error : réponse précisant l'erreur; Result : réponse en cas de succès ; Mohammed Azirar 04/07/2010
  41. 41. IQ stanza : exemple <iq from=’azirar@spark.ma/bureau’ type=’get’ id=’roster1’> <query xmlns=’jabber:iq:roster’/> </iq> <iq to=’azirar@spark.ma/bureau’ type=’result’ id=’roster2’> <query xmlns=’jabber:iq:roster’> <item jid=’mohamed.tribak@gmail.com’ mohammed tribak’/> <item jid=’m.azirar@jabber.org’ name=Mohammed’/> <item jid=’robot.azirar@jabber.org’ name=robot.azirar’/> </query> </iq> Mohammed Azirar 04/07/2010
  42. 42. Conclusion HTTP is Dead, Long Live The Realtime Cloud ! Mohammed Azirar 04/07/2010

×