引言
Prolifics 公司开发的 XMLink 是一种专门用于对基于 BEA
tuxedo 交易中间件技术开发的应用系统的数据、业务整合的适配器产品。该适配器全称为 XMLink Tuxedo Adapter。它可以将 J2EE 应用程序连接到基于 BEA Tuxedo 开发的服务上,特别适用于基于IBM WebSphere Application Server 开发的 EJB, Servlet 和 JSP,以及基于 WebSphere Business Integration Family 开发的相应流程、服务等。但是,XMLink 的使用比较复杂,编程难度也较大。XMLink Wrapper 合理地抽取出 XMLink 中与 Tuxedo 相关的底层操作细节,将其封装成可复用的、接口简易的组件,从而大大降低了 WebSphere Application Server 和 Tuxedo 之间应用整合的难度。
一、XMLink简介
[注:XMLink简介的内容都翻译自参考文档1]。
XMLink的架构是完全符合J2C/J2EE架构规范的,它是针对Tuxedo专门实现的J2C连接器。因此可以方便的跟其它Java应用进行互联互通。
图1 XMLink体系结构示意图
XMLink提供了一个资源适配器并且支持两种情形的部署场景。J2EE资源适配器不但能够在有应用服务器(比如IBM WebSphere Application Server)的环境中运行,而且能够在独立的Java应用程序中被调用执行。 就像J2C架构一样,XMLink架构也同样提供了相应的访问方式:JavaBean、Servlet、JSPs和EJB。
XMLink Tuxedo Adapter允许用户将任何已有的BEA
tuxedo应用无缝地集成到一个Java应用中,无论该应用是否部署在应用服务器上。XMLink只需要标准的Tuxedo配置就能完成相关功能。这使得用户可以方便快捷地访问Tuxedo标准层中的相关服务。
在Tuxedo中,使用IPC(Inter-Process Communication)消息队列等方式实现了在客户端和服务器端之间服务请求的传递。这些消息被封装在相应的缓冲区中。XMLink使用已有的 IPC等配置方式,来跟相应的数据缓冲区交互数据,从而连接到Tuxedo的指定服务。
在这个过程中,XMLink就像其它Tuxedo客户端一样,使用ATMI (Application to Transaction Monitor Interface) 层来连接到Tuxedo。相应的,ATMI接口来控制信息交互、事务处理、数据缓冲区管理等功能。
根据XMLink在前图的J2C连接器架构中所处的位置,我们把它进一步细化,如下图所示:
图2 XMLink体系结构示意图
如上图所示,XMLink可以实现以下操作:
1. XMLink是一个J2EE/JCX实现。通过它的Tuxedo适配器,将J2EE调用行为转换成为Tuxedo API调用行为。
2. XMLink的适配器层处于J2EE/JCX和Tuxedo之间。该适配器层的职责是将Java输入流转换成Tuxedo本地缓冲区的流(反之亦然),并且通过Tuxedo的链接池进行相应调用。
3. XML parser验证从客户端提交Java流并转换成为XML流,同时也验证反向的XML流并转换成为Java流。
XMLink提供了一个无状态会话Bean的组件,它可以读取外部的XML格式的配置文件,从而实现指定的用户业务服务调用。