CN101160804A - 一种可扩展标记语言文档管理方法及系统 - Google Patents

一种可扩展标记语言文档管理方法及系统 Download PDF

Info

Publication number
CN101160804A
CN101160804A CNA2006800122407A CN200680012240A CN101160804A CN 101160804 A CN101160804 A CN 101160804A CN A2006800122407 A CNA2006800122407 A CN A2006800122407A CN 200680012240 A CN200680012240 A CN 200680012240A CN 101160804 A CN101160804 A CN 101160804A
Authority
CN
China
Prior art keywords
document
modification
user
module
record
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006800122407A
Other languages
English (en)
Inventor
鲍洪庆
孙谦
招扬
宋雪飞
田林一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority claimed from PCT/CN2006/002531 external-priority patent/WO2007036148A1/zh
Publication of CN101160804A publication Critical patent/CN101160804A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Abstract

本发明适用于数据通信领域,提供了一种可扩展标记语言文档管理方法及系统,所述方法包括下述步骤:A.存储文档的修改记录;B.在收到用户的文档恢复请求时,根据用户请求恢复的文档所对应的修改记录,将所述用户请求恢复的文档的当前文档恢复到用户需要的版本。通过本发明,可以实现文档的回滚操作,使得用户能够将文档恢复到以前的版本,从而可以为用户的文档误操作提供补救措施。

Description

