PDF de programación - XMPP

Imágen de pdf XMPP

XMPPgráfica de visualizaciones

Publicado el 6 de Abril del 2019
443 visualizaciones desde el 6 de Abril del 2019
412,7 KB
16 paginas
Creado hace 8a (09/10/2011)
XMPP

Federico Scavone

federicoscavone@gmail.com

Universidad Católica Nuestra Señora de la Asunción. Facultad de Ciencias y

Tecnología

Abstract. Éste documento explica los que es XMPP, su historia, arqui-
tectura, principales características, ventajas ;y los servidores, clientes y
librerías que implementan éste protocolo. El objetivo no es entrar tanto
en detalles técnicos sino mas bien analizar a grandes rasgos que es y
como funciona XMPP.

Key words: Xmpp, Protocolo, Mensajería instantánea, Miller

1

Introducción

En los últimos años el acceso a la información en tiempo real se ha vuelto de vital
importancia, tanto en el ámbito laboral como en el personal. Las personas nece-
sitan que que la distribución y/o el intercambio de la información sea inmediata
y segura. Una de las herramientas más ultilizadas para llevar a cabo ésta tarea
es la mensajería instantánea, por ser la que mas ventajas ofrece. Para realizar
el intercambio de información a través de la mensajerías instantánea, es nece-
sario establecer un conjunto de reglas a seguir para que los equipos involucrados
“hablen” el mismo idioma. A ésto se le denomina protocolo. A continuación
veremos no de los protoclos más utilizados, el XMPP.

2 Historia

Todo comenzó en el año 1998, cuando a Jeremie Miller, cansado de tener que
usar 4 clientes distintos de mensajería instanánea para poder usar los servicios
de IM1 de la época, tuvo la brillante idea de diseñar un protocolo abierto, al
cual le puso el nombre de Jabber.

En Febrero de 2000, fueron publicados los RFCs2 propuestos por Miller al

IMPP WG3 del IETF4.

El RFC 2778 define un modelo abstracto para un sistema de mensajería in-
stantánea y presencia. El RFC 2779 define los requisitos para la implementación
de dichos sistemas.

1 Instant Messenger
2 Request for comment
3 Grupo de Trabajo en Protocolos de Mensajería Instantánea y Presencia
4 Internet Engineering Task Force

Como es común en este ámbito, existían diferencias entre los miembros
del IMMP WG, por lo que nunca se lanzó ningún protocolo real. Pero como
también suele pasar en el ambiente Open-source, la comunidad existente detrás
del proyecto Jabber no se dió por vencida y siguió trabajando. En octubre del
2000 lanzaron la versión 1.2 del servidor abierto Jabberd (Jabber Daemon).

La comunidad seguía creciendo pero no estaba bien organizada y era muy
difícil coordinar los trabajos de esa manera, por lo que en agosto de 2001 se
constituye la Jabber Software Foundation (JSF), cuya misión era coordinar el
desarrollo y documentar los protocolos XML utilizados por Jabber.

La JSF decide cambiar el nombre de Jabber a XMPP (eXtensible Messaging
and Presence Protocol). Recién en febrero de 2002, la JSF vuelve a enviar a
la IETF un borrador actualizado del protocolo Jabber. Todo iba sobre ruedas,
gracias a la organización conseguida desde la fundación de la JSF. En junio del
mismo año enviaron 3 nuevos borradores con excelentes resultados.

En octubre de 2002, la IESG5 designa un grupo de trabajo dedicado exclu-
sivamente al XMPP. El XMPP WG se enfoco en realizar mejoras del protocolo,
especialmente en la seguridad y la arquitectura. Mientras tanto, la JSF estaba
centrada en el desarrollo de las extensiones de Jabber, que eran compatibles con
XMPP.

Dos an˜os mas tarde, se publican los RFCs donde se define el protocolo XMPP

completo.

– El RFC 3920 especifica las características principales del protocolo XMPP
– El RFC 3921 describe las aplicaciones y extensiones para proveer servicios

de mensajería instantánea y presencia previstos en XMPP

– El RFC 3922 establece como realizar un mapeo entre XMPP y CPIM6
– RFC 3923 define un método de firma y encriptamiento de objetos punto a

punto usando XMPP

3 Código abierto y Estándar abierto

Si bien XMPP fue desarrollado en sus inicios por la comunidad de código abierto
Jabber, el protocolo en sí no es un proyecto de código abierto, más bien es un
estándar abierto, lo que da como resultado una tecnología abierta que no está
atada a ningún proyecto de software ni a ninguna compañía. Gracias a esto ex-
isten una infinidad de implementaciones de XMPP código abierto que pueden
ser descargadas gratis por cualquier usuario, administrador de sistema o desar-
rollador. La mayoría de éstas implementaciones están enfocadas a la mensajería
instantánea. Existen una infinidad de clientes código abierta para cualquier sis-
tema operativo y/o dispositivo. También existen servidores código abierto que
pueden implementarse en las empresas, colegios, universidades y proveedores
de servicios. Existen librerías código abierto para casi todos los lenguajes de

5 Internet Engineering Steering Group
6 Common Profile for Instant Messaging

programación que pueden ser utilizadas para desarrollar clientes personaliza-
dos, servidores, aplicaciones en tiempo real, o bien extensiones para aplicaciones
existentes.

4 Cómo funciona XMPP

4.1 Arquitectura

