首页> 中国专利> 嵌入式系统与外部数据库进行数据交换的方法

嵌入式系统与外部数据库进行数据交换的方法

摘要

本发明公开了一种嵌入式系统与外部数据库进行数据交换的方法,其特征在于:在嵌入式系统中设置一个外部数据交换模块,通过外部数据交换模块与外部数据库进行通信,实现嵌入式系统与外部数据库之间的数据交换。嵌入式系统需要外部数据库的数据时,外部数据交换模块向外部数据库发送数据请求,并指定所需要的数据;外部数据库将数据封装成扩展标记语言XML格式发送给外部数据交换模块;外部数据交换模块接收数据并对数据进行解析,将数据内容提取出来;外部数据交换模块将提取出来的数据保存到嵌入式数据库;外部数据交换模块收到外部数据库的数据请求时,将数据封装成扩展标记语言XML格式,发送给外部数据库。

著录项

  • 公开/公告号CN1464435A

    专利类型发明专利

  • 公开/公告日2003-12-31

    原文格式PDF

  • 申请/专利权人 联想(北京)有限公司;

    申请/专利号CN02121567.7

  • 发明设计人 孙雅莎;丁刚;杨柏梁;

    申请日2002-06-26

  • 分类号G06F17/30;G06F13/00;

  • 代理机构11018 北京德琦知识产权代理有限公司;

  • 代理人王丽琴

  • 地址 100085 北京市海淀区上地信息产业基地创业路6号

  • 入库时间 2023-12-17 15:05:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-12

    专利权有效期届满 IPC(主分类):G06F17/30 专利号:ZL021215677 申请日:20020626 授权公告日:20050720

    专利权的终止

  • 2005-07-20

    授权

    授权

  • 2004-03-10

    实质审查的生效

    实质审查的生效

  • 2003-12-31

    公开

    公开

  • 2002-09-25

    实质审查的生效

    实质审查的生效

说明书

技术领域

本发明涉及一种嵌入式系统的数据交换方法,特别涉及一种嵌入式系统与外部数据库进行数据交换的方法。

技术背景

目前,嵌入式系统在信息电器、移动计算设备、网络设备、工业控制、仿真、医疗仪器等领域得到了广泛的应用,并且逐渐向数字化和网络化发展,使得嵌入式系统的数据交换问题十分关键。为此,嵌入式系统引入了嵌入式数据库。嵌入式数据库能够满足嵌入式系统对数据交换的要求,它和嵌入式操作系统有机地结合在一起,为应用开发人员提供有效的数据管理手段。嵌入式数据库的引入使得嵌入式产品在访问其它电子设备(如PC、数据库服务器、通信设备等)的数据时可以畅通无阻,同时,由于其对于平台的无关性,可以自由地在嵌入式平台之间移植。

嵌入式系统的数据交换问题包含两个层面,即内部数据交换和外部数据交换。内部数据交换指的是同一系统中同样的数据库格式(即同一存储方式下)的数据交换,在客户/服务器模型中,具体可表现为客户、服务器两端数据的交换;外部数据交换则指不同数据库格式(即不同存储方式下)的数据交换,也就是嵌入式系统与外部数据库之间的数据交换。内部数据交换由于数据的存储格式相同,所以实现起来并不困难,而外部数据交换由于数据在存储格式上的不同,直接带来了外部数据交换的复杂性和实现上的难度。

例如要实现某嵌入式数据库A(db1)和某大型数据库B(db2)间的数据交换,首先需要将db1中的数据导出,并将其转换成db2能够识别的格式,然后将转换后的数据导入db2。完成这一过程要求开发人员必须清楚两个数据库的数据存储方式,而且,存储方式间的转换往往费时、费力,致使数据交换的大部分时间都浪费在了转换数据格式上。

目前现有的嵌入式数据库,如Ultralite数据库,在与SQL Server,Oracle,DB2等大型数据库进行数据交换时,采用的是自己定义的通信协议。其实现方式,参见图1,在SQL Server 110,Oracle 120,DB2 130等大型数据库所在的机器150上各安装一个适配器111、121、131(Adaptor),适配器负责Ultralite数据库140与大型数据库之间的数据交换,起到一个中介平台的作用,也就是说通过适配器,将嵌入式数据库的数据转换成大型数据库能够识别的存储格式或将大型数据库的数据转换成嵌入式数据库能够识别的存储格式,然后进行数据交换,从而实现嵌入式数据库与外部大型数据库的数据交换。其中,由于所要交换的大型数据库的不同,各个适配器111、121、131也各不相同。这种方法,对需要进行数据交换的大型数据库进行了干涉,并且对于不同的大型数据库,所做的适配器也各不相同,这样就增加了开发人员的工作量,同时增加了成本。

