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

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

Info

Publication number
CN1464435A
CN1464435A CN 02121567 CN02121567A CN1464435A CN 1464435 A CN1464435 A CN 1464435A CN 02121567 CN02121567 CN 02121567 CN 02121567 A CN02121567 A CN 02121567A CN 1464435 A CN1464435 A CN 1464435A
Authority
CN
China
Prior art keywords
data
external data
external
data base
switching module
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
CN 02121567
Other languages
English (en)
Other versions
CN1211746C (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN 02121567 priority Critical patent/CN1211746C/zh
Publication of CN1464435A publication Critical patent/CN1464435A/zh
Application granted granted Critical
Publication of CN1211746C publication Critical patent/CN1211746C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

嵌入式系统与外部数据库进行数据交换的方法
技术领域
本发明涉及一种嵌入式系统的数据交换方法,特别涉及一种嵌入式系统与外部数据库进行数据交换的方法。
技术背景
目前,嵌入式系统在信息电器、移动计算设备、网络设备、工业控制、仿真、医疗仪器等领域得到了广泛的应用,并且逐渐向数字化和网络化发展,使得嵌入式系统的数据交换问题十分关键。为此,嵌入式系统引入了嵌入式数据库。嵌入式数据库能够满足嵌入式系统对数据交换的要求,它和嵌入式操作系统有机地结合在一起,为应用开发人员提供有效的数据管理手段。嵌入式数据库的引入使得嵌入式产品在访问其它电子设备(如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的桥梁作用,使嵌入式系统与外部数据库进行数据交换时,在无需了解对方存储结构的情况下就可快捷有效地进行数据交换,大大缩短了开发周期,降低了开发难度,提高了代码重用性。
对于嵌入式用户来说,关心的是系统的高效和稳定,至于数据处理的过程完全无需了解。本发明的方法将数据在异质系统间的数据交换过程集成于外部数据交换模块中,数据转换完全封闭在系统内,带来的不仅是用户使用上的方便,更是系统功能的增强。

Claims (6)

1、一种嵌入式系统与外部数据库进行数据交换的方法,其特征在于,包括以下几个步骤:
1)在嵌入式系统中设置一个外部数据交换模块;
2)嵌入式系统需要外部数据库的数据时,外部数据交换模块向外部数据库发送数据请求,并指定所需要的数据;
3)外部数据库根据数据请求,将所需要的封装成扩展标记语言XML格式的数据发送给外部数据交换模块;
4)外部数据交换模块接收到数据后,对数据进行解析,将数据内容提取出来;
5)外部数据交换模块将提取出来的数据以嵌入式数据库的格式保存到嵌入式数据库;
6)外部数据交换模块收到外部数据库的数据请求时,将所需要的数据封装成扩展标记语言XML格式,发送给外部数据库。
2、如权利要求1所述的嵌入式系统与外部数据库进行数据交换的方法,其特征在于:该方法的步骤2)为外部数据交换模块通过HTTP协议向外部数据库发送请求,通过数据库操作命令指定需要的数据;该方法的步骤6)外部数据交换模块是通过HTTP协议向外部数据库发送封装成扩展标记语言XML格式的数据。
3、如权利要求1所述的嵌入式系统与外部数据库进行数据交换的方法,其特征在于:该方法的步骤4)包括以下几个步骤:
A、接收到数据后,先判断上次解析是否有遗留数据段,如果有,将本次接收的数据与遗留数据段连接起来,找出其中的元素开始点,开始解析;
B、如果上次解析没有遗留数据段,则从本次接收数据的元素开始点开始解析;
C、根据XML语法规则,解析出元素及其属性,并将此解析结果保存到内存中。
4、如权利要求1所述的嵌入式系统与外部数据库进行数据交换的方法,其特征在于:该方法的步骤6)外部数据交换模块根据XML的语法规则将所需要的数据封装成扩展标记语言XML格式。
5、如权利要求3所述的嵌入式系统与外部数据库进行数据交换的方法,其特征在于:所述的遗留数据段,是在接收到不完整的XML字符串时,将该不完整的XML字符串记录下来形成的。
6、如权利要求3所述的嵌入式系统与外部数据库进行数据交换的方法,其特征在于:所述的解析结果以树的结构形式在内存中保存。
CN 02121567 2002-06-26 2002-06-26 嵌入式系统与外部数据库进行数据交换的方法 Expired - Lifetime CN1211746C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02121567 CN1211746C (zh) 2002-06-26 2002-06-26 嵌入式系统与外部数据库进行数据交换的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02121567 CN1211746C (zh) 2002-06-26 2002-06-26 嵌入式系统与外部数据库进行数据交换的方法

