Abstract:
A method is disclosed of providing an XML Document Manager Server function to an XML Document Manager Client ( 2 - 1 ). The XML Document Manager Server function is enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents. In the method, the logic component is provided by a first network entity ( 60 - 1 ), with which the XML Document Manager Client ( 2 - 1 ) communicates directly or indirectly to receive the XML Document Manager Server function, and the database component is provided by a second network entity ( 70 ) different to the first network entity ( 60 - 1 ).

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to a method and apparatus relating to an Extensible Markup Language (XML) Document Manager (XDM) Server (XDMS), for example as defined by the Open Mobile Alliance (OMA). 
         [0003]    2. Description of the Related Art 
         [0004]    The Open Mobile Alliance (OMA) Architecture Document “XML Document Management Architecture” (currently at OMA-AD-XDM-V1 — 0-20051006-C) describes the features and architecture of the “XML Document Management enabler” as follows. 
         [0005]    “The XML Document Management defines a common mechanism that makes user-specific service-related information accessible to the service enablers that need them. Such information is expected to be stored in the network where it can be located, accessed and manipulated (created, changed, deleted, etc.). XDM specifies how such information will be defined in well-structured XML documents, as well as the common protocol for access and manipulation of such XML documents. The XML Configuration Access Protocol (XCAP) [The Extensible Markup Language (XML) Configuration Access protocol (XCAP), http://www.ietf.org/internet-drafts/draft-ietf-simple-xcap-07.txt, work in progress], as defined by IETF, has been chosen as the common XML Document Management protocol. 
         [0006]    The XDM Specification [“XML Document Management (XDM) Specification”, OMA-TS-XDM_Core-V1 — 0, available from http://www.openmobilealliance.org/release_program/XDM_archive.html] defines two main features:
       The common protocol, XML Configuration Access Protocol (XCAP), by which principals can store and manipulate their service-related data, stored in a network as XML documents.   The SIP subscription/notification mechanism by which principals can be notified of changes to such documents.       
 
         [0009]    Documents accessed and manipulated via XCAP are stored in logical repositories in the network, called XML Document Management Servers (XDMS). Each repository may be associated with a functional entity which uses its data to perform its functions. (For example, a POC server accesses a POC XDMS to obtain a particular type of user document, a POC Group document, which provides the member list for a POC group session, and uses this information to invite such members for a POC session.) 
         [0010]    The Shared XDM Specification [“Shared XDM Specification”, OMA-TS-XDM_Shared-V1 — 0, available from http://www.openmobilealliance.org/release_program/XDM_archive.html] specifies a specific type of repository, called a Shared XDMS, which stores documents which can be reused by other enablers. This enabler specifies one such document: the URI List. This is a convenient way for a principal to group together a number of end user identities (e.g., “Friends” or “Family) or other resources, where such a list is expected to be reused by a number of different enablers. 
         [0011]    Due to the reusable nature of the XDM enabler, there will be interactions with other service enablers, and therefore, the architectural design of the XDM enabler accommodates the needs of those enablers.” 
         [0012]    The XML Document Manager (XDM) provides an architecture for managing service specific data. The XML Document Management defines a common mechanism that makes user-specific service-related information accessible to the service enablers that need them. The service-specific information is expressed and exchanged by means of XML documents, and this information is stored in the network where it can be located, accessed and manipulated (created, changed, deleted, etc.). The network entity assumed responsible for storing and manipulation of such information is the XDM Server (XDMS). 
         [0013]    It is desirable to provide a technically and commercially efficient implementation of the above-described scheme. 
       SUMMARY OF THE INVENTION 
       [0014]    According to a first aspect of the present invention there is provided a method of providing an XML Document Manager Server function to an XML Document Manager Client, the XML Document Manager Server function being enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, in which method the logic component is provided by a first network entity, with which the XML Document Manager Client communicates to receive the XML Document Manager Server function, and the database component is provided by a second network entity different to the first network entity. 
         [0015]    At least one XML document may comprise service-specific data. 
         [0016]    The at least one operation may be selectable from those defined by the XML Configuration Access Protocol. 
         [0017]    The at least one operation may be selectable from the following: accessing the document; manipulating the document; creating the document; replacing the document; deleting the document; retrieving the document; storing the document; creating an XML element in the document; replacing an XML element in the document; deleting an XML element from the document; retrieving an XML element from the document; creating an XML attribute for an XML element in the document; deleting an XML attribute from the document; and retrieving an XML attribute from the document. 
         [0018]    The method may comprise, when the at least one operation comprises an operation to retrieve an XML document already stored in the database component, sending a request for the XML document from the first network entity to the second network entity, and receiving the requested XML document at the first network entity from the second network entity. 
         [0019]    The method may further comprise, when the at least one operation comprises an operation to modify the XML document, modifying the XML document at the first network entity and sending the modified XML document from the first network entity to the second network entity for storing back in the database component. 
         [0020]    The method may comprise, when the at least one operation comprises an operation to store an XML document not already stored in the database component, sending the XML document from the first network entity to the second network entity for storing in the database component. 
         [0021]    The first network entity may appear to the XML Document Manager Client as an XML Document Manager Server. 
         [0022]    The second network entity may be a Home Subscriber Server of an IP Multimedia Subsystem. 
         [0023]    Communication between the first network entity and the second network entity may be determined at least in part by the sh-interface protocol. 
         [0024]    The second network entity may be optimised for data storage. 
         [0025]    The method may comprise receiving at least one message from the XML Document Manager Client at the first network entity that specifies the at least one operation to be performed. 
         [0026]    The at least one message may conform to the XML Configuration Access Protocol. 
         [0027]    A plurality of such database components may be provided in separate respective second network entities. 
         [0028]    The plurality of database components may be associated with different respective services. 
         [0029]    The first network entity may communicate with the XML Document Manager Client via another network entity. 
         [0030]    According to a second aspect of the present invention there is provided a network apparatus for providing an XML Document Manager Server function to an XML Document Manager Client, the XML Document Manager Server function being enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, in which network apparatus the logic component is provided by a first network entity, with which the XML Document Manager Client communicates to receive the XML Document Manager Server function, and the database component is provided by a second network entity different to the first network entity. 
         [0031]    According to a third aspect of the present invention there is provided a network entity for providing at least part of an XML Document Manager Server function to an XML Document Manager Client, the XML Document Manager Server function being enabled by a database component for storing at least one XML document and a logic component for causing at least one operation to be performed on one or more of the at least one XML documents, the network entity comprising: the logic component, with the database component being provided by a separate entity of the network; and means for cooperating with the separate network entity to provide the XML Document Manager Server function to the XML Document Manager Client. 
         [0032]    According to a fourth aspect of the present invention there is provided an operating program which, when run on an apparatus, causes the apparatus to carry out a method according to the first aspect of the present invention. 
         [0033]    According to a fifth aspect of the present invention there is provided an operating program which, when loaded into an apparatus, causes the apparatus to become apparatus according to the third aspect of the present invention. 
         [0034]    The operating program may be carried on a carrier medium. The carrier medium may be a transmission medium. The carrier medium may be a storage medium. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0035]      FIG. 1  is a block diagram schematically illustrating network entities of an existing XML Document Management Architecture solution; 
           [0036]      FIG. 2  is a block diagram schematically illustrating network entities of an XML Document Management Architecture embodying the present invention; 
           [0037]      FIG. 3  is a signal flow diagram illustrating the operation of an embodiment of the present invention to retrieve service data from an XDM Server; 
           [0038]      FIG. 4  is a signal flow diagram illustrating the operation of an embodiment of the present invention to modify service data associated with an XDM Server; and 
           [0039]      FIG. 5  is a schematic diagram illustrating parts of a UMTS network. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0040]    As described above, in the existing solution for the XML Document Management Architecture, the network entity assumed responsible for storing and manipulation of service-specific information, expressed and exchanged by means of XML documents, is the XDM Server (XDMS). The following is an extract from the above-referenced OMA Architecture Document: “Documents accessed and manipulated via XCAP are stored in (logical) repositories in the network, called generically XML Document Management Servers (XDMS), each repository being associated with a functional entity which uses the data in its associated repository to perform its functions. For example, a POC server accesses a POC XDMS to obtain a particular type of user document, a POC Group document, which provides the member list for a POC group session, and uses this information to invite such members for a POC session.” 
         [0041]      FIG. 1  illustrates the relevant network entities defined in the above-referenced OMA Architecture Document (the OMA Architecture Document introduces other network entities, but these are of little relevance here). In  FIG. 1 , two XDM Clients  2 - 1  and  2 - 2  are in communication with respective different XDM Servers  6 - 1  and  6 - 2  via an Aggregation Proxy 4. The XDM Clients  2 - 1  and  2 - 2  are client entities that provide access to the various XDMS features. They provide an end user with the possibility to create, modify or delete an XML document, and by that create, modify or delete service specific data. The Aggregation Proxy 4 is the contact point for the XDM Clients  2 - 1  and  2 - 2  to access XML documents stored in any XDM Server; the Aggregation Proxy 4 performs functions like authentication or routing of requests. The XDM Servers  6 - 1  and  6 - 2  hold the service specific data, and implement the procedures to create, modify or delete such data. 
         [0042]    The existing solution as shown in  FIG. 1  assumes the service specific data to be stored and available in the XDMS. As a consequence, a user of this data is bound to a particular instance of the XDMS. This has the consequence that high availability requirements are placed components of the XDMS, which means higher development costs. Another consequence is that two copies of the service specific data exist in the network: one in the XDMS, and another one in the network entity responsible for executing the service (for example an IMS application server, for more of which, see below). This leads to a requirement for synchronisation, which is technically burdensome to provide. 
         [0043]    An embodiment of the present invention is intended to address the above-mentioned problems. 
         [0044]    Internally, it can be considered that a direct implementation of an XDMS as set out in the above-referenced OMA Architecture Document would consist of (at least) two sub-functions: (a) database component for storing the service specific data; and (b) an XDMS logic component for handling the manipulation of the data. In the existing solution described above with reference to  FIG. 1 , the XDMS is aware of the current status of the service specific data, and it can be regarded as state-full. 
         [0045]    On the contrary, in an embodiment of the present invention, storing of the service specific data is separated from the XDMS execution logic, and as such an embodiment of the present invention can be seen as introducing a state-less XDMS. 
         [0046]      FIG. 2  illustrates an embodiment of the present invention. The architecture outlined above with reference to  FIG. 1  is enhanced in the following way in the embodiment shown in  FIG. 2 . The XDM Servers  6 - 1  and  6 - 2  of  FIG. 1  are respectively replaced by XDM Server Execution Logic network entities  60 - 1  and  60 - 2  in  FIG. 2 . In addition, a Service Specific Data Repository  70  is provided in  FIG. 2 . 
         [0047]    The network entities  60 - 1  and  60 - 2  are referred to above as XDM Server Execution Logic network entities, but they are visible to the XDM Clients  2 - 1  and  2 - 2  as if they were “normal” XDM Servers like the XDM Servers  6 - 1  and  6 - 2  of  FIG. 1 , differing from “normal” XDM Servers mainly in having only the XDMS logic component and not the database component. The XDM Clients  2 - 1  and  2 - 2  are unaffected by, and do not need to know of, the separation of the data repository  70  from the XDM Server Execution Logic network entities  60 - 1  and  60 - 2 . For this reason, the XDM Server Execution Logic network entities  60 - 1  and  60 - 2  in an embodiment of the present invention can also be referred to simply as XDM Servers  60 - 1  and  60 - 2 . 
         [0048]    In an embodiment of the present invention, at invocation of the XDMS function, data is fetched from a central network repository (for example, the Service Specific Data Repository  70 ), which can be optimised for data storage. In this way, the XDMS Execution Logic network entities  60 - 1  and  60 - 2  are state-less and can be implemented without considering high availability requirements, as any XDMS Execution Logic entity in the network could be used as fall-back. It also eliminates the need for data synchronisation. 
         [0049]    At reception of an XDM request to modify service specific data, in an embodiment of the present invention the XDMS Execution Logic network entity  60 - 1  or  60 - 2  would:
       Fetch an up-to-date copy of the service specific data from the data repository  70 .   Perform the necessary actions on the data.   Store the modified data back into the data repository  70 .       
 
         [0053]    Request for creation or deletion of service specific data are handled in a similar manner. Using this mechanism, the XDMS Execution Logic network entity  60 - 1  or  60 - 2  does not need to have any memory of the current state of the service data. It can be implemented in a transparent and state-less way. 
         [0054]    Retrieval and modification of service data in an embodiment of the present invention will be described in more detail below with reference to  FIGS. 3 and 4  respectively. This embodiment is described in the context of IP Multimedia Subsystem (IMS), and before a detailed description of the embodiment, the context within which the embodiment is implemented will first be described. 
         [0055]    UMTS (Universal Mobile Telecommunications System) is a third generation wireless system designed to provide higher data rates and enhanced services to subscribers. UMTS is a successor to the Global System for Mobile Communications (GSM), with an important evolutionary step between GSM and UMTS being the General Packet Radio Service (GPRS). GPRS introduces packet switching into the GSM core network and allows direct access to packet data networks (PDNs). This enables high-data rate packets switch transmissions well beyond the 64 kbps limit of ISDN through the GSM call network, which is a necessity for UMTS data transmission rates of up to 2 Mbps. UMTS is standardised by the 3 rd  Generation Partnership Project (3GPP) which is a conglomeration of regional standards bodies such as the European Telecommunication Standards Institute (ETSI), the Association of Radio Industry Businesses (ARIB) and others. 
         [0056]    The standardisation of UMTS has progressed in three phases. The first phase is known as Release &#39;99. The Release &#39;99 specifications define the basic architecture that consists of the UMTS Terrestrial Radio Access Network (UTRAN), Circuit Switched Core Network (CS-CN) and Packet Switched Core Network (PS-CN). The release &#39;99 specification offers traditional circuit as well as packet-switched services. The next phase in the standardisation process is Release 4,adding new services to the &#39;99 architecture. Release 5 represents a significant shift, offering both traditional telephony as well as packet-switched services over a single converged packet-based network. 
         [0057]    The UMTS Release 5 architecture adds a new subsystem known as the IP Multimedia Subsystem (IMS) to the PS-CN for supporting traditional telephony as well as new multimedia services. IMS provides IP Multimedia services over mobile communication networks (3GPP TS 22.228, TS 23.228, TS 24.229, TS 29.228, TS 29.229, TS 29.328 and TS 29.329 Releases 5 to 7). IMS provides key features to enrich the end-user person-to-person communication experience through the use of standardised IMS Service Enablers, which facilitate new rich person-to-person (client-to-client) communication services as well as person-to-content (client-to-server) services over IP-based networks. The IMS is able to connect to both PSTN/ISDN (Public Switched Telephone Network/Integrated Services Digital Network) as well as the Internet. 
         [0058]    The IMS makes use of the Session Initiation Protocol (SIP) to set up and control calls or sessions between user terminals (or user terminals and application servers). The Session Description Protocol (SDP), carried by SIP signalling, is used to describe and negotiate the media components of the session. Whilst SIP was created as a user-to-user protocol, IMS allows operators and service providers to control user access to services and to charge users accordingly. The 3GPP has chosen SIP for signalling between a User Equipment (UE) and the IMS as well as between the components within the IMS. 
         [0059]      FIG. 5  is an illustrative diagram showing a UMTS communications network  200  comprising a User Equipment (UE)  204  located within a Visited Network  202 . The UE  204  is attached to a Serving GPRS Support Node (SGSN)  208  via a UTRAN  206 , which is in turn in communication with a Gateway GPRS Support Node (GGSN)  210 . Within the Visited Network  202 , the GGSN  210  communicates with a Proxy Call Session Control Function (P-CSCF)  212 , which is the first point of contact in the visited IMS network for the UE  204 . The P-CSCF  212  forwards SIP registration messages and session establishment messages to the Home Network  214 . 
         [0060]    The first point of contact within the Home Network  214  is the Interrogating Call Session Control Function (I-CSCF)  216 , which is an optional node in the IMS architecture, whose main purpose is to query the Home Subscriber Server (HSS)  220  to find the location of the Serving Call Session Control Function (S-CSCF)  218 . The S-CSCF  218  performs session management for the IMS network, and there can be several S-CSCFs in the network. The HSS  220  is a centralised subscriber database, and has evolved from the Home Location Register (HLR) from earlier UMTS releases. The HSS  220  interfaces with the I-CSCF and the S-CSCF to provide information about the location of the subscriber and the subscriber&#39;s subscription information. 
         [0061]    The communications network  200  further comprises an application server  222 , a database  224  and a mail server  226  located in the Home Network  214 . From the S-CSCF  218 , signalling messages are passed to the intended destination, which may be another Release 5 IMS network  228  comprising a UE  230 , or to a legacy network  232  comprising a PSTN interfaced through a Media Gateway Control Function (MGCF), or to an IP network  234 . The application servers  222  are for implementing IMS service functionality, providing services to end-users in an IMS system. 
         [0062]    Specific details of the operation of the UMTS communications network  200  and of the various components within such a network can be found from the Technical Specifications for UMTS which are available from http://www.3gpp.org. 
         [0063]    Returning now to  FIGS. 3 and 4 , in this embodiment of the present invention, which is set in the context of the IMS, the central repository  70  described above with reference to  FIG. 2  is embodied in the HSS  220  shown in  FIG. 5 . The standardised sh-interface [3GPP TS 29.328 V6.3.0 (2004-09); Technical Specification; 3rd Generation Partnership Project; Technical Specification Group Core Network; IP Multimedia (IM) Subsystem Sh interface; Signalling flows and message contents] can be used to access/store the service specific data in HSS  220 , as will now be described in more detail. 
         [0064]    Referring to  FIG. 3 , a method embodying the present invention is described in which the XDM Client  2 - 1  wishes to retrieve service data from the XDM Server  60 - 1 . In step S 1  an XCAP GET message is sent from the XDM Client  2 - 1  to the XDM Server  60 - 1  containing subscriber identification; the service data is identified in this embodiment by means of XML schema and name space identifiers. In response, in step S 2  the XDM Server  60 - 1  sends a Sh-Pull message to the HSS  220  with the subscriber identification. In response to receipt of the Sh-Pull message, the HSS  220  retrieves the service data from the database and sends it to the XDM Server  60 - 1  with a Sh-Pull Response message in step S 3 . The service data is then forwarded to the XDM Client  2 - 1  by the XDM Server  60 - 1  with an XCAP OK message in step S 4 . 
         [0065]    Referring to  FIG. 4 , a method embodying the present invention is described in which the XDM Client  2 - 1  wishes to modify service data associated with the XDM Server  60 - 1 . In step T 1  an XCAP PUT message is sent from the XDM Client  2 - 1  to the XDM Server  60 - 1  containing subscriber identification and the modified service data, or at least information setting out how the service data is to be modified; this might be expressed by means of an update XML document—for example in step S 4  above the original XML document is sent to the XDM Client  2 - 1 , which updates the document, and sends it back in step T 1 . In response, in step T 2  the XDM Server  60 - 1  sends a Sh-Pull message to the HSS  220  together with the subscriber identification; the above-mentioned 3GPP Sh Interface Specification defines the access key to the service data in the HSS (both for Sh-pull and Sh-update) as: User-Identity+Data-Reference+Service-Indication). In response to receipt of the Sh-Pull message, the HSS  220  retrieves the service data from the database and sends it to the XDM Server  60 - 1  with a Sh-Pull Response message in step T 3 . In step T 4  the XDM Server  60 - 1  modifies the service data according to the request received in step T 1 , and in step T 5  the modified service data is sent to the HSS  220  together with the subscriber identification with a Sh-Update message. When the modified service data has been stored in the HSS  220 , the HSS  220  replies to the XDM Server  60 - 1  with a Sh-Update Response message in T 6 , and in step T 7  the modified service data is sent to the XDM Client  2 - 1  by the XDM Server  60 - 1  with an XCAP OK message. 
         [0066]    An embodiment of the present invention provides one or more of the following advantages over the above-described existing solution:
       A state-less XDMS implementation does not need to fulfil high availability requirements, and is therefore less costly.   Data storage can be centralised in the network, and therefore be easily accessed also by other entities, without creating the need for synchronisation.   Data storage can be centralised in the network elements which are optimised for that purpose.       
 
         [0070]    It will be appreciated that, although the above embodiment is described in the context of IMS and UMTS, it will be appreciated that IMS is not limited to mobile networks but is also applicable to fixed networks and other types of network altogether. An embodiment of the present invention is not limited to its application within the context of IMS or UMTS. 
         [0071]    It will be appreciated that operation of one or more of the above-described components can be controlled by a program operating on the device or apparatus. Such an operating program can be stored on a computer-readable medium, or could, for example, be embodied in a signal such as a downloadable data signal provided from an Internet website. The appended claims are to be interpreted as covering an operating program by itself, or as a record on a carrier, or as a signal, or in any other form.