近年来兴起的XML技术(eXtensible Markup Language,扩展标记语言)是Web上表示结构化信息的一种标准文本格式,可以在Windows平台下,将需要交换的不同数据库格式的数据都转换成XML格式,通过XML的桥梁作用,为各种异质系统之间的信息交流提供便利的捷径。然而,即便选用XML作为中介,由于现有数据库对XML的支持仅涉及到单方面的数据导入或导出;在导入、导出这两个环节的衔接过程中,仍然存在着格式因素需要考虑。数据库对XML的支持仅在Windows平台得到了良好的应用,而在嵌入式数据库方面仍然是一个空白。

发明内容

有鉴于此,本发明的主要目的在于提供一种嵌入式系统与外部数据库进行数据交换的方法,以XML为桥梁,在完全不对外部数据库进行任何干涉的情况下,完成数据交换,使嵌入式数据库用户能够方便地与外部的大型数据库进行数据的上传和下载,实现跨平台、异质系统间的无缝通讯。

为达到上述目的,本发明的技术方案具体是这样实现的:

一种嵌入式系统与外部数据库进行数据交换的方法,其特征在于,其包括以下几个步骤:

1)在嵌入式系统中设置一个外部数据交换模块;

2)嵌入式系统需要外部数据库的数据时,外部数据交换模块向外部数据库发送数据请求,并指定所需要的数据;

3)外部数据库根据数据请求,将所需要的封装成扩展标记语言XML格式的数据发送给外部数据交换模块;

4)外部数据交换模块接收到数据后,对数据进行解析,将数据内容提取出来;

5)外部数据交换模块将提取出来的数据以嵌入式数据库的格式保存到嵌入式数据库;

6)外部数据交换模块收到外部数据库的数据请求时,将所需要的数据封装成扩展标记语言XML格式,发送给外部数据库。

其中,步骤2)可以为外部数据交换模块通过HTTP协议向外部数据库发送请求,通过数据库操作命令指定需要的数据;步骤6)外部数据交换模块可以通过HTTP协议向外部数据库发送封装成扩展标记语言XML格式的数据。

步骤4)还可以包括以下几个步骤:

A、接收到数据后,先判断上次解析是否有遗留数据段,如果有,将本次接收的数据与遗留数据段连接起来,找出其中的元素开始点,开始解析;

B、如果上次解析没有遗留数据段,则从本次接收数据的元素开始点开始解析;

C、根据XML语法规则,解析出元素及其属性,并将此解析结果保存到内存中。

其中的遗留数据段,可以是在接收到不完整的XML字符串时,将该不完整的XML字符串记录下来形成的;解析结果以文档对象模型的形式在内存中保存,例如可以以树的结构形式在内存中保存。

步骤6)外部数据交换模块可以根据XML的语法规则将所需要的数据封装成扩展标记语言XML格式。

由上述方案可以看出,本发明的关键在于:在嵌入式系统中使用一个外部数据交换模块,以XML为桥梁,集成了数据的导入、导出两项功能,通过外部数据交换模块与外部数据库进行通信,实现嵌入式系统与外部数据库之间的数据交换。

因此,本发明所提供的嵌入式系统与外部数据库进行数据交换的方法,以XML为桥梁,在完全不对外部数据库进行任何干涉的情况下,完成数据交换,使嵌入式数据库用户能够方便地与外部的大型数据库进行数据的上传和下载,实现跨平台、异质系统间的无缝通讯,减少了开发人员的工作量,降低了成本。本发明的方法将数据在异质系统间的数据交换过程集成于外部数据交换模块中,数据转换完全封闭在系统内,不仅带来用户使用上的方便,更是增强了系统的功能。

附图说明

图1为现有的嵌入式数据库Ultralite数据库,与SQL Server,Oracle,DB2大型数据库进行数据交换的实现方式示意图。

图2为本发明的一个较佳实施例的嵌入式系统与外部数据库进行数据交换的示意图。图3为图2所示实施例中数据解析过程流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例,并参照附图,对本发明进一步详细说明。

本发明实施需要两个基本前提:首先,与嵌入式数据库进行数据交换的外部数据库(以下简称对方数据库)必须支持XML,包括支持将数据库中所存数据以XML格式供用户在Web Server(页面服务器)上浏览,和支持将一完整XML文件中的数据存入库内相应表中。其次,由于XML是基于Web的,因此要实现以XML为桥梁的数据交换,还必须有一个能够识别XML的Web Server。

参见图2,本发明的一个较佳实施例的嵌入式系统与外部数据库进行数据交换的示意图。一个包含了服务器201和n个嵌入式产品202的嵌入式系统200,其中服务器201支持Web功能,且引入了嵌入式数据库作为公有数据库204,并且加入了一个用于外部数据交换的外部数据交换模块203。外部数据交换模块203作为嵌入式数据库整个平台数据交换的一个子模块,当嵌入式产品202端,也就是客户端需要进行数据交换时,它的请求被送抵服务器201。服务器检查日志,如果用户请求的新数据已经位于其公有数据库204(本实施例中就是嵌入式数据库)中,它直接将数据返回给用户,这个过程为内部数据交换;否则,例如,所需数据在外部数据库210SQLServer中(如果外部数据库为Oracle、DB2等大型数据库,本发明方法也可以实现,只要这些大型数据库既支持将数据库中所存数据以XML格式供用户在Web Server上浏览,又支持将一完整XML文件中的数据存入库内相应表中,本发明方法就可以实现),则由服务器201中的外部数据交换模块203完成真正的同外部数据库210的数据交换操作,其具体过程为:

