About Us Product & Services Reference Site Media Publication Education Career
   
Articles
Slides
 
 
   
How J2EE Promotes Enterprise Application Integration (EAI)
By Roslan Amir
February 21, 2003

During the 1990s, companies bought packaged software solutions such as SAP, Oracle ERP, PeopleSoft, and so on. Although such packaged software solutions worked well individually, they created information islands. In most cases, each system produced redundant information (like customer information). As a result, when common data changed, employees manually updated the associated information in each system, a process that quickly becomes cumbersome. Eventually, some of the data across systems became inconsistent. When people noticed the resulting double data entry, inconsistent data, and data isolation problems, they decided to find ways to integrate the systems. From that search, enterprise application integration (EAI) was born.

EAI combines separate applications into a co-operating federation of applications. Two logical integration architectures for integrating applications exist: Direct point-to-point connections and middleware-based integration.

Point-to-point integration

Initially, developers choose point-to-point integration because it was easy to understand and quick to implement when they have just a few systems to integrate. An example of a point-to-point integration is when one application makes direct database calls to another application's database tables. Another example is when one application communicates with another using TCP/IP sockets.

At the beginning, when integrating two applications, the point-to-point integration solution seems to be the right choice. But as additional applications are integrated, the situation becomes unwieldy. Each application is tightly coupled with the other applications through their point-to-point links. Changes in one application may break the applications integrated with it. Another disadvantage with this approach is the number of integration points needing support. If we have five applications integrated with one another, we need ten different integration points. As a result, each additional application becomes harder to integrate and maintain.

To avoid this problem, we need an intermediate layer to isolate changes in one application from the others.

Middleware-based integration

This mediation point between applications is called middleware. Middleware provides generic interfaces with which all integrated applications pass messages to one another. Each interface defines a business process provided by an application. This integration architecture allows us to add and replace applications without affecting the other applications. Compared to the point-to-point solution, middleware-based solutions easily support numerous integrated applications and require less maintenance. In addition, middleware can perform complex operations-transforming, aggregating, routing, separating, and converting messages-on the data passed from application to application(s). The only downside: the added initial complexity of setting up the middleware and converting existing applications to use the middleware application programming interfaces (APIs).

A very popular middleware technology used for enterprise application was the transaction processing monitor (TPM). Examples in this category are BEA Tuxedo and IBM Encina products. They provide transactional support on top of remote procedure calls which are the requirements for distributed enterprise applications.

Another specific middleware technology that is specially meant for EAI is the message-oriented middleware (MOM). The most well known product in this category is the IBM MQSeries. Applications communicate with one another by passing messages and these messages are queued if the receiver is unavailable thus guaranteeing that the messages will eventually be delivered.

Java 2 Platform, Enterprise Edition (J2EE)

The purpose of J2EE is to provide platform-independent, portable, multi-user, secure and standard enterprise-class platform for server-side deployments written in the Java programming language. It is a robust suite of middleware services that makes life easy for enterprise application developers, and this includes EAI implementors. Java is a portable language that is vendor and platform independent.
Some of the major technologies provided by J2EE that are relevant to EAI are:

  • Java Database Connectivity (JDBC)
  • Enterprise JavaBeans (EJB)
  • Java Messaging Service (JMS)
  • J2EE Connector Architecture (JCA)
  • Java API for XML Messaging (JAXM)

JDBC is an API for accessing relational databases. The value of JDBC is that we can access any relational database using the same API. JDBC drivers are provided by the database vendors.
EJBs provides the same capabilities that were provided by the transaction processing monitor (TPM) middleware but at a very much reduced complexity to developers. Instead of requiring the developers code stuff like transaction support, security and other low-level services, EJB technology extract out these into the EJB container thus freeing the developers to concentrate only on the business logic of the application.

JMS allows for J2EE deployment to communicate using messages. Messaging can be used to communicate within our J2EE system as well as outside the J2EE system. For example, one can connect to existing MOM systems such as IBM MQSeries. JMS provides for both synchronous and asynchronous message passing.

JCA allows us to access existing enterprise information systems using a common API. This is analogous to JDBC with relational databases. This could include any existing systems, such as a mainframe system running high-end transactions (such as those deployed with IBM's CICS), Enterprise Resource Planning (ERP) systems, or our own proprietary systems. Connectors are useful because they automatically manage the details of middleware navigation to existing systems, such as handling transaction and security concerns. Another value of the JCA is that we can write a driver to access an existing system once, and then deploy that driver into any J2EE-compliant server. This is important because we only need to learn how to access a given system once. This is very useful for independent software vendors (ISVs) who want their software to be accessible from within J2EE application servers.

JAXM is the Java implementation of the Simple Object Access Protocol (SOAP) technology that forms the basis for Web Services. Web Services and SOAP allow enterprise application integration (EAI) and business-to-business integration (B2BI) using the technology that drives the Internet.
Conclusion

We have seen that J2EE technology covers all aspects of enterprise application integration. If we want to stick with point-to-point integration by direct database access, we can use JDBC. Applications can communicate directly with one another using EJB or JAXM technology. For middleware-based integration, JMS provides integration with existing MOM systems, or even new EJB-based applications since JMS is also integrated into EJB technology. For accessing existing legacy or ERP systems, JCA provides the common connector architecture that makes life easier for enterprise developers and system vendors alike.

About the writer
Roslan Amir is one of XYBASE's CTOs who oversees the research and development of our XYBASE Message Broker as well as the operation of our system egineering.

Articles Archive

How J2EE Promotes Enterprise Application Integration (EAI)
By Roslan Amir
February 21, 2003

Find out the main functions for the development of an Airport Perfomance Database and Key-Perfomance Index
By Zainuddin Georges Abdullah.

   
   
 
Copyright © 2008 XYBASE Sdn.Bhd. All Rights Reserved. Comments