CN101119511A - 一种获取资源实体的方法和服务器与客户端 - Google Patents

一种获取资源实体的方法和服务器与客户端 Download PDF

Info

Publication number
CN101119511A
CN101119511A CNA2006100619445A CN200610061944A CN101119511A CN 101119511 A CN101119511 A CN 101119511A CN A2006100619445 A CNA2006100619445 A CN A2006100619445A CN 200610061944 A CN200610061944 A CN 200610061944A CN 101119511 A CN101119511 A CN 101119511A
Authority
CN
China
Prior art keywords
resource entity
institute
server
request
document
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.)
Granted
Application number
CNA2006100619445A
Other languages
English (en)
Other versions
CN101119511B (zh
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 to CN2006100619445A priority Critical patent/CN101119511B/zh
Publication of CN101119511A publication Critical patent/CN101119511A/zh
Application granted granted Critical
Publication of CN101119511B publication Critical patent/CN101119511B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种获取资源实体的方法,其核心思想是:客户端向服务器发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识;服务器根据所述请求消息中的版本标识判断所请求资源实体对应文档已经修改,并将所述文档中对应的所请求的资源实体及文档的版本标识传送给客户端或将所请求资源实体对应的文档的版本标识传送给客户端。此外,本发明还提供一种服务器和客户端。通过本发明,当所请求的资源实体没有改变时不向客户端发送所请求的资源实体以及仅向客户端传输所请求的资源实体。

Description

一种获取资源实体的方法和服务器与客户端
技术领域
本发明涉及通信技术领域,尤其涉及一种获取资源实体的方法和服务器与客户端。
背景技术
在移动通信领域中,移动客户端与服务器之间经常需要传送资源,如移动客户端向服务器获取资源,或向服务器传送资源,而这种资源的传输通常都以消息的方式请求传输。很多移动通信标准都制定了一些机制来减少不必要的消息传输或者减小消息的大小。现在已有WBXML(Wireless Binary eXtensibleMarkup Language)规范,用来对可扩展标记语言(eXtensible Markup Language,简称:XML)文档进行压缩。IETF(Internet Engineering Task Force)组织也制定了RFC3320 SigComp(Request For Comments3320 SigComp)标准对文本消息进行压缩。除了对传输信息进行压缩之外,另一种方法就是减少不必要的消息传输。RFC2616 HTTP 1.1标准中引入条件GET操作,通过提供一个本地缓存资源的实体标签(Entity Tag,简称:ETag),使服务器能够识别所请求的资源相对本地缓存资源是否已被修改,如果所请求的资源未被修改,服务器则不将所请求的资源传输给客户端,仅发送一条不带消息体的响应消息;如果所请求资源被修改,服务器则向客户端发送修改后的资源,并给出修改后的资源对应的实体标签。
开放移动联盟(OMA:Open Mobile Alliance)标准组织制定的XML文档管理(XML Document Mangement,简称:XDM)规范采用了IETF的XML配置访问协议(XML Configuration Access Protocol,简称:XCAP协议)用来管理XDM服务器上的XML文档。XCAP协议后来增加了相应于超文本传输协议(HyperTextTransfer Protocol,简称:HTTP协议)的条件操作机制,用来减少资源实体的传输。不过这种条件操作是针对整个文档进行的,即如果请求资源对应的整个文档未被修改才能避免在消息体中传输请求资源实体。
现有的XCAP协议实现条件操作为在XCAP协议中XCAP GET消息所请求的资源实体或者为一个XML文档,或者为一个XML文档中的一个元素或一个属性。当服务器收到XCAP GET请求消息后,若消息中带有If-None-Match消息头,则将消息头中的实体标签值和服务器所保存的对应所请求资源的XML文档的实体标签值进行比较,若两者匹配则返回响应消息304 Not Modified,而不传输请求资源实体,若两者不匹配则返回响应消息200 OK,消息中携带所请求的资源实体。
当然,现有技术还可以用所请求的资源实体的修改时间代替如上所述的实体标签值,当服务器采用资源实体的修改时间时,客户端如请请求获取资源实体,则需要在请求消息的If-Modified-Since中携带客户端所保存的所请求资源实体的修改时间,当服务器收到XCAP GET请求消息后,若消息中带有If-Modified-Since消息头,将消息头中的修改时间和服务器所保存的对应所请求资源的XML文档的修改时间进行比较。若两者相同,则返回响应消息304Not Modified,而不传输请求资源实体;若两者不相同则返回响应消息200 OK,消息中携带所请求的资源实体,以及该资源实体的修改时间。
然而,XCAP虽然实现了XML文档的条件检索功能,但条件检索是针对文档是否有修改进行的。而在OMA的XDM规范中,一个列表可以通过引用包含另一个文档中的列表,这时,客户端获取此列表时,不仅需要获取此列表本身,还需要获取所引用的列表内容,若所引用的文档中任何元素有改变,即便所请求的列表未发生改变,也必须将整个列表传送给客户端。当然,XCAP协议中的一个文档也总是分为几个部分,如客户端欲获取文档中的某一部分时,若文档的其他部分变化,服务器也必须将整个文档传送给客户端。
发明内容
本发明的目的在于提供一种获取资源实体的方法和服务器与客户端,当所请求的资源实体没有改变时不向客户端发送所请求的资源实体以及仅向客户端传输所请求的资源实体。
为达到本发明的目的,所采取的技术方案是提供一种获取资源实体的方法,包括:A、客户端向服务器发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识;B、服务器根据所述请求消息中的版本标识判断所请求资源实体对应文档已经修改,并将所述文档中对应的所请求的资源实体及文档的版本标识传送给客户端或将所请求资源实体对应的文档的版本标识传送给客户端。
优选的,步骤B中,服务器根据所述请求消息中的版本标识判断所请求资源实体对应文档已经修改具体为:服务器获取所请求消息中的版本标识,并确定请求消息中的版本标识与服务器中所述文档的当前版本标识不一致,确定所请求资源实体对应文档已经修改。
优选的,步骤B中,服务器判断请求资源实体对应的文档修改后,并判所请求的资源实体的大小小于服务器预定的需查询历史记录数据库的资源实体的大小的预定值,并直接将所请求的资源实体及所请求资源实体对应文档的当前版本标识发送给客户端;
或服务器根据请求消息中的版本标识与请求消息中所请求资源实体对应文档的当前版本标识比较所述文档在请求消息中版本标识之后的修改次数大于服务器所存储的预定值,并直接将所请求的资源实体及所请求资源实体对应文档的当前版本标识发送给客户端。
优选的,步骤B中,服务器判断请求资源实体对应的文档修改后,判断所请求的资源实体的大小大于服务器预定的需查询历史记录数据库的资源实体的大小的预定值,或服务器根据请求消息中的版本标识与请求消息中所请求资源实体对应文档的当前版本标识比较所述文档在请求消息中版本标识之后的修改次数小于服务器所存储的预定值时,需要查询服务器的历史记录数据库以判断所请求的资源实体是否修改;如果修改,则将修改后的所请求的资源实体及所请求的资源实体对应文档的版本标识发送给客户端;如果没有修改,服务器则将所请求的资源实体对应文档的版本标识发送给客户端。
优选的,服务器查询历史记录数据库判断所请求的资源实体是否修改具体为:服务器查询对于所请求资源实体对应文档的历史记录的修改记录中是否有对所请求资源实体的修改记录,如果有则表示所请求的资源实体有修改;否则表示所请求的资源实体没有修改。
优选的,该方法还包括:C、客户端收到服务器对请求消息的响应后,将响应消息中的文档的版本标识与所请求的资源实体进行映射存储。
优选的,所述对应文档的版本标识为对应文档的实体标签值或对应文档的修改时间。
此外,本发明还提供一种客户端,包括:输出端、输入端、处理单元;所述输出端用于发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识和所请求资源实体的标识;所述输入端用于接收对其发送请求消息的响应消息,所述响应消息中包括所请求的资源实体和其对应文档的版本标识;或所述响应消息中包括所请求资源实体对应文档的版本标识;所述处理单元用于将输入端接收到的响应消息中的所述版本标识与所请求的资源实体进行映射存储。
此外,本发明还提供一种服务器,包括输入端、输出端、处理单元;所述输入端用于接收获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识和所请求资源实体的标识;所述处理单元用于根据输入端接收到的请求消息,并根据所述请求消息中的信息判断请求消息中所述的资源实体的标识对应的资源实体是否修改;所述输出端用于根据处理单元判断所请求的资源实体是改变的结果,发送所请求资源实体及所请求资源实体对应文档的版本标识,或发送所请求资源实体对应文档的版本标识。
优选的,该服务器进一步包括:历史记录数据库,用于存储文档的操作历史记录;所述处理单元存储有查询历史记录数据库的策略,根据输入端接收的请求消息中的信息及所述策略判断需要查询历史记录数据库,并根据历史记录数据库的历史记录判断所请求的资源实体是否改变。
采用上述技术方案,本发明有益的技术效果在于:
服务器判断请求消息中携带请求资源的标识,并请求消息中的标识与所请求资源实体的当前标识一致时或即使不一致但所请求的资源实体没有改变时,只向客户端传送所请求资源实体的当前标识而不向客户端传送所请求的资源实体,节约的网络资源,减少不必要的资源传输。
附图说明
1.图1为本发明提供的一种获取资源实体的系统示意图;
2.图2为本发明提供的XCAP中客户端请求获取资源实体的流程图;
3.图3为本发明提供的当服务器采用实体标签值标识文档版本时,客户端获取资源实体的流程图;
4.图4为本发明提供的客户端请求获取资源实体的具体实施例的流程图。
具体实施方式
下面结合附图和具体实施例对本发明再作进一步详细的说明。
实现本发明的核心思想是提供一种获取资源实体的方法,包括客户端向服务器发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识;服务器根据所述请求消息中的版本标识判断所请求资源实体对应文档已经修改,并将所请求的资源实体及所请求资源实体对应文档的版本标识传送给客户端或将所请求资源实体对文档的版本标识传送给客户端。
此外,如图1所示,本发明还提供获取资源实体的系统示意图,包括客户端和服务器;
所述客户端包括:输出端、输入端、处理单元;
所述输出端用于发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识和所请求资源实体的标识;所述输入端用于接收对其发送请求消息的响应消息,所述响应消息中包括所请求的资源实体和其对应文档的版本标识;或所述响应消息中包括所请求资源实体对应文档的版本标识;所述处理单元用于将输入端接收到的响应消息中的资源实体和对应文档的版本标识进行映射存储,或者将输入端接收到的响应消息中不包含请求资源,而包含请求资源对应的文档的新的版本标识时,更新所请求的资源与对应文档的版本标识的映射存储。
所述服务器包括,输入端、输入端、处理单元和历史记录数据库;所述输入端用于接收获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识和所请求资源实体的标识;
所述处理单元存储有查询历史记录数据库的策略,根据输入端接收的请求消息中的版本标识判断所请求资源实体对应的文档有被修改后,再根据输入端接收的请求消息中的信息及所述策略判断需要查询历史记录数据库,并根据历史记录数据库的历史记录判断所请求的资源实体是否改变。所述历史记录数库,用于存储对于文档的操作历史记录;所述输出端用于根据处理单元判断所请求的资源实体是否改变的结果,发送所请求资源实体及所请求资源实体对应文档的版本标识,或发送所请求资源实体对应文档的版本标识。
本发明利用XML文档管理服务器(以下简称服务器)为每个文档维护一个操作历史记录,操作历史记录按照XML文档管理服务器在接收到此XML文档操作请求后执行相应操作的先后顺序为每个XML文档操作添加一个记录项。每个记录项包括以下字段:
a、请求方法(即GET,PUT,DELETE等方法),其中,GET请求表示文档或文档中的资源实体被请求获取过;PUT表示在文档中添加一个记录项;DELETE表示在文档中删除一个记录项;
b、请求资源实体标识,即请求URI、
c、请求资源实体对应文档的操作前的版本标识
d、请求资源实体对应文档的操作后的版本标识。
其中,请求资源实体对应文档的版本标识既可以是实体标签值,也可以是文档的修改时间。
如图2所示,本发明提供一种获取资源实体的方法的流程如下:
步骤201、客户端发送携带所请求资源实体对应文档的版本标识及所请求资源实体标识的GET请求消息;此版本标识是客户端在前一次请求相同资源实体时接收的响应消息中获取的。
如果对应文档的版本标识用实体标签值表示,则客户端在向服务器发送的GET请求消息的If-None-Match中携带客户端保存的所欲请求资源实体对应文档的实体标签值。
如果对应文档的版标识用文档的修改时间表示,则客户端在向服务器发送的GET请求消息的if-Modified-Since中携带客户端保存的所欲请求资源实体对应文档的修改时间。
步骤202、服务器获取所述消息中资源实体对应文档的版本标识以及服务器中客户端所请求的资源实体对应文档的当前版本标识,并判断两者是否一致。如果一致,执行步骤203,否则执行步骤204;
其中,当服务器收到客户端的GET请求消息时,判断GET请求消息中有if-Modified-Since或If-None-Match,并从分别if-Modified-Since或If-None-Match中获取所请求资源实体对应文档的修改时间或实体标签值,并将从GET请求消息中获取的对应文档的修改时间或实体标签值与服务器中当前文档的修改时间或实体标签值进行比较,判断两者是否一致,如果一致,执行步骤203,否则执行步骤204;
步骤203、服务器返回304(Not Modified)响应消息,表明客户端所请求的资源实体没有发生变化,并结束流程。
步骤204、服务器判断所请求的资源实体是否需要查询历史记录数据库,如果是,执行步骤206,否则直行步骤205;
其中,服务器中设置有查询历史记录数据库的策略,即只有当所请求的资源实体的大小大于服务器预定的需查询历史记录数据库的资源实体的大小的预定值,服务器才需要查询历史记录数据库。或服务器存储有直接传送所请求的资源实体时所请求资源实体对应文档的最小修改次数的预定值,当根据请求消息中的实体标签值与请求消息中所请求资源实体对应文档的当前实体标签值比较所述文档在请求消息中版本标识之后的修改次数大于服务器所存储的预定值,不查询历史记录数据库,直接传送所请求的资源实体及所请求资源实体对应文档的当前版本标识。
或者服务器判断出请求的资源实体为一个XML文档中的属性时不查询历史记录数据库,直接传送所请求的资源实体;
步骤205、服务器将所请求的资源实体发送给客户端及所请求资源实体对应文档的当前实体标签值发送给客户端,并执行步骤307;
步骤206、服务器查询历史记录数据库中客户端所请求的资源实体所对应文档的历史修改记录,判断客户端所请求的资源实体是否修改。其中,服务器查到所请求的资源实体所对应文档的历史修改记录有PUT或DELETE记录时,表示对于该资源实体有修改,而只有GET记录时,对于该资源实体没有修改。如有修改,服务器向客户端传送所请求的资源实体及所述资源实体对应文档的版本标识;如果没有修改,服务器向客户端返回携带所请求的资源实体对应文档的当前版本标识的响应消息,并执行步骤207;
步骤207、客户端收到服务器对其GET请求消息的响应消息后,将响应消息中携带的所请求资源实体对应文档的版本标识与所请求的资源实体进行映射存储,并替代已有的与所述请求资源实体对应的所请求资源实体对应文档的版本标识。
如图3所示,服务器查询历史记录数据库判断所请求的资源实体是否修改的流程如下:
步骤301、服务器查询历史记录数据库中是否有请求消息中携带的文档的版本标识,如果没有,表明对于该文档还没有进行修改,则执行步骤302;如果有所述请求消息中携带的文档的版本标识,表明服务器对于该文档进行过修改,并执行步骤303;
步骤302、服务器返回304 Not Modified消息,其消息中包含Last-Modified,并将所请求的资源实体对应文档的当前版本标识置于消息中。
步骤303、服务器判断历史记录数据库中记录的对所请求的资源实体对应文档的修改是否针对所请求的资源实体,如果是,表明所请求的资源实体发生改变并执行步骤304;否则执行步骤305;
步骤404、服务器向客户端传送经修改后的所请求的资源实体以及所述资源实体对应文档的当前版本标识;
步骤305、服务器返回304 Not Modified消息,其消息中包含头域Last-Modified,并将所请求的资源实体对应文档的当前版本标识置于消息中。
下面结合具体实施例对本发明进行更为详细的说明。
假设,XCAP服务器S中存储有第二客户端的一个XML资源列表文档D。此资源列表文档中包含两个列表,名称分别为:列表A,列表B。此XML资源列表文档D有相应的操作历史记录。
其中,D表示文档;列表A,列表B用资源实体表示;资源实体A中包含若干个单元,资源实体B中也包含若干个单元;每个单元包含若干个属性。
文档D的版本标识为:e00001,其历史记录为空,其URI为:http://xcap.example.com/resource-lists/users/userB@example.com /index
其中,xcap.example.com表示服务器的地址;
resource-lists/users/userB@example.com/index:表示文档D
文档D的内容如下:
<?xml version=″1.0″encoding=″UTF-8″?>
    <resource-lists xmlns=″urn:ietf:params:xml:ns:resource-lists″
     xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″>
     <list name=″A″>***资源实体A的标识***
      <entry uri=″sip:bill@example.com″>**单元a1的属性1**
         <display-name>Bill Doe</display-name>**单元a1的属性2**
       </entry>***资源实体A中的单元a1***
      <entry uri=″sip:paul@example.com″>**单元a2的属性1**
        <display-name>little paul</display-name>**单元a2的属性2**
       </entry>***资源实体A中的单元a2***
      <entry uri=″sip:oliver@example.com″>**单元a3的属性1**
        <display-name>oliver</display-name>**单元a3的属性2**
       </entry>***资源实体A中的单元a3***
      <entryuri=″sip:jeniffer@example.com″>**单元a4的属性1**
        <display-name>jeniffer</display-name>**单元a4的属性2**
       </entry>***资源实体A中的单元a4***
       <entry-ref
ref=″resource-lists/users/bill/mylist/-/resource-lists/1
ist%5b@name=%22list1%22%5d/entry%5b@uri=%22sip:petri@example.com%22%
5d″/>
          </list>
          <list name=″B″>***资源实体B的标识***
           <entry uri=″sip:joe@example.com″>**单元b1的属性1**
             <display-name>Joe Smith</display-name>**单元b1的属性2**
            </entry>***资源实体B中的单元b1***
            <entryuri=″sip:nancy@example.com″>**单元b2的属性1**
            <display-name>Nancy Gross</display-name>**单元b2的属性2**
            </entry>***资源实体B中的单元b2***
            </list>
         </resource-lists>
如图4所示,本实施例的具体流程如下:
步骤401、第二客户端向服务器发送GET请求消息,请求获取文档D中的资源实体A的内容;
GET**表示请求获取某文档或资源实体命令**
/resource-lists/users/sip:userB@example.com/index/-/resource-lists/list%5b@name=%22A%22%5d HTTP/1.1
Host:xcap.example.com
步骤402、服务器根据GET请求消息中的resource-lists/users/sip:userB@example.com/index,获取文档D,并根据GET请求息中的%22A%22%5d HTTP/1.1判断客户端欲请求文档D中的资源实体A。由于此GET请求消息中没有携带文档D的版本标识,表明第二客户端是第一次向服务器请求文档D中的资源实体A的内容,于是直接向第二客户端传送所请求的内容,并携带文档D的版本标识。其中文档D的版本标识(此实施例用实体标签值)为“00aaaa”:如下:
HTTP/1.1 200 OK
   Etag:″e00001”***文档D的实体标签值***
   Content-Type:application/xcap-el+xml
<list name=″A″>***资源实体A的标识***
      <entry uri=″sip:bill@example.com″>**单元a1的属性1**
       <display-name>Bill Doe</display-name>**单元a1的属性2**
      </entry>***资源实体A中的单元a1***
     <entry uri=″sip:paul@example.com″>**单元a2的属性1**
       <display-name>little paul</display-name>**单元a2的属性2**
      </entry>***资源实体A中的单元a2***
     <entry uri=″sip:oliver@example.com″>**单元a3的属性1**
       <display-name>oliver</display-name>**单元a3的属性2**
       </entry>***资源实体A中的单元a3***
      <entry uri=″sip:jeniffer@example.com″>**单元a4的属性1**
        <display-name>jeniffer</display-name>**单元a4的属性2**
       </entry>***资源实体A中的单元a4***
       <entry-ref
ref=″resource-lists/users/bill/mylist/-/resource-lists/1
ist%5b@name=%22list1%22%5d/entry%5b@uri=%22sip:petri·example.com%22%
5d″/>
    </lists>
当第二客户端收到服务器对GET请求消息的响应消息后,将响应消息中携带的所请求资源实体对应文档的版本标识与所请求的资源实体进行映射存储。
步骤403、第一客户端发送XCAP PUT消息,请求向列表B中添加一个<entry>即一个单元,如下:
PUT***表示添加命令***
   /resource-lists/users/sip:userB@example.com/index/-/
   resource-lists/list%5b@name=%22B%22%5d/**此处B指资源实体B**
entryentry%5b@uri=%22sip:petri@example.com%22%5d HTTP/1.1
   Content-Type:application/xcap-el+xml
   Host:xcap.example.com
      <entry uri=″sip:petri@example.com″>**单元b3的属性1**
      <display-name>Petri Aukia</display-name>**单元b3的属性2**
   </entry>**欲添加的单元b3**
步骤404、服务器执行操作,向资源实体B中添加一个单元,并将此添加(PUT)操作记录在文档D的历史记录中,并向第一客户端返回200 OK消息,其消息中携带因添加操作而导致文档D的实体标签值变更后的实体标签值00bbbb。其中,当第一客户端收到服务器对其PUT响应消息后,并不需要将该响应消息中的信息保存。
当然,对于文档进行修改所收到的服务器的响应消息,客户端都不需要将响应消息中的信息保存,而只需保存服务器对GET请求消息的响应消息中的信息。
其消息格式如下:
HTTP/1.1 200 OK
ETag:e00002***文档D的实体标签值***
此时,服务器的历史记录数据库中文档D的历史记录为:
    <history>***历史操作记录***
    <item>***新的记录项***
    <method>GET</method>***针对GET请求***
    <request-URI>/resource-lists/users/sip:userB@example.com/index/
    -/resource-lists/list%5b@name=%22A%22%5d</request-URI>
    </item>***记录项结束***
    <item>***新的记录项***
    <method>PUT</method>***针对PUT请求,服务器添加信息***
    <request-URI>/resource-lists/users/sip:userB@example.com/index/-
-/***index表示文档D的名称***
       resource-lists/list%5b@name=%22B%22%5d//***B表示资源实体B***
    entryentry%5b@uri=%22sip:petri@example.com%22%5d
    </request-URI>
    <old-etag>e00001</old-etag>***PUT操作前文档D的实体标签值***
    <new-etag>e00002</new-etag>***PUT操作后文档D的实体标签值***
    </item>***记录项结束***
    </history>***历史操作记录***
步骤405、第二客户端发送GET请求消息,获取资源实体A,其中消息中携带文档D的实体标签值“e00001”,如下:
GET
/resource-lists/users/sip:userB@example.com/index/-/resource-lists/list%5b@name=%22A%22%5d HTTP/1.1
Host:xcap.example.com
If-None-Match:e00001
步骤406、服务器判断客户端所请求的资源实体A没有改变,向客户端返回304 Not Modified”响应消息,并携带文档D的当前实体标签值“00bbbb”;具体消息如下:
HTTP/1.1 Not modified
ETag:e00002
其中,当服务器收到客户端的请求资源实体A的GET请求消息后,获取请求消息中的文档D的实体标签值“e00001”,并判断与服务器中文档D的当前实体标签值“e00002”不一致,需要查询历史数据记录库中文档D的历史记录。
服务器查询文档D的历史记录,发现针对资源实体A只有GET请求,而无修改的记录,如PUT添加信息或DELET删除信息;并认定对于资源实体A没有修改。向客户端返回304 Not Modified”响应消息,并携带文档D的当前实体标签值“e00002”。
当第二客户端收到服务器对GET请求消息的响应消息后,将响应消息中携带的所请求资源实体对应文档的版本标识与所请求的资源实体进行映射存储。
由以上方案可以看出,服务器判断请求消息中携带请求资源的标识,并请求消息中的标识与所请求资源实体的当前标识一致时或即使不一致但所请求的资源实体没有改变时,只向客户端传送所请求资源实体的当前标识而不向客户端传送所请求的资源实体,节约的网络资源,减少不必要的资源传输。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (10)

1.一种获取资源实体的方法,其特征在于该方法包括如下步骤:
A、客户端向服务器发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识;
B、服务器根据所述请求消息中的版本标识判断所请求资源实体对应文档已经修改,并将所述文档中对应的所请求的资源实体及文档的版本标识传送给客户端或将所请求资源实体对应的文档的版本标识传送给客户端。
2.如权利要求1所述的获取资源实体的方法,其特征在于步骤B中,服务器根据所述请求消息中的版本标识判断所请求资源实体对应文档已经修改具体为:服务器获取所请求消息中的版本标识,并确定请求消息中的版本标识与服务器中所述文档的当前版本标识不一致,确定所请求资源实体对应文档已经修改。
3.如权利要求1或2所述的获取资源实体的方法,其特征在于步骤B中,服务器判断请求资源实体对应的文档修改后,并判所请求的资源实体的大小小于服务器预定的需查询历史记录数据库的资源实体的大小的预定值,并直接将所请求的资源实体及所请求资源实体对应文档的当前版本标识发送给客户端;
或服务器根据请求消息中的版本标识与请求消息中所请求资源实体对应文档的当前版本标识比较所述文档在请求消息中版本标识之后的修改次数大于服务器所存储的预定值,并直接将所请求的资源实体及所请求资源实体对应文档的当前版本标识发送给客户端。
4.如权利要求1或2所述的获取资源实体的方法,其特征在于步骤B中,服务器判断请求资源实体对应的文档修改后,判断所请求的资源实体的大小大于服务器预定的需查询历史记录数据库的资源实体的大小的预定值,或服务器根据请求消息中的版本标识与请求消息中所请求资源实体对应文档的当前版本标识比较所述文档在请求消息中版本标识之后的修改次数小于服务器所存储的预定值时,
需要查询服务器的历史记录数据库以判断所请求的资源实体是否修改;
如果修改,则将修改后的所请求的资源实体及所请求的资源实体对应文档的版本标识发送给客户端;如果没有修改,服务器则将所请求的资源实体对应文档的版本标识发送给客户端。
5.如权利要求4所述的获取资源实体的方法,其特征在于服务器查询历史记录数据库判断所请求的资源实体是否修改具体为:服务器查询对于所请求资源实体对应文档的历史记录的修改记录中是否有对所请求资源实体的修改记录,如果有则表示所请求的资源实体有修改;否则表示所请求的资源实体没有修改。
6.如权利要求1所述的获取资源实体的方法,其特征在于该方法还包括:
C、客户端收到服务器对请求消息的响应后,将响应消息中的文档的版本标识与所请求的资源实体进行映射存储。
7.如权利要求1所述的获取资源实体的方法,其特征在于所述对应文档的版本标识为对应文档的实体标签值或对应文档的修改时间。
8.一种客户端,其特征在于包括:输出端、输入端、处理单元;
所述输出端用于发送获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识和所请求资源实体的标识;
所述输入端用于接收对其发送请求消息的响应消息,所述响应消息中包括所请求的资源实体和其对应文档的版本标识;或所述响应消息中包括所请求资源实体对应文档的版本标识;
所述处理单元用于将输入端接收到的响应消息中的所述版本标识与所请求的资源实体进行映射存储。
9.一种服务器,其特征在于包括输入端、输出端、处理单元;
所述输入端用于接收获取资源实体的请求消息,所述请求消息中携带所请求资源实体对应文档的版本标识和所请求资源实体的标识;
所述处理单元用于根据输入端接收到的请求消息,并根据所述请求消息中的信息判断请求消息中所述的资源实体的标识对应的资源实体是否修改;
所述输出端用于根据处理单元判断所请求的资源实体是改变的结果,发送所请求资源实体及所请求资源实体对应文档的版本标识,或发送所请求资源实体对应文档的版本标识。
10.如权利要求9所述的服务器,其特征在于该服务器进一步包括:历史记录数据库,用于存储文档的操作历史记录;
所述处理单元存储有查询历史记录数据库的策略,根据输入端接收的请求消息中的信息及所述策略判断需要查询历史记录数据库,并根据历史记录数据库的历史记录判断所请求的资源实体是否改变。
CN2006100619445A 2006-08-01 2006-08-01 一种获取资源实体的方法和服务器与客户端 Expired - Fee Related CN101119511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2006100619445A CN101119511B (zh) 2006-08-01 2006-08-01 一种获取资源实体的方法和服务器与客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006100619445A CN101119511B (zh) 2006-08-01 2006-08-01 一种获取资源实体的方法和服务器与客户端

Publications (2)

Publication Number Publication Date
CN101119511A true CN101119511A (zh) 2008-02-06
CN101119511B CN101119511B (zh) 2011-12-07

Family

ID=39055401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100619445A Expired - Fee Related CN101119511B (zh) 2006-08-01 2006-08-01 一种获取资源实体的方法和服务器与客户端

Country Status (1)

Country Link
CN (1) CN101119511B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159596A (zh) * 2019-12-25 2020-05-15 中国建设银行股份有限公司 应用资源访问控制方法和装置
CN114818614A (zh) * 2022-03-12 2022-07-29 上海我云网络科技有限公司 基于块编辑器的文档存储方法、恢复方法、介质及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159596A (zh) * 2019-12-25 2020-05-15 中国建设银行股份有限公司 应用资源访问控制方法和装置
CN114818614A (zh) * 2022-03-12 2022-07-29 上海我云网络科技有限公司 基于块编辑器的文档存储方法、恢复方法、介质及系统

Also Published As

Publication number Publication date
CN101119511B (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
CN101155049B (zh) 一种消息系统中会话历史处理方法及消息系统
CA2736755C (en) System and method for access and communication between a converged network-based address book system and a user device
CN101299829B (zh) 一种实现统一存储中管理媒体内容的方法和消息系统
Natchetoi et al. Service-oriented architecture for mobile applications
TWI357248B (en) Mediated plug-in registration of client applicatio
EP1924046B1 (en) A system, method and device for negotiating the equipment information
US8010611B2 (en) Method for processing deferred message
CN100563196C (zh) 通信系统和在通信系统中查询信息的方法
TWI379204B (en) System and method for improved client server communications of email messages
AU2008350306B2 (en) Targeted queries using an OMA DM protocol
CN102012943B (zh) 可扩展标记语言文档管理客户端、服务器及其方法
CN102265657B (zh) 管理简档的方法和系统
KR20110008334A (ko) 네트워크 기반 컨버지드 주소록을 위한 시스템 및 방법
CN101222449A (zh) 发布/订阅系统和方法
CN101553782B (zh) 用于管理可扩展标记语言文档管理服务器历史的系统和方法
EP2209264A1 (en) Document management method, system and correlated device
US20050187912A1 (en) Management of configuration data using extensible markup language
EP2045725A1 (en) Method and system, client, server of managing xml document
CN101119511B (zh) 一种获取资源实体的方法和服务器与客户端
CN101179572B (zh) 一种内容的复制方法、装置与系统
CN102308557A (zh) 用于在通信网络中访问和提供存在信息的方法和服务器
EP2558948B1 (en) Method and system of communicating delivery status of an xdm resource in an xdm environment
CN112235184B (zh) 一种基于事件驱动的信息推送方法、装置及电子设备
CN101287007A (zh) Xml文档管理方法、系统及xml文档管理服务器
CN101808073A (zh) 一种获取节点信息的方法、服务器以及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111207

Termination date: 20170801

CF01 Termination of patent right due to non-payment of annual fee