JCA 了解
1定义编辑
2性质编辑
3应用编辑

在电子商务时代,具有因特网功能的业务应用程序,以及在因特网上集成业务处理已经成为各大厂商获得竞争优势的基础。不过在 因特网经济之前,许多公司已经在业务和管理信息应用系统方面进行了大量的投入,如:
◆ 企业资源规划(Enterprise Resource Planning,ERP)应用,如SAP R/3和 BAAN。
◆ 客户关系管理(Customer Relationship Management,CRM)应用,如 Siebel和Clarify。
◆ 数据库应用程序,如 DB2和 Sybase。
◆ 大型 事务处理应用,如 CICS。
◆ 老式 数据库系统,如 IBM公司的IMS。
这些系统一般称为 企业信息系统(EIS ,Enterprise Information Systems)。EIS为整个企业提供信息基础设施和服务。这些信息的形式可能是—个数据库中的一组记录、一个ERP中的 业务对象、一个CRM系统的工作流对象,或者是一个事务处理应用程序中的事务程序。
在连接器出现之前,一些应用程序 服务器厂商为集成EIS系统提供了各种可自定义的适配器。这些适配器还提供了自定义的本机接口。但这些内容很复杂,不易理解,并且因为它们试图支持一种标准体系结构而受到限制。其中一些具体的限制情况如下:
◆ EIS的应用程序编程本身是专用的,而应用系统的多样性表明没有适用于与 开放式体系结构集成的通用接口机制。
◆ 大型Web应用程序要求在客户、连接管理等方面具有 高可用性和 可扩展性。传统情况下,客户的数量及他们的活动连接在—个EIS中代价是昂贵的,并且自定义的适配器也缺乏应用程序服务器提供的连接管理机制。
◆ 管理众多后端应用的安全性和 分布式事务极其复杂并且缺乏可靠的机制。这意味着现在没有标准的基础设施解决方案来提供一个比较中性的安全性机制,也没有对众多EIS资源管理器的通用事务管理支持。这种情况对于EAI实现会带来巨大的问题。
考虑到上述难点,Su公司发布了JCA,以便为 J2EE服务器与异构EIS资源的集成提供一个标准的体系结构。其主要目标是,通过在一个一致的J2EE环境中定义一个通用的API及一组通用的服务来简化开发过程。JCA为开发者提供了一种容易的办法,以便把EIS与J2EE系统平台组件无缝地集成起来。图1显示了一个带有JCA的组件和EIS集成应用的结构图。
从图1可看出,如果需要把一个基于J2EE的应用程序与一个现有的EIS集成起来,所需做的就是把适当的EIS连接器(一个遵守JCA规范的资源适配器,即Resource-adapter)安装到应用程序服务器上。安装了这个适配器之后,我们可以开发J2EE组件,以便使用CCI( Common Client Interface,通用客户接口)API与EIS接口。采用的方式与使用JDBC与关系数据库接口相同。也就是说,通过采用非EIS专门化的编程而简化开发,并且所做配置与后端EIS完全独立。

