JBoss.orgCommunity Documentation

Chapter 3. Mobicents XML Document Management Server

3.1. Functional Architecture of the XDM Server
3.2. Configuring the XDM Server
3.2.1. Configuring the XDM Server XCAP root
3.2.2. XDM Server User Profile Provisioning
3.3. Resources and Further Information about the XDM Server

The Mobicents XML Document Management Server (XDM Server) is part of the Mobicents SIP Presence Service; it is the first free and open source implementation of an XML Document Management Server as defined in the Open Mobile Alliance (OMA) XML Document Management v1.1 specification. This functional element of next-generation IP communication networks is responsible for handling the management of user XML documents stored on the network side, such as presence authorization rules, contact and group lists (also known as resource lists), static presence information, and much more.

The Mobicents XDM Server includes the following XCAP application usages:

The SIP interface partially implements the XCAP Diff Event IETF draft, version 3. Subscriptions to a single document or usage by an entire application are supported. However, these differing usages do not extend to the single-XML element or attribute value level. Regarding the notifications, the diff-processing subscription parameter, if present, is ignored, and patching of content is not available at the moment, which means that only the document etags, new and/or old, will be provided.

The XDM Server comprises the following functional elements:

Implementation Architecture of the Mobicents XML Document Management Server

The XDM Server is built on top of the Mobicents JAIN SLEE container. This figure depicts the architecture of the XDM Server implementation.

The Functional Elements of the XML Document Management Server

Data Source Resource Adapter

This resource adapter implements the Data Source functional element.

The RA Type defines two activities objects, DocumentActivity and AppUsageActivity, both of which are used to fire events that signal that a document, element or attribute was updated.

The RA Type also defines a Service Building Block (SBB) RA interface to manage the users and documents stored in the XDM Server, and create activities, where events will be fired. The resource adapter will only fire events on activities that exist; that is, the RA won't create activities implicitly if a document is updated.

The RA Type also provides a base abstract implementation of the resource adapter, making it very simple to change the underlying resource used to store information, which is by default the internal JDBC datasource of the JBoss Application Server.

AppUsage Cache Resource Adaptor

This resource adapter stores the XCAP application usages installed in the server.

Each AppUsage is an object that includes the logic to validate XCAP documents that result from XCAP requests and are expensive to create; this resource adapter thus provides caching of AppUsages, using a pool model.

The resource adapter doesn't possess events or activities.

AppUsage Service

XCAP Application Usages are installed through a JAIN SLEE service, making it possible to add and/or remove application usages while the server is running.

Aggregation Proxy Service

This JAIN SLEE service implements the aggregation proxy functional element. It handles events fired by the Mobicents HTTP Servlet resource adapter and then uses two child SBBs: the User Profile Enabler SBB to retrieve information regarding the user needed for authentication/authorization of the XCAP request, and the Request Processor SBB, which handles the XCAP request.

Request Processor SBB

The Request Processor SBB implements the request processor functional element, providing a synchronous SBB interface to process XCAP requests. It uses the AppUsage Cache resource adapter to borrow AppUsage objects, and the Data Source resource adapter to retrieve or set documents stored in the server's data source.

User Profile Enabler SBB

This SBB provides a synchronous SBB interface used in JAIN SLEE child relations in order to retrieve user information, to be used on user authentication. Two different implementations of the interface are provided: the first considers whether the information is stored in the XDM Data Source, another interfaces with a Diameter Sh Server, such as IMS HSS.

XCAP Diff Subscription Control Service

This JAIN SLEE Service extends the abstract SIP Event Subscription Control component to handle SIP subscriptions on the xcap-diff event package.

The implementation architecture figure also contains client-side components:

For further information on the Mobicents XDM Server, here is a list of additional resources: