一种结构化数据交换方法

文档序号:6606868阅读:224来源:国知局
专利名称:一种结构化数据交换方法
技术领域
本发明涉及一种结构化数据交换方法,特别是一种提高数据交换速度的结构化数 据交换方法。
背景技术
随着计算机技术的发展,计算机网络的应用无处不在,应用软件的架构也已脱离 桌面式单机时代,发展到C/S(客户/服务架构)、C/S/S(客户/中间件应用服务/数据库 服务)、B/S/S (浏览器客户/Web应用服务/数据库服务)和分布式多层异构平台。这些结 构都能实现多客户端、多并发和大型数据访问的软件管理信息系统,大大提高了信息流通 的速度和效率,吸引了越来越多的企业、个人通过网络从事其相关活动,基于网络的数据交 换和业务协作越来越频繁。数据交换的协议主要是基于TCP/IP、HTTP等底层协议,数据的访问方法不同架构 有不同的方式C/S主要使用数据库服务器专有协议和数据格式,使用如SQL (结构化查询语言) 等方法,利用客户端的开发工具(如PowerBuilder,Delphi,Vb等)实现数据的访问。C/S/S架构客户端使用与中间件应用服务器的专有协议访问,如Oracle Bea Tuxedo使用简单的字串到复杂的FML等多种交换方式实现客户端与中间件的数据交换。中 间件与数据库的访问同C/S架构。B/S/S是基于浏览器瘦客户端,使用HTTP协议与TOB服务器交互,在文本交互方式 的基础上发展出如XML、JSON等开放的交换格式。当前流行的数据交换格式和方案主要有XML、JSON和Google的Protocol buffer 等XML 以文本格式描述数据的标记语言,缺点是用XML描述的数据比原始数据大很 多,而且数据访问解析比较慢,格式复杂,传输占用带宽。服务器端和客户端都需要花费大 量代码来解析XML,不论服务器端和客户端代码变的异常复杂和不容易维护,客户端不同浏 览器之间解析XML的方式不一致,需要重复编写很多代码,服务器端和客户端解析XML花费 资源和时间都较多。JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,它基于 JavaScript Programming Language,相对于XML,它更加易读。但JSON中的分隔符只限于 单引号、小括号、中括号、大括号、冒号和逗号等可输入字符,若数据内容中本身包含这些字 符时,要做转移处理,会增加解析的复杂度,且对于其它语言编码解码相对复杂。因此,需要一种新的数据交换方法以解决上述问题。

发明内容
针对上述现有结构化数据交换方法所存在的问题和不足,本发明的目的是提供一 种结构化数据交换方法,该方法有数据包小、数据交换速度快、应用方便的特点。
为实现上述目的,本发明可采用如下技术方案一种结构化数据交换方法,数据交 换格式由数据项值对区和数据记录集内容区组成,数据项值对区用以描述数据项名称与数 据项的内容,数据记录集内容区用以存放记录集的二维数据,每个记录集都有名称属性、记 录数属性、列名属性。本发明与现有技术相比其中数据交换包的结构主要由数据项值对与数据记录集 两种结构组成,能很简明地描述数据,并使用特殊的不可输入分隔符将数据项分开,包含数 据项值对与数据记录集的格式实现,只增加了很少的冗余数据,从而使用该结构化数据交 换方法可使数据包小、数据交换速度快、应用方便。


