一种消息传递的方法、装置和系统的制作方法

文档序号:6555792阅读:145来源:国知局
专利名称:一种消息传递的方法、装置和系统的制作方法
技术领域
本发明属于通信领域,特别涉及一种用于处理消息通信的消息处理机制。
背景技术
在通信领域中,经常会涉及到同一通信设备内部的进程之间的通信、不同通信设备之间的进程通信,通常的做法是互相通信的进程之间约定通信的消息格式,使用Socket(套接字)进行通信,在通信的过程中,进程需要时刻关注消息的发送情况,为消息选择路由,接收消息等。这样做使得进程需要花费较多的时间来处理进程之间通信的连接,消息包的分割和拼接,通信效率较低。
同时,通信行业的开发人员不得不重复的处理网络通信的细节问题,造成工作的大量重复,也使通信的可靠性、稳定性得不到保证。

发明内容
有鉴与此,本发明提出了一种消息传递的方法和装置,解决了上述问题,本发明提出了如下的解决方案。
本发明提出了一种消息传递设备,该模块至少包括主控制模块,负责消息传递设备的各个模块的调度和控制,并进行内存管理;消息收发模块,为消息传递设备提供通信端口,负责消息的发送和接收;消息路由模块,根据消息路由表,进行路由选择;
消息收发模块接收通信进程发送的消息,对消息进行分析,并将其发送到消息路由模块;消息路由模块根据消息的目的地址和预先设置的路由选择表,进行路由选择;消息收发模块根据路由信息发送通信消息。
进一步,该消息传递设备还包括消息跟踪模块,提供消息传递时刻的问题定位,主控制模块通过发送指令,调用消息跟踪模块,对通信消息进行跟踪和管理。
进一步,该消息传递设备还包括流量控制模块在主控制模块的调用下,对消息收发模块进行流量的控制。
进一步,该消息传递设备还包括消息队列查看模块,在主控制模块的控制下,查看消息传递设备内存单元中的控制数据。
本发明还提出一种消息传递系统,包括源通信进程、目的通信进程,还包括源消息传递设备和目的消息传递设备;所述源通信进程调用源消息传递设备,将通信消息发送给源消息传递设备;所述源消息传递设备接收源通信进程发送的通信消息,并将通信消息发送到目的消息传递设备中;所述目的消息传递设备接收源消息传递设备发送的通信消息,并将该通信消息发送到目的进程占用的端口中,并向目的进程发送通知消息;所述目的进程根据目的消息传递设备发送的通知消息,在目的消息传递设备的相应端口取出通信消息。
所述的源消息传递设备和目的消息传递设备可以为相同的消息传递设备。
本发明还提出一种消息传递的方法,其关键在于,包括以下步骤a、源通信进程将通信消息发送到源消息传递设备;b、源消息传递设备根据通信消息中的目的地信息进行路由选择,将通信消息发送到目的通信进程所调用的目的消息传递设备中;c、目的消息传递设备接收通信消息,并将其发送到目的进程所占用的通信端口中,并通知目的通信进程提取通信消息。
上述方案中,在步骤b中,源消息传递设备可以调用消息跟踪机制,和/或,流量控制机制,和/或,消息队列查看机制对通信消息进行控制和管理。
在上述方案中,在步骤a之前,进一步包括,a1、通信进程首先将初始化参数发送给消息传递设备,消息传递设备根据初始化参数对制定的消息传递设备的通信端口进行初始化。
上述方案中,步骤b中,进一步当通信进程属于同一通信设备时,源消息传递设备采用共享内存的方式进行通信;当通信进程属于不同的通信设备时,源消息传递设备采用TCP/IP协议进行通信。
上述方案中,步骤c之后,进一步包括步骤d、通信进程通过将所占用的消息传递设备的通信端口释放来结束通信。
通过本发明,通信进程在通信的过程中只需将消息发送给所占用的消息传递设备,消息传递设备将负责消息的路由、发送和接收,降低了进程在通信过程中的参与程度,同时也使工作人员避免了重复的处理通信的细节问题,提高了工作效率和通信质量。


