专利名称:创建实体标签的方法及用户数据中心的利记博彩app
技术领域:
本发明涉及通信领域,特别涉及一种创建实体标签的方法及用户数据中心。
背景技术:
可扩展标记语言配置访问协议(XCAP, extensible markup languageConfiguration Access Protocol)技术可以实现客户端对服务器上的可扩展标 记语言(extensible Markup Language, XML)文档的访问。通过XCAP协议,客户端可以在 服务器上创建、替换、删除和查询XML文档,同时还可以操作XML文档中的元素或者属性。 XCAP通过实体标签(Entry tag,Etag)标识XML文档的版本信息。服务器自动为其中的每 个XML文档分别分配一个Etag, 一个XML文档中的所有元素和属性共享一个Etag,不同的 XML文档对应不同的Etag。当一个XML文档被修改了以后,服务器自动改变该文档对应的 Etag的值。XCAP规定,服务器返回的所有操作成功的响应中,必须携带XML文档的Etag。
用户数据中心是一种数据存储和访问装置,它提供存储平台,对不同网络、不同网 元提供统一的数据存储和数据访问。用户数据中心能够集成多种数据存储网元中的数据, 形成统一 的视图,通过访问协议提供给客户端。 现有技术中,客户端的一个XCAP消息可能会访问到分布在同一个或不同的XCAP 服务器上的多个XML文档,当XCAP服务器向用户数据中心返回操作响应时,携带各自存储 的XML文档的Etag。 在实现本发明的过程中,发明人发现 现有技术中,用户数据中心无法从XCAP服务器的操作响应中得到需要返回给客 户端的Etag;同时,因为无法得到需要返回给客户端的Etag,所以无法支持客户端的包含 Etag的条件操作。
发明内容
为了使应用服务器能够获得符合应用视图的XML文档的实体标签,本发明实施例
提供了一种创建实体标签的方法及用户数据中心。所述技术方案如下 —方面,本发明实施例提供了一种创建实体标签的方法,包括 接收由应用服务器发送的对符合应用视图的可扩展标记语言XML文档的可扩展
标记语言配置访问协议XCAP操作消息;将所述XCAP操作消息中的XCAP操作分解成对至少两个XML文档的XCAP操作,并
向所述至少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消息;接收所述XCAP服务器返回的对至少两个XML文档的XCAP操作响应,所述操作响
应中携带所述XCAP服务器中被所述分解后的XCAP操作消息操作过的XML文档的实体标
签; 为所述符合应用视图的XML文档创建实体标签,并将所述实体标签与所述XCAP服 务器返回的操作响应中携带的实体标签建立关联关系;
向所述应用服务器返回操作响应消息,所述操作响应消息中携带为所述符合应用 视图的XML文档创建的实体标签。 另一方面,本发明实施例提供了一种用户数据中心,包括 第一接收模块,用于接收由应用服务器发送的对符合应用视图的可扩展标记语言 XML文档的可扩展标记语言配置访问协议XCAP操作消息; 分解模块,用于将所述XCAP操作消息中的XCAP操作分解成对至少两个XML文档 的XCAP操作,并向所述至少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消 息; 第二接收模块,用于接收所述XCAP服务器返回的对至少两个XML文档的XCAP操 作响应,所述操作响应中携带所述XCAP服务器中被所述分解后的XCAP操作消息操作过的 XML文档的实体标签; 处理模块,用于为所述符合应用视图的XML文档创建实体标签,并将所述实体标
签与所述XCAP服务器返回的操作响应中携带的实体标签建立关联关系; 发送模块,用于向所述应用服务器返回操作响应消息,所述操作响应消息中携带
为所述符合应用视图的XML文档创建的实体标签。 本发明实施例提供的技术方案的有益效果是 用户数据中心在向应用服务器提供XCAP访问的过程中,用户数据中心为应用视 图下的每个XML文档创建一个Etag,并将该Etag和XCAP服务器上的XML文档的Etag关 联起来,应用服务器因此可以获得用户数据中心创建的Etag,进而可以进行XCAP的条件操作。
图1是本发明实施例一提供的创建实体标签的方法流程图;
图2是本发明实施例二提供的获取实体标签的方法流程图;
图3是本发明实施例三提供的获取实体标签的方法流程图;
图4是本发明实施例三提供的又一获取实体标签的方法流程图;
图5是本发明实施例四提供的获取实体标签的方法流程图;
图6是本发明实施例四提供的又一获取实体标签的方法流程图;
图7是本发明实施例五提供的获取实体标签的方法流程图;
图8是本发明实施例六提供的获取实体标签的方法流程图;
图9是本发明实施例七提供的用户数据中心的结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方
式作进一步地详细描述。 实施例一 如图1所示,为本实施例提供的创建实体标签的方法流程图,该方法具体包括
S101 :用户数据中心接收由应用服务器发送的对符合应用视图的可扩展标记语言 XML文档的可扩展标记语言配置访问协议XCAP操作消息;
S102 :用户数据中心将XCAP操作消息中的XCAP操作分解成对至少两个XML文档 的XCAP操作,并向至少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消息;
S103 :用户数据中心接收XCAP服务器返回的对至少两个XML文档的XCAP操作响 应,该操作响应中携带XCAP服务器中被分解后的XCAP操作消息操作过的XML文档的实体 标签; S104 :用户数据中心为符合应用视图的XML文档创建实体标签,并将实体标签与 XCAP服务器返回的操作响应中携带的实体标签建立关联关系; S105 :用户数据中心向应用服务器返回操作响应消息,操作响应消息中携带为符 合应用视图的XML文档创建的实体标签。 通过本实施例提供的创建实体标签的方法,用户数据中心给应用服务器返回的操 作响应中,携带了应用视图下的XML文档的Etag,而现有技术无法从多个XCAP服务器的响 应消息中得到需要给应用服务器返回的Etag。 进一步地,由于应用服务器获得了应用视图下的XML文档的Etag,所以应用服务 器可以通过Etag进行XCAP的条件操作。 本发明实施例中,使用XCAP协议访问XCAP服务器,操作XCAP服务器中的XML文 档的实体都可以称为XCAP客户端,这个客户端可以是应用服务器(A卯lication Server, AS),也可以是终端,例如手机、个人电脑等。当AS采用XCAP协议访问XCAP服务器时,AS才 能成为XCAP客户端。用户数据中心可以集成多个XCAP服务器(Server)中的数据,并形成 统一的视图提供给AS,该统一的视图可以反应每个XCAP Server中的数据,还可以反应多 个XCAP Server中的数据形成的整体组合。AS通过XCAP协议,访问用户数据中心,用户数 据中心根据配置信息,判定数据所在的数据源(包括XCAP Server),将AS的访问转换成对 数据源的访问。因此,AS的一个XCAP访问消息,可能会访问到分布在不同的XCAP Server 上的多个XML文档。 AS可以通过XCAP协议,实现对XCAP Server上的XML文档的创建、替换、删除 (Delete)和查询(Get)操作。其中,创建、替换操作均通过PUT实现。 AS还可以通过Etag实现对XML文档的条件操作。当AS对一个XML文档进行条 件读操作的时候,AS发送的XCAP GET消息携带条件IF-NON-MATCH :Etag,当GET消息中的 Etag和XML文档的Etag不匹配的时候,表示XCAP Server上的XML文档被更新过,XCAP Server才返回XML文档数据,否则,返回304(304为HTTP协议定义的响应类型,而XCAP基 于HTTP的协议)错误响应,该304响应表示文档没有更新。当AS对XML文档进行条件写操 作时,AS发送的XCAPPUT/DELETE消息携带条件IF-MATCH :Etag,当消息中的Etag和文档中 的Etag匹配的时候,表示文档没有被其他AS修改过,再执行写操作,否则XCAP Server返 回412 (412为HTTP协议定义的响应类型,而XCAP基于HTTP的协议)错误响应,该412响 应表示文档被其他的AS更新过。 本发明实施例中,XCAP Server通过用户数据中心向AS提供XCAP访问,当AS访 问的符合应用视图的XML文档对应到XCAP服务器上的多个XML文档的时候,用户数据中心 需要为该符合应用视图的XML文档分别创建对应的Etag,并将该Etag和XCAP Server上的 XML文档关联,AS可以使用用户数据中心创建的Etag进行条件操作。 下面各实施例通过具体的XCAP消息对获取Etag的方法以及对Etag的管理进行详细说明。 实施例二 本实施例中,AS在请求用户数据中心创建符合应用视图的XML文档时,用户数据 中心为该XML文档创建一个Etag,并将该Etag和XCAP Server上对应的若干个XML文档的 Etag关联起来。 如图2所示,为本实施例提供的创建实体标签的方法流程图,该方法具体包括
S201 :用户数据中心接收AS发送的创建消息,用户数据中心根据该创建消息进行 创建一个符合应用视图的XML文档example, xml的操作。 其中,创建消息具体为XCAP PUT消息,表示AS请求用户数据中心创建XML文档。
S202 :用户数据中心根据配置信息,将创建消息分解。 其中,配置信息可以包括XML文档的组合条件,也可以包括视图的转换规则;该配 置信息可以由系统自动生成,也可以通过设置获得。 用户数据中心根据上述配置信息得知example, xml应该分成examplel. xml和 example2. xml两部分,分别对应地存储在XCAP Serverl和XCAP Server2上,因此,将创建 消息分解成两个XCAP PUT消息。 需要说明的是,根据配置信息,example, xml可能被分解为若干个XML文档,这些 文档可能分布在一个XCAP Server上,也可以分布在若干个XCAP Server上,因此,AS的一 个操作可能分解为若干个对XCAP Server的操作,其中的对应关系为XCAP Server的个数 小于或等于分解后的XML文档的个数,而分解后的操作个数等于分解后的XML文档的个数。 即一个XCAP操作只能对一个XCAPServer中的一个XML文档进行操作。为了描述方便,本 发明实施例均以两个为例说明,但并不因此而造成对数目的限定。 S203 :用户数据中心给XCAP Serverl和XCAP Server2分别发送XCAP PUT消息。
S204 :用户数据中心接收XCAP Serverl和XCAP Server2返回的操作响应消息,响 应消息中携带两个XCAP Server分别创建的两个文档的Etagl和Etag2。
其中,XCAP Serverl为用户数据中心返回操作响应消息,该操作响应消息中携带 XCAP Serverl创建的Etagl,该Etagl标识examplel. xml的文档版本;XCAP Server2也为 用户数据中心返回操作响应消息,该操作响应消息中携带XCAP Server2创建的Etag2,该 Etag2标识example2. xml的文档版本。 S205 :用户数据中心为example, xml创建一个Etag,标识example, xml的文档版 本,同时将该Etag和Etagl、 Etag2关联。 其中,关联操作可以通过xml文档的对应关系实现。具体地,通过本实施例举例 说明用户数据中心中可以具有存储模块,该存储模块中存储了 example, xml与examplel. xml、 example2. xml文档之间的对应关系,同时因为Etag和Etagl、 Etag2分别属于各自所 对应的文档,因此,用户数据中心通过xml文档的对应关系以及Etag的所属关系就可以将 Etag和Etagl 、Etag2进行关联。 可以理解的是,将Etag和Etagl、 Etag2关联不限于上述方式。 S206 :当分解的操作全部成功,用户数据中心向AS返回操作成功响应消息,该响
应消息中携带用户数据中心给example, xml创建的Etag。 其中,分解的操作全部成功表示两个XCAP Server都返回操作成功的响应。S206中还包括当分解的操作没有全部成功,则返回操作失败响应,并携带失败的原因。
本实施例中,AS请求用户数据中心创建符合应用视图的example, xml文档,用户 数据中心为该文档创建一个Etag,并将该Etag和Etagl、 Etag2关联起来,则AS可以通过 用户数据中心获取对应example, xml文档的Etag,解决了现有技术中用户数据中心给AS返 回的操作响应消息中,需要携带符合应用视图的XML文档example, xml的Etag,而又无法从 XCAP Serverl和XCAP Server2的响应消息中得到需要给AS返回的Etag的现状。
实施例三 用户数据中心已经为AS创建了 exampl e.xml文档的Et ag,并将该Etag和 Etagl、 Etag2关联,其中,example, xml文档对应的Etag可能是实施例二中创建example, xml时生成的,也可能是根据配置信息生成的,也可能是管理员进行配置的,但不限于这些 方法。当AS通过用户数据中心对XCAP Server上的XML文档进行操作时,用户数据中心能 够同步更新和该XML文档相关的应用视图下的XML文档的Etag。本实施例以AS向用户数 据中心发送的消息中不携带操作条件和携带操作条件两种情况为例进行说明。
如图3所示,为本实施例提供的获取实体标签的方法流程图,该方法具体包括
S301 :用户数据中心接收AS发送的操作消息,根据该操作消息对符合应用视图的 XML文档example, xml进行操作。 具体地,AS向用户数据中心发送不携带操作条件的XCAP消息,请求用户数据中心 对XML文档进行操作,该消息可以为PUT/GET/DELETE操作消息;用户数据中心接收该不携 带操作条件的XCAP消息,对应用视图下的XML文档(即符合应用视图的XML文档)examp 1 e. xml进行操作。 S302 :用户数据中心根据配置信息,将操作消息分解成两个XCAP操作消息。 其中,用户数据中心接收到AS的操作消息以后,根据配置信息,得知example, xml
由XCAP Serverl中的examplel. xml禾口 XCAP Server2中的example2. xml构成,将操作分
解成针对examplel. xml和example2. xml的两个XCAP操作消息。 S303 :用户数据中心将分解后XCAP操作发给相应的XCAP Server。 具体为用户数据中心给XCAP Serverl和XCAP Server2分别发送XCAP操作消息。 S304 :用户数据中心接收XCAP Serverl和XCAP Server2返回的操作响应消息,响
应消息中携带两个XCAP Server分别创建的两个文档的Etagl和Etag2。 其中,S304与S204的原理相似,此处不再赘述。 S305 :当examplel. xml和/或example2. xml的Etag有更新,则用户数据中心相 应地更新所存储的ex卿lel. xml或ex卿le2. xml的Etag,同时更新example, xml的Etag。
其中,S305中还包括一种情况如果有example, xml以外的其他的应用视图下的 XML文档例如example3. xml也和examplel. xml或example2. xml有关,则用户数据中心需 要同时更新example3. xml的Etag。 S306 :用户数据中心将操作的结果合成,返回给AS,携带更新过的example, xml的
Eteg。 其中,合成表示将文档examplel. xml与example2. xml进行合成,S卩对XCAPServer 返回的XML文档进行合成,合成过程中并不是简单的将两个文档拼在一起,而是通过分解 规则的逆向规则进行合成,该过程系现有技术,此处不详述。可以理解的是,后续的合成与
8此处的合成表示相同的意思。 上述内容中以AS向用户数据中心发送不携带操作条件的XCAP消息为例进行说 明,下面以AS向用户数据中心发送携带操作条件的XCAP消息为例进行说明,如图4所示, 为本实施例提供的又一获取实体标签的方法流程图,该方法具体包括
S401 :用户数据中心接收AS发送的携带操作条件的XCAP消息,该消息中携带符合 应用视图的XML文档example, xml的Etag。 其中,操作条件可以包括XCAP GET消息携带条件IF-NON-MATCH :Etag, XCAP PUT/DELETE消息携带条件IF-MATCH :Etag,这些携带操作条件的XCAP消息中均携带Etag。
S402 :用户数据中心判断操作的条件是否满足,是则执行S403,否则,向AS返回错 误响应。 其中,由于本方法同样基于实施例二但不限于实施例二提出的方法,用户数据中 心已经为AS创建了 example, xml文档的Etag,并将i亥Etag和Etagl、Etag2关联,同时,用 户数据中心能够保证当XML被修改后,可以同步对Etag进行更新,因此,用户数据中心所存 储的example, xml的Etag就是最新的;用户数据中心根据存储的example, xml的Etag和 AS发送的XCAP消息中携带的example, xml的Etag进行判断条件是否满足,如果不满足, 则对于GET操作,用户数据中心向AS返回文档没有被更新的错误响应;对于PUT/DELETE操 作,则返回文档被更新过的错误响应;如果满足,则执行S403。 S403 :用户数据中心根据配置信息,将操作消息分解成对examp 1 e 1. xml和 ex咖ple2. xml的操作。 其中,用户数据中心根据配置信息,得知example, xml由XCAP Serverl中的
examplel. xml禾P XCAP Server2中的example2. xml构成,将操作分解成针对examplel. xml
和example2. xml的两个无条件的操作消息。此处,用户数据中心将操作分解成两个无条件
的操作消息表示用户数据中心无需向XCAP Server再进行条件的判断,用户数据中心只需
要对XCAP Server中的XML文档进行无条件操作即可。 S404 :用户数据中心将分解后XCAP操作发给相应的XCAP Server。 S405 :用户数据中心接收XCAP Serverl和XCAP Server2返回的操作响应消息,响
应消息中携带两个XCAP Server分别创建的两个文档的Etagl和Etag2。 S406 :用户数据中心合成操作结果,同时更新Etag。 具体地,用户数据中心将对examplel. xml、 example2. xml操作的结果合成为对 example, xml的操作结果,同时更新example, xml、examplel. xml禾口 ex咖ple2. xml的Etag。
如果有example, xml以外的其他的应用视图下的XML文档也和examplel. xml或 example2. xml有关,则需要同时更新其Etag。 S407 :用户数据中心将合成的操作结果返回至AS,并携带更新过的example, xml
的Etag。 本实施例中,由于用户数据中心已经创建好example, xml文档的Etag,并将该 Etag和Etagl、 Etag2关联;在这种前提下,用户数据中心能够获知XCAPServer中的哪个 XML文档有更新,同时更新和该XML文档相关的应用视图下的XML文档的Etag。当AS对应 用视图下的XML文档进行操作时,通过用户数据中心转化为对XCAP Server中的XML文档 进行相应的操作。
用户数据中心给AS返回的操作响应中,需要携带应用视图下的XML文档example, xml的Etag,然而根据现有技术,无法从XCAP Server 1和XCAP Server2的响应消息中得到 需要给应用服务器返回的Etag,通过本实施例的方法,用户数据中心为example, xml创建 Etag,并对该Etag进行更新,使AS最终得到Etag,并能够支持AS发起的携带Etag的条件 操作。 实施例四 本实施例的场景为XCAP Server中的XML文档被更新后,用户数据中心可以通过
订阅和通知的方法同步更新相关文档的Etag,但不限制于订阅和通知的方法。 如图5所示,为本实施例提供的用户数据中心订阅和应用视图相关的XML文档版
本信息的方法流程图,该方法包括用户数据中心订阅XCAP Server中和应用视图相关的
XML文档或订阅XCAP Server中和应用视图相关的XML文档的Etag,具体如下 S501 :用户数据中心通过分析相关性,获知应用视图的一个XML文档example, xml
由XCAP Server 1中的example 1. xml禾口 XCAP Server2中的example2. xml构成。 其中,用户数据中心可以记录与AS相关的XML文档(即AS所关心的XML文档);
相关性包括配置信息,还可以包括XML文档之间的关联信息,用户数据中心通过分析相关
性,可以获知与AS相关的某个XML文档由哪些XCAP Server中不同的XML文档组成,还可
以获知这些XML文档之间的关联信息。XML文档之间的关联包涵多种情况,例如,两个或两
个以上的XML文档共享一个XML文档,或共享一个XML文档中的一部分。 S502 :用户数据中心向相应的XCAP Server订阅examplel. xml的Etag、example2.
xml的Etag或examplel. xml、 ex咖ple2. xml文档。 订阅表示用户数据中心通过该功能可以获知XCAP Server中的XML文档所对应的 Etag是否有更新。 S503 :用户数据中心接收XCAP Serverl以及XCAP Server2返回的订阅结果。
其中,返回的订阅结果包含对订阅消息的响应,该响应消息能够告诉用户数据中 心订阅是否成功。 本实施例中,为了保持用户数据中心中对应于数据源(即XCAP Server)的XML文 档的Etag及时更新,用户数据中心订阅XCAP Server中和AS相关的XML文档或订阅XCAP Server中和AS相关的XML文档的Etag。订阅成功后,用户数据中心通过XCAP Server的通 知功能可以获知当XCAP Server中的XML文档有变化时,对应XML文档的Etag也有更新。
基于图5所示的方法,当用户数据中心订阅和应用视图相关的XML文档版本信息 之后,本实施例提供XCAP服务器通知用户数据中心和应用视图相关的XML文档版本信息的 方法流程图,该方法包括当其他XCAP客户端修改了 XCAP Server中用户数据中心订阅过的 XML文档,XCAP Server通知用户数据中心及时更新该XML文档对应的Etag,如图6所示, 具体如下 S601 :其他的XCAP客户端更新了 XCAP Server中的XML文档。
其中,其他的XCAP客户端的含义为对于XCAP Server而言,任何使用XCAP协议 对其进行访问的实体都是XCAP客户端。因此用户数据中心对于XCAP Server而言,也是一 种XCAP客户端。用户数据中心在本发明实施例中具有双重身份对于AS,它相当于一个增 强型的代理服务器,能够将AS对符合应用视图的XML文档的访问转化成对数据源中的XML文档的访问;对于XCAP Server,它是一个XCAP客户端。因此,对于XCAP Server而言,除 了用户数据中心这个XCAP客户端以外,有其它的XCAP客户端,这些其它的客户端可能会不 经过用户数据中心的许可,修改用户数据中心订阅过的XML文档(如examplel. xml)。
S602 :用户数据中心接收XCAP Server发送的通知消息,该通知消息携带被更新 的XML文档的Etag信息。 其中,由于被更新的XML文档被用户数据中心订阅,XCAP Server向用户数据中心 发送通知消息,携带被更新的文档的Etag。 S603 :用户数据中心更新所有和该XML文档相关的应用视图下的XML文档的 Eteg。 其中,由于不止一个AS应用视图下的XML文档会和该XML文档相关,因此,当该 XML文档被修改后,用户数据中心需要更新所有和该XML文档相关的应用视图下的XML文档 的Etag,保证当每个共用该XML文档的AS在访问用户数据中心时,都获得最新的Etag信 息。 S604 :用户数据中心向XCAP Server返回通知响应消息。 本实施例中,用户数据中心通过订阅、通知功能获取XCAP服务器中被订阅过的 XML文档的Etag之后,还可以为符合应用视图的XML文档创建Etag,并将创建的Etag和 XCAP服务器中被订阅过的XML文档的Etag关联起来,当其他XCAP客户端修改了 XCAP Server中用户数据中心订阅过了的XML文档的时候,XCAP Server向用户数据中心发送通 知消息,携带文档新的Etag的值,使用户数据中心能够及时更新所有和该XML文档相关的 应用视图下的XML文档的Etag。 上述实施例二 实施例四的场景中,用户数据中心在创建了符合应用视图的XML 文档时,为该XML文档创建一个Etag,并将该Etag和XCAP Server上对应的若干个XML文 档的Etag关联起来,使AS能够通过用户中心获得应用视图下的XML文档的Etag ;通过订 阅和通知功能,使用户数据中心均有能力保证在其他的XCAP客户端更新XCAP中的XML文 档的时候,同步更新相关的应用视图下的XML文档的Etag。 下面的实施例在AS进行XCAP条件操作的时候,用户数据中心通过查询相关的 XCAP Server中的XML文档,来确定Etag是否更新。
实施例五 本实施例以XCAP条件操作为XCAP条件查询(GET)操作为例进行说明。如图7所 示,该获取实体标签的方法具体包括 S701 :用户数据中心接收AS发送的条件查询操作消息,该消息中携带 IF-NON-Match :Etag条件,对example, xml进行操作。 S702 :用户数据中心根据配置信息将操作分解为对examplel. xml、 example2. xml
的无条件查询操作。 其中,与上述的实施例不同的是,本实施例的前提是用户数据中心不能保证在XML 被修改后,可以同步对Etag进行更新,因此用户数据中心所保存的Etag不一定是最新的; 同时,由于查询操作最终需要用户数据中心为AS返回操作响应与查询的内容,因此用户数 据中心不对条件是否满足进行判断,而直接将操作转化为对XCAP Server中XML文档的查 询操作。
因此,用户数据中心直接根据配置信息得知example, xml由XCAP Serverl中的 examplel. xml禾P XCAP Server2中的example2. xml构成,将操作分解为对examplel. xml、 example2. xml的无条件查询操作。 其中,将操作分解为无条件查询操作的原因为若用户数据中心将条件查询操作 分解为有条件查询操作,XCAP Server根据条件只返回符合条件的部分XML文档,不符合条 件的XML文档返回错误响应,进而导致用户数据中心向AS返回的XML文档不完整,因此将 条件查询操作分解为无条件查询操作,XCAPServer不作判断,直接返回无条件查询的XML 文档。 S703 :用户数据中心分别向XCAP Serverl和XCAP Server2发起对examplel. xml、 example2. xml的无条件的GET操作。 S704 :用户数据中心接收XCAP Serverl和XCAP Server2返回的查询响应消息,该 响应消息中分别携带examplel. xml的Etagl、 example2. xml的Etag2。
S705 :用户数据中心检查当返回的Etag有更新,则更新example, xml的Etag。
具体地,用户数据中心检查examplel. xml的Etagl禾P /或example2. xml的Etag2 是否有更新,如果有更新,则更新example, xml的Etag。 S706 :用户数据中心将查询的结果合成对example, xml查询的结果,返回给AS。
其中,用户数据中心将查询的结果合成对example, xml查询的结果,携带更新后 的example, xml的Etag,返回至AS。 此外,如果有example, xml对应的应用视图以外其他的应用视图下的XML文档也 和examplel. xml或example2. xml有关,则用户数据中心需要同时更新他们的Etag。
上述过程中,如果examplel. xml和example2. xml的Etag都没有更新,直接返回 文档没有更新的错误响应。 与实施例三的条件操作相比较,本实施例中,用户数据中心保存的Etag不一定
是最新的,而实施例三的条件操作中,用户数据中心能够通过订阅功能或其他方式保证和
XCAP Server同步对Etag进行更新,即用户数据中心保存的Etag —定是最新的。 在本实施例的前提下,当AS进行XCAP条件操作的时候,用户数据中心通过查询相
关的XCAP服务器中的XML文档,检查对应的Etag是否有更新,再确定是否对自身保存的
Etag进行更新,使AS最终可以获得最新的Etag,以及完成包含Etag的条件操作。 实施例六 本实施例以XCAP条件操作为XCAP条件写(包括PUT/DELETE)操作中的PUT操作 为例进行说明,本实施例中,用户数据中心中保存的Etag不一定是最新的。如图8所示,该 获取实体标签的方法具体包括 S801 :用户数据中心接收AS发送的对example, xml的条件写操作消息,该消息中 携带IF-Match :Etag操作条件。 S802 :用户数据中心判断条件是否满足,是则向AS返回错误响应,否则执行S803。
其中,由于用户数据中心中保存的Etag不一定是最新的,同时,由于写操作最终 只返回是否写成功的状态即可,因此用户数据中心先对条件是否满足进行判断,即判断AS 发送的IF-Match :Etag操作条件中的Etag与用户数据中心保存的Etag是否匹配,如果匹 配,则继续进行写操作;如果不匹配,表示XCAPServer中的XML已被修改,因此不再继续进行写操作,返回错误响应。 具体在S802中,用户数据中心判断AS发送的IF-Match :Etag操作条件中的Etag 与用户数据中心保存的Etag是否匹配,如果不匹配,直接返回文档被更新的错误响应,否 则,执行S803。 S803 :用户数据中心根据配置信息,生成对examplel. xml、 example2. xml的条件
查询操作。 其中,用户数据中心根据配置信息得知example, xml由XCAP Server 1中的 examplel. xml禾口 XCAP Server 2中的example2. xml构成,贝U生成X寸examplel. xml、 example2. xml的条件查询操作,操作中分别携带examplel. xml、example2. xml的Etag。此 处,条件查询操作表示用户数据中心只关心examplel. xml、 example2. xml是否有更新以及 有更新的XML文档。当XML文档有更新,XCAP Server返回GET操作查询的XML文档的内 容,并携带对应XML文档的Etag。其中,GET操作可以查询XML文档中的一部分( 一个元素 或一个属性),当XML文档没有更新,则XCAP Server返回文档没有更新的错误响应。
S804 :用户数据中心分别向XCAP Serve rl和XCAP Server2发送对examplel. xml、 example2. xml的条件查询操作消息,操作条件是IF-NON-Match :etag,该消息中携带 对应于这两个文档的Etag。 S805 :用户数据中心接收两个XCAP Server返回的操作结果。 具体地,如果examplel. xml禾P /或example2. xml有更新,则相应的XCAPServer将
返回2000K响应(2000K是HTTP协议中的消息,表示操作成功,XCAP是基于HTTP的协议),
并携带对应于XML文档的Etag,否则,将返回没有更新的错误响应。 S806 :用户数据中心根据XCAP Server返回的响应更新example, xml的Etag。 具体地,包括两种情况 (l)如果有XCAP Server返回操作成功响应,表示相应的XCAP Server中的XML文 档有更新,则用户数据中心更新相应文档的Etag,并更新example, xml的Etag,并给AS直 接返回412错误响应(该错误响应表示文档有更新);如果还有其他的应用视图下的XML文 档也和该文挡(指的是2000K消息对应的那个文档)相关,则同步更新它们的Etag。
(2)如果两个XCAP服务器都返回了 304错误响应,表示文档没有被更新过,则将 AS的操作分解为对examplel. xml、 example2. xml的无条件的写操作。
S807 :用户数据中心分别向XCAP Serverl和XCAP Server2发送对examplel. xml、 example2. xml的无条件的写操作。 其中,经过S802 S806对条件的判断,得到的结果是,XCAP Server中的数据都 没有被更新过,则用户数据中心直接向XCAP Server 1和XCAP Server2发送对examplel. xml、 example2. xml的无条件的写操作。 S808 :用户数据中心接收两个XCAP Server返回的写操作响应消息,该响应消息 中分别携带examplel. xml、 example2. xml的Etag。 S809 :用户数据中心更新example, xml、 examplel. xml、 example2. xml的Etag,同 时将操作的结果合成为对example, xml的操作结果。 此外,如果还有其他的应用视图下的XML文档也与examplel. xml和/或 example2. xml相关,则用户数据中心同步更新它们的Etag。
S810 :用户数据中心给AS返回对example, xml的操作结果,携带example, xml的
Eteg。 需要说明的是,AS的PUT操作包括增加、替换内容,可能会转化成对数据源的PUT 或Delete操作,例如当PUT操作将XML文档中的3个元素替换为2个元素时,转化成对数 据源的Delete操作。本实施例中是以转化为PUT操作为例进行说明的。
本实施例中,当AS进行XCAP条件写操作的时候,用户数据中心首先通过条件查询 相关的XCAP Server中的XML文档,检查对应的Etag是否有更新,再确定是否对自身保存 的Etag进行更新,使AS最终可以获得最新的Etag,以及完成包含Etag的条件写操作。
通过本发明实施例的技术方案,解决了用户数据中心在集成XCAP Server的XML 文档时遇到的获取Etag以及对Etag的管理问题,从而有效地支持了 XCAP的包含Etag的
条件操作。 实施例七 如图9所示,为本实施例提供的用户数据中心的结构示意图,该用户数据中心具 体包括 第一接收模块91,用于接收由应用服务器发送的对符合应用视图的可扩展标记语 言XML文档的可扩展标记语言配置访问协议XCAP操作消息; 分解模块92,用于将XCAP操作消息中的XCAP操作分解成对至少两个XML文档的 XCAP操作,并向至少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消息;
第二接收模块93,用于接收所述XCAP服务器返回的对至少两个XML文档的XCAP 操作响应,所述操作响应中携带所述XCAP服务器中被所述分解后的XCAP操作消息操作过 的XML文档的实体标签; 处理模块94,用于为符合应用视图的XML文档创建实体标签,并将实体标签与 XCAP服务器返回的操作响应中携带的实体标签建立关联关系; 发送模块95,用于向应用服务器返回操作响应消息,操作响应消息中携带为符合 应用视图的XML文档创建的实体标签。
进一步地,该用户数据中心还包括 第一更新模块,用于当接收的实体标签有更新时,更新和接收的实体标签有关联 关系的符合应用视图的XML文档的实体标签。
进一步地,用户数据中心还可以包括 订阅模块,用于向XCAP服务器分别订阅其中的至少两个XML文档的实体标签或订 阅至少两个XML文档的内容; 第三接收模块,用于接收XCAP服务器返回的通知消息,根据通知消息获取XCAP服
务器中的XML文档的实体标签。 进一步地,用户数据中心还包括 第二更新模块,用于当第三接收模块接收的XCAP服务器中被订阅模块订阅过的 XML文档的实体标签有更新时,更新和XCAP服务器中的XML文档相关的所有符合应用视图 的XML文档的实体标签。 进一步地,用户数据中心还可以包括 判断模块,用于对接收的携带实体标签操作条件的XCAP操作消息进行判断,判断该操作条件是否满足; 相应地,用户数据中心还包括 操作模块,用于根据判断模块的结果进行操作,是则,根据操作条件对符合应用视 图的XML文档进行操作;否则,向应用服务器返回错误响应。 本实施例提供的用户数据中心在向应用服务器提供XCAP访问的过程中,用户数 据中心为应用视图下的每个XML文档创建一个Etag,并将该Etag和XCAP服务器上的XML 文档的Etag关联起来,应用服务器因此可以获得用户数据中心创建的Etag,进而,应用服 务器可以使用用户数据中心创建的Etag进行条件操作。 本实施例提供的用户数据中心,能够在其他的XCAP客户端更新了 XCAP服务器中 的XML文档的时候,同步更新相关文档的Etag,可以通过用户数据中心订阅、XCAP服务器通 知的方法来保证同步更新。
实施例九 本实施例提供一种系统,该系统包括用户数据中心、应用服务器和XCAP服务器;
用户数据中心,接收由应用服务器发送的对符合应用视图的可扩展标记语言XML 文档的可扩展标记语言配置访问协议XCAP操作消息; 将XCAP操作消息中的XCAP操作分解成对至少两个XML文档的XCAP操作,并向至 少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消息; 接收XCAP服务器返回的至少两个对XCAP服务器中的至少两个XML文档的XCAP 操作响应,操作响应中携带XCAP服务器中被分解后的XCAP操作消息操作过的XML文档的 实体标签; 为符合应用视图的XML文档创建实体标签,并将实体标签与XCAP服务器返回的操 作响应中携带的实体标签建立关联关系; 向应用服务器返回操作响应消息,操作响应消息中携带为符合应用视图的XML文 档创建的实体标签; 应用服务器还用于接收用户数据中心返回的操作响应消息,操作响应消息中携带 为符合应用视图的XML文档创建的实体标签。 进一步地,该系统中的用户数据中心,还用于当获知XCAP服务器中和符合应用视 图的XML文档相关的XML文档有更新的时候,能够更新该符合应用视图的XML文档的Etag。
本实施例提供的系统中,用户数据中心在向应用服务器提供XCAP访问的过程中, 用户数据中心为应用视图下的每个XML文档创建一个Etag,并将该Etag和XCAP服务器上 的XML文档的Etag关联起来,应用服务器因此可以获得用户数据中心创建的Etag。
本发明实施例需要指出的是,AS访问用户数据中心采用的协议以及用户数据中心 访问数据源的协议不局限于XCAP,只要存在类似如下内容,都应包含在本发明的保护范围 内使用类似版本信息作为操作条件,版本信息标识一个数据模块的版本,只要数据模块有 改动,版本信息自动变更。应用对一个数据模块的操作需要分解为对数据源中多个数据模 块(可能分布在不同的数据源上)的操作,采用类似的版本信息获取机制。
本发明实施例中的"接收"一词可以理解为主动从其他模块获取也可以是接收其 他模块发送来的信息。 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 本发明实施例可以通过软件实现,相应的软件可以存储在可读取的存储介质中, 例如计算机的硬盘、光盘或软盘中。 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种创建实体标签的方法,其特征在于,所述方法包括接收由应用服务器发送的对符合应用视图的可扩展标记语言XML文档的可扩展标记语言配置访问协议XCAP操作消息;将所述XCAP操作消息中的XCAP操作分解成对至少两个XML文档的XCAP操作,并向所述至少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消息;接收所述XCAP服务器返回的对至少两个XML文档的XCAP操作响应,所述操作响应中携带所述XCAP服务器中被所述分解后的XCAP操作消息操作过的XML文档的实体标签;为所述符合应用视图的XML文档创建实体标签,并将所述实体标签与所述XCAP服务器返回的操作响应中携带的实体标签建立关联关系;向所述应用服务器返回操作响应消息,所述操作响应消息中携带为所述符合应用视图的XML文档创建的实体标签。
2. 根据权利要求1所述的方法,其特征在于,所述方法进一步包括当接收的实体标签有更新时,更新和所述接收的实体标签有关联关系的符合应用视图的XML文档的实体标签。
3. 根据权利要求1所述的方法,其特征在于,所述方法进一步包括向所述XCAP服务器分别订阅其中的至少两个XML文档的实体标签或订阅至少两个XML文档的内容;接收所述XCAP服务器返回的通知消息,根据所述通知消息获取所述XCAP服务器中的XML文档的实体标签。
4. 根据权利要求3所述的方法,其特征在于,所述方法还包括当所述XCAP服务器中被订阅过的XML文档的实体标签有更新时,更新和所述XCAP服务器中的XML文档相关的符合应用视图的XML文档的实体标签。
5. 根据权利要求1-4中任一权利要求所述的方法,其特征在于,所述方法进一步包括接收由应用服务器发送的携带实体标签操作条件的XCAP操作消息;判断所述操作条件是否满足,是则,根据所述操作条件对符合应用视图的XML文档进行操作;否则,向所述应用服务器返回错误响应。
6. —种用户数据中心,其特征在于,所述用户数据中心包括第一接收模块,用于接收由应用服务器发送的对符合应用视图的可扩展标记语言XML文档的可扩展标记语言配置访问协议XCAP操作消息;分解模块,用于将所述XCAP操作消息中的XCAP操作分解成对至少两个XML文档的XCAP操作,并向所述至少两个XML文档所在的XCAP服务器发送分解后的XCAP操作消息;第二接收模块,用于接收所述XCAP服务器返回的对至少两个XML文档的XCAP操作响应,所述操作响应中携带所述XCAP服务器中被所述分解后的XCAP操作消息操作过的XML文档的实体标签;处理模块,用于为所述符合应用视图的XML文档创建实体标签,并将所述实体标签与所述XCAP服务器返回的操作响应中携带的实体标签建立关联关系;发送模块,用于向所述应用服务器返回操作响应消息,所述操作响应消息中携带为所述符合应用视图的XML文档创建的实体标签。
7. 根据权利要求6所述的用户数据中心,其特征在于,所述用户数据中心进一步包括第一更新模块,用于当接收的实体标签有更新时,更新和所述接收的实体标签有关联关系的符合应用视图的XML文档的实体标签。
8. 根据权利要求6所述的用户数据中心,其特征在于,所述用户数据中心进一步包括订阅模块,用于向所述XCAP服务器分别订阅其中的至少两个XML文档的实体标签或订阅至少两个XML文档的内容;第三接收模块,用于接收所述XCAP服务器返回的通知消息,根据所述通知消息获取所述XCAP服务器中的XML文档的实体标签。
9. 根据权利要求8所述的用户数据中心,其特征在于,所述用户数据中心还包括第二更新模块,用于当所述第三接收模块接收的所述XCAP服务器中被订阅过的XML文档的实体标签有更新时,更新和所述XCAP服务器中的XML文档相关的符合应用视图的XML文档的实体标签。
10. 根据权利要求6-9中任一权利要求所述的用户数据中心,其特征在于,所述用户数据中心进一步包括判断模块,用于对接收的携带实体标签操作条件的XCAP操作消息进行判断,判断所述操作条件是否满足;相应地,用户数据中心还包括操作模块,用于根据所述判断模块的结果进行操作,是则,根据所述操作条件对符合应用视图的XML文档进行操作;否则,向所述应用服务器返回错误响应。
全文摘要
本发明实施例公开了创建实体标签的方法、用户数据中心及系统。所述方法包括接收由应用服务器发送的XCAP操作消息;将XCAP操作消息中的XCAP操作分解,并发送分解后的XCAP操作;接收XCAP服务器返回的操作响应,操作响应中携带XML文档的实体标签;为符合应用视图的XML文档创建实体标签,将实体标签与XCAP服务器为其中的XML文档创建的实体标签建立关联关系;向应用服务器返回操作响应消息,操作响应消息中携带为符合应用视图的XML文档创建的实体标签。本发明实施例通过用户数据中心管理实体标签,使应用服务器最终可以获取实体标签。
文档编号H04L29/06GK101795259SQ20091000848
公开日2010年8月4日 申请日期2009年2月3日 优先权日2009年2月3日
发明者周帅锋, 曹俊亮, 王澜, 荀鹏, 贾军军 申请人:华为技术有限公司