CN1738309A - 数据交换方法 - Google Patents
数据交换方法 Download PDFInfo
- Publication number
- CN1738309A CN1738309A CN 200410057020 CN200410057020A CN1738309A CN 1738309 A CN1738309 A CN 1738309A CN 200410057020 CN200410057020 CN 200410057020 CN 200410057020 A CN200410057020 A CN 200410057020A CN 1738309 A CN1738309 A CN 1738309A
- Authority
- CN
- China
- Prior art keywords
- data
- xml
- extensible markup
- unit object
- application layer
- 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
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种数据交换方法,所述数据在应用层和传输层之间进行交互,所述方法包括以下步骤:定义可扩展标记语言文本的标签和结构;根据定义的可扩展标记语言文本的标签和结构将应用层不同协议结构数据封装为可扩展标记语言文本格式;在传输层完成可扩展标记语言文本格式数据的传输和交换;将交换后的可扩展标记语言文本格式数据解封装为应用层协议结构数据。利用本发明,可以简单、有效地实现不同开发平台的异构数据的交换,并且具有很强的通用性,较高的扩展性和实时性。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种数据交换方法。
背景技术
在目前的一些业务应用中,经常需要进行复杂的数据交换,尤其是不同系统和业务之间,这些数据交换要求能跨平台,跨语言,同时要适应业务数据结构的变化和多业务的交互,因此,一个能够满足各种需求的数据交换方式是很有必要的,该方式要求能一次编写过程,可以无限扩充结构和数据值,交换双方可以自由协定业务协议,完全不用考虑通讯过程中的任何细节,甚至可以在一次交换中同时承载多个业务协议,以同时完成多个业务交互。
ASN.1(Abstract Syntax Notation 1,抽象语法标记)作为一种数据表示标准产生于早期的OSI(开放系统互联)网络模型,在实际中已有大量应用,例如:3G移动系统、IP(网际协议)语音、安全应用、传统通信网络等。ASN.1是一种表示应用层数据单元数据结构的语法,这些数据单元通过一种编码方式转换成连续的码流传送,同时接受方通过逆过程将码流转换成应用层数据单元,基本过程如图1所示:其中,PDU(协议数据单元)为应用层协议数据单元。ASN.1编码同时规定了一套语法,来描述数据结构及其定义,在应用过程中,首先必须按照这套语法制定相应的结构协议文件,然后在需要通讯的环境下,利用相应平台的编译工具将协议文件生成对应的源文件,再链接到系统中使用。ASN.1为节点间的数据转换提供标准格式,每个节点只关心从ASN.1翻译为PDU或将PDU翻译成ASN.1,而不必知道存于网络任何位置的数据格式。
在应用层一侧,通过PDU来表示数据结构,该数据结构经由ASN.1协议处理层(图1中虚线部分)将PDU数据结构封装成网络可传输模式,发送到需要进行通讯的另一节点,该节点经过协议的逆处理过程将网络数据转换为特定平台的PDU数据使用。
虽然利用ASN.1编码有效地解决了不同开发平台之间结构数据的传送,但使用该编码方式,还存在以下缺点:
1.扩展性差:系统间进行通信时,必须预定义好固定的协议文件结构,虽然该协议文件本身与开发平台无关,但需将该协议文件编译生成特定平台的PDU结构体,这样,当PDU数据结构需要发生变化时,就需要重新修订协议文件,一旦任何一方出现单一的结构扩展,便无法与其他系统通信;
2.无及时性:即在更正协议文件并生成PDU结构后,由于PDU结构描述一般为开发平台源码方式,因此需要通过在不同平台上重新链接后才能使用,系统也需要重新启动后才能生效;
3.无反射性:协议缺少自我描述性,即无法从动态的数据结构取得数据的名称和类型,以及通过数据变量名取得对应的数据值等;
4.结构复杂:ASN.1编码方式语法结构复杂,很难掌握和操作,一般只有了解语法结构后才能定制相应的数据结构;
5.使用困难:在系统开发中,由协议文件生成的平台数据结构复杂,很难操作和调用,增加了系统维护的成本和风险。
例如,图2所示的某局点的业务拓扑结构:其中,某省业务系统为服务端,分别提供A市、B市和C市营业服务(如开销户,停开机等),其中A市营业厅主营IP业务,B市主营专线业务,C市主营ISDN业务,同时,该省业务系统还要连接其他省业务系统以提供跨省业务。
为了提供不同的服务,由于各业务特性的不同,需要各业务类别提供不同的数据,下表1为协议数据要求中相异的部分:
表1:
业务类别 | IP业务 | 专线业务 | ISDN业务 | 跨省业务 |
特征数据 | GK地址 | MCU地址 | 国家号 | 终端号码 |
323注册名 | MCU端口 | 地区号 | 计费策略 | |
终端地址 | 电话号码 | |||
一般情况下,对于各营业厅不同的业务类别,会制定不同的协议,如业务拓扑图中所示:a协议、b协议、c协议和d协议,这四种协议仅适用于一种服务。如果使用上述的ASN.1协议时,a、b、c、d分别代表四种协议数据单元,在这种处理方式下,需要分别为每一种协议(或协议数据单元)建立客户端、服务端处理接口,那么对于四种协议就需要建立八种处理接口,随着业务范围的不断扩大,当提供更多的服务时,接口类别会成倍扩充,这种方式无疑增加了系统数据交换的复杂度。
在建立协议交换的数据结构时,对于不同的特征数据,如表1中所示,一般都会建立特定的字段表示,例如,一份a协议可能表示成如下表2的结构:
表2:
包头(10字节) |
GK地址(4字节) |
323注册名(30字节) |
终端地址(4字节) |
对于这种不同的业务服务,建立特定的数据结构的方式,在服务端和客户端协议一致时完全可以正常处理,但服务端升级数据结构以后,在客户端未及时升级接口的情况下,是无法完成升级数据的处理的,如果统一更新客户端接口,则对于客户端比较多、平台各异、升级比较频繁的实际应用中,必然带来一定的操作难度,系统之间连调测试的成本也会不断扩大。例如在ASN.1应用中,升级PDU协议需要经过一系列繁琐的步骤:更新协议文件、重新编译协议文件、重新编译源代码、重新链接目标文件、重新启动系统应用,为了达到充分的安全性还需要大量的测试,这对于终端多、平台各异,客户端/服务端开发厂家不同的实际应用中,必定带来操作上的难度。
由此可见,在这种类似ASN.1的协议和数据表示方式下,更新数据结构所带来的影响范围比较大,从用户侧接口应用开发,到提供协议数据的接口,以及协议结构的表示,均需要做适应性的开发,以满足升级业务数据带来的变化。
发明内容
本发明的目的是提供一种数据交换方法,以克服现有技术使用ASN.1编码方式进行数据交换存在的编码复杂、扩展性差、无实时性的缺点,为不同协议数据提供公共的交换平台。
本发明提供的技术方案如下:
一种数据交换方法,所述数据在应用层和传输层之间进行交互,所述方法包括以下步骤:
A、定义可扩展标记语言文本的标签和结构;
B、根据所述定义的可扩展标记语言文本的标签和结构将应用层不同协议结构数据封装为可扩展标记语言文本格式;
C、在所述传输层完成所述可扩展标记语言文本格式数据的传输和交换;
D、将交换后的可扩展标记语言文本格式数据解封装为所述应用层协议结构数据。
所述方法还包括:
建立所述可扩展标记语言文本对应的XML数据单元对象;
根据所述可扩展标记语言数据单元对象完成所述封装和解封装。
所述步骤A包括:
定义可扩展标记语言根节点表示请求或响应;
定义可扩展标记语言数据节点表示一个数据结构对象。
所述步骤B包括:
B1、建立不同语言的所述可扩展标记语言数据单元对象;
B2、将所述应用层协议结构数据映射为对应的可扩展标记语言数据单元对象;
B3、根据所述可扩展标记语言数据单元对象将所述应用层协议结构数据转换为可扩展标记语言数据单元文本。
所述步骤C具体为:通过网络协议承载所述可扩展标记语言数据单元文本。
所述步骤D包括:
D1、通过所述不同语言的可扩展标记语言解析器将所述交换后的可扩展标记语言文本格式数据解析为对应的可扩展标记语言数据单元对象;
D2、根据所述可扩展标记语言数据单元对象获取对应的应用层协议结构数据。
所述可扩展标记语言数据单元对象包括:JAVA编程语言可扩展标记语言数据单元对象、C++编程语言可扩展标记语言数据单元对象、C#编程语言可扩展标记语言数据单元对象。
所述网络协议包括:传输控制协议和因特网协议,网间数据包交换协议和顺序包交换。
所述方法还包括:当所述应用层协议发生变化时,根据变化后的协议修改所述可扩展标记语言数据单元对象。
修改所述可扩展标记语言数据单元对象的步骤包括:增加所述可扩展标记语言数据单元对象和/或删除所述可扩展标记语言数据单元对象。
由以上本发明提供的技术方案可以看出,本发明提供了一种结构简单、有较强扩展性的实时数据传输方式。主要利用XML文本的结构性表示以及可自我描述性等特点,按照一定的结构规范设计数据,将复杂结构数据表示为对应的XML文本格式,简化了不同协议结构数据的交互过程,由于XML本身的使用广泛性,使本发明具有较强的通用性;在本发明中,由于针对不同的编程语言,分别建立对应的XML数据单元对象,使本发明可以方便地用来在不同开发平台间进行数据交换,开发语言也可以多种多样,这样,本发明可以很容易地适用于很多大型集成系统中(如电信、社保、金融等)的数据交换。
由于在数据交互过程中,不需要根据新协议修改协议处理过程、语言适配器的编码以及传输方式,更不需要重新启动系统,使本发明方案具有很强的扩展性和实时性,因而特别适用于那些交换数据结构经常变化,而又要求实时工作的系统。
附图说明
图1是现有技术中利用ASN.1编码进行网络数据传输示意图;
图2是某局点的业务拓扑结构示意图;
图3是本发明方法的流程图;
图4是本发明方法中建立的XML数据单元对象示例;
图5是本发明中业务数据在应用层协议和传输层之间的交互过程示意图。
具体实施方式
本发明的核心在于通过定义XML(可扩展标记语言)文本的标签和结构,使XML数据单元文本能够表示复杂的数据结构,简单方便地实现任意复杂结构数据的交换;并且通过建立不同语言适配器,完成跨平台的XML数据单元文本和XML数据单元对象之间的转换,使XML数据单元文本表示复杂的数据结构时不受编程语言的限制。
本技术领域人员知道,XML是一种极为通用的数据格式,它可以用来描述很多不同种类的数据,包括网页,网络消息,商业与核算资料,关系数据库表的XML表示,程序设计接口,对象,多媒体图像等。相对于ASN.1编码方式来说,其具有结构简单、可扩展性(使用者可以根据需要,自行定义标识)、结构性(能描述各种复杂的文件结构)等特性。本发明即是利用XML的这些特性,将应用层不同协议结构的数据转换为XML数据单元文本格式,然后通过应用层协议对XML数据单元文本进行承载,完成交换过程。
一个XML文档通常以一个XML声明开始,通过XML元素来组织XML数据。XML元素包括标记和字符数据。为了组织数据更加方便、清晰,还可以在字符数据中引入CDATA(Character DATA)数据块,并可以在文档中引入注释。此外,由于有时需要给XML处理程序提供一些指示信息,XML文档中可以包含处理指令。
对于数据交换来说,最重要的是进行数据交换的双方要对数据的格式达成统一的认识。为使XML数据单元文本能够表示复杂的数据结构并实现交换,在本发明中定义了XML文本的特定节点名称和结构,详细说明如下:
一、XML节点:
1.XML声明:XML声明是处理指令的一种,一个XML文档最好以一个XML声明作为开始。
例如,一个完整的XML声明:
<?xml version=″1.0″encoding=″GB2312″?>
其中,version指明所采用的XML的版本号;encoding属性指明了数据所采用的编码标准。该声明用以指明随后xml的特性。
在本发明中,使用标准的XML声明。
2.元素:元素是XML文档内容的基本单元。从语法上讲,一个元素包含一个起始标记、一个结束标记以及标记之间的数据内容。其形式是:<标记>数据内容</标记>。
本发明中定义的XML元素如下:
(1)XML根节点:
根节点要表达请求还是响应,节点属性version代表本次XML编码协议的版本,初始版本为1.0,其子节点data为数据封装节点,包括其所有子节点等均必须按数据规范描述,最后data被封装成一个数据对象。
其它非data子节点可以根据具体实现适当扩展私有协议部分,如可以附加平台调试信息、厂家信息等,类似以下XML描述中private所包含的所有信息:
<data type=”map”>
......
</data>
<private>
<manufacturer>Huawei</manufacturer>
<myversion>20040501</myversion>
</private>
请求XML如下:
<request version=″1.0″>
<data type=”map”>
......
</data>
......
</request>
响应XML如下:
<response version=″1.0″>
<data type=”map”>
... ...
</data>
... ...
</response>
(2)XML数据节点:
每一个XML数据描述节点表示一个数据结构对象,其标签基本格式如下:
<数据名称type=″数据类型″>数据值</数据名称>
如果需要忽略名称部分,则表示为:
<ignore type=″数据类型″>数据值</ignore>
二、数据类型及结构:
1.整数
类型 | Xml表示 |
int(4字节) | type=″integer″ |
short(2字节) | type=″short″ |
long(8字节) | type=″long″ |
byte(1字节) | type=″byte″ |
2.浮点数
类型 | Xml表示 |
float(4字节) | type=″float″ |
double(8字节) | type=″double″ |
3.字符和字符串
类型 | Xml表示 |
char | type=″char″ |
string | type=″string″ |
4.布尔型
类型 | Xml表示 |
boolean | type=″boolean″ |
5.链表
类型 | Xml表示 |
list | type=″list″ |
6.散列
类型 | Xml表示 |
map | type=″map″ |
三、XML结构:
文本格式为标准XML格式,以一行XML声明开始,一个XML文本表示一次交互需要的数据结构。每个数据结构由一个XML根节点表示,根节点包含多个子节点表示数据,根据数据结构的不同,XML可以包含多层多个子节点。
有了上述对XML文本格式的规定,就可将用户层不同协议的数据转换为统一格式的XML文本表示,作为复杂结构数据的中介,实现数据在应用层和传输层之间进行交互。
参照图3所示本发明方法的实现流程,包括以下步骤:
步骤301:定义XML文本的标签和结构。对于本发明中定义的XML的标签和结构,包括:XML节点(XML根节点表示请求或响应;XML数据节点表示一个数据结构对象)、数据类型及结构等在前面已作详细说明,在此不再赘述。
步骤302:根据定义的XML文本的标签和结构建立不同语言的XML数据单元对象。
XML数据单元对象是XML数据单元文本的语言映射,对于不同的编程语言,其XML数据单元对象也不同。XML数据单元文本的子节点data映射的XML数据单元对象为图表形式的散列对象,其每一个子节点映射一个语言对象,该对象的属性(对象类型,对象名称,对象值)在XML数据单元文本中都有解释。
例如,对于同一个XML数据单元文本,采用JAVA编程语言,则对应的XML数据单元对象为JAVA的HashMap;采用C++编程语言,则对应的XML数据单元对象为C++的std∷map;采用C#编程语言,则对应的XML数据单元对象为C#的hashtable。
以下为常见开发平台中,XML数据单元文本节点和XML数据单元对象关系映射表:
XDUT节点 | XDUO对象 | ||
JAVA | C++ | C# | |
整数 | |||
type=″integer″ | Integer | long* | Int32 |
type=″short″ | Short | short* | Int16 |
type=″long″ | Long | double* | Int64 |
type=″byte″ | Byte | char* | SByte |
浮点数 | |||
type=″float″ | Float | float* | Single |
type=″double″ | Double | double* | Double |
字符和字符串 | |||
type=″char″ | Char | char* | Char |
type=″string″ | String | string* | String |
布尔型 |
type=″boolean″ | Boolean | bool* | Boolean |
链表 | |||
type=″list″ | Vector | std∷vector<unsignedlong*> | ArrayList |
类型 | |||
type=″map″ | HashMap | std∷map<string,unsigned long*> | Hashtable |
无论使用哪种编程语言实现用户层协议数据到XML数据单元文本表示,由于其XML数据单元文本的格式符合前面所述定义的标准,从而能使数据交互做到与语言无关。
步骤303:将应用层协议结构数据映射为对应的XML数据单元对象。因为对于各种不同的业务需要不同的数据,使用的协议数据也有所不同。比如IP业务、ISDN业务分别使用特定的协议数据结构,这些结构规定了每种业务中包含的特征数据,将应用层协议结构数据映射为对应的XML数据单元对象的过程就是将这些特征数据对应到所述图表形式的散列对象的过程。
例如,某IP业务包含用户的注册资料,其特征数据为:用户名:Tom,年龄:24,性别:男,其他数据有:00860755280001,深圳南山科技园。
对应到JAVA的HashMap后如图4所示:
前面已经说过,对于不同的编程语言,其XML数据单元对象也不同,因此,可以根据实际采用编程语言的不同需要,将应用层协议结构数据映射为对应的XML数据单元对象。
然后,进到步骤304:根据XML数据单元对象将应用层协议结构数据转换为XML数据单元文本。
对于不同的编程语言,XML数据单元文本对应的XML数据单元对象有所不同,因此,要实现XML数据单元文本和XML数据单元对象之间的转换就需要编写不同的语言适配器,通过该语言适配器完成XML数据单元文本和XML数据单元对象之间编解码的过程。它包括两方面的功能:适配转换和XML解析。根据XML数据单元对象将应用层协议结构数据转换为XML数据单元文本的过程就是所述语言适配器完成适配转换功能的过程。
例如,将图4所示IP业务映射后的XML数据单元对象转换成对应的XML数据单元文本,如下所示:
<?xml version=″1.0″encoding=″gb2312″?>
<request version=″1.0″>
<data type=”map”>
<name type=″string″>Tom</name>
<age type=″integer″>24</age>
<sex type=″string″>male</sex>
<other type=”list”>
<ignore type=”string”>00860755280001</ignore>
<ignore type=”string”>深圳南山科技园</ignore>
</other>
</data>
</request>
这样,就完成了应用层不同协议结构数据到XML文本格式的封装。
进到步骤305:在输层完成XML文本格式数据的传输和交换,也就是说,通过不同的网络协议承载XML数据单元文本,并实现XML文本格式数据的交换。
网络中不同的工作站、服务器之间能传输数据,源于网络通信协议的存在。随着网络的发展,不同的开发商开发了不同的通信方式。目前常见的通信协议主要有:NetBEUI、IPX/SPX、TCP/IP。其中,
NetBEUI协议的全称是:NetBIOS Extend User Interface,即用户扩展接口,它是一种体积小、效率高、速度快的通信协议,NetBEUI是专门为几台到百多机所组成的单段网络而设计的,它不具有跨网段工作的能力,也就是说它不具有“路由”功能。
IPX/SPX协议的全称为:Internetwork Packet Exchange/Sequences PacketExchange,即网际包交换/顺序包交换。它的体积比较大,但它在复杂环境下有很强的适应性,同时它也具有“路由”功能,能实现多网段间的跨段通信。当用户接入的是NetWare(一种网络操作系统)服务器时,IPX/SPX及其兼容协议应是最好的选择。在整个协议中IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据传输是否成功,而SPX在协议中负责对整个传输的数据进行无差错处理。
TCP/IP协议的全称是:Transmission Control Protocol/Internet Protocol,即传输控制协议/网际协议。是目前最常用的一种协议,是互联网的基础协议,具有很强的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。
在本发明中,可以根据实际需要,选择合适的网络协议承载XML数据单元文本,并实现XML文本格式数据的交换。
例如:最基本方式为简单TCP/IP实现,通过在XML数据前添加合适的包头来控制即可;还可以通过HTTP应用层协议承载数据,由协议正文部分表示XML文本结构(HTTP协议一般包括协议头和数据正文部分)。IPX可以通过类似TCP的方式实现,通过合适的UDP(用户数据报文协议)、SPX控制也可以实现该数据的传输。
当用户层接收这些交换后的数据时,还需要将交换后的XML文本格式数据解封装为应用层协议结构数据,这样,用户层才能够识别该数据包含的信息,根据这些信息作进一步处理。
因此,需要进到步骤306:通过不同语言的XML解析器将交换后的XML文本格式数据解析为对应的XML数据单元对象。
前面已经提到,需要编写不同的语言适配器实现XML数据单元文本和XML数据单元对象之间的转换,将交换后的XML文本格式数据解析为对应的XML数据单元对象的过程就是所述语言适配器完成XML解析的过程。XML解析器很容易获得,JAVA,C++,C#都有自己的XML解析器,可直接使用。适配器的编写也很简单,本领域技术人员很容易实现。语言适配器根据XML数据单元文本中对包含的每个对象属性的解释,建立自己语言的数据结构对象。通过不同语言的适配器完成不同语言的转换。对同一个XML数据单元文本,使用JAVA的语言适配器,则转换成的XML数据单元对象为JAVA的HashMap;使用C++的语言适配器,则转换成的XML数据单元对象为C++的std∷map;使用C#的语言适配器,则转换成的XML数据单元对象为C#的hashtable。
然后,进到步骤307:根据XML数据单元对象获取对应的应用层协议结构数据。
这样,即完成了用户层不同协议数据在用户层和传输层之间的交互过程。整个交互过程可以简单表示为图5所示。
随着用户业务的发展,需要交互的数据结构可能会发生改变,比如增加或减少某个特征数据,用户层协议发生变化。这时,只需要在建立的不同语言的XML数据单元对象中添加相应的元素即可。比如,在前面的例子中,如果用户信息结构发生变换,需要传递用户电子邮件,则只需要在HashMap中增加一个名为email的对象即可。
语言适配器的编码以及传输方式保持不变,即将该新数据结构转换为对应的XML文本格式,通过网络协议承载传输、完成数据交换,然后,应用层通过语言适配器对交换后的XML数据单元文本解析后可以直接获得已经修改完成的参数。
由此可见,在数据交互过程中,本发明方案不需要根据新协议修改数据表示结构,而由协议处理过程根据对象结构实时调整XML数据表示的结构,不会像ASN.1一样修改协议文件后需重新编译协议文件,更不需要重新启动系统。这使得本发明方案有很强的弹性和实时性。
为了使本技术领域的人员更好地理解本发明方案,下面结合具体应用实例对本发明作进一步的详细说明。
该发明主要应用在业务系统之间的实时复杂数据交换,尤其是在数据结构不固定,协议升级比较频繁的系统之间,对于这类系统之间的数据交换,对数据结构的变化,要求有很好的适应性。例如某客户端和服务端已经开发了一致版本的数据结构处理方式,但服务端可能随着新的需求扩充了该协议。如果结构单一或协议处理方式仅适合原协议,则客户端可能无法与新的协议通讯或无法取得扩展后的数据,这时需要重新更新客户端处理方式才能适应新的需求,这使得对于电信网络网点比较复杂、结构庞大的系统而言,升级和开发都会显得比较麻烦,尤其在试验局阶段,协议可能会不断地完善和扩充,那么对于客户端数据协议的适配开发就会越来越复杂。通过本发明中的方式,就可以明显降低这种复杂度。
再参照图2所示的某局点的业务拓扑结构:
利用本发明方法,可以通过一份协议提供IP、专线、ISDN和跨省业务的各种服务,对于数据结构的表示,是由具体数据对象的结构转换而来,那么在业务拓扑图中,只需要一份协议即可以完成所有业务的通信,即将a、b、c、d合为一个协议,对于服务端和客户端协议接口,可以一次开发,长期使用。在更新业务数据时,由于表示数据的XML结构具有一定的自我描述性,不仅可以保持低版本应用的兼容性,也无需根据新的数据结构更新协议,仅需要变更应用侧的业务逻辑。
业务数据的结构化表示是通过XML来记录的,XML内容由相关平台的数据对象自动转换生成,如在使用IP业务时,XML表示的数据为表3所示:
表3:
GK地址 |
323注册名 |
终端地址 |
但对于同一份协议,由于操作的对象不同,也可以表示ISDN业务,如表4所示:
表4:
国家号 |
地区号 |
电话号码 |
不管是IP业务数据的表示还是ISDN业务数据的表示,对于本发明而言,主要是XML数据对象名称和意义的不同,如果名称完全不一致,两种业务数据可以同时存在一个结构表示中,也就是说可以通过一次交互而同时发送两种业务数据,而两种业务不发生任何干扰,各取所需。
所以相对于普通处理方式,本发明可以提供相当大的灵活性,一般对于客户端,只需要提供固定的协议接口库,即可以长期满足版本的变更,而无须随着版本的变化调整客户端接口和协议结构。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (10)
1、一种数据交换方法,所述数据在应用层和传输层之间进行交互,其特征在于,所述方法包括以下步骤:
A、定义可扩展标记语言文本的标签和结构;
B、根据所述定义的可扩展标记语言文本的标签和结构将应用层不同协议结构数据封装为可扩展标记语言文本格式;
C、在所述传输层完成所述可扩展标记语言文本格式数据的传输和交换;
D、将交换后的可扩展标记语言文本格式数据解封装为所述应用层协议结构数据。
2、根据权利要求1所述的数据交换方法,其特征在于,所述方法还包括:
建立所述可扩展标记语言文本对应的XML数据单元对象;
根据所述可扩展标记语言数据单元对象完成所述封装和解封装。
3、根据权利要求1或2所述的数据交换方法,其特征在于,所述步骤A具体包括:
定义可扩展标记语言根节点表示请求或响应;
定义可扩展标记语言数据节点表示一个数据结构对象。
4、根据权利要求2所述的数据交换方法,其特征在于,所述步骤B具体包括:
B1、建立不同语言的所述可扩展标记语言数据单元对象;
B2、将所述应用层协议结构数据映射为对应的可扩展标记语言数据单元对象;
B3、根据所述可扩展标记语言数据单元对象将所述应用层协议结构数据转换为可扩展标记语言数据单元文本。
5、根据权利要求4所述的数据交换方法,其特征在于,所述步骤C具体为:通过网络协议承载所述可扩展标记语言数据单元文本。
6、根据权利要求4所述的数据交换方法,其特征在于,所述步骤D包括:
D1、通过所述不同语言的可扩展标记语言解析器将所述交换后的可扩展标记语言文本格式数据解析为对应的可扩展标记语言数据单元对象;
D2、根据所述可扩展标记语言数据单元对象获取对应的应用层协议结构数据。
7、根据权利要求4所述的数据交换方法,其特征在于,所述可扩展标记语言数据单元对象包括:JAVA编程语言可扩展标记语言数据单元对象、C++编程语言可扩展标记语言数据单元对象、C#编程语言可扩展标记语言数据单元对象。
8、根据权利要求5所述的数据交换方法,其特征在于,所述网络协议包括:传输控制协议和因特网协议,网间数据包交换协议和顺序包交换。
9、根据权利要求2所述的数据交换方法,其特征在于,所述方法还包括:当所述应用层协议发生变化时,根据变化后的协议修改所述可扩展标记语言数据单元对象。
10、根据权利要求9所述的数据交换方法,其特征在于,修改所述可扩展标记语言数据单元对象的步骤包括:增加所述可扩展标记语言数据单元对象和/或删除所述可扩展标记语言数据单元对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410057020 CN1738309A (zh) | 2004-08-20 | 2004-08-20 | 数据交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410057020 CN1738309A (zh) | 2004-08-20 | 2004-08-20 | 数据交换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1738309A true CN1738309A (zh) | 2006-02-22 |
Family
ID=36080967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410057020 Pending CN1738309A (zh) | 2004-08-20 | 2004-08-20 | 数据交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1738309A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848239A (zh) * | 2010-05-11 | 2010-09-29 | 中国电子科技集团公司第二十八研究所 | 一种高时效性的分布式服务集成调用系统 |
CN101944025A (zh) * | 2010-09-16 | 2011-01-12 | 福建鑫诺通讯技术有限公司 | 基于python语言的tcp/udp数据的自动组包与解包的方法 |
CN101729381B (zh) | 2008-10-23 | 2012-01-11 | 上海宝信软件股份有限公司 | 一种基于外部系统的数据动态定制与交换系统及方法 |
CN103336843A (zh) * | 2013-07-18 | 2013-10-02 | 山东中创软件工程股份有限公司 | 一种数据集成方法及装置 |
CN103428180A (zh) * | 2012-05-18 | 2013-12-04 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN103593199A (zh) * | 2013-11-29 | 2014-02-19 | 迈普通信技术股份有限公司 | 数据转换的方法和系统 |
CN103973794A (zh) * | 2014-05-13 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种基于分布式网络传输中标记语言对象访问方法 |
CN105306565A (zh) * | 2015-10-22 | 2016-02-03 | 上海斐讯数据通信技术有限公司 | 远程传输数据的方法、系统及所适用的移动设备 |
-
2004
- 2004-08-20 CN CN 200410057020 patent/CN1738309A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729381B (zh) | 2008-10-23 | 2012-01-11 | 上海宝信软件股份有限公司 | 一种基于外部系统的数据动态定制与交换系统及方法 |
CN101848239A (zh) * | 2010-05-11 | 2010-09-29 | 中国电子科技集团公司第二十八研究所 | 一种高时效性的分布式服务集成调用系统 |
CN101848239B (zh) * | 2010-05-11 | 2012-11-28 | 中国电子科技集团公司第二十八研究所 | 一种高时效性的分布式服务集成调用系统 |
CN101944025A (zh) * | 2010-09-16 | 2011-01-12 | 福建鑫诺通讯技术有限公司 | 基于python语言的tcp/udp数据的自动组包与解包的方法 |
CN103428180A (zh) * | 2012-05-18 | 2013-12-04 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN103428180B (zh) * | 2012-05-18 | 2017-07-28 | 南京中兴力维软件有限公司 | 一种基于xml的sip协议数据传输方法及系统 |
CN103336843A (zh) * | 2013-07-18 | 2013-10-02 | 山东中创软件工程股份有限公司 | 一种数据集成方法及装置 |
CN103336843B (zh) * | 2013-07-18 | 2017-02-15 | 山东中创软件工程股份有限公司 | 一种数据集成方法及装置 |
CN103593199A (zh) * | 2013-11-29 | 2014-02-19 | 迈普通信技术股份有限公司 | 数据转换的方法和系统 |
CN103593199B (zh) * | 2013-11-29 | 2016-08-24 | 迈普通信技术股份有限公司 | 数据转换的方法和系统 |
CN103973794A (zh) * | 2014-05-13 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种基于分布式网络传输中标记语言对象访问方法 |
CN105306565A (zh) * | 2015-10-22 | 2016-02-03 | 上海斐讯数据通信技术有限公司 | 远程传输数据的方法、系统及所适用的移动设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1182748C (zh) | 基于短消息服务的无线增值业务的实现方法和系统 | |
CN1292566C (zh) | 路由器和地址标识信息管理服务器 | |
CN1148680C (zh) | 显示分层结构的方法、系统以及一种计算机系统 | |
CN1220745A (zh) | 与传统主机系统操作持续相连的全球信息网/仿真器的服务器和全球信息网浏览器的终端仿真器 | |
CN1757216A (zh) | 创建基于无线应用程序的组件并与之通信的系统和方法 | |
CN1625878A (zh) | 用于处理同步相关信息的方法和设备 | |
CN1751442A (zh) | 用于压缩以结构化定义语言表达的无线应用程序的系统和方法 | |
CN1777156A (zh) | 用于下一代网络、可动态扩展、开放接口技术的网关 | |
CN101035090A (zh) | 一种进行即时通信的方法 | |
CN112035090B (zh) | 基于容器化技术实现智能合约智慧化管理系统及方法 | |
CN1949776A (zh) | 扩展边界网关协议的4 over 6隧道封装及解封装方法 | |
CN1867144A (zh) | 内嵌于移动终端的地图浏览器及手机地图移动终端平台 | |
CN1738309A (zh) | 数据交换方法 | |
CN1805345A (zh) | Web服务工作流处理器 | |
CN1606312A (zh) | 与sip和web系统协同工作的服务提供系统及其方法 | |
CN1780334A (zh) | 移动通信终端机电话连接服务的远程调试装置和其方法 | |
CN1627757A (zh) | 通用消息解释器的实现方法 | |
CN1819588A (zh) | 基于中间件平台提供网络服务的方法 | |
CN101163297A (zh) | 嵌入式界面设计装置及方法 | |
CN1700685A (zh) | 一种业务中间件及利用业务中间件开展业务的方法 | |
CN101043368A (zh) | 一种统一Web页面的方法及系统 | |
CN100346599C (zh) | 一种基于移动代理的网络分布式交互方法 | |
CN1960281A (zh) | 具有虚拟线卡的虚拟网络交换系统 | |
CN1753434A (zh) | 一种发送实名短信的方法和系统 | |
CN114138259A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20060222 |