La arquitectura de gestión de documentos XML (XDM) es una iniciativa de OMA (Open Mobile Alliance) para proporcionar a los habilitadores de servicio y, en general, a cualquier aplicación que requiera manejar datos en formato XML, un conjunto común de protocolos, convenciones de acceso a datos, clasificación de aplicaciones y entidades funcionales. Servicios como la gestión de presencia, pulsar para hablar (push to talk), registro de conversaciones de texto, gestión de listas de contactos, etc. utilizan XML como formato de intercambio de información. Todos estos servicios son clave en IMS y han sido adoptados por 3GPP como servicios estándar, de ahí la importancia de la arquitectura de gestión de documentos XML definida por OMA.
Viewer 1 Viewer 2
Viewer 3Viewer 4Viewer 5 1. Traditional live content
delivery network
User 1 User 2
User 3 User 4 User 5 3. Traditional interactive
multiuser application
Sends multimedia content to each viewer
Receives events from each user
Updates internal application state
Sends relevant application state updates to each user
Viewer 1Viewer 2Viewer 3Viewer 4Viewer 5 2. Multicast live content delivery
network Multicast IP network Servers Users User 1 User 2 User 3 User 4 User 5 4. Distributed multicast game
(MiMaze)
Receive events from all users via multicast address
Send events to all users via multicast address
Update own application state
Sends multimedia content to one multicast address
Sends one-time initialization data (game maps, multicast address, etc.)
Play content
Play content
Send events to server
Receive application state
IP network Servers
La especificación XDM comprende el uso de un conjunto común de protocolos para que los usuarios autorizados (denominados Principals) puedan crear, modificar, suscribirse a cambios, borrar y buscar documentos XML. En concreto, adopta el protocolo XCAP (XML Configuration Access Protocol) definido en la RFC 4825 [28] para gestionar el contenido de los documentos y el protocolo SIP –concretamente el paquete de notificación de eventos definido en la RFC 3265 [29] – para gestionar las suscripciones a cambios en los mismos. Además, la especificación de XDM define funciones de búsqueda utilizando el lenguaje XQuery [30] y establece los requisitos para la gestión de documentos XML entre dominios.
La figura Fig. 13 muestra la arquitectura XDM 2.0 completa. Los clientes de XDM (XDMC), que se encuentran en los equipos de usuario o en los servidores de aplicación, acceden a documentos XML almacenados en el servidor XDM (XDMS). El proxy de agregación (AP) y los intermediarios de búsqueda proporcionan interfaces tanto a redes locales como remotas, constituyendo el punto de entrada en un escenario multidominio.
Cabe destacar que los documentos gestionados por XDM no tienen un formato arbitrario: deben estar asociados a un identificador de aplicación único (Application Usage Identifier - AUID) y estar construidos conforme al modelo requerido por dicha aplicación. Algunos tipos de aplicación son presencia, listas compartidas, perfiles compartidos, políticas compartidas y grupos compartidos.
XDM Client XDM Aggregation Proxy XDM Search Proxy IMS Core Enabler specific entities XQuery XCAP XCAP XCAP XQuery XQuery SIP SIP SIP XQuery XQuery Aggregation Proxy of Remote Network XDM Servers Shared Group Shared Profile Shared List Shared Policy XCAP XQuery Presence
2.4.1
Presencia
El servicio de presencia permite publicar información acerca del estado actual de un usuario (lugar, actividad, etc.), dispositivos disponibles y preferencias (p.ej. teléfono móvil para llamadas de voz y un equipo de salón para video llamadas) o incluso servicios en uso en un momento dado.
La información de presencia se combina habitualmente con la lista de contactos o agenda para mostrar la disponibilidad del usuario, si bien las aplicaciones innovadoras que se desarrollen podrían utilizar esta información sobre dispositivos y preferencias de servicio para ofrecer un valor añadido al usuario. Por ejemplo, un servicio de teleconsulta médica basado en IMS, donde el usuario disponga de un monitor de corazón portátil para hacer la lectura del electrocardiograma en su domicilio, podría actualizar el estado de presencia del usuario automáticamente al colocarse los sensores para mostrarse como no disponible y redirigir las llamadas al buzón de voz mientras dure la lectura para evitar distracciones que influyan en la medida o hagan que deba repetirse.
2.4.2
Lista compartida
Una lista compartida define un conjunto de URIs de usuario y atributos asociados. Se utiliza habitualmente para almacenar la agenda de contactos en la red (concretamente en el servidor XDM) y compartirla/sincronizarla con todos los dispositivos conectados del usuario. Además, puede utilizarse para crear listas personales con el fin de agrupar contactos, como por ejemplo una lista de amigos que les gusta el golf, y usar las listas como entradas para aplicaciones que ofrezcan servicios a grupos (p.ej. un servicio avanzado de videoconferencia que, a partir de la lista, coordine el establecimiento de las sesiones necesarias para agregar a todos los usuarios a una videoconferencia).
2.4.3
Perfil compartido
El perfil compartido es un documento XML que comprende diversos atributos personales como la edad, hobbies, idiomas, país, etc. Las entidades autorizadas (usuarios o aplicaciones) pueden usar esta información para ofrecer un servicio personalizado o forzar políticas de servicio (p.ej. no permitir el acceso a personas menores de 18 años a un chat público). Por supuesto, XDM contempla mecanismos de seguridad y privacidad para controlar el acceso a esta información.
2.4.4
Política compartida
Un documento de políticas compartidas consiste en un conjunto de reglas de acceso al servicio. Las reglas pueden incluir condiciones (p.ej. la URI es “sip:golfservice@provider”) y acciones (p.ej. permitir el acceso a mi lista de amigos de golf).
Cabe destacar que la arquitectura XDM sólo permite almacenar y gestionar las políticas de acceso, pero no forzarlas. Es responsabilidad de la aplicación o servicio (p.ej. el gestor de listas compartidas o una aplicación de terceros) consultar el documento de políticas asociado y evaluar las condiciones expuestas.
2.4.5
Grupo compartido
Un grupo compartido (Shared Group) es un conjunto predefinido de usuarios (Users) acompañado de un conjunto de políticas y atributos. La comunicación entre estos usuarios se denomina sesión de grupo (Group Session).
El concepto de grupos compartidos es posiblemente la adición más importante a la arquitectura 2.0 de XDM en lo relativo a aplicaciones multiusuario. En XDM 1.0 existe un concepto similar denominado grupo PoC y asociado a la aplicación de pulsar para hablar (PTT/PoC), que permite definir un conjunto de usuarios y ponerlos en comunicación tipo walkie-talkie. En XDM 2.0, sin embargo, se ha generalizado el concepto para extenderlo a cualquier tipo de aplicación, de modo que cualquier servicio o aplicación pueda describir una comunicación multiusuario en un formato estándar. Por supuesto, PoC es una de estas aplicaciones pues la definición de grupos compartidos es compatible con la ya definida de grupos PoC3.
No obstante, el documento XML que describe un grupo compartido únicamente define sus características de una forma estándar, pero los servidores XDM de grupos compartidos no realizan ninguna gestión de sesiones ni almacenan el estado de la conferencia. Tampoco fuerzan las políticas descritas. Todas estas tareas deben ser implementadas por una entidad lógica externa denominada Group Session Controlling Function (función de control de sesiones de grupo), que típicamente corresponde a la aplicación multiusuario que haga uso de la arquitectura XDM para la gestión de grupos compartidos. Citando a OMA [31], <<la función de control de sesiones de
3 De hecho, para mantener la compatibilidad con las aplicaciones PoC definidas en el marco de XDM 1.0,
el espacio de nombres por defecto en XDM 2.0 para los grupos compartidos es urn:oma:xml:poc:list- service, aunque el documento no tiene por qué estar definiendo realmente un grupo para la aplicación
grupo está implementada en un servidor de aplicaciones y proporciona gestión centralizada de las sesiones de grupo, lo que incluye la aplicación de las políticas de grupo>>.
La Fig. 14 muestra la estructura de un documento que describe un grupo compartido. Cada grupo está identificado por su URI de servicio (list-service URI) e incluye el conjunto de miembros que forman actualmente el grupo (list) y las políticas que aplican al establecimiento de sesiones de grupo (ruleset, age-restriction, sessionactive- policy, qoe, supported-services, etc.). Adicionalmente, permite indicar que el grupo aparezca en los procesos de búsqueda, de forma que usuarios externos puedan ñencontrar el grupo mediante consultas de búsqueda y potencialmente unirse a la sesión de grupo.
Fig. 14. Esquema de un grupo compartido
<list-service> uri <display-name> <list> <entry> <external> <invite- members> <max-participant- count> <ruleset> <rule> <conditions> <actions> <allow- conference- state> <allow-invite- users- dinamically> <allow-media- handling> <remove-media- handling> <allow- expelling> <…> <subject> <age-restriction> <session-active- policy> <max-duration> <required- participants> <min-participant- count> <schedule> <automatic- group- advertisement> <supported- services> <service> <qoe> <searchable>