专利名称:有效传输分布式数据库中部分对象的系统的制作方法
技术领域:
本发明涉及具有网络节点以及分布在所有网络节点中的软件系统的网络。
这样的网络源自Ralf Steinmetz(编者)“Kommunikation in verteiltenSystemen(KiVS)”,第11届ITG/GI会议,Darmstadt,1999年3月2日到5日;Stephan Abramowski,Heribert Baldus,Tobias Helbig“Digitale Netze inWohnungen- Unterhaltungselektronik in Umbruch”,第340-351页。上述文献描述了未来家庭网络的需求以及所使用的软件。没有解释在这样一个具有分布式软件系统的网络中如何实现在分布式数据库的数据访问操作期间有效地传输数据对象的个体元素。
本发明的目的是提供一个具有软件系统的网络,使得在有限的内存和处理器资源的限制下,用少量的数据访问操作实现数据对象和数据对象的元素的有效传输。
采用在开始的段落中所定义的网络的类型可以达到这一目标,其中该分布式软件系统- 在每一个网络节点包括一个被称为分布实用程序的软件部件,用于访问分布式数据库的数据,以及与不同网络节点的其他分布实用程序之间的通信,以及- 至少一个被称为数据管理器的软件部件,用作数据库和其他部件的链路,并且包括一个回调部件用于访问数据对象的至少一个元素,以及- 一个包括两个部分的关键字,第一部分是分布实用程序关键字,通过分布实用程序标识数据对象,第二部分是数据管理器关键字,标识数据对象的至少一个需要的元素。
在具有多个网络节点并且有一个分布在所有网络节点中的软件系统的网络中,有效的分布式数据库所要求的功能在两个部件之间分开。
和数据分布有关的任务(例如复制,数据的一致性)由一个软件部件完成,称为分布实用程序,在每一个网络节点可用一次。分布实用程序提供对分布式数据库的数据访问,以及和不同网络节点的其他分布实用程序通信。
第二个软件部件是一个数据管理器,提供从数据库到其他部件的链路,例如作为一个用户程序。通过用于解释并非为分布实用程序而构造的数据的回调部件,分布实用程序使用数据管理器。数据管理器将数据处理成为分布实用程序可以理解的格式。每一个网络节点可以有几个数据管理器。
数据访问通常发生于完全数据对象(例如偏好编辑器,在图形上表示所有的用户偏好)和单独元素时(例如需要仅仅一个或几个用户参数的应用程序)。一个两部分组成的关键字允许识别一个完全数据对象和一个数据对象的单独一个元素。一方面,关键字包括一个分布实用程序关键字,借助它分布实用程序在分布式数据库内定位需要的数据对象。另一方面,每一个数据管理器可以借助数据管理器关键字指定要访问数据对象的哪一元素。借助使用的数据管理器关键字,数据管理器可以从数据对象中提取需要的元素,并将它传送给同一个网络节点的分布实用程序。分布实用程序将元素传送给提供数据管理器关键字的请求数据管理器的分布实用程序。
因为数据管理器关键字可以由具有相同功能的数据管理器生成、评估,数据管理器关键字的句法和内容可以为各自的数据管理器专门定义,因此可以适用于该数据管理器管理的数据结构。如果数据管理器没有提供关键字,分布实用程序将返回分布实用程序关键字所标识的完全数据对象。然后,这个数据对象被数据管理器直接传送给用户程序,或者由数据管理器的回调部件首先解析为元素。结果是,许多对存储在远端网络节点的元素的单独访问操作可以被包含所需元素的数据对象的一个访问操作替代。
如果网络节点作为错误结果失败,分布实用程序将被告知,以便允许该应用程序例如因此适于复制数据。当加入新网络节点时,分布实用程序执行网络节点集成,以及网络数据更新。为了执行这些和其他的任务,分布实用程序使用不同数据管理器的回调部件的服务和信息。服务和信息例如包括读数据对象的元素、写数据对象的元素、整合数据对象的两个版本和关于数据对象的所需复制的信息。
本地内存管理器负责管理网络节点的数据库。分布实用程序请求本地内存管理器改变数据库。
本发明实施例将参考附图,用例子细致地描述。图中
图1显示了带有多个网络节点的网络,
图2显示了网络中使用的软件系统的不同的软件层,图3通过例子显示了带有软件部件的三个网络节点,图4是远端网络节点访问本地网络节点数据对象元素的基本功能表示,图5的信号流程图显示了在读操作中的操作时序,图6的信号流程图显示了在写操作中的操作时序。
图1显示了通过总线系统6将不同的网络节点1到5相互连接起来的网络。或者网络节点1到5也可以通过无线链路7和发射/接收站8连接到总线系统6。可以采用,例如,红外线,超声波,或者无线电链接来用于此目的。这样的网络节点例如可以是PC或者家庭娱乐设备,例如TV,机顶盒,调谐器,照相机,数字录像机,CD播放器。
图2显示的软件系统,包含建立在操作系统上的不同的软件层。最高层的软件层是应用层9。下一个软件层是基础层10,最下面的软件层是网络层11。
图3显示了基础层10的软件部件的分布和协作的例子。用于网络节点1到3的构造管理的基础层10的软件部件包括多个分布实用程序12到14,以及多个数据管理器15到19。数据管理器15到19的每一个都包括一个回调部件20到24。回调部件20到24用于解析包含多个元素28的数据对象29。分布实用程序12到14执行由数据分布产生的所有任务,例如复制数据库的数据。应用程序处理数据所需的任务和需要数据内部结构知识的任务由各个数据管理器15到19执行。
三个网络节点1到3中的每一个网络节点,都有一个分布实用程序12到14,以及至少一个数据管理器15到19。在本例中,数据管理器15,16和17分别提供在三个节点的每一个可用的数据结构。数据管理器18到19提供的数据结构包含仅仅可在网络节点3访问的数据。数据管理器15到19中的每一个都包含一个回调部件20到24。网络节点1到5的回调部件20到24以及分布实用程序12到14通过不同方法调用和回调(?)值来相互通信。它们用双向箭头25表示,以后简称为方法25。
在软件系统初始化时,数据管理器15到19在各自的本地分布实用程序12到14中注册,并通过方法25,数据管理器为数据激活回调部件20到24使方法25有效的关键字的前缀。并且,本地内存管理器26和27可以位于网络节点1到5,管理存储在网络节点1到5的数据。通过方法25,本地内存管理器26和27与其网络节点1到3的各自的分布实用程序13或14进行专有通信。如果网络节点1没有本地内存管理器,分布实用程序12不能访问本地网络节点,将把所有的请求转移到分布实用程序13和14。单独网络节点1到5的分布实用程序12到14之间的通信通过不同的方法25实现。
图4显示了在网络节点1启动的应用程序30访问保存在远端网络节点2的数据对象29的元素28时的功能时序。在此,图4中的每个箭头用参考符号指示的部件转移表示了一个方法调用或方法回调(?)。在数据分布中,要存储的数据由分布实用程序12到14作为二进制数据对象29接收,即,上述分布实用程序知道数据对象29的尺寸(长度),但不知道它的结构(?)。数据对象29包括多个元素28,不再具体描述。用户启动应用程序30后,应用程序检测到需要位于远端数据库31的数据对象29的元素28。应用程序30向数据管理器15发送请求32。或者如果该应用程序是唯一访问相应数据的程序,则该应用程序可以包括数据管理器15。数据管理器15从请求32获得两个关键字,即分布实用程序关键字(VU关键字)33和数据管理器关键字(DM关键字)34,通过这两个关键字,可以从分布实用程序12得到需要的元素。
VU关键字是一个字节序列,用于标识数据对象29。在存储时,分布实用程序12到14分别借助一个VU关键字33在网络中存储数据对象29。VU关键字33的前两个字节指示了和需要的数据相关的回调部件20到24。这个前缀排除了不同回调部件20到24之间的冲突。剩余的字节任意。借助同一个VU关键字33存储的两个数据对象29是相同的,即它们包含相同的数据。
DM关键字34的句法对于产生的数据管理器15到19是特定的,因此,它对于要评估的回调部件20到24也是特定的。DM关键字34可以是无效的,或者数据管理器15-19应用上述关键字作为参数访问数据对象29的元素28,例如借助DM关键字发送一个属性而不是一个完整的数据对象,可以访问一个字段的元素或一个列表。DM关键字34的内容以字节序列的形式表示,由于这个原因,DM关键字34的内容不仅包括字段的索引,而且包括数据对象29的全部查询。DM关键字34的内容和句法可以自由地从各个数据管理器15到19中选择。
借助VU关键字33,本地网络节点1的分布实用程序12定位在远端网络节点2的包括所需元素28的数据对象29。利用VU关键字33和DM关键字34的查询从本地网络节点1的分布实用程序12转移到远端网络节点2的分布实用程序13。
远端分布实用程序13借助VU关键字33通过本地内存管理器26从数据库31中读取完整的数据对象29。当在这个网络节点2的和DM关键字34相关的回调部件可用时,数据对象29被分布实用程序13通过DM关键字34传递给回调部件21。借助DM关键字34,回调部件21识别出数据对象29中所需的元素,结果是仅仅是元素28而不是全部的数据对象29可以转移到分布实用程序13,然后转移到本地网络节点1的分布实用程序12中。
数据对象29的结构和内容对于分布实用程序12到14则是不可见的。如果远端网络节点2的分布实用程序13没有发现合适的回调部件21或者没有DM关键字转移到这个应用程序,分布实用程序13将整个数据对象29发送到本地网络节点1的分布实用程序12。然后分布实用程序12为了识别所需的元素28可能借助回调部件20评估DM关键字34。分布实用程序12将元素28转移给数据管理器15以后,数据管理器用恰当的信息35回复应用程序30。
图5显示了读操作中的操作时序。应用程序30从本地网络节点1的数据管理器15(DM1)请求信息。作为响应,数据管理器15向本地网络节点1的分布实用程序12(VU1)发送带有VU关键字33和DM关键字34的请求36。借助加到其上的VU关键字33,分布实用程序12定位在远端网络节点2的数据对象29,要读出的元素28保存其中,通过请求37分布实用程序从远端网络节点2的分布实用程序(VU2)13请求这个元素28。分布实用程序13向其本地内存管理器26(LSV2)发送带有VU关键字33的请求38。本地内存管理器26在回复39中向分布实用程序13转移包含请求的元素28的相应的数据对象29。分布实用程序13用DM关键字34完成该回复,并且向数据管理器12的回调部件(CK2)21递交请求40。该回调部件21评估DM关键字34,并且从数据对象29中提取出所需的元素28。在回复41中元素28从回调部件21转移到分布实用程序13。分布实用程序13通过分布实用程序12向本地网络节点1的数据管理器15发送回复41。
图6显示了写操作的操作时序。用户启动应用程序30,想要写数据并将所述数据保存在网络系统中。应用程序30向用户启动应用程序30的本地网络节点1上合适的数据管理器(DM1)15递交这个写指令。数据管理器15再次从这个指令中获得VU关键字33和DM关键字34,并结合请求42中元素28的新值将这些应用到本地网络节点1的分布实用程序(VU1)12。借助VU关键字33,这个分布实用程序12定位保存数据并且将要因此改变的远端网络节点2(或者多个网络节点)的分布实用程序(VU2)13。通过方法调用43,分布实用程序12请求远端网络节点2的分布实用程序13改变数据对象29。
通过请求44,分布实用程序13从网络节点2的本地内存管理器(LSV2)26请求与VU关键字33相联系的数据对象29。和读操作的方式相同,本地内存管理器26向分布实用程序14发送从数据库31找到的所需的数据对象29,作为回复45。分布实用程序13向数据管理器12的回调部件(CK2)21递交请求46,用发送的数值覆盖DM关键字34所确定的元素28。回调部件21用回调47向分布实用程序13返回因此而改变的数据对象29,在此,用于和数据对象29相关的写操作的请求48被发送给本地数据管理器26。通过回调49,本地内存管理器26确认自己作好了写的准备。接着,分布实用程序12和13例如执行一个2-阶段发送协议50的第二部分,在此,分布实用程序13表明已经准备好了向分布实用程序12写,并且在这一过程中,内存管理器(LSV2)26被要求实际执行写操作。数据管理器15通过回调51接收成功完成写操作的确认。
权利要求
1.一种网络,具有网络节点(1到5),以及分布在所有网络节点(1到5)之间的软件系统,所述软件系统-在每一个网络节点(1到5)有一个被称为分布实用程序(12到14)的软件部件,用于访问分布式数据库(31)的数据,并用于与不同网络节点的其他分布实用程序(12到14)之间的通信,-有至少一个被称为数据管理器(15到19)的软件部件,用作从数据库(31)到其他部件的链路,并且包括一个访问数据对象(29)的至少一个元素(28)的回调部件(20到24),以及-有一个由两个部分构成的关键字,第一个部分是供分布实用程序(12到14)识别数据对象(29)的分布实用程序关键字(33),第二个部分是标识数据对象(29)的至少一个所需的元素(28)的数据管理器关键字(34)。
2.如权利要求1所述的网络,其特征在于,借助回调部件(20到24),分布实用程序(12到14)用数据管理器(15到19)解释分布实用程序(12到14)所需的数据,数据管理器(15到19)用于产生和评价数据管理器关键字(34),以及数据管理器关键字(34)的句法和内容可以自由选择。
3.如权利要求2所述的网络,其特征在于,分布实用程序(12到14)用于重新整合失败的网络节点(1到5),并整合要加入网络的新的网络节点(1到5),以及分布实用程序(12到14)用于通过数据管理器(15到19)使用使所述实用程序有效的服务。
4.如权利要求3所述的网络,其特征在于,还有一个本地内存管理器(26到27),从同一个网络节点(1到5)的分布实用程序(12到14)接收改变其数据库(31)的请求。
全文摘要
一种网络,具有网络节点(1到5)和分布在所有网络节点(1到5)之间的软件系统,该软件系统在每一个网络节点(1到5)有一个称为分布实用程序(12到14)的软件部件,用于访问分布式数据库(31)的数据,并用于与不同网络节点的其他分布实用程序(12到14)之间的通信。一个称为数据管理器(15到19)的软件部件用作从数据库(13)到其他部件的链路,并且包括一个访问数据对象(29)的至少一个元素(28)的回调部件(20到24)。借助于一个由两部分构成的关键字,其中第一部分是供分布实用程序(12到14)识别数据对象(29)的分布实用程序关键字(33),第二部分是标识数据对象(29)的至少一个所需元素的数据管理器关键字(34),可以访问数据对象(29)和数据对象的单个元素(28)。
文档编号G06F17/30GK1339758SQ0113575
公开日2002年3月13日 申请日期2001年7月16日 优先权日2000年7月19日
发明者M·鲍梅斯特, S·豪普特曼, K·克拉邦德 申请人:皇家菲利浦电子有限公司