CN100426735C - 一种异构环境的分布式***及基于该***的通信方法 - Google Patents
一种异构环境的分布式***及基于该***的通信方法 Download PDFInfo
- Publication number
- CN100426735C CN100426735C CNB2004100659320A CN200410065932A CN100426735C CN 100426735 C CN100426735 C CN 100426735C CN B2004100659320 A CNB2004100659320 A CN B2004100659320A CN 200410065932 A CN200410065932 A CN 200410065932A CN 100426735 C CN100426735 C CN 100426735C
- Authority
- CN
- China
- Prior art keywords
- distribution node
- message
- unit
- communication
- switching unit
- 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.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及通讯领域的网管分布式***,提出了一种异构环境的分布式***及基于该***的通信方法,所述的分布式***包括具有消息交换协议单元的多个分布节点;具有多协议通讯单元,消息交换协议单元和消息交换单元的消息交换机。分布节点启动时,该分布节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯层协议与消息交换机建立通信连接,消息交换机根据分布节点的名字及通信链路地址对分布节点建立名字地址表。本发明所述的通信方法是基于本发明所述的分布式***,只需知道目标节点的名字源节点就可以与目标节点通信。采用本发明所述的方法建立的分布式计算***,可以以最少的通讯链路实现分布式计算环境,所以简单有效,容易构建。
Description
技术领域
本发明涉及通讯领域的网管分布式***,尤其涉及一种异构环境的分布式***及基于该***的通信方法。
背景技术
计算机技术迅速发展,应用程序的规模不断扩大,集中式的计算***将不能满足日益增长的计算需求。另外许多应用程序需在网络环境的异构平台上运行。这一切都对新一代的分布计算提出了新的需求。在这种分布异构环境中,通常存在多种硬件***平台(如PC,工作站,小型机等),在这些硬件平台上又存在各种各样的***应用,这些硬件***平台还可能采用不同的网络协议和网络体系结构连接。如何把这些***集成起来并开发新的分布应用是一个非常现实而且也很困难的事情。
为解决分布异构问题,人们提出了中间件(middle-ware)的概念。中间件是位于平台(硬件和操作***)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作***和硬件平台,它们可以有符合接口和协议规范的多种实现。
对于分布***,中间件远比操作***和网络服务更为重要,中间件提供的接口定义了一个相对稳定的高层分布应用环境,不管底层的计算机硬件和***软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,分布应用几乎不需任何修改,从而保护了企业在分布应用开发和维护中的重大投资。
所以,大规模计算需要分布式技术,而中间件是一个较好的选择。
分布计算需要中间件,由此许多中间件应运而生,其中最有名的当属CORBA(CommonObject Request Broker Architecture,公用对象请求代理(调度)程序体系结构),应用较为广泛。中间件能够屏蔽操作***和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”,中间件的使用还存在一些问题,中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用只能建立于单一厂家的产品,来自不同厂家的产品很难实现互操作。有些中间件服务只提供一些平台的实现,从而限制了在异构***之间的移植。所以应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的***。所以,简单、有效、易维护的分布式中间件更符合应用的需求。
另外现有的分布式***要求所有的分布节点使用相同的底层协议,对使用不同底层协议的分布***不能实现整合。
在通讯网管应用中,随着网络规模的不断扩张,网管的管理能力受到了前所未有的挑战,集中网络管理的需求越来越紧迫,网管的管理容量和效率均已成为用户关心的焦点。基于集中式计算的网管应用由于硬件资源的限制,其管理规模和管理效率均存在一定的问题,已不能满足大规模网络的管理需求,随着近几年的发展,将分布式计算***应用于通讯网络管理中已成为趋势。通讯网络管理***以网元主控***,网络管理***构成,网元主控***位于通讯设备内,由于各制造商的技术实现不同,通讯协议多种多样,网络管理***需要和这些多种多样的网元主控***进行互连。网络管理***本身也是一个分布计算环境,***的实现不同导致协议也有差异,但***间也需要进行互连。现有的实现方式通常是在各互连接口处理进行协议转换,有多少个互连接口就要做多少个互连协议转换工作,导致现有通讯网络管理***异常复杂。基于以上背景,在通讯网管中需要一种简单、易于维护而且高效的异构环境的分布式***。
发明内容
本发明的目的是为了克服现有技术中集中式计算的网管***的容量及效率问题以及分布式***所使用的各种各样的协议不能互连互通的缺点,而提供一种简单、易于维护、可扩展且高效的分布式***能够实现异构环境分布计算的互连接。
为了达到上述所说的目的,本发明所述的异构环境的分布式***由多个分布节点和消息交换机组成。各分布节点包括消息交换协议单元;消息交换机由多协议通讯单元、消息交换协议单元和消息交换单元组成。其中多协议通讯单元是用于实现消息交换机按各分布节点的通讯层协议与各分布节点进行互连的适配单元;消息交换协议单元实现消息交换协议的封装,用来与各分布节点进行协议互连;消息交换单元根据消息交换协议内容进行分析,分发指定的通信链路。
分布节点启动时,该分布节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯层协议与消息交换机建立通信连接,消息交换机根据分布节点的名字及通信链路地址对该分布节点建立名字地址表。
为了达到所述发明目的,本发明提出的一种基于该分布式***的通信方法如下:
(1)源分布节点启动,该分布节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯层协议与消息交换机建立通信连接;
(2)消息交换机根据源分布节点的名字和通信链路的地址,对源分布节点建立名字地址表;
(3)源分布节点中的消息交换协议单元按照源分布节点的通讯层协议对数据进行协议封装,并将封装好的数据按照源分布节点通讯层协议发送到消息交换机;
(4)消息交换机收到数据后,多协议通讯单元中的通讯层按照源分布节点的通讯层协议解析数据。
将剥离通讯层协议后的数据交给消息交换机中的消息交换协议单元,消息交换协议单元按消息交换协议解析数据,将剥离消息交换协议后的数据交给消息交换单元;
(5)消息交换单元收到数据后,根据目标分布节点的名字,在名字地址表中查找目标分布节点的地址,把数据发给消息交换机中的对应的消息交换协议单元;
(6)消息交换机中的消息交换协议单元按照消息交换单元的要求将数据按照目标分布节点的通讯层协议将数据封装发送到目标分布节点;
(7)目标分布节点收到协议报文后,通讯层解析数据,将剥离通讯层协议后的数据交给分布节点中的消息交换协议单元,消息交换协议单元解析协议报文后,将数据交给其应用层。
采用本发明所述的方法建立的分布式计算***,与现有技术相比,只需要一个消息交换机,就可以以最少的通讯链路实现分布式计算环境,所以简单有效,容易构建;另外,本发明支持多种通讯层协议互连,新增通讯层协议只需要增加相应的通讯模块而不影响原有***,支持动态分布节点配置,增删分布节点也不影响原有***,因而扩展性强。
附图说明
图1是异构环境的分布式***架构示意图;
图2是以总线的方式观点看异构环境的分布式***架构示意图;
图3是四种通讯层协议构建的异构环境分布计算***;
图4是分布计算流程图。
具体实施方式
以下结合附图对本发明所述的方法作进一步的详细说明。
如图1所示,分布节点包括各分布计算***增加的消息交换协议单元,其中至少有两个分布节点的通讯层协议不相同,所增加的消息交换协议单元实现消息交换协议的封装,用来与消息交换机进行协议互连。
消息交换机由多协议通讯单元,消息交换协议单元和消息交换单元组成。多协议通讯单元由多种通讯层模块组成,实现消息交换机按照各分布节点的通讯层协议与各分布节点进行互连的适配单元,通过该单元,分布式***对于使用不同通讯层协议的分布节点实现了协议的转换和互连;消息交换协议单元实现消息交换协议的封装,用来与各分布节点进行协议互连;消息交换单元根据消息交换协议内容进行分析,分发指定链路。分布节点启动时,该分布节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯层协议与消息交换机建立通信连接,消息交换机根据分布节点的名字及通信链路地址对该分布节点建立名字地址表。
一个分布节点向另一个分布节点发送数据或者向所有分布节点广播数据时,先在该分布节点内将数据由数据交换协议单元封装,再按照该分布节点的通讯层协议封装,发送到消息交换机,消息交换机收到数据后,剥离通讯层协议,分析消息交换协议,由消息交换单元进行数据交换,分发到指定的通讯链路。这样通过该***,实现了分布计算及通讯层协议转换。
在一个分布环境中,可以同时存在多种通讯层协议,但在一个通讯链路两端的通讯层协议要求相同;消息交换协议单元实现消息交换协议的封装,每个消息交换协议单元都有一个名字和地址,名字和地址在整个分布环境中是唯一的,名字由分布节点确定,地址由消息交换机分配,分布节点通过名字与其它分布节点交互;消息交换机是分布式环境的核心,主要实现与各个分布节点连接,以各种机制来维护连接,将各个分布节点的消息按名字查找对应的地址进行交换发送。通过消息交换机的连接,将各个分布应用连接在一起构成了如图2所示的虚拟总线结构,但其中的通讯链路较少,减少了面向连接通讯的维护工作。
在一个异构的平台环境下,可以由多种硬件***,多种操作平台,多种通讯层协议通过消息交换机这个中间件构建一个分布式的计算环境,参见图3,如其中的实施例所示,该分布式计算***由一个消息交换机和四个分布节点组成。消息交换机由消息交换单元、消息协议单元和多协议通讯单元组成,本实施例采用了CMIP(Common Management InformationProtocol,通用管理信息协议)、RMI(Remote Method Invocation,远程方法调用)、IIOP(InternetInter-ORB Protocol,网际网络ORB间协议)、串口通讯这四种通讯层协议模块构成的多协议通讯单元。分布节点为A、B、C、D:分布节点A由消息协议单元、应用层及CMIP通讯层组成;分布节点B由消息协议单元、应用层及RMI通讯层组成;分布节点C由消息协议单元、应用层及IIOP通讯层组成;分布节点D由消息协议单元、应用层及串口通讯层组成。分布节点A、B、C、D分别与消息交换机建立通讯链路。下面按照前面技术方案中所述来建立分布计算***。对于通讯层,可以使用不同的通讯层协议,在消息交换机中集成不同的通讯层协议,就可以把不同通讯层协议的分布节点连接在一起构成分布计算***。
定义消息交换协议格式如下所示:
起始标志(8bits) |
目的名字(32bits) |
源名字(32bits) |
序列号(32bits) |
校验位(8bits) |
数据区长度值(32bits) |
数据区 |
结束标志(8bits) |
定义消息交换机中的地址表如下所示:
名字 | 通信链路地址 | 当前通讯状态 | 通讯异常时间 |
其中的名字是各个分布节点的名字,通信链路地址为对应的消息交换协议单元的地址,当前通讯状态有正常和异常两种状态,通讯异常时间为通讯异常状态持续的时间。当通讯异常时,将尝试进行通讯恢复,如果恢复成功则通讯异常时间清零,如果没有恢复,则通讯异常时间记录从异常发生后到当前的时间。通讯异常时间达到一定的阈值后,消息交换机将删除该分布节点的地址。
先进行***初始化,包括硬件***启动,基层通讯分布节点初始化。
启动消息交换机,消息交换机启动后建立各种通讯层协议的侦听端口,等待分布节点的连接。
每个分布节点设定一个名字,按照分布节点实现的功能定义名字,在本实施例中定义为A、B、C、D。在分布节点的应用运行时,由应用将分布节点的名字设置到消息交换协议单元中。
分布节点要与消息交换机进行通讯,需要知道消息交换机的地址,在分布节点运行时,由应用层将消息交换机的地址设置到消息交换协议单元中,根据通讯层协议的不同,地址格式不同,因为一个分布节点与消息交换机的通讯层协议只有一种,所以只需要设置一种地址即可。
地址设置完成后,分布节点的消息交换协议单元启动通讯层与消息交换机进行连接,消息交换机在收到连接请求时,在消息交换机的地址表中增加新接入的分布节点名字和对应分配的地址。
当各个分布节点都完成与消息交换机的连接后,分布环境搭建完毕,在消息交换机中形成了一个动态的地址表。分布节点可以动态加入,不限于在启动时加入,这与应用相关,在此不详述。
分布环境建立后,当一个分布节点要与另一分布节点进行消息交互时,需要先知道目标分布节点的名字,这可以通过命名服务等方式来管理,这不是本发明的范畴,在此不详述。
参见图4,A分布节点要与C分布节点进行通讯需要通过以下步骤:
(1)分布节点A启动,该分布节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯层协议与消息交换机建立通信连接;
(2)A分布节点将需要通信的数据和目标分布节点C的名字交给A分布节点的消息交换协议单元;
(3)A分布节点的消息交换协议单元按照A分布节点的通讯层协议对数据进行协议封装,并将封装好的数据按A节点的通讯层协议即CMIP发送到消息交换机;
(4)消息交换机收到数据后,多协议通讯单元中的通讯层按照CMIP解析数据,将剥离通讯层协议后的数据交给消息交换机中的消息交换协议单元,该消息交换协议单元解析数据中的消息交换协议后交数据给消息交换单元;
(5)消息交换单元收到数据后,根据目标名字C,在地址表中查找目标分布节点C的地址,把数据发给消息交换协议单元;
(6)消息交换协议单元按照消息交换单元要求将数据按照目标分布节点C的通讯层协议IIOP将数据封装发送到目标分布节点C;
(7)目标分布节点C收到协议报文,通讯层按照通讯层协议IIOP解析数据,将剥离通讯层协议后的数据交给其消息交换协议单元,消息交换协议单元解析协议报文,并将数据交给其应用层。完成数据的传送过程。
当目标分布节点C需要进行应答时,可按照该分布节点接收到A分布节点发送数据的步骤进行应答。
在以上过程中,任意一步失败,均需要通知发送方失败信息
这里要说明的是,协议封装后的报文还需要根据所使用的具体通讯层协议再次按通讯层协议封装。这不是本发明的范畴,在此不详述。
Claims (7)
1、 一种异构环境的分布式***,其特征在于:
多个分布节点,包括消息交换协议单元;
消息交换机,包括多协议通讯单元,消息交换协议单元和消息交换单元;其中多协议通讯单元是用于实现消息交换机按各分布节点的通讯协议与各分布节点进行互连的适配单元;该消息交换机的消息交换协议单元实现消息交换协议的封装,用来与各分布节点进行协议互连;消息交换单元根据消息交换协议内容进行分析,分发指定的通信链路;
每个分布节点启动时,该节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯协议与消息交换机建立通信连接,消息交换机根据分布节点的名字及通信链路地址对该节点建立名字地址表。
2、 根据权利要求1所述的***,其特征在于:消息交换机中的名字地址表包括名字、通信链路地址、当前通讯状态、通讯异常时间4个参数,其中的名字是各个分布节点的名字,通信链路地址为对应的分布节点中的消息交换协议单元的地址,当前通讯状态有正常和异常两种状态,通讯异常时间为通讯异常状态持续的时间,当通讯异常时,将尝试进行通讯恢复,如果恢复成功则通讯异常时间清零,如果没有恢复,则通讯异常时间记录从异常发生后到当前的时间。
3、 根据权利要求2所述的***,其特征在于:当通讯异常时间达到一定的阈值后,消息交换机将删除该分布节点在消息交换机的名字地址表中的地址信息。
4、 根据权利要求1、2或3所述的***,其特征在于:当有新分布节点运行时,将消息交换机的地址设置到该分布节点的消息交换协议单元中,分布节点的消息交换协议单元启动通讯层与消息交换机进行连接,消息交换机在收到连接请求时,在消息交换机的名字地址表中增加新接入的分布节点名字和对应分配的通信链路地址。
5、 一种异构环境分布式***中的通信方法,其特征在于,包括以下步骤:
(1)源分布节点启动,该源分布节点的消息交换协议单元向消息交换机注册,按照该分布节点的通讯层协议与消息交换机建立通信连接;
(2)消息交换机根据源分布节点的名字和通信链路的地址,对源分布节点建立名字地址表;
(3)源分布节点中的消息交换协议单元按照源分布节点的通讯层协议对数据进行协议封装,并将封装好的数据按照源分布节点通讯层协议发送到消息交换机;
(4)消息交换机收到数据后,多协议通讯单元中的通讯层按照源分布节点的通讯层通讯协议解析数据,将剥离通讯层协议后的数据交给消息交换机中的消息交换协议单元,消息交换协议单元按照消息交换协议解析数据,将剥离消息交换协议后的数据交给消息交换单元;
(5)消息交换单元收到数据后,根据目标分布节点的名字,在名字地址表中查找目标分布节点的地址,把数据发给消息交换机中的对应的消息交换协议单元;
(6)消息交换机中的消息交换协议单元按照消息交换单元的要求将数据按照目标分布节点的通讯层协议将数据封装发送到目标分布节点;
(7)目标分布节点收到协议报文后,通讯层解析数据,将剥离通讯层协议后的数据交给该目标分布节点中的消息交换协议单元,消息交换协议单元解析协议报文后,将数据交给其应用层。
6、 根据权利要求5所述的方法,其特征在于:任意一步失败,均需要通知发送方失败信息。
7、 根据权利要求5所述的方法,其特征在于:当目标分布节点需要进行应答时,可按照接收到源分布节点发送数据的步骤进行应答。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100659320A CN100426735C (zh) | 2004-12-24 | 2004-12-24 | 一种异构环境的分布式***及基于该***的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100659320A CN100426735C (zh) | 2004-12-24 | 2004-12-24 | 一种异构环境的分布式***及基于该***的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1798050A CN1798050A (zh) | 2006-07-05 |
CN100426735C true CN100426735C (zh) | 2008-10-15 |
Family
ID=36818846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100659320A Active CN100426735C (zh) | 2004-12-24 | 2004-12-24 | 一种异构环境的分布式***及基于该***的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100426735C (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001091379A1 (en) * | 2000-05-23 | 2001-11-29 | Sbc Technology Resources, Inc. | Atm-based distributed network switching system |
US6396820B1 (en) * | 1997-06-24 | 2002-05-28 | Lucent Technologies Inc. | Wireless telecommunications system for improving performance and compatibility |
CN1433193A (zh) * | 2001-12-22 | 2003-07-30 | Lg电子株式会社 | 使交换***网络互通的设备和方法 |
CN1487700A (zh) * | 2001-03-10 | 2004-04-07 | 华为技术有限公司 | 互通代理装置及不同协议网络之间进行互通的***和方法 |
-
2004
- 2004-12-24 CN CNB2004100659320A patent/CN100426735C/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6396820B1 (en) * | 1997-06-24 | 2002-05-28 | Lucent Technologies Inc. | Wireless telecommunications system for improving performance and compatibility |
WO2001091379A1 (en) * | 2000-05-23 | 2001-11-29 | Sbc Technology Resources, Inc. | Atm-based distributed network switching system |
CN1487700A (zh) * | 2001-03-10 | 2004-04-07 | 华为技术有限公司 | 互通代理装置及不同协议网络之间进行互通的***和方法 |
CN1433193A (zh) * | 2001-12-22 | 2003-07-30 | Lg电子株式会社 | 使交换***网络互通的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1798050A (zh) | 2006-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031789B2 (en) | Generic distributed processing for multi-agent systems | |
CN100496015C (zh) | 在多节点智能网络应用服务***中实现剪贴板共享的方法 | |
CN101883039A (zh) | 大规模集群***的数据传输网络及其构建方法 | |
CN101686145A (zh) | 一种具有升级功能的设备、升级方法及*** | |
CN1717658A (zh) | 集群***的心跳机构 | |
JP2002507024A (ja) | メッセージ変換装置および方法 | |
CA2532777A1 (en) | System, method, and computer program product for centralized management of an infiniband distributed system area network | |
CN103036736A (zh) | 一种基于数据源的组态化设备监控***及方法 | |
CN101404630B (zh) | 互联网业务接入网关的实现方法和*** | |
CN106790084A (zh) | 一种基于ice中间件的异构资源集成框架及其集成方法 | |
CN101945026B (zh) | 控制局域网络中应用层数据传输方法和控制局域网络*** | |
CN101739295A (zh) | 基于进程调用扩展程序的方法和装置 | |
CN101631134A (zh) | 用于分布式计算环境的网络消息交换服务管理器 | |
Hung et al. | Development of an Ethernet-based equipment integration framework for factory automation | |
CN213693769U (zh) | 一种基于容器技术的分布式产权交易*** | |
CN100426735C (zh) | 一种异构环境的分布式***及基于该***的通信方法 | |
CN104270453A (zh) | 一种多级服务器间数据通信方法及服务器 | |
Syriani et al. | Modelling and simulation-based design of a distributed devs simulator | |
CN112559472B (zh) | 一种文件传输方法、装置、计算机设备及存储介质 | |
CN108491279A (zh) | 一种基于对象机制的分布式***进程间通讯方法 | |
CN103685404B (zh) | 网络服务***及其更新固件的方法 | |
CN101668030A (zh) | 命名服务数据的更新方法、装置及*** | |
CN101179850A (zh) | 一种在基站实现非同步无线链路重配的方法 | |
CN101547145B (zh) | Rip动态路由协议路由快速收敛的方法 | |
CN100570553C (zh) | 用于提供在一对应用程序之间的动态交互的终端和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |