Java2连接器体系结构
Java2连接器体系结构(JCA;请参阅参考资料了解更多的相关信息)定义了一种用来使J2EE应用程序与非J2EE环境(通常情况下,是企业信息系统(enterpriseinformationsystem),或称EIS)用一种安全的、事务性的方式进行通信的方法。利用JCAAPI的解决方案比基于JMS的解决方案与后端耦合得更紧;更确切地说是JCA规范可以在同一次消息交换或同一个事务中把消息的发送和处理结合起来。规范定义了应用程序和EIS间各种级别的接口。规范基本上是描述如何在应用程序服务器和后端应用程序间部署所谓的资源适配器。资源适配器存在于应用程序服务器的地址空间内,并实现了允许应用程序服务器和EIS间交互的编程接口。JCA规范中定义了两种级别的编程接口。一种级别被称为公共客户机接口(commonclientinterface(CCI)),任何J2EE组件都可以用这种接口与EIS进行交互。它的使用是可选的,这意味着资源适配器不一定非得实现它。EIS供应商可以自由使用它自己的接口。这一点很有意义,特别是当这个接口已经被用一种更早的集成方法实现过的时候,就更有意义。例如,一个数据库可能已经有了连接到数据库并处理SQL语句的包装器类。JCA定义的其他接口是一个系统编程接口(systemprogramminginterface(SPI))集合,它们只被应用程序服务器内部使用。SPI分为三种类别,用来解决下面几个
问题:安全性(Security)接口允许应用程序服务器和资源适配器处理在EIS上的登录—例如,通过隐式方法把用户标识和密码组合发送到代表客户机的后端。连接池(Connectionpooling)接口确保与EIS进行通信所需的任何资源都在许多客户机间被共享,并被合用。事务处理(Transactionhandling)接口负责管理跨支持两阶段提交协议的各种后端的分布式事务。
●
●
●
http://www-900.ibm.com/developerWorks/cn/webservices/ws-eai/(2of7)2005-1-520:06:35
用Web服务和J2EE集成企业应用程序
图1显示了JCA规范定义的各种类型的接口图1.Java2连接器体系结构概览
JCA的许多方面本身就值得进行更深入、更详细的研究,但我们将把这个任务留给其他的文章和论文。对于我们来说,要记住的关键一点是,与基于使用JMS进行消息交换的系统相比,使用JCA进行的集成耦合得更紧密。EIS进行的处理是同步的,因此可以成为J2EE应用程序服务器管理的事务的一部分。因此,被J2EE应用程序跨多个后端应用程序运行的业务流程可以是事务性的—这些应用程序所执行的步骤要么全部被提交,要么一步也不提交。图2(这张图是从J2EEConnectorArchitectureandEnterpriseApplicationIntegration一书摘录的—请参阅参考资料获得该书的链接)向您展示如何使用JMS和JCA把企业信息系统连接到J2EE环境。图2.使用JMS和JCA把J2EE和非J2EE系统连接起来
http://www-900.ibm.com/developerWorks/cn/webservices/ws-eai/(3of7)2005-1-520:06:35
用Web服务和J2EE集成企业应用程序
关于Web服务的疑问
目前为止,我们已经讨论了J2EE世界中的两个主要接口,这两个接口使我们能够使用运行在J2EE应用程序服务器内的解决方案来集成非J2EE环境。一种方案解决了松散耦合的、基于JMS的异步集成,而另一种方案描述了耦合更紧密且同步的模型,这种方案使用的是JCA。那么Web服务更适合哪一种呢?通常Web服务描述的编程世界与我们所习惯的那种稍有不同,也就是在Web服务所描述的编程世界中,某些业务功能是用服务而不是用对象或组件表示的。服务用允许从任何编程语言和任何平台(通常是跨