
Un serveur de messagerie instantanée, basé sur un standard ouvert
ejabberd est un serveur de messagerie instantanée à haute performance. Ce type de serveur permet de transférer des informations de présence et de statut entre utilisateurs connectés, ainsi qu'entre serveurs. Il permet également les communications temps-réel entre eux.
ejabberd repose sur XMPP (eXtensible Messaging and Presence Protocol). Il s'agit d'un protocole largement accepté, décrit en XML et standardisé par l'IETF ( Internet Engineering Task Force).
L'évolution du protocole est gérée par la Jabber Software Foundation (JSF), dont la mission est de créer les meilleurs protocoles au monde pour la messagerie instantanée, suivi de présence, et autres formes de communications quasi temps-réels basées sur XML.
La principale force du protocole XMPP est qu'il est naturellement distribué. Cela signifie qu'il n'est pas nécessaire de centraliser l'ensemble sur un unique serveur : les sociétés peuvent utiliser leur propre serveur, chacun d'entre eux pouvant router les messages d'un utilisateur, sur un serveur donné, vers un autre utilisateur sur un autre serveur distant. Ceci ajoute une forte notion de sécurité qui manquait aux systèmes de messagerie instantanée existants. La messagerie instantanée avec XMPP permet donc de contrôler la communication entre utilisateurs d'une même organisation en la délimitant au sein de celle-ci, tout en assurant que la communication entre organisations ne se fasse qu'entre les serveurs de celle-ci, sans transiter par des serveurs intermédiaires non contrôlés.
XMPP permet également l'ajout de passerelles appelées transports. Ces passerelles sont connectées aux serveurs XMPP existants et permettent de communiquer avec les utilisateurs d'autres réseaux de messagerie instantanée. ejabberd est ainsi, par exemple, compatible avec AOL Messenger, ICQ, MSN et Yahoo Messenger.
En se reposant sur un protocole ouvert, ejabberd bénéficie d'une communauté vaste et dynamique. Des dizaines de clients XMPP sont disponibles sous quasiment tous les systèmes d'exploitations actuels.
Montée en charge et support des clusters de serveurs
ejabberd est un serveur de messagerie instantanée hautement performant. Il monte en charge naturellement jusqu'à accepter des milliers d'utilisateurs simultanés sur un seul serveur, mais peut facilement monter encore plus haut en charge par l'ajout d'autres noeuds dans le cluster ejabberd.
Les capacités de cluster d'ejabberd apportent d'intéressantes caractéristiques :
- Un domaine donné peut être servi par un groupe de serveurs ejabberd
- Tolérance aux pannes : en fonctionnant sur un cluster de serveurs, la base de données d'ejabberd est redondante, tout en restant synchronisée, grâce à un robuste moteur de base de données transactionnel et distribué. Si l'un des noeuds du cluster s'arrête, le comportement global du domaine ejabberd n'est pas affecté, et le service reste disponible.
- L'ajout ou le retrait de serveurs dans le cluster ejabberd peut s'effectuer à la volée, sans l'arrêt du service.
Fonctionnalités
ejabberd est l'un des serveurs XMPP les plus avancés, implémentant une très grande partie des Jabber Enhancement Proposals (JEPs). ejabberd propose ainsi :
- Vaste support du protocol XMPP/JEP (voir la liste des protocoles supportés pour plus de détails).
- De nombreux services intégrés : Jabber User Directory - annuaire des utilisateurs Jabber -, Multi-User Chat - discussions multi-utilisateurs - , un transport IRC, publication/abonnement, HTTP-Polling,...
- Conformité au transport Jabber standard : ejabberd fonctionne avec différentes passerelles, telle que PyAIM-t, PyICQt, PyMSN-t, Yahoo-t, ASP SMS, etc.
- Hébergement virtuel : ejabberd peut héberger différents domaines sur une seule instance.
- Listes d'utilisateurs partagés : une liste d'utilisateurs particulière peut être prédéfinie pour être vue de l'ensemble des utilisateurs d'un ou plusieurs domaines.
- Connexions sécurisées : ejabberd permet les connexions chiffrées entre clients et serveurs, par les protocoles STARTTLS, SASL ou SSL.
- Stockage externe : ejabberd peut utiliser un annuaire LDAP existant. Il peut également utiliser une base de données PostgreSQL ou toute autre base accessible via ODBC, en remplacement du moteur de base de données distribuée nativement proposée.
- Support du mode « découverte » ( Discovery ) : ejabberd intègre totalement les fonctionnalités de découverte, qui peuvent être utilisées pour configurer des services directement depuis le client de messagerie instantanée.
- Configuration facile : Le serveur ejabberd fonctionne dès son installation et est fourni avec une interface d'administration par le web, ainsi que des équivalents en ligne de commande. Des scripts de migration depuis Jabberd1.4 sont également fournis.
- Distribution et tolérance aux pannes.
- Multi-plateforme : ejabberd fonctionne sous Microsoft Windows, Linux, MacOSX, Solaris, ... Il fonctionne sous toute plateforme sur laquelle la machine virtuelle Erlang fonctionne. Vous pouvez bien entendu faire fonctionner ejabberd sur un groupe de machines hétérogènes, c'est à dire un cluster utilisant différents systèmes d'exploitation.
- Collecte de données statistiques : les statistiques peuvent être obtenues directement au travers du protocole XMPP.
- Internationalisation : ejabberd utilise l'internationalisation des flux XML/XMPP, et son interface d'administration web est fournie avec le support multi-lingues.
- Support complet d'IPv6.
Une description plus complète des fonctionnalités d'ejabberd est disponible sur le site communautaire d'ejabberd.
Performances
ejabberd est particulièrement performant. Il peut accepter des milliers d'utilisateurs simultanés sur un seul noeud. Pour plus d'informations, se référer aux tests de performances publiés.
Licence
ejabberd est distribué sous la licence GNU General Public License version 2.
Support technique
Vous trouverez un support actif d'ejabberd par la communauté des développeurs ainsi qu'un support commercial assuré par la société Process-one. Process-one développe activement les fonctionnalités et extensions majeures d'ejabberd. Pour plus d'informations, contacter Process-one.

