CN101383824A - 一种基于atom协议的远程对象交换方法 - Google Patents

一种基于atom协议的远程对象交换方法 Download PDF

Info

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
Application number
CNA2008101558240A
Other languages
English (en)
Other versions
CN101383824B (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN2008101558240A priority Critical patent/CN101383824B/zh
Publication of CN101383824A publication Critical patent/CN101383824A/zh
Application granted granted Critical
Publication of CN101383824B publication Critical patent/CN101383824B/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)
  • Document Processing Apparatus (AREA)

Abstract

本发明公开了一种基于ATOM协议的远程对象交换方法,其基于ATOM文档格式的对象封装方式,利用ATOM文档格式的扩展性和通用性对一般性对象进行递归封装,消除了各种语言的异构性,在此基础上,提供了一种基于ATOM发布协议的对象交换方法。并且这种方法能够在Web浏览器中以JavaScript脚本语言实现。

Description

一种基于ATOM协议的远程对象交换方法
技术领域
本发明涉及一种分布式系统间的对象交换方法,特别涉及一种适应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属性指出数组对象的实际类型。
CN2008101558240A 2008-10-16 2008-10-16 一种基于atom协议的远程对象交换方法 Expired - Fee Related CN101383824B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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