一种可扩展标记语言文档管理方法及系统
技术领域
本发明属于数据通信领域, 尤其涉及一种 XML文档管理方法及系统。
发明背景
XML (可扩展标记语言) 文档管理 (XDM) 系统是 OMA (Open Mobile Alliance, 开放移动联 盟) 标准中多种业务的通用引擎, 能够存储和管理各种引擎的数据。
如图 1所示, XDM系统主要包括 XDM客户端 100、聚合代理服务器 200以及 XDM服务器 300。 XDM 客户端 100是接入不同 XDM服务器的实体,可以是用户设备终端或服务器。当 XDM客户端 100为用户 设备终端时, 其发送的 XCAP (XML配置访问协议) 请求由聚合代理服务器 200转发给相应的 XDM 服务器 300; 当 XDM客户端为服务器时直接与 XDM服务器 300交互。 XDM客户端 100使用 XCAP协议 管理存储在 XDM服务器 300上的相应 XML文档。
聚合代理服务器 200主要用于完成路由、 鉴权或计费、 压縮等功能。
XDM服务器 300为多个 XDM客户端存储和管理 XML文档, 为订阅了某些文档改变通知的 XDM 客户端在相应文档发生改变时提供通知消息。 XDM服务器 300还提供鉴权功能。
在现有的 XDM系统中, XDM客户端 100对 XML文档的管理和操作包括:
( 1 ) 创建或更新操作: XDM客户端 100可以向 XDM服务器 300发送 XCAP PUT请求, 以创建或 更新一个文档或者一个文档中的某个元素或属性。
(2)读取操作: XDM客户端 100可以向 XDM服务器 300发送 XCAP GET请求, 以获取一个文档 或者一个文档中的某个元素或属性。
(3 ) 删除操作: XDM客户端 100可以向 XDM服务器 300发送 XCAP DELETE请求, 以删除一个 文档或者一个文档中的某个元素或属性。
除了上述文档管理和操作外,在很多情况下需要 XDM系统支持 XML文档从某个时间点的状态恢 复到前面一个时间点的文档恢复功能。例如用户通过 XDM客户端 100在 XDM服务器 300上修改了一个
XML文档, 随后发现操作失误希望将文档恢复到修改前的状态,这种功能是现有的 XDM系统无法提 供支持的, 限制了用户的应用。
发明内容
本发明的目的在于解决现有技术中存在的 XDM系统无法支持将 XML文档从某个时间点的状态 恢复到前面一个时间点, 限制了用户应用的问题。
本发明的目的是通过以下技术方案实现的:
—种可扩展标记语言文档管理方法, 所述方法包括下述步骤- 存储文档的修改记录;
在收到用户的文档恢复请求时, 根据用户请求恢复的文档所对应的修改记录, 将所述用户谘 求恢复的文档的当前文档恢复到用户需耍的版本。
在存储文档的修改记录之前, 所述方法进一步包括: 判断是否保存文档的修改记录。
所述存储文档的修改记录进一步包括:
对文档的修改记录进行规模控制。
所述恢复操作进一步包括:
查找与所述用户请求恢复的文档对应的修改记录, 定位到所述当前文档中对应操作对象的位 置, 按照反时间顺序逐步恢复修改前的操作, 直至恢复到用户需要的版本。
所述恢复操作进一步包括:
根据所述用户请求恢复的文档对应的修改记录, 生成反向操作请求序列;
根据所述反向操作请求序列对所述当前文档进行修改, 直至恢复到用户需要的版本。
所述恢复操作中的文档恢复请求的发送方式包括:
通过 XCAP请求消息或 HTTP POST请求消息的方式发送。
一种可扩展标记语言文档管理系统, 所述系统包括:
修改记录存储模块, 用于存储文档修改记录;
修改操作记录模块, 用于执行文档的修改记录操作, 并将修改操作记录保存到所述文档修改 记录中;
回滚控制模块, 用于在接收到用户的文档恢复请求时, 根据用户请求恢复的文档所对应的修 改记录, 将所述用户请求恢复的文档的当前文档恢复到用户需要的版本。
所述系统进一步包括:
修改配置模块, 用于判断是否保存文档的修改记录, 控制所述修改操作记录模块将修改操作记 录保存到文档修改记录中。
所述修改配置模块还用于限制修改记录的规模。
所述回滚控制模块进一步包括:
回滚操作子模块, 用于查找与所述用户请求恢复的文档对应的修改记录, 按照反时间顺序逐 步恢复修改前的操作, 直至恢复到用户需要的版本。
所述回滚控制模块设置于客户端或者专用的回滚服务器中;
所述修改记录存储模块和修改操作记录模块设置于服务器中。
所述回滚控制模块、 修改记录存储模块以及修改操作记录模块设置于服务器中。
所述回滚控制模块进一步包括:
反向操作请求生成子模块, 用于根据所述用户请求恢复的文档对应的修改记录, 生成反向操 作请求序列。
所述系统进一步包括:
反向操作请求响应模块, 用于根据所述反向操作请求序列对所述当前文档进行修改, 直至恢 复到用户需耍的版本。
所述回滚控制模块、 修改记录存储模块、 反向操作请求响应模块以及修改操作记录模块设置 于服务器中。 所述回滚控制模块设置于客户端或者专用的回滚服务器中;
所述修改记录存储模块、 修改操作记录模块以及反向操作请求响应模块设置于服务器中。 由上述本发明提供的技术方案可以看出, 通过本发明, 可以实现文档的回滚操作, 使得用户能 够将文档恢复到以前的版本, 从而可以为用户的文档误操作提供补救措施。
附图简要说明
图 1是 XDM系统的典型结构图;
图 2是本发明中存储 XML文档的修改记录的实现流程图;
图 3是本发明第一实施例中在 XDM客户端实现文档回滚操作的系统结构图;
图 4是本发明第一实施例中在 XDM客户端实现文档回滚操作的实现流程图;
图 5是本发明第一实施例中在 XDM服务器实现文档回滚操作的系统结构图;
图 6是本发明第一实施例中在 XDM服务器实现文档回滚操作的实现流程图;
图 7是本发明第二实施例中在 XDM系统中增加回滚服务器实现文档回滚操作时的系统结构图; 图 8是本发明第二实施例中在 XDM系统中增加回滚服务器实现文档回滚操作时的实现流程图; 图 9是在本发明第二实施例中在 XDM客户端实现文档回滚操作的实现流程图。
实施本发明的方式
为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对本发明进行 进一步详细说明。应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并不用于限定本发明。
在本发明, 当用户需要对当前 XML文档实现恢复时, 利用当前 XML文档的修改记录将当前 XML文档恢复到用户需要的版本, 可以为用户的误操作提供补救措施。
图 2示出了本发明中存储 XML文档的修改记录的实现流程:
1. XDM客户端 100向 XDM服务器 300发送修改 XML文档的 XCAP请求,当 XDM客户端 100 为用户设备客户端时, 该请求需要经过聚合代理服务器 200转发;
2. XDM服务器 300判断此请求为文档修改操作, 如 XCAP PUT或 XCAP DELETE时, 并根据 用户需求判断需耍对修改操作进行记录后, 保存相应 XML文档的修改记录;
3.XDM服务器 300向 XDM客户端 100返回响应消息(200 OK),当 XDM客户端 100为用户设 备客户端时, 该响应消息需要经过聚合代理服务器 200转发。
在上述过程中, XDM服务器 300可以对修改记录文档进行规模控制, 淸理修改记录文档, 以限 制其规模。例如可以限制对每个 XML文档所记录的操作的数目, 当为某个 XML文档的修改操作进 行记录而违反了限制规则的情况下, XDM服务器 300可以将原有的修改记录中保存较久的记录删 除, 也可以限定对每条操作记录的保存时间, 清理超过保存时间的操作记录。 对修改记录 XML文 档进行清理前或者修改记录 XML文档将耍超出预定规模时, XDM服务器 300可以根据 XDM客户 端 100的耍求发送通知消息。
在本发明提供的第一实施例中,根据相应的 XML文档及该 XML文档的修改记录文档进行回滚 操作。 首先查找修改记录文档中与所需文档版本相应的一条修改记录, 定位到当前 XML文档中操 作对象的位置, 若操作为 XCAP DELETE操作, 则将所记录的删除前的元素或属性值插入定位处, 若操作为 XCAP PUT操作, 当修改记录中存在操作前的元素或属性时, 用操作前的元素或属性替换 定位处的元素或厲性。 按照反时间顺序逐步回滚, 当回滚到所需版本的 XML文档时停止回滚操作。
上述文档回滚操作过程可以在 XDM客户端 100中实现,也可以在 XDM服务器 300中实现,同 时也可以通过专门的回滚服务器实现。
图 3示出了在 XD^客户端 100实现文档回滚操作的系统结构:
XDM客户端 100包括回滚控制模块 101, XDM服务器 300包括修改记录存储模块 301、修改配 置模块 302以及修改操作记录模块 303。 '
回滚控制模块 101对 XML文档进行回滚操作, 使其回滚到以前某个时间点的版本。 回滚控制 模块 101通过回滚操作子模块 1011执行上述回滚操作。
XDM客户端还包括反向操作请求生成模块 1012, 用于生成发向操作请求。
对应 XDM客户端的发向操作请求生成模块 1012, 在 XDM服务器端设置有反向操作请求响应 模块 304, 用于根据反向操作请求生成模块 1012生成的反向操作请求对文档进行回滚修改。
修改记录存储模块 301记录了相应 XML文档的修改记录。 当修改操作记录模块 303需要对某 个 XML文档的修改情况进行记录时, 将修改情况记录在修改记录存储模块 301中。
修改记录存储模块 301为每个用户维护一个修改记录文档, 记录了用户的 XML文档的修改情 况, 每当用户对其一个 XML文档进行创建、 删除或修改操作时, XDM服务器 300将修改情况记录 在修改记录文档中。
修改记录文档中的修改记录信息可以采用下述 XML架构-
<?xml version-" 1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf:params:xml:ns:xcap-log"
xmlns:xs="http://www. w3.org/2001/XMLSchema"
xmlns="urn:ietf:params:xml:ns:xcap-log"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="change-log">
<xs :complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs: element ref="delete-event"/>
<xs:eleraent ref="put-event"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs:="unbounded"/> </xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="put-event">
<xs:coraplexType>
<xs:choice> 〉
<put-event>元素或 <delete-event>元素, 表示对修改该 XML文档的一个操作的记录。 当修改操作为 XCAPPUT时, 对应 <put- event>元素, 当修改操作为 XCAP DELETE时, 对应 <delete- event 元素。
在^^- event>中, 当操作对象为 XML文档中的元素时, <previous- element^记录操作前的元素 信息, <element>记录操作后的元素信息; 当操作对象为 XML 文档中元素的属性时, <previous-attribute:^Ei录操作前的属性信息, <attribute>记录操作后的厲性信息。
在< ^6- event>中, 当橾作对象为 XML文档中的元素时, <previous- element:^ 录删除操作前 元素的信息, 当操作对象为 XML文档中元素的属性时, <preVi0US-at bute^3录删除操作前属性的 信息。
<put-even >^:l<delete-event>包含' 'node-selector"属性, 指定修改操作对应的元素。 <put- event:^l-l <delete- eveiit>还包含 <type>、 <operator>、 <previous- etag>、 <etag>、 其中, < 6>表示操作类型, 例如创建、 修改或者删除等, <operator>表示操作者, <previous- etag>表示操 作前文档的 etag值, <etag>表示操作后的文档的 etag值, < 1^31 0^>表示操作时的时间戳。
—个 XML文档的修改记录可以使用以下 XML架枸:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace=nurn:ietf:params:xinl:ns:xcap-log"
xmlns:xs="http:〃 www. w3.org/2001/XMLSchema"
xmlns=nurn:ietf:params:xml:ns;xcap-logn
elementFormDefault="qualifiedn attributeFormDefault="imqualifiedM>
<xs: element name-"xcap-logn>
<xs:complexType>
<xs sequence minOccurs="0n maxOccurs="unbounded">
<xs:element name=',documentn>
<xs: element ref=M change-log'7>
用来控制是否对 XML文档的修改橾作进行记录, 并可以限制修改记录的规模, 例如用户的某个文 档最多只能记录 10条修改操作或者只存储最近一个月的修改操作等。 在 XDM服务器 300创建、 删 除或修改某个 XML文档时, 修改操作记录模块 303根据修改配置模块 302判断是否需要对此文档 的操作进行记录, 在需要记录的情况下将修改情况记录在修改记录存储模块 301中。 回滚控制模块 101在进行回滚橾作时也需要查看修改配置模块 302,确定是否存在相应 XML文档的修改操作记录。
修改配置模块 302以 XML文档的格式存储文档的修改操作信息, 其架构如下所述:
<?xml version"" 1.0" encoding="UTF-8"?>
<xs .-schema targetNamespace-nurn.Oma:params:xml:ns:xcap-log-configure"
xmlns:xs=="http:〃 www. w3.org/2001/XMLSchema"
xmlns="urn:ietf:paraiTis:xml:ns:xcap-log"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="log-configure">
<xs:complexType>
<xs: sequence minOccurs="0" maxOccurs="unboundedM>
<xs:element name="document">
<xs:complexType>
<xs: element name="need-log" type=,,xs:boolean'7>
<xs :complexType>
<xs:choice>
<xs:element name™' log-scale" type="xs: integer "/>
<xs:element name-nlog-period" t pe="xs:timespan"/>
</xs:choice>
</xs :complexType>
</xs:complexType>
<xs:attribute name="doc- selector" type=tfxs:anyURr7>
</xs:element>
</xs:sequeace>
</xs:complexType>
</xs:element> </xs:schema>
图 4示出了在 XDM客户端 100实现文档回滚操作的实现流程,用户通过 XCAP协议请求 XDM 服务器 300将用户 B、 C从好友列表中删除, 后来发现删除操作失误, 需要将相应 XML文档回滚到 删除之前的状态, 并保存回 XDM服务器 300。
修改前的 XML文档为:
<?xml version-" 1.0" encoding="UTF-8M?>
<resource-Iists xmlns="urn:ietf;paraTns:xml:ns:resource-listsn>
<list name="friends>
<entry uri="sip:userB@example.com,f> .
<display-name>Bob</display-name>
</entry>
<entry uri- isip:userC@example.comn>
<display-name>Christopher</display-name>
</entry>
<entiy uri- 'sip:userD@example.comn>
<display-name>Dennis</display-name>
</entry>
</list>
</resource-lists>
~~相应的修改记录文档为:
<?xml version- 51.0" encoding="UTF- 8,,?>
<log - configure xmlns=,>urn:oma:params;xml:ns:log-configure">
<log-configure>
<document doc-selector="resource-lists/users/userA/friends.xml">
<need-log>true></need-log>
<Iog-scaIe> 100</log-scale>
</documen1>
</log-configure>
由上可见, 最初的修改记录文档中相关 <doCUment^ 点中 <change>元素为空。
具体实现流程如下-
( 1 )XDM客户端 100通过 XCAP协议向 XDM服务器 300分别请求删除其好友列表 friends.xml 中的好友13、 C。 XDM服务器 300删除好友6、 C, 修改操作记录 303根据修改配 S模块 302确定 霈耍为用户对此文档 (fdends.xml) 的删除操作进行记录后, 按上述格式向修改记录存储模块 301 中的修改记录文档中写入修改信息 (图中 1〜10);
(2) 用户需要回滚上述删除操作, XDM客户端 100通过聚合代理服务器 200向 XDM服务器 300发送 XCAP GET请求, 请求 XDM服务器 300中保存的最新的 XML文档 (fdends.xml) (图中 11〜12); (3 ) XDM服务器 300将所请求的 XML文档通过聚合代理服务器 200返回给用户 A的 XDM 客户端 100 (图中 13〜14) ;
(4 ) 用户通过 XCAP GET向 XDM服务器 300请求相应的修改记录信息 (图中 15〜16);
( 5 ) XDM服务器 300修改配置模块 302确定有相应的修改记录 XML文档后, 将所请求的修 改记录 XML文档通过聚合代理服务器 200返回 XDM客户端 100 (图中 17〜18 );
(6) XDM客户端 100对 XML文档进行回滚操作,将 XML文档回滚到删除 B、 C前的状态(图 中 19);
回滚操作子模块 1011 根据 <delete-event>元素中的<¾1^5 31邵>元素的内容获取记录了最近修改 的<delete-event>元素, 即修改记录中的第二个< delete-event >元素, 根据其中的<^ 6>子元素确定此 操作类型为删除元素, 根据其 "node- selector"属性确定所删除的元素在原文档中的位置, 将删除前的 元素即 <previ0US-element>子元素所记录的元素插入到原文档中所确定的位置处, 完成了一个回滚步 骤; 依次根据每个记录了最近时间的操作的<叩^^011>元素进行上述回滚步骤的操作 ' 当用户确定 回滚到需要的状态后, 即可将回滚后的 XML文档通过 XCAP PUT请求保存到 XDM服务器 300中。
(7 )用户的 XDM客户端 100通过 XCAP PUT请求将回滚后的 XML文档通过聚合代理服务器 200发送给 XDM服务器 300保存 (图中 20〜23 )。
在上述流程中, 用户在图中步骤 1中将其好友 B在列表中删除时向 XDM服务器 300所发送的 XCAP 请求的格式如下:
DELETE
http://xcap.example.eom/services/resource-lists/users/sip:userA@example.com/friends.xml ~~ /resour ce-lists/list[@name- 'friends'']/entry[@uri="sip:userB@example.com"] HTTP/1.1
Content-length: 0 经过步骤 3、 8, XDM服务器 300修改配置模块 302记录了删除] 3、 C的操作后, 修改记录文档 中的节点内容为:
<document doc-selector=" resource-lists/users/userA/friends.xml"
previous-etag="abababab"
etag="efefefef >
<delete- event node-selector=" resouce-lists/list[@name=%22friend
s%22]/entry[@uri=%22userB@example.com%22]" >
<type>del-elem</type>
<requestor> sip:userA@example.com </requestor>
<previous-etag>abababab</ previous-etag >
<etag> cdcdcdcd</etag>
<timestamp>199809010915001</timestamp>
<previous-element>
<entry uri="sip:userB@example.com"> <display-name>Bob </display-name>
</entry>
</previous-elemeni>
</ delete-event >
< delete- event node-selector=" resouce-lists/list[@name=%22friend
s%22]/entry[@uri=%22userC@example.com%22]">
<type>del-elem</type>
<requestor> sip:userA@example.com </requestor>
<previous-etag>cdcdcdcd</ previous-etag >
<etag> efefefef</etag>
<timestamp> 199809010915002</timestamp>
<previous-element>
<entry uri~"sip:userC@example.com">
<display-name>Christopher</display-name>
</entry>
</previous-element>
<new-element />
</operation>
</document>
XDM服务器 300中保存的修改后的 XML文档的内容为:
1 version="1.0" encoding="UTF-8n?>
<resource-lists xmlns~,,urn:ietf:paranis:xxnl:ns:resource-listsn>
<list name="friends>
<entry uri="sip:userD@example.com">
<display-name>Dennis</display-name>
</entry>
</list>
</resource-lists>
图 5示出了在 XDM服务器 300实现文档回滚操作的系统结构,回滾控制模块 101位于 XDM服 务器 300中, 直接使用 XDM服务器 300中存储的相应 XML文档与修改记录文档,完成文档的回滚 操作, 实现流程如图 6所示:
1. XDM客户端 100向 XDM服务器 300发送 XCAP请求,请求的消息体中含有要回滚的 XML 文档及回滚到的版本等信息, 可以釆用如下 XML架枸:
<?xml versions" 1.0" encoding="UTF-8"?>
<xs:schema targetNamespace=num:oma:params:xml:ns:xcap-iOllback"
xmlns:xs=T'http://www. w3.org/2001/XMLSchema"
xmlns="urn:ietf:params:xmI:ns:xcap-Iog" elementFormDefault=nqualified" attributeFormDefault="unqualified">
<xs '.element name="roll-back">
<xs:complexType>
<xs:element name="documentn t pe="xs:anyURI"/>
<xs :complexType>
<xs:choice>
<xs:element name="previous-etag" t pe="xs:string"/>
<xs:element name="back- steps" type="xs:integern/>
<xs:element name="before" type="xs:datetime"/>
</xs:choice> '
</xs:complexType>
</xs :complexType>
</xs:element>
</xs:schema>
其中, 01½ >为根元素。 <rollback>含有子元素 <document>, 指明要回滚的文档; 还含有一 个元素可以是 <previous-etag>、 <back- steps>或者 <before>三者之一, 确定要回滚到的版本。
例如, 假设 XDM客户端 100要将 XML文档回滚到 etag为 "cdcdcdcd"的状态, 此文档的 URI 为:
http://xcap.example om/services/resource ists/users/sip:userA@exai pl^
XDM客户端 100可以向 XDM服务器 300发送如下的 XCAP请求消息-
PUT http://xcap.exmnple om/services/resource-lists/userA@example om/rollback HTTP/1.1
Content-Type: application/rollback+xml
Content-Length: (...)
<?xml version™' 1.0" encoding=T,UTF-8"?>
<iOllback mlns==uurn:oma:params:xiTil:ns:rollbackn>
<document>resource-lists/users/sip:userA@example om/friends.xml</dociUTient>
<back-etag>cdcdcdcd</back-etag>
</rollback>
2.聚合代理服务器 200根据消息中的 AUID (Application Unique ID, 应用程序唯一 ID) 将消息 转发给相应的 XDM服务器 300;
3. XDM服务器 300接收消息后, 提取消息中的信息, 获取所耍回滚的文档及耍回滚到的版本, 由回滚控制模块 101对相应文档进行回滾操作, 具体实现如上所述, 不再赞述;
4. XDM服务器 300返回响应;
5. 聚合代理服务器 200将响应发送到 XDM客户端 100。
上述步骤 1种 XDM客户端还可以使用 HTTP POST消息发送回滚请求; 其中 POST消息的 Requst-URI为操作对象文档:
htip://xcap.examplexom/services/resource-lists/userA@examplexom/friends.xml
消息具体如下:
POST http:〃xcap.example.com/services/resource-lists/userA@example.com/friends,xml HTTP/1.1
Content-Type: application/rollback+xml
Content-Length: (...)
<?xml version- ' 1.0" encoding="UTF-8n?>
<iOllback xmlns="um:oma:pamms:xml:ns:rollback">
<document>resource-lists/users/sip:userA@examplexom/friends.xml</document>
<back-etag>cdcdcdcd</back-etag>
</rollback>
图 7示出了在 XDM系统中增加一个回滚服务器 400实现文档回滚操作时的系统结构。 回滚控 制模块 101位于回滚服务器 400中。 回滚服务器 400裉据 XDM客户端 100的回滚请求中的回滚信 息, 确定将 XDM 服务器 300 中的 XML 文档回滚到哪种状态。 同时, 系统可以定义 AUID "org.openmobilealiance.rollback表示回滚应用。
假设客户端耍回滚的 XML文档为:
http^/xcap.example.com/services/resource-lists/users/sip userA^example.com/ friends. ml
消息体中包含所要回滚的文档 URI以及要回滚到的版本等信息, 消息体的格式与上述类似:
PUT http:〃xcap.example.com/services/org.openmobilealliance.rollback/users/sip:userA@example,com/ HTTP/1.1
Content-Type: application/rollback+xml
Content- Length: (...)
<?xml version- ' 1.0" encoding="UTF-8"?>
<rollback xmlns=Mum:oma:params:xml:ns:rollback">
<document〉http:〃xcap.example.com/services/resource-lists/users/sip:userA@example.com/friends,xml</ document>
<back-etag>cdcdcdcd</back-etag>
</rollback>
~~~实现流程如图 8所示, 详述如下:
1.XDM客户端 100向聚合代理服务器 200发送上述 XCAP请求; 2.聚合代理服务器 200根据请求消息头中的 AUID将消息转发给回滚服务器 400;
3.回滚服务器 400接收到消息后, 根据修改配置模块 302中的文档修改记录判断是否存在该 XML 文档的修改记录;
4.回滚服务器 400向相应的 XDM服务器 300发送 XCAP GET消息, 请求获取相应的 XML文档; 5.XDM服务器 300将所请求的 XML文档返回给回滚服务器 400;
6.回滚服务器 400向 XDM服务器 300发送 XCAP GET消息, 请求获取相应的修改记录 XML文档;
7. XDM服务器 300将所请求的修改记录 XML文档返回给回滚服务器 400;
8.回滚服务器 400对相应 XML文档进行回滚操作;
9.回滚服务器 400将回滚后的 XML文档发送给 XDM服务器 300;
10.XDM服务器 300将文档存储后向回滚服务器 400返回响应消息;
11.回滚服务器 400向聚合代理服务器 200返回响应消息;
12.聚合代理服务器 200向 XDM客户端 100返回响应消息。
在本发明提供的第二实施例中,回滚控制模块 101根据相应的修改记录文档从最新的操作记录开 始生成反向 XCAP操作请求序列, XDM服务器 300响应每一个反向 XCAP操作请求, 逐步完成对相应 XML文档的回滚, 得到所需的回滚后的 XML文档, 回滚控制模块 101的这些反向操作请求由反向操 作请求生成模块 1012生成。 相应的, XDM服务器 300增加了反向操作请求响应模块 304用来根据反向 操作请求生成模块 1012生成的反向操作请求对文档进行回滚修改。 与第一实施例相比, 该实施例可 以减少 XDM服务器 300与 XDM客户端 100之间的通信量, 可以在 XDM客户端 100上实现, 也可以在回 滚服务器 400上实现, 相应的系统结构如上所述, 不再赘述。
图 9示出了在 XDM客户端 100时的实现流程, XDM客户端 100获取相应的修改记录文档(图中 11〜
14), 从最新的操作记录开始, 回滚控制椟块 101生成反向 XCAP操作请求序列 (图中 15), XDM客户 端 100向 XDM服务器 300发送反向 XCAP操作请求, XDM服务器 300中的反向操作请求响应模块 304响 应每一个反向 XCAP操作请求,逐步完成对相应 XML文档的回滚,得到所需的回滚后的 XML文档(图 中 16〜23 ), 其他过程与上述流程相同, 不再赘述。
当然, 回滚服务器 400也可以生成反向 XCAP操作谙求序列, 并将此序列发送给 XDM服务器 300,
XDM服务器 300执行此 XCAP操作序列后, 即得到回滚后的 XML文档, 具体过程如上所述, 不再赘 述。
在本发明中, 当回滚控制模块 101位于 XDM客户端 100中时, 回滚控制模块 101在进行回滚操作 时可以判断 XDM客户端 100中是否保存了相应 XML文档的较新版本, 若没有则通过 XCAP GET请求 从 XDM服务器 300获取相应 XML文档,否则可以直接使用 XDM客户端 100中保存的该新版本的文档。
需耍说明的是,为了描述简便,在本发明提供的图 3、 5以及 7中仅仅示出了与本发明相关的部分。 显然, XDM客户端 100、聚合代理服务器 200、 XDM服务器 300以及回滚服务器 400中有相应的接口模 块用来实现彼此之间的 XCAP协议消息的传递。 同时, 除了上述描述的构成模块外, XDM服务器 300 中还具有存储用户 XML文档的文档存储模块以及用于对用户的 XML文档进行修改操作的文档修改 模块。 上述这些模块的功能均是现有系统能够提供的。 当然, 本发明中上述的反向操作请求响应模 块 304的功能完全可以由 XDM服务器 300原有的文档修改功能来实现。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡在本发明的精神和原则之内 所作的任何修改、 等同替换和改进等, 均应包含在本发明的保护范围之内。

