`
ajax_xu
  • 浏览: 156042 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JCA 综述

 
阅读更多
什么是JCA?它最吸引人的特点是什么?它有什么不足之处?有哪些厂商支持JCA?是否还存在替代JCA的产品,以便选购时货比三家?本文将帮助你解答所有这些问题。
  JCA及其特点
  JCA即Java Connector Architecture,或Java连接器体系,它完善了用J2EE构造企业应用的技术体系。在JCA出现之前,基于J2EE应用服务器的开发体系为企业应用各个部分提供了相应的开发工具,但是,与传统系统连接的部分仍未得到很好的解决。为了与这些EIS系统集成,各个公司为每一种系统提供了定制的开发工具。有了JCA,应用服务器厂商就能够为Java平台组件与后端系统的连接提供一层抽象。应该说,JCA完全符合J2EE应用服务器市场的自然发展历程。
  在JCA出现之前,人们在连接EIS时面临着一系列类似的问题。
  首先,每一个EIS应用有自己的编程接口,与一个异种的EIS应用交互意味着要针对一组特定的API编程。因此,人们需要一组公共的客户端接口,以便简化客户端编程。
  其次,与后端EIS系统的交互通常总是很繁忙。为了降低连接开销、提高性能,人们需要连接池。
  第三,与EIS应用的连接往往是面向事务的。为了保证数据完整性,人们需要内建的事务支持,以便把编程工作量降低到最少限度。
  最后一点(但并非最不重要的一点)是人们迫切需要提高EIS应用和EIS客户程序集成的安全性。
  
  仔细分析上述问题,可以发现,它们与人们以前连接数据库时面临的问题相似。对于数据库连接,由于JDBC API之类的技术被广泛采用,问题已经得到解决:作为一个程序员,你现在再也不必直接与数据库交互,而是可以通过JDBC与数据库交互,JDBC接口对于所有流行的数据库系统来说都是一样的;你可以方便地使用数据库连接池,却不必自己动手实现它;你可以方便地使用事务支持和安全集成能力,因为这些功能都是内建的。要是对于EIS应用也有类似JDBC的技术,它一定能够为你带来不少方便吧?如果你的回答是肯定的,答案就是JCA。
  
  为了解决连接EIS时面临的各种问题,JCA提供以下功能:
  
  ▲ 连接缓冲池:EIS连接通常属于昂贵的资源,创建EIS连接需要大量的时间开销。连接池使得应用服务器能够创建和共享EIS应用的连接,使得应用能够更高效地使用昂贵的连接资源。
  ▲ 事务管理:事务管理能力使得EIS应用能够获取应用服务器提供的事务环境的支持,使得服务器能够把EIS系统的事务作为一个单元管理。
  ▲ 安全:安全接口的实现允许应用服务器在不影响EIS特有安全机制的情况下,对整体安全性进行有效的管理。验证、授权和安全关联都属于该接口包含的范围,它们都属于为JCA适配器和J2EE应用服务器内建的服务。
  ▲ 公共的客户端接口:JCA还定义了用户级的编程接口,称为公共客户端接口(CCI,Common Client Interface)。这个接口集在JCA 1.0中是可选的,允许EIS客户程序的开发者按照一种标准的方式,连接目标EIS系统,或与目标EIS交互(执行命令并获取结果)。
  应用服务器的JCA支持
  对JCA的支持来自两个方面:支持JCA的应用服务器,支持JCA的EIS应用适配器。JCA 1.0是J2EE 1.3规范的一部分,遵从J2EE 1.3规范的应用服务器必须提供合适的环境支持必要的JCA功能,包括缓冲池、事务和集成的安全机制。表一列出了常见的应用服务器以及它们的JCA支持情况。
  表一:JCA支持现状
   
  BEA的WebLogic Server是最早支持JCA的应用服务器之一。从2001年开始,WebLogic 6.0就内建了对JCA Beta的支持,当时的JCA 1.0规范正处于最终草案状态。经过一年的发展之后,多次获奖的WebLogic Server已经是支持JCA的最佳应用服务器之一。IBM的WebSphere应用服务器是另一个广受欢迎并获奖的J2EE应用服务器,2001年中期左右,它开始支持JCA。JBoss也是值得特别指出的应用服务器,如果预算比较紧张,你就应该注意一下这个应用服务器。JBoss也支持JCA,而且它具有无可比拟的价格优势--它是免费的!
  适配器厂商和产品
  连接后端EIS应用时要用到JCA适配器。目前已经有许多集成商开发了JCA适配器,如表二所示。
  表二:JCA厂商与适配器
  
  从表二可以看出,有许多厂商为同样的EIS应用提供了JCA适配器。然而,即使对于同一个EIS应用,来自不同厂商的JCA适配器可能支持不同的功能集。这是由于两个因素造成的。首先,一些规范,例如JCA 1.0中的CCI,是可选的;是否在当前发行版中包含某个功能,完全由适配器厂商决定。其次,一些重要的EIS集成功能并未包含在当前的JCA规范中;为了增强适配器,适配器厂商可能决定增加一些额外的功能。这些在规范中没有定义的功能将在稍后详细讨论。
  
  由于这些在JCA规范中没有定义的功能可能是很重要的,许多厂商在这个问题上采取了更实在的策略,走到了规范之前;即使面临着非标准化的风险,为了提供额外的功能,它们也会为适配器加上一些辅助特性。
  
  Insevo为许多EIS应用提供了JCA适配器,包括SAP、PeopleSoft、Edwards和Siebal。这些适配器除了支持JCA定义的CCI之外,还支持一种基于XML的接口。它们既支持客户程序和EIS应用之间的同步通信,也支持异步通信。另外,它们还支持双向通信,而不是JCA定义的单向通信。这些额外的功能使得Insevo的适配器不仅适用于应用集成,而且适用于过程集成(Process Integration);另外,这些附加的功能已经被作为JCA 2.0规范的一部分考虑。因此,从某种意义上来说,Insevo的适配器是一个超前JCA规范的版本。尽管额外增加的功能不遵从当前的JCA规范,但如果你确实需要它们,还有比这更好的事情吗?
  
  Resource Adapters的RAi连接器是另一组采取此种策略的JCA适配器,也包含了一些预期将在JCA 2.0规范中定义的功能。RAi支持输入(Inbound)连接和输出(Outbound)连接,支持同步和异步通信模式。RAi连接器除了支持CCI之外,还支持一组基于XML的API和XML元数据,并提供了日志和监视工具,为实际工作带来了巨大的方便。
  
  除此之外,Attunity和Insevo还提供了许多数据源适配器和传统适配器,这些适配器往往只需单向的同步通信。一些数据源和传统适配器不支持事务之类的JCA功能,因此,它们并不提供对JCA的完整支持。
  
  
  与其他类型的适配器比较
  
  
  除了JCA适配器,还有其他一些根据不同需求而开发的适配器类型,其中之一是Web服务适配器,它是一种重要的新适配器类型,正在迅速地获得人们的认可。另外,在JCA出现之前就有许多非标准的适配器被开发出来,因此这些适配器拥有更长的发展和成熟时间。
  
  Web服务适配器
  
  当前,企业应用的平台有各种各样的类型,当然有一部分是以Java为基础的。在开发各类系统的过程中,企业投入了大量的资源,当然不肯轻言放弃。问题在于,如何才能在不增加额外投资的情况下,让这些异种的系统能够协作运行?两种流行的技术使这一切成为可能:第一是HTTP,第二是XML。这两者是每一种平台上都使用的技术,非常适合于异种平台的集成。Web服务规范就建立在这两种简单但关键的技术的基础上。尽管详细讨论Web服务已经超出了本文的范围,但从下面的简要说明可以看出Web服务的主要特点:
  
  ▲ XML接口:Web服务以XML为基础,它利用Web服务描述语言(WSDL)描述终端服务者的服务形式。
  
  ▲ HTTP/HTTPS协议:Web服务事实上的通信协议。
  
  ▲ SOAP:基于WSDL的Web服务和HTTP/HTTPS通信协议之间的绑定协议。
  
  Web服务仍未提供任何QoS机制,因此是一种异步协议。对于异种系统的宽松结合来说,它是一种很合适的协议。
  
  Web服务和JCA提供的功能互相完善了对方。如果这两种技术最终把它们的特点合并了起来,我们不应该感到奇怪。实际上,一些厂商已经向这个方向发展。例如,Attunity和Sirvisetti等厂商已经在它们的JCA适配器中提供了对Web服务的支持。
  非标准化的适配器
  
  在JCA出现之前,一些中立的厂商,例如webMethods和TIBCO等,推出集成适配器已有数年。这些适配器一般具有非标准化的API,有时它们不能从集成软件包分开。尽管如此,这些适配器已经经过多年实践的检验,比JCA适配器涵盖范围更广泛的EIS。特别地,webMethods Enterprise Adapter和B2B适配器拥有迄今为止最广泛的覆盖面。webMethods拥有的适配器多达60个以上,这些适配器还不支持JCA,但webMthods正在快速地向支持JCA的方向发展。
  
  
  JCA的优点和不足
  
  
  JCA的优点很明显。它为EIS厂商提供了一种按照开放的产业标准定义EIS接口的途径。通过使用公共的可调用接口以及继承JCA提供的QoS机制,程序员能够在不牺牲性能和系统完整性的前提下,简化EIS的集成工作。
  
  JCA的局限不是显而易见,但不容忽视。和所有其他新技术一样,JCA第一个版本的不成熟性往往成为最令人担心的问题。另外,JCA适配器应该是可在应用服务器之间移植的;然而,就目前的情况来看,对于你正在使用的应用服务器来说这一判断未必正确,因为适配器对某种应用服务器的支持情况由适配器厂商根据个案进行测试和发布。此外,JCA还有其他一些已知的局限,其中有些局限有望在JCA标准的下一个版本中得到解决,其中包括:
  
  ▲ 异步消息传输:调用EIS应用时,JCA 1.0采取同步消息传输方式;它不能处理来自EIS应用的异步消息或向EIS应用传递异步消息。如果要异步传递消息,就要在使用JCA时结合JMS(Java Message Service)或其他队列服务,或者选择使用JCA适配器中内建的非标准化异步消息支持。
  
  ▲ 长时间运行的事务:这是一种运行时间可能达到数天甚至


转自 http://www.bitscn.com/pdb/java/200605/24119.html
分享到:
评论

相关推荐

    JCA练习 JCA练习

    JCA练习 JCA练习 JCA练习 JCA练习 JCA练习

    JCA433及JCA463

    Java Comprehensive Application (JCA) 是Java平台上的一个关键组件,主要用于在Java应用程序中集成企业级服务,例如消息传递、数据库连接等。标题提到的“JCA433及JCA463”可能是两个版本号,暗示这可能是一个用于...

    jca-分析javacore和dump.zip

    在"jca-分析javacore和dump.zip"这个压缩包中,包含了一个名为"jca457.jar"的JCA工具和一个"执行步骤.txt"的文本文件,后者应该是指导如何使用该工具的说明。 **Java Core (javacore) 分析** Java Core,通常简称为...

    windchill JCA介绍

    windchill JCA介绍 Windchill JCA 是一种基于 Java 的组件架构,旨在提供一种灵活、可扩展、可重用的组件库,以便简化 UI 设计和客户端开发过程。下面是 Windchill JCA 的主要知识点: 1. Framework 简化和自定义...

    jca分析工具.zip

    Java Core Analysis (JCA) 工具是Java开发者在排查性能问题、监控应用程序或诊断线程问题时的重要辅助工具。这个名为"jca分析工具.zip"的压缩包包含了一个名为"jca433.jar"的文件,这很可能是JCA工具的一个版本,...

    jca433.jar

    《IBM的JCA433.jar:深入剖析Java内存与性能优化》 在Java应用程序的运行过程中,内存管理和性能优化是至关重要的环节。IBM推出的JCA433.jar工具,正是针对这一需求的专业分析工具,它能有效地帮助开发者理解和解决...

    jca467.rar

    JCA467.rar中的"JCA.jar"可能是一个包含JCA组件的库,可能用于连接到特定的EIS系统,或者提供与JVM Dump分析相关的辅助工具。 对于JVM Dump的分析,通常我们会用到一些专门的工具,例如IBM的JConsole、VisualVM、...

    IBM WEBSPHERE javacore分析工具jca

    IBM WebSphere 作为一款强大的企业级应用服务器,其在运行过程中可能会遇到各种问题,如内存溢出、...而`jca.jar`可能是包含JCA相关辅助工具或库的文件,它可能用于配合`jca_javacore.bat`进行更深入的JCA问题分析。

    JCA技术介绍.doc

    JCA技术,全称为Windchill客户端架构(Windchill Client Architecture),是PTC Windchill产品中的一个重要组件,主要用于定制化开发任务表单模板。Windchill是一款强大的产品生命周期管理(PLM)系统,而Java是其...

    jboss的jca演示程序

    jboss的jca演示程序 jboss ejb jca eis

    Windchill jca 表单的运用

    ### Windchill JCA表单的应用与实例 #### 一、引言 Windchill作为PTC公司的一款产品生命周期管理(PLM)软件,在制造业信息化过程中扮演着重要角色。其强大的功能之一便是JCA(Java Component Architecture)组件,...

    jca javacore分析工具

    JCA(Java Core Analysis)工具就是用于解析和分析这些文件的专业软件。 1. **Java Core (javacore) 文件**: Java Core文件是由JVM生成的一种日志文件,记录了JVM在特定时刻的状态,包括线程堆栈信息、内存使用...

    java的jca演示程序

    不懂jca的朋友可以来这看看,一个jca的演示程序,程序逻辑清晰

    jca分析工具

    Java Core Analysis (JCA) 工具是一种强大的诊断工具,专为Java应用程序设计,用于分析和理解内存泄漏以及系统性能问题。在这个场景中,我们关注的是如何使用JCA来解析和处理由内存泄露导致的“javacore”文件,以找...

    JCA_中资源适配器的设计和实现

    ### JCA中资源适配器的设计与实现 #### 一、引言 随着信息技术的不断发展,企业应用集成(Enterprise Application Integration, EAI)的需求日益增长。为了满足这种需求,Sun Microsystems发布了J2EE连接器架构...

    内存分析工具 jca ha

    本文将详细讨论两款名为"jca455.jar"和"ha455.jar"的内存分析工具,以及如何利用Java 7环境来运行它们。 首先,"jca"代表Java Communications API(Java通信API),它是Java平台的标准部分,提供了与各种网络通信...

    windchill自定标签jca

    在WindChill中,JCA(Java Connect Architecture)是实现与WindChill系统集成的一种关键技术。JCA允许开发者通过编写Java代码来扩展WindChill的功能,实现客制化的需求。 自定义标签(Custom Tags)是JavaServer ...

    IBM Thread and Monitor Dump Analyzer for Java (jca) 线程分析工具 jca456.jar

    IBM Thread and Monitor Dump Analyzer for Java(简称 jca)。它可以识别Java线程中的挂起,死锁,资源竞争,和瓶颈。 使用方法: java -Xmx1000m -jar jca456.jar

    线程分析工具jca436.jar

    《IBM线程与监控堆分析器——jca436.jar深度解析》 在Java开发过程中,线程问题一直是困扰开发者的重要难题。死锁、线程挂死等问题可能导致应用程序性能下降,甚至出现系统崩溃。为了解决这些问题,IBM提供了一款...

    websphere javacore 分析工具 jca412

    【标题】"Websphere Javacore 分析工具 JCA412"涉及的是IBM Websphere应用服务器中的一项核心诊断技术,Javacore,以及与Java连接器架构(JCA)相关的分析和故障排查。Javacore是IBM Websphere在遇到异常或系统崩溃...

Global site tag (gtag.js) - Google Analytics