Basics of Enterprise Application Integration For Dummies
Basics of Enterprise Application Integration For Dummies
Basics of Enterprise Application Integration For Dummies
Introduction:
Enterprise Application Integration (EAI) is defined as the uses of software and computer
systems architectural principles to integrate a set of enterprise computer applications.
When different systems can’t share their data effectively, they create information
bottlenecks that require human intervention in the form of decision making or data entry.
With a properly deployed EAI architecture, organizations are able to focus most of their
efforts on their value-creating core competencies instead of focusing on workflow
management.
For generations, systems have been built that have served a single purpose for a single set
of users without sufficient thought to integrating these systems into larger systems and
multiple applications. EAI is the solution to the unanticipated outcome of generations of
development undertaken without a central vision or strategy. The demand of the
enterprise is to share data and processes without having to make sweeping changes to the
applications or data structures. Only by creating a method of accomplishing this
integration can EAI be both functional and cost-effective.
One of the challenges facing modern organizations is giving all their workers complete,
transparent and real-time access to information. Many of the legacy applications still in
use today were developed using arcane and proprietary technologies, thus creating
information silos across departmental lines within organizations. These systems
hampered seamless movement of information from one application to the other. EAI, as a
discipline, aims to alleviate many of these problems, as well as create new paradigms for
truly lean proactive organizations. EAI intends to transcend the simple goal of linking
applications, and attempts to enable new and innovative ways of leveraging
organizational knowledge to create further competitive advantages for the enterprise.
However, EAI is not just about sharing data between applications; it focuses on sharing
both business data and business process. Attending to EAI involves looking at the system
of systems, which involves large scale inter-disciplinary problems with multiple,
heterogeneous, distributed systems that are embedded in networks at multiple levels.
Objectives of EAI:
EAI can be used for different purposes:
Integration methods:
EAI has five common integration methods:
• Data-level integration
• User interface (UI)-level integration
• Application-level integration
• Method/component interface-level integration
Data-level integration
With data-level integration, you integrate the backend datastores that the integrated
applications use. Data-level integration can be push- or pull-based. With push-based, one
application makes SQL calls (through database links or stored procedures) on another
application's database tables. Push-based data-level integration pushes data into another
application's database. In contrast, pull-based data-level integration utilizes triggers and
polling. Triggers capture changes to data and write the identifying information to
interface tables. Adaptors can then poll the integrated application's interface tables and
retrieve the pertinent data. You'd use pull-based data-level integration when an
application requires passive notification of changes within another application's data.
UI-level integration
UI-level integration ties integration logic to user interface code. UI-level integration is
scripting- or proxy-based. Scripting-based UI-level integration embeds integration code
into the UI component events, common with client/server applications such as
PowerBuilder or Vantive. For example, when you click the Submit button of an Add
Customer screen, data must be sent to the application's database and a JMS (Java
Message Service) topic. Proxy-based UI-level integration uses the integrated application's
interface (through screen scraping) to pass data to and from the legacy system.
Application-level integration
Application-level integration, probably the best way to integrate applications, uses the
integrated application's integration frameworks and APIs. Application interfaces let you
invoke business logic to preserve data integrity. Integration API examples include Siebel's
Java DataBeans and SAP's JCA (J2EE Connector Architecture). Prefer application-level
integration because it is transparent to the integrated application and preserves the
application's data integrity.
Method-level integration
EAI Topologies:
There are two major topologies: hub-and-spoke, and bus.
In the hub-and-spoke model, the EAI system is at the center (the hub), and interacts
with the applications via the spokes.
Hub-and-spoke architecture
In the bus model, the EAI system is the bus (or is implemented as a resident module
in an already existing message bus or message-oriented middleware).
The ESB is often characterized as the backbone upon which to build SOA. There are
numerous articles and white papers about the ESB, and they all have the following
elements in common when describing what the ESB is: an ESB is seen as a distributed
services architecture based on Web services standards, which delivers messaging
middleware, intelligent routing, and XML transformation in conjunction with a flexible
security framework and a management infrastructure for configuring, deploying, and
monitoring the services.
At the heart of the ESB architecture is the enterprise services bus, a collection of
middleware services that provides integration capabilities. Applications are connected to
this logical bus through smart connectors, which encapsulate system functionality and
provide a layer of abstraction between bus and application. In this smart connector we
may find typical capabilities such as transformation services and security services.
Through the use of open communication standards, connectivity between bus and
applications is established.
The aforementioned description points out that an ESB is more a logical concept than it is
a product. There are some vendors claiming that ESB is a product, but this perception
comes more from a traditional view of integration architecture, which is based on
products instead of standards.
One way or another, experts and analysts unanimously agree that for those companies
and organizations pursuing an SOA or an EDA, the shift towards an ESB-based
infrastructure is a major step in this evolvement.
Message-oriented middleware
Message-oriented middleware, as shown in is software that resides in both portions of a
client/server architecture and typically supports asynchronous calls between the client
and server applications. Message queues provide temporary storage when the destination
program is busy or not connected. MOM reduces the involvement of application
developers with the complexity of the master-slave nature of the client/server mechanism.
Figure 1: Message-Oriented Middleware
Technologies:
Multiple technologies are used in implementing each of the components of the EAI
system:
• Bus/hub: This is usually implemented by enhancing standard middleware
products (application server, message bus) or implemented as a stand-alone
program (i.e., does not use any middleware), acting as its own middleware.
• Data format and transformation: To avoid every adapter having to convert data
to/from every other applications' formats, EAI systems usually stipulate an
application-independent (or common) data format. The EAI system usually
provides a data transformation service as well to help convert between
application-specific and common formats. This is done in two steps: the adapter
converts information from the application's format to the bus's common format.
Then, semantic transformations are applied on this (converting zip codes to city
names, splitting/merging objects from one application into objects in the other
applications, and so on).
• Support for transactions: When used for process integration, the EAI system also
provides transactional consistency across applications by executing all integration
operations across all applications in a single overarching distributed transaction
(using two-phase commit protocols or compensating transactions).
Disadvantages
• Prohibitively high development costs, especially for small and mid-sized
businesses (SMBs).
• EAI implementations are very time consuming, and need a lot of resources.
• Require a fair amount of up front design, which many managers are not able to
envision or not willing to invest in. Most EAI projects usually start off as point-
to-point efforts, very soon becoming unmanageable as the number of applications
increase.
Tools
BIZTALK SERVER 2006
BizTalk Server 2006 is Microsoft's premiere server for building solutions for business
process and integration. BizTalk Server 2006, the fourth major version of the product,
builds on the innovation and success introduced by the previous three versions—BizTalk
Server versions 2000, 2002, and 2004.
The 2006 version includes new capabilities and engine improvements that allow a
developer to create more flexible solutions for integrated business processes, and BizTalk
2006 empowers and enables administrators and business users to more effectively
monitor ongoing business processes.