|
Enterprise application integration
Web Design & Development Guide
Enterprise application integration
Home | Up
Enterprise Application Integration (EAI) is defined as the uses
of
software and computer systems architectural principles to integrate
a set of enterprise computer applications.
Rationale for EAI
In today’s competitive and dynamic business environment, applications such as
Supply Chain Management, Customer Relationship Management, Business Intelligence
and Integrated Collaboration environments have become
imperative for organizations that need to maintain their competitive advantage.
Enterprise Application Integration (EAI) is the process of linking these
applications and others in order to realize financial and operational
competitive advantages.
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.
EAI is a response to decades of creating distributed monolithic, single
purpose applications leveraging a hodgepodge of platforms and development
approaches. EAI represents the solution to a problem that has existed since
applications first moved from central processors. Put briefly, EAI is the
“unrestricted sharing of data and business processes among any connected
application or data sources in the enterprise.”
[1]
Undoubtedly, there are a number of instances of
stovepipe systems in an enterprise, such as inventory control systems, sales
automation systems, general ledger systems, and human resource systems. These
systems typically were custom-built with specific needs in mind, utilizing the
technology-of-the-day. Many used non-standard data storage and application
development technology.
Improving connectivity
Enterprise Application Integration has increased in importance because
enterprise computing often takes the form of islands of automation. This occurs
when the value of individual systems are not maximized due to partial or full
isolation. If integration is applied without following a structured EAI
approach, point-to-point connections grow across an organization. Dependencies
are added on an impromptu basis, resulting in a tangled mess that is difficult
to maintain. This is commonly referred to as spaghetti, an allusion to the
programming equivalent of spaghetti code. For example:
The number of n connections needed to have a fully meshed point-to-point
connections is given by
.
Thus, for 10 applications to be fully integrated point-to-point,
,
or 45 point-to-point connections are needed.
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.
Purposes of EAI
EAI can be used for different purposes:
- Data (information) integration: ensuring that information in multiple
systems is kept consistent. This is also known as EII (Enterprise
Information Integration).
- Process integration: linking business processes across applications.
- Vendor independence: extracting business policies or rules from
applications and implementing them in the EAI system, so that even if one of
the business applications is replaced with a different vendor's application,
the business rules do not have to be re-implemented.
- Common facade: An EAI system could front-end a cluster of applications,
providing a single consistent access interface to these applications and
shielding users from having to learn to interact with different
applications.
EAI Patterns
Integration Patterns
There are two patterns that EAI systems implement:
- Mediation: Here, the EAI system acts as the go-between or broker
between multiple applications. Whenever an interesting event occurs in an
application (e.g., new information created, new transaction completed, etc.)
an integration module in the EAI system is notified. The module then
propagates the changes to other relevant applications.
- Federation: In this case, the EAI system acts as the overarching
facade across multiple applications. All accesses from the 'outside world'
to any of the applications are front-ended by the EAI system. The EAI system
is configured to expose only the relevant information and interfaces of the
underlying applications to the outside world, and performs all interactions
with the underlying applications on behalf of the requester.
Both patterns are often used concurrently. The same EAI system could be
keeping multiple applications in sync (mediation), while servicing requests from
external users against these applications (federation).
Access Patterns
EAI supports both asynchronous and synchronous access patterns, the former
being typical in the mediation case and the latter in the federation case.
Lifetime Patterns
An integration operation could be short-lived (e.g., keeping data in sync
across two applications could be completed within a second) or long-lived (e.g.,
one of the steps could involve the EAI system interacting with a human workflow
application for approval of a loan that takes hours or days to complete).
EAI Topologies
There are two major topologies: hub-and-spoke, and bus. Each has its own
advantages and disadvantages. In the hub-and-spoke model, the EAI system is at
the center (the hub), and interacts with the applications via the spokes. 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).
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.
- Application connectivity: The bus/hub connects to applications
through a set of adapters (also referred to as connectors).
These are programs that know how to interact with an underlying business
application. The adapter performs two-way communication, performing requests
from the hub against the application, and notifying the hub when an event of
interest occurs in the application (a new record inserted, a transaction
completed, etc.). Adapters can be specific to an application (e.g., built
against the application vendor's client libraries) or specific to a class of
applications (e.g., can interact with any application through a standard
communication protocol, such as
SOAP or SMTP). The adapter could reside in the same process space as the
bus/hub or execute in a remote location and interact with the hub/bus
through industry standard protocols such as message queues, web services, or
even use a proprietary protocol. In the Java world, standards such as JCA allow adapters to be created in a vendor-neutral manner.
- 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).
- Integration modules: An EAI system could be participating in
multiple concurrent integration operations at any given time, each type of
integration being processed by a different integration module. Integration
modules subscribe to events of specific types and process notifications that
they receive when these events occur. These modules could be implemented in
different ways: on
Java-based EAI systems, these could be
web applications or
EJBs or even POJOs that
conform to the EAI system's specifications.
- 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).
Communication architectures
Currently, there is a lot of variation of thought on what constitutes the
best infrastructure, component model, and standards structure for Enterprise
application integration. There seems to be consensus that four things are
essential for a modern enterprise application architecture:
1. There needs to be a centralized broker that handles security, access, and
communication. This can be accomplished through integration servers (like the
School Interoperability Framework (SIF) Zone Integration Servers) or through
similar software like the Enterprise service bus (ESB) model which acts as a SOAP-oriented services
manager.
2. The use of an independent data model based on a standard data structure. It
appears that XML and the use of XML style sheets has become the de facto and in
some cases de jure standard.
3. A connector, or agent, model where each vendor, application , or interface
can build a single component that can speak natively to that application and
communicate with the centralized broker.
4. A system model that defines the APIs, data flow and rules of engagement to
the system such that components can be built to interface with it in a
standardized way.
Although other approaches like connecting at the database or user-interface
level have been explored, they have not been found to scale or be able to
adjust. Individual applications can publish messages to the centralized broker
and subscribe to receive certain messages from that broker. Each application
only requires one connection to the broker. This central control approach can be
extremely
scalable and highly evolvable.
Enterprise Application Integration is related to
middleware technologies such as message-oriented middleware (MOM), and data
representation technologies such as XML. Other EAI technologies involve using
web services as part of service-oriented architecture as a means of integration.
Enterprise Application Integration tends to be data centric. In the near future,
it will come to include content integration and business processes.
EAI implementation pitfalls
In 2003 it was reported that 70% of all EAI projects fail. Most of these
failures are not due to the software itself or technical difficulties, but due
to management issues. EAIIC European Chairman Steve Craggs has outlined the
seven main pitfalls undertaken by companies using EAI systems and explains
solutions to these problems.[2]
- The very nature of EAI is dynamic and requires dynamic project managers
to manage their implementation.
- EAI requires knowledge of many issues and technical aspects.
- Within the EAI field, the paradox is that EAI standards themselves are
not universal.
- EAI is not a tool, but rather a system and should be implemented as
such.
- Building interfaces is an art
- Engineering the solution is not sufficient. Solutions need to be
negotiated with user departments to reach a common consensus on the final
outcome. A lack of consensus on interface designs leads to excessive effort
to map between various systems data requirements.
- Information that seemed unimportant at an earlier stage may become
crucial later.
- Since so many departments have many conflicting requirements, there
should be clear accountability for the system's final structure.
Other potential problems may arise in these areas:
- EAI implementations should be extensible and modular to allow for future
changes.
- The applications whose data is being integrated often belong to
different departments which have technical, cultural, and political reasons
for not wanting to share their data with other departments.
Advantages and Disadvantages
- Advantages
- Real time information access among systems
- Streamlines business processes and helps raise organizational
efficiency.
- Maintains information integrity across multiple systems
- 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.
The Future of EAI
EAI technologies are still being developed and there still isn’t a consensus
on the ideal approach or the correct group of technologies a company should use.
A common pitfall is to use other proprietary technologies that claim to be open
and extensible but create vendor lock-in.
Open Source Projects
- Apache ActiveMQ
Apache Camel
Apache ServiceMix
Bostech
ESB.NET
Jitterbit Open Source Integration
Virtuoso Universal Server
External links
References
-
^ In its April 2001 report for AIIM International, "Enterprise
Applications: Adoption of E-Business and Document Technologies, 2000-2001:
Worldwide Industry Study," Gartner defines EAI as "the unrestricted sharing
of data and business processes among any connected applications and data
sources in the enterprise." (http://findarticles.com/p/articles/mi_qa3937/is_200203/ai_n9019202)
-
^ Trotta, Gian (2003-12-15).
Dancing Around EAI 'Bear Traps'. Retrieved on
2006-06-27.
Home | Up | Enterprise application integration | Instant messaging | Internet search | Web service specifications | List of web service protocols
Web Design & Development Guide, made by MultiMedia | Websites for sale
This guide is licensed under the GNU
Free Documentation License. It uses material from the Wikipedia.
|
|