A Study on design and implement of XCAP Server.pdf

2 downloads 81 Views 4MB Size Report
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,

Suggest Documents