Most companies have a large investment in legacy systems for ERP, transaction processing, and database applications. Everyone's talking about how they can leverage these systems and integrate them into their modern, multitier, e-business application architectures.
There's an old saying about the weather - everyone talks about it but no one ever does anything about it. Fortunately, this is not true for Enterprise Information Systems (EISs). In fact, IBM, Sun, and a number of other companies are doing something about it in the Java 2 Platform, Enterprise Edition (J2EE) with something called the J2EE Connector Architecture (JCA). VisualAge for Java contains the tooling that was, in large part, the inspiration for JCA. J2EE and JCA are not, as of this writing, finalized and thus no application server or development tool can claim support for either. We'll see, however, that VisualAge for Java's Enterprise Access Builder for Transactions, together with some common design patterns, enables us to leverage JCA in our code.
First let's look at some of the challenges of integrating an EIS into our e-business architecture:
- Almost all EIS vendors provide APIs for their products. In general these are proprietary interfaces, which may or may not interoperate well with other software, and they tend to be quite complex.
- Every time an application server vendor wants to support a given EIS, the vendor has to build and maintain a separate interface just for that EIS.
- There's no standard process for managing issues of security, transactional integrity, or connection pooling within the applications; the application developers must reinvent these wheels for each EIS.
Just as JDBC defines a standard API for relational database access for Java developers, JCA aims to do likewise for connecting to and accessing EISs. The JCA defines a standard architecture for connecting the J2EE platform to EISs by specifying a set of scalable and secure mechanisms for integrating EISs. The JCA also defines a Common Client Interface (CCI) for EIS access.
The Connector Architecture
The two key concepts of the architecture are resource adapters, usually provided by the EIS vendor, and application servers, which the resource adapters "plug into." The architecture defines contracts for transaction management, security, and connection management. A resource adapter must support these contracts or it won't be allowed to plug into a compliant application server. This architecture allows any number of application servers to support a given EIS and one application server to support many EISs (see Figure 1). The J2EE Connector Architecture stipulates that the EIS will be the resource manager in instances where transactions are an issue. The architecture also allows the application server to support connection management and connection pooling when scalability and performance are an issue (when are they not?).
Common Client Interface
CCI defines a common API so that each application server can supply tooling to support any and all JCA-compliant EISs. Some of its features are:






