SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
eXtensible Messaging and Presence Protocol
      « Protocole extensible de présence et de messagerie »




   Présenté par :
   Mohammed AZIRAR                         mohammed.azirar@spark.ma
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
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
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
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
Acteurs industriels




Mohammed Azirar
04/07/2010
Applications concrètes


Mohammed Azirar
04/07/2010
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
Applications concrètes


                                           Diffusion par push




                                    Notifications en temps-réel




Messagerie intantanée et présence


Mohammed Azirar
04/07/2010
Applications concrètes




                  Travail collaboratif en temps-réel
Mohammed Azirar
04/07/2010
Applications concrètes




                  Recherche en temps-réel

Mohammed Azirar
04/07/2010
Applications concrètes




                  Partage et transferts de fichiers en temps-réel

Mohammed Azirar
04/07/2010
Applications concrètes




                  Jeux en ligne en temps-réel
Mohammed Azirar
04/07/2010
Et nous ? qu'est ce qu'on
         va réaliser ?


Mohammed Azirar
04/07/2010
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
Commandes




                  Réponses / Résultats




   Client                                Mini Robot

Mohammed Azirar
04/07/2010
XMPP en détail

     •   Services
     •   Architecture
     •   Technologies supportés
     •   Adressage XMPP
     •   Flux XML
     •   Stanzas de XMPP


Mohammed Azirar
04/07/2010
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
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
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
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
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
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
Technologies supportés




Mohammed Azirar
04/07/2010
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
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
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
Adressage : URI
• Web :
                    http://www.spark.ma
• Messagerie :
                  mailto:contact@spark.ma
• XMPP :
                   xmpp:azirar@spark.ma

Mohammed Azirar
04/07/2010
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
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
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
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
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
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
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
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
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
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
Erreur (error)
•     Permet d'informer l'utilisateur qu'une erreur s'est
      produite ;




Mohammed Azirar
04/07/2010
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
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
Conclusion



   HTTP is Dead, Long Live The Realtime Cloud !




Mohammed Azirar
04/07/2010

Contenu connexe

En vedette

07 education permissive ou a la dure
07 education permissive ou a la dure07 education permissive ou a la dure
07 education permissive ou a la dureGerard Houdinet
 
Community management extrait 1
Community management extrait 1Community management extrait 1
Community management extrait 1Tobee Biz
 
Calendrier
CalendrierCalendrier
Calendrierkatiapgm
 
Texto comparado del RDL 10/2010 y de la Ley de medidas urgentes para la ref...
Texto comparado del RDL 10/2010  y de la Ley  de medidas urgentes para la ref...Texto comparado del RDL 10/2010  y de la Ley  de medidas urgentes para la ref...
Texto comparado del RDL 10/2010 y de la Ley de medidas urgentes para la ref...Universidad Autónoma de Barcelona
 
08 des-photos-amusantes-commentees
08 des-photos-amusantes-commentees08 des-photos-amusantes-commentees
08 des-photos-amusantes-commenteesGerard Houdinet
 
Devoxx jva-sni-9-janvier-overview
Devoxx jva-sni-9-janvier-overviewDevoxx jva-sni-9-janvier-overview
Devoxx jva-sni-9-janvier-overviewstephanenicolas
 
Barcamp PrestaShop 2013 Présentation FEVAD
Barcamp PrestaShop 2013 Présentation FEVADBarcamp PrestaShop 2013 Présentation FEVAD
Barcamp PrestaShop 2013 Présentation FEVADPrestaShop
 
Balance del proceso autonomico municipal
Balance del proceso autonomico municipalBalance del proceso autonomico municipal
Balance del proceso autonomico municipalGobernabilidad
 
Persun.fr robe de mariée bustier
Persun.fr  robe de mariée bustierPersun.fr  robe de mariée bustier
Persun.fr robe de mariée bustierSunnyer Emily
 
Charte du Mouvement d’Action Panafricain (MAP)
Charte du Mouvement d’Action Panafricain (MAP)Charte du Mouvement d’Action Panafricain (MAP)
Charte du Mouvement d’Action Panafricain (MAP)Patrice Piardon
 
Spot desigualdad (ind3)
Spot desigualdad (ind3)Spot desigualdad (ind3)
Spot desigualdad (ind3)Gobernabilidad
 
Tutoriel protel99 se
Tutoriel protel99 seTutoriel protel99 se
Tutoriel protel99 seCLES-FACIL
 
Tableau général 2009 2010
Tableau général 2009 2010Tableau général 2009 2010
Tableau général 2009 2010Sciences Po
 
María victoria meca y rocío fernández
María victoria meca y rocío fernándezMaría victoria meca y rocío fernández
María victoria meca y rocío fernándezJOSÉ TOMÁS
 

En vedette (20)

07 education permissive ou a la dure
07 education permissive ou a la dure07 education permissive ou a la dure
07 education permissive ou a la dure
 
Community management extrait 1
Community management extrait 1Community management extrait 1
Community management extrait 1
 
Lorraine
LorraineLorraine
Lorraine
 
Calendrier
CalendrierCalendrier
Calendrier
 
Guia puntos de investigacion 21010103203
Guia puntos de investigacion 21010103203Guia puntos de investigacion 21010103203
Guia puntos de investigacion 21010103203
 
Proyecto e scouts
Proyecto e scoutsProyecto e scouts
Proyecto e scouts
 
Texto comparado del RDL 10/2010 y de la Ley de medidas urgentes para la ref...
Texto comparado del RDL 10/2010  y de la Ley  de medidas urgentes para la ref...Texto comparado del RDL 10/2010  y de la Ley  de medidas urgentes para la ref...
Texto comparado del RDL 10/2010 y de la Ley de medidas urgentes para la ref...
 
08 des-photos-amusantes-commentees
08 des-photos-amusantes-commentees08 des-photos-amusantes-commentees
08 des-photos-amusantes-commentees
 
Des photos rares mo
Des photos rares moDes photos rares mo
Des photos rares mo
 
Devoxx jva-sni-9-janvier-overview
Devoxx jva-sni-9-janvier-overviewDevoxx jva-sni-9-janvier-overview
Devoxx jva-sni-9-janvier-overview
 
Barcamp PrestaShop 2013 Présentation FEVAD
Barcamp PrestaShop 2013 Présentation FEVADBarcamp PrestaShop 2013 Présentation FEVAD
Barcamp PrestaShop 2013 Présentation FEVAD
 
Balance del proceso autonomico municipal
Balance del proceso autonomico municipalBalance del proceso autonomico municipal
Balance del proceso autonomico municipal
 
Le Nouveau Pacte Fiscal et Social pour la compétitivité de la France
Le Nouveau Pacte Fiscal et Social pour la compétitivité de la FranceLe Nouveau Pacte Fiscal et Social pour la compétitivité de la France
Le Nouveau Pacte Fiscal et Social pour la compétitivité de la France
 
Persun.fr robe de mariée bustier
Persun.fr  robe de mariée bustierPersun.fr  robe de mariée bustier
Persun.fr robe de mariée bustier
 
Abcducommunisme
AbcducommunismeAbcducommunisme
Abcducommunisme
 
Charte du Mouvement d’Action Panafricain (MAP)
Charte du Mouvement d’Action Panafricain (MAP)Charte du Mouvement d’Action Panafricain (MAP)
Charte du Mouvement d’Action Panafricain (MAP)
 
Spot desigualdad (ind3)
Spot desigualdad (ind3)Spot desigualdad (ind3)
Spot desigualdad (ind3)
 
Tutoriel protel99 se
Tutoriel protel99 seTutoriel protel99 se
Tutoriel protel99 se
 
Tableau général 2009 2010
Tableau général 2009 2010Tableau général 2009 2010
Tableau général 2009 2010
 
María victoria meca y rocío fernández
María victoria meca y rocío fernándezMaría victoria meca y rocío fernández
María victoria meca y rocío fernández
 

Similaire à مقدمة حول XMPP

CTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraCTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraChiheb Ouaghlani
 
2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleans2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleanslgilbon
 
2009-09-26 xmpp jabber for beginners at mediatheque fleury
2009-09-26 xmpp jabber for beginners at mediatheque fleury2009-09-26 xmpp jabber for beginners at mediatheque fleury
2009-09-26 xmpp jabber for beginners at mediatheque fleurylgilbon
 
Push to the web - Websocket et SignalR
Push to the web -  Websocket et SignalRPush to the web -  Websocket et SignalR
Push to the web - Websocket et SignalRMSDEVMTL
 
Nouveautés et limitations de JMS 2
Nouveautés et limitations de JMS 2Nouveautés et limitations de JMS 2
Nouveautés et limitations de JMS 2Florian Beaufumé
 
XMPP et Interopérabilité
XMPP et InteropérabilitéXMPP et Interopérabilité
XMPP et InteropérabilitéNyco
 
Internet et ses services
Internet et ses servicesInternet et ses services
Internet et ses servicesAbdoulaye Dieng
 
OBM + TrustedBird : la messagerie sécurisée
OBM + TrustedBird : la messagerie sécurisée OBM + TrustedBird : la messagerie sécurisée
OBM + TrustedBird : la messagerie sécurisée LINAGORA
 
XMPP, Jabber et Jingle
XMPP, Jabber et JingleXMPP, Jabber et Jingle
XMPP, Jabber et JingleNyco
 
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfintro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfCoumbaLaobNdiaye1
 
XMPP, Jabber et Jingle
XMPP, Jabber et JingleXMPP, Jabber et Jingle
XMPP, Jabber et JingleNyco
 
