La selección del servidor a estudiar y para posterior implantación de servicio fue hecha en base a las siguientes consideraciones:
Que tanto soporte del protocolo Jabber/XMPP que brinda cada producto
Opciones de autenticación: debe ser seguro (soportar encriptación de mensajes que evite que terceros puedan leer los mensajes, y autenticación que permita restringir entre quienes se puede intercambiar mensajes; su uso no debe comprometer la seguridad de la empresa mediante el empleo de puertas traseras o caballos de Troya)
Opciones para almacenamiento de datos
Debe ser popular para asegurar el futuro activo del producto
Debe ser interoperable (evitar aislamiento al poder intercambiar mensajes con usuarios de otros servicios de mensajería)
Documentación de la que se dispone
Capacidades adicionales para poder abarcar la mayor cantidad de requerimientos para brindar servicios empresariales (vistos anteriormente), ya sea de forma interna o mediante componentes adicionales (que también deben ser Open/Free).
Para poder tener una idea de la diferencia entre soluciones Open/Free y Comerciales , se incluirá también el análisis de 2 de las más completas Soluciones basadas en XMPP/Jabber.
Los servidores a relevar son los más completos y populares:
|
Antepo OPN |
Jabber XCP |
Jive-Messenger |
Jabberd |
Ejabberd |
Desarrollador |
Antepo Inc |
Jabber Inc |
Jive Software |
Proyecto jabberd |
Proyecto ejabberd |
URL |
jabberd.jabberstudio.org |
ejabberd.jabberstudio.org |
|||
Licencia |
Comercial |
Comercial |
GPL (antes comercial) |
GPL |
GPL |
Plataformas |
AIX,HP-UX, Linux, Solaris, Windows |
Linux,Solaris,Windows |
AIX,HP-UX, Linux,MacOS X, Solaris, Windows |
AIX,*BSD,HP-UX, Linux,MacOS X,Solaris,Windows |
AIX,*BSD,HP-UX, Linux,Solaris,Windows |
Versión |
4.0 |
4.0 |
2.0.0 |
2.0s6 |
0.7.5 |
Lenguaje |
Java |
C |
Java |
C |
Erlang |
|
Tabla comparativa de características relevar: |
|
||||
|
Antepo OPN |
Jabber XCP |
Jive-Messenger |
Jabberd |
Ejabberd |
|
Soporte de protocolo |
|
|
|
|
|
|
Seguridad Cliente-Servidor |
|
|
|
|
|
|
TLS |
Si |
Si |
No |
Si |
Si |
|
SASL |
No |
Si |
No |
Si |
Si |
|
SSL (Viejo) |
Si |
Si |
Si |
Si |
Si |
|
Seguridad Servidor-Servidor |
|
|
|
|
|
|
TLS |
Si |
Si |
No |
Si |
No |
|
SASL |
Si |
Si |
No |
No |
No |
|
Dialback |
Si |
Si |
No |
Si |
Si |
|
Internacionalización |
|
|
|
|
|
|
Para dominio |
Si |
Si |
Si |
Si |
Si |
|
Para usuario |
Si |
Si |
Si |
Si |
Si |
|
Para Recurso |
Si |
Si |
Si |
Si |
Si |
|
xml:lang |
Si |
Si |
No |
No |
Si |
|
Funciones XMPP Básicas |
|
|
|
|
|
|
Asignación de recursos |
Si |
Si |
Si |
Si |
Si |
|
Sesiones de MI |
Si |
Si |
Si |
Si |
Si |
|
Reglas de privacidad |
Si |
Si |
No |
Si |
Si |
|
Errores de XMPP |
Si |
Si |
Si |
Si |
Si |
|
Contactos y Presencia |
|
|
|
|
|
|
Manejo de Rosters |
Si |
Si |
Si |
Si |
Si |
|
Subscripciones |
Si |
Si |
Si |
Si |
Si |
|
Ultima actividad |
Si |
Si |
No |
Si |
Si |
|
Manejo de mensajes |
|
|
|
|
|
|
Entrega demorada |
Si |
Si |
No |
Si |
Si |
|
Expiración de mensajes |
Si |
No |
No |
Si |
Si |
|
Recuperación flexible de mensajes offline |
No |
Si |
No |
No |
No |
|
Protocolos para “descubrimiento” |
|
|
|
|
|
|
Descubrimiento de servicios |
Si |
Si |
Si |
Si |
Si |
|
|
|
|
|
|
|
|
Soporte para Cliente |
|
|
|
|
|
|
Autenticación no-SASL |
Si |
Si |
Si |
Si |
Si |
|
Registración con otros servidores y servicios |
Si |
Si |
Si |
Si |
Si |
|
Almacenamiento XML privado |
Si |
Si |
Si |
Si |
Si |
|
Almacenamiento de v-cards |
Si |
Si |
Si |
Si |
Si |
|
Información e interacción con el Servidor |
|
|
|
|
|
|
Entidad v-card |
Si |
Si |
Si |
Si |
Si |
|
Entidad Tiempo |
Si |
Si |
Si |
Si |
Si |
|
Versionado de software |
Si |
Si |
Si |
Si |
Si |
|
Comandos ad-hoc |
No |
No |
Si |
No |
No |
|
Métodos alternativos de conexión |
|
|
|
|
|
|
Protocolo para componentes externos |
Si |
Si |
No |
Si |
Si |
|
HTTP Polling |
Si |
Si |
No |
No |
Si |
|
Opciones de autenticación |
|
|
|
|
|
|
Fuentes para autenticación |
|
|
|
|
|
|
LDAP |
Si |
Si |
Si |
Si |
Si |
|
Certificados |
Si |
Si |
Si |
No |
No |
|
Radius |
Si |
No |
Si |
Si |
No |
|
PAM |
Si |
Si |
Si |
Si |
No |
|
Dominio NT |
Si |
No |
Si |
No |
No |
|
Standalone |
Si |
Si |
Si |
Si |
Si |
|
Mecanismos SASL |
|
|
|
|
|
|
PLAIN |
Si |
Si |
No |
Si |
Si |
|
DIGEST-MD5 |
Si |
Si |
No |
Si |
Si |
|
Kerberos_V4 |
Si |
Si |
No |
No |
No |
|
ANONYMOUS |
No |
Si |
No |
Si |
No |
|
Opciones para almacenamiento de datos |
|
|
|
|
|
|
File-system |
Si |
Si |
Si |
Si |
Si |
|
LDAP |
Si |
Si |
Si |
Si |
No |
|
BerkleyDB |
No |
Si |
Si |
Si |
No |
|
PostgreSQL |
Si |
Si |
Si |
Si |
No |
|
MySQL |
Si |
No |
Si |
Si |
No |
|
MS SQL Server |
Si |
No |
Si |
No |
No |
|
Oracle |
Si |
Si |
Si |
Si |
No |
|
MS Active Directory |
Si |
Si |
Si |
No |
No |
|
Otros |
No |
No |
Si (DB2) |
Si |
Si (Mnesias – BD impl en Erlang) |
|
Documentación |
|
|
|
|
|
|
Archivo README |
Si |
Si |
Si |
Si |
Si |
|
guía de usuario |
Si |
Si |
Si |
Si |
Si |
|
Documentación de APIs |
Si |
Si |
Si |
Si |
Si |
|
Capacidades adicionales |
|
|
|
|
|
|
Almacenamiento de Mensaje Offline |
Si |
Si |
Si |
Si |
Si |
|
Archivado de Mensajes (log y auditoría) |
Si |
Si |
Si |
Si (componente externo) |
Si (componente externo) |
|
Herramientas de administración |
Si |
Si |
Si |
Si (componente externo) |
Si |
|
Estadísticas del servidor |
Si |
Si |
Si |
No |
Si |
Paralelamente se realizaron instalaciones y pruebas con Jive-XMPP, ejabberd y Jabberd.
(En el caso de Jive Messenger (o Jive XMPP), las pruebas realizadas fueron a modo de curiosidad técnica ya que el producto pasó a se Open-Source en Noviembre de 2004 y ya se había comenzado con la implantación de un servidor XMPP en facultad.)
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.