首页> 中国专利> 用多数据类型表示来传送数据对象的方法和系统

用多数据类型表示来传送数据对象的方法和系统

摘要

本发明公开了在分布式系统中使用多个数据对象表示将数据对象传送给组件的方法和系统。网络中的节点接收数据对象并生成通用容器数据类型表示。所接收的数据对象中的数据被映射成一个或多个基本数据项,例如整数、浮点数和字节,然后被放入该容器数据类型表示中。基于容器中的内容将一个注释赋予所述容器数据类型表示。该节点判断判断与容器数据类型表示相对应的本地数据类型表示是否可用。如果本地数据类型表示可用,则节点将数据对象转换成本地数据类型表示。然后节点将此本地数据类型表示发送给驻留在节点内的组件。如果本地数据类型表示不可用,则节点将容器数据类型表示或者将容器数据类型表示和不完全的本地数据类型表示发送给组件。

著录项

  • 公开/公告号CN1604529A

    专利类型发明专利

  • 公开/公告日2005-04-06

    原文格式PDF

  • 申请/专利权人 安捷伦科技有限公司;

    申请/专利号CN200410048742.8

  • 申请日2004-06-15

  • 分类号H04L12/00;

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人王怡

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 16:00:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-09-01

    未缴年费专利权终止 IPC(主分类):H04L12/00 授权公告日:20080312 申请日:20040615

    专利权的终止

  • 2008-03-12

    授权

    授权

  • 2006-03-01

    实质审查的生效

    实质审查的生效

  • 2005-04-06

    公开

    公开

说明书

技术领域

本发明一般地涉及分布式软件系统和网络,更具体地涉及使用基于文本的编码以在网络上传送数据对象。更具体地,本发明涉及在分布式系统中使用多种数据类型表示以将数据对象传送给组件的方法和系统。

背景技术

最近以及正在进行的分散型网络和分布式系统中的创新已经引起更多地使用基于文本的编码以在网络上传送数据对象。数据对象一般包括数据项的集合,还可以包括与特定数据相关联的行为或代码。在一些编程语言中,例如C++和Java,数据对象也被“归类”。数据对象的“类型”规定了对象包含的数据项以及它能够进行的操作。数据对象的文本表示被用来在网络上传送数据对象中的信息。网络中的每个节点必须能够将文本表示转换成可以被驻留在该节点内的一个或多个组件所使用的格式。节点一般包括多种类型的计算设备。

图1a是根据现有技术的第一种类型的数据对象转换的数据流程图。特定类型(逻辑类型100)的数据对象被转换为本地数据类型表示102。本地数据类型表示是指可以被底层软件环境使用的本地格式,例如本地二进制格式。一个例子是可以在Java虚拟机上执行的Java字节码(Java bytecode)。每个不同类型的数据对象可以有自己唯一的二进制表示,并且分布式网络中的节点包括如何将数据对象表示为本地格式的指令。

不幸的是,在例如分布式测量系统的松散耦合分布式网络中,该网络中的接收节点可以在发送节点产生前建立和配备。当配备较新的发送节点时,它可能包含网络中已有的节点不知道的新的数据对象类型。因此,较早的接收节点不可能包括所有必需的指令以将从较新的发送节点接收的全部逻辑类型100转换成本地数据类型表示102。较早的接收节点必须用额外的指令进行更新以从较新的发送节点接收数据对象。

为了避免需要在网络中更新节点,一些分布式系统使用在图1b的数据流程图中示出的第二类型数据对象转换。网络中的每个节点使用固定的对象编码集合,以将逻辑类型100转换成通用容器数据类型表示104。在此表示方案中,通过将数据对象的组成基本数据项聚合到已知类型的容器数据结构中来表示该数据对象,所述已知类型的容器数据结构例如是数组或向量。使用通用容器数据类型表示的数据模型的一个例子是IEEE1451.1规范。通过使用固定的基本数据项集合来创建任意数据对象,避免了将新的数据类型引入到已建立的网络中的问题。基本数据项包括计算设备辨识的整数、浮点数和字节。

然而,因为通用容器数据类型表示104在编译时不能被归类,因此通用容器数据类型表示104不能提供与本地数据类型表示102所提供的相同的设计能力和支持。因此,支持通用容器数据类型表示的系统丧失了进行静态类型检查的能力。此外,因为相同的容器类型被用于表示多种逻辑数据类型,因此这些系统不能将特定类型的功能(behavior)与容器相关联。

发明内容

