CN101534263A - 一种消息交互的方法、系统和设备 - Google Patents
一种消息交互的方法、系统和设备 Download PDFInfo
- Publication number
- CN101534263A CN101534263A CN200910135801A CN200910135801A CN101534263A CN 101534263 A CN101534263 A CN 101534263A CN 200910135801 A CN200910135801 A CN 200910135801A CN 200910135801 A CN200910135801 A CN 200910135801A CN 101534263 A CN101534263 A CN 101534263A
- Authority
- CN
- China
- Prior art keywords
- message
- channel
- address information
- message interacting
- interacting channel
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种消息交互方法、系统和装置。该方法包括:在位于不同服务区域的多个服务模块SM之间构架消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;通过所述消息交互通道实现不同服务模块SM之间的通信。本发明中,通过在服务模块SM之间构架多种消息交互通道,实现了多层次和多类型的消息交互架构,使得应用系统中服务模块之间的交互更加灵活,提高了服务模块之间的交互效率,实现了高可靠性和高性能的通信。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种消息交互的方法、系统和设备。
背景技术
在各类大型应用系统中,应用系统通常提供大量的功能,这些功能由各个分散的应用程序独立或者交互来完成。系统越复杂,通常进程数量越多,一个任务需要进程的协作也越多。相应的,进程内部和进程之间的交互关系和次数也越多。
在进程内部和进程之间的构建统一的消息总线,提供高效可靠的消息通讯机制是大型应用系统中必不可少的基础程序实施之一。消息总线不仅能够负责一个计算机系统内进程间的通讯,同时也要跨网络的、跨多种操作平台、各种异构应用服务进程之间的通讯。
在众多的消息总线模型中,既有CORBA(Common Object Request BrokerArchitecture,公共对象请求代理体系结构)、DCOM(Distributed ComponentObject Model,分布式组件对象模型)这样的重量级的服务体系结构,也有用进程之间采用原始的TCP(Transmission Control Protocol,传输控制协议)/IP(Internet Protocol,因特网协议)、SIP(Session Initiation Protocol,会话发起协议)进行通讯的底层模型。前者的重点放在服务的注册、感知和访问上,而后者的重点放在消息封装和分发上。目前对于总线的拓扑设计并没有详细设计和约定。这种情况造成不少系统从应用开发角度虽然得到了简化,但系统的执行效率、可靠性上没有得到有效的保证。
现有技术中提出了一种星型的总线模型iMF(Intelligent Message Frame,智能消息框架),解决了多服务进程互相协作时,存在N*N种海量连接的问题。
iMF是以iMG(Intelligent Message Gateway,消息发送网关)为中心的星型通信结构,每个SP(Service Process,应用服务进程)都与iMG建立连接。SP与iMG之间通过TCP通信,它们可以在同一台机器上,也可在不同的机器上。iMF的一示意图如下图1所示。
该技术中,在开发业务时,为每个SP分配一个静态进程ID,进程内部划分为若干SM(Service Module,服务模块),每个服务模块也分配一个静态模块ID。系统初始化时,每个SP注册到充当BP(Bus Process,总线进程)角色的iMG,并告知iMG自身的进程ID。当SP内部的不同SM需要交互时,消息直接发送到目的SM。当SM需要发送消息给其它SP的SM时,首先消息发送给BP,BP收到消息后,根据目的SP的进程ID把消息发送给目的SP。目的SM在收到消息后,根据SM的模块ID分发给目的SM。如果目的SM需要返回响应消息,则消息顺着相反的路径达到源SM。图1中的粗线表示了以上描述的消息传递路径。
现有技术中存在的问题在于:单中心的星型结构成为协作类任务的单一故障点。如果是需要用户参与的界面应用,则用户客户端也是通过iMG访问服务时,一旦iMG故障,用户将无法完成任何操作;进程数量急剧增加时,iMG成为全网消息交互的瓶颈;同一个计算机内部进程交互也要通过网络中的iMG进行转发,在计算机分布范围较广时,直接影响系统处理性能;当个别进程直接消息量非常大时,因为消息没有优先级,转发进程一视同仁,会影响到其他进程之间的交互;采用静态ID的分配,不利于系统的对外开放和合作开发,因为ID必须按照一定值范围划分,分配小则不足用,分配大则很快把整个空间消耗完毕。同时,服务模块和进程绑定,这约束各厂商的服务模块一旦划分将不能调整,否则直接造成合作厂商的应用无法使用。
发明内容
本发明提供一种消息交互的方法、系统和设备,用于提高应用系统中服务模块之间的交互效率,实现高可靠性和高性能的通信。
为达到上述目的,本发明提供一种消息交互的方法,包括:
在位于不同服务区域的多个服务模块SM之间构架消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;
通过所述消息交互通道实现不同服务模块SM之间的通信。
其中,还包括:
预先在每一服务模块SM上配置命名服务器NS的地址信息,根据所述NS的地址信息向所述NS注册SM的名称,并接收所述NS分配的服务ID;所述服务模块SM与所述NS通过L-BP、N-BP、或独立通道连接。
其中,所述在位于不同服务区域的多个服务模块SM之间构架消息交互通道包括:
预先在每一服务模块SM上配置待建立消息交互通道的地址信息,所述地址信息包括:L-BP上建立消息交互通道所使用的地址信息、N-BP上建立消息交互通道所使用的地址信息、和/或直连通道的对端SM信息;
SM根据所述待建立消息交互通道的地址信息,与所述地址信息中对应的L-BP、N-BP和/或对端SM建立消息交互通道;
所述SM与所述地址信息中对应的L-BP建立消息交互通道包括:所述L-BP在初始化时连接到N-BP并开启建立消息交互通道所使用的端口,SM根据所述L-BP上建立消息交互通道所使用的地址信息,连接所述L-BP的所述端口;
所述SM与所述地址信息中对应的N-BP建立消息交互通道包括:所述N-BP在初始化时开启建立消息交互通道所使用的端口,SM根据所述N-BP上建立消息交互通道所使用的地址信息,连接所述N-BP的所述端口;
所述SM与所述地址信息中对应的对端SM建立消息交互通道包括:所述SM向所述NS查询所述对端SM的服务ID,向与所述SM连接的L-BP或N-BP发送与所述对端SM建立直连通道的请求,根据所述L-BP或N-BP响应的对端SM的地址信息,连接所述SM的端口。
其中,所述通过消息交互通道实现不同服务模块SM之间的通信包括:
通信的发起方SM在本地路由表中查找目标SM的路由信息;
所述路由表中存在所述目标SM的路由信息时,根据所述路由信息向所述目标SM发送消息;
所述路由表中不存在所述目标SM的路由信息时,从NS获取所述SM的地址信息,并根据缺省路由向所述目标SM发送消息。
本发明还提供一种消息交互系统,包括位于不同服务区域的多个服务模块SM,所述多个SM之间建立有消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;通过所述消息交互通道实现不同服务模块SM之间的通信。
其中,还包括:
命名服务器NS,用于接收所述每一SM发送的包括SM名称的注册消息,为所述NS分配ID并将所述ID发送给所述SM;所述SM与所述NS通过L-BP、N-BP、或独立通道连接。
本发明还提供一种服务模块,包括:
通道建立单元,用于在位于不同服务区域的多个服务模块SM之间构架消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;
消息交互单元,用于通过所述通道建立单元建立的消息交互通道实现不同服务模块SM之间的通信。
其中,还包括:
注册单元,用于预先配置命名服务器NS的地址信息,根据所述NS的地址信息向所述NS注册SM的名称,并接收所述NS分配的服务ID。
其中,所述通道建立单元包括:
配置子单元,用于配置待建立消息交互通道的地址信息,所述地址信息包括:L-BP上建立消息交互通道所使用的地址信息、N-BP上建立消息交互通道所使用的地址信息、直连通道的对端SM信息中的一种或多种;
通道建立子单元,用于根据所述配置子单元中待建立消息交互通道的地址信息,与所述地址信息中对应的L-BP、N-BP或对端SM建立消息交互通道;所述通道建立子单元具体用于:
与所述地址信息中对应的L-BP建立消息交互通道时,所述L-BP在初始化时连接到N-BP并开启建立消息交互通道所使用的端口,根据所述L-BP上建立消息交互通道所使用的地址信息,连接所述L-BP的所述端口;
与所述地址信息中对应的N-BP建立消息交互通道时,所述N-BP在初始化时开启建立消息交互通道所使用的端口,根据所述N-BP上建立消息交互通道所使用的地址信息,连接所述N-BP的所述端口;
与所述地址信息中对应的对端SM建立消息交互通道时,向所述NS查询所述对端SM的服务ID,向与所述SM连接的L-BP或N-BP发送与所述对端SM建立直连通道的请求,根据所述L-BP或N-BP响应的对端SM的地址信息,连接所述SM的端口。
其中,所述消息交互单元包括:
路由表存储子单元,用于在本地建立一路由表;
路由表查找子单元,用于在所述路由表存储子单元存储的本地路由表中查找目标SM的路由信息;
第一消息处理子单元,用于当所述路由表查找子单元查找到所述目标SM的路由信息时,根据所述路由信息向所述目标SM发送消息;
第二消息处理子单元,用于当所述路由表查找子单元未查找到所述目标SM的路由信息时,从NS获取所述SM的地址信息,并根据缺省路由向所述目标SM发送消息。
与现有技术相比,本发明具有以下优点:
通过在服务模块SM之间构架多种消息交互通道,实现了多层次和多类型的消息交互架构,使得应用系统中服务模块之间的交互更加灵活,从而提高了服务模块之间的交互效率,实现高可靠性和高性能的通信。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中iMF的一结构示意图;
图2是本发明中所描述的消息交互方法的流程图;
图3是本发明中NS与SM通过独立通道连接的示意图;
图4是本发明应用场景中网络结构的示意图;
图5是本发明应用场景中SM间建立直连通道的流程图;
图6是本发明应用场景中网络结构的另一示意图;
图7是本发明应用场景中网络结构的另一示意图;
图8是本发明应用场景中网络结构的再一示意图;
图9是本发明中服务模块的结构示意图;
图10是本发明中服务模块的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种消息交互方法,如图2所示,包括:
步骤s201、在位于不同服务区域的多个服务模块SM之间构架消息交互通道,消息交互通道包括本地总线进程L-BP(Local Bus Process,本地总线进程)、网络总线进程N-BP(Network Bus Process,网络总线进程)以及不同SM间直连通道中的一种或多种;
步骤s202、通过消息交互通道实现不同服务模块SM之间的通信。
本发明提供的消息交互方法,应用于包括服务进程SP、服务模块SM、命名服务器NS以及总线进程BP等的网络中。其中总线进程BP又可以进一步包括本地总线进程L-BP以及网络总线进程N-BP。以下分别对每一部分进行详细介绍。
本发明中,对于SM,每个SM可以提供一个或者多个服务。每个SM有一个对外可查询到的名称,每个SM提供的服务也有一个对外可查询到的名称。其他SM通过该SM的名称和该SM上提供的服务的名称可以从网络上的任何地方远程调用本SM提供的服务。本发明中的SM具有以下功能:
(1)向NS注册名称的功能。具体的,在SM提供注册接口,通过注册接口将SM的名称发送到NS时,将接收到NS分配的动态ID。从而在NS上建立了SM名称与ID的对应关系。
(2)向NS查询其他SM的功能。具体的,在SM提供查询接口,通过查询接口向NS发送需要查询的服务模块的名称。并将接收到NS返回的与所查询的服务模块名称对应的SM的动态ID和地址。当有多个同名SM时,NS将返回一个列表,其中包括所有与所查询的服务模块名称对应的SM的动态ID和地址。SM如果希望调用特定地址上部署的服务,则可以根据不同SM的地址加以区分选择一个SM,否则可以选择任意一个SM。
(3)调用其他SM上提供的服务的功能。具体的,SM接收到NS反馈的协议不同SM的动态ID和地址后,如果希望调用特定地址上部署的服务,则可以根据不同SM的地址加以区分选择一个SM,否则可以选择任意一个SM;并对SM上提供的服务进行调用。具体的,在SM上提供调用服务接口,输入目的SM的ID以及需要调用的服务名称,以及服务的相关参数,可选的还可以输入超时时间(表示等待服务响应的最长时间,对于异步通信则无需该参数)。之后,通过服务接口接收目的SM返回的服务调用结果,接口中包括服务调用是否成功、服务返回参数以及服务返回信息等。
(4)路由表维护功能。具体的,SM在本地维护一路由表,在需要调用一个服务即需要与一个目标SM进行通信时,在路由表中查询是否存在该目标SM的路由信息,如果存在则直接使用该路由信息与目标SM通信,否则从NS获取到目标SM的ID(同时也获取到了目标SM所在的服务进程ID)并通过缺省路由调用。在一次服务调用成功后,把目标SM的路径信息增加到路由表中,后续再调用时无需再访问NS,从而提高调用效率。
SM中的路由表采用类似动态路由的算法,在服务第一次被成功调用时建立路由,在发生异常时进行路由重置,重置情况包括以下三种:(1)一个SM发生异常时,NS广播给所有SM以清空包括该SM信息的路由;(2)一个SM与NS发生连接异常时,NS广播给所有SM以清空包括该SM信息的路由;(3)NS异常时,在NS重启后通知所有SM清空整个路由表中除缺省路由之外的其他路由。路由表一个示例如下表1所示:
表1.路由表结构
模块ID | 模块名称 | 目标进程ID | 下一跳进程ID | 下一跳IP | 下一跳Port | 说明 |
100011 | media vod | 10001 | 0 | 127.0.0.1 | 0 | 本地模块 |
100012 | mediaforward | 10001 | 0 | 127.0.0.1 | 0 | 本地模块 |
100013 | media vod | 10001 | 0 | 127.0.0.1 | 0 | 本地模块 |
100021 | user mgmt | 10002 | 10003 | 10.1.1.2 | 5000 | 动态增加的普通路由 |
100041 | devmgmt | 10004 | 10004 | 10.110.1.1 | 5022 | 动态增加的直连路由 |
0 | 0 | 10003 | 10.1.1.1 | 5000 | 缺省路由,找不到的服务调用发送到此 |
例如,SM需要与目标SM“media vod”通信时,根据路由表发现该目标SM同位于本地进程中,则直接向目标SM中的进程10001发送消息。再例如SM需要与目标SM“dev mgmt”通信时,根据路由表向IP地址为10.110.1.1、端口为5000的目标SM中的进程发送消息,通过直连路由与目标SM进行通信。再例如,SM需要与路由表中不存在的目标SM通信时,首先向NS查询目标SM的模块ID以及地址,将需要发送的消息发送到缺省路由(一般为与SM连接的L-BP或N-BP),通过缺省路由将消息最终转发到目标SM,在接收到目标SM的响应后,将其路由信息作为“动态增加的直连路由”添加到路由表中。
本发明中,每个SP中包括一个或多个SM。本发明中的SP具有以下功能:
(1)触发SM向NS注册的功能。具体的,在SP提供服务进程注册接口,通过服务进程注册接口向NS注册SP,并初始化SP下的SM,触发各SM向NS发起对SM的注册。
(2)进程初始化接口。具体的,在启动时通过进程初始化接口建立SM与其他L-BP、N-BP或SM的信息交互通道。具体的,可以预先在各SM上提供一配置文件,在配置文件中描述待建立信息交互通道的地址信息。配置文件的一例如下:
L-BP进程1的IP1、端口1
L-BP进程2的IP2、端口2(可选)
N-BP进程1的IP3、端口3
N-BP进程2的IP4、端口4(可选)
NS进程1的IP5、端口5
NS进程2的IP6、端口6(可选)
直连通道1(服务模块SM1,服务模块Y1)
直连通道2(服务模块SM2,服务模块Y2)
......
直连通道n(服务模块SM,服务模块Yn)
根据该配置文件,可以实现SM对N-BP、L-BP或对端SM间消息交互通道的建立。例如:
L-BP在初始化时连接到N-BP并开启建立消息交互通道所使用的端口,SM根据L-BP上建立消息交互通道所使用的地址信息(IP1、端口1),连接IP地址为IP1的L-BP的端口1,从而建立与L-BP间的消息交互通道;
N-BP在初始化时开启建立消息交互通道所使用的端口,SM根据N-BP上建立消息交互通道所使用的地址信息(IP3、端口3),连接IP地址为IP3的N-BP的端口3,从而建立与N-BP间的消息交互通道;
根据对端SM的名称(如服务模块Y1),SM向NS查询对端SM的服务ID,向与L-BP或N-BP发送与对端SM建立直连通道的请求,根据L-BP或N-BP响应的对端SM的地址信息,连接对端SM的端口;或当对端SM的IP地址和端口已知时,直接连接该SM的端口;通过上述步骤,建立SM之间的消息交互通道。
本发明中,对于NS,NS可以使得SP和SM的ID分配完全自动化。由于NS负责ID的分配和服务查找,负载非常轻,因此无需考虑负载分担等问题。同时NS只有在服务查找时才需要在线,因此其短暂的崩溃对服务调用也基本没有影响。但在需要高可靠的NS,可部署两个NS,此时每个进程在初始化时同时注册到两个NS。服务进程与NS之间即可以采用L-BP或N-BP的通道,也可以采用独立的通道,例如使用UDP连接,这样额外占用的网络资源占用非常小。另外,采用独立的通道时,NS不需要依赖总线结构而受限到某些特定的位置。采用独立通道时一连接情况示意图如图3所示。本发明中的NS具有以下功能:
(1)进程注册接口;用于接收SP发送的进程注册消息,进行SP的注册并返回进程注册结果。
(2)模块注册接口;用于接收SM发送的注册消息,为SM分配动态ID并返回动态ID给发送注册消息的SM。
以下结合一个具体的应用场景,描述本发明中消息交互方法的具体实施方式。如图4所示的网络中,通信系统采用双星型的结构,系统中包括三个服务区域(Domain A、Domain B和Domain C),这里的服务区域并不是严格定义,任何位置相近或者协作紧密的多个SM都可以组成一个服务区域。本发明的应用场景中在每个服务区域内包括多个SM,而不是采用SP。可以理解的是,SP作为SM的载体,在SM之间的交互可以认为是透明的,因此并不影响本发明的具体实施方式。图4中设置了一个NS,NS连接在两个N-BP上。在实际应用中,NS也可以连接在任何一个L-BP上。对于NS与各个SM之间的交互,如上文所示,可以通过L-BP或N-BP实现,也可以通过独立通道实现,对于独立通道图中未画出。
图4所示的网络结构中,如果两个SM部署在同一个SP(即可以认为在同一台终端设备)中,则SM的交互直接在SP内部完成。每个服务区域中的SM之间交互通过L-BP完成。在SM需要跨域交互时,则还要经过N-BP。
图4中所示的网络结构中,在Domain B的SM13和Domain C的SM23之间还存在一个直连通道,直连通道两端的SM交互不需要经过L-BP或N-BP,但如果直连通道瘫痪,则还会通过L-BP或N-BP交互。SM之间的路径对于SM完全透明,即SM不了解消息的路径是怎样的,这样后续根据网络部署和性能瓶颈调整进程部署时,不会影响到SM的内部设计。
以L-BP2中的SM23为例,说明本发明的具体实现方法。
SM23初始化后,首先向NS进行名称注册并获取本地配置文件,根据配置文件中配置的L-BP2的地址与端口建立与L-BP2的连接通道,根据配置文件中配置的Domain B中SM13建立与Domain B中SM13的直连通道1。以下对SM23与SM13间直连通道1的建立过程进行描述,如图5所示,包括:
步骤s501、SM23建立与本地BP的连接。
步骤s502、SM23向NS查找直连通道1的目的模块ID,即SM13的模块ID。
步骤s503、SM23请求L-BP2建立直连通道1。
步骤s504、L-BP2转发请求到N-BP1,请求建立直连通道1。
步骤s505、N-BP1指示直连通道1目的模块SM13所在的L-BP1分配并开启端口,以下简称为指示1。
步骤s506、L-BP1转发指示1到SM13。
步骤s507、N-BP1指示L-BP2开始建立直连通道1,以下简称为指示2。
步骤s508、L-BP2转发指示2到SM23。
步骤s509、SM23与SM13建立直连通道1。通过该流程,实现了SM之间通过动态分配端口建立直连通道。
全部通道建立完成后,SM23在需要与其他SM交互时,根据本地路由表中存储的路由信息,向其他SM发送消息,同时对路由表中的信息进行动态增加或删除。
本发明的另一应用场景中,如图6所示,设置有5个服务区域,每个服务区域可能是一个或者多个终端组成。其中:
服务区域A和服务区域C提供的服务主要被本地调用,但有少量被外部调用,因此设置本地总线进程L-BP加快服务调用,同时网络区域瘫痪不影响本地服务的调用。
服务区域B的服务主要被外部调用,内部调用不多,不设置本地总线进程L-BP。
服务区域D的服务被服务区域C的SP3大量的调用,同时内部互通调用也非常频繁,因此全部建立直连通道。
服务区域E是网络的核心,同时提供命名服务和少量的应用服务。服务区域A、E的两个SP1之间有大量服务在调用,因此建立了直连通道。这种直连通道方式可以实现消息交互频繁的进程同时不影响总线上其他服务的调用。
本发明的另一应用场景中,如图7所示,设置有6个服务区域,每个服务区域可能是一个或者多个终端组成。其中:
服务区域A、B、D提供的服务主要被本地调用,同时也有少量被外部调用,因此设置本地总线进程加快服务调用,同时网络区域瘫痪不影响本地服务的调用。其中服务区域B还利用服务F的总线充当本区域的备份总线进程。
服务区域C的服务主要被外部调用,因此不设置本地总线进程。
服务区域E、F提供应用服务,同时充当网络总线。其中区域E提供命名服务。
本发明的另一应用场景中,如图8所示,设置有3个服务区域,每个服务区域可能是一个或者多个终端组成。其中:
服务区域A、B、C提供的服务主要被本地调用,同时也有少量被外部调用,因此设置本地总线进程加快服务调用,同时网络区域瘫痪不影响本地服务的调用。
服务区域B提供命名服务。
服务区域A、B、C同时充当对外部的网络总线,三个本地总线形成网状结构。这在服务区域不是很多时,是一种很实用的结构。
以上图6至图8所示的网络结构只是本发明中方法的几种具体实现方式,其核心是多层次和多类型的消息交互架构,因此在其基础上的变形和改变仍属于本发明的保护范围。
本发明提供的上述方法中,通过在服务模块SM之间构架多种消息交互通道,实现了多层次和多类型的消息交互架构,使得应用系统中服务模块之间的交互更加灵活。另外,增加命名服务器NS实现服务模块ID的自动分配和查找,简化了ID分配机制。最后,通过在服务模块中引入路由表,使得在总线结构复杂的情况下可以根据路由表实现路由模块之间的快速通信,从而提高了服务模块之间的交互效率,实现高可靠性和高性能的通信。
本发明还提供一种消息交互系统,包括位于不同服务区域的多个服务模块SM,多个SM之间建立有消息交互通道,该消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;通过建立的消息交互通道实现不同服务模块SM之间的通信。
该系统中还可以包括:
命名服务器NS,用于接收所述每一SM发送的包括SM名称的注册消息,为所述NS分配ID并将所述ID发送给所述SM。
本发明还提供一种服务模块,如图9所示,包括:
通道建立单元10,用于在位于不同服务区域的多个服务模块SM之间构架消息交互通道,消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;
消息交互单元20,用于通过通道建立单元建立的消息交互通道实现不同服务模块SM之间的通信。
本发明提供的服务模块中,如图10所示,还包括:
注册单元30,用于预先配置命名服务器NS的地址信息,根据NS的地址信息向NS注册SM的名称,并接收NS分配的服务ID。
另外,通道建立单元10可以具体包括:
配置子单元11,用于配置待建立消息交互通道的地址信息,地址信息包括:L-BP上建立消息交互通道所使用的地址信息、N-BP上建立消息交互通道所使用的地址信息、直连通道的对端SM信息中的一种或多种;
通道建立子单元12,用于根据配置子单元11中待建立消息交互通道的地址信息,与地址信息中对应的L-BP、N-BP或对端SM建立消息交互通道。该通道建立子单元12具体用于:
(1)与地址信息中对应的L-BP建立消息交互通道时,L-BP在初始化时连接到N-BP并开启建立消息交互通道所使用的端口,根据L-BP上建立消息交互通道所使用的地址信息,连接L-BP的端口;
(2)与地址信息中对应的N-BP建立消息交互通道时,N-BP在初始化时开启建立消息交互通道所使用的端口,根据N-BP上建立消息交互通道所使用的地址信息,连接N-BP的端口;
(3)与地址信息中对应的对端SM建立消息交互通道时,向NS查询对端SM的服务ID,向与SM连接的L-BP或N-BP发送与对端SM建立直连通道的请求,根据L-BP或N-BP响应的对端SM的地址信息,连接SM的端口。
另外,消息交互单元20可以具体包括:
路由表存储子单元21,用于在本地建立一路由表;
路由表查找子单元22,用于在路由表存储子单元21存储的本地路由表中查找目标SM的路由信息;
第一消息处理子单元23,用于当路由表查找子单元22查找到目标SM的路由信息时,根据路由信息向目标SM发送消息;
第二消息处理子单元24,用于当路由表查找子单元22未查找到目标SM的路由信息时,从NS获取SM的地址信息,并根据缺省路由向目标SM发送消息。
本发明提供的上述系统和装置中,通过在服务模块SM之间构架多种消息交互通道,实现了多层次和多类型的消息交互架构,使得应用系统中服务模块之间的交互更加灵活。另外,增加命名服务器NS实现服务模块ID的自动分配和查找,简化了ID分配机制。最后,通过在服务模块中引入路由表,使得在总线结构复杂的情况下可以根据路由表实现路由模块之间的快速通信,从而提高了服务模块之间的交互效率,实现高可靠性和高性能的通信。
上述模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1、一种消息交互方法,其特征在于,包括:
在位于不同服务区域的多个服务模块SM之间构架消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;
通过所述消息交互通道实现不同服务模块SM之间的通信。
2、如权利要求1所述的方法,其特征在于,还包括:
预先在每一服务模块SM上配置命名服务器NS的地址信息,根据所述NS的地址信息向所述NS注册SM的名称,并接收所述NS分配的服务ID;所述服务模块SM与所述NS通过L-BP、N-BP、或独立通道连接。
3、如权利要求1或2所述的方法,其特征在于,所述在位于不同服务区域的多个服务模块SM之间构架消息交互通道包括:
预先在每一服务模块SM上配置待建立消息交互通道的地址信息,所述地址信息包括:L-BP上建立消息交互通道所使用的地址信息、N-BP上建立消息交互通道所使用的地址信息、和/或直连通道的对端SM信息;
SM根据所述待建立消息交互通道的地址信息,与所述地址信息中对应的L-BP、N-BP和/或对端SM建立消息交互通道;
所述SM与所述地址信息中对应的L-BP建立消息交互通道包括:所述L-BP在初始化时连接到N-BP并开启建立消息交互通道所使用的端口,SM根据所述L-BP上建立消息交互通道所使用的地址信息,连接所述L-BP的所述端口;
所述SM与所述地址信息中对应的N-BP建立消息交互通道包括:所述N-BP在初始化时开启建立消息交互通道所使用的端口,SM根据所述N-BP上建立消息交互通道所使用的地址信息,连接所述N-BP的所述端口;
所述SM与所述地址信息中对应的对端SM建立消息交互通道包括:所述SM向所述NS查询所述对端SM的服务ID,向与所述SM连接的L-BP或N-BP发送与所述对端SM建立直连通道的请求,根据所述L-BP或N-BP响应的对端SM的地址信息,连接所述SM的端口。
4、如权利要求2所述的方法,其特征在于,所述通过消息交互通道实现不同服务模块SM之间的通信包括:
通信的发起方SM在本地路由表中查找目标SM的路由信息;
所述路由表中存在所述目标SM的路由信息时,根据所述路由信息向所述目标SM发送消息;
所述路由表中不存在所述目标SM的路由信息时,从NS获取所述SM的地址信息,并根据缺省路由向所述目标SM发送消息。
5、一种消息交互系统,其特征在于,包括位于不同服务区域的多个服务模块SM,所述多个SM之间建立有消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;通过所述消息交互通道实现不同服务模块SM之间的通信。
6、如权利要求5所述的消息交互系统,其特征在于,还包括:
命名服务器NS,用于接收所述每一SM发送的包括SM名称的注册消息,为所述NS分配ID并将所述ID发送给所述SM;所述SM与所述NS通过L-BP、N-BP、或独立通道连接。
7、一种服务模块,其特征在于,包括:
通道建立单元,用于在位于不同服务区域的多个服务模块SM之间构架消息交互通道,所述消息交互通道包括本地总线进程L-BP、网络总线进程N-BP以及不同SM间直连通道中的一种或多种;
消息交互单元,用于通过所述通道建立单元建立的消息交互通道实现不同服务模块SM之间的通信。
8、如权利要求7所述的服务模块,其特征在于,还包括:
注册单元,用于预先配置命名服务器NS的地址信息,根据所述NS的地址信息向所述NS注册SM的名称,并接收所述NS分配的服务ID。
9、如权利要求7或8所述的服务模块,其特征在于,所述通道建立单元包括:
配置子单元,用于配置待建立消息交互通道的地址信息,所述地址信息包括:L-BP上建立消息交互通道所使用的地址信息、N-BP上建立消息交互通道所使用的地址信息、直连通道的对端SM信息中的一种或多种;
通道建立子单元,用于根据所述配置子单元中待建立消息交互通道的地址信息,与所述地址信息中对应的L-BP、N-BP或对端SM建立消息交互通道;所述通道建立子单元具体用于:
与所述地址信息中对应的L-BP建立消息交互通道时,所述L-BP在初始化时连接到N-BP并开启建立消息交互通道所使用的端口,根据所述L-BP上建立消息交互通道所使用的地址信息,连接所述L-BP的所述端口;
与所述地址信息中对应的N-BP建立消息交互通道时,所述N-BP在初始化时开启建立消息交互通道所使用的端口,根据所述N-BP上建立消息交互通道所使用的地址信息,连接所述N-BP的所述端口;
与所述地址信息中对应的对端SM建立消息交互通道时,向所述NS查询所述对端SM的服务ID,向与所述SM连接的L-BP或N-BP发送与所述对端SM建立直连通道的请求,根据所述L-BP或N-BP响应的对端SM的地址信息,连接所述SM的端口。
10、如权利要求7或8所述的服务模块,其特征在于,所述消息交互单元包括:
路由表存储子单元,用于在本地建立一路由表;
路由表查找子单元,用于在所述路由表存储子单元存储的本地路由表中查找目标SM的路由信息;
第一消息处理子单元,用于当所述路由表查找子单元查找到所述目标SM的路由信息时,根据所述路由信息向所述目标SM发送消息;
第二消息处理子单元,用于当所述路由表查找子单元未查找到所述目标SM的路由信息时,从NS获取所述SM的地址信息,并根据缺省路由向所述目标SM发送消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910135801A CN101534263A (zh) | 2009-04-28 | 2009-04-28 | 一种消息交互的方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910135801A CN101534263A (zh) | 2009-04-28 | 2009-04-28 | 一种消息交互的方法、系统和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101534263A true CN101534263A (zh) | 2009-09-16 |
Family
ID=41104657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910135801A Pending CN101534263A (zh) | 2009-04-28 | 2009-04-28 | 一种消息交互的方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101534263A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571550A (zh) * | 2010-12-30 | 2012-07-11 | 北京亿阳信通软件研究院有限公司 | 一种通用的信息交互平台和方法 |
WO2014086023A1 (zh) * | 2012-12-06 | 2014-06-12 | 华为技术有限公司 | 跨服务区通信的方法、装置和数据中心网络 |
CN113301091A (zh) * | 2020-07-31 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 用于分布式系统的消息处理方法、装置、电子设备及介质 |
CN113835909A (zh) * | 2021-09-30 | 2021-12-24 | 中国电子科技集团公司第二十八研究所 | 一种基于消息框架的应用集成方法 |
CN115883389A (zh) * | 2022-12-09 | 2023-03-31 | 浙江正元智慧科技股份有限公司 | 一种关于设备数据交互的建模方法 |
-
2009
- 2009-04-28 CN CN200910135801A patent/CN101534263A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571550A (zh) * | 2010-12-30 | 2012-07-11 | 北京亿阳信通软件研究院有限公司 | 一种通用的信息交互平台和方法 |
CN102571550B (zh) * | 2010-12-30 | 2016-05-25 | 北京亿阳信通科技有限公司 | 一种通用的信息交互平台和方法 |
WO2014086023A1 (zh) * | 2012-12-06 | 2014-06-12 | 华为技术有限公司 | 跨服务区通信的方法、装置和数据中心网络 |
CN104040964A (zh) * | 2012-12-06 | 2014-09-10 | 华为技术有限公司 | 跨服务区通信的方法、装置和数据中心网络 |
US11671363B2 (en) | 2012-12-06 | 2023-06-06 | Huawei Technologies Co., Ltd. | Method and apparatus for cross-service-zone communication, and data center network |
CN113301091A (zh) * | 2020-07-31 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 用于分布式系统的消息处理方法、装置、电子设备及介质 |
CN113835909A (zh) * | 2021-09-30 | 2021-12-24 | 中国电子科技集团公司第二十八研究所 | 一种基于消息框架的应用集成方法 |
CN113835909B (zh) * | 2021-09-30 | 2023-10-24 | 中国电子科技集团公司第二十八研究所 | 一种基于消息框架的应用集成方法 |
CN115883389A (zh) * | 2022-12-09 | 2023-03-31 | 浙江正元智慧科技股份有限公司 | 一种关于设备数据交互的建模方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11563669B2 (en) | Method for implementing network virtualization and related apparatus and communications system | |
US6754220B1 (en) | System and method for dynamically assigning routers to hosts through a mediator | |
CN102217253B (zh) | 报文转发方法、装置及网络设备 | |
US6438748B1 (en) | Apparatus and method for conversion of messages | |
RU2661768C2 (ru) | Способ воплощения arp, устройство коммутатора и модуль управления | |
CN102714636A (zh) | 用于便于越过网络边界的推送通信的方法和装置 | |
US10050863B2 (en) | Network communication system, software-defined network controller and routing method thereof | |
CN102308534A (zh) | 应用交换机系统和应用交换机方法 | |
CN111526223B (zh) | 边缘业务服务器的管理方法、业务数据处理方法及装置 | |
CN109587071B (zh) | 基于sdn的微服务负载均衡方法 | |
CN101707569B (zh) | Nat业务报文处理的方法及装置 | |
EP3095229B1 (en) | Method and nodes for configuring a communication path for a media service | |
CN101534263A (zh) | 一种消息交互的方法、系统和设备 | |
CN104618243A (zh) | 路由方法、装置及系统、网关调度方法及装置 | |
CN106487938B (zh) | 域名的转发方法及装置 | |
CN105099937A (zh) | 一种pmtu的确定方法和设备 | |
CN113709133B (zh) | 一种基于数据中心的ipvc6通信系统 | |
US11805183B2 (en) | Ordered stack formation with reduced manual intervention | |
EP1246425A1 (en) | Packet switching networks | |
Baggan et al. | A comprehensive analysis and experimental evaluation of routing information protocol: An elucidation | |
CN105681249A (zh) | 一种网络访问方法和网络转换设备 | |
US10158604B2 (en) | Method for addressing messages in a computer network | |
CN110247778A (zh) | 操作系统安装方法、装置、电子设备及存储介质 | |
CN107404546B (zh) | 一种sdn网络内的通信方法及装置 | |
CN101686265B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090916 |