aOS solidarite NC - Teams, apres le rush
aOS solidarite NC - Teams, apres le rushaOS solidarite NC - Teams, apres le rush
aOS solidarite NC - Teams, apres le rushSébastien Paulet
 
Intro. Messagerie.pdf
Intro. Messagerie.pdfIntro. Messagerie.pdf
Intro. Messagerie.pdfssuser64f0591
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures repartiesMariem ZAOUALI
 
Rendre Matrix accessible a tous
Rendre Matrix accessible a tousRendre Matrix accessible a tous
Rendre Matrix accessible a tousxavierguimard
 

Similaire à مقدمة حول XMPP (20)

CTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraCTT La suite Collaborative Zimbra
CTT La suite Collaborative Zimbra
 
technologie web
technologie webtechnologie web
technologie web
 
2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleans2008-11-08 xmpp jabber for all at iut orleans
2008-11-08 xmpp jabber for all at iut orleans
 
2009-09-26 xmpp jabber for beginners at mediatheque fleury
2009-09-26 xmpp jabber for beginners at mediatheque fleury2009-09-26 xmpp jabber for beginners at mediatheque fleury
2009-09-26 xmpp jabber for beginners at mediatheque fleury
 
Push to the web - Websocket et SignalR
Push to the web -  Websocket et SignalRPush to the web -  Websocket et SignalR
Push to the web - Websocket et SignalR
 
Nouveautés et limitations de JMS 2
Nouveautés et limitations de JMS 2Nouveautés et limitations de JMS 2
Nouveautés et limitations de JMS 2
 
XMPP et Interopérabilité
XMPP et InteropérabilitéXMPP et Interopérabilité
XMPP et Interopérabilité
 
Internet et ses services
Internet et ses servicesInternet et ses services
Internet et ses services
 
Internet
InternetInternet
Internet
 
OBM + TrustedBird : la messagerie sécurisée
OBM + TrustedBird : la messagerie sécurisée OBM + TrustedBird : la messagerie sécurisée
OBM + TrustedBird : la messagerie sécurisée
 
XMPP, Jabber et Jingle
XMPP, Jabber et JingleXMPP, Jabber et Jingle
XMPP, Jabber et Jingle
 
Messagerie
MessagerieMessagerie
Messagerie
 
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdfintro-tech-web-lp3-jan-21-slides-1-a-9.pdf
intro-tech-web-lp3-jan-21-slides-1-a-9.pdf
 
XMPP, Jabber et Jingle
XMPP, Jabber et JingleXMPP, Jabber et Jingle
XMPP, Jabber et Jingle
 
Formation webmaster
Formation webmasterFormation webmaster
Formation webmaster
 
aOS solidarite NC - Teams, apres le rush
aOS solidarite NC - Teams, apres le rushaOS solidarite NC - Teams, apres le rush
aOS solidarite NC - Teams, apres le rush
 
Intro. Messagerie.pdf
Intro. Messagerie.pdfIntro. Messagerie.pdf
Intro. Messagerie.pdf
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures reparties
 
Rendre Matrix accessible a tous
Rendre Matrix accessible a tousRendre Matrix accessible a tous
Rendre Matrix accessible a tous
 
Sip
SipSip
Sip
 

مقدمة حول XMPP

  • 1. eXtensible Messaging and Presence Protocol « Protocole extensible de présence et de messagerie » Présenté par : Mohammed AZIRAR mohammed.azirar@spark.ma
  • 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. 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. 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. 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
  • 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. Applications concrètes Diffusion par push Notifications en temps-réel Messagerie intantanée et présence Mohammed Azirar 04/07/2010
  • 10. Applications concrètes Travail collaboratif en temps-réel Mohammed Azirar 04/07/2010
  • 11. Applications concrètes Recherche en temps-réel Mohammed Azirar 04/07/2010
  • 12. Applications concrètes Partage et transferts de fichiers en temps-réel Mohammed Azirar 04/07/2010
  • 13. Applications concrètes Jeux en ligne en temps-réel Mohammed Azirar 04/07/2010
  • 14. Et nous ? qu'est ce qu'on va réaliser ? Mohammed Azirar 04/07/2010
  • 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. Commandes Réponses / Résultats Client Mini Robot Mohammed Azirar 04/07/2010
  • 17. XMPP en détail • Services • Architecture • Technologies supportés • Adressage XMPP • Flux XML • Stanzas de XMPP Mohammed Azirar 04/07/2010
  • 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. 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. 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. 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. 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. 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
  • 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. 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. 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. Adressage : URI • Web : http://www.spark.ma • Messagerie : mailto:contact@spark.ma • XMPP : xmpp:azirar@spark.ma Mohammed Azirar 04/07/2010
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Erreur (error) • Permet d'informer l'utilisateur qu'une erreur s'est produite ; Mohammed Azirar 04/07/2010
  • 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. 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. Conclusion HTTP is Dead, Long Live The Realtime Cloud ! Mohammed Azirar 04/07/2010