• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
مقدمة حول XMPP
 

مقدمة حول XMPP

on

  • 3,800 views

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

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

Statistics

Views

Total Views
3,800
Views on SlideShare
3,497
Embed Views
303

Actions

Likes
1
Downloads
23
Comments
0

4 Embeds 303

http://med-tanger.blogspot.com 168
http://blog.amarochan.com 133
http://feeds2.feedburner.com 1
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    مقدمة حول XMPP مقدمة حول XMPP Presentation Transcript

    • 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