Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

مقدمة حول XMPP

4,316 views

Published on

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

Published in: Technology
  • Be the first to comment

مقدمة حول 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

×