Java Connector Architecture (JCA) 作为 J2EE 规范里的一个(JSR 322), 不像其他规范如 Servlet, EJB3, Web Service 那么醒目, 但确是非常重要的一个。 它定义了一个标准规范, 使得 Application Server 轻松的与各种各样的 Enterprise Information System (EIS) 进行交互。
我们首先看下 JCA 的一些概念:
- Enterprise Information System (EIS)
- 企业信息系统。 指 JCA 用来连接的另一端。 EIS 一般可为 ERP 系统, Database, Transaction Process(TP)系统。 基本就是指能让 client 通过 local 或者 remote 的接口调用暴露的服务的系统。
- Application Component
- 一般为 Web 程序, 如 Servlet, JSP, EJB 等。 它通过 JNDI 的方式获取 JCA 暴露出来的引用, 然后调用其业务方法。
- Application Server
- 指 J2EE application server。 它是 JCA 组件的运行时环境。 另外也包含 Application Componnet 运行时的容器, 如 Servlet 容器, EJB 容器。
- Resource Adapter
- JCA 的核心组件。 表现为一个 .rar 文件, 一般为 EIS 的提供商提供。 如果你的系统需要与别的系统做集成, 你有很可能就需要编写 Resource Adapater。
- 它部署在 Java EE server 中, 与 Java EE server 运行在同一个 JVM 下。它按照一定的规范负责 EIS 和 Java EE server 的交互。
那么什么是 Java Connector Architecture 呢? 它是集成 Java EE server 和 EIS 的一种标准架构,用来负责 Java EE server 和 EIS 的交互。 它的实现分两部分, 一部分是 EIS vendor 提供的 Resource Adapter 实现(表现为一个 .rar 文件),另一部分是 Java EE server 里的实现,使得其允许 Resource Adapter 的载入。
上面这副图描述了 JCA 的架构。 Application Component 通过 Container-Component Contract 部署并运行在 Application Server 里, 如 Servlet 运行在 Servlet 容器, EJB 运行在 EJB 容器等。 Application Component 通过 Client API 调用 Resource Adapter, Client API 可以是 JCA 的 common client api (CCI), 或者是自定义的接口。 Resource Adapter 负责和 EIS 的物理连接, 并且通过 System Contracts 部署和运行在 Application Server 里。 System Contracts 包含如 Connection Management Contract, Transaction Managedment Contract, Security Contract, Work Management 等, 部分在 Application Server 实现, 部分在 Resource Adapter 里实现。
Java EE server 和 EIS 的交互有两种,一种叫 Outbound, 指由 application 通过 Java EE Server 发起的请求,通过 Resource Adapter 调用 EIS 服务; 另一种叫 Inbound, 指由 EIS 发出的请求, 通过 Resource Adapter 触发 Application 方法,通常为 Message Driven Bean。
我们先看下 Outbound 的大体结构:
Application 通过 JNDI 获取 ConnectionFactory 的引用, 然后创建 Connection, Connection 是 EIS 的 Connection Handler, 定义了 EIS specfic 方法。 ConnectionFactory 和 Connection 可以是 CCI 的接口,也可以是自定义的接口。如果是自定义的接口, ConnectionFactory 需要继承 java.io.Serializable 和 javax.resource.Referenceable 接口,以便注册进 JNDI。 ManagedConnectionFactory 用来创建 ManagedConnection, ManagedConnection 代表和 EIS 的物理连接,同时在连接关闭或者出现错误的时候通过 Connection Event Listener 通知 ConnectionManager 。 ConnectionManager 在 Application Server 里实现, 用来 allocate connection, 同时处理所有 ManagedConnection 的连接池,事务和安全。 ConnectionEventListener 使得 Connection Manager 知道每个 ManagedConnection 的状态。
再看下 Inbound 的大体结构:
ActivationSpec 是一个 JavaBean, 包含相应 EIS 的配置信息。ResourceAdapter 提供 inbound 交互的激活点, ResourceAdapter.endpointActivation 方法在一个 MessageEndpoint 被激活时调用, MessageEndPoint 在 application server 端实现。典型实现是 Message driven bean(MDB), 一个 MDB 被部署的时候, 会调用到 ResourceAdapter.endpointActivation 方法。 MessageEndpointFactory 用来创建 MessageEndpoint。 Resource Adapter Specific 的代码用来处理和 EIS 的交互, 并且通过 MessageEndpointFactory 发送消息。
- 大小: 28.9 KB
- 大小: 28.5 KB
- 大小: 26.5 KB
分享到:
相关推荐
13. Tuxedo JCA Adapter:Tuxedo 12C 提供了一个 JCA 适配器,能够将 Java 应用程序集成到 Tuxedo 平台上,提高应用程序的可靠性和性能。 14. Tuxedo Mainframe Adapters:Tuxedo 12C 提供了一个大型机适配器,能够...
8. **JCA(Java Connector Architecture)**:提供与不同企业信息系统的集成。 J2EE应用模型定义了应用的组织结构,包括部署描述符、模块化组件(如WAR和EAR文件)以及如何将这些组件打包和部署到服务器上。通过...
Spring还具有广泛的技术整合能力,包括远程调用、JMS、JCA、JMX、邮件客户端、本地任务和调度、缓存抽象以及全面的测试框架。测试框架包含模拟对象、TestContext框架、Spring MVC测试和Web测试客户端,确保代码的高...
2. **Oracle AIA概述**:AIA是Oracle提供的一种基于SOA(面向服务的架构)的集成解决方案,它利用了诸如WSDL、SOAP、BPEL、JCA等技术标准,实现松散耦合的应用程序,并促进业务功能的标准化结构和暴露。 3. **AIA...
2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 ...
- **JCASupport**: Explains the support for Java Connector Architecture (JCA), enabling Hibernate to work seamlessly with enterprise application servers. - **Contextual Sessions**: Discusses the use of...
- **JMX Integration**(JMX集成)、**JCASupport**(JCA支持)、**Contextual Sessions**(上下文会话):介绍了Hibernate与企业级服务的集成能力,如监控、事务管理和会话管理。 3. **Configuration**(配置) ...
##### 2.1 概况(Overview) Hibernate 的架构设计主要围绕几个核心组件: - **Session**: 提供了应用与数据库交互的主要接口。 - **SessionFactory**: 负责创建 Session 并管理其生命周期。 - **Configuration**: ...
**2.1 概况(Overview)** - **整体架构**:概述Hibernate的体系结构和主要组件。 - **核心概念**:解释Hibernate中的一些关键概念,如`SessionFactory`、`Session`等。 **2.2 实例状态** - **实例生命周期**:...
- **2.1 概况(Overview)** - 概览Hibernate的整体架构,包括核心组件及其交互方式。 - **2.2 实例状态** - 详细解释Hibernate中的实例状态管理机制,如瞬态、持久化、分离等状态。 - **2.3 JMX整合** - 描述...
3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 4.4.1. SQL方言 4.4.2. 外连接抓取(Outer ...
2.1. Overview 2.2. Instance states 2.3. JMX Integration 2.4. JCA Support 2.5. Contextual Sessions 3. Configuration 3.1. Programmatic configuration 3.2. Obtaining a SessionFactory 3.3. JDBC connections...
- **2.4 对 JCA 的支持**:阐述 Hibernate 如何与 Java Connector Architecture (JCA) 结合使用,实现资源适配器的功能。 - **2.5 上下文相关的会话 (Contextual Session)**:解释如何使用上下文相关的会话管理机制...
概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 4.4.1. SQL方言 4.4.2. 外连接抓取(Outer ...
2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer ...
2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer ...
3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 4.4.1. SQL方言 4.4.2. 外连接抓取...