TIBCO企业应用解决方案 之EAI解决方案:Business Works + Adapters 1

 

TIBCOEAI解决方案主要包括两个产品Business WorksAdapters两个产品。之前的文章中概括过EAI平台提供的主要功能:

a)定义了中间层数据类型,数据格式,接口规范,接口通信方式和通信协议。

b)平台去做已有系统和中间层之间的数据格式转换。

c)对已有系统接口的封装,提供统一的接口。

d)使用图形工具进行流程编排,编写数据转换和映射规则。由EAI平台引擎来执行。

Business Works主要负责EAI流程编排和运行,Adapters来对已有系统或技术的接口进行封装,做已有系统和中间层之间的数据格式转换。底层使用TIBCO的消息中间件进行传输。接下来分四个小节来分析这两个产品。

1.TIBCO EAI解决方案结构功能特点

2.统一的中间层数据接口定义

3.自动流程的实现

4.应用场景和典型案例分析

TIBCO EAI 解决方案结构功能特点。TIBCO EAI结构图如下:

 

说明:

(1)     Business Works Adapters产品都包含设计时编排配置工具和运行时引擎。

(2)     Business Works流程中的基本功能单元组件完成一些基本操作:文件操作,XML数据解析,JDBC数据库访问,收发邮件等;封装一些基于各种通信协议的数据包收发操作TCP, HTTP,  JMSFTP等;封装一些组件技术接口:Web ServiceSOAP。在流程内部使用中间层的数据定义,每种类型的组件负责做中间层和目标之间数据转化,封装相应的接口。

(3)     对于复杂目标应用和技术,如果依然实现为BW里的功能组件,则这些组件会过于复杂,整个流程的工作负载也过大,所以TIBCO采用Adapters 适配器的解决方法。

Adapter独立于流程运行,功能和BW流程中的功能组件类似:在中间层和目标之间做双向的数据转换,封装目标系统或者技术的接口,管理与目标系统之间的连接。不同的目标系统或者技术有不同的Adapter产品:产品类的AdapterTuxedo, MQ, Oracle Apps, Siebel 等;技术类的AdapterEJB, COM, CORBASWIFT等。AdapterAdapter之间, AdapterBW流程之间都通过消息总线进行互联。

(4)     基于基本的组件可以编排逻辑流程,支持分支选择,循环,分布式事务,子流程调用等特性。

(5)     通过BW内部的功能组件和Adapter的封装,在流程内部处理的数据既是中间层的统一的数据定义。BW在流程内部使用XML格式的数据,功能组件之间的数据映射由XSLT描述,提供图形化的数据映射工具。

流程功能组件之间数据映射示意图

      

(6)     Business Works流程代表一系列的操作任务,这些任务由Business Works引擎来执行,每个任务的触发条件称作事件,所以也叫做事件驱动流程。通常事件都是通信的服务端,接收到通信协议数据包后触发一个流程任务的执行。BW也提供客户端组件用来向服务端发送请求。

(7)     任意数目流程实例和Adapter实例由各自的引擎运行,可以任意部署在系统内不同的节点上,彼此通过消息中间件交互。TIBCO EAI解决方案是典型的分布式系统

(8)     Business Works提供的功能组件支持Web Service相关协议,流程可以包装为Web Service。同时也支持服务编排的标准规范BPEL

(9)     Business Works流程内可以嵌入JAVA程序作为一个功能组件。

上述可以看到TIBCO EAI解决方案,提供诸多对各种基本技术操作,各种通信协议,各种组件技术,各种应用软件产品和系统的数据和接口的封装,基于这些封装的功能单元编排实现自动的流程。

(1)     方案适用于复杂业务逻辑都在已有产品或者系统中实现,通过功能组件和Adapter调用这些已有功能实现编排一个新的流程。Business Works流程编排的语法类似简化版的过程式解释型计算机语言的语法,编排出的流程和程序一样都会由引擎来解释运行,和语言的区别在于其使用图形化的编排方式。这种图形化流程实现方式的好处是直观方便,缺点是语法过于简单,不像计算机语言编程那样有多态,有复用,有设计模式,不适合实现复杂的逻辑流程,且流程调试和维护也不如程序方便。建议不要在Business Works流程内实现复杂逻辑,而是使用其他手段(如编程语言)实现复杂逻辑,然后通过功能组件和Adapter调用这些实现。零语言编程并不一定是优势,况且流程编排也是种编程语言,一种图形化的流程编排语言。

(2)     Business Works流程不适合实现复杂逻辑,可以选择使用JAVA语言实现这些逻辑,然后嵌入BW流程。BW只支持JAVA语言,不支持其他常用编程语言如C++, .NET。这是一个限制。

(3)     对于各种由通信协议数据包请求事件驱动的流程,BW也提供客户端组件用来向服务端发送请求。但BW没有提供程序接口用来向这些服务端发送既定数据Schema和通信协议的请求。这也是一个小的限制,使得BW EAI平台构建的系统相对的封闭,它可以调用其他系统的程序接口,但没有程序接口供其他系统调用。Web Service例外, Web Service的方法调用和数据Schema使用WSDL,调用协议使用SOAP 这些是标准协议。集成开发者可以使用AXIS生成访问BW实现的Web Service的客户端程序。

总之EAI平台做的是数据传输交互,数据内容格式转化,数据存储,简单流程编排的工作,复杂的业务逻辑还需要应用开发者自己来编程实现。

参见文章http://blog.csdn.net/zlushangnwpu/archive/2008/09/30/2999470.aspx

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值