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 ...
随机推荐
- webIcon
webIcon是我在拿别人的模板参考的时候我发现的一个东西,觉得挺不错的一个东西,但是后来发现用webIcon其实我也不知道是好还是不好,因为要用到字体,字体文件其实挺大的,所以当你要的图标不多的时候 ...
- Linux网络属性配置命令和管理详解
一.Linux网络属性配置 1.Linux主机接入到网络方式 IP/NETMASK:实现本地网络通信 路由(网关):可以进行跨网络通信 DNS服务器地址:基于主机名的通信,Linux可以有三个DNS地 ...
- LightOJ 1282
Leading and Trailing Time Limit: 2000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu S ...
- SQl server 2008 附加数据库失败,错误:5120
通过附加功能添加现成的数据库是非常方便的,然而有时会出现附加数据库失败.那么,我们该如何解决此问题? 有两种解决方法 [第一种方法] 第一步:找到要添加数据库的.mdf文件,点击右键,选择属性. 第二 ...
- hdu 1080(LCS变形)
Human Gene Functions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- ffmepg的基本使用
基本使用命令 ffmpeg -i input.mp4 output.avi //视频格式转换 ffmepg -i input.mp4 -r fps image%3d.jpg //视频转成图片 //fp ...
- 数据结构与算法之--高级排序:shell排序和快速排序
高级排序比简单排序要快的多,简单排序的时间复杂度是O(N^2),希尔(shell)排序大约是O(N*(logN)^2),而快速排序是O(N*logN). 说明:下面以int数组的从小到大排序为例. 希 ...
- GT-----FAQ整理
1.pss0,pss1,这里的序号0和1是什么意思? 说明选的目标调试 App 有至少 2 个进程,先启动的那个进程的 pss 值会被加后缀 0,后启动那个会被加后 缀 1.所有参数前面的“ ...
- SpringBoot学习:整合Mybatis,使用HikariCP超高性能数据源
一.添加pom依赖jar包: <!--整合mybatis--> <dependency> <groupId>org.mybatis.spring.boot</ ...
- hdu 1698 Just a Hook(线段树区间修改)
传送门:Just a Hook Problem Description In the game of DotA, Pudge’s meat hook is actually the most horr ...