Claims (16)

  1. 权利要求
    1、 一种可扩展标记语言文档管理方法, 其特征在于, 所述方法包括下述步骤:
    存储文档的修改记录;
    在收到用户的文档恢复请求时, 根据用户请求恢复的文档所对应的修改记录, 将所述用户请 求恢复的文档的当前文档恢复到用户需要的版本。 '
  2. 2、 如权利要求 1所述的文档管理方法, 其特征在于, 在存储文档的修改记录之前, 所述方法 进一步包括:
    判断是否保存文档的修改记录。
  3. 3、 如权利耍求 1所述的文档管理方法, 其特征在于, 所述存储文档的修改记录进一步包括: 对文档的修改记录进行规摸控制。
  4. 4、 如权利要求 1或 2所述的文档管理方法, 其特征在于, 所述恢复操作进一步包括: 査找与所述用户请求恢复的文档对应的修改记录, 定位到所述当前文档中对应操作对象的位 置, 按照反时间顺序逐步恢复修改前的操作, 直至恢复到用户需要的版本。
  5. 5、 如权利要求 1或 2所述的文档管理方法, 其特征在于, 所述恢复操作进一步包括: 根据所述用户请求恢复的文档对应的修改记录, 生成反向操作请求序列;
    根据所述反向操作请求序列对所述当前文档进行修改, 直至恢复到用户需要的版本。
  6. 6、 如权利要求 1或 2所述的文档管理方法, 其特征在于, 所述恢复操作中的文档恢复请求的 发送方式包括:
    通过 XCAP请求消息或 HTTP POST请求消息的方式发送。
  7. 7、 一种可扩展标记语言文档管理系统, 其特征在于, 所述系统包括:
    修改记录存储模块, 用于存储文档修改记录;
    修改操作记录模块, 用于执行文档的修改记录操作, 并将修改操作记录保存到所述文档修改 记录中;
    回滚控制模块, 用于在接收到用户的文档恢复请求时, 根据用户请求恢复的文档所对应的修 改记录, 将所述用户请求恢复的文档的当前文档恢复到用户需耍的版本。
  8. 8、 如权利要求 7所述的文档管理系统, 其特征在于, 所述系统进一步包括:
    修改配置模块, 用于判断是否保存文档的修改记录, 控制所述修改操作记录模块将修改操作记 录保存到文档修改记录中。
  9. 9、 如权利耍求 8所述的文档管理系统, 其特征在于, 所述修改配置模块还用于限制修改记录 的规模。
  10. 10、 如权利耍求 7所述的文挡管理系统, 其特征在于, 所述回滚控制模块进一步包括- 回滚操作子模块, 用于査找与所述用户请求恢复的文档对应的修改记录, 按照反时间顺序逐 步恢复修改前的操作, 直至恢复到用户需要的版本。
  11. 11、 如权利耍求 7至 10中任一项所述的文档管理系统, 其特征在于, 所述回滚控制模块设 S 于客户端或者专用的回滚服务器中;
    所述修改记录存储模块和修改操作记录模块设置于服务器中。
  12. 12、 如权利耍求 7至 10中任一项所述的文档管理系统, 其特征在于, 所述回滚控制模块、 修 改记录存储模块以及修改操作记录模块设置于服务器中。
  13. 13、 如权利要求 7所述的文档管理系统, 其特征在于, 所述回滚控制模块进一步包括: 反向操作请求生成子模块, 用于根据所述用户请求恢复的文档对应的修改记录, 生成反向操 作请求序列。
  14. 14、 如权利要求 13所述的文档管理系统, 其特征在于, 所述系统进一步包括:
    反向操作请求响应模块, 用于根据所述反向操作请求序列对所述当前文档进行修改, 直至恢 复到用户需要的版本。
  15. 15、 如权利要求 14所述的文档管理系统, 其特征在于, 所述回滚控制模块、 修改记录存储模 块、 反向操作请求响应模块以及修改操作记录模块设置于服务器中。
  16. 16、 如权利要求 14所述的文档管理系统, 其特征在于, 所述回滚控制模块设置于客户端或者 专用的回滚服务器中;
    所述修改记录存储模块、 修改操作记录模块以及反向操作请求响应模块设置于服务器中。