图1是本消息传递设备的模块结构图。
图2是本发明的提出的一种消息传递方法流程图。
图3是本消息传递系统的应用图例。
图4是本系统中一个通信进程调用多个消息传递设备的应用图例。
具体实施例方式
本发明提供了一种消息传递设备,源通信进程调用消息传递设备后,消息传递设备在不需要通信进程进行参与的情况下,将通信消息传送到目的通信进程中去。同时本发明还提供一种消息通信的方法,利用该方法进行消息的传送,将减少通信进程的参与程度,从而可以提高工作效率,也可以提高通信的质量。为了更好的说明本发明,下面将结合实施例进行详细的阐述。
本发明提出了一种消息传递设备,其结构如图1所示。本消息传递设备至少由主控制模块101、消息收发模块102、消息路由模块103组成主控制模块101负责消息传递设备的各个模块的调度和控制,对通信端口进行初始化,并负责在传递通信消息时,为通信消息分配内存;消息收发模块102接收和发送通信消息。消息收发模块为通信模块提供对外的通信端口,消息传递设备利用通信端口接收消息和将对应端口中的消息进行发送;消息路由模块103根据接收到的消息,提取目的地址,并根据消息路由选择表确定消息传递路径。
当通信进程调用该消息传递设备进行通信时,通信进程首先将端口初始化参数发送给消息传递设备,消息传递设备根据初始化参数对指定的通信端口进行初始化。进程收发消息时要首先指定端口,其他进程要与它通信的话,必须知道它在那个端口上接收消息,才能在发送消息的时候,指定相应的端口,所以每个进程占用的端口都是公开的,且是不可重复的。同时主控制模块还为消息传递分配内存单元,本机进程之间的通信采用共享内存的方式进行通信。
消息收发模块102接收通信进程发送的消息,对消息进行分析,将消息传送给消息路由模块103,消息路由模块103根据发送消息的目的地址和预先设置的路由选择表,进行路由选择。消息收发模块将消息队列中的消息发送到目的进程调用的消息传递设备中。
除了上述模块外,本消息传递设备还可以包括消息跟踪模块104、流量控制模块105和消息队列查看模块106。
消息跟踪模块104提供了运行时刻的消息跟踪和调试,主控制模块通过发送指令,调用消息跟踪模块,对指定消息进行跟踪和管理。该消息跟踪模块提供在消息传递设备提供的通信协议基础上的消息跟踪,该跟踪机制能够与基于应用层的协议跟踪机制构成互补关系,更方便于运行时刻问题的定位。
流量控制模块105提供了流量控制机制,在主控制模块的控制下,对消息收发模块进行流量的控制。当消息传递设备的某一个队列的空闲度小于某一阈值时,实施流量控制,应用流量控制算法限制发送消息包的能力,保证通信的正常进行。
每一个内存单元都有一个空间事件、一个所需空闲空间大小的变量,当内存单元的空闲空间不够放下一个消息时,就修改所需空闲空间的大小变量的值为消息包的大小,并等待有空间事件发生。当内存单元中的消息被取走时,会判断已有的空闲的空间加上被取走的消息的大小是否大于所需的空闲空间的大小变量的值,如果大于,则有空间事件,继续发送前面等待的消息,否则继续等待空间事件的发生。
消息队列查看模块106提供了一种消息队列查看机制,在主控制模块的控制下,对消息收发模块发送的消息进行查看。利用该机制,消息传递设备可以随时了解消息发送和接收的情况;该消息队列查看模块提供了一种消息映射机制,将内存单元的控制数据进行映射,进而可以查看每一单元的控制数据,从而可以在消息传递设备出现故障的时候,进行故障定位,该模块可以和消息跟踪模块结合使用。
在通信的过程中,主控制模块调用消息跟踪模块104、流量控制模块105和消息队列查看模块106,对通信的过程进行管理和监控,可以保证消息传递设备正常高效的进行工作。
本发明还提出一种消息传递的方法,其关键在于,源通信进程将通信消息发送到源消息传递设备;源消息传递设备根据通信消息中的目的地址信息进行路由选择,将通信消息发送到目的通信进程所调用的目的消息传递设备中;目的消息传递设备接收通信消息,并将其发送到目的进程所占用的通信端口中,并通知目的通信进程提取通信消息。
具体包括以下步骤步骤201,源通信进程调用源消息传递设备,并将端口初始化参数发送给源消息传递设备,源消息传递设备对指定的通信端口进行初始化。
源消息传递设备可以有多个通信端口,调用进程需要对所占用的通信端口进行初始化,初始化时,通信进程需要将初始化参数发送给消息传递设备,然后消息传递设备根据初始化参数,对其所占用的端口进行初始化。
步骤202,源消息传递设备接收通信消息,并对通信消息进行相关的分析,提取目的地址,并根据预先设置的消息路由表,确定传输路径。
源消息传递设备可以使用流量控制机制,对通信消息进行流量控制。源消息传递设备对内存单元进行判断,当源消息传递设备有足够的内存进行消息传递时,源消息传递设备将继续接收和发送消息,当判断内存空间不够时,则消息传递设备将等待有足够的内存空间时,才进行消息的传递。
同时,源消息传递设备也可以使用消息跟踪机制,对特定的通信消息进行跟踪和调试,其能够与基于应用层的协议跟踪机制构成互补关系,对通信消息进行运行时刻的问题定位。
步骤203,消息传递设备判断通信双方的进程是否属于同一个通信设备,如果属于同一个通信设备,转步骤204;如果不属于同一个通信设备,转步骤205。
步骤204,源消息传递设备直接将通信消息放到目的通信进程所占用的目的消息传递设备的通信端口中。在这个过程中,由于通信双方的进程属于同一个通信设备,则在通信的过程中,可以采用共享内存的方式进行通信,这样就提高了工作的效率。
步骤205,源消息传递设备将通信消息放到本地网络队列中,使用TCP/IP协议将通信消息发送给目的消息传递设备。
步骤206,目的通信进程调用的目的消息传递设备接收从源通信进程传送的消息,进行数据包的解析,并将数据放到目的通信进程所占用的目的消息传递设备的通信端口中去,通知目的进程提取通信消息。
步骤207,目的通信进程从所占用的通信端口提取通信数据。
需要指出的是,当通信进程在通信过程中,出现通信故障,消息传递设备将使用消息队列查看功能,将内存单元的控制数据进行映射,查看每一个单元的控制数据,进行故障的定位。
通过上述方法,通信进程调用消息传递设备后,消息传递设备在不需要通信进程进行参与的情况下,将通信消息传送到目的通信进程中去,减少通信进程的参与程度,同时在通信的过程中,消息传递设备采用流量控制机制、消息队列跟踪机制、消息查看机制等进行通信控制,提高了通信的质量。
本发明还提出一种消息传递系统,包括源通信进程、目的通信进程,还包括源消息传递设备和目的消息传递设备;所述源通信进程调用源消息传递设备,将通信消息发送给源消息传递设备;所述源消息传递设备接收源通信进程发送的通信消息,并将通信消息发送到目的消息传递设备中;所述目的消息传递设备接收源消息传递设备发送的通信消息,并将该通信消息发送到目的进程占用的端口中,并向目的进程发送通知消息;所述目的进程根据目的消息传递设备发送的通知消息,在目的消息传递设备的相应端口取出通信消息。
所述的源消息传递设备和目的消息传递设备可以为相同的消息传递设备。多个进程可以同时调用一个消息传递设备进行通信;一个进程可以利用一个消息传递设备与多个进程进行通信。
图3为本消息传递系统的应用图例,通信设备A和通信设备B在同一网段内,通信设备A和B与通信设备D在不同的网段内。31、32、33和34为消息传递设备建立的TCP通路,为跨设备的进程提供数据传输的通路。301、302为通信设备内部进程之间的通信,在消息传递设备内部采用共享内存的方式进行通信。305为同一网段内部,不同通信设备的进程之间的通信,各个消息传递设备通过建立TCP通路,来完成进程之间的通信。303、304为不同网段之间的、不同通信设备内部的进程之间的通信,消息传递设备调用消息路由模块为通信消息选择路由,消息传递设备3起到了路由转发的作用。同时,流量控制模块进行流量控制,保证通信的正常进行。在同网同机、同网异机和异网异机的进程通信的过程中,消息传递设备对通信消息进行跟踪,以确定通信是否正常的进行。当通信异常的时候,消息传递设备通过查看消息队列,来确定通信失败的原因。
多个通信进程可以同时调用一个消息传递设备和其他通信进程进行通信,如图3所示,通信进程1和通信进程2同时调用消息传递设备1进行通信,在这里通信进程1和通信进程2属于同一个通信设备,需要指出的是,通信进程1和通信进程2可以但不限于属于同一通信设备。同时,一个通信进程可以调用一个消息通信模块和多个通信进程进行通信。如图4所示,通信设备E中的进程6调用消息传递设备5与通信设备F和通信设备G中的进程7和进程8同时进行通信。消息传递设备5与消息传递设备6建立通信链路401,消息传递设备5与消息传递设备7建立通信链路402。各消息传递设备之间通过TCP通路41、42进行通信。本发明提高了进程之间进行通信的效率,保证了通信的质量,同时也避免了开发人员重复的劳动,取得了有益的效果。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种消息传递设备,其特征在于,该设备至少包括主控制模块,负责消息传递设备的各个模块的调度和控制,并进行内存管理;消息收发模块,为消息传递设备提供通信端口,负责消息的发送和接收;消息路由模块,根据消息路由表,进行路由选择;消息收发模块接收通信进程发送的消息,对消息进行分析,并将其发送到消息路由模块;消息路由模块根据消息的目的地址和预先设置的路由选择表,进行路由选择;消息收发模块根据路由信息发送通信消息。
2.如权利要求1所述的一种消息传递设备,其特征在于,还包括消息跟踪模块,提供消息传递时刻的问题定位,主控制模块通过发送指令,调用消息跟踪模块,对通信消息进行跟踪和管理。
3.如权利要求1所述的一种消息传递设备,其特征在于,还包括流量控制模块在主控制模块的调用下,对消息收发模块进行流量的控制。
4.如权利要求1所述的一种消息传递设备,其特征在于,还包括消息队列查看模块,在主控制模块的控制下,查看消息传递设备内存单元中的控制数据。
5.一种消息传递系统,包括源通信进程、目的通信进程,其特征在于,还包括源消息传递设备和目的消息传递设备;所述源通信进程调用源消息传递设备,将通信消息发送给源消息传递设备;所述源消息传递设备接收源通信进程发送的通信消息,并将通信消息发送到目的消息传递设备中;所述目的消息传递设备接收源消息传递设备发送的通信消息,并将该通信消息发送到目的进程占用的端口中,并向目的进程发送通知消息;所述目的进程根据其调用的目的消息传递设备发送的通知消息,在目的消息传递设备的相应端口取出通信消息。
6.如权利要求5所述的一种消息传递系统,其特征在于,所述的源消息传递设备和目的消息传递设备可以为相同的消息传递设备。
7.一种消息传递的方法,其特征在于,包括以下步骤a、源通信进程将通信消息发送到源消息传递设备;b、源消息传递设备根据通信消息中的目的地信息进行路由选择,将通信消息发送到目的通信进程所调用的目的消息传递设备中;c、目的消息传递设备接收通信消息,并将其发送到目的进程所占用的通信端口中,并通知目的通信进程提取通信消息。
8.如权利要求7所述的一种消息传递的方法,其特征在于,在步骤b中,源消息传递设备可以调用消息跟踪机制,和/或,流量控制机制,和/或,消息队列查看机制对通信消息进行控制和管理。
9.如权利要求7所述的一种消息传递的方法,其特征在于,在步骤a之前,进一步包括,a1、通信进程首先将初始化参数发送给消息传递设备,消息传递设备根据初始化参数对制定的消息传递设备的通信端口进行初始化。
10.如权利要求7所述的一种消息传递的方法,其特征在于,进一步在步骤b中,当通信进程属于同一通信设备时,源消息传递设备采用共享内存的方式进行通信;当通信进程属于不同的通信设备时,源消息传递设备采用TCP/IP协议进行通信。
11.如权利要求7所述的一种消息传递的方法,其特征在于,步骤c之后,包括步骤d、通信进程通过将所占用的消息传递设备的通信端口释放来结束通信。
全文摘要
本发明公开了一种消息传递的方法、装置和系统,本发明提出的一种消息传递的装置,通信进程将通信消息传递给该装置后,该装置将负责消息的分析、路由和发送;当为同一通信设备内部的进程之间进行通信时,该装置将采用共享内存的方式进行通信;不同主机的进程之间进行通信时,该装置将建立TCP链路,采用TCP协议进行通信;同时本发明提出的一种消息通信的方法和系统,利用同样的思想,解决了进程通信过程中,效率不高的问题。总之,本发明提高了进程的工作效率,同时也提高了通信的质量。
文档编号G06F9/46GK1859327SQ20061003360
公开日2006年11月8日 申请日期2006年2月9日 优先权日2006年2月9日
发明者蔡利元 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1