In the world of JCA, source and target systems (packaged applications, databases, legacy systems, etc.) are known as Enterprise Information Systems (EIS). The idea is that you can communicate with EIS from J2EE through a JCA-compliant resource adapter, which exists within an application server or integration server. Components within the J2EE environment can then interact with the EIS through the resource adapter using the Common Client Interface (CCI) API (see Figure 10.7). You access information through the CCI; in essence, it's an abstraction layer over and above the EIS, sort of a Call Level Interface (CLI) for packaged applications. Figure 10.7. Basic JCA architecture.As we mentioned above, JCA is implemented in a J2EE application server with the resource adapters provided by a JCA adapter vendor or, perhaps, the packaged application or database vendor. JCAs define a set of elements and services including:
System-level contracts and services define the interfaces between the J2EE components and the EIS. They are implemented in the application server and resource adapter, and could be a mix and match of vendors (application server vs. resource adapter). System-level contracts and services define the demarcation line between the J2EE container and the EIS, allowing these components to collaborate on activities such as management of resources, security, and transaction. The CCI defines the properties of a client API that J2EE components (e.g., an EJB) can leverage to connect to and exchange requests and information with the EIS. Moreover, the CCI also allows nonmanaged applications to leverage a JCA resource adapter. Examples of nonmanaged clients include Java applets and application clients. Finally, the packaging and deployment interfaces provide a mechanism that allows resource adapters to plug into J2EE applications. The JCA standard supports two types of environments: managed environments and nonmanaged environments. Managed environments support multitier J2EE-based applications that can connect to one or many EISs. In addition, the applications (known as managed applications) may include one or many application components existing within a J2EE container. Nonmanaged environments support access to one or many EIS systems as well, but do so from nonmanaged application clients, including applets of the Java client application. In this architecture, the Java client connects with the EIS directly, leveraging the resource adapter library. |