一种分布式企业服务总线消息交换方法

一种分布式企业服务总线消息交换方法

ID:19493001

大小:379.50 KB

页数:6页

时间:2018-10-02

一种分布式企业服务总线消息交换方法_第1页
一种分布式企业服务总线消息交换方法_第2页
一种分布式企业服务总线消息交换方法_第3页
一种分布式企业服务总线消息交换方法_第4页
一种分布式企业服务总线消息交换方法_第5页
资源描述:

《一种分布式企业服务总线消息交换方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一种分布式企业服务总线消息交换方法1.技术领域本发明涉及一种分布式企业服务总线中服务之间高效的、可靠的、支持同步/异步的消息交换的方法。2.背景技术“企业服务总线”作为应用系统的连接中枢,是构筑SOA(ServiceOrientedArchitecture,面向服务架构)为基础的企业信息系统的必要元素。企业服务总线的定义可以简单的理解为:由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。通过企业服务总线实现应用系统的快速接入,并通过更高级的事件、流程处理能力,能够很好的将企业信息系统与实际业

2、务协调起来,在保证原有投资的条件下,实现更加灵活和敏捷的企业信息系统改造。在分布式的企业服务总线中,服务的提供者和消费者可以以组件的形式部署到装有企业服务总线容器(以下简称容器)的任意一个网络节点上,并通过消息的形式实现交互。而消息必须被封装成规范的消息交换形式后,经过容器的路由功能,才能完成在消费者和提供者之间传递。消息交换作为企业服务总线的核心功能,为部署到企业服务总线上的服务提供可靠的交互机制。传统的消息交换方法一般采用远程过程调用(RPC)技术,降低系统开发的复杂度,但该技术只支持同步调用,且消息交换双方的调用接口是紧耦合的。目前比较流行的消息交换方法是采

3、用面向消息中间件(MOM),其可以支持消息的同步/异步传递和事件驱动的体系架构,同时提供消息持久化的功能。消息交换的性能是决定分布式企业服务总线的性能主要因素之一,而单纯的采用面向消息中间件技术对整个系统的性能有较大的影响。当消息交换的双方都处于分布式环境中的同一节点时,通过面向消息中间件(如JMS)传递消息性能损失较大,这正是本发明所要解决的问题。3.发明内容部署到企业服务总线上的组件之间必须以消息的方式进行交换,且该消息必须按照一定的格式进行构造。组件在发送消息时可以设置同步或异步发送、消息的交换模式和是否需要持久化。系统为每个服务提供一个用于接收消息的队列。

4、当服务消费者发送服务请求之后,其所在的容器必须根据消息中设定的地址信息对消息进行路由,确定服务提供者。接着,根据服务提供者所处的容器,可采用不同的消息交换方法。服务消费者和提供者之间的消息交换可分成两种情况:n参与消息交换的两个组件位于分布式环境中的同一节点时(即位于同一容器时),消息不需要通过JMS服务器,而是直接被保存到目标服务对应的消息队列中。若该消息需要持久化,则将其保存到文件系统中。通过这种优化策略,可以显著的提高消息交换的效率。n参与消息交换的两个服务位于分布式环境中的不同节点时(即位于不同容器时),消息被封装成JMS的消息对象,并通过JMS服务器发送

5、到以目标服务名称命名的JMS队列中。当JMS的消息消费者在接收到消息后,会将消息保存到目标服务的消息队列中。该过程中的消息持久化是由JMS服务器实现的。本发明的优点在于:n支持同步/异步的消息发送方式;n提供消息持久化的功能;n当消息交换的双方位于同一容器时,采用优化策略,提高消息交换效率。4.附图说明图1规范化消息交换结构图图2同一容器中的消息交换图图3不同容器间的消息交换图5.具体实施方式下面结合附图和实例对本发明作进一步介绍:图1描述了规范化消息交换中包括的内容。1)服务消费者在发送消息前,必须将规范化的消息放到消息交换中,然后设定服务提供者的地址(可以是服

6、务端点、服务名称或接口名称),以及在属性中设定采用的传递方式(同步或异步)。2)在服务消费者将消息发出后,其所在的容器将对消息进行路由。如果服务消费者指定的地址信息为服务名称或接口名称,则消息路由服务将查找对应的服务端点,并将该端点信息保存到服务端点中。接着,将服务端点对应的组件名称设为服务提供者ID,将服务消费者的名称设为服务消费者ID。其中组件命名方式是由组件所在的容器名和用户定义的组件名串连而成。图2描述了服务消费者和提供者在同一个容器中时的消息交换方式:1)在服务消费者构造好规范化的消息交换后,可以通过对应的消息传输通道将消息发送出去。2)服务消费者所在的

7、容器发现有消息发出后,首先判断消息发送的方式是同步还是异步:若是异步发送,则新启动一个线程,否则继续执行。接着,调用消息交换模块的消息路由服务功能。在消息路由过程中,容器根据服务信息注册表中的相关信息,确定目标端点和服务提供者。3)在确定服务提供者后,比较服务提供者ID中组件所在的容器名和服务消费者所在的容器名是否相同。若相同,则在本地容器中查找服务提供者,并将消息交换直接保存到其对应的消息传输通道中的消息队列中,同时将消息持久化。4)服务提供者在处理消息之后,可以将返回信息放到原有的消息交换中,并直接发出。5)容器在接收到返回消息后,可以根据消息交换中的服务消费

8、者ID,在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。