J2EE Connector Architecture and Enterprise Application Integrationby Rahul Sharma, Beth Stearns, Tony Ng
The Java 2 Enterprise Edition (J2EE) platform connector architecture is the key component in Java's support for enterprise application integration (EAI) and for linking enterprise information systems (EISs) with Web services. Because many services are now provided through the Web, it is essential that business enterprises have an efficient EAI solution.
The Java 2 Enterprise Edition (J2EE) platform connector architecture is the key component in Java's support for enterprise application integration (EAI) and for linking enterprise information systems (EISs) with Web services. Because many services are now provided through the Web, it is essential that business enterprises have an efficient EAI solution. J2EE Connector Architecture and Enterprise Application Integration is the definitive guide to showing enterprise organizations how to incorporate existing enterprise infrastructure and applications, taking them into the Web-enabled economy of the future.
Written for application component developers who are building Connector architecture applications, J2EE Connector Architecture and Enterprise Application Integration explains how to connect applications not only to one another but also to a multitude of EISs and legacy systems. This book is also of interest to independent software developers (ISVs) and others who develop resource adapters for specific EISs. Readers will learn how to link underlying infrastructure products with J2EE application server and platform technologies.
Read an Excerpt
This book provides an in-depth coverage of the Java 2, Enterprise Edition (J2EE) platform Connector architecture. The Connector architecture is an integral part of the J2EE platform, and, as a key component in the platform's support for application integration, it ensures that J2EE applications can connect to and use a multitude of EISs and legacy systems. The Connector architecture, because it defines a standard set of contracts for handling connections, transactions, and security, makes it easier for vendors to develop products that can hook into the J2EE platform. Vendors follow the guidelines of these Connector contracts to develop special software modules, called resource adapters, that enable this linkage between their underlying products and the J2EE platform.
This book is written for application component developers who are building applications that run on the J2EE platform. It is also of interest to independent software vendors (ISVs) and others who develop resource adapters for specific EISs, such as legacy and database systems.
Conventions Used in This Book
This book uses certain graphical conventions.
The graphical conventions used here are based on the Unified Modeling Language (UML) standard. UML is a modeling language for object-oriented development. In general, object-oriented modeling decomposes systems into collaborating objects. The resulting model captures the underlying semantics of a problem. UML defines different models for representing systems, and graphical diagrams to depict these models, including a class model, a state model, a use case model, an interaction model, an implementation model, and a deploymentmodel.
We only use a subset of the UML diagrams in this book. The diagrams of most interest to readers are the class diagrams, which depict static structure, and sequence, object, and collaboration diagrams, which depict dynamic object interactions.
Note that we use the terms application server, server, and J2EE application server interchangeably. Unless otherwise noted, these three terms all refer to a J2EE application server.
For those interested in more information about UML, we refer you to the following sources:
- UML Distilled, Second Edition, Fowler, Scott, 2000, Addison-Wesley
- Instant UML, Muller, 1997, Wrox Press Ltd.
Other Sources of Information
You should refer to other publications related to J2EE and to the J2EE Web site, http://java.sun.com/j2ee/. The following books, both online and in print, are of particular interest to those developing J2EE Connectors and other application components.
- Java 2 Platform, Enterprise Edition Connector Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
- Java Message Service API, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
- Java 2 Standard Edition Platform (J2SE), 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products.
- Java Authentication and Authorization Service (JAAS) 1.0 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/jaas.
- Java 2 Platform, Enterprise Edition, Platform and Component Specifications, Shannon, Hapner, Matena, Da Cable, Enterprise Team, 2000, Addison-Wesley.
- Enterprise JavaBeans 2.0 Specification, Copyright 2001, Sun Microsystems, Inc. Available at http://java.sun.com/j2ee/docs.html.
- Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition, Version 1.0., Kassem, Enterprise Team, 2000, Addison-Wesley.
- Applying Enterprise JavaBeans, Component-Based Development for the J2EE Platform, Matena, Stearns, 2001, Addison-Wesley.
- JDBC API Tutorial and Reference, Second Edition, Universal Data Access for the Java 2 Platform, White, Fisher, Cattell, Hamilton, Hapner, 1999, Addison-Wesley.
- JDBC 2.0 API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
- JDBC 2.0 Standard Extension API Specification, 1999, Sun Microsystems, Inc. Available at http://java.sun.com/products/jdbc.
- RMI over IIOP 1.0.1 Specification, 2000, Sun Microsystems, Inc. Available at http://java.sun.com/products/rmi-iiop.
Contents of the Book
As noted previously, we've written this book for two distinct audiences: application developers and software product vendors (including ISVs) who are building resource adapters and enterprise information systems. Application developers work within the Information Technology (IT) department of an enterprise. Their charter is to link the underlying infrastructure products, whether they were developed in-house or purchased from a third-party vendor, with the J2EE application server and platform technologies. Application developers need to know how to use the resour by the product vendors and ISVs, and vendors need to know how to construct resource adapters that conform to the Connector architecture specifications.
We have organized this book into sections so that it is easier for readers to access the information they need. Before we get into the specifics of using or building resource adapters, we have included an introductory section that provides background information of interest to all readers. This first section, consisting of Chapters 1 and 2, provides a general introduction to application integration and the J2EE Connector architecture.
The next section is primarily for application developers who need to know how to use a resource adapter. This section describes the Connector application programming model. Chapters 3 through 9 describe how to use a resource adapter from an application developer perspective.
Chapters 10 through 12 focus on the details of the Connector system contracts. These chapters are written for product vendors and ISVs interested in building a resource adapter. Product vendors and ISVs will probably want to focus on Chapter 10 and Chapter 11, which provide the details for building and deploying a resource adapter.
The book begins with an introduction to enterprise application integration, a term that is often abbreviated to EAI. Chapter 1, Enterprise Application Integration, describes the state of enterprise application integration today and shows how it has evolved to this point. Much of the J2EE Connector architecture addresses the problem of application integration, particularly Web-driven application integration. Because more and more services are provided through the Web, it is essential that enterprises have an efficient solution for EAI.
Enterprises must also integrate their enterprise information systems (EISs) with their Web services. EISs encompass the information infrastructure--the business processes and data--of an enterprise. Often, these are the legacy applications, database management systems, and so forth, that the enterprise relies on for its business functioning. This chapter describes the different approaches to integrating the often disparate pieces of an enterprise's information infrastructure, and it shows how the J2EE Connector architecture helps with this process.
Chapter 2, J2EE Connector Architecture Overview, provides an introduction to the Connector architecture. It presents the architecture's concepts and introduces the three system contracts defined by the architecture: the connection, transaction, and security contracts. The Connector architecture is designed for applications running on the J2EE platform. For those not quite as familiar with the J2EE platform, this chapter also includes a description of the platform's components and technologies.
Chapter 3, Managing Connections, starts the application programming model section. This chapter focuses on how application developers can best use the connection pooling mechanisms defined by the Connector architecture's connection management contract. The chapter describes the interfaces that support connection pooling and shows application developers how to use these interfaces so that their applications can connect to an EIS.
Application developers also need to know how to effectively use the transactional support provided by the J2EE platform, and specifically by the Connector architecture. The architecture supports both local and global transactions, and developers use different application programming interfaces to implement these approaches. Chapter 4, Working with Transactions, describes basic transactional concepts and illustrates how to develop transactional applications on the J2EE platform.
Security is also important for EAI. Chapter 5, Managing Security, describes the support for secure connections to EISs that the Connector architecture provides. The Connector architecture builds on the J2EE platform security model. The J2EE model defines the security applied to a client's access to the Web tier, and from there to the EJB tier. The Connector architecture defines a security management contract that extends the J2EE security model to include the connection between the EJB and EIS tiers. This security contract enables a J2EE server to manage security while it creates connections to an EIS and accesses EIS resources. This chapter introduces the reader to the Connector's security contract and describes the basic J2EE security concepts and terminology. It presents the security model as it relates to the process of signing on to an EIS and illustrates that process with an example scenario.
The Connector architecture supports synchronous and asynchronous messaging systems. These types of messaging systems underlie communication between an application server and an EIS. Often, asynchronous messaging is the preferred communication mode because it allows a message sender to continue processing without waiting for the message to be received and acknowledged. It offers improved performance over synchronous messaging and eliminates some of the dependencies between sender and receiver, or EIS and application. Chapter 6, Asynchronous Messaging, describes the Java Message Service (JMS), the standard Java API (application programming interface) defined for enterprise messaging systems, and shows how the Connector architecture accomplishes asynchronous messaging within this framework.
Chapter 7, Common Client Interface, describes the interfaces and methods of the Common Client Interface (CCI), which is a set of APIs between application components and EIS resource adapters. The CCI provides a common API across heterogeneous EISs, so that vendors specializing in application integration do not have to adapt their products to each individual EIS whose client API they want to support. By building their products to the CCI API, application integration product vendors have a standard way to plug in their resource adapters to different EISs. In addition to describing the interfaces and methods, the chapter provides an example that illustrates how to use the CCI.
Chapter 8, Tools and Frameworks, describes how to integrate application development tools with EIS resource adapters using the Connector architecture, particularly the Common Client Interface API. Integrating tools with resource adapters is particularly challenging because of the heterogeneous nature of EISs--they differ in their client APIs, their support for transactions and security, and in their application programming models. The Connector architecture promotes the use of tools so that development and system integration are simplified.
Chapter 9, XML and the Connector Architecture, provides overview information about XML (eXtensible Markup Language) and shows how to work with XML data within the J2EE and Connector framework. This chapter has a two-fold approach. It describes the current means for incorporating XML data, but, more important, it gives some insight into XML-related tools that are expected to be available in the near future.
ISVs, once they have a good grasp of the underlying contracts, need to know how to build a resource adapter module. A resource adapter is a system-level software driver that provides the connection to the vendor's EIS. A resource adapter implements the EIS side of the Connector system contracts, and it provides a client level API that applications can use to connect to the adapter's underlying EIS. Chapter 10, Building a Resource Adapter, describes the steps involved in building a resource adapter. It illustrates these steps with code examples for a sample resource adapter.
Chapter 11, Resource Adapter Packaging and Deployment, describes how to package and deploy a resource adapter that you have developed. Packaging and deployment are essential steps for bringing a resource adapter to market. The Connector architecture specifies a standard packaging format for a resource adapter. The deployment process installs components such as adapters into the enterprise's operational environment. By following the Connector architecture's packaging and deployment formats, you are assured that a resource adapter will work on any J2EE application server.
This completes the application programming model section of the book. From this point on, we focus on the system-level aspects of the Connector contracts. These next three chapters--one on each system contract--are meant to provide an "under the covers" view of the contracts. Although the intended audience for these chapters is application server vendors and resource adapter providers, application developers may find this information useful.
Chapter 12, Connection Management Contract, looks at the Connector architecture's connection management contract from a system-level viewpoint. It examines in detail the contract's interfaces and classes. It also explains how connections are handled in both two-tier and multi-tier environments and how a connection pool is implemented. Its focus is on managing connections in different environments so that scalability is enhanced.
Chapter 13, Transaction Management Contract, explains the system-level details of the Connector architecture's transaction management contract. It examines the methods of the local and global transaction interfaces and explains the different levels of transactional support that a J2EE application server provides. It also illustrates how the contract mandates the handling of this transactional support.
Chapter 14, Security Management Contract, similar to the previous two chapters, explains the system-level details of the Connector architecture's security management contract. Not only does it present and explain the interfaces and classes that the contract supports, it also shows how to use the contract to identify and authenticate users and determine their authorization and access control privileges.
The Connector architecture is constantly evolving and including new Java technologies. Chapter 15, Future Directions, describes the new technologies that will be included in the architecture. It particularly focuses on the features that the 2.0 version of the architecture is expected to support. These features will enhance EIS pluggability into the J2EE platform.
We have also included three chapters from three different resource adapter vendors. Chapter 16, written by engineers working with SAP, describes the architecture of the SAP connector, and shows how the connector manages connections, transactions, and security. It also describes the CCI provided for the SAP connector and uses an example to illustrate how to use this resource adapter in an application. Chapter 17, written by IBM Corporation, describes how developers can use the IBM J2EE Connector architecture-based tools to develop enterprise applications. This chapter focuses on using VisualAge for Java to develop an application that uses a CICS ECI connector to execute a CICS transaction within a WebSphere Application Server environment. Chapter 18, provided by BEA Systems, Inc., describes how they have implemented the J2EE Connector architecture specification in their WebLogic Server product.
Last, the book includes an appendix that contains the API reference and a glossary of terms. The reference section contains all the classes and interfaces defined by the Connector architecture as well as the methods within each interface or class.
Meet the Author
Rahul Sharma is the lead architect of the J2EE Connector architecture and a Senior Staff Engineer at the Java Software division of Sun Microsystems, Inc. Presently, he is the lead architect of the JAX-RPC (Java APIs for XML based RPC) 1.0. Rahul has been with Sun for the last five years. Rahul holds a computer engineering degree from the Delhi University, India, and an MBA from the Haas School of Business, UC Berkeley.
Beth Stearns is the principal partner of ComputerEase Publishing, a computer consulting firm she founded in 1982. Among her publications are Java Native Interface in The Java Tutorial Continued (Addison-Wesley), “The EJB Programming Guide” for Inprise Corporation, and “ Understanding EDT, ” a guide to Digital Equipment Corporation's text editor.
Tony Ng is a Staff Engineer with Sun Microsystems. He is currently the project lead of the J2EE SDK and Reference Implementation. He has designed and implemented a number of Java technologies, including the J2EE Connector Architecture, the Java Transaction Service, and the J2EE Blueprints. Tony has a B.S. degree in Computer Science from the University of Illinois, Urbana-Champaign, and a S.M. degree in Electrical Engineering and Computer Science from Massachusetts Institute of Technology.
Most Helpful Customer Reviews
See all customer reviews