Publications (2)

Publication Number Publication Date
CN1464435A true CN1464435A (zh) 2003-12-31
CN1211746C CN1211746C (zh) 2005-07-20

Family

ID=29743014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02121567 Expired - Lifetime CN1211746C (zh) 2002-06-26 2002-06-26 嵌入式系统与外部数据库进行数据交换的方法

Country Status (1)

Country Link
CN (1) CN1211746C (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100531105C (zh) * 2004-09-01 2009-08-19 鸿富锦精密工业(深圳)有限公司 跨系统资料交换之系统架构及方法
CN102073693A (zh) * 2010-12-28 2011-05-25 广州杰赛科技股份有限公司 基于xml的数据通讯方法及系统
CN101685450B (zh) * 2008-09-27 2011-08-24 比亚迪股份有限公司 一种在嵌入式操作系统中实现数据库功能的方法
CN102521318A (zh) * 2011-12-02 2012-06-27 华侨大学 基于xml的通用数据交换装置
CN102640142A (zh) * 2009-12-04 2012-08-15 Abb研究有限公司 用于工程工具的数据集成的系统和方法
CN102170410B (zh) * 2007-11-12 2014-01-22 华为技术有限公司 数据交换方法、系统及设备
CN106067893A (zh) * 2016-09-14 2016-11-02 中山大学 一种基于Web的数据交互方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952893B2 (en) * 2010-11-03 2018-04-24 Microsoft Technology Licensing, Llc Spreadsheet model for distributed computations

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100531105C (zh) * 2004-09-01 2009-08-19 鸿富锦精密工业(深圳)有限公司 跨系统资料交换之系统架构及方法
CN102170410B (zh) * 2007-11-12 2014-01-22 华为技术有限公司 数据交换方法、系统及设备
CN101685450B (zh) * 2008-09-27 2011-08-24 比亚迪股份有限公司 一种在嵌入式操作系统中实现数据库功能的方法
CN102640142A (zh) * 2009-12-04 2012-08-15 Abb研究有限公司 用于工程工具的数据集成的系统和方法
CN102073693A (zh) * 2010-12-28 2011-05-25 广州杰赛科技股份有限公司 基于xml的数据通讯方法及系统
CN102521318A (zh) * 2011-12-02 2012-06-27 华侨大学 基于xml的通用数据交换装置
CN106067893A (zh) * 2016-09-14 2016-11-02 中山大学 一种基于Web的数据交互方法

Also Published As

Publication number Publication date
CN1211746C (zh) 2005-07-20

Similar Documents

Publication Publication Date Title
US6418446B1 (en) Method for grouping of dynamic schema data using XML
US6941511B1 (en) High-performance extensible document transformation
US6643633B2 (en) Storing fragmented XML data into a relational database by decomposing XML documents with application specific mappings
RU2337398C2 (ru) Способ и устройство для синхронизации того, как данные сохраняются в различных хранилищах данных
US6836778B2 (en) Techniques for changing XML content in a relational database
US7747610B2 (en) Database system and methodology for processing path based queries
US7877366B2 (en) Streaming XML data retrieval using XPath
US20030236859A1 (en) System and method providing API interface between XML and SQL while interacting with a managed object environment
JP2000148461A (ja) ソフトウェアモデル及び既存のソ―スコ―ドを同期化させる方法及びその装置
US7702641B2 (en) Method and system for comparing and updating file trees
JP2009537895A (ja) バイナリにエンコードされたxmlデータの効率的な区分的アップデート
Maluf et al. NASA Technology Transfer System
Tsou An operational metadata framework for searching, indexing, and retrieving distributed geographic information services on the Internet
CN100397397C (zh) 基于关系数据库的xml数据存储与访问方法
US20040019589A1 (en) Driver for mapping standard database queries and commands to markup language documents
CN1464435A (zh) 嵌入式系统与外部数据库进行数据交换的方法
WO2000065486A2 (en) A method of mapping semantic context to enable interoperability among disparate sources
WO2001033433A1 (en) Method and apparatus for establishing and using an xml database
CN113704575A (zh) 解析XML与Java文件的SQL方法、装置、设备及存储介质
US20090030877A1 (en) Three-phase single-pass efficient processing of xquery update
Gardarin et al. Federating object-oriented and relational databases: The IRO-DB experience
CN102521408B (zh) 一种通过jdbc接口访问平面文件的方法
Kucuk et al. Application of metadata concepts to discovery of internet resources
Kyung-Soo A design of middleware components for the connection between XML and RDB
CN1484174A (zh) 通用查询语句动态生成系统及方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
CX01 Expiry of patent term

Granted publication date: 20050720

CX01 Expiry of patent term