CNA2006800122407A 2005-12-07 2006-09-26 一种可扩展标记语言文档管理方法及系统 Pending CN101160804A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2005101022704A CN1859379B (zh) 2005-12-07 2005-12-07 一种可扩展标记语言文档管理方法及系统
CN200510102270.4 2005-12-07
PCT/CN2006/002531 WO2007036148A1 (fr) 2005-09-29 2006-09-26 Dispositif, système et procédé d'auto-reconnaissance vocale dans une portée limitée

Publications (1)

Publication Number Publication Date
CN101160804A true CN101160804A (zh) 2008-04-09

Family

ID=37298241

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2005101022704A Active CN1859379B (zh) 2005-12-07 2005-12-07 一种可扩展标记语言文档管理方法及系统
CNA2006800122407A Pending CN101160804A (zh) 2005-12-07 2006-09-26 一种可扩展标记语言文档管理方法及系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2005101022704A Active CN1859379B (zh) 2005-12-07 2005-12-07 一种可扩展标记语言文档管理方法及系统

Country Status (3)

Country Link
US (1) US7945536B2 (zh)
CN (2) CN1859379B (zh)
WO (1) WO2007065332A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174386A (zh) * 2022-06-30 2022-10-11 中国联合网络通信集团有限公司 配置访问策略应用方法、uicc、终端及系统

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859379B (zh) 2005-12-07 2011-02-09 华为技术有限公司 一种可扩展标记语言文档管理方法及系统
US8756204B2 (en) * 2008-01-08 2014-06-17 Microsoft Corporation Asynchronous multi-level undo support in javascript grid
US7844574B2 (en) * 2008-04-16 2010-11-30 International Business Machines Corporation Systems, methods and computer program products for automatic network-based persistent XML storage and management
CN101795259B (zh) * 2009-02-03 2012-10-17 华为技术有限公司 创建实体标签的方法及用户数据中心
CN101800657B (zh) * 2009-02-10 2013-09-11 中兴通讯股份有限公司 一种融合地址簿系统及其联系视图管理方法
KR20100113975A (ko) * 2009-04-14 2010-10-22 엘지전자 주식회사 과거에 수행된 특정 동작을 선택적으로 취소하는 xml 문서 관리 방법 및 이를 이용한 시스템
US20120131168A1 (en) * 2010-11-22 2012-05-24 Telefonaktiebolaget L M Ericsson (Publ) Xdms for resource management in m2m
CN102281141B (zh) * 2011-07-26 2013-11-06 华为数字技术(成都)有限公司 一种文档权限管理方法、装置及系统
KR20130094608A (ko) * 2012-02-16 2013-08-26 삼성전자주식회사 통합주소록 서버에 의한 문서 복원 방법 및 이를 위한 통합주소록 클라이언트 단말
US10104082B2 (en) * 2013-11-06 2018-10-16 William P. Jones Aggregated information access and control using a personal unifying taxonomy
CN104217174A (zh) * 2014-09-05 2014-12-17 四川长虹电器股份有限公司 分布式文件安全存储系统及其存储方法
CN107622380A (zh) * 2017-09-29 2018-01-23 南京宏海科技有限公司 基于云服务交互、保存文档信息的方法、信息管理方法
US11928744B1 (en) 2019-04-08 2024-03-12 Avalara, Inc. Nexus notification platform
EP4176350A1 (en) * 2020-07-02 2023-05-10 Avalara, Inc. Online service platform (osp) generating and transmitting on behalf of primary entity to third party proposal of the primary entity while maintaining the primary entity anonymous
CN112199133B (zh) 2020-09-01 2021-10-12 北京达佳互联信息技术有限公司 信息聚合方法、装置、电子设备及存储介质
US20230089721A1 (en) * 2021-09-22 2023-03-23 Hewlett Packard Enterprise Development Lp Difference based multiple device configuration rendering and editing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974425A (en) * 1996-12-17 1999-10-26 Oracle Corporation Method and apparatus for reapplying changes to a database
US6769074B2 (en) * 2000-05-25 2004-07-27 Lumigent Technologies, Inc. System and method for transaction-selective rollback reconstruction of database objects
ES2326073T3 (es) * 2001-11-23 2009-09-30 Research In Motion Limited Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml).
AU2003278779A1 (en) * 2002-09-10 2004-04-30 Exagrid Systems, Inc. Primary and remote data backup with nodal failover
US7305422B1 (en) * 2002-09-26 2007-12-04 Oracle International Corporation Performing computationally intensive calculations within a database server that provides a recovery mechanism
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7395279B2 (en) * 2003-11-17 2008-07-01 International Business Machines Corporation System and method for achieving different levels of data consistency
US7318070B2 (en) 2004-03-11 2008-01-08 International Business Machines Corporation Method and apparatus for maintaining compatibility within a distributed systems management environment with a plurality of configuration versions
FI20050092A0 (fi) * 2004-09-08 2005-01-28 Nokia Corp Ryhmäpalveluiden ryhmätiedot
CN100338605C (zh) * 2004-10-12 2007-09-19 北京北大方正电子有限公司 一种可扩展标记语言文档修改痕迹的记录方法
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
CN1859379B (zh) 2005-12-07 2011-02-09 华为技术有限公司 一种可扩展标记语言文档管理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174386A (zh) * 2022-06-30 2022-10-11 中国联合网络通信集团有限公司 配置访问策略应用方法、uicc、终端及系统
CN115174386B (zh) * 2022-06-30 2023-06-16 中国联合网络通信集团有限公司 配置访问策略应用方法、uicc、终端及系统

