CN100440872C - 一种分布式环境中消息交换的实现方法及其装置 - Google Patents
一种分布式环境中消息交换的实现方法及其装置 Download PDFInfo
- Publication number
- CN100440872C CN100440872C CNB2004100793372A CN200410079337A CN100440872C CN 100440872 C CN100440872 C CN 100440872C CN B2004100793372 A CNB2004100793372 A CN B2004100793372A CN 200410079337 A CN200410079337 A CN 200410079337A CN 100440872 C CN100440872 C CN 100440872C
- Authority
- CN
- China
- Prior art keywords
- message
- application system
- domain name
- control module
- module
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种分布式环境中消息交换的实现方法,包括如下步骤:消息控制模块侦听到节点适配模块发起或转发的注册请求后,转发给域名服务器验证该注册请求的合法性,如果合法,保存包含该应用系统的域名等关联信息,并建立和该节点适配模块的长连接;消息控制模块侦听到节点适配模块转发的业务处理消息后,获取该业务的消息路由,转发消息给路由中第一个目标应用系统对应的节点适配模块;该节点适配模块判断该应用系统业务处理完毕后,返回应答消息,消息控制模块根据收到的应答消息改写并转发到下一目标应用系统,直到消息路由终点。本发明能适应异种应用系统集成平台的稳定可靠、快速的要求,轻易实现异种应用系统之间的通讯。
Description
技术领域
本发明涉及消息处理的基础结构,尤其涉及一种分布式环境中的消息交换装置和交换方法。
背景技术
消息一般是应用系统内部从一个组件传送到另外一个组件,或者从一个应用系统传送到另一个应用系统的信息单元,消息交换是软件组件或应用系统之间的通讯方法,消息交换是应用系统整合的中心议题。
消息必须是高度体系结构化的,这样才能被分析和理解。这种体系结构使用抽象描述了消息元素的结构文档在服务和解决方案开发人员之间进行通信。消息结构中包括的关键信息有:元素名、数据类型(例如,整型)、值约束(例如,表示百分比的整数要求在0到100之间)以及元素是否为必需等。
消息交换形式包括事件、独白、请求响应、对话、会话。我们最熟悉的消息交换形式是请求响应:发送者打开一个到接收端口的连接,发送消息,然后收到确认。真正的过程常常更为复杂,消息的传送通常要通过中间层,例如,高速缓存、过滤防火墙和凭证管理系统。这些中间层可以说是要侦听消息,以进行部分处理或完整处理。中间层可能产生异常,例如,拒绝访问请求的授权中间层,导致返回给发送者一个错误。
侦听是消息交换的基础,消息发送者和消息接受者都必须侦听消息,正是由于侦听,消息得以沿着复杂的路径路由,以便专用系统可以参与消息处理。侦听更常见的一个应用是,使用不同的消息格式在应用系统之间进行请求转换。这种模式既可以用于在使用专有协议的系统的前面提供符合标准的接口,又可用于转换遵守过时版本的服务协定的消息。
如上所述,消息交换装置用于完成搜索消息路由、消息传送和处理,另外在分布式环境下,应用系统大部分都是异类的系统,包括消息结构都是异类的,还需要进行消息结构的转换。但是,这三个环节都是看似简单实际很复杂环节。消息结构的定义和分布式环境中的应用系统本身密切相关,消息路由的选择涉及基础通讯结构,消息处理由于分布式环境的限制而变得异常困难。
如图1所示,现有消息交换专用系统的一般是网状结构,各个厂商的系统各自独立,而且各个厂商内部也有较多互相独立的系统,如果要整合,一般在每个独立的系统上增加和另外一个独立系统的接口,如图中的110-114接口,114-计费接口,1000-97接口等等。
这种专用系统可以参与消息处理,但是存在以下缺点:由于网络传输(尤其在异种网络之间的传输)的不可靠性,消息交换过程中容易出错,导致一个消息多个应答或者无应答;其次,由于路由控制策略的选择错误,导致消息无法按照业务处理先后顺序(业务流程)到达各个消息接收者,要么消息接收者收到错序的消息,要么消息的传送路径混乱。
因此有必要提供一种分布式环境中使用的新的消息交换方法和装置,能够消除前两个缺点,同时结构简单,不影响消息交换的速度。
发明内容
本发明要解决的技术问题是提供一种分布式环境中消息交换的实现方法,可以简单、可靠、快速的实现应用系统间的消息交换。
为了解决上述技术问题,本发明提供了一种分布式环境中消息交换的实现方法,应用于包括消息控制模块、域名服务器、消息路由控制模块和多个节点适配模块的消息交换装置中,所述方法包括如下步骤:
(a)消息控制模块侦听到节点适配模块发起或转发的应用系统注册请求后,转发给域名服务器;
(b)所述域名服务器验证该注册请求的合法性,如果合法,保存包含该应用系统的域名(应用系统请求的域名或者DNS分配给应用系统的域名)以及IP地址、许可状态等关联信息,并返回注册成功的应答消息,否则拒绝注册;
(c)所述消息控制模块收到注册成功的应答消息后,建立和该节点适配模块的长连接,以备交换业务处理消息;
(d)所述消息控制模块侦听到节点适配模块转发的业务处理消息后,获取该业务的消息路由,转发消息给路由中第一个目标应用系统对应的节点适配模块;
(e)该节点适配模块将接收的消息转发给对应的应用系统,判断该应用系统业务处理完毕后,转发应答消息给所述消息控制模块;
(f)所述消息控制模块根据消息路由判断是否需要向下一个目标应用系统转发,如需要,根据收到的该应答消息改写并转发业务处理消息到对应的节点适配模块,返回步骤(e),如不需要,则结束。
进一步地,上述实现方法还可具有以下特点:还包括以下步骤:
所述消息控制模块监测到和节点适配模块之间的长连接断开后,通过所述域名服务器反向解析出或从保存信息中找出该连接的应用系统域名;
所述消息控制模块尝试恢复与该应用系统对应的节点适配模块的长连接,如果连接不成功,执行下一步,如果连接成功,结束;
所述消息控制模块通知所述域名服务器将该应用系统的状态修改为不许可。
进一步地,上述实现方法还可具有以下特点:所述步骤(b)中在所述域名服务器中保存的关联信息除应用系统的域名、IP地址及许可状态外,还包括侦听端口号、进程号、线程号及注册时间。
进一步地,上述实现方法还可具有以下特点:所述步骤(d)中所述消息控制模块先通过所述域名服务器验证消息发送者的许可状态,若为许可状态再获取路由,否则返回错误消息;并且,在获取路由后也通过所述域名服务器验证路由中所有目标应用系统是否都为许可状态,如果是才进行消息转发,否则返回错误消息。
进一步地,上述实现方法还可具有以下特点:如果路由中有目标应用系统为不许可状态,先发起与所述目标应用系统对应的节点适配模块的长连接,如果连接不成功,再返回错误消息,连接成功则继续消息转发。
进一步地,上述实现方法还可具有以下特点:所述消息路由为若干目标应用系统的域名的链表,消息控制模块根据该域名链表可以直接定位到节点适配模块之间的长连接链表,从而确定一条完整的消息传送路径。
进一步地,上述实现方法还可具有以下特点:所述节点适配模块在转发消息时,如果应用系统之间或者消息控制模块与应用系统之间的消息格式不同时,需进行消息格式的转换。
进一步地,上述实现方法还可具有以下特点:所述消息控制模块自定义一种标准消息结构或者选择现有标准消息结构作为其内部默认结构。
进一步地,上述实现方法还可具有以下特点:所述消息控制模块发送消息前先请求域名服务器解析域名,然后根据解析得到的包含应用系统地址、节点适配模块的进程号的关联信息找到对应的长连接;或者请求域名服务器对路由中的所有应用系统域名进行解析,得到对应的长连接链表。
本发明要解决的另一技术问题是提供一种分布式环境中的消息交换装置,可以简单、可靠、快速的实现应用系统间的消息交换。
为了解决上述技术问题,本发明提供了一种分布式环境中的消息交换装置,其特征在于,包括消息控制模块、域名服务器、消息路由控制模块和多个节点适配模块,每个节点适配模块对应连接一个应用系统,所述域名服务器、消息路由控制模块和各个节点适配模块分别与消息控制模块连接,其中:
所述节点适配模块进一步包括注册请求单元,用于向消息控制模块发起或转发注册请求;消息转发单元,用于将源应用系统发来的消息转发到消息控制模块,将消息控制模块发来的消息转发到对应的应用系统;
所述消息路由控制模块用于在收到所述消息控制模块的路由查询请求后,进行自动路由判断或者根据消息收发者身份及预定义的业务类型设置消息交换路径,并返回结果;
所述域名服务器进一步包括:域名注册单元,用于在收到注册请求时,验证该注册请求的合法性,如果合法,保存包含该应用系统的域名、IP地址及许可状态的关联信息,返回注册成功的应答消息,否则拒绝注册;域名解析单元,用于根据所述消息控制模块的请求解析出域名关联信息中的一个或者多个信息项;
所述消息控制模块进一步包括:长连接建立单元,用于在注册成功或需要恢复时,建立消息控制模块与节点适配模块的长连接;消息交换控制单元,用于完成注册请求和业务处理中的合法性验证、路由查询和交换控制。
进一步地,上述消息交换装置还可具有以下特点:所述节点适配模块还包括结构转换单元,用于在应用系统之间或者消息控制模块与应用系统之间的消息格式不同时,完成消息格式的转换操作。
进一步地,上述消息交换装置还可具有以下特点:所述域名服务器还包括信息更新单元,用于根据消息控制模块的通知,更新存储的相应域名关联信息;同时,所述消息控制模块还包括:长连接管理单元,用于监测长连接状态,在长连接断开后触发长连接建立单元尝试恢复连接,在多次无法接通后,通知所述域名服务器将对应应用系统的状态修改为不许可。
进一步地,上述消息交换装置还可具有以下特点:所述消息交换控制单元进一步包括:
注册控制子单元,用于在收到节点适配模块的注册请求消息后转发到域名服务器,如果域名服务器返回失败消息,则给节点适配模块发送错误消息,否则触发长连接建立单元建立与该节点适配模块的长连接;
路由查询子单元,用于向消息路由控制模块发送路由查询请求,在请求中提供消息收发者身份、业务类型,并接收路由查询结果;
业务处理子单元,用于在收到节点适配模块转发的业务处理消息后,触发查询路由,向路由中的第一个目标应用系统发送消息,在得到应答后,改写消息并转发给下一个目标应用系统,直到消息路由终点。
进一步地,上述消息交换装置还可具有以下特点:所述消息交换控制单元还包括状态验证子单元,用于请求域名服务器解析出应用系统的状态,并接收返回的状态信息;所述业务处理子单元还验证业务的源应用系统和所有目标应用系统的状态,如至少有一个不许可,则业务失败。
由上可知,本发明通过消息控制模块的集中管理,在节点适配模块和消息控制模块之间建立的长连接,能适应异种应用系统集成平台的稳定可靠、快速的要求。此外,采用域名服务器使异种应用系统的消息控制简化,轻易实现异种应用系统之间的通讯;在消息路由控制模块和域名服务器的配合下,其消息交换路径极为清晰,路由寻址将在线性时间内完成,还能智能控制消息路由选择。
附图说明
图1是现有消息交换系统的结构图。
图2是本发明实施例消息交换装置的结构框图。
图3是本发明实施例节点适配模块对两种消息格式相互转换的示意图。
图4是本发明实施例装置的路由选择示意图。
图5是本发明实施例域名地址薄中信息组成的示例图。
图6是本发明实施例方法一个应用实例的消息交换示意图。
图7是本发明实施例方法应用系统注册的流程图。
图8是本发明实施例方法应用系统业务处理的消息交换流程图。
具体实施方式
下面参照附图对本发明的实施例进行详细说明。
图2是本实施例消息交换装置的结构框图,图中只示出了模块一级的结构。如图所示,该消息交换装置包括消息控制模块、域名服务器、消息路由控制模块和多个节点适配模块。每个节点适配模块都连接到一个异类或同类的应用系统,域名服务器、消息路由控制模块和各个节点适配模块分别与消息控制模块连接。其中:
节点适配模块(NAM)适配于特定应用系统,提供应用系统和消息控制模块的消息代理操作。进一步包括:注册请求单元,用于向消息控制模块发起或转发注册请求(可通过节点适配模块到消息控制模块的短连接进行);消息转发单元,用于将源应用系统发来的消息存储转发到消息控制模块,将消息控制模块发来的消息存储转发到对应的应用系统,转发的消息主要是业务处理消息和相关的应答消息;以及结构转换单元,用于在应用系统之间或者消息控制模块与应用系统之间的消息格式不同时,完成消息格式的转换操作。
本实施例装置用于分布式环境下,该环境下的应用系统大部分都是异类的系统,包括消息结构都是异类的,所以消息转换是重要的环节。图3展示了两种消息格式之间的转换过程示例。图中上层是源数据转换,其中左侧是消息结构中的信息域,中间是应用系统1的消息中“业务类型”元素格式,右侧是应用系统2的消息中“处理类型”元素格式,这两种元素实际上含义相同。图中下层是数据转换,其中中间是应用系统1“业务类型”元素的值,右侧是应用系统1“处理类型”元素的值。
本实施例该装置可自定义一种标准消息结构,或者选择现有标准消息结构作为本装置内部默认结构,以便后开发的应用系统(还有改造的应用系统)采用。这样消息控制模块就可以选择这种相对更优的消息格式为其默认消息格式,图中的消息转换示例也表示了消息控制模块的消息格式和应用系统的消息格式转换。
消息路由控制模块,用于在收到消息控制模块的路由查询请求后,进行自动路由判断或者根据消息收发者身份及预定义的业务类型设置消息交换路径,并返回结果。应用系统域名能够辅助消息路由控制模块达到路由选择控制目的。消息交换可分为以下五种情况:
1)只涉及两个应用系统,单向的,消息路由为:域名1→域名2。
2)只涉及两个应用系统,但是双向的,消息路由为:域名1→域名2→域名1。
3)涉及多个应用系统,单向的,消息路由为:域名1→域名2→域名3→...→域名n。
4)涉及多个应用系统,双向的,消息路由为:域名1→域名2→域名3→...→域名n→域名n-1→...→域名1。
5)涉及多个应用系统,部分双向的,消息路由为:域名1→域名2→域名...→域名n→...→域名k。
自动路由判断功能用于很简单的情况,比如两个应用系统之间的消息交换情况比较便于自动判断,可以直接给出需转发的目标应用系统。但是,消息路由控制模块更经常地需根据消息收发者身份及预定义的业务类型设置消息交换路径,如图4所示是一个路由选择的示意图,示意图中表示了一个业务的路由列表,使用域名来代表应用系统,通过域名服务器的域名解析功能可以定位节点适配模块的位置,从而找到目标应用系统的位置。
消息路由和IP路由不同,消息路由是消息交换的路径,如果业务路由列表中的某一应用系统为不许可状态或者在其中的一个环节出错,则该业务没有处理完,属于异常状态,也可以增加异常后的备用路由来提高可靠性。另外,在某个应用系统处理后,得到的结果数据会封装在应答消息中发给消息控制模块,消息控制模块需要根据路由改写发给该应用系统的消息,包括目的地址(改为下一个应用系统的地址)、数据体(刚得到的处理结果)等,然后发给下一个应用系统,直到路由的终点。
域名服务器(DNS)用于提供类似通用域名解析服务器的功能,本实施例中,应用系统的域名是全局唯一的,由对应节点适配模块的模块名称和全球唯一标志(GUID)组成。域名对应于域名服务器地址薄中的一个条目,如图5所示,这个条目包含域名、计算机地址、侦听端口、进程号、线程号等,这些信息有层次关系,单是地址可能无法定位应用系统。
从功能上可以把域名服务器进一步分为域名注册单元、域名解析单元和信息更新单元。其中,域名注册单元用于在收到注册请求时,根据节点适配模块请求的域名或者消息控制模块分配的域名判定是否合法,比如检查域名是否重复,计算机地址是否正确等,如果合法则在地址薄上加上相应条目,然后通知消息控制模块注册成功,否则直接通知注册失败。域名一旦注册不会轻易注销,如果应用系统由于失效等原因需要注销,那么在域名服务器上手工注销;如果因为非法、网络故障等原因,应用系统不可用,那么修改该域名状态为不许可,而不注销。
域名解析单元用于根据消息控制模块的请求,解析出地址薄域名相关条目中的一个或者多个信息项。在域名注册的判定过程和根据路由中的应用系统域名转发消息时,是用于解析出该域名对应的所有关键信息,其中IP地址不可缺少,而在业务处理涉及消息交换时,因为长连接已经建立,故解析结果主要是域名对应的应用系统的状态。地址薄中的许可/不许可状态表示该应用系统是否处于可用或者允许别人使用的状态,不许可可能是因为长连接断开、该应用系统非法等原因。此外,域名解析单元还在收到消息控制模块发送的反向解析请求后,根据节点适配模块名称、地址、进程号等信息反向解析出域名,返回消息控制模块。
信息更新单元用于根据消息控制模块的通知,更新地址薄中的相应信息项,例如根据通知将应用系统的状态修改为不许可等。
消息控制模块(MCM),进一步包括长连接建立单元、长连接管理单元和消息交换控制单元,消息控制模块和各模块间始终存在请求消息和应答消息。其中:
长连接建立单元用于建立消息控制模块与节点适配模块的长连接(节点适配模块和应用系统是一对一的,其中的连接可以是短连接或者长连接,本发明不做限定)。本实施例中,长连接建立单元可以在以下情况下发起建立长连接:A、在节点适配模块注册成功后;B,在长连接断开后请求域名服务器进行反向解析,再发起若干次与所得域名对应的应用系统的长连接;C,在消息交换控制单元根据路由在没有对应长连接的情况下,可以由连接建立子单元先发起建立长连接,后和相应的应用系统交换消息。
长连接管理单元用于监测长连接的状态,在长连接因节点适配模块主动断开或者网络中断等原因而断开后,触发长连接建立单元尝试恢复连接(可进行若干次),如果失败,通知域名服务器将对应应用系统的状态修改为不许可。
消息交换控制单元,用于完成注册请求和业务处理中的合法性验证、状态验证、路由查询和交换控制等功能,又包含:
注册控制子单元,用于在收到节点适配模块的注册请求消息后转发到域名服务器,如果域名服务器返回失败消息,则给节点适配模块发送错误消息,否则触发长连接建立单元建立与该节点适配模块的长连接;
状态验证子单元,用于请求域名服务器解析出应用系统的状态,并接收返回的状态信息;
路由查询子单元,用于向消息路由控制模块发送路由查询请求,在请求中提供消息收发者身份(即域名)、预定义的业务类型等信息,并接收路由查询结果;
业务处理子单元,用于在收到节点适配模块转发的业务处理消息后,触发查询路由和对应用系统状态的验证,向路由中的第一个应用系统发送消息,在得到应答后,改写消息并转发给下一个应用系统,直到消息路由终点;如果源应用系统或路由中的某一应用系统状态为不许可或处理时出错,则该业务失败。上述的注册控制子单元和状态验证子单元也起到对消息收发者进行身份确认的作用,进一步还可以增加权限、许可证等身份验证功能。
本实施例的消息路由选择是根据预定义或者动态生成的消息交换路径(类似路由表)来决定并发送消息到下一个节点,这里的节点是指处理业务的应用系统,不是下一个路由器的地址。本实施例提供了一个集中的路由控制模块来决定可选路径,没有传统路由器负责传输信息数据包的功能。
由于专用的域名服务器为应用系统分配一个全局域名,实际上简化应用系统及其相关信息的分类管理,同时也简化了消息路由选择。由于消息控制模块和节点适配模块在消息交换的时候必定有长连接建立,域名和长连接也有一对一的关系,所以数据链路的选择速度必会加快。路由控制模块的路由不管是预定义的还是动态产生的,都是一系列应用系统的域名的链表,消息控制模块根据该链表产生消息控制模块和节点适配模块之间长连接的链表,此处的长连接直接定位节点适配模块代理的应用系统,从而确定一条完整的消息传送路径。图4中域名到节点适配模块的定位,就是通过应用域名-->系统-->节点适配模块-->长连接的相互关系确立起来的。
如图6所示,110接到一个手机被盗的人的报警电话,110备案后转到114查询被盗号码的真实身份以及运营商,然后转到1000挂失停机,最后转到110处。消息传送路径为,110→消息控制模块→114→消息控制模块→1000→消息控制模块→110。
本实施例装置在分布式计算环境中同种或异种应用系统之间可以使用一个或者多个,作为分布式环境中各个应用系统的通讯基础,相当于为各个应用系统提供了总线型消息交换结构,还可以作为一个应用系统连接到另外一个上述装置中。
如图7所示是本实施例方法应用系统注册的流程图,包括以下步骤:
步骤110,消息控制模块内部创建一个连接池(比如创建线程池,每个线程都可以建立和届电视配模块的长连接),并侦听节点适配模块发起或转发的消息;
步骤120,节点适配模块向消息控制模块发起(或转发)应用系统的注册请求消息,请求中带有该应用系统的IP地址和节点适配模块的侦听端口号、进程号、线程号等;
步骤130,消息控制模块转发注册请求给域名服务器;
步骤140,域名服务器根据节点适配模块请求的域名或者消息控制模块分配的域名及其关联信息判定注册请求是否合法,如果是,执行下一步,否则,执行步骤170;
步骤150,域名服务器批准注册,在域名地址薄保存该应用系统的域名、计算机IP地址、侦听端口号、进程号、线程号、注册时间和身份许可状态(注册时为许可)等信息,并向消息控制模块返回域名注册成功的应答消息;
步骤160,消息控制模块收到注册成功的消息后,以长连接方式连接节点适配模块,注册结束;
步骤170,域名服务器拒绝注册,向消息控制模块返回域名注册失败的应答消息;
步骤180,消息控制模块收到注册失败的消息后,向节点适配模块发送注册失败消息。
如图8所示是本实施例方法跨越应用系统业务处理的消息交换流程图,包括以下步骤:
步骤210,消息控制模块侦听节点适配模块发起或转发的消息;
步骤220,源应用系统需要其他应用系统处理业务时,发送业务处理请求到对应的节点适配模块;
步骤230,节点适配模块存储转发源应用系统发起的消息给消息控制模块,必要时进行格式转换;
步骤240,消息控制模块接收到该转发消息后,通过域名服务器验证源应用系统的许可状态,若为不许可则返回错误消息给节点适配模块,否则执行下一步;
步骤250,消息控制模块通过消息路由控制模块获取消息路由中所有目标应用系统的域名列表;
步骤260,消息控制模块通过域名服务器验证消息路由所有目标应用系统的许可状态,若至少有一个处于不许可状态,返回错误消息给节点适配模块,否则向执行下一步;
步骤270,消息控制模块向路由中的第一个目标应用系统对应的节点适配模块发送业务处理消息,发送消息时先向域名服务器解析域名,然后根据解析得到的应用系统地址、节点适配模块的进程号找到对应的长连接,该解析过程也可以在步骤250中进行,即请求域名服务器对列表中的所有域名进行解析,然后得到对应的长连接链表;
步骤280,该节点适配模块接收消息并转发给对应的应用系统,在该应用系统业务处理完毕后,转发应答消息给消息控制模块;
步骤290,消息控制模块收到该应答消息后,根据路由判断是否需要向下一个目标应用系统转发,若需要,执行下一步,否则已到达消息路由终点,结束;
步骤300,消息控制模块根据上一节点适配模块的应答消息改写并向下一应用系统的节点适配模块转发消息,返回步骤280;
如果业务处理成功或在后续环节中出错后,消息控制模块还可向最初的节点适配模块返回成功或失败消息。另外,在上述步骤260中,如果存在不许可状态的目标应用系统,也可以先尝试建立与其的长连接,如果成功,则继续执行步骤270。
除了上述流程外,本实施例消息交换装置在运行过程中,如果因为网络故障导致长连接断开,而域名解析结果没有暂存在消息控制模块中,则执行以下的处理流程:
消息控制模块监测到和节点适配模块之间的长连接断开,向域名服务器发送反向解析请求,提供节点适配模块名称、地址、进程号等信息;
域名服务器在收到该反向解析请求后,根据地址薄中的条目反向解析出相应的域名,返回消息控制模块;
消息控制模块尝试恢复与所得域名对应的节点适配模块的长连接(可以进行多次),如果连接成功,则结束,否则执行下一步;
消息控制模块通知域名服务器将对应应用系统的状态修改为不许可。
如果长连接断开后,消息控制模块中暂存有域名解析结果,就没有必要解析域名。
Claims (14)
1、一种分布式环境中消息交换的实现方法,应用于包括消息控制模块、域名服务器、消息路由控制模块和多个节点适配模块的消息交换装置中,所述方法包括如下步骤:
(a)消息控制模块侦听到节点适配模块发起或转发的应用系统注册请求后,转发给域名服务器;
(b)所述域名服务器验证该注册请求的合法性,如果合法,保存包含该应用系统的域名、IP地址及许可状态的关联信息,并返回注册成功的应答消息,否则拒绝注册;
(c)所述消息控制模块收到注册成功的应答消息后,建立和该节点适配模块的长连接,以备交换业务处理消息;
(d)所述消息控制模块侦听到节点适配模块转发的业务处理消息后,获取该业务的消息路由,转发消息给路由中第一个目标应用系统对应的节点适配模块;
(e)该节点适配模块将接收的消息转发给对应的应用系统,判断该应用系统业务处理完毕后,转发应答消息给所述消息控制模块;
(f)所述消息控制模块根据消息路由判断是否需要向下一个目标应用系统转发,如需要,根据收到的该应答消息改写并转发业务处理消息到对应的节点适配模块,返回步骤(e),如不需要,则结束。
2、如权利要求1所述的实现方法,其特征在于,还包括以下步骤:
所述消息控制模块监测到和节点适配模块之间的长连接断开后,通过所述域名服务器反向解析出或从保存信息中找出该连接的应用系统域名;
所述消息控制模块尝试恢复与该应用系统对应的节点适配模块的长连接,如果连接不成功,执行下一步,如果连接成功,结束;
所述消息控制模块通知所述域名服务器将该应用系统的状态修改为不许可。
3、如权利要求1所述的实现方法,其特征在于,所述步骤(b)中在所述域名服务器中保存的关联信息除应用系统的域名、IP地址及许可状态外,还包括侦听端口号、进程号、线程号及注册时间。
4、如权利要求1所述的实现方法,其特征在于,所述步骤(d)中所述消息控制模块先通过所述域名服务器验证消息发送者的许可状态,若为许可状态再获取路由,否则返回错误消息;并且,在获取路由后也通过所述域名服务器验证路由中所有目标应用系统是否都为许可状态,如果是才进行消息转发,否则返回错误消息。
5、如权利要求4所述的实现方法,其特征在于,如果路由中有目标应用系统为不许可状态,先发起与所述目标应用系统对应的节点适配模块的长连接,如果连接不成功,再返回错误消息,连接成功则继续消息转发。
6、如权利要求1所述的实现方法,其特征在于,所述消息路由为若干目标应用系统的域名的链表,消息控制模块根据该域名链表可以直接定位到节点适配模块之间的长连接链表,从而确定一条完整的消息传送路径。
7、如权利要求1所述的实现方法,其特征在于,所述节点适配模块在转发消息时,如果应用系统之间或者消息控制模块与应用系统之间的消息格式不同时,需进行消息格式的转换。
8、如权利要求1所述的实现方法,其特征在于,所述消息控制模块自定义一种标准消息结构或者选择现有标准消息结构作为其内部默认结构。
9、如权利要求1所述的实现方法,其特征在于,所述消息控制模块发送消息前先请求域名服务器解析域名,然后根据解析得到的包含应用系统地址、节点适配模块的进程号的关联信息找到对应的长连接;或者请求域名服务器对路由中的所有应用系统域名进行解析,得到对应的长连接链表。
10、一种分布式环境中的消息交换装置,其特征在于,包括消息控制模块、域名服务器、消息路由控制模块和多个节点适配模块,每个节点适配模块对应连接一个应用系统,所述域名服务器、消息路由控制模块和各个节点适配模块分别与消息控制模块连接,其中:
所述节点适配模块进一步包括注册请求单元,用于向消息控制模块发起或转发注册请求;消息转发单元,用于将源应用系统发来的消息转发到消息控制模块,将消息控制模块发来的消息转发到对应的应用系统;
所述消息路由控制模块用于在收到所述消息控制模块的路由查询请求后,进行自动路由判断或者根据消息收发者身份及预定义的业务类型设置消息交换路径,并返回结果;
所述域名服务器进一步包括:域名注册单元,用于在收到注册请求时,验证该注册请求的合法性,如果合法,保存包含该应用系统的域名、IP地址及许可状态的关联信息,返回注册成功的应答消息,否则拒绝注册;域名解析单元,用于根据所述消息控制模块的请求解析出域名关联信息中的一个或者多个信息项;
所述消息控制模块进一步包括:长连接建立单元,用于在注册成功或需要恢复时建立消息控制模块与节点适配模块的长连接;消息交换控制单元,用于完成注册请求和业务处理中的合法性验证、路由查询和交换控制。
11、如权利要求10所述的消息交换装置,其特征在于,所述节点适配模块还包括结构转换单元,用于在应用系统之间或者消息控制模块与应用系统之间的消息格式不同时,完成消息格式的转换操作。
12、如权利要求10所述的消息交换装置,其特征在于,所述域名服务器还包括信息更新单元,用于根据消息控制模块的通知,更新存储的相应域名关联信息;同时,所述消息控制模块还包括:长连接管理单元,用于监测长连接状态,在长连接断开后触发长连接建立单元尝试恢复连接,在多次无法接通后,通知所述域名服务器将对应应用系统的状态修改为不许可。
13、如权利要求10所述的消息交换装置,其特征在于,所述消息交换控制单元进一步包括:
注册控制子单元,用于在收到节点适配模块的注册请求消息后转发到域名服务器,如果域名服务器返回失败消息,则给节点适配模块发送错误消息,否则触发长连接建立单元建立与该节点适配模块的长连接;
路由查询子单元,用于向消息路由控制模块发送路由查询请求,在请求中提供消息收发者身份、业务类型,并接收路由查询结果;
业务处理子单元,用于在收到节点适配模块转发的业务处理消息后,触发查询路由,向路由中的第一个目标应用系统发送消息,在得到应答后,改写消息并转发给下一个目标应用系统,直到消息路由终点。
14、如权利要求13所述的消息交换装置,其特征在于,所述消息交换控制单元还包括状态验证子单元,用于请求域名服务器解析出应用系统的状态,并接收返回的状态信息;所述业务处理子单元还验证业务的源应用系统和所有目标应用系统的状态,如至少有一个不许可,则业务失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100793372A CN100440872C (zh) | 2004-10-01 | 2004-10-01 | 一种分布式环境中消息交换的实现方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100793372A CN100440872C (zh) | 2004-10-01 | 2004-10-01 | 一种分布式环境中消息交换的实现方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1756241A CN1756241A (zh) | 2006-04-05 |
CN100440872C true CN100440872C (zh) | 2008-12-03 |
Family
ID=36689181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100793372A Expired - Fee Related CN100440872C (zh) | 2004-10-01 | 2004-10-01 | 一种分布式环境中消息交换的实现方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100440872C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012024909A1 (zh) * | 2010-08-27 | 2012-03-01 | 中兴通讯股份有限公司 | 长连接管理装置及长连接通讯的链路资源管理方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101820351B (zh) * | 2009-02-27 | 2013-08-07 | 华为技术有限公司 | 一种用于发现p2p流量优化服务的方法、装置和系统 |
CN102291254B (zh) * | 2011-07-05 | 2016-06-01 | 厦门雅迅网络股份有限公司 | 一种应用系统的子系统之间的通信管理方法 |
CN103188771B (zh) * | 2011-12-27 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 长链接的断开、恢复的方法和装置 |
CN104348924A (zh) | 2013-07-30 | 2015-02-11 | 深圳市腾讯计算机系统有限公司 | 一种域名解析方法、系统及装置 |
CN106470247B (zh) * | 2015-08-19 | 2019-08-20 | 互联网域名系统北京市工程研究中心有限公司 | 域名代理注册方法和装置 |
CN105279036B (zh) * | 2015-12-04 | 2019-10-25 | 上海斐讯数据通信技术有限公司 | 进程间通信方法、装置及电子设备 |
CN111064713B (zh) * | 2019-02-15 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 一种分布式系统中的节点控制方法和相关装置 |
CN113805788B (zh) * | 2020-06-12 | 2024-04-09 | 华为技术有限公司 | 一种分布式存储系统及其异常处理方法和相关装置 |
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 |
CN1368810A (zh) * | 2001-02-02 | 2002-09-11 | 北京翔智信息技术有限公司 | 分布式信息交换和处理系统及方法 |
CN1384691A (zh) * | 2001-05-07 | 2002-12-11 | Lg电子株式会社 | 用于多机种网络间互通的移动应用部分消息处理系统和方法 |
CN1487700A (zh) * | 2001-03-10 | 2004-04-07 | 华为技术有限公司 | 互通代理装置及不同协议网络之间进行互通的系统和方法 |
-
2004
- 2004-10-01 CN CNB2004100793372A patent/CN100440872C/zh not_active Expired - Fee Related
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 |
CN1368810A (zh) * | 2001-02-02 | 2002-09-11 | 北京翔智信息技术有限公司 | 分布式信息交换和处理系统及方法 |
CN1487700A (zh) * | 2001-03-10 | 2004-04-07 | 华为技术有限公司 | 互通代理装置及不同协议网络之间进行互通的系统和方法 |
CN1384691A (zh) * | 2001-05-07 | 2002-12-11 | Lg电子株式会社 | 用于多机种网络间互通的移动应用部分消息处理系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012024909A1 (zh) * | 2010-08-27 | 2012-03-01 | 中兴通讯股份有限公司 | 长连接管理装置及长连接通讯的链路资源管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1756241A (zh) | 2006-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1700680B (zh) | 使用服务器池时有效的消息路由 | |
US10003968B2 (en) | Apparatus and system effectively using a plurality of authentication servers | |
CN100463405C (zh) | 基于群组的通信方法及系统 | |
CN1586065B (zh) | 利用网络地址转换的对等网络通信方法、设备及系统 | |
US6237037B1 (en) | Method and arrangement relating to communications systems | |
CN1972302B (zh) | 按照会话启动协议发送系统消息的系统和方法 | |
JP4833995B2 (ja) | モバイルオンラインゲームシステム、及びモバイルゲーム端末間の通信方法 | |
CN102893572A (zh) | 为在线通信会话注册客户计算设备 | |
CN101232375B (zh) | 单点登录系统、信息终端设备、单点登记服务器及方法 | |
CN1633795A (zh) | 用户的服务实体之间的灵活用户分布 | |
US6823055B1 (en) | Method for a communication network that allows inter-node user mobility | |
JPH0657007B2 (ja) | ローカルエリア網 | |
CN101394371A (zh) | 用于实现聊天应用程序代理服务器的方法和系统 | |
CN100440872C (zh) | 一种分布式环境中消息交换的实现方法及其装置 | |
JPH10105516A (ja) | ネットワーク認証システム | |
JP2009271651A (ja) | 家電等の宅内のローカル端末に対するsipセッション制御方式 | |
CN101322114B (zh) | 注册分布式服务站点的方法和系统 | |
US20070254637A1 (en) | Device, Method and Computer Program Product Readable Medium for Establishing a Communication Session | |
US20050259666A1 (en) | Method for distributing and collecting address information | |
CN101296196B (zh) | 一种鉴权方法及鉴权装置 | |
US20100263024A1 (en) | Methods, apparatus and systems for accessing vehicle operational data using an intelligent network router | |
US9712683B2 (en) | Communication agent method | |
JP2008067367A (ja) | 通信転送システム、機器およびプログラム | |
US20070233796A1 (en) | Automatic verification of messenger contact data | |
JP4499702B2 (ja) | メール作成サーバおよびメール送信方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081203 Termination date: 20171001 |
|
CF01 | Termination of patent right due to non-payment of annual fee |