XMPP: ¿Qué es? Definición del protocolo de mensajería y presencia

Descubre XMPP: protocolo de mensajería y presencia basado en XML, abierto y escalable. Aprende cómo funciona, su ecosistema de servidores y clientes y por qué millones lo usan.

Autor: Leandro Alegsa

El Protocolo Extensible de Mensajería y Presencia (XMPP) (antes llamado Jabber) es un protocolo de mensajería instantánea. Se inspira en XML.

Es diferente a la mayoría de los protocolos porque es un estándar abierto. Esto significa que cualquiera que tenga un nombre de dominio y una conexión a Internet puede ejecutar su propio servidor. La mayor parte del software y los clientes son de código abierto.

Otros programas como Google Talk y Gizmo5 utilizan el protocolo XMPP. Se ha instalado en miles de servidores de Internet. Hay más de quinientos millones de usuarios que utilizan software basado en el protocolo. Entre los clientes se encuentran Pidgin e iChat.

Cómo funciona

XMPP intercambia datos en formato XML mediante tres tipos principales de "stanzas" o fragmentos: message (mensajes instantáneos), presence (presencia/estado) e iq (consultas/respuestas). Cada usuario se identifica con un JID (Jabber ID) con formato usuario@dominio/resource, lo que permite distinguir varias sesiones del mismo usuario (por ejemplo, móvil y escritorio).

La comunicación puede ocurrir:

  • cliente → servidor (el cliente se conecta a su servidor)
  • servidor → servidor (federación entre dominios, similar al correo electrónico)
  • cliente → cliente (directa o a través de servidores intermediarios)
El protocolo define el uso de conexiones persistentes y negociación de características mediante extensiones, lo que lo hace flexible para muchos casos de uso en tiempo real.

Características principales

  • Descentralización: cualquiera puede ejecutar un servidor XMPP bajo un dominio propio.
  • Extensibilidad: XMPP se amplía mediante XEPs (XMPP Extension Protocols) para añadir funciones como salas de chat, compartición de archivos, notificaciones, etc.
  • Federación: los servidores pueden comunicarse entre sí, permitiendo interacción entre usuarios de distintos proveedores.
  • Orientado a presencia: gestiona estados (disponible, ausente, ocupado) y suscripción a la presencia de otros.
  • Soporte multicliente: el JID/resource permite múltiples dispositivos simultáneos por usuario.

Seguridad y cifrado

XMPP usa mecanismos estándar para proteger las conexiones: TLS (incluyendo STARTTLS) para cifrar el transporte y SASL para la autenticación. Para cifrado de extremo a extremo (E2EE) se emplean extensiones y protocolos como OMEMO (XEP-0384), OpenPGP o OTR en clientes que lo soportan. La seguridad completa depende de la implementación y de la verificación de huellas/llaves por parte de los usuarios.

Usos y aplicaciones

XMPP se utiliza en múltiples contextos:

  • mensajería instantánea y presencia para consumidores y empresas;
  • sistemas de chat corporativo e intranets;
  • notificaciones en tiempo real y servicios de colaboración;
  • comunicaciones en aplicaciones móviles;
  • IoT y mensajería máquina a máquina por su naturaleza abierta y extensible.

Históricamente Google Talk y otros servicios usaron XMPP; aunque muchos servicios comerciales actuales han optado por protocolos propietarios, XMPP sigue muy presente en proyectos de código abierto y soluciones autohospedadas.

Servidores, clientes y bibliotecas populares

  • Servidores: ejabberd, Prosody, Openfire, Tigase, MongooseIM.
  • Clientes: Pidgin, Gajim, Conversations (Android), Dino (Linux), Adium/iChat (histórico en macOS).
  • Bibliotecas: Smack (Java), Strophe.js (JavaScript), SleekXMPP/Slixmpp (Python).

Ventajas y limitaciones

  • Ventajas: estándar abierto, descentralizado, extensible, buena interoperabilidad entre implementaciones, fuerte ecosistema de código abierto.
  • Limitaciones: puede resultar más complejo de configurar que servicios centralizados; la experiencia del usuario depende de las implementaciones cliente/servidor; el cifrado E2EE no es automático en todos los clientes y requiere soporte explícito de extensiones como OMEMO.

Estándares y comunidad

El núcleo de XMPP está recogido en RFCs publicados por el IETF (las versiones modernas incluyen RFC 6120 y RFC 6121, que reemplazaron a las anteriores). La evolución de funciones y extensiones se gestiona principalmente a través de la XMPP Standards Foundation (XSF), que mantiene las XEPs usadas por la comunidad.

En resumen, XMPP es un protocolo maduro y flexible para mensajería y presencia que favorece la descentralización, la interoperabilidad y la adaptación mediante extensiones. Es una buena opción cuando se busca control sobre la infraestructura, compatibilidad con estándares abiertos y capacidad de personalización.

Historia

Jeremie Miller inició el proyecto Jabber en 1998. La primera versión pública importante fue en mayo de 2000. Este primer software fue la base de XMPP. Era un competidor de SIMPLE, que se basaba en el protocolo SIP.

En agosto de 2001 se creó la Jabber Software Foundation (JSF). La función principal de la JSF era gestionar los protocolos XML de XMPP documentándolos. Además, la organización debía coordinar a las numerosas empresas que utilizaban la tecnología XMPP.

En 2002, la Internet Engineering Task Force creó un grupo de trabajo para formalizar el protocolo. El grupo recibió el nombre de Extensible Messaging and Presence Protocol Working Group, o XMPP WG.

En 2007, la Jabber Software Foundation (JSF) se convirtió en la XMPP Standards Foundation (XSF).

XMPP y HTTP

XMPP puede utilizar HTTP para enviar datos a los servidores. Esto es útil cuando hay cortafuegos estrictos, porque los datos se pueden enviar a través de la web en lugar de a través de un puerto diferente (puerto 5222 y 5223).

También hay servidores públicos abiertos que utilizan puertos estándar (puerto 80 y 443) para que los usuarios puedan conectarse desde detrás de la mayoría de los cortafuegos.

Preguntas y respuestas

P: ¿Qué es XMPP?


R: XMPP son las siglas de Extensible Messaging and Presence Protocol (Protocolo Extensible de Mensajería y Presencia). Es un protocolo de mensajería instantánea que se inspira en XML y es un estándar abierto.

P: ¿En qué se diferencia XMPP de otros protocolos?


R: XMPP se diferencia de otros protocolos porque es un estándar abierto. Esto significa que cualquiera que tenga un nombre de dominio y una conexión a Internet puede ejecutar su propio servidor.

P: ¿Qué programas utilizan el protocolo XMPP?


R: Google Talk y Gizmo5 son ejemplos de software que utilizan el protocolo XMPP. La mayoría del software y los clientes son de código abierto.

P: ¿Cuántos servidores en Internet han instalado XMPP?


R: XMPP está instalado en miles de servidores de Internet.

P: ¿Cuántos usuarios utilizan software basado en el protocolo XMPP?


R: Hay más de quinientos millones de usuarios que utilizan software basado en el protocolo XMPP.

P: ¿Qué clientes utilizan XMPP?


R: Algunos clientes que utilizan XMPP son Pidgin e iChat.

P: ¿Cuál es la principal ventaja de que XMPP sea un estándar abierto?


R: La principal ventaja de que XMPP sea un estándar abierto es que cualquiera que tenga un nombre de dominio y una conexión a Internet puede ejecutar su propio servidor.


Buscar dentro de la enciclopedia
AlegsaOnline.com - 2020 / 2025 - License CC3