Jakarta Connectors
Java EE Connector Architecture (JCA) is a Java-based technology solution for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI) solutions. While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic architecture for connection to legacy systems (including databases). JCA was developed under the Java Community Process as JSR 16 (JCA 1.0), JSR 112 (JCA 1.5) and JSR 322 (JCA 1.6)[1].
JCA and J2EE
J2EE Version 1.3 required application servers to support Version 1.0 of the J2EE Connector Architecture (JCA). J2EE Version 1.4 required application servers to support Version 1.5 of the J2EE Connector Architecture (JCA).
Contracts
The J2EE Connector Architecture defines a standard for connecting a compliant application server to an EIS. It defines a standard set of system-level contracts between the J2EE application server and a resource adapter. The system contracts defined by Version 1.0 of the J2EE Connector Architecture are described by the specification as follows:
- Connection management
- Connection management enables an application server to pool connections to the underlying EIS and enables application components to connect to an EIS. This leads to a scalable application environment that can support a large number of clients requiring access to an EIS.
- Transaction management
- Transaction management enables an application server to use a transaction manager to manage transactions across multiple resource managers. This contract also supports transactions that are managed internal to an EIS resource manager without the necessity of involving an external transaction manager.
- Security management
- Security management provides support for a secure application environment that reduces security threats to the EIS and protects valuable information resources managed by the EIS.
The additional system contracts defined by Version 1.5 of the J2EE Connector Architecture are described by the specification as follows:
- Life cycle management
- Life cycle management enables an application server to manage the life cycle of a resource adapter. This contract provides a mechanism for the application server to bootstrap a resource adapter instance during its deployment or application server startup, and to notify the resource adapter instance during its undeployment or during an orderly shutdown of the application server.
- Work management
- Work management enables a resource adapter to do work (monitor network endpoints, call application components, and so on) by submitting work instances to an application server for execution. The application server dispatches threads to execute submitted work instances. This allows a resource adapter to avoid creating or managing threads directly, and allows an application server to efficiently pool threads and have more control over its run time environment. The resource adapter can control the transaction context with which work instances are executed.
- Transaction inflow management
- Transaction inflow management enables a resource adapter to propagate an imported transaction to an application server. This contract also allows a resource adapter to transmit transaction completion and crash recovery calls initiated by an EIS, and ensures that the Atomicity, Consistency, Isolation and Durability (ACID) properties of the imported transaction are preserved.
- Message inflow management
- Message inflow management enables a resource adapter to asynchronously deliver messages to message endpoints residing in the application server independent of the specific messaging style, messaging semantics, and messaging infrastructure used to deliver messages. This contract also serves as the standard message provider pluggability contract that allows a wide range of message providers (Java Message Service (JMS), Java API for XML Messaging (JAXM), and so on) to be plugged into any J2EE compatible application server with a resource adapter.
EIS Integration
The JCA adapters can be built to integrate with various Enterprise Information System like Siebel, SAP, Great Plains System, Oracle Applications, etc.
- Siebel provides API to integrate with various platforms like Java, C++, .Net, Visual Basic, etc. For Java it provides an interface called 'Java Data Bean'. When we build a JCA adaptor for Siebel we have to use the Java Data Bean API.
- Great Plains system provides an interface called eConnect to integrate with other platforms.
External links
- ^ A Look Inside the JBoss JCA Project; New Features in JCA 1.6 - Javalobby: http://java.dzone.com/articles/jboss-jca
- The J2EE Connector homepage contains a lot of useful information,
- so does IBM's article on choosing among JCA, JMS and Web services.
- JSR 112 (JCA 1.5)
- JSR 322: Java EE Connector Architecture 1.6 (JCA 1.6)
- JSR 16 (JCA 1.0)
- http://www.onjava.com/pub/a/onjava/2004/03/24/j2eeca.html