Also Published As

Publication number Publication date
CN1859379A (zh) 2006-11-08
US7945536B2 (en) 2011-05-17
US20080147751A1 (en) 2008-06-19
WO2007065332A1 (fr) 2007-06-14
CN1859379B (zh) 2011-02-09

Similar Documents

Publication Publication Date Title
CN101160804A (zh) 一种可扩展标记语言文档管理方法及系统
US11747962B2 (en) Bookmarking shared file and folder links
US20070124294A1 (en) Search proxy device, communication system, and method for searching for information
CN101299829B (zh) 一种实现统一存储中管理媒体内容的方法和消息系统
EP2282272B1 (en) Method, system and device for presenting advertisement
CN101155049B (zh) 一种消息系统中会话历史处理方法及消息系统
CN101557409B (zh) 一种地址簿信息融合管理的方法及装置
US20090187622A1 (en) Method, system and apparatus for data synchronization
CN100426729C (zh) 一种呈现系统及其处理订阅者订阅信息的方法
JP5545953B2 (ja) Xml文書管理サーバヒストリーを管理するためのシステム及び方法
JP5628799B2 (ja) 個人情報ファイル管理ツール
CN109889424A (zh) 信息处理方法、装置及存储介质
CN102769640B (zh) 用户信息的更新方法、服务器以及系统
US8719357B2 (en) Method and apparatus for managing message
CN105207885B (zh) 在会话界面中展示用户信息的方法及装置
CN106470146A (zh) 即时通信应用中文本转换为语音的方法和装置
CN103107993B (zh) 具有微博发布功能的桌面便签系统及其微博发布的方法
US20090259722A1 (en) Method and System for Previewing of Forwarding File Attachments Received During a Chat Session
CN101296201A (zh) 网络信息共享方法、系统及即时通信装置
US8826026B2 (en) Systems and methods for tracking electronic files in computer networks using electronic signatures
CN101236551A (zh) 会议搜索方法和系统
CN101202953B (zh) 快捷回复方法及其系统
CN114996216A (zh) 一种基于树结构的文档处理方法、装置、设备和介质
CN102387026B (zh) 基于泛关系链模型的系统中用户资料的管理方法及装置
CN101771731B (zh) 获取网络地址本的方法和实现网络地址本的装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication