关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于接收表的ESB研究与设计

基于接收表的ESB研究与设计

作者:时间:2009-12-16来源:网络收藏

(Enterprise Service Bus,企业服务总线),提供了消息交互的基础结构,使得消息可以传输到对应的服务中去。目前大多数的系统都是采用基于内容的路由算法,即根据消息的内容把消息路由到正确的服务单元。当有较多服务单元接收消息时,此种算法的工作效率将大幅下降,也会承担较大的负载,使得整个系统集成的效率降低。常规的解决方案是把判断服务单元是否应该接收消息的逻辑分布到各个服务单元上,但此方法增加了维护的负担。为了保持集中控制,可以在每条消息附带的列表中指定这个消息所面向的接收者。这样,当消息被广播给所有可能的接收者时,不在接收者列表中的各个接收者可以丢掉该消息。
但采用这种方法的缺点是效率低,每个潜在的接收者必须处理每一条消息。并且,如果要求消息不希望被某些接收者看到,采用这种解决方案是不适合的。例如在发送某些机密消息时,是不希望无关接收者收到消息的。
为了解决上述问题,文中提出了基于接收表的ESB路由算法,可以提高消息交互的效率和消息的保密性。

本文引用地址:http://www.eepw.com.cn/article/202595.htm


1 接收表路由算法的分析与设计
在基于接收表的路由算法中,应为每个接收者定义一个通道,可以定义一个规则库来检验输入的消息,确定需要该消息的接受者列表,并把消息转发给与列表中接收者关联的所有通道。
1.1 路由设计
在接收表的算法中,接收表路由器主要由接收者计算逻辑和消息分配器两个部分组成,消息的传递过程,如图1所示。

接收者计算逻辑首先对消息进行处理,确定此消息应该发送到哪些服务中去,计算出接收者列表,进而分配器将消息转发到服务所对应的通道中去,最后服务接收到此消息。在接收者计算逻辑中,要对消息的内容进行分析,并且要结合服务接收消息的规则来计算接收者的列表。
接收者计算逻辑应将服务者与其服务地址及服务规则进行关联,可以进行如下表示。
Routing:=ser_id,ser_name,uri,{ser_rule}>
(1)ser_id表示服务单元的编号;
(2)ser_name表示服务的名称;
(3)uri表示服务的地址;
(4){ser_rule}表示该服务单元的规则集。
ser_rule应将规则的名称和该规则要求的值进行关联,可以进行如下表示:
ser_rule:=rule_name,value>
(1)rule_name表示规则的名称;
(2)value表示规则的对应值。
接收者计算逻辑映射为xml文件的形式,并且将服务的地址和服务单元要求的规则进行了描述。


上一页 1 2 3 下一页

关键词: ESB

评论


技术专区

关闭