El protocolo XMPP usa una arquitectura cliente-servidor descentralizada, lo que
permite a los desarrolladores de programas clientes enfocarse en la experiencia
de los usuarios, y a los desarrolladores de servidores enfocarse en el rendimiento
y escalabilidad. Es mucho mas simple para una organización (recordemos que
cualquiera puede montar su propio servidor y unirse a la red) mantener este
tipo de redes, que las redes peer-to-peer. Además es bastante robusta, ya que no
posee un punto de falla único.1

Fig. 1. Arquitectura cliente-servidor descentralizada

Cuando visitamos una página web, el navegador se conecta a un servidor
web para obtener el contenido de la página, pero no siempre todo el contenido
de la misma se encuentra alojado en el mismo servidor, cuando esto sucede,
esos servidor no se conectan entre ellos, sino que el mismo navegador establece
conexiones diferentes con cada servidor. Ésto sucede porque la arquitectura Web
no permite conexiones interdominos.2

Cuando enviamos un email a alguno de nuestros contactos ubicados en un
dominio diferente al nuestro, el cliente de correo se conecta a nuestro servidor de
correo, y éste se encarga de enrutar el mensaje hasta nuestro destino, pudiendo
pasar por otros servidor de correo intermedios antes de llegar al destino final.
Ésto significa que la red de correos realiza múltiple saltos entre servidores.3

Como la red de correos, pero a diferencia de la Web, XMPP utiliza conexiones
interdominios, pero de una forma diferente. Cuando enviamos un mensaje XMPP

Fig. 2. Arquitectura Web

Fig. 3. Arquitectura Email

Fig. 4. Arquitectura XMPP

a algún contacto en otro dominio, el cliente XMPP se conecta a nuestro servidor
XMPP, y éste se conecta directamente al servidor XMPP de nuestro contacto,
sin realizar múltiples saltos. Ésta implementación de la arquitectura es mucho
más segura porque previene la suplantación de identidad, y hasta cierta manera,
el spam.4

Característica

Web Email XMPP

Saltos múltiples

Si
N/A Si

Conexiones interdominios No

Si
No
Table 1. Arquitecturas cliente-servidor

4.2 Direcciones

Cada entidad XMPP necesita tener su propia dirección, llamada JabberID (JID).
La JID tiene el mismo formato que las direcciones de correo, usuario@dominio.
La ventaja de ésto es que es mucho más facil recordar éste tipo de direcciones
que si se utilizara directamente el protocolo IP. Pero éste formato depende com-
pletamente de la infraestrucutra del DNS.

4.3 Recursos

XMPP nos permite estar conectados al servidor desde varios lugares al mismo
tiempo, para esto usa algo llamado Recurso. El Recurso no es mas que una
cadena de referencia que identifica al cliente que está utilizando el usuario. Esto

se añade al JID precedido de un caracter quedando el identificador completo
de la siguiente manera: usuario@dominio/recurso.

4.4 XML

XMPP es en escencia una tecnología para transmitir xml. Cuando iniciamos
sesión en un servidor XMPP, se establece una conexión TCP persistente y luego
se negocia los parámetros para que el servidor pueda establecer otra conexión
de retorno. Una vez establecida la conexión podemos intercambiar mensajes
asíncronamente con el servidor.

Existen 3 tipos de etiquetas XML para transmitir los diferentes tipos de

mensaje:

– Message: Sirve para enviar mensajes entre los usuarios.
– Presence: Para informar la presencia de los usuario. Esto incluye cuando se

conectan, desconectan, cambian de estado o de nombre.

– Iq: Se utiliza para la transmisión de comandos internos.a nueva conexión,

informar de errores y cosas que no tienen nada que ver con los usuarios.

Cliente: <stream:stream>
Cliente: <presence/>
Cliente: <iq type="get">
Cliente: <query xmlns="jabber:iq:roster"/>
Cliente: </iq>

Servidor: <iq type="result">
Servidor: <query xmlns="jabber:iq:roster">
Servidor: <item jid="fscavone@uca.edu.py"/>
Servidor: <item jid="jeuzzarru@jeuzzarru.com"/>
Servidor: </query>
Servidor: </iq>

Cliente: <message from="fscavone@uca.edu.py"
Cliente: to="jeuzzarru@jeuzzarru.com">
Cliente: <body>Esto es un mensaje !</body>
Cliente: </message>
.
.
.
Cliente: <presence type="unavailable"/>
Cliente: </stream:stream>

Table 2. Ejemplo XMPP

4.5 Pasarelas

Una característica muy importante de XMPP es la posibilidad de interactuar
con otras redes de mensajería como Windows Live MEssenger, ICQ, Yahoo!
Messenger, SMS, Email u otros. Lo que hace posbile realizar esto son las pasare-
las. La pasarela es un servicio transparente para el usuario que funciona como
mediador entre los distintos protocolos. Ésto permite a cualquier cliente XMPP
comunicarse con cualquier red para la cual exista una pasarela, sin necesidad de
modificar el cliente.

Fig. 5. Pasarela XMPP

4.6 Extensiones

Otra característica importante de XMPP es la extensibilidad. Si bien el núcleo
del protocolo ofrece todas las funcionalidades básicas de la mensajería instantánea
y presencia, el hecho de que sea extensible nos brinda la posibilidad de i
  • Links de descarga
http://lwp-l.com/pdf15663

Comentarios de: XMPP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad