XCAP 协议

XML配置访问协议(XCAP)The XML Configuration Access Protocol,是一种应用层协议,它允许一个客户端来读,写,修改和删除应用程序配置数据存储在服务器上的XML格式。(相关文档:rfc4825-XCAP 协议标准文档 )
XCAP映射XML文件子树和元素属性到HTTP URIs,使这些组件可以直接使用HTTP协议的客户端访问。

引言

如名字所示,XCAP是一种配置访问协议。它使用XML文档格式来存储应用程序的配置数据,允许客户端读取、写入及修改配置数据。

XCAP映射XML文档的子树和元素属性到HTTP URL,所以这些组件可以通过HTTP直接获取。XCAP是一种映射XML文档和文档属性到HTTP URL的一种惯例,一个资源的修改如何影响其他资源的规则,数据验证的约束,访问资源时相关的授权策略。因为这种结构,普通HTTP能够用来操作数据。XCAP很大长度上借鉴了Application Configuration Access ProtocolACAP),但它不是ACAP的扩展,也不依赖ACAP。像ACAP一样,XCAP支持多种应用程序配置的需要,而不只是一种。

应用程序

在很多通信应用程序中,如VoIPIMpresence,需要网络服务器去获取个性化用户信息给服务请求的进程。这些个性化用户信息存在于网络中,但由终端用户自己管理。这些管理可通过各种获取终端完成,包括web,无线手机,或pc应用程序。个性化用户信息的例子包括presence,授权策略和presence listsPresence lists一个观察者需要的一些用户的presence。一种获取列表的presence信息的方法是订阅代表presence list的资源。在这种情况下,资源列表服务器(Resource List ServerRLS)需要获取这个列表来处理自身的SIP 订阅请求。另一种获取用户presence list的方法是单独订阅每个用户。在这种情况下,可以使用一个服务器来方便地存储list,当客户端启动时,它从服务器获取list。这允许用户从不同的终端获取他们的资源列表。

更详细的解释:

SIMPLE规定允许一个用户(watcher)订阅另一个用户(presentity)来知道他的presence信息。

当希望订阅一个presence list时,标准的做法是要求watcher创建和维护订阅到每个presentity的列表。对于大的列表,需要的带宽会更大,特别是在无线网络环境下。一个SIP事件框架的扩展是,允许watcher使用单一的订阅来订阅资源列表。这样的订阅需要一个叫做Resource List Server的服务器,这个服务器持有用户希望订阅的资源列表的presence list 的拷贝。通过使用XCAP,一个终端能够展示并按需操作服务器上presence list

操作概述

每个利用XCAP应用程序可以指定应用程序的用法。这种应用程序的用法定义了被应用程序使用的数据的XML模式,和其他关键信息片段。XCAP的首要任务就是允许客户端读、写、修改、创建和删除数据片段。这些操作支持使用HTTP 1.1

一个XCAP服务器扮演了一组XML文档的仓库。每个应用程序都有一组文档,每个应用程序的每个用户也都有一组文档。为了访问这些文档中的一个文档的某一组件,XCAP定义了一个算法来构建能够指向那个组件的URL。组件指示了文档里的所有元素或属性。因此,XCAP使用的HTTP URL指向文档或XML文档本身的一块信息。一个遵守此处定义的命名惯例和验证约束的HTTP资源就叫做XCAP资源。

因为XCAP资源也是HTTP资源,它们可以使用HTTP方法获取。使用HTTP GET获取XCAP资源,用HTTP PUT创建或修改,HTTP DELETE删除资源。与HTTP关联的资源的属性,如实体标签,也被应用到XCAP资源。实体标签在XCAP里非常有用,因为它们允许执行一组条件操作。

一个XCAP资源不过是XML文档,XML文档里的元素,关联到元素的属性。每个HTTP GETPUTDELETE方法能够执行到属于一个用户的特定应用的资源。

映射XCAP资源到HTTP URI可下面方式完成:

<?xmlversion="1.0"encoding="ISO-8859-1"?>

<xcap-caps>

<users>

<user1>[email protected]</user1>

<user2>[email protected]</user2>

</users>

</xcap-caps>

获取<user1>HTTP URI看起来是这样的:

 

Part1

Part2

Part3

HTTP Method)

XCAP Root/Application(k)/user(m)/document(i)/~~/xcap-caps/users/user1

HTTP(v)

GET/PUT/DELETE

XML里描述资源的真实路径

HTTP 1.0/1.1

Part2详解:

服务器检索被访问的应用程序,按照XCAP Root/Application(k)。如前面提到的,每个应用程序和每个应用程序的用户有它们自己的目录。所以整个系统是以层次化的结构存储的,以XCAP ROOT作为顶层,应用程序作为这个根的直接子节点,用户构成应用程序的子节点,每个用户目录下有一组XML文件。每个XML文件里面,所有元素有一个根节点,每个元素可以有一些属性。

上面的路径尝试在XCAP服务器上获取应用程序k下的用户mi文档。目前为止的这个路径(Application(k)/user(m)/document(i))叫做文档选择器。“~~”叫路径分隔符,它分隔了文档选择器和节点选择器。路径之后的就是节点选择器,所以上面请求的节点选择器是“xcap-caps/users/user1”,这告诉服务器,从文档i的根节点<xcap-caps>开始,在<xcap-caps>里找到<users>,在<users>里找到<user1>。当目标被定位到时,可执行指定的方法(GET, PUT, DELETE)。

如果节点选择器为空,则HTTP的方法将被应用到选定的文档上。

个人总结:

1、XCAP是一种能够映射HTTP URL到服务器上的XML内部结构的协议,这些XML文档保存每个应用程序里的每个用户的个性化信息。

2、一个符合XCAPURL由三部分组成,第一部分叫文档选择器,与普通HTTP URL类似,用于定位XML文档,路径结构是:Application/User/Document;第二部分是路径分隔符:~~;第三部分叫节点选择器,使用XPath表达式来定位XML的元素、属性等。

3XCAP服务器可以用HTTP协议直接访问,对于定位到的XML元素、属性等,可用HTTP GET方法查询值,HTTP PUT创建或修改,用HTTP DELETE删除。

 

你可能感兴趣的:(XCAP 协议)