根据本发明,提供了在分布式系统中使用多个数据类型表示将数据对象传送给组件的方法。网络中的节点接收数据对象并生成通用容器数据类型表示。所接收的数据对象中的数据被映射成一个或多个基本数据项,例如整数、浮点数和字节,然后被放入诸如数组的容器中。基于容器中的内容将注释或标识符赋予所述容器数据类型表示。该节点判断与容器数据类型表示相对应的本地数据类型表示在该节点是否可用。如果本地数据类型表示可用,则节点将数据对象转换成本地数据类型表示。然后节点将此本地数据类型表示发送给驻留在节点内的组件。

在根据本发明的一个实施例中,当节点内不存在本地数据类型表示时,节点将容器数据类型表示发送给组件。在根据本发明的另一个实施例中,当本地数据类型表示不可用时,节点判断容器数据类型表示中的一些或全部数据是否能够被转换成不完全的本地数据类型表示。如果数据不能被转换成不完全的本地数据类型表示,节点将容器数据类型表示发送给组件。然而,如果数据可以被转换成不完全的本地数据类型表示,则节点将认识的数据转换成不完全的本地数据类型表示。节点将此不完全的本地数据类型表示发送给驻留在节点内的组件。节点还可以将容器数据类型表示与不完全的本地数据类型表示一起发送给组件。

附图说明

通过参考以下对根据本发明的实施例的详细描述并结合附图,可以最好地理解本发明,在附图中:

图1a是根据现有技术的第一类型数据对象转换的数据流程图;

图1b是根据现有技术的第二类型数据对象转换的数据流程图;

图2是根据本发明实施例的数据流程图;

图3是根据本发明的第一实施例中用于接收数据对象的方法的流程图;

图4是根据本发明的第二实施例中用于接收数据对象的方法的流程图;

图5是根据本发明的第三实施例中用于发送数据对象的方法的流程图;

图6是根据本发明的第一节点的框图;

图7是根据本发明的第二节点的框图;

图8是根据本发明的第三节点的框图。

具体实施方式

本发明涉及在分布式系统中使用多种类型表示以将数据对象传送给组件的方法和系统。给出以下描述以使得本领域技术人员能够做出并使用本发明,并且描述是在专利申请及其要求的上下文中提供的。对所公开实施例的各种修改对本领域技术人员而言是显而易见的,并且此处的通用原理可以应用到其他实施例。因此,本发明无意被限制在所示出的实施例,而是与所附权利要求和此处描述的原理与特征一致的最广泛的范围相符。

现在参考附图,具体而言参考图2,示出了根据本发明一个实施例的数据流图。逻辑数据类型100被映射成多个物理类型表示。根据本发明这个实施例,多个物理类型表示包括通用容器数据类型表示104和不同的本地数据类型表示202、204、206。不同的本地数据类型表示包括但不限于C++对象类型和Java对象类型。每个本地数据类型表示可以被转换成容器数据类型表示,而容器数据类型表示可以转换成一个或多个本地数据类型表示。

图3是在根据本发明第一实施例中用于接收数据对象的方法的流程图。节点接收数据并解码网络传送格式,如方框300所示。网络传送格式包括但不限于包括头部和有效载荷的数据帧,其中所述有效载荷一般包括数据对象的集合,以及基于XML协议的网络编码。

创建通用容器数据类型表示的一个实例,以容纳数据对象,如方框302所示。然后在方框304处用一个注释或者说标识符,来标记所述容器数据类型表示。根据本发明此实施例的注释是人可读的字符串,以注释所述容器数据类型表示的逻辑类型。容纳相同类型数据项和数据项实例的容器被赋予同样的注释,而容纳不同类型数据项和数据项实例的容器被赋予不同的注释。使用容器的注释和内容,在方框306处做出该节点是否具有与注释和容器内容相对应的本地数据类型表示的判断。

如果该节点不具有相对应的本地数据类型表示,该过程进行到方框308,在该处容器数据类型表示被传送给该节点内的组件。组件包括可以访问或使用容器数据类型表示和/或本地数据类型表示内的数据项的任何程序或设备。在根据本发明的此实施例中,组件可以选择接受容器数据类型表示中或本地数据类型表示中的数据。

例如,在根据本发明的那些组件能够作用于各种数据的实施例中,系统设计者可能希望组件接受通用容器数据类型表示中的数据。在根据本发明的其他实施例中,组件可能只能作用于特定类型的数据,或者它可能要求与特定数据相关联的动作或代码。在这些实施例中,系统设计者可能希望组件接受本地数据类型表示中的数据。

再次参考方框306,如果节点具有与注释和容器内容对应的本地数据类型表示,在方框310处做出该节点内的组件是否选择接收此本地数据类型表示的判断。如果否,则在方框308处容器数据类型表示被发送给该组件。然而如果该组件选择接收此本地数据类型表示,则该容器内的数据字段被提取并转换成本地数据类型表示(方框312和314)。此本地数据类型表示于是在方框308处被发送给组件。

