XCAP components such as client/server should support HTTP .... Language. PHP. Figure 3 depicts the blocks of server system which operates on. Required ...
A Study on design and implement of XCAP Server Wook Hyun, Sunok Park, IlJin Lee, Shingak Kang Electronics and Telecommunications Research Institute
whyungetri.re.kr
Abstract - A XCAP (XML Configuration Access Protocol) proposed by IETF SIMPLE WG is based on both XML and
HTTP protocol. XCAP server maintains user's configuration
information of specific application described by XML. This protocol can be applied to many application servers for adapting
user's preferences. There are many way to interwork with other applications. In this paper, we will describe the experience of designing and implement of XCAP server and the way of interworking with application servers.
Keywords - XCAP, SIP, SIMPLE, Presence
If user-specific configuration information is stored in XCAP server, whenever the application starts, it can retrieve user's
PC, network devices. Some application usages such as presence authorization rules, resource list management have been proposed and under drafting in IETF and can be applicable to presence services.
profile regardless of user's location; e.g.
2. Design of XCAP Server functionalities In this chapter, we describe the design of XCAP server functionalities.
1. Introduction
2.1 Define the functionalities of XCAP server
A XCAP (XML Configuration Access Protocol)[1] is proposed and under standardization process in SIMPLE WG of IETF. A number of communication applications need user profile information on processing user's requests. User-profile information is formatted as XML format, stored in network server, and maintained by end user. Main objects of XCAP protocol is to organize this kind of information and it operates on the stack of HTTP protocol. All kind of applications has its own unique ID which is called AUID (Application Unique ID). In order to use these kinds of application usages, the XML schema, default namespace, MIME Type, Validation Constraints, Data Semantics, Naming Conventions, Resource
XCAP server receives clients' request via HTTP protocol. All XCAP components such as client/server should support HTTP 1.1 protocol. Prior to implementation, we should define the functionalities of XCAP server as followings.
Following figure depicts the operation between XCAP client and server. XCAP Client
XCAP Server
Interdependency, and Authorization Policy should be defined. -
0
Presence User Agenl Presence Agent ServerA
A
2OC/error response
X
\
~~~~~~~~~~~~~~~~~~~dk_ge,_LcapdaM
db-deL,,capda1a
~~~~~~~~~~~~~~~~~~~~~~~~GET,PUTrDELETE
Figure 2 Operation between XCAP client and server
XCAP! Server
2.1.1. Functions for storing/modifying XCAP data
Figure 1 XCAP protocol basic flow
Figure 1 shows the operation between XCAP client and server using three request methods in order to manipulate user's profile information which is stored in XCAP server. During these operations, XCAP server may request HTTP authentication based on RFC2617. If there's error during processing the request, the server sends appropriate response message based on HTTP, XCAP. The XCAP can be applied to many kind of network-based application; e.g. messenger, internet telephony.
ISBN 89-5519- 129-4
-
,A
GET/PUT/DELETEll XCAP Client
! > . .,:
EE
A User's profile information is transferred by HTTP PUT request and its body. In this case, user can specify node which should be updated or stored. If there is no specified node in the HTTP URI, it means that full XML data which is dictated in HTTP body should be stored to server. If a node is specified in URI, server should find the position of specified node by XCAP query, and then it modifies that part. 2.1.2. Functions for retrieving XCAP data A user-side client can retrieve its profile through HTTP GET request. By specifying node in HTTP URI, it can retrieve
- 249 -
Feb..20-22, 2006 ICA0T2006
Authorized licensed use limited to: IEEE Xplore. Downloaded on February 3, 2009 at 15:54 from IEEE Xplore. Restrictions apply.
XCAP information of specific node. If there is no node specified in URI, it means that all XCAP information should be retrieved.
The meaning of each column is described in table 2. Table 2. Field description
Column name
Description
A user-side client can delete XCAP data partially or fully which is sRe infXcAP servere extn no of parameter in URI influences the deletion of XCAP data during the server-side operation. If there's no node, the server deletes the document itself.
filename
Request-URI. If there's no document name in
servicename
The service name of XCAP usages which is specified in Request-URI. The filed must exist in the HTTP URI.
username
2.2 Designing XCAP Server functional blocks
The username of document.
xcapdata
In this section, we will describe the design model for implementing XCAP server expressed by functional block
etag
XCAP data
Field data for managing XCAP transaction validity.
IsUpdated
If stored XCAP data has been updated, this filed has a valid value. By using this field we can achieve the
2.1.3. Functions for deleting partial/full XCAP data
diagram. We separate the functionalities of server into some functional blocks according to it's characteristics of operation.
.apLqt~php
4
XCAP Server
Logics
...__ __p___ _ 1.
.0. 2
D.It.ab..
already defined
interaction with presence
server.
3. Implementation of XCAP Server
In this chapter, we will briefly describe the block-based system architecture and its operations on each HTTP methods. ------------We implemented XCAP server based on apache-2.0 web server and PHP engine. Following table 3 shows the fU2CtlntsApIimplementation environments.
-I-
-'___ HT
(.yq)
is access default file which Request-URI, server in XCAP standard document. usage
-ap-yut~h
PHP S.O
HTTP Servrer
The document name which is represented in HTTP
nefc
0
.sR.1 .sTBL
OS
Figure 3 XCAP server system block
Figure 3 depicts the blocks of server system which operates on apache web server. As shown figure3, XCAP server can be implemented on top of web server; e.g. apache. A XCAP server can be implemented through a set of CGI-script, PHP-script or something else. We choose PHP-script because the php-module supports much functionality such as XMLn parsing engine. The main functions of XCAP server consists of GET/PUT/DELETE method processing part, Database interaction part, so some utility functions such as URIi parsing, lading, a loadin response messageggenera atn atin 1ng Hence, we constructed XCAP server consisted of XCAP_GET, XCAP_PUT, XCAP_DELETE modules. Each module calls each other dynamically.
' uting andcoitionsR
Table 3. Implementation Environments SuSE 9.2 *Applicable to All kind of Linux
Language
PHP
Required Program
PHP4.0 or later MySQLDatabase4.0.15orlater
Requm
The requests from XCAP client are diverged into appropriate
M f
i
whoch
By implem manyfunctions hchreupredbwb are supportedby web w cautlzmnyfcios server. Moreover, PHP itself has many embedded libraries such as XML DOM parser. Hence, we can minimize the time-waste for re-inventing wheels. Following figure shows the divergence of XCAP requests.
Table 1. XCAP database schema
create table PresRulesTBL
filename VARCHAR(128) NOT NULL, servicename VARCHAR(128) NOT NULL, username VARCHAR(64) NOT NULL,
| \
.~ ~ ~ ~ ~ ~ ~ ~ ~ ~caLeprxcag_oEh
\
xcapdata
TEXT, VARCHAR(255), IsUpdated INTEGER,