Systems Integration
Your organization probably uses many applications and services that were built over many months or years, as new business needs were identified. As a result, these applications probably are of different ages, were written by different people using different languages and technologies, reside on different hardware platforms, use different operating systems, and provide very different functionality. In fact, many of your applications often have very little in common at all, resulting in isolated functionality and multiple instances of the same data. For your organization, these
conditions can result in redundant activities, higher costs, and inefficient response to your customers.
Effective application integration can provide your organization with many important business benefits, such as:
- Allowing applications to be introduced into the organization more efficiently and at a lower cost
- Allowing you to modify business processes as required by the organization
- Providing more delivery channels for your organization
- Allowing you to add automated steps into business processes that previously
required manual intervention
Manual Application Integration
Manual application integration requires people (employees and customers) to act as the interfaces between applications and enable the integration between them. This
form of application integration is very common. As an example, think of a customer
service department that takes information from the public. People may enter the
same information into multiple systems and read information from those systems to
respond to customer requests. In other cases, a person may need to read customer
information from one database, and then reenter it into another database used for
another purpose.
This form of integration requires very little technology investment. It becomes more
complex, however, when your organization becomes more complex, and can lead to
inaccuracies in data. As the amount and complexity of your data increases, or as the
number of applications increases, you will require more and more people to maintain
such an environment. An environment that relies heavily on manual integration is generally very inefficient, and does not grow as easily as environments that use
more automated techniques.
Semi-Automated Application Integration
Semi-automated application integration combines human steps with some automation.
The person may be involved in an area where the corresponding automated
solution is too difficult or expensive to implement, or where the business requires a
person to make decisions. For example, your business may require a manager to
approve all expense claims. In this case, all of the steps before and after managerial
approval may be automated, but a person is required in the middle of the process.
In other cases, human intervention may be needed to transform data that is required
in another system.
Semi-automated application integration generally requires more technology investment,
but once that investment is made, you can often reduce the number of people
involved in integrating your applications. Reducing human involvement in this
manner usually reduces costs and increases reliability.
Fully Automated Application Integration
Fully automated application integration removes people from the business process
entirely, although they are required to maintain the solution. This type of integration
consists of applications communicating through a series of interfaces and adapters.
For example, two databases might share data, which is automatically transformed
and committed to the second database from the first with no human interaction.
Although fully automated application integration removes the dependency on
people, such systems can be more expensive to implement and may not be practical
for many business problems. In many cases, you will still require people to make
business decisions, and often it is more efficient to have a person control a technical
process as well. For these reasons, you should decide where fully automated application
integration is appropriate on a case-by-case basis.
Making Application Integration Scalable
An important part of making application integration scalable is to increase the
number of automated steps and reduce the number of human steps. This generally
involves creating interfaces between applications along with predefined logic that
replaces human involvement.
Increasing the level of automation generally increases the amount of information
traveling between applications without increasing the number of employees required
to support the environment. The scalability issues, however, do not stop at
simple automation. You should also consider the number of applications themselves
and how integration occurs between them.
For automated application integration,
you have two choices:
- Point-to-point model
The point-to-point model describes a decentralized structure in which each application
communicates directly with the other applications. This type of integration is
most appropriate for organizations that need to integrate a few applications with a
small number of services.
As the number of applications and services increases, the number of interfaces and
connections that need to be maintained in a point-to-point environment rapidly
increases.
- Integration hub model
The integration hub model provides a more centralized structure, in which an
integration hub is placed between the applications, and each application communicates
with the hub rather than communicating directly with other applications.
Each application needs only an interface and a connection to the integration hub. To
simplify matters, the integration hub can rely heavily on existing standards, which
means that either the interfaces already exist or the methodologies for writing them
are well-defined.
The main advantage of an integration hub environment is scalability. The integration hub model is significantly more scalable for integration environments
with many applications. A typical large-scale organization has thousands
of islands of information, involving thousands of applications. You simply cannot
create individual interfaces for every point of interaction. Instead, the solution is to create an application integration environment that allows all of your applications to
communicate in a logical, predefined way. This hub infrastructure enables you to
modify or update elements much more easily, and to do so when the business
requires, rather than when the preexisting technology dictates. It should also allow
the organization to more easily change direction and to use the products and services
it has to match evolving requirements.
If you have read this far, your organization has probably identified a business
requirement for applications to work together. Just as employees have to work together to meet business goals, your applications need to do the same. Application integration isn’t easy. Typically, an
environment that supports application integration meets at least the following
requirements:
- Connectivity between different platforms
- Processing of complex business rules, including complex data transformation logic
- Support for business processes, from the very short to the very long, including processes that last weeks or months as data is passed and processed through different parts of the organization
- The ability to modify existing business processes or create new ones as business goals change
- The ability to adapt to changes in hardware, software, and business goals
To help meet these requirements, your application integration environment should:
- Expose a common interface through which applications can communicate, by using business semantics to request Web services.
- Allow service requests at the functional or data level for applications that do not support using business semantics.
- Use a common set of process and service rules to ensure consistency and reuse of integration services.
- Be capable of reusing the existing transport protocols that already exist in the enterprise.
- Insulate itself from existing technologies by using interfaces.
An application integration environment should not depend on the implementation
of any particular technology. You don’t know what applications and hardware your
organization will be using in five years, but whatever they are, your organization
will need to support them.
Web Services
A Web service is an application component that:
- Exposes useful functionality to other Web services and applications through standard Web service protocols.
- Provides a way to describe its interfaces in detail, allowing developers to build
client applications that talk to it. The description is provided in an XML
document called a Web Services Description Language (WSDL) document.
- Describes its messages by using an XML schema.
Many vendors have endorsed and have started to provide Web service capabilities
in their platforms. Using Web services for integration ensures that your integration
is based on open standards that are language neutral and platform independent, and
helps to ensure that the technology remains relevant over time.
Web services rely on defined specifications to allow systems from various vendors to
interoperate. Web services specifications, commonly referred to as WS-* specs, are in
various states of acceptance. The Web Services Interoperability Organization (http://www.ws-i.org) was formed to provide a framework and a set of tools to ensure that
different vendors’ implementations of a particular WS-* spec are compatible.
|