UML软件工程组织

EAI的架构模式

转载自计算机世界报  

EAI是企业计算一个快速发展的领域,造成这一趋势的因素有多种。这些因素来自于Internet、企业并购和合并,以及激烈的竞争带来的商业需求的快速变化。对CRM(客户关系管理)和SCM(供应链管理)集成越来越多的关注带来了更多企业内系统集成和企业间应用系统集成的需求。

在通常情况下,企业应用集成的困难来自于大量的商业需求和技术的变化。快速的业务变化和发展需要应用系统能更快地发布和使用,而且,业务上的需求需要更多的、高度的应用集成。在加速EAI开发的时候,会面对大量的中间件。然而,许多中间件并非像宣传所讲的那么好用。

企业的架构模式

架构模式(architecture pattern)是IT业界人士用来处理应用集成复杂性的一种重要方法。EAI架构模式提供了对EAI在结构上的一种视图,是成功的实施EAI的一个基础。这些模式帮助IT人士选择合适的方案和工具来扫除应用集成的障碍和困难。

在《设计模式:可重用面向对象的软件设计》一书中,Erich Gamma等对设计模式给出了如下的一个定义:

设计模式是不断发展和改进的设计方案的一种抽象。它反映了软件设计人员为了提高软件重用性和灵活性而得到的一种设计结构。

EAI架构模式也是为了提高应用系统的重用性和灵活性的一种设计方案。这种做法对于快速变化的商业时代来说是至关重要的。只有这种可变性强的IT集成方案才能跟上业务变化的步伐。

EAI架构的模式主要是针对系统或者应用程序的整体结构。架构模式被定义为软件系统的基础的结构化模式。它提供了一系列定义好的子系统,定义了它们之间的关系和组织这些关系的规则。

EAI的架构模式和这个定义是一致的。架构模式包括集成适配器(Integration Adapter)、集成消息器(Integration Messenger)、集成面(Integration Facade)、集成媒介器(Integration Mediator),和设计模式是一致的。架构模式和设计模式不同的地方是:架构模式指明的是系统级的结构属性,并且会对子系统的结构产生影响;而设计模式却不会影响子系统的结构。

EAI架构模式的共同特点是解藕——将系统之间的相互依赖最小化,这样就提供了更好的灵活性和更强的独立性。

EAI的四种架构

1.集成适配器模式

对IT组织来说,将一个遗留的封闭系统的服务对其他应用系统开放的做法越来越常见。集成适配器描述的是将一个未加以集成的应用系统服务导出到其他应用程序的一种架构模式。一旦这种服务被导出后,这个应用程序的功能就变成可以满足业务需求的可重用的资产。

集成适配器模式提供了一种将可重用的应用程序导出来的灵活方式。这种架构模式和适配器的设计模式有同样的出发点——将一个已有的服务器端应用接口转换成一个客户端程序所期望的接口。这种架构模式的另一个出发点是可以为多个客户端应用程序提供一个统一的可重用的接口。

在图1中,集成适配器将一个特定的接口转换为一个开放的、可重用的接口。这种模式的参与者是一个或者多个客户端应用程序和服务器端应用程序。客户端应用程序通过适配器接口调用服务器上的应用程序的服务。这个适配器将导出的公共应用程序接口(API)转换为服务器端的API。适配器并不需要知道客户端应用程序的存在。对于服务器端应用程序来说,它可能并不知道这个适配器的存在;而另外一种情况,服务器端应用程序会由于适配器的存在而做一定程度的修改。

2.集成消息器模式

集成消息器是指在提供集成的同时将应用程序之间的交互逻辑解藕的一种架构模式。这种架构模式带来的益处是使应用程序之间的通信相互依赖性降低到最小。要实现这种目标就需要依赖于这种灵活的集成方式。这种模式支持如下三种通信模型:

● 一对一同步(请求/响应)。这种模型涉及了单个客户端应用程序和单个服务器端应用程序。客户端应用程序等待服务器端应用程序的响应。

● 一对一异步(消息队列)。这种模型涉及了单个客户端应用程序和单个服务器端应用程序。客户端应用程序并不等待服务器端应用程序的响应。

● 一对多异步(发布和预定)。这种模型涉及了一个客户端应用程序和一个或者多个服务器端应用程序。

虽然这种模式的通信模型是多样化的,但其目的是一样的,使得应用程序之间的通信具备尽可能小的相互依赖性,如图2所示。

这种模式的参与者是被集成的应用程序和集成消息器。集成消息器负责在应用程序间发布消息,并且提供透明的消息定位服务。

3. 集成正面模式

Facade指的是建筑物的正面。而在设计模式中,Facade指的是通过统一的、简化的接口,来隐藏接口背后的设施。

集成正面模式描述的是将客户端应用程序和服务器端应用程序集成起来的一种集成方案。这种架构模式和Facade设计模式的出发点是一样的。不过,这种架构模式提供了级别更高的、更加简化的接口供客户端应用程序使用,以使客户端应用程序和服务器端应用程序的依赖性、相关性降至最小,这样就获得了应用程序的灵活性和重用性。集成正面的模式如图3所示。

这种架构模式可以为一个或者多个客户端应用程序提供统一的、简化的接口。这种集成正面模式的参与者是一个或者多个客户端应用程序,一个或者多个服务器端应用程序,以及集成正面。客户端应用程序可以调用集成正面的服务。这种模式抽象了服务器端应用程序的功能,使其更易于使用。集成正面将其接口转换成为服务器端应用程序的接口。实际上,应用程序执行了具体的工作,而集成正面的作用是将其自身的接口转换为服务器端应用程序的接口。在这种架构模式中,集成正面不知道客户端应用程序的存在,服务器端应用程序也无须知道集成正面的存在。

4.集成媒介器模式

集成媒介器模式指的是将应用程序的交互逻辑封装起来,然后从应用程序中剥离出来,加以集成。这种方案的优点在于:

● 将应用程序之间的依赖性以及对现有的应用程序的影响最小化;

● 由于应用程序的交互逻辑不是分布在应用程序中,而是集中起来,这样维护的工作量将达到最小。

集成媒介器模式如图4所示。这种模式包括一个集成媒介器以及两个或者多个应用程序。集成媒介器包含的是系统的交互逻辑。参与的应用程序直接和集成媒介器交互,而不是和其他的应用程序交互。

由于交互逻辑被集中到了集成媒介器,这种模式使系统获得了更好的灵活性,提高了业务的敏捷性。

通过以上论述,可以发现使用架构模式,可以提高系统的重用性和灵活性,降低EAI集成的复杂性和EAI实施可能存在的风险。

 

 


版权所有:UML软件工程组织