图-1
Sun的想法是,所有应用程序服务器厂商最终都会实现JCA服务,并且EIS厂商将实现遵守JCA规范的EIS资源适配器。通过支持JCA,所有遵守 J2EE的应用程序服务器都可以保证能够处理众多和异构的EIS资源。因此,JCA既提高了J2EE应用程序开发者的生产率,同时又通过J2EE提供一个可以扩展的集成方案,减少了 开发成本,并且保护了在EIS系统中的现有投资。
从版本2.5开始,spring还支持基于JCA的MessageListener
容器。 JmsMessageEndpointManager
将尝试从提供程序的ResourceAdapter
类名称自动确定ActivationSpec
类名。 因此,通常可以提供Spring的通用JmsActivationSpecConfig
,如下例所示。
<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager">
<property name="resourceAdapter" ref="resourceAdapter"/>
<property name="activationSpecConfig">
<bean class="org.springframework.jms.listener.endpoint.JmsActivationSpecConfig">
<property name="destinationName" value="myQueue"/>
</bean>
</property>
<property name="messageListener" ref="myMessageListener"/>
</bean>
或者,您可以使用给定的ActivationSpec
对象设置JmsMessageEndpointManager
。 ActivationSpec
对象也可能来自JNDI查找(使用<jee:jndi-lookup>
)。
<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager">
<property name="resourceAdapter" ref="resourceAdapter"/>
<property name="activationSpec">
<bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
<property name="destination" value="myQueue"/>
<property name="destinationType" value="javax.jms.Queue"/>
</bean>
</property>
<property name="messageListener" ref="myMessageListener"/>
</bean>
使用Spring的ResourceAdapterFactoryBean
,可以在本地配置目标ResourceAdapter
,如以下示例所示。
<bean id="resourceAdapter" class="org.springframework.jca.support.ResourceAdapterFactoryBean">
<property name="resourceAdapter">
<bean class="org.apache.activemq.ra.ActiveMQResourceAdapter">
<property name="serverUrl" value="tcp://localhost:61616"/>
</bean>
</property>
<property name="workManager">
<bean class="org.springframework.jca.work.SimpleTaskWorkManager"/>
</property>
</bean>
指定的WorkManager
也可能指向环境特定的线程池 - 通常通过SimpleTaskWorkManager
的“asyncTaskExecutor”
属性。考虑为您的所有ResourceAdapter
实例定义一个共享线程池,如果您恰好使用多个适配器。
在某些环境(例如WebLogic 9或更高版本)中,可以从JNDI(使用<jee:jndi-lookup>
)获取整个ResourceAdapter
对象。然后,基于Spring的消息侦听器可以与服务器托管的ResourceAdapter
进行交互,也可以使用服务器内置的WorkManager。
有关详细信息,请参阅JmsMessageEndpointManager
,JmsActivationSpecConfig
和ResourceAdapterFactoryBean
的javadoc。
Spring还提供了一个通用的JCA消息端点管理器,它不绑定到JMS:org.springframework.jca.endpoint.GenericMessageEndpointManager
。该组件允许使用任何消息侦听器类型(例如CCI MessageListener
)和任何提供者特定的ActivationSpec
对象。查看您的JCA提供商的文档,了解连接器的实际功能,并参考“GenericMessageEndpointManager的javadoc”,了解特定于Spring的配置详细信息。
基于JCA的消息端点管理非常类似于EJB 2.1消息驱动Bean; 它使用相同的底层资源提供者合同。 与EJB 2.1 MDB一样,JCA提供程序支持的任何消息侦听器接口也可以在Spring上下文中使用。 但是,Spring为JMS提供了明确的“便利”支持,因为JMS是与JCA端点管理合同一起使用的最常用的端点API。
JCA 了解的更多相关文章
- org.jboss.deployment.DeploymentException: Trying to install an already registered mbean: jboss.jca:service=LocalTxCM,name=egmasDS
17:34:37,235 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080 17:34:37,281 INFO [ ...
- Java Security:Java加密框架(JCA)简要说明
加密服务总是关联到一个特定的算法或类型,它既提供了密码操作(如Digital Signature或MessageDigest),生成或供应所需的加密材料(Key或Parameters)加密操作,也会以 ...
- Spring 中JCA CCI分析--转载
转载地址:http://blog.csdn.net/a154832918/article/details/6790612 J2EE提供JCA(Java Connector Architecture)规 ...
- 如何使用JCA (J2EE 连接器架构)实现企业应用--转载
JCA (J2EE 连接器架构,Java Connector Architecture)是对J2EE标准集的重要补充.因为它注重的是将Java程序连接到非Java程序和软件包中间件的开发.连接器特指基 ...
- J2EE: JCA (Java Connector Architecture) [转]
JCA (J2EE 连接器架构,Java Connector Architecture)是对J2EE标准集的重要补充.因为它注重的是将Java程序连接到非Java程序和软件包中间件的开发.连接器特指基 ...
- Java密码体系结构简介:Java Cryptography Architecture (JCA) Reference Guide
来自Java官方的文档,作备忘使用. 简介: Java平台非常强调安全性,包括语言安全,密码学,公钥基础设施,认证,安全通信和访问控制. JCA是平台的一个主要部分,包含一个“提供者”体系结构和一组用 ...
- java安全体系之JCA、JCE、JAAS、JSSE及其关系
首先.如果是运行在internet上的系统,并且如果是个涉及到利益性的系统,不可避免的会遭受各种攻击(我们公司的很多系统从OS到DB到webapp就实时有收到攻击和破解),所以尽可能保证安全性将不再是 ...
- Java消息队列--ActiveMq 实战
1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...
- [转载]一个标准java程序员的进阶过程
第一阶段:Java程序员 技术名称 内 容 说明 Java语法基础 基本语法.数组.类.继承.多态.抽象类.接口.object对象.常用类(Math\Arrarys\S ...
随机推荐
- .net页面实时预览图片
<script type="text/javascript"> //获取上传图片的本地路径 function getPath(obj){ if(obj) { if(na ...
- [New learn] 网络基础-apache本地服务搭建(支持php)
1.简介 无网不利,无网不胜.对于移动应用来说离开网络那和咸鱼有什么分别?所以对于开发者来说更要学习好网络开发的技术. 2.搭建apache本地服务器 1.在finder中显示影藏的用户文件夹 fin ...
- FineReport——FS
FR除了能够实现对报表等的二次开发,还能实现对决策系统的操作: FS.Trans.signOut() 退出决策平台系统 FS.tabPane._doCloseTab(FS.tabPane._getSe ...
- 论文笔记 《Maxout Networks》 && 《Network In Network》
论文笔记 <Maxout Networks> && <Network In Network> 发表于 2014-09-22 | 1条评论 出处 maxo ...
- 升级PIP源
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django
- AC日记——「SCOI2016」幸运数字 LiBreOJ 2013
「SCOI2016」幸运数字 思路: 线性基: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 20005 # ...
- CodeForces 779A Pupils Redistribution
简单题. 因为需要连边的人的个数一样,又要保证和一样,所以必须每个数字的个数都是一样的. #include<map> #include<set> #include<cti ...
- DOS中的CD命令详解
CD命令是改变子目录的命令.格式:CD [路径] . 值得明确的是:CD命令只能进入当前盘符中的文件夹,改变操作的根目录(改变操作盘符),则不需用cd.例如你当前是在c:盘下,要到d:盘,只需键入d: ...
- 一个菜鸟正在用SSH写一个论坛(1)
嗯..搞定了注册和登录,说明我的SSH整合已经没有问题了,那么我就继续折腾了. 我的目的是用SSH框架写一个论坛(当然是功能最简单的那种),搞定了整合之后我打算先做出一些基本的功能,于是我就先简单的设 ...
- Eclipse有助于提高开发速度的快捷键
用Eclipse已经很长一段时间了,自己常用的几个快捷键也已经很熟,但还是有一些自己不经常在开发中使用,但非常使用的快捷键,记录下来,以后利用来提高开发效率. 1.ctrl + shift + r ...