https://wiki.jabberfr.org/api.php?action=feedcontributions&user=Jijipowa&feedformat=atomWiki JabberFR - Contributions [fr]2024-03-29T14:40:52ZContributionsMediaWiki 1.40.1https://wiki.jabberfr.org/index.php?title=Gajim&diff=8850Gajim2008-08-11T04:47:11Z<p>Jijipowa : /* Sous Linux */</p>
<hr />
<div>{{Logiciel_simple<br />
| nom = Gajim<br />
| logo = [[Image:logo_gajim.png]]<br />
| développeur = [[#Développeurs | L'équipe Gajim]]<br />
| os = Microsoft Windows, Linux, BSD<br />
| type = Client Jabber<br />
| langage = Python<br />
| licence = gpl<br />
| site_web = http://www.gajim.org/<br />
}}<br />
<br />
{{Tutoriels_client|Gajim}}<br />
<br />
'''Gajim''' est un client Jabber libre écrit en python qui utilise la bibliothèque graphique GTK. Il est disponible pour les systèmes GNU/Linux, FreeBSD et Windows.<br />
<br />
Gajim n'est pas sans rappeler [[Gossip]], on y retrouve le côté minimaliste et ergonomique propre à ce dernier, la présence d'une icône dans la barre système permet de retrouver son client facilement et la discussion par onglet est là également.<br />
<br />
Un des atouts de Gajim est de ne pas être pénalisé par son apparence dépouillée, grâce à des réglages faciles d'accès mais surtout utiles et très pratiques. De la position des fenêtres au choix des couleurs de texte, on passe par moultes personnalisations bien agréables, comme le choix parmis un set d'icônes, la possibilité de fusionner les comptes en une seule liste, le choix d'utiliser les onglets ou pas, le choix d'utilisation et la personnalisation des smilies, le choix des sons joués, l'indicateur horaire, la gestion des messages arrivants, le log et autres options propres à un client Jabber, la possibilité de communications chiffrées (gnupg).<br />
<br />
Des fonctions avancées sont également présentes, lesquelles permettent d'utiliser Gajim en alternative à la plupart des clients Jabber actuels.<br />
<br />
== Avantages ==<br />
* Fenêtres de discussion avec onglets<br />
* Support des salons de discussion (avec le protocole MUC)<br />
* Gestion des émoticônes et des avatars<br />
* Transfert de fichier<br />
* Icônes de statut des contacts par transport<br />
* Détection des liens, emails, JIDs<br />
* [[Marque-page|Marque-pages]] des salons de discussion<br />
* Icône de notification dans la barre système<br />
* Correction orthographique<br />
* Notifications d'état de discussion<br />
* Larges possibilités de configuration<br />
* Support du chiffrement avec TLS, SSL et GPG<br />
* Support de l'enregistrement de transport<br />
* Gestion des services incluant les noeuds<br />
* Possibilité d'utiliser plusieurs comptes<br />
* Fonctions de recherche dans Wikipédia, un dictionnaire ou un moteur de recherche<br />
* Fonctions d'administration des serveurs<br />
* Meta Contacts<br />
* Support de DBus<br />
* Console XML<br />
* Support de la messagerie locale sans serveur (XEP-0174)<br />
* Support des listes privées<br />
* Annonce de reception d'emails sur GMail<br />
* Support des thèmes de discussion (XHTML) en reception<br />
* Support la prise à distance d'autres ressources (exécution de commandes)<br />
<br />
== Désavantages ==<br />
* Encore en développement<br />
* Des lenteurs peuvent se faire sentir dû au langage<br />
* Ne supporte pas l'émission de message avec des thèmes de discussion (XHTML)<ref>http://trac.gajim.org/ticket/3724</ref> <br />
* Aucune gestion de la VoIP (Jingle)<br />
* Gestion des historiques assez compliquée et peu pratique<br />
<br />
== Captures d'écran ==<br />
=== Sous GNU/Linux ===<br />
<br />
<gallery><br />
Image:Gajim-etch-clearlook.png|Gajim sous Debian Etch<br />
Image:Gajim_Gnome_Ubuntu.png|Sous Ubuntu<br />
</gallery><br />
<br />
=== Sous Windows ===<br />
<br />
<gallery><br />
Image:Gajim0114gtk2vista.png|Gajim v0.11.4 GTK 2 sous Windows VISTA<br />
</gallery><br />
<br />
== Fonctions proposées par Gajim ==<br />
<br />
Voici quelques fonctions qui peuvent s'avérer pratiques ! <br />
<br />
=== Consulter un article Wikipedia ===<br />
<br />
Si vous voulez consulter l'article Wikipedia associé à un mot ou à une expression lors d'une discussion, il vous suffit de sélectionner le mot ou l'expression en question, de faire un clic-droit et, dans le menu ''Actions pour "..."'', de cliquer sur ''Lire l'article Wikipedia''. L'article en question s'affichera alors dans votre navigateur par défaut.<br />
<br />
=== Chercher un mot dans le dictionnaire ===<br />
<br />
Pour chercher un mot dans le dictionnaire ([http://fr.wiktionary.org Wiktionnaire], le dictionnaire du projet Wikipedia), la procédure est quasi-identique à la précédente. Il vous suffit juste de cliquer sur ''Chercher dans le dictionnaire'' au lieu de ''Lire l'article Wikipedia''.<br />
<br />
Vous pouvez changer l'adresse du dictionnaire (pour utiliser un autre dictionnaire que Wiktionnaire) via l'éditeur de configuration avancé (menu ''Editer'', ''Préférences'', ''Avancé'', ''Ouvrir'' et changez la valeur de ''dictionary_url'').<br />
<br />
=== Chercher un mot sur Internet ===<br />
<br />
De même, en choisissant l'action ''Chercher sur Internet'', vous obtiendrez le résultat de la recherche de cette expression avec Google.<br />
<br />
Vous pouvez changer l'adresse du moteur de recherche (pour utiliser un autre moteur de recherche que Google ou ajouter des options à la recherche) via l'éditeur de configuration avancé (menu ''Editer'', ''Préférences'', ''Avancé'', ''Ouvrir'' et changez la valeur de ''search_engine'').<br />
<br />
=== Vérification de l'orthographe ===<br />
<br />
Avec Gajim, vous pouvez activer un vérificateur orthographique. Celui-ci souligne en rouge les mots mal orthographiés. <br />
<br />
Pour l'activer : <br />
* Dans le menu ''Editer'', cliquez sur ''Préférences''<br />
* Sélectionnez l'onglet ''Discussion''<br />
* Cochez la case ''Souligner les fautes d'orthographe''<br />
* Cliquez sur le bouton ''Fermer''<br />
<br />
Attention toutefois, il existe un problème avec la vérification de l'orthographe qui lui faire prendre beaucoup d'espace mémoire, il est conseillé d'éviter de l'utiliser pour l'instant, jusqu'aux prochaines versions<br />
<br />
== Développeurs ==<br />
;Yann Le Boulanger : Initiateur du projet<br />
;Nikos Kouremenos<br />
;Julien Pivotto<br />
;Stephan Erb<br />
<br />
== Référence ==<br />
<references /><br />
<br />
== Liens externes ==<br />
<br />
* {{fr}} [http://trac.gajim.org/wiki/GajimHelpFr Wiki]<br />
* {{fr}} [http://www.gajim.org/downloads.php?lang=fr Téléchargement]<br />
* {{en}} [http://trac.gajim.org/report/1 Bug tracker]<br />
* {{en}} [xmpp:gajim@conference.gajim.org?join Salon des développeurs] (gajim@conference.gajim.org)<br />
* {{en}} [https://lists.gajim.org/cgi-bin/listinfo Listes de discussion]<br />
<br />
[[Catégorie:Client Windows]]<br />
[[Catégorie:Client Linux]]<br />
[[Catégorie:Client Jabber]]</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=RobotJabberFR&diff=8008RobotJabberFR2007-12-23T13:59:52Z<p>Jijipowa : ortho</p>
<hr />
<div>== Projet de [[Robot]] multifonction pour la communauté JabberFR ==<br />
=== Participants ===<br />
Liste des personnes volontaires pour aider à la création du robot.<br />
* [[Utilisateur:Omega|Omega]] (omega_chez_im.apinc.org)<br />
* [[Utilisateur:Jb|Jb]] (JID:jb_chez_jabber.fr)<br />
* [[Utilisateur:Talou|Talou]] (JID:talou_chez_timot.net)<br />
<br />
=== Solutions de bots existantes ===<br />
* [http://ejabberd.jabber.ru/neutron Neutron] (python)<br />
* [http://www.jezuk.co.uk/cgi-bin/view/whereskal WhereSkal] (python)<br />
* solution basée sur [http://cjphp.netflint.net/ cjp] (php) - je bosse sur un projet modulaire avec cjp, disponible par svn ici : [http://dev.artis-tic.com/phpJabberBot/] -- [[Utilisateur:Talou|Talou]]<br />
* solution basée sur [http://home.gna.org/xmpp4r/ xmpp4r] (ruby)<br />
<br />
=== Fonctions du Robot ===<br />
==== Forum ====<br />
* Suivi des discussions par abonnement (comme pour les actuelles notifications mail)<br />
* Recherche<br />
<br />
==== Wiki ====<br />
* Suivi des modifications d'articles par abonnement (comme pour les notifs mail actuelles)<br />
* Recherche<br />
<br />
==== Planet ====<br />
* Abonnement aux notifications de nouveaux billets<br />
* Historique et recherche dans le planet<br />
* Admin : gestion des blogs participants<br />
* Admin : mise à jour manuelle<br />
<br />
==== Annuaire ====<br />
* Recherche et interrogation de l'annuaire<br />
:Est-ce vraiment utile ? L'annuaire est déjà disponible de puis jabber ... [[Utilisateur:Omega|Omega]] 29 mar 2006 à 17:45 (CEST)<br />
<br />
==== Général ====<br />
* Présence sur le web (à la manière d'Edgar)<br />
* seen<br />
: C'est vraiment utile seen ? C'est déjà définie dans le protocol jabber ([http://www.jabber.org/jeps/jep-0012.html JEP-0012]) [[Utilisateur:Omega|Omega]] 24 jun 2006 à 09:12 (CEST)<br />
* help<br />
* visible (choix des contact du bot de le voir ou non, comme Edgar)<br />
* admin : presence (gestion de la présence du bot)<br />
:Je comprends pas trop ce point. [[Utilisateur:Omega|Omega]] 24 jun 2006 à 09:12 (CEST)<br />
* admin : gestion du roster du bot<br />
:Je vois pas à quoi ca peut servir ça ? [[Utilisateur:Omega|Omega]] 24 jun 2006 à 09:12 (CEST)<br />
<br />
=== Remarques ===<br />
* il peut y avoir plusieurs bots, notamment du fait qu'il y a des éléments de jabberfr sur plusieurs machines, ce qui permet de répartir les commandes. Les ressources sont là pour ça.<br />
<br />
=== Roadmap ? ===<br />
<br />
=== Inventaire des bots jabber existants ===<br />
[[Robot#Inventaire]]<br />
<br />
=== Aspects techniques ===<br />
<br />
==== Client vs Composant ====<br />
<br />
Un robot "client" est un robot qui se connecte au serveur de la même manière qu'un client jabber.<br />
<br />
Un robot "composant" est un robot qui se connecte au serveur comme un composant (par exemple une passerelle). L'avantage d'un tel robot est que son jid est du genre bot.jabberfr.org, on peut donc le faire apparaitre dans les services (disco) des serveurs. On peut aussi plus facilement s'inscrire dessus (comme une passerelle) ou faire des recherches (comme un annuaire). Par contre presqu'aucun bot n'est fait comme ça. On devrait donc tout recoder.<br />
<br />
Pour l'instant le robot est un client, mais il peut très bien se transformer en composant pour avoir plus de fonctionnalités.<br />
<br />
==== Langage de programmation ====<br />
Python est utilisé avec la biliothèque jabber xmpp.py.<br />
<br />
==== Communication entre le wiki/forum/planet/... et le robot ====<br />
Pour pouvoir envoyer des notifications de modification il faut que le robot soit au courant de ces modifications.<br />
<br />
On utilise pour l'instant une communication par xmlrpc<br />
<br />
Les avantages :<br />
*Notifications instantannées<br />
*Possibilité d'avoir les sites sur différents serveurs<br />
<br />
== Utilisation ==<br />
Le robot est [xmpp:jabberfr@im.apinc.org jabberfr@im.apinc.org]. Vous pouvez l'ajouter comme contact.<br />
<br />
=== Liste des commandes ===<br />
Envoyer comme message au robot<br />
!commands<br />
Ils vous renverra la liste des commandes disponibles<br />
<br />
=== Notifications sur le wiki ===<br />
Pour utiliser la notification du wiki il faut envoyer un message au robot en lui disant :<br />
:* Pour recevoir une notification pour tout les changements :<br />
!wiki tout<br />
:* Pour recvevoir une notification uniquement pour les articles suivis :<br />
!wiki suivi<br />
:* Pour ne plus recevoir de notification :<br />
!wiki non<br />
<br />
=== Notifications sur le forum ===<br />
Pour utiliser la notification du forum il faut envoyer un message au robot en lui disant :<br />
:* Pour recevoir une notification pour tous nouveau message posté sur le forum :<br />
!forum tout<br />
:* Pour ne plus recevoir de notification :<br />
!forum non<br />
<br />
== Avancement ==<br />
<br />
* Possibilité de ne pas recevoir de notifications lorsqu'on est déconnecté, occupé, ou absent<br />
!notice_status busy<br />
pour ne pas recevoir de notification lorsqu'on est occupé (les autres possibilités sont away et offline)<br />
* Possibilité de configurer le bot avec les [[commandes ad-hoc]] [[Utilisateur:Omega|Omega]] 21 jun 2006 à 20:30 (CEST)<br />
<br />
* Changement de la manière dont marchent les notifications. Maintenant c'est plus intégré dans mediawiki, et ça permet de ne recevoir des notifications que pour les pages suivies. [[Utilisateur:Omega|Omega]] 14 aoû 2006 à 17:43 (CEST)<br />
<br />
* Modularisation d'une partie du code (voir svn) [[Utilisateur:Omega|Omega]] 14 aoû 2006 à 17:45 (CEST)<br />
<br />
== Participer ==<br />
Pour participer c'est simple il suffit de contacter [User:Omega Omega].<br />
* Le dépot subversion se trouve à : [http://gpl.insa-lyon.fr/svn/omega/botjabberfr].<br />
* Voir le dépot : [http://gpl.insa-lyon.fr/websvn/listing.php?repname=omega&path=%2Fbotjabberfr%2F WebSVN]<br />
* Récupérer les fichiers : <code>svn co http://gpl.insa-lyon.fr/svn/omega/botjabberfr</code></div>Jijipowahttps://wiki.jabberfr.org/index.php?title=RobotJabberFR&diff=8007RobotJabberFR2007-12-23T13:45:56Z<p>Jijipowa : /* Notifications sur le forum */</p>
<hr />
<div>== Projet de [[Robot]] multifonction pour la communauté JabberFR ==<br />
=== Participants ===<br />
Liste des personnes volontaires pour aider à la création du robot.<br />
* [[Utilisateur:Omega|Omega]] (omega_chez_im.apinc.org)<br />
* [[Utilisateur:Jb|Jb]] (JID:jb_chez_jabber.fr)<br />
* [[Utilisateur:Talou|Talou]] (JID:talou_chez_timot.net)<br />
<br />
=== Solutions de bots existantes ===<br />
* [http://ejabberd.jabber.ru/neutron Neutron] (python)<br />
* [http://www.jezuk.co.uk/cgi-bin/view/whereskal WhereSkal] (python)<br />
* solution basée sur [http://cjphp.netflint.net/ cjp] (php) - je bosse sur un projet modulaire avec cjp, disponible par svn ici : [http://dev.artis-tic.com/phpJabberBot/] -- [[Utilisateur:Talou|Talou]]<br />
* solution basée sur [http://home.gna.org/xmpp4r/ xmpp4r] (ruby)<br />
<br />
=== Fonctions du Robot ===<br />
==== Forum ====<br />
* Suivi des discussions par abonnement (comme pour les actuelles notifications mail)<br />
* Recherche<br />
<br />
==== Wiki ====<br />
* Suivi des modifications d'articles par abonnement (comme pour les notifs mail actuelles)<br />
* Recherche<br />
<br />
==== Planet ====<br />
* Abonnement aux notifications de nouveaux billets<br />
* Historique et recherche dans le planet<br />
* Admin : gestion des blogs participants<br />
* Admin : mise à jour manuelle<br />
<br />
==== Annuaire ====<br />
* Recherche et interrogation de l'annuaire<br />
:Est-ce vraiment utile ? L'annuaire est déjà disponible de puis jabber ... [[Utilisateur:Omega|Omega]] 29 mar 2006 à 17:45 (CEST)<br />
<br />
==== Général ====<br />
* Présence sur le web (à la manière d'Edgar)<br />
* seen<br />
: C'est vraiment utile seen ? C'est déjà définie dans le protocol jabber ([http://www.jabber.org/jeps/jep-0012.html JEP-0012]) [[Utilisateur:Omega|Omega]] 24 jun 2006 à 09:12 (CEST)<br />
* help<br />
* visible (choix des contact du bot de le voir ou non, comme Edgar)<br />
* admin : presence (gestion de la présence du bot)<br />
:Je comprends pas trop ce point. [[Utilisateur:Omega|Omega]] 24 jun 2006 à 09:12 (CEST)<br />
* admin : gestion du roster du bot<br />
:Je vois pas à quoi ca peut servir ça ? [[Utilisateur:Omega|Omega]] 24 jun 2006 à 09:12 (CEST)<br />
<br />
=== Remarques ===<br />
* il peut y avoir plusieurs bots, notamment du fait qu'il y a des éléments de jabberfr sur plusieurs machines, ce qui permet de répartir les commandes. Les ressources sont là pour ça.<br />
<br />
=== Roadmap ? ===<br />
<br />
=== Inventaire des bots jabber existants ===<br />
[[Robot#Inventaire]]<br />
<br />
=== Aspects techniques ===<br />
<br />
==== Client vs Composant ====<br />
<br />
Un robot "client" est un robot qui se connecte au serveur de la même manière qu'un client jabber.<br />
<br />
Un robot "composant" est un robot qui se connecte au serveur comme un composant (par exemple une passerelle). L'avantage d'un tel robot est que son jid est du genre bot.jabberfr.org, on peut donc le faire apparaitre dans les services (disco) des serveurs. On peut aussi plus facilement s'inscrire dessus (comme une passerelle) ou faire des recherches (comme un annuaire). Par contre presqu'aucun bot n'est fait comme ça. On devrait donc tout recoder.<br />
<br />
Pour l'instant le robot est un client, mais il peut très bien se transformer en composant pour avoir plus de fonctionnalités.<br />
<br />
==== Langage de programmation ====<br />
Python est utilisé avec la biliothèque jabber xmpp.py.<br />
<br />
==== Communication entre le wiki/forum/planet/... et le robot ====<br />
Pour pouvoir envoyer des notifications de modification il faut que le robot soit au courant de ces modifications.<br />
<br />
On utilise pour l'instant une communication par xmlrpc<br />
<br />
Les avantages :<br />
*Notifications instantannées<br />
*Possibilité d'avoir les sites sur différents serveurs<br />
<br />
== Utilisation ==<br />
Le robot est [xmpp:jabberfr@im.apinc.org jabberfr@im.apinc.org]. Vous pouvez l'ajouter comme contact.<br />
<br />
=== Liste des commandes ===<br />
Envoyer comme message au robot<br />
!commands<br />
Ils vous renverra la liste des commandes disponibles<br />
<br />
=== Notifications sur le wiki ===<br />
Pour utiliser la notification du wiki il faut envoyer un message au robot en lui disant :<br />
:* Pour recevoir une notification pour tout les changements :<br />
!wiki tout<br />
:* Pour recvevoir une notification uniquement pour les articles suivis :<br />
!wiki suivi<br />
:* Pour ne plus recevoir de notification :<br />
!wiki non<br />
<br />
=== Notifications sur le forum ===<br />
Pour utiliser la notification du forum il faut envoyer un message au robot en lui disant :<br />
:* Pour recevoir une notification pour tous nouveau message posté sur le forum :<br />
!forum tout<br />
:* Pour ne plus recevoir de notification :<br />
!forum non<br />
<br />
== Avancement ==<br />
<br />
* Possibilité de ne pas recevoir de notifications lorsqu'on est déconnecté, occupé, ou absent<br />
!notice_status busy<br />
pour ne pas recevoir de notification lorsqu'on est occupé (les autres possibilités sont away et offline)<br />
* Possibilité de configurer le bot avec les [[commandes ad-hoc]] [[Utilisateur:Omega|Omega]] 21 jun 2006 à 20:30 (CEST)<br />
<br />
* Changement de la manière dont marchent les notifications. Maintenant c'est plus intégré dans mediawiki, et ca permet de ne recevoir des notifications que pour les pages suivies. [[Utilisateur:Omega|Omega]] 14 aoû 2006 à 17:43 (CEST)<br />
<br />
* Modularisation d'une partie du code (voir svn) [[Utilisateur:Omega|Omega]] 14 aoû 2006 à 17:45 (CEST)<br />
<br />
== Participer ==<br />
Pour participer c'est simple il suffit de contacter [User:Omega Omega].<br />
* Le dépot subversion se trouve à : [http://gpl.insa-lyon.fr/svn/omega/botjabberfr].<br />
* Voir le dépot : [http://gpl.insa-lyon.fr/websvn/listing.php?repname=omega&path=%2Fbotjabberfr%2F WebSVN]<br />
* Récupérer les fichiers : <code>svn co http://gpl.insa-lyon.fr/svn/omega/botjabberfr</code></div>Jijipowahttps://wiki.jabberfr.org/index.php?title=MUC&diff=7911MUC2007-12-10T17:45:36Z<p>Jijipowa : ortho</p>
<hr />
<div>'''Jabber''' permet de participer à des discussions de groupe. Cette fonctionnalité est souvent désignée par [[Glossaire#muc|MUC]] (Multi-User Chat) ou [[Glossaire#groupchat|GroupChat]].<br />
<br />
Ces salons permettent de discuter avec d'autres personnes sur un thème précis, ou avec des personnes qui ont les même centres d'intérêts. Ces discussions sont gérés par un logiciel spécial au niveau du serveur Jabber, lorsqu'on rejoint un salon il faut donc préciser l'adresse de ce serveur. Il n'est pas nécessaire d'avoir un compte sur le serveur que l'on souhaite utiliser.<br />
<br />
== Comment joindre un salon de discussion ? ==<br />
<br />
Pour rejoindre un salon de discussion, il faut déjà avoir un client qui gère ces salons [[#Clients permettant les discussions de groupe | voir la liste]]. <br />
<br />
Ensuite il faut trouver un salon. Vous pouvez soit en créer un, soit en rejoindre un existant. La plupart des clients permettent de voir la liste des salons pour un serveur précis. Il n'existe pas d'annuaire global recensant tout les salons Jabber.<br />
<br />
Pour rejoindre un salon vous avez donc besoin :<br />
# Du nom d'un [[#Serveurs de conférences|serveur de conférence]] (JabberFR.org fournit [http://chat.jabberfr.org/ chat.jabberfr.org])<br />
# Du nom du salon auquel vous souhaitez vous connecter<br />
# D'un pseudonyme vous identifiant dans le salon<br />
<br />
[[Image:Connexion_groupchat.png]]<br />
<br />
Si le salon n'existe pas déjà, il sera créé.<br />
<br />
[[Image:Creation_groupchat.png]]<br />
<br />
== Que permet un salon de discussion ? ==<br />
<br />
Une fois dans un salon, le fonctionnement est similaire à celui d'IRC&nbsp;:<br />
* C'est une discussion en groupe ;<br />
* Il est possible de changer son pseudonyme ;<br />
* Il est possible de réserver son pseudonyme par serveur de chat<br />
* On peut inviter des contacts à nous rejoindre dans un salon ;<br />
* Il est possible de «&nbsp;s'isoler&nbsp;» avec une personne pour parler en privé ;<br />
* Il est possible de créer des [[GroupChat#La modération : tranquilité assurée|salles de discussion modérées]] ;<br />
* Chaque salon comporte un sujet (topic), que les modérateurs peuvent changer ;<br />
* Par défaut, seuls les modérateurs ont accès à l'adresse réelle des membres (les autres membres n'ont accès qu'au nom du serveur et au pseudonyme, ils voient les messages venir de ''salle@serveur_de_discussion/pseudonyme'') ;<br />
* Le serveur de discussion indique, via la navigation dans les services, une liste des salons qu'il héberge (si bien que les salons au nom évocateur attirent naturellement, à la manière d'IRC, les personnes intéressées) ;<br />
* Les salons peuvent être publics (accessibles à tous) ou privés (accessibles seulement à une liste de membres préféfinie), ou accessible par mot de passe ;<br />
* il est possible de rendre les salons de discussion persistants<br />
* Il est possible d'enregistrer les discussions qui ont lieu dans le salon. Ex: http://chat.jabberfr.org/logs/<br />
* etc.<br />
<br />
== Serveurs de conférences ==<br />
<br />
Tous les serveurs jabber ne sont pas forcément des serveurs de conférence.<br />
<br />
Voici quelques serveurs disponibles&nbsp;:<br />
* '''''chat.jabberfr.org''''' (France)<br />
* ''chat.fritalk.com'' (France)<br />
* ''conference.codingteam.net'' (France)<br />
* ''chat.amessage.info'' (Allemagne)<br />
* ''conference.jabber.ru'' (Russie)<br />
* ''conference.swissjabber.ch'' (Suisse)<br />
* ''conference.jabber.org'' (USA, le serveur est surchargé, les temps de latence peuvent être importants)<br />
* ''chat.zenwalk.fr'' (France)<br />
<br />
D'une manière plus générale, consultez la [http://www.jabber.org/user/publicservers.shtml liste des serveurs publics] (billet sur [https://www.xmpp.net/news/2006/11/13/user-friendly-server-list XMPP.net]). Vous pouvez utiliser n'importe quel serveur supportant le «&nbsp;Group Chat&nbsp;», sans avoir besoin d'un compte local sur le serveur.<br />
<br />
MUCSearch est un moteur de recherche de MUC : http://search.wensley.org.uk/<br />
<br />
== Clients permettant les discussions de groupe ==<br />
<br />
Les fonctionnalités basiques de discussion de groupe sont définies par le protocole GroupChat 1.0. MUC est une extension de GroupChat 1.0 permettant la configuration avancée des salles et la modération. Ci dessous la liste des premières versions respectives des clients Jabber permettant les discussions de groupe:<br />
* [[Coccinella]] 0.9.11 supporte MUC<br />
* [[Gaim]] 1.5 supporte MUC, la gestion des privilèges et de la configuration se fait à partir des commandes ''IRC''<br />
* [[Pidgin]] 2.0.0 supporte MUC, la gestion des privilèges et de la configuration se fait à partir des commandes ''IRC''<br />
* [[Gajim]] 0.8 supporte MUC<br />
* [[JWChat]] 1.0beta2 supporte MUC<br />
* [[Kopete]] 0.9.2 supporte Groupchat 1.0<br />
* [[Meebo]] Alpha supporte Groupchat 1.0<br />
* [[MUCkl]] supporte le MUC, utilise une interface web, et ne requiert pas de compte jabber<br />
* [[Psi]] 0.11 supporte MUC<br />
* [[Spark]] 2.0 supporte MUC<br />
* [[Tkabber]] supporte le MUC<br />
* [[MCabber]] supporte le MUC<br />
<br />
== Les salles à connaître ==<br />
<br />
Si vous souhaitez essayer les salles de discussion Jabber, rencontrer des gens, parler de tout et de rien ou parler d'un sujet précis mais que vous ne savez pas où aller, vous pouvez jeter un oeil à notre [[Salles de discussion|sélection de salles de discussion publiques]].<br />
<br />
== Liens ==<br />
* [[Administrer un salon]]<br />
* [[Salon_Persistant|Rendre un salon de discussion persistant]]<br />
<br />
[[Catégorie:Fonctionnalité Jabber]]</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Avatar&diff=7909Avatar2007-12-10T16:19:54Z<p>Jijipowa : ortho</p>
<hr />
<div>Un '''avatar''' est une imagette que vous choisissez pour vous représenter dans les [[roster]]s (listes de contacts) de vos correspondants.<br />
<br />
Idem, vos correspondants ont choisi un avatar qui les représente dans votre roster.<br />
<br />
Cet avatar peut être une photo d'identité, un photo plus personnelle, ou tout autre représentation graphique, concrète ou abstraite.<br />
<br />
[[Catégorie:Fonctionnalité Jabber]]</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Utilisateur:Jijipowa&diff=7908Utilisateur:Jijipowa2007-12-10T16:18:40Z<p>Jijipowa : moi</p>
<hr />
<div>Attention à vos fautes, je veille !</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7904Aperçu technique2007-12-08T14:29:58Z<p>Jijipowa : /* Conclusion */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendues possibles par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tous les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tous les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entre autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs participants, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs que des clients et aussi bien libres que propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissante pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des informations. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offerts par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7903Aperçu technique2007-12-08T14:29:07Z<p>Jijipowa : /* Un Adressage basé sur des Standards */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendues possibles par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tous les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tous les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entre autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs participants, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs que des clients et aussi bien libres que propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissante pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des informations. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7902Aperçu technique2007-12-08T14:20:43Z<p>Jijipowa : /* Format de Données XML */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendues possibles par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tous les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tous les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entre autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs participants, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs que des clients et aussi bien libres que propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissante pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des information. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7901Aperçu technique2007-12-08T14:18:48Z<p>Jijipowa : /* Protocoles ouverts */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendues possibles par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tous les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tous les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entre autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs participants, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs que des clients et aussi bien libres que propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissant pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des information. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7900Aperçu technique2007-12-08T14:14:28Z<p>Jijipowa : /* Client/Serveur */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendues possibles par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tous les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tous les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entres autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs ou des clients entièrement libres que des logiciels propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissant pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des information. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7899Aperçu technique2007-12-08T14:12:32Z<p>Jijipowa : /* Fondation architecturale */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendues possibles par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tout les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tout les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entres autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs ou des clients entièrement libres que des logiciels propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissant pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des information. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7898Aperçu technique2007-12-08T14:11:02Z<p>Jijipowa : /* Fondation architecturale */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendus possible par un réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quel autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendue possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelée présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basées sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tout les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tout les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entres autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs ou des clients entièrement libres que des logiciels propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissant pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des information. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowahttps://wiki.jabberfr.org/index.php?title=Aper%C3%A7u_technique&diff=7897Aperçu technique2007-12-08T14:06:37Z<p>Jijipowa : /* Introduction */</p>
<hr />
<div>Ce document fournit un aperçu technique haut-niveau des technologies Jabber.<br />
<br />
== Introduction ==<br />
<br />
Le terme «&nbsp;[[Jabber]]&nbsp;» est largement utilisé pour désigner un ensemble de [[protocole]]s ouverts permettant l'échange de données xml entre deux points quelconques d'un réseau. Mais aussi, pour désigner les technologies utilisant ces protocoles. Bien que Jabber soit principalement connu comme étant une plate-forme de [[messagerie instantanée]] et de présence (similaire aux anciens systèmes de MI comme AIM, ICQ, MSN, et Yahoo) basé sur xml, le cœur du protocole procure une infrastructure de streaming xml qui est utilisé pour une large variété de systèmes de communication en temps réel.<br />
<br />
Ce document propose un petit aperçu technique de l'architecture des technologies Jabber pour la messagerie instantanée et l'échange de présence, bien que beaucoup des principes abordés ici peuvent s'appliquer de manière plus générale. Pour plus d'informations concernant le protocole de Jabber, allez faire un tour sur le site http://www.xmpp.org/.<br />
<br />
== Un rapide exemple ==<br />
<br />
L'architecture du système de MI Jabber est très similaire à celle du système de messagerie le plus éprouvé de la planète&nbsp;: l'email. Bien qu'il y ait des différences fondamentales, si vous voyez Jabber comme un «&nbsp;email instantané&nbsp;», vous n'aurez pas vraiment tord. Alors comment est-ce que ça marche vraiment ? Pour comprendre comment, regardons d'abord un rapide exemple&nbsp;: Roméo et Juliette et la fameuse scène du balcon de Shakespeare.<br />
<br />
Juliette n'envoie pas de message directement («&nbsp;pair à pair&nbsp;») à Roméo, du moins pas dans le monde de Jabber. Juliette à un compte sur un serveur Jabber, et son identifiant Jabber (ou «&nbsp;[[Glossaire#jid|JID]]&nbsp;») ressemble beaucoup à une adresse email. Comme Juliette est une Capulet, elle enregistre son nom d'utilisateur «&nbsp;juliette&nbsp;» avec le serveur jabber tournant sur capulet.com, comme ça son JID est juliette@capulet.com. De la même manière, Roméo a un compte sur le serveur de sa famille et son JID est romeo@montague.net.<br />
<br />
Une fois que Juliette est connectée sur le serveur capulet.com, elle peut envoyer des messages à son ami. Pour être précis, voila ce qu'il se passe lorsque Juliette lance son client windows de son ordinateur portable, sur le balcon&nbsp;:<br />
<br />
1. Juliette envoie un message adressé à romeo@montague.net<br />
2. Le message est géré par le serveur Jabber de capulet.com<br />
3. Le serveur capulet.com établie une connexion avec montague.net, s'il n'en existe pas déjà une<br />
4. En supposant que les parents n'aient pas désactivé les communication serveur-à-serveur entre capulet.com et montague.net, le message de Juliette est envoyé vers le serveur jabber de montague.net<br />
5. Le serveur montague.net voit qu'un message est adressé à un utilisateur nommé «&nbsp;romeo&nbsp;» et le fait parvenir au client Jabber tournant sur le PDA de Roméo dans le verger des Capulets.<br />
<br />
Il y a beaucoup de choses ici&nbsp;: des clients tournant sur différents systèmes d'exploitation, plusieurs serveurs, un canal de communication entre les serveurs, et deux amoureux. Jabber gère tout sauf la dernière partie. Pour mémoriser le processus, visualisons le avec une image&nbsp;:<br />
<br />
[[Image:Schema simple reseau jabber.png]]<br />
<br />
== Fondation architecturale ==<br />
<br />
Ce schéma vous semble sans doute familier, car il décrit aussi l'architecture de l'email. Les communications pour les emails et Jabber sont rendus possible par une réseau distribué de serveurs parlant un protocole commun. Des clients spécialisés se connectent sur les serveurs afin de recevoir les messages des autres utilisateurs ou d'en envoyer, aussi bien sur le même serveur que sur n'importe quelle autre serveur connecté sur le réseau.<br />
<br />
Néanmoins, tandis que l'email est un système de stockage et de renvoi, les serveurs Jabber délivrent vos messages pratiquement en temps réel. La livraison immédiate est rendu possible par le fait que le serveur jabber sait quand vous êtes connecté. Vos contacts le savent aussi, si vous leur donnez la permission de le savoir. La connaissance de votre disponibilité est appelé présence, et c'est la clé de voute qui permet à la messagerie d'être instantanée.<br />
<br />
Jabber combine ces caractéristiques standards de la messagerie instantanée avec trois fonctionnalités additionnelles qui rendent la technologie unique. La première est un ensemble de protocoles ouverts, bien documentés, et faciles à comprendre. La deuxième est le fait que les protocoles sont basés à 100% sur XML, ce qui permet une messagerie structurée aussi bien entre des utilisateurs que des applications logiciels.<br />
La troisième est que Jabber utilise des adresses qui sont basé sur le DNS et des schémas d'URI reconnus, ce qui permet d'avoir des adresses du même genre que l'email (utilisateur@machine).<br />
<br />
Chacun de ces points clés est détaillé plus bas.<br />
<br />
== Client/Serveur ==<br />
<br />
Les technologies Jabber utilisent une architecture client-serveur, et non une architecture directe en pair à pair comme font d'autres systèmes de messagerie. Cela signifie que toutes les données Jabber envoyées d'un client à un autre doivent passer par au moins un serveur Jabber. (En fait, les clients Jabber sont libres de négocier des connexions directes, par exemple pour l'envoi de fichier, mais ces connexions «&nbsp;out-of-band&nbsp;» sont d'abord négociées en utilisant l'architecture client-serveur.)<br />
<br />
Un client Jabber se connecte à un serveur Jabber avec une connexion TCP sur le port 5222 (les serveurs se connectent entre eux avec le port 5269). Cette connexion est toujours active pendant toute la durée de la session du client sur le serveur, le client n'aura donc pas à demander au serveur s'il a reçu des messages, contrairement à un client email. Tout les messages vous étant destinés sont envoyés immédiatement à votre client, tant que vous êtes connecté. Le serveur regarde si vous êtes connecté ou non, et quand vous n'êtes plus connecté il mémorise tout les messages qui vous sont destinés, et vous les envoie lorsque vous vous reconnectez.<br />
<br />
== Protocoles ouverts ==<br />
<br />
Les technologies Jabber ont débuté dans la communauté open-source avec le serveur [[jabberd14|jabberd]] et les clients pour Windows, MacOS, et Linux. Le travail de l'équipe Jabber a consisté entres autres à définir un protocole ouvert pour du streaming XML sur un réseau. Ce protocole continue de s'approfondir et de s'élargir. L'approfondissement vient principalement du travail effectué par le groupe de travail [[Glossaire#xmpp|XMPP]] de l'Internet Engineering Task Force (IETF); ce groupe à formalisé le cœur du protocole de streaming XML sous le nom «&nbsp;Extensible Messaging and Presence Protocol&nbsp;», et a été approuvé par l'IETF en tant que RFC 3920 et RFC 3021. L'élargissement vient principalement du travail de la XMPP Standards Foundation qui définit des extensions au protocole de base qui offrent des fonctionnalités variées, comme les discussions à plusieurs, le transfert de fichiers, la découverte de services, les avatars, et encore beaucoup d'autres.<br />
<br />
Puisque toutes les technologies Jabber utilisent un protocole ouvert, n'importe qui peut implémenter ces protocoles, et ils peuvent utiliser n'importe quelle licence. Cela a permis l'explosion du nombre de logiciels Jabber, qui peuvent être aussi bien des serveurs ou des clients entièrement libres que des logiciels propriétaires.<br />
<br />
== Format de Données XML ==<br />
<br />
XML est une partie intégrale des technologies Jabber. Pourquoi ? Parce que ça leur permet d'être complètement extensibles et capables de contenir presque n'importe quelle donnée structurée. Quand un client se connecte au serveur, il ouvre un flux XML unidirectionnel du client vers le serveur, et le serveur répond avec un flux unidirectionnel du serveur au client. Ainsi chaque session implique deux flux XML. Toutes les communications entre le client et le serveur passent par ces deux flux, sous la forme de petits morceaux ou «&nbsp;stanzas&nbsp» de XML, comme le message suivant de Juliette à Roméo&nbsp:<br />
<br />
Exemple 1. Un message simple<br />
<br />
<pre><message from='juliette@capulet.com' to='romeo@montague.net'><br />
<body>Comment vas-tu, Roméo ?</body><br />
</message></pre><br />
<br />
<br />
Bien que beaucoup de stanzas Jabber sont simples, le format XML de Jabber peut aussi être étendu avec des namespaces XML officiels (gérés par la XMPP Standards Foundation) et des namespaces personnalisés pour des applications spécialisés. Cela fait de Jabber une plate-forme puissant pour transférer des données structurées, incluant des choses comme des appels XML-RPC et SOAP, des flux RSS, et des images SVG.<br />
<br />
== Réseau Distribué ==<br />
<br />
Comme nous l'avons vu, l'architecture de Jabber est faite de la même manière que celle de l'email. Chaque utilisateur se connecte à un serveur «&nbsp;maison&nbsp;», qui reçoit les informations à leur place, et ces serveurs communiquent entre eux à la place des utilisateurs. Ainsi n'importe quel domaine peut avoir son serveur Jabber. Chaque serveur fonctionne indépendamment des autres, et possède sa propre liste d'utilisateurs. De plus, chaque serveur Jabber peut communiquer avec n'importe quel autre serveur Jabber accessible par Internet (si les communications serveur-à-serveur sont activées). Chaque utilisateur est associé a un serveur spécifique (en s'enregistrant avec un fournisseur de service ou avec une configuration administrative dans une entreprise), et les adresses Jabber sont de la même forme que les adresses email. Le résultat est un réseau de serveurs flexible, contrôlable, et qui peut monter en charge bien mieux que les services monolithiques et centralisés utilisés par des fournisseurs de MI comme AOL, Microsoft et Yahoo.<br />
<br />
== Serveurs Modulaires ==<br />
<br />
Un serveur Jabber joue principalement trois rôles&nbsp;:<br />
* Gérer les connexions et les communications directement avec les clients Jabber.<br />
* Communiquer avec les autres serveurs Jabber.<br />
* Coordonner les différents composants serveurs associés avec le serveur.<br />
<br />
Les serveurs Jabber ont été conçus pour être modulaires, avec des morceaux de code spécifiques qui gèrent les fonctionnalités comme l'enregistrement, l'authentification, la présence, les listes de contacts, le stockage des messages hors-ligne, et d'autres. En plus, les serveurs Jabber peuvent être étendus avec des composants externes, qui permettent aux administrateurs des serveurs d'ajouter des services au serveur de base, comme des passerelles vers les autres systèmes de messagerie instantanée. De tels composants peuvent introduire d'avantage de complexité dans un déploiement Jabber sans sacrifier la simplicité du serveur et sans nécessiter que ces composants soient approuvés par l'équipe de développement du serveur. Une fois de plus, la flexibilité est une considération cruciale dans la communauté Jabber.<br />
<br />
== Des Clients Simples ==<br />
<br />
<br />
Un des principes de base du système de messagerie instantanée Jabber était qu'il devait être facile d'écrire un client (e.g., même quelque chose d'aussi simple qu'une connexion telnet). En effet, l'architecture de Jabber n'impose que très peu de restrictions aux clients. Les seules choses qu'un client Jabber doit faire sont&nbsp;:<br />
* Communiquer avec le serveur Jabber en utilisant un connexion TCP.<br />
* Analyser et interpréter des «&nbsp;stanzas&nbsp;» XML bien formés dans un flux XML.<br />
* Comprendre les types de données de base de Jabber (message, presence, et iq).<br />
<br />
Il est préférable avec Jabber de déplacer la complexité des clients vers les serveurs. Cela permet de faire des clients relativement facile à faire (comme le témoigne la grande diversité des clients Jabber disponible aujourd'hui) et facilite la mise à jour des fonctionnalités du système (i.e., sans obliger les utilisateurs à mettre à jour leur client). Dans la pratique, beaucoup de fonctions de bas niveau des clients (e.g., interpréter le XML et comprendre les type de base de Jabber) sont gérées par des bibliothèques pour clients Jabber, permettant aux développeurs de clients de se focaliser sur l'interface utilisateur.<br />
<br />
== Un Adressage basé sur des Standards ==<br />
<br />
Sur le réseau Jabber, il y a beaucoup d'entités différentes qui doivent communiquer entre elles. Ces entités peuvent représenter des serveurs, des [[passerelles]], des [[Salles_de_discussion|salons de discussions]], un utilisateur Jabber, etc. Des Jabber ID sont utilisés à la fois internement et externement pour définir l'appartenance ou pour router des information. Les caractéristiques principales des Jabber ID incluent&nbsp;:<br />
* Ils identifient de manière unique des objets individuels ou des entités pour échanger des messages ou des informations de présence.<br />
* Ils sont faciles à retenir et à transmettre dans le monde réel pour les utilisateurs.<br />
* Ils sont suffisamment flexibles pour permettre l'inclusion d'autres MI ou de schémas de présence.<br />
<br />
Chaque identifiant Jabber (ou «&nbsp;JID&nbsp;») contient un ensemble de données ordonnées. Les JID sont formés d'un domaine, d'un nœud et d'une [[Glossaire#ressource|ressource]] dans le format suivant&nbsp;:<br />
<br />
[nœud@]domaine[/ressource]<br />
<br />
Les éléments du JID sont définis comme suit&nbsp:<br />
* L'identifiant du Domaine est l'identifiant primaire. Il représente le serveur Jabber auquel l'entité de connecte. Tout domaine Jabber utilisable devrait être un nom de domaine entièrement défini.<br />
* L'identifiant du Nœud est l'identifiant secondaire. Il représente «&nbsp;utilisateur&nbsp;». Tout les nœuds sont rattachés a un domaine spécifique. Toutefois, l'identifiant du Nœud est optionnel, et un domaine spécifique (e.g. conference.jabber.org) est un Jabber ID valide.<br />
* L'identifiant de Ressource est l'identifiant tertiaire, il est optionnel. Toutes les ressources appartiennent à un Nœud. Dans Jabber l'identifiant de Ressource identifie un objet spécifique appartenant à l'utilisateur, comme un appareil ou un lieu. Les Ressources permettent a un utilisateur unique d'avoir plusieurs connexions simultanées avec le même serveur Jabber; par exemple juliette@capulet.com/balcon et juliette@capulet.com/chambre.<br />
<br />
Un utilisateur Jabber se connecte toujours à un serveur en utilisant une ressource particulière et a donc une adresse de la forme noeud@domaine/ressource lorsqu'il est connecté (e.g., juliette@capulet.com/balcon).<br />
Toutefois, comme une ressource est spécifique à une session, l'adresse de l'utilisateur peut être communiqué sous la forme noeud@domaine (e.g., juliette@capulet.com), ce qui est familier pour les gens car c'est la même forme qu'une adresse email.<br />
<br />
== Conclusion ==<br />
<br />
Les protocoles et technologies Jabber fournissent une véritable alternative ouverte aux services fermés et propriétaires offert par les anciens fournisseurs de MI comme AIM et MSN. La standardisation IETF de Jabber et la base XML permettent aux développeurs de créer une solution robuste, presque temps réelle de messagerie et de présence pour la MI et encore plus. Rejoignez la conversation, visitez http://www.jabber.org.</div>Jijipowa