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, Jabber et Jingle, 2008-11-21, IUT de Reims

2,821 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

XMPP, Jabber et Jingle, 2008-11-21, IUT de Reims

  1. 1. XMPP, Jabber et Jingle IUT de Reims, département Informatique LoLiCA FDL, CC by-sa 2008-11-21 Nicolas Vérité (Nÿco) mailto:nicolas.verite@capgemini.com xmpp:nyco@jabber.fr
  2. 2. Plan <ul><li>Histoire </li></ul><ul><li>Qu'est-ce que XMPP ? Jabber ? Jingle ? </li></ul><ul><li>Fonctionnalités </li></ul><ul><li>Organisations </li></ul><ul><li>Logiciels libres </li></ul><ul><li>État des lieux </li></ul><ul><li>Perspectives </li></ul>
  3. 3. Histoire <ul><li>1988 IRC </li></ul><ul><li>1996 ICQ </li></ul><ul><li>1997 AIM </li></ul><ul><li>1998 QQ, Jabber </li></ul><ul><li>1999 Yahoo! Messenger, MSN Messenger </li></ul><ul><li>2000 IETF IMPP WG, Gadu-Gadu </li></ul><ul><li>2001 Jabber Software Foundation </li></ul><ul><li>2002 IETF, XMPP WG, NateOn </li></ul><ul><li>2003 last call IETF, Skype, Xfire </li></ul><ul><li>2004 RFC publiées </li></ul><ul><li>2005 Google Talk </li></ul><ul><li>2007 XMPP Standards Foundation (XSF), ICA gratuit (Intermediate Certification Authority), MySpaceIM </li></ul><ul><li>2008 AOL/Yahoo! testent XMPP, FaceBook, Baidu Hi </li></ul>
  4. 4. Qu'est-ce que XMPP ? Jabber ? Jingle ? <ul><li>XMPP : </li></ul><ul><ul><li>eXtensible Messaging and Presence Protocol </li></ul></ul><ul><ul><li>Ensemble extensible de protocoles de routage générique de flux XML </li></ul></ul><ul><ul><li>Codage de caractères UTF-8 </li></ul></ul><ul><ul><li>Norme IETF </li></ul></ul><ul><li>Jabber est à XMPP ce que le web est à HTTP </li></ul><ul><li>Jingle : </li></ul><ul><ul><li>Protocole d'initialisation de sessions multimédia </li></ul></ul><ul><ul><li>Voix, vidéo, fichiers, applications </li></ul></ul><ul><li>Philosophie : </li></ul><ul><ul><li>Complexité sur le serveur </li></ul></ul><ul><li>Similitudes e-mail : </li></ul><ul><ul><li>client/serveur et serveur/serveur </li></ul></ul><ul><ul><li>Jabber ID : user@domain.com </li></ul></ul><ul><li>Différences avec l'e-mail : </li></ul><ul><ul><li>Identifié, authentifié </li></ul></ul><ul><ul><li>Un seul serveur d'envoi/réception </li></ul></ul><ul><ul><li>Instantané </li></ul></ul>
  5. 5. Fonctionnalités
  6. 6. Fonctionnalités : les bases <ul><li>Création de compte simple </li></ul><ul><li>Présence </li></ul><ul><li>Message d'état </li></ul><ul><li>Roster : liste de contacts </li></ul><ul><li>Groupes </li></ul><ul><li>vCard : carte de visite </li></ul><ul><li>Chat, clavardage : </li></ul><ul><ul><li>un à un </li></ul></ul><ul><ul><li>groupe (MUC = Multi-User Chat) </li></ul></ul><ul><li>Entre le télépone et l'e-mail </li></ul><ul><li>Découverte de services (disco) </li></ul><ul><li>Transfert de fichiers </li></ul><ul><li>Annuaire </li></ul>
  7. 7. Fonctionnalités : ressources et priorités <ul><li>Connexions multiples </li></ul><ul><li>Ressource : </li></ul><ul><ul><li>champ texte libre </li></ul></ul><ul><ul><li>différencier les connexions </li></ul></ul><ul><li>Priorité : </li></ul><ul><ul><li>nombre entre -128 et +127 </li></ul></ul><ul><ul><li>priorité la plus élevée, sans précision de ressource </li></ul></ul><ul><li>Égalité de priorité : </li></ul><ul><ul><li>dernière entité connectée </li></ul></ul>
  8. 8. Fonctionnalités : transports <ul><li>Passerelle (gateway) </li></ul><ul><li>Composant serveur </li></ul><ul><li>Service Jabber </li></ul><ul><li>Pont avec d'autres moyens de communication </li></ul><ul><li>SMS, RSS/Atom, e-mail </li></ul><ul><li>IM propriétaires </li></ul><ul><li>Sous-ensemble de fonctionnalités </li></ul><ul><li>Compatibilité restreinte </li></ul><ul><li>Reverse engineering </li></ul><ul><li>Surcharge serveur </li></ul><ul><li>Effort à un sens </li></ul><ul><li>Efforts centralisés </li></ul>
  9. 9. Fonctionnalités : PubSub et PEP <ul><li>Service Jabber </li></ul><ul><li>Publication, souscription </li></ul><ul><li>Arborescence, noeuds </li></ul><ul><li>Droits </li></ul><ul><li>Applications : </li></ul><ul><ul><li>Blog </li></ul></ul><ul><ul><li>Micro-blog </li></ul></ul><ul><ul><li>CMS </li></ul></ul><ul><ul><li>Vos idées </li></ul></ul><ul><li>Sous-ensemble </li></ul><ul><li>Présence étendue </li></ul><ul><li>Informations dynamiques </li></ul><ul><li>Géolocalisation, activité, avatar (photo) </li></ul><ul><li>Humeur, musique, surnom, chat, navigation, jeux, vidéo </li></ul>
  10. 10. Fonctionnalités : Jingle <ul><li>Initialisation de sessions multimédia </li></ul><ul><ul><li>Voix et vidéo simples </li></ul></ul><ul><ul><li>Transferts de fichiers </li></ul></ul><ul><ul><li>Applications multimédia </li></ul></ul><ul><li>NAT/parefeux via ICE mais complexe </li></ul><ul><li>En phase de finalisation </li></ul><ul><li>Pas de syndrome NIH </li></ul><ul><li>Ouvrir XMPP à la téléphonie </li></ul><ul><li>Recherche de l'interopérabilité </li></ul><ul><li>Passerelles et mappings SIP </li></ul>
  11. 11. Fonctionnalités : sécurité, confidentialité, spim <ul><li>Authentification SASL </li></ul><ul><li>Chiffrement TLS (SSL) </li></ul><ul><li>XSF : ICA gratuit </li></ul><ul><li>Dialback, reverse DNS lookups </li></ul><ul><li>OpenPGP, S/MIME, E2E, xTLS, OTR </li></ul><ul><li>Souscription à la présence, autorisation mutuelle </li></ul><ul><li>Privacy lists (autorisations/interdictions) </li></ul><ul><li>Mécanismes anti-spim et anti-DOS </li></ul><ul><li>Rapport paranoïa/utilisabilité médian </li></ul>
  12. 12. Fonctionnalités : sans oublier <ul><li>XHTML-IM </li></ul><ul><li>BOSH </li></ul><ul><li>Capacités des entités </li></ul><ul><li>Commandes Ad-Hoc : </li></ul><ul><ul><li>Contrôle de client à distance </li></ul></ul><ul><ul><li>Administration de services </li></ul></ul><ul><li>Échange d'éléments du roster </li></ul><ul><li>Formulaires </li></ul><ul><li>zeroconf </li></ul><ul><li>Version du logiciel </li></ul><ul><li>Dernière activité </li></ul><ul><li>Marque-pages de MUC </li></ul><ul><li>SOAP </li></ul><ul><li>Atom </li></ul><ul><li>Chat States Notifications </li></ul><ul><li>Annotations </li></ul><ul><li>Attention </li></ul><ul><li>Compression des flux </li></ul>
  13. 13. Fonctionnalités : applications <ul><li>Présence, chat/clavardage, Multi-User Chat </li></ul><ul><li>VoIP simple (bientôt) </li></ul><ul><li>Notifications et alertes </li></ul><ul><li>Applications middleware </li></ul><ul><li>Applications collaboratives quasi-temps-réel </li></ul><ul><li>Réseaux sociaux </li></ul><ul><li>Micro-blogging </li></ul><ul><li>Contrôle à distance </li></ul><ul><li>Monitoring et supervision </li></ul><ul><li>Identification et authentification </li></ul><ul><li>Jeux en ligne </li></ul><ul><li>Sauce secrète </li></ul><ul><li>Votre application </li></ul>
  14. 14. Fonctionnalités : synthèse <ul><li>XMPP très complet </li></ul><ul><li>Pourtant eXtensible </li></ul>
  15. 15. Organisations : XSF, IETF <ul><li>Mailing-lists et MUC ouverts </li></ul><ul><li>XEP : </li></ul><ul><ul><li>XMPP Extension Protocol </li></ul></ul><ul><ul><li>libres </li></ul></ul><ul><li>Membres (élection) </li></ul><ul><li>Conseil d'administration (board of directors) </li></ul><ul><li>Conseil technique (council) </li></ul><ul><li>Statuts (bylaws) </li></ul><ul><li>ICA </li></ul><ul><li>Révision des RFC </li></ul><ul><li>Tests d'interopérabilité </li></ul><ul><li>Protocoles IETF : </li></ul><ul><ul><li>Interopérabilité </li></ul></ul><ul><ul><li>Contributions </li></ul></ul>
  16. 16. Logiciels libres
  17. 17. Logiciels libres : clients <ul><li>Purs : Spark, Psi, Gajim, Tkabber, Coccinella, SamePlace </li></ul><ul><li>Multi-protocoles : Pidgin, Adium, Kopete, Miranda </li></ul><ul><li>Web : JWChat, JabberWorld, Soashable, SparkWeb, Speeqe </li></ul><ul><li>Services : Meebo, Mabber; Mimir </li></ul><ul><li>Mobiles : Bombus, Mobber </li></ul><ul><li>Enfouis : sendxmpp, neutron </li></ul><ul><li>Applicatifs : Inkscape, Abiword, Volity, ChessPark </li></ul>
  18. 18. Logiciels libres : serveurs <ul><li>ejabberd : </li></ul><ul><ul><li>erlang, scalabilité, ProcessOne </li></ul></ul><ul><li>Openfire : </li></ul><ul><ul><li>Java, utilisabilité, Jive Software </li></ul></ul><ul><li>jabberd14 : </li></ul><ul><ul><li>C, le premier </li></ul></ul><ul><li>jabberd2 : </li></ul><ul><ul><li>fork jabberd </li></ul></ul><ul><li>djabberd : </li></ul><ul><ul><li>modules Perl, LiveJournal </li></ul></ul><ul><li>Tigase : </li></ul><ul><ul><li>Java, embarquable </li></ul></ul>
  19. 19. Logiciels libres : bibliothèques et outils <ul><li>C : Loudmouth, Libstrophe </li></ul><ul><li>C++ : gloox, iris </li></ul><ul><li>Java : Smack </li></ul><ul><li>PHP : Class.Jabber.Php </li></ul><ul><li>Perl : Net::XMPP </li></ul><ul><li>Python : xmpppy, PyXMPP, Twisted Words, SleekXMPP </li></ul><ul><li>Javascript : JSJaC, xmpp4moz, xmpp4js </li></ul><ul><li>Ruby : xmpp4r, Jabber4R </li></ul><ul><li>erlang : jabberlang </li></ul><ul><li>C#/.Net/Mono : Jabber-net, agsXMPP </li></ul><ul><li>Tsung, idavoll, proxy65, mu-conference, Palaver, <Jdisk </li></ul>
  20. 20. État des lieux
  21. 21. État des lieux : adoption <ul><li>IETF </li></ul><ul><li>100 millions d'utilisateurs </li></ul><ul><li>Communautés et distributions open source </li></ul><ul><li>Éditeurs libres et propriétaires </li></ul><ul><li>Partout dans le monde </li></ul><ul><li>Oracle, Google, Sun, Apple, Adobe, Red Hat/JBoss, IBM, HP, Nokia, Yahoo!, AOL, Cisco </li></ul><ul><li>Tous sauf... Microsoft ! </li></ul>
  22. 22. État des lieux : panorama des IM propriétaires <ul><li>ICQ </li></ul><ul><li>AIM </li></ul><ul><li>QQ </li></ul><ul><li>Yahoo! Messenger (Yahoo! Pager) </li></ul><ul><li>MSN Messenger, Windows Live Messenger </li></ul><ul><li>Skype </li></ul><ul><li>Gadu-gadu </li></ul><ul><li>C6 </li></ul><ul><li>Nate On </li></ul><ul><li>MySpaceIM </li></ul><ul><li>Xfire </li></ul><ul><li>Baidu Hi </li></ul><ul><li>Mail.ru </li></ul>
  23. 23. État des lieux : technique <ul><li>Tous incompatibles </li></ul><ul><li>Un seul logiciel client obligatoire, propriétaire </li></ul><ul><li>Un seul serveur unique centralisé obligatoire, propriétaire, logiciel non-disponible </li></ul><ul><li>Protocole non-documenté, propriétaire </li></ul><ul><li>Mainmise totale de bout en bout </li></ul><ul><li>Syndrome NIH à l'échelle planétaire </li></ul><ul><li>Captivité « client » </li></ul><ul><li>Spam, usurpation d'identité, phishing </li></ul><ul><li>Publicité </li></ul><ul><li>Censure </li></ul><ul><li>Jabber : passerelles vers IM propriétaires </li></ul>
  24. 24. État des lieux : social <ul><li>Millions d'utilisateurs enfermés, cloisonnés </li></ul><ul><li>Migration impossible sans perdre tous les contacts </li></ul><ul><li>Pas de choix, imposé par contacts </li></ul><ul><li>Multiplicité des comptes </li></ul><ul><li>Dilution des efforts : </li></ul><ul><ul><li>Clients multiprotocoles </li></ul></ul><ul><ul><li>Transports Jabber </li></ul></ul>
  25. 25. État des lieux : entreprises, administrations, associations <ul><li>Serveur centralisé externe </li></ul><ul><li>Effet Blackberry à l'Élysée </li></ul><ul><li>Aucune maîtrise : </li></ul><ul><ul><li>Utilisation sauvage </li></ul></ul><ul><ul><li>Course aux mesures techniques </li></ul></ul><ul><ul><li>Pas ou peu de chiffrement </li></ul></ul><ul><li>Situation similaire à l'e-mail dans les années 1990 </li></ul><ul><li>Perception : </li></ul><ul><ul><li>Gadget pour jeunes </li></ul></ul><ul><ul><li>Les jeunes vont arriver en entreprise </li></ul></ul>
  26. 26. État des lieux : légal, juridique <ul><li>Contrat d'utilisateur final abusif </li></ul><ul><li>Contrat de service restreint </li></ul><ul><li>Déclinaison en droit international difficiel voire impossible </li></ul><ul><li>Flou juridique généralisé </li></ul><ul><li>Mesures techniques (censure, blocages, limitations de bande passante) </li></ul><ul><li>Clients multiprotocoles : </li></ul><ul><ul><li>Accès ponctuel </li></ul></ul><ul><li>Transports Jabber : </li></ul><ul><ul><li>Accès permanent mutualisé </li></ul></ul>
  27. 27. État des lieux : internet <ul><li>Plusieurs internets propriétaires, fermés, incompatibles </li></ul><ul><li>Téléphone </li></ul><ul><li>Courrier </li></ul><ul><li>Routes </li></ul><ul><li>Un seul standard ouvert, fonctionnel et très largement adopté, maintenu et extensible </li></ul>
  28. 28. Perspectives de XMPP <ul><li>Protocole né open source </li></ul><ul><li>Structuré par la XSF </li></ul><ul><li>Standardisé IETF </li></ul><ul><li>Extensible </li></ul><ul><li>Pas de royalties, pas de brevets </li></ul><ul><li>Implémentations nombreuses </li></ul><ul><li>Adoption : </li></ul><ul><ul><li>Massive </li></ul></ul><ul><ul><li>En accélération </li></ul></ul><ul><li>Pérennité assurée </li></ul><ul><li>Jingle </li></ul><ul><li>Interopérabilité avec VoIP </li></ul><ul><li>Applications </li></ul><ul><li>Couplage avec l'e-mail </li></ul><ul><li>Effort de compatibilité à sens unique vers IM propriétaires </li></ul><ul><li>Fédérateur </li></ul>
  29. 29. Liens <ul><li>xmpp.org : XSF </li></ul><ul><li>jabber.org : portail utilisateurs </li></ul><ul><li>jabberfr.org : </li></ul><ul><ul><li>Communauté francophone </li></ul></ul><ul><ul><li>Forum, wiki, MUC, news, planet </li></ul></ul><ul><li>xmpp.net : fédération des serveurs XMPP </li></ul><ul><li>ietf.org : IETF </li></ul>
  30. 30. Merci <ul><li>IUT de Reims </li></ul><ul><li>LoLiCA </li></ul><ul><li>Pour votre présence </li></ul>

×