图1为本发明结构化数据交换方法中数据交换格式内部结构图。图2为本发明结构化数据交换方法中数据项内部结构图。图3为本发明结构化数据交换方法中记录集属性数据项内部结构图。图4为本发明结构化数据交换方法中数据记录集内容区内部结构图。图5为本发明结构化数据交换方法中结构化数据交换格式的示意图。
具体实施例方式下面结合附图和具体实施方式
,进一步阐明本发明,应理解下述具体实施方式
仅 用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本 发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。本发明提供一种结构化数据交换方法,本发明中的数据交换格式对比当前的数据 交换格式,有数据包小、数据交换速度快、应用方便等特点,可以把它用在C/S/S架构、B/S/ S架构或分布式应用之间的数据通信。本发明中结构化数据交换方法中的结构化数据交换格式由两大数据区组成一是 数据项值对区,另一个是数据记录集内容区。数据项值对也可以理解为数据域,由数据项的 名称和数据项的内容组成,这类数据项通常在软件开发中简称为“值对”,值对的优点是在 数据交换中每个数据项可以用唯一的名称标识出来,在数据交换解析时可以用名称直接取 得该数据项的内容,可以提高解析速度,本发明的结构中数据项值对以最小的冗余来描述, 如图2所示,数据项名称与数据项内容之间用不可输入的字符分隔,该字符为ASCII码(为 计算机表示字符的编码)为1的键盘不可输入字符,数据项的内容中不易包含这类字符。 数据项值对区由若干个数据项组成,本发明提供的格式将不同的数据项之间由ASCII码为 2的字符分隔。数据项值对区结束由ASCII码为6的字符表示。数据项值对主要表达一维的数据,数据交换中还需要表达二维结构的数据,通常 称为数据记录集,请参阅图1所示,本发明提供的格式将记录集的描述进行了优化,同一 个数据包中可包含一个以上的记录集,每个记录集有唯一的名称,并将每个记录集的属性 (主要有记录集的名称、记录数和列名)以数据项值对形式放入了数据项值对区中,解析数 据时可用名称取得记录集,并通过属性项可以取得记录集记录数和记录集的各列名称,大 大提高记录集的解析速度。数据记录集的名称属性设计为一个特殊的数据项值对,该数据项值对的名称为数
4据记录集的名称,该数据项值对的内容为一固定的记录集标识符[$],由美元符号和一对
中括号组成。数据记录集的名称属性数据项格式为数据记录集名称+ASCII码为1的字符 +, [$],。数据记录集的记录数属性由编码时放入,该项的名称为“数据记录集的名 称.rows”,该项的值为记录数。数据记录集的记录数属性数据项格式为数据记录集名称 +,· rows' +ASCII码为1为字符+记录数。数据记录集的各列名称由一数据项表示,该项的名称为“数据记录集的名 称.cols”,该项的内容是由各列名称和ASCII码为4的列分隔符组成,参见图3,数据记录 集的列名属性数据项格式为数据记录集名称+’ · cols+ASCII码为1为字符+列1名称 +ASCII码为4为字符+列2名称+ASCII码为4为字符+列3名称……+ASCII码为4为字 符+列n(n为大于1的自然数)名称。数据记录集内容区如图4,由若干个记录集内容组成,每个记录集的内容格式由 名称、行数据和结束符组成,记录集内容开始处的名称由三部分组成,一是标识起始符,由 ASCII码为3的字符和’ <’字符总共2个字符组成,第二部分是记录集名称,第三部分为标 识结束符,由字符’ Y和ASCII码为3的字符组成,行数据由每行数据组成,行与行之间由 ASCII码为5的字符分隔,行数据由数据集的各列加上ASCII码为4的列分隔符组成,记录 集内容结束符与数据项值对区结束符相对,为ASCII码为6的字符,数据记录集内容区中的 多个记录集依次存放。综上所述,本发明数据交换方法中数据交换包的结构主要由数据项值对与数据记 录集两种结构组成,能很简明地描述数据,并使用特殊的不可输入分隔符将数据项分开,包 含数据项值对与数据记录集的格式实现,只增加了很少的冗余数据,序列化编码、解码的方 法简单,体积小,编码的效率较高,能支持文本和二进制数据,可直接阅读。与XML、JSON等 格式相比,有数据包小、数据交换速度快、应用方便等特点,可以把它用在C/S/S架构、B/S/ S架构或分布式应用之间的数据通信,异构环境下的数据交换也适用。本发明的格式在编码 时相对简易,与计算机语言无关,当前主流的语言与平台都能实现,下面以Java语言的方 式描述编码的一种优选的实施方式。结构化数据交换格式编码主要由以下关键步骤1、分配数据交换的空间,开辟一个数据项值对区和一个数据记录集内容区,如在 Java 中申明两个 String Buffer 变量 bufl 和 buf2。2、写入数据项值对,先写入数据项的名称,若该数据项的名称为’namel’,则bufl. append ( ‘namel’),依次写入数据项名称与内容的分隔符bufl. append (char (1)),再将数 据项的内容写入,如bufl. append ( ‘nameljalue’),最后写入与下一个数据项的分隔符 bufl. append (char (2)),一个完整的数据项编码过程结束。3、若有多个数据项,按步骤2的方法依次写入,所有的数据项写完后,最后写入数 据项值对区的区结束符bufl. append (char (6)),若本次编码中有记录集,应将记录集的属 性数据项写入到数据项区后才能写入区结束符。4、若有记录集,写入数据记录集时,先将记录集名称按步骤2写入,内容为” [$] ”, buf2. append ( “记录集 1 [$] ”)。5、完成步骤4后,将记录集的记录数按步骤2写入,名称为记录集名称.rows,内容为记录数,如Java的list取记录数为list名· size(),buf2. append ( “记录集 1. rowslOOO”)。6、将记录集的各列列名称按步骤2写入,名称为记录集名称.cols,内容是各列 列名用ASCII码为4的字符分隔,分隔字符个数为记录集的列数减一,两端无分隔符,buf2. append( “记录集 L cols cl c2 c3,,)。7、写记录集的内容,在数据记录集内容区buf2中,首先写入记录集标识起始符, 为两个字符,第一个是ASCII码为3的字符,第二个为”〈”,buf2. append (char (3)), buf2. append( “<”)。8、在数据记录集内容区buf2中写入记录集的名称,buf2. append ( “记录集1”)。9、依次写入记录集标识结束符,与起始符对应为两个字符,第一个是”〉”,第二个 是 ASCII 码为 3 的字符,buf2. append ( “>,,),buf2. append (char (3))。10、写入数据记录集的行数据,从记录集的第一行开始,依次写入,每一行的规则 是按列的顺序(顺序与记录集的各列名属性顺序一致),写入各列的内容,列之间用ASCI I 码为4的字符分隔,最后一列后续不用些分隔,一行结束后写入行结束符(ASCII码为5的 字符),完成记录集所有行的数据后,写入记录集数据区结束符(ASCII码为6的字符)。11、若有多个数据记录集,按步骤4至步骤10方法写入。结构化数据交换格式解析主要由以下关键步骤对本发明提供的结构化数据交换格式解析时,主要实现以下几大解析功能1、通过名称取得指定数据项的内容。2、取得所有数据项名称的列表或数组。3、通过名称取得指定数据记录集的游标句柄(或指针)。4、实现记录集游标遍历(单向或双向)。5、通过列名称取得当前记录集游标所在行指定列的内容。6、通过列索引编号取得当前记录集游标所在行指定列的内容。
权利要求
一种结构化数据交换方法,其特征在于数据交换格式由数据项值对区和数据记录集内容区组成,数据项值对区用以描述数据项名称与数据项的内容,数据记录集内容区用以存放记录集的二维数据,每个记录集都有名称属性、记录数属性、列名属性。
2.根据权利要求1所述的结构化数据交换方法,其特征在于所述数据项值对区中具 有的数据项具有数据项的名称与数据项的内容,数据项的名称与数据项的内容由不可输入 分隔符分隔。
3.根据权利要求2所述的结构化数据交换方法,其特征在于所述不可输入分隔符采 用ASCII码为1或2的分隔符,所述数据项的名称与数据项的内容由ASCII码为1的分隔 符分隔,数据项与下一个数据项之间由ASCII码为2的分隔符分隔。
4.根据权利要求2或3所述的结构化数据交换方法,其特征在于所述数据记录集的 名称、记录数、列名等属性以数据项值对的形式在数据项值对区中描述。
5.根据权利要求4所述的结构化数据交换方法,其特征在于数据记录集的名称属性 数据项格式为数据记录集名称+ASCII码为1的字符+’[$]’,其中[$]为固定的记录集标 识符。
6.根据权利要求5所述的结构化数据交换方法,其特征在于数据记录集的记录数属 性数据项格式为数据记录集名称+’ · rows' +ASCII码为1为字符+记录数。
7.根据权利要求6所述的结构化数据交换方法,其特征在于数据记录集的列名属性 数据项格式为数据记录集名称+’. cols+ASCII码为1为字符+列1名称+ASCII码为4为 字符+列2名称+ASCII码为4为字符+列3名称……+ASCII码为4为字符+列η (η为大 于1的自然数)名称。
8.根据权利要求7所述的结构化数据交换方法,其特征在于数据记录集内容区由若 干个记录集的内容组成。
全文摘要
本发明提供一种结构化数据交换方法,其中数据交换包的结构主要由数据项值对与数据记录集两种结构组成,能很简明地描述数据,并使用特殊的不可输入分隔符将数据项分开,包含数据项值对与数据记录集的格式实现,只增加了很少的冗余数据,从而使用该结构化数据交换方法可使数据包小、数据交换速度快、应用方便。
文档编号G06F17/30GK101930455SQ20101024146
公开日2010年12月29日 申请日期2010年7月30日 优先权日2010年7月30日
发明者苏祖辉, 金定勇, 陈军 申请人:南京莱斯信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1