应用整合的管道和过滤器

[2014年2月10日,陕西西安]在应用整合集成中,一个事件会触发一系列的处理步骤,每个步骤都要完成特定的功能。例如,假设应用整合中有订单的信息以消息的形式传递,则一般有两个要求:第一是消息必须加密以保证安全;第二是要求消息中包含认证信息以确保订单是可靠的客户所下。

如果用一个完备的消息处理模块来完成所有必需的功能,则该模块不够灵活、难于测试,还减少了重用的机会。由此,设计功能单一的组件来完成独立的处理步骤不仅可以保障软件的质量,而且能够在其他处理模块中复用这些组件,事实上,应用集成通常要连接多个异构系统,不同的处理步骤往往需要在不同的计算机上执行。例如处于安全原因,用于解密输入消息的私有密钥可能只能在指定的计算机上获得,解密组件也只能在这台指定的计算机上执行。而其他步骤可能在另外的计算机上执行。

由此,需要用管道和过滤器的体系结构来灵活可靠地实现消息处理的任务,把较大的处理任务划分为一袭列较小的独立处理步骤(过滤器),这些步骤由管道连接起来。每个过滤器都通过规范的接口从入站管道接受消息,处理消息,然后把结果发布给出站管理。过滤器是专门针对消息携带的数据,并不改变消息的流向,对消息头也不做处理。管道连接过滤器,并把前一个过滤器输出的消息发送给下一个过滤器。所有组件都使用相同的外部接口,因此通过把组件连接到不同的管道,就可以这成不同的整合方案。

管道和过滤器模式适用抽象管道使组件之间实现了解耦合。利用管道,一个组件把消息发送到管道中,以后由另一个过程来处理管道中的消息,发送消息的组件并不知道有谁来处理消息。可见这种管道可以用消息通道来实现,消息通道可以在过滤器之间建立与语言、平台和位置无关的通道,使得可以方便灵活地转移到不同的计算机上完成某些处理步骤。

单纯的管道和过滤器允许每个过滤器只能一个输入端口和一个输出端口。处理消息过程时,可以适当放松这一限制。一个组件可以处理来自多个通道的消息,也可以把消息输出到多个消息通道中。同样地,多个过滤器组件可以处理来自同一个消息通道的消息。点对点通道会确保每个消息只能由一个过滤器处理。

本文来源:时光·协同
更多
相关文章
关注我们
媒介联系

Email:marketing@cicro.com

TEL:(8629)87579521

FAX:(8629)87579518