Protocolo XMPP
| ||||||
“Surgimiento y desarrollo de XMPP” La especificación base de Jabber (más tarde XMPP) surgió en 1998 por Jeremie Millar, conocido como el primero de carácter abierto y tomado como protocolo por la comunidad Open Source en 1999, donde ha ido creciendo y evolucionando hasta la actualidad. XMPP (Extensible Messaging and Presence Protocol), es un protocolo abierto y extensible, con él queda establecida una plataforma para el intercambio de datos XML, que puede ser usado entre aplicaciones de Internet para mensajería instantánea, aunque originalmente fue ideado para la misma. Posee muchas implementaciones abiertas de servidores, clientes y librerías para las más diversas plataformas y lenguajes. Este protocolo en su funcionamiento topológico se basa en la clásica arquitectura cliente – servidor, aunque no fuerza a hacerlo así y mediante TLS permite cifrar los mensajes empleando diferentes algoritmos como RSA y DSS. Hasta la fecha XMPP ha tenido buena aceptación como alternativa libre con respecto al MSN Messenger de Microsoft, al AIM de AOL, que son propietarios. Hay que tener en cuenta que aunque es un protocolo joven, su uso ha ido creciendo considerablemente. Un ejemplo de ello es Google Talk, un cliente de mensajería instantánea que utiliza el protocolo y entre otras funcionalidades permite la transferencia de archivos, intercambio mediante voz y texto, así como el aviso de presencia de los usuarios y su estado de disponibilidad.
“Características”
Entre las características más significativas que posee el protocolo en cuanto a adaptabilidad y sencillez se tienen las siguientes:
- Abierto, público y libre
El protocolo XMPP está ampliamente documentado y puesto a disposición del público por la Jabber Foundation, en el sitio web de la misma. Además, cualquier individuo, organización o empresa pueden hacer uso de él para sus tecnologías de comunicación sin tener que pagar derechos de autor o licenciarlo gracias a que es abierto y multiplataforma.
- Estándar
XMPP está avalado por la organización imparcial IETF que se encarga de su registro y conservación. Al ser un estándar que ha seguido un riguroso proceso de regularización, no es concebible que cambie de la noche a la mañana sin previo aviso, por ejemplo, por los intereses comerciales de una empresa.
- Probado
Numerosas organizaciones privadas, grupos de usuarios y universidades usan la tecnología XMPP como sistema de comunicación, siendo notable la Universidad Jaume I de Castellón, que alberga uno de los servidores Jabber más grandes de España.
- Descentralizado
Su topología es distribuida. Cualquier individuo u organización pueden fácilmente montar un servidor para dar servicio a una comunidad de usuarios en régimen público o privado.
- Seguro
Las comunicaciones punto a punto, pueden ir aseguradas bajo una capa segura SSL. De este modo, se cifra la información que se intercambia. Adicionalmente, es habitual el uso de una firma o cifrado GPG (o PGP) de cada mensaje para autentificar la autoría del mismo por parte de los clientes.
- Extensible
XMPP se apoya en una potente característica de XML, los espacios de nombres. Al comportarse un servidor de XMPP básicamente como un router de XML, basta con definir nuevos espacios de nombres sobre los ya existentes para extender las funcionalidades de Jabber sin modificar en ningún momento los servidores existentes. El "peso" del protocolo recae en los clientes, que son los que interpretan los datos XML que reciben.
- Flexible
XMPP es un potente y versátil protocolo que permite a dos aplicaciones (cualesquiera) comunicarse eficientemente usando XML. Se conocen usos de XMPP para comunicar bots, autómatas, etc. Entre otra de sus posibilidades de uso, ofrece servicios tales como:
- Un directorio de usuarios.
- Salas de charla pública o puentes a otras mensajerías (como el email o el MSN).
Un cliente de mensajería con este protocolo se conecta a uno o varios servidores simultáneamente, de este modo puede ponerse en contacto con otros clientes conectados a esos servidores, esto se puede lograr con pasarelas o puertos de enlaces (gateways) que traducen de XMPP a otros protocolos de mensajería de diferentes redes. De todos modos, si se quiere entrar en contacto con clientes conectados a otros servidores o viceversa, basta con especificar la dirección de los mismos y los servidores implicados se pondrán en contacto entre sí de forma transparente al usuario. “Direccionamiento de los mensajes” Para el envío de mensajes el protocolo lo hace de una manera muy sencilla, los paquetes son enviados por el usuario a un receptor. Por defecto, no se reciben confirmaciones de que los mensajes han sido recibidos para reducir el tráfico en el servidor, además si el receptor no se encuentra disponible, el servidor guarda los mensajes hasta que se conecte. A este comportamiento particular se le denomina store and forward. El destinatario puede estar conectado al mismo servidor o no, en este último caso el remitente necesita establecer conexión con el otro servidor y entregar el mensaje, que tendrá que ser enrutado hacia el servidor destino. “Servidores XMPP” Son muy variadas las implementaciones de software de servidores entre las que se encuentran más de 10 que son propietarias/comerciales como son Jabber XCP, TIMP.NET, Jerry Messenger, Antepo OPN, etc. También de este tipo de implementaciones existen alrededor de 15 Open Source, dentro de las que se destacan:
- Citadel: Desarrollado en lenguaje C. Ofrece correo electrónico, calendario, libreta de direcciones, mensajería instantánea y otras funcionalidades en un mismo paquete integrado. Disponible en [1].
- DJabberd: Programa en lenguaje Perl. Disponible en [2].
- Jabberd14: Programa en lenguaje C/ C++. Disponible en [3].
- Ejabberd: Programado en Erlang, mantenido por la empresa ProcessOne y por una comunidad de desarrolladores cuya sede web se encuentra en [4].
De estos servidores Ejabberd es distribuido, tolerante a fallos y basado en estándares abiertos para lograr la comunicación en tiempo real (XMPP). Entre otras de sus características es de fácil instalación, es decir, no es necesario configurar una base de datos externa o un servidor externo, etc. porque ya todo está listo en un mismo paquete. Además, este protocolo al igual que sus servidores y librerías están ampliamente documentado (dígase videos y tutoriales) en varios sitios web.
Fuentes
Open Source. 2009. Jabber/XMPP daemon. [En línea] 2009. [5]. Aplicaciones Empresariales con Jabber. 2010. Aplicaciones Empresariales. [En línea] 2010. [6]. Jabber. 2008. Jabber. [En línea] abril de 2008. [7]. JabberES. 2007. JabberES. [En línea] 2007. [8].

