CN101383824A - 一种基于atom协议的远程对象交换方法 - Google Patents
一种基于atom协议的远程对象交换方法 Download PDFInfo
- Publication number
- CN101383824A CN101383824A CNA2008101558240A CN200810155824A CN101383824A CN 101383824 A CN101383824 A CN 101383824A CN A2008101558240 A CNA2008101558240 A CN A2008101558240A CN 200810155824 A CN200810155824 A CN 200810155824A CN 101383824 A CN101383824 A CN 101383824A
- Authority
- CN
- China
- Prior art keywords
- mode
- atom
- definition
- node
- type
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000005538 encapsulation Methods 0.000 claims description 23
- 238000004806 packaging method and process Methods 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012856 packing Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种基于ATOM协议的远程对象交换方法,其基于ATOM文档格式的对象封装方式,利用ATOM文档格式的扩展性和通用性对一般性对象进行递归封装,消除了各种语言的异构性,在此基础上,提供了一种基于ATOM发布协议的对象交换方法。并且这种方法能够在Web浏览器中以JavaScript脚本语言实现。
Description
技术领域
本发明涉及一种分布式系统间的对象交换方法,特别涉及一种适应Web2.0环境、能被网页脚本语言实现的、兼顾半结构化数据和强类型语言的一种远程对象交换方法。
背景技术
随着互联网络的发展,传统桌面应用逐渐向轻便易用的Web应用转化。Ajax(Asynchronous JavaScript and XML)等技术推动的Web2.0、Mash-up理念使得Web应用得到了日新月异的发展,用户友好性、内容的丰富性得到了极大的提高。在Web2.0的环境中,当前的数据内容应用停留在Blog、新闻层次,其数据的主要格式为RSS、JSON或Atom格式。传统的远程交换机制中对于每一个远程服务,本地需要有一个相应的存根(Stub)与其对应。因此,需要按照远程服务以及远程对象类型,事先构建本地存根来实现对象的传输,无法实现动态的对远程服务的调用和远程对象的传输。而在Web2.0环境中,由于数据大多为半结构化数据,无法事先确定对象的结构和类型,对象的定义和对象的数据无法完全独立开来。
发明内容
本发明的目的是提出一种实现简单、有效支持半结构化数据、适应小量多次数据环境,兼容现有Web2.0应用,并且能方便地被基于Web浏览器实现的远程对象交换方法。
为实现上述目的,本发明提供一种基于ATOM协议的远程对象交换方法,其包括以下步骤:
1)由客户端或服务器端对本地对象按照以下规则进行封装:采用ATOM的Entry标签作为对象的开始,利用对象的类型作为自定义标签的命名空间,利用对象的名称作为自定义标签的本地部分,并将简单对象的值按照XSD定义的方式串行化为自定义标签的内容,或者将复杂对象或数组对象按照递归定义的方式嵌套定义在自定义标签中;
2)封装后的ATOM文档通过HTTP服务器在TCP/IP网络上进行传输,对象的操作CRUD(Create,Request,Update,Delete)对应于HTTP协议中的POST,GET,PUT,DELETE;
3)解包的过程为步骤(1)的逆过程。
本发明基于ATOM文档格式的对象封装方式。利用ATOM文档格式的扩展性和通用性对一般性对象进行递归封装,消除了各种语言的异构性在此基础上,提供了一种基于ATOM发布协议的对象交换方法。并且这种方法能够在Web浏览器中以JavaScript脚本语言实现。
下面将结合附图进行详细说明。
附图说明
图1:系统结构框图;
图2:对象与Atom文档中扩展节点XML片段的映射;
图3:封装流程图;
图4:解包流程图;
图5:创建远程对象示意图;
图6:查询远程对象示意图;
图7:更新远程对象示意图;
图8:删除远程对象示意图。
具体实施方式
本发明利用ATOM联合格式(Syndication format)提供的扩展功能实现远程对象的封装,利用ATOM发布协议实现远程对象在基于HTTP的Web环境下的操作,从而实现远程对象的交换。整个机制的总体框架如图1。
其中ATOM文档解析器,负责解析和分离出ATOM文档中的结构化扩展节点。ATOM文档生成器负责将映射模块提供对象结构、类型、数值等信息串行化ATOM结构化扩展节点,并嵌入至ATOM文档中。映射模块利用ATOM文档解析器中提供的结构化扩展节点信息构建本地或远程对象,同时也负责将本地或远程对象的结构、类型、数值等信息提供给ATOM文档生成模块。
具体的实施包括三方面内容,一、对象的封包;二、对象的传输和操作;三、对象的解包。
1.对象的封包和解包
如图2所示,可以利用XML节点的前缀(prefix)来表述类型。首先将类型名定义为Namespace,然后将类型名作为XML节点的前缀。这样既保证了在忽略Namespace的情况下,此XML片段仍然为自我描述的半结构化数据,可以被弱类型或无类型语言使用,又满足了强类型语言在进行解包时对类型信息的需要。同时,直接将类型和数据放在一起可以减少传输数据量的大小,提高本机制在多类型小数据情况下的性能。任何数据对象都可以拆分为简单对象的组合和重复,因此对于数据对象的封装可以看成一个递归的过程(如图2)。在研究利用Atom格式对一般对象进行封装的时候,可以将封装的方式细化为三种:简单对象的封装、复杂对象的封装以及数组对象的封装。对任何对象的封装都是这三种方式的组合应用。
简单对象是指对象所有的属性都为XSD定义的基本类型。Atom文档中一个entry对应于一个完整的对象。利用Atom的扩展节点可以在简单对象和Atom文档的扩展节点之间进行如图2的映射。首先需要在XML头部将所有需要的类型定义为Namespace,这样可以将属性的类型作为该扩展节点的前缀。其次,将属性的名称作为该扩展节点的Local Part。最后因为该属性的类型是XSD定义的基本类型,可以按照XSD定义的方式串行化成字符串作为该节点的内容(Content)。
复杂对象是指该对象至少具有一个属性不为XSD定义的基本类型,如简单对象或者复杂对象。这样的情况下可以有两种方式进行封装,一种是采取扩展元素(Extension Element)的方式,一种为链接的方式。利用Atom中定义的结构化扩展元素(Structured Extension Element)可以在Atom文档中嵌入任意的XML文档,从而可以递归的对成员对象进行封装。首先需要在XML文档头部将需要使用到的一些成员对象的类型定义成Namespace。在封装时,对于某一对象,将其成员对象的类型作为前缀,成员对象名作为Local part组成一个结构化扩展元素,此成员对象的属性按照上一段介绍的简单对象和本段的复杂对象的封装方式来递归组织XML并作为结构化扩展元素的子元素(Child Element)。对于复杂对象还可以采用链接的方式进行复合。利用ATOM文档LINK标签,其中LINK元素中的href属性指向成员对象所对应的文档,rel属性指出成员对象的实际类型。
对于数组对象,同样可以采用结构化扩展元素方式和链接方式两种。在采用类似上一段介绍的结构化扩展元素方式时,将数组变量所对应的类型作为结构化扩展元素的前缀,将数组变量的名称作为结构化扩展元素的Local Part,数组成员的封装方式与复杂对象中成员对象的封装方式相同。利用链接的方式来实现数组对象的封装与2.2.3中实现复杂对象的封装是基本相似的。不同的是,LINK元素中HREF指向的是一个包含多个Entry的Feed文档,而不是只含有一个Entry的Entry文档。具体的封装流程如图3所示,首先分析需要进行封装的对象的类型。如果对象的类型为简单对象,则利用Atom的扩展节点来封装这个简单对象。首先在XML头部将所有需要的类型定义为Namespace,并将属性的类型作为该扩展节点的前缀。其次,将属性的名称作为该扩展节点的Local Part。最后按照XSD定义的方式串行化成字符串作为该节点的内容。如果对象的类型为复杂对象,首先需要在XML文档头部将需要使用到的一些成员对象的类型定义成Namespace。在封装时,对于某一对象,将其成员对象的类型作为前缀,成员对象名作为Local part组成一个结构化扩展元素,此成员对象的属性按照上一段介绍的简单对象和本段的复杂对象的封装方式来递归组织XML并作为结构化扩展元素的子元素。如果对象的类型为数组对象,将数组变量所对应的类型作为结构化扩展元素的前缀,将数组变量的名称作为结构化扩展元素的Local Part,数组成员的封装方式与复杂对象中成员对象的封装方式相同。
具体的解包流程如图4所示,分析所要解包的Atom文档,得到文档中所有需要解析成对象的项(entry),对每个项进行遍历处理。对于特定的单项,获取单项的所有扩展节点,并对每个扩展节点的类型进行分析。如果扩展节点为简单节点,则利用该节点的前缀(Prefix)作为类型,Local part作为名称来构建简单数值,并将该节点的值赋给它。如果该扩展节点为结构化扩展节点,则将该节点作为需要分析的单项,递归进行上述操作,并以该节点的前缀prefix作为类型,Local part作为名称来构建复杂对象。并且将递归操作的结果作为该对象的值赋给该对象。
2.对象的传输和操作
远程对象与本地对象之间通过基于XML的ATOM文档进行封装和解包。封装后的ATOM文档通过HTTP服务器在TCP/IP网络上进行传输。对象的操作CRUD(Create,Request,Update,Delete)对应于HTTP1.1协议中的POST,GET,PUT,DELETE。即客户端利用HTTP POST方法将按照上文定义的封装方法封装的数据对象提交到服务器端从而实现对象的创建(如图5),利用HTTP PUT方法将按照上文定义的封装方法封装的数据对象提交到服务器端从而实现对象的修改(如图6),利用HTTP GET方法以一定参数访问服务器端从而得到按照上文定义的符合参数要求的封装方法封装的数据对象(如图7),利用HTTP DELETE方法以一定参数发送给服务器端将删除符合参数要求的相应数据对象(如图8)。
Claims (6)
1、一种基于ATOM协议的远程对象交换方法,其特征在于包括以下步骤:
1)由客户端或服务器端对本地对象按照以下规则进行封装:采用ATOM的Entry标签作为对象的开始,利用对象的类型作为自定义标签的命名空间,利用对象的名称作为自定义标签的本地部分,并将简单对象的值按照XSD定义的方式串行化为自定义标签的内容,或者将复杂对象或数组对象按照递归定义的方式嵌套定义在自定义标签中;
2)封装后的ATOM文档通过HTTP服务器在TCP/IP网络上进行传输,对象的操作CRUD(Create,Request,Update,Delete)对应于HTTP协议中的POST,GET,PUT,DELETE;
3)解包的过程为步骤(1)的逆过程。
2、根据权利要求1所述的基于ATOM协议的远程对象交换方法,其特征在于步骤1)中将简单对象的值按照XSD定义的方式串行化为自定义标签的内容包括以下步骤:首先在XML头部将所有需要的类型定义为Namespace,然后将属性的名称作为该扩展节点的Local Part,最后按照XSD定义的方式串行化成字符串作为该节点的内容。
3、根据权利要求1或2所述的基于ATOM协议的远程对象交换方法,其特征在于步骤1)中将复杂对象按照递归定义的方式嵌套定义在自定义标签而采取扩展元素的方式,其包括以下步骤:首先在XML文档头部将该复杂对象的类型定义成Namespace;在封装时,先将该复杂对象的名称作为该复杂对象扩展节点的Local Part;然后遍历出所有的成员对象,若成员对象为简单对象,则在XML头部将所有需要的类型定义为Namespace,然后将该成员对象的名称作为节点的Local Part,并按照XSD定义的方式串行化成字符串作为节点的内容来创建此简单成员节点并挂接在之前创建的复杂对象扩展节点上作为其子元素,若成员对象为复杂对象,则按照上述的方式递归地对将此复杂对象创建为扩展元素并挂接在之前创建的复杂对象扩展节点上作为其子元素。
4、根据权利要求1或2所述的基于ATOM协议的远程对象交换方法,其特征在于步骤(1)中为将复杂对象按照递归定义的方式嵌套定义在自定义标签而采取采用链接的方式,其包括以下步骤:利用ATOM文档LINK标签,其中LINK元素中的href属性指向成员对象所对应的文档,rel属性指出成员对象的实际类型。
5、根据权利要求1或2所述的基于ATOM协议的远程对象交换方法,其特征在于步骤1)中为将数组对象按照递归定义的方式嵌套定义在自定义标签而采取扩展元素的方式,其包括以下步骤:首先需要在XML文档头部将需要使用到的一些数组对象的类型定义成Namespace;在封装时,对于每个数组对象,将其所对应的类型作为前缀,数组对象的名称作为Local part组成一个结构化扩展元素,然后遍历出所有的数组成员对象。若成员对象为简单对象,则在XML头部将所有需要的类型定义为Namespace,然后将该成员对象的名称作为节点的Local Part,并按照XSD定义的方式串行化成字符串作为节点的内容来创建此简单成员节点并挂接在之前创建的数组对象扩展节点上作为其子元素。若成员对象为复杂对象,则按照上述的方式递归地对将此复杂对象创建为扩展元素并挂接在之前创建的数组对象扩展节点上作为其子元素。
6、根据权利要求1或2所述的基于ATOM协议的远程对象交换方法,其特征在于步骤(1)中为将数组对象按照递归定义的方式嵌套定义在自定义标签而采取采用链接的方式,其包括以下步骤:利用ATOM文档LINK标签,其中LINK元素中的href属性指向一个包含多个Entry的Feed文档,rel属性指出数组对象的实际类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101558240A CN101383824B (zh) | 2008-10-16 | 2008-10-16 | 一种基于atom协议的远程对象交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101558240A CN101383824B (zh) | 2008-10-16 | 2008-10-16 | 一种基于atom协议的远程对象交换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101383824A true CN101383824A (zh) | 2009-03-11 |
CN101383824B CN101383824B (zh) | 2011-10-19 |
Family
ID=40463446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101558240A Expired - Fee Related CN101383824B (zh) | 2008-10-16 | 2008-10-16 | 一种基于atom协议的远程对象交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101383824B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102646302A (zh) * | 2011-02-08 | 2012-08-22 | 微软公司 | 向本地设备提供基于web的内容 |
CN101594356B (zh) * | 2009-06-29 | 2012-09-05 | 中兴通讯股份有限公司 | 网元资源处理方法、装置以及系统 |
CN108366050A (zh) * | 2018-01-25 | 2018-08-03 | 北京电子工程总体研究所 | 一种通用通信协议处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060069369A (ko) * | 2006-02-16 | 2006-06-21 | (주)오픈데이타컨설팅 | 알에스에스를 이용한 다자간 통신시스템 및 그 방법 |
JP2007334723A (ja) * | 2006-06-16 | 2007-12-27 | Yokogawa Electric Corp | 情報配信システム |
US7552127B2 (en) * | 2006-12-19 | 2009-06-23 | International Business Machines Corporation | System and method for providing platform-independent content services for users for content from content applications leveraging Atom, XLink, XML Query content management systems |
-
2008
- 2008-10-16 CN CN2008101558240A patent/CN101383824B/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594356B (zh) * | 2009-06-29 | 2012-09-05 | 中兴通讯股份有限公司 | 网元资源处理方法、装置以及系统 |
CN102646302A (zh) * | 2011-02-08 | 2012-08-22 | 微软公司 | 向本地设备提供基于web的内容 |
CN102646302B (zh) * | 2011-02-08 | 2015-08-26 | 微软技术许可有限责任公司 | 向本地设备提供基于web的内容 |
CN108366050A (zh) * | 2018-01-25 | 2018-08-03 | 北京电子工程总体研究所 | 一种通用通信协议处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101383824B (zh) | 2011-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101824222B1 (ko) | 동적 컨텐츠 및 스테일 컨텐츠를 포함하는 웹사이트들의 고속 렌더링 | |
Guinard et al. | A resource oriented architecture for the web of things | |
CN107808010A (zh) | 一种弹窗页面生成方法、装置、浏览器及存储介质 | |
CN102447726A (zh) | 页面访问方法及系统 | |
CN108769109A (zh) | 一种物联网异构设备数据的统一处理方法及系统 | |
CN103631578B (zh) | 一种配电网自动化系统中数据展示方法 | |
CA2506064A1 (en) | A system and method for client side rendering of a web page | |
CN102938776A (zh) | 基于ajax技术的动态页面处理系统 | |
CN102163233A (zh) | 一种网页标记语言格式转换方法及系统 | |
CN101609415B (zh) | 基于中间件的通用服务调用系统及方法 | |
CN105122237A (zh) | 共享应用程序状态 | |
JP2002215486A (ja) | Wsdlに基づいたコントローラ装置用通信システム | |
US20030158894A1 (en) | Multiterminal publishing system and corresponding method for using same | |
CN104063407A (zh) | 基于云计算的浏览器架构与解析方法 | |
IES20030062A2 (en) | Document transformation | |
CN103258056B (zh) | 处理风格样式表的方法、服务器、客户端和系统 | |
CN101500002A (zh) | 一种针对Web内容的融合发布方法及装置 | |
CN104270257A (zh) | 基于pb和xpath的网元级网管业务配置适配系统及方法 | |
US9626346B2 (en) | Method of implementing structured and non-structured data in an XML document | |
CN101383824B (zh) | 一种基于atom协议的远程对象交换方法 | |
KR100379572B1 (ko) | 무선 단말언어 실시간 자동 변환 시스템 및 자동 변환 방법 | |
CN112947900A (zh) | web应用开发方法、装置、服务器及开发终端 | |
Shulin et al. | Research and implementation of Web Services in Android network communication framework Volley | |
CN106528175A (zh) | 面向bs架构的数据接口生成方法 | |
CN107436927B (zh) | 一种ui组件的应用方法和系统 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111019 Termination date: 20131016 |