首先,外部数据交换模块203通过HTTP协议向210SQL Server端发送请求,同时,通过SQL语句指定需要的数据;然后接收210SQL Server端传送的封装成扩展标记语言XML格式的数据;接着,将数据进行解析、提取,最终将数据以嵌入式数据库格式保存在公有数据库的相应表中。

其中,最复杂的就是对接收到数据的解析过程。由于接收到数据量的不同,以及接收缓冲区定义大小的差异,很可能出现接收缓冲区不能够一次接收所有XML数据的情况,此时,接收到的只是一些不完整的XML字符串。因此,在解析过程中,采用了追溯法来处理截断字符串的情况。

根据XML的语法规则,一个元素必定是以”<”开始的,对于有值元素,其表达情形可能为<customer>ALKLI</customer>,customer是元素名,ALKLI是元素值,最后的</customer>表示元素结束;对于空元素,其表达情形可为<book isbn=“762-8734”title=“moon”author=“Bruce”/>,其中isbn、title、author只是元素book的属性。

在解析过程中,当碰到一个元素开始标记”<”(为了说明清楚,本文用ES来示意)时,就会把这个位置记录下来,然后向后搜索,直到找到与之相匹配的结束标记,有值元素为”>”,空元素为”/>”(为了说明清楚,本文都用EE来示意)为止(这里,需要注意区分有值元素与空元素的区别)。如果搜索到字符串结束”/0”(为了说明清楚,本文用S0来示意)还没有找到EE,说明此次接收到的数据是不完整的。这时,把从ES到S0之间的字符记录下来(为了说明清楚,本文用T来示意,T=S0--ES),连接在下次接收到数据的起始位置(为了说明清楚,本文用EM来示意),然后在进行解析。这样,便保证了每次解析的起点都从ES开始。对下一次接收数据解析时,追溯上次遗留下来的数据段T,从而保证了数据的完整性。

解析结果以文档对象模型DOM的形式在内存中保存。DOM是表示XML文档内容的模型,它提供了一种访问和操纵XML文档的方法。DOM模型的线性模型、树形模型和对象模型三种模型本发明都可以采用。本实施例采用了最常用的以树的形式在内存中保存。每解析一个元素/属性(根据具体需要,有时要对元素属性进行详细解析),就在树上添加一个节点,并且,元素本身与元素属性是父子关系。当一个完整的XML数据段解析完毕后,内存中会形成一棵多叉树。

解析的具体过程参见图3,图2所示实施例中数据解析过程流程图。当接收到数据段EM时,先执行步骤301,判断上次是否有遗留数据段T;如果有,则执行步骤302,顺序连接T和EM,然后按数据顺序搜索数据,执行步骤303,判断搜索到的数据是否为元素的开始ES;如果没有遗留下来的数据段,则直接执行步骤303,判断搜索到的数据是否为元素的开始ES;如果没有搜索到ES,则执行步骤304,认为有错,结束解析,外部数据交换模块可以重新要求数据。如果搜索到ES,则继续搜索,执行步骤305,判断搜索到的数据是否为元素的结束EE;如果没有搜索到EE,则执行步骤306,记录遗留数据段T,T=S0--ES,然后继续接收数据。如果搜索到EE,则执行步骤307,解析ES和EE之间的数据;再执行步骤308,将解析的结果添加树节点。这样,通过遍历整棵树就可获得需要的数据,并将其以嵌入式数据库的格式保存入公有数据库中。也就实现了SQL Server数据向嵌入式数据库的数据交换。

当数据交换完成后,服务器再根据用户请求,将新数据返回用户。

参见图2,当外部数据库210SQL Server端需要嵌入式系统200中的数据时,嵌入式系统200中的外部数据交换模块203接收到来自210SQLServer的数据请求;先根据XML的语法规则将所需要的公有数据库204中的数据封装成扩展标记语言XML格式;然后,将封装好的数据通过HTTP协议发送给210SQL Server。这一过程相对简单,只要将公有数据库204中的数据封装成标准XML格式并发送到210SQL Server端即可,对数据的解析及存储工作均由210SQL Server完成。

本发明利用XML的桥梁作用,使嵌入式系统与外部数据库进行数据交换时,在无需了解对方存储结构的情况下就可快捷有效地进行数据交换,大大缩短了开发周期,降低了开发难度,提高了代码重用性。

对于嵌入式用户来说,关心的是系统的高效和稳定,至于数据处理的过程完全无需了解。本发明的方法将数据在异质系统间的数据交换过程集成于外部数据交换模块中,数据转换完全封闭在系统内,带来的不仅是用户使用上的方便,更是系统功能的增强。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号