如何使用 J2EE 连接器架构实现企业应用 |
作者:佚名 发布时间:2005-04-02 来源:不详
|
JCA (J2EE 连接器架构 为它注重的是将Java程序连 器架构的源适配器,其在J2 使J2EE应用服务器能够集成 统的集成。有了JCA,企业 J2EE服务器上,这样不用编 个应用服务器和EIS连接的
|
,Java Connector Architecture 接到非Java程序和软件包中间件 EE1.3规范中被定义。JCA连接器 任何使用JCA适配器的企业信息 只要购买一个基于JCA规范的适 写任何代码就可以实现与J2EE应 标准Java解决方案。
|
)是对J2EE标准集的重要补充。因 的开发。连接器特指基于Java连接 同时提供了一个重要的能力,即它 系统(EIS),大大简化了异构系 配器,就可以将企业应用部署到 用服务器的集成。JCA还提供了一
|
JCA定义了一套标准的 时,定义的另一套标准接口 法使用连接器。这样,连接 连接器。
|
接口,用于让连接器把兼容的应 允许客户(或者应用程序服务器 器对于跨应用程序服务器就是可
|
用程序服务器无缝的整合起来。同 的应用程序主机)用一种统一的方 移植的,而客户程序成为很轻便的
|
JCA的目标在于企业应 EIS进行“即插即用”的访
|
用程序集成方面,它提供的标准 问,其中包括ERP、事务处理、
|
化体系结构让J2EE组件能够对异构 老式数据库系统等。
|
在电子商务时代,具有因特网功能的 为各大厂商获得竞争优势的基础。不过在 用系统方面进行了大量的投入,如:
|
业务应用程序,以及在因特网上集成业务处理已经成 因特网经济之前,许多公司已经在业务和管理信息应
|
◆ 企业资源规划(Enterprise Resou
|
rce Planning,ERP)应用,如SAP R/3和BAAN。
|
◆ 客户关系管理(Cust 。
|
omer Relationship Management
|
,CRM)应用,如Siebel和Clarify
|
这些系统一般称为企业信息系统(EI 企业提供信息基础设施和服务。这些信息 的业务对象、一个CRM系统的工作流对象
|
S ,Enterprise Information Systems)。EIS为整个 的形式可能是—个数据库中的一组记录、一个ERP中 ,或者是一个事务处理应用程序中的事务程序。
|
在连接器出现之前,一 器。这些适配器还提供了自 图支持一种标准体系结构而
|
些应用程序服务器厂商为集成EI 定义的本机接口。但这些内容很 受到限制。其中一些具体的限制
|
S系统提供了各种可自定义的适配 复杂,不易理解,并且因为它们试 情况如下:
|
◆ EIS的应用程序编程 结构集成的通用接口机制。
|
本身是专用的,而应用系统的多
|
样性表明没有适用于与开放式体系
|
◆ 大型Web应用程序要 ,客户的数量及他们的活动 程序服务器提供的连接管理
|
求在客户、连接管理等方面具有 连接在—个EIS中代价是昂贵的 机制。
|
高可用性和可扩展性。传统情况下 ,并且自定义的适配器也缺乏应用
|
◆ 管理众多后端应用的安全性和分 在没有标准的基础设施解决方案来提供一 理器的通用事务管理支持。这种情况对于
|
布式事务极其复杂并且缺乏可靠的机制。这意味着现 个比较中性的安全性机制,也没有对众多EIS资源管 EAI实现会带来巨大的问题。
|
考虑到上述难点,Su公司发布了JCA 标准的体系结构。其主要目标是,通过在 用的服务来简化开发过程。JCA为开发者 组件无缝地集成起来。图1显示了一个带
|
,以便为J2EE服务器与异构EIS资源的集成提供一个 一个一致的J2EE环境中定义一个通用的API及一组通 提供了一种容易的办法,以便把EIS与J2EE系统平台 有JCA的组件和EIS集成应用的结构图。
|
从图1可看出,如果需 的就是把适当的EIS连接器( 用程序服务器上。安装了这 Client Interface,通用客 相同。也就是说,通过采用 立。
|
要把一个基于J2EE的应用程序与 一个遵守JCA规范的资源适配器 个适配器之后,我们可以开发J2 户接口)API与EIS接口。采用的 非EIS专门化的编程而简化开发
|
一个现有的EIS集成起来,所需做 ,即Resource-adapter)安装到应 EE组件,以便使用CCI( Common 方式与使用JDBC与关系数据库接口 ,并且所做配置与后端EIS完全独
|
Sun的想法是,所有应 JCA规范的EIS资源适配器。 理众多和异构的EIS资源。 J2EE提供一个可以扩展的集
|
用程序服务器厂商最终都会实现 通过支持JCA,所有遵守J2EE的 因此,JCA既提高了J2EE应用程 成方案,减少了开发成本,并且
|
JCA服务,并且EIS厂商将实现遵守 应用程序服务器都可以保证能够处 序开发者的生产率,同时又通过 保护了在EIS系统中的现有投资。
|
JCA是在一个遵守J2EE 1.3规范的应 的遵守JCA的资源适配器。这个资源适配 组件,它提供了一个用于与基层EIS系统
|
用程序服务器上实现的,同时有一个由EIS厂商提供 器在应用程序服务器中是—个EIS专用的可插入J2EE 通信的接口。JCA定义了下列元素和服务:
|
◆ 系统级合同(Contra 间的标准接口。这些合同和 配器中。这些合同和服务的 了一个逻辑划分(不是物理 此,它还使得一个遵守JCA
|
ct)和服务,定义了J2EE组件、应 服务是由J2EE服务器提供者实现 实现在应用程序服务器与资源适 划分)。这样就使J2EE服务器和 规范的资源适配器可以插入到任
|
用程序服务器提供者和EIS系统之 的,并且也位于EIS厂商的资源适 配器的系统级角色和责任之间定义 资源适配器能够彼此协作。不仅如 何J2EE服务器中。
|
◆ JCA通用客户接口(C 交互的一个客户API。除了J 应用程序客户)使用一个遵
|
CI),定义J2EE组件(如JSP、EJB) 2EE客户组件之外,它还允许非 守JCA的资源适配器与一个EIS集
|
可以用于连接到EIS系统或者与之 管理的应用程序(如Java applet和 成。
|
◆ 打包和实施接口,允许各种EIS资源适配器插入J2EE应用程序中。 |
图2显示了J2EE连接器体系结构和访 基础组件,因为它用作J2EE组件、应用程
|
问EIS资源的组件。资源适配器很明显被看作了JCA的 序服务器和EIS系统的中央连接器。
|
在一个使用JCA的J2EE 作为实现的组成部分。J2EE 得这些资源适配器可以插入 使J2EE应用程序开发者可以
|
应用程序框架中,EIS厂商提供 服务器厂商提供了支持JCA系统 到应用程序服务器,并且提供与 使用CCI开发集成组件。
|
了遵守JCA的资源适配器,并且CCI 级合同的应用程序服务器,从而使 基层EIS资源的连接能力。这样就
|
JCA技术规范支持两类环境,划分的 环境为:
|
基础是使用资源适配器的客户应用程序类型,这两类
|
◆ 管理的环境 定义一 用程序可以包含一个或者多 自的容器中。在JCA的上下
|
个多层、具有Web能力、基于J2E 个应用程序组件(例如EJB、JSP 文环境中,这些应用程序被称为
|
E并且访问EIS的应用程序。这个应 网页、servlet),它们都实现在各 是管理的应用程序。
|
◆ 不管理的环境 连接 。典型情况下这是一个两层 源适配器为客户提供了低级 为不管理的应用程序。
|
器体系结构支持Applet或者Java 体系结构,其中一个应用程序客 的事务和安全性处理。在一个JC
|
客户应用程序这样的方式访问EIS 户直接使用一个资源适配器库。资 A上下文环境中,这些应用程序称
|
资源适配器包含一个EIS专用的库(它 EIS的连接能力。在J2EE应用程序服务器 ,并且管理着对基层EIS的连接。
|
可以用Java编写或者用本机接口组件),并提供了与 中,资源适配器运行在应用程序服务器的地址空间中
|
JCA要求所有遵守JCA的 荐(但并不规定)所有的资源 开发、集成多个EIS提供了 ”,可以用于应用程序服务
|
EIS资源适配器及J2EE应用程序 适配器都像对待它们的客户API 一个基于J2EE的解决方案,并且 器中,并与所有的系统级机制协
|
服务器支持系统级合同。JCA还推 一样支持CCI。这样就为应用程序 使EIS资源适配器“具有插入能力 作。
|
一般情况下,在上下文环境中的一个 这个应用程序实现了这些层之间的一个标 类合同。这两类合同为:
|
合同就是在应用程序各层之间一个简单的责任陈述, 准接口。根据JCA技术规范,资源适配器一般实现两
|
应用程序合同定义了CCI API,通过 servlet)可以与基层EIS资源通信。
|
这个API,—个J2EE客户组件(例如一个EJB或者
|
系统级合同定义了一组 规范为资源适配器和J2EE应
|
系统合同,可让资源适配器与应 用程序服务器的实现定义了许多
|
用程序服务器链接起来。JCA技术 系统级合同。
|
连接管理由服务合同表 生成和管理与基层EIS资源 施以支持大量的客户。
|
示,这个服务合同使—个应用程 进行连接的连接缓冲池。这样就
|
序服务器能够提供自己的服务,以 提供了一个可以扩展的连接管理设
|
这个合同把应用程序服务器的事务处 文环境中,一个EIS资源管理器管理着一 可以管理XA事务和本地事务两类事务。
|
理能力扩充到了基层的EIS资源管理器。在JCA的上下 组共享的EIS资源以参与事务处理。一个资源管理器
|
这项服务让开发者可以定义应用程序 护EIS不受未授权的访问及其它安全性威
|
服务器和EIS资源之间的安全性。有多种机制用于保 胁,其中包括:
|
2. 应用程序服务器和 安全协议,这样可以为验证
|
EIS资源之间实现安全通信,使 和机密服务提供端对端的安全性
|
用像Kerberos这样的开放网络通信 ;
|
3. 启用EIS专用的安 把连接管理沿着安全性的方 (sign-on)机制:
|
全机制,J2EE服务器和EIS资源 面进行了扩展。这种安全性合同
|
适配器之间的安全性合同,实际上 提供了如下的一个EIS签发
|
◆ 把连接请求从资源 权服务;
|
适配器传递到J2EE应用程序服务
|
器,并且打开该服务器的验证和授
|
◆ 在安全性上下文环境中,把安全机密凭证信息从应用程序服务器传递到资源适配器。 |
CCI提供了一个简单的 CCI之后,这个问题已经成 适配器中实现CCI,EIS厂商 J2EE 1.3规范的应用程序服
|
方式来解决编写基层EIS资源更 为Java开发者和EIS厂商之间都 可以提供对它们的EIS产品的一 务器上运行。
|
复杂的、Java接口的问题。出现了 知道的“集成问题”。通过在资源 个Java接口,它将在任何遵守
|
CCI为J2EE应用程序组 EIS事务处理定义了远程功
|
件定义了一个独立于EIS的客户A 能调用接口,还可以用于获得结
|
PI,它为运行与EIS相关的查询和 果。
|
CCI为J2EE应用程序服务器提供了功 成和管理与一个EIS资源的连接,执行与
|
能调用,它通过一个JCA资源适配器提供的组件,生 一个EIS资源有关的操作。
|
JCA技术规范推荐,CCI 的更丰富的编程模型,而不 EIS资源适配器应把CCI作为 应用程序服务器相关的系统 加客户API,类似于在JDBC 发者的生产率,减少了系统 的可维护性。
|
应该形成更丰富功能的,并且成 是成为多数应用程序开发者使用 它们的客户API实现,同时它仍 合同。需要注意的是,一个资源 实现中可以使用厂商提供的客户 集成的成本,使代码具有可移植
|
为一个由EIS资源适配器厂商提供 的API。JCA技术规范还推荐,所有 然要求这些资源适配器提供与J2EE 适配器还可以选择与CCI不同的附 API一样。使用CCI极大地提高了开 性,应用程序可以扩展,以及良好
|
CCI被分成四部分(见 以方便地找到。
|
表1)。所有的具体CCI类和接口
|
在javax.resource.cci程序包都可
|
JCA定义了打包和实施接口,所以各 方式,插入一个遵守J2EE规范的应用程序 用程序模块相似,可以包括Web和EJB组件
|
种资源适配器可以很容易地以一种模块化和可移植的 服务器。这种模块称为资源适配器模块,它与J2EE应 。
|
图3显示出一个资源适 序和一个EIS资源。典型情 源模块的打包和实施过程如
|
配器模块的打包和实施过程,这 况下这个过程与在一个J2EE容器 下:
|
个模块将用于连接一个J2EE应用程 中实施EJB或Web组件相似。一个资
|
◆ EIS资源适配器提供者(通常是EIS 器实现的组成部分。这些Java类实现了JC
|
厂商)开发一组Java接口和实用程序类作为资源适配 A合同和资源适配器提供的EIS专门功能。
|
◆ Java类及资源适配 述符,构成一个资源适配器 块的实施描述符定义了资源
|
器提供者提供的本机库(如果可 模块(RAR文件),与其它J2EE组 适配器提供者与负责资源适配器
|
用)被打包,同时还有一个实施描 件实施描述符类似, 资源适配器模 的实施者之间的服务合同属性。
|
◆ 在实施过程中,应 然后利用J2EE应用程序服务
|
用程序实施者在一个应用程序服 器进行配置,并且确定基层EIS
|
务器上安装一个资源适配器模块, 环境目标。
|
一个应用程序的资源适配器模块打包 与Web和EJB组件相似。但是,在打包和实 的相应过程稍有不同。资源适配器打包的 中的J2EE服务器组件。它可以在一个目录 .rar文件。
|
和实施过程类似于其它J2EE打包和实施过程,特别是 施资源适配器中涉及到的角色和责任与其它J2EE组件 一个EIS资源适配器就是一个包含在一个RAR档案文件 中准备一个或者多个资源适配器,并且把它们打包成
| |
|
|
|
|