Jabberd2 distribuye sus servicios a través de 5 componentes desarrollados en C, los cuales se comunican vía TCP/IP soportando encriptación en el flujo interno y externo de datos mediante el uso de OpenSSL, cada componente es configurable mediante archivos XML:
Router
Es el componente más importante de servidor, acepta conexiones de los demás componentes y pasa paquetes XML (los paquetes pueden ser mensajes de usuario o paquetes del servidor mismo) entre ellos
S2S
Maneja la comunicación con servidores externos
Resolver
Componente utilizado por S2S, resuelve hostnames para el S2S como parte de la autenticación vía dialback
SM
Implementa la mayor parte de funcionalidades de la parte de mensajería instantánea en sí:
Pasa mensajes
Presencia
Listas de personas
Subscripciones
El SM se conecta al Software de datos de la aplicación (BD) para obtener los datos de persistencia. SM también maneja las extensiones de Discovery (dichas extensiones son para descubrimientos de servicios que brinda el servidor como por ejemplo descubrimiento Gateways disponibles) y listas privadas
C2S
maneja la comunicación con clientes Jabber2
Se conecta con los clientes
pasa paquetes para el SM
Autentica Clientes
Registra usuarios
Dispara actividades (triggers activity) con el SM
El componente C2S se conecta con el software de datos de Autenticación (DB, LDAP) , para autenticar y registrar usuarios
Jabber2 también requiere de componentes externos:
Application Data Store: base de datos para almacenar datos del servidor y de los usuarios como ser: lista de contactos, v-cards, mensaje del día, información de creación de cuentas, logout de usuarios, encolamiento de mensajes, mensajes offline, información de licencia vacacional del usuario.
Authentication Data Store: base de datos o LDAP para mantener información de registro y autenticación de usuarios
Gateway(s) de M.I. externos: actualmente existen gateways para MSN, AIM,Yahoo, ICQ, IRC, SMS, SMTP y otros menos conocidos
Figura 3 : Diagrama de componentes de Jabberd2
Cabe destacar que la implementación basada en componentes que se comunican vía TCP/IP permite una solución con una granularidad de distribución excepcional. No solo se puede lograr escalabilidad vertical en un solo servidor Jabberd (esto es mejorando el HD del equipo donde corre el servidor), sino que se permite una escalabilidad horizontal para el mismo servidor con el mismo dominio, esto es corriendo cada componente en Servidores físicos distintos. Gracias a esto se puede incrementar la seguridad en buena manera, por ejemplo el componentes S2S y los Gateways pueden colocarse en servidores separados dentro de la DMZ entre dos firewalls, y los componentes para mensajería local dentro de la red local.
Gracias a la arquitectura que propone XMPP y la implementación descentralizada de Jabberd. Se puede obtener gran flexibilidad al momento de implementación de solución de mensajería de acuerdo a el caso en que nos afrontemos, prácticamente se pueden distribuir los servidores y componentes de los mismos de la manera que más convenga.
Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.