图4是在根据本发明的第二实施例中用于接收数据对象的方法的流程图。节点接收数据并解码网络传送格式,如方框400所示。创建通用容器数据类型表示的一个实例以容纳数据对象,并注释该容器数据类型表示,如方框402所示。

通过使用容器数据类型表示的内容和注释,在方框404处做出该节点是否具有与注释和容器内容相对应的本地数据类型表示的判断。如果节点具有与注释和容器内容对应的本地数据类型表示,在方框406处做出该节点内的组件是否选择接收此本地数据类型表示的判断。如果否,则在方框408处容器数据类型表示被发送给该组件。然而如果该组件选择接收此本地数据类型表示,则该容器内的数据字段被提取并转换成本地数据类型表示(方框410)。此本地数据类型表示于是被发送给组件(方框408)。

返回方框404,如果该节点不具有与注释和容器内容对应的本地数据类型表示,则在方框412处做出该节点是否认识此容器数据类型表示中的一些或全部内容的判断。当一些或全部数据字段可以被转换成不完全的本地数据类型表示时,节点“认识”内容。不完全的本地数据类型表示是并非本地数据类型表示中的全部数据字段都被初始化的表示。如果节点不认识一些或全部内容,则过程进行到方框408,在该处此容器数据类型表示被传送给组件。

然而,如果节点认识一些或全部容器内容,则在方框414处做出组件是否选择接收多个数据类型表示的判断。如果组件选择接收多个数据类型表示,则节点所认识的全部或部分内容被转换成不完全的本地数据类型表示(方框416)。根据本发明的本实施例,容器数据类型表示继续存储所有的内容。然后多个数据类型表示(即容器数据类型表示和不完全的本地数据类型表示)被传送给组件(方框408)。

再次返回方框414,如果组件不选择接收多个数据类型表示,则在方框418处做出组件是否希望接收不完全的本地数据类型表示的判断。如果组件选择接收不完全的本地数据类型表示,则节点所认识的全部或部分容器内容被转换成不完全的本地数据类型表示(方框420)。此不完全的本地数据类型表示于是被发送给组件。然而,如果组件不希望接收不完全的本地数据类型表示,则该容器数据类型表示被发送给组件。

然而,本发明不限于图3和图4所示的实施例。根据本发明的其他实施例可以省略这些图中所示的部分步骤。此外,这些步骤中的部分或全部可以以与图3和图4中所描述的顺序不同的顺序来实现。

图5是根据本发明第三实施例用于发送数据对象的方法的流程图。在方框500处做出数据是否存储在通用容器数据类型表示中的判断。如果数据容纳在容器数据类型表示中,则在网络上发送此容器数据类型表示(方框502)。

然而,如果数据没有容纳在通用容器数据类型表示中,则过程进行到方框504,在该处将数据字段从对象中提取出来。创建通用容器数据类型表示以容纳数据,并注释该容器数据类型表示(方框506和508)。根据本发明的此实施例中的注释是人可读的字符串,以注释所述容器数据类型表示的逻辑类型。然后在网络上发送此容器数据类型表示(方框502)。

现在参考图6,示出了根据本发明的第一节点的框图。节点600包括接口602和组件604。节点600从网络接收数据,而接口602创建通用容器数据类型表示以容纳该数据。然后接口602判断节点600是否具有与该容器数据类型表示相对应的本地数据类型表示。在根据本发明的此实施例中,节点600具有与该容器数据类型表示相对应的本地数据类型表示。接口602从容器数据类型表示提取数据字段,并将该数据字段转换成本地数据类型表示。然后接口602将此本地数据类型表示发送给组件604。

图7是根据本发明的第二节点的框图。节点700包括接口702和组件704。节点700从网络接收数据,而接口702创建通用容器数据类型表示以容纳该数据。然后接口702判断节点700是否具有与该容器数据类型表示相对应的本地数据类型表示。在根据本发明的此实施例中,节点700不具有与该容器数据类型表示相对应的本地数据类型表示。节点700然后确定其是否认识此容器数据类型表示中的一些或全部内容。然而,节点700不认识此容器数据类型表示中的任何内容。因此,接口702将此容器数据类型表示发送给组件704。

现在参考图8,示出了根据本发明的第三节点的框图。节点800包括接口802和两个组件804、806。节点800从网络接收数据,而接口802创建通用容器数据类型表示以容纳该数据。节点800不具有与该容器数据类型表示相对应的本地数据类型表示,但节点800认识此容器数据类型表示中的一些内容。组件804已经选择接收此通用容器数据类型表示中的数据,因此接口802将此容器数据类型表示发送给组件804。与组件804不同,组件806选择接收不完全的本地数据类型表示。因此接口802提取此容器中的认识的数据,并将这些数据转换成不完全的本地数据类型表示。然后接口802将此不完全的本地数据类型表示发送给组件806。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号