Section #1: Integration – The Business Case
What is Integration?
Integration of enterprise applications and data to simplify and automate business processes has become an important focus for many CIOs. It refers to both the tasks of integrating data and applications, as well as to software products that provide integration frameworks and associated tools. Integration enables the sharing of data and business functions across applications.
Integration has become popular because most traditional enterprise applications were custom built to address a specific business need. As enterprises have grown, and the need to share information across departments and business areas becomes more critical, companies are turning to integration to provide a method for interconnecting these distributed and often proprietary systems.
Keep in mind that integration projects come in a wide variety of shapes and scopes. Most projects can be classified as belonging to one of the following four main categories of integration initiatives (defined in section #2):
- Data Coordination/Data Consistency
- Business Process Management/Orchestration
- Business Activity Monitoring
- Composite Application Development
Why would I want to do it?
All types of companies today seek to become more agile, responsive, and to maximize their existing IT investments. In order to do so, they need to unlock information and functionality in individual applications and turn them into a shared, enterprise-wide resource. Integration solutions unlock existing information assets and share them across multiple applications and business processes, providing the framework for real-time enterprises and real-time business networks. Integration solutions also enable many companies to create a “single view” of all their enterprise data and an infrastructure for ensuring that applications can exchange and update business-critical data no matter where it resides.
Another way to look at it is that integration technologies enable an organization’s IT infrastructure and applications to rapidly respond to business changes by providing a dynamic way to streamline, integrate, and manage previously independent business processes.
In addition, integration solutions allow you to take stand-alone applications and turn them into resources that can be used by other applications or business processes as part of a composite application. (applications that are composed of both new code, processes, or user interfaces along with calls to existing and legacy applications and services). By enabling the creation of composite applications, integration solutions allow businesses to rapidly implement new applications while increasing an organization’s return on previous investments by leveraging existing application functionality in new ways.
What are the benefits of integration solutions?
There are several benefits of using integration solutions. One is cost savings, courtesy of streamlined business processes and increased efficiency. Integration approaches also help contain costs by allowing organizations to continue to use the data and functionality embodied in their existing applications instead of “ripping and replacing” legacy systems. But integration projects can also have forward-looking benefits. Organizations can gain an instant, real-time view of all their data and operations, which can lead to better decision-making. And integration products provide the flexibility to quickly adapt business processes to accommodate growth and meet new business challenges as they arise.
What are the specific business drivers for today’s integration projects?
There are four major reasons why organizations are implementing integration projects:
- New systems haven’t replaced legacy systems.
New enterprise applications (such as SAP, Seibel, etc.) that have been deployed typically do not replace existing legacy applications, but rather they complement or extend them, often generating a need for integration or connectivity between them.
- The need to consolidate and globalize.
Mergers and acquisitions have left many organizations with a broad array of mission critical systems that simply can’t be abandoned or replaced. Instead, integrating them and putting systems in place to exchange information among an organization’s various applications becomes a much more realistic solution.
- The search for increased productivity.
The economic situation has forced many organizations to search for ways to increase productivity and reduce costs. By using integration platforms to automate existing business processes and applications, organizations can streamline their business while increasing productivity and reducing costs.
- Raised expectations from Web experiences.
Regardless of your industry, customers now expect organizations to have a consolidated view of their accounts, transactions, and any other related information – regardless of where that data actually is. In order to stay competitive, organizations need to provide better availability of data and applications to both internal users (such as customer service representatives or salespeople) and to external users (such as customers or partners).
What are integration solutions used for?
Most traditional enterprise applications were built to address a specific business need. As enterprises have grown, and the need to share information across departments, divisions, and globally throughout the enterprise has become critical, companies are turning to integration solutions to provide a method for interconnecting these distributed and often proprietary silos of information systems.
Integration became particularly popular after organizations began deploying packaged enterprise applications like SAP, Seibel, PeopleSoft, JD Edwards, and others. Once companies began deploying these new packaged applications, they soon realized that they needed ways to dynamically exchange information between them and between their existing legacy applications. The need for data consistency among applications was soon followed by the requirement to automate and streamline business processes that crossed between these different systems in order to improve efficiency.
Integration software products evolved to support this new business driver adding support for human interaction and workflow as well as business activity monitoring (the process of monitoring applications and business processes in real time, rather than loading information into a data warehouse for future analysis). This evolutionary integration path allowed organizations to implement entirely new application functionality that builds upon their existing systems, through the development of composite applications.
What are the four basic types of integration projects?
It might be better to say that there are four basic categories of integration initiatives (further defined below):
- Data Coordination
- Business Process Orchestration
- Business Activity Monitoring
- Composite Application Development
Many integration projects will involve more than one of these categories – a fact that should be considered when choosing an integration platform.
Data coordination moves transactional data between applications in order to provide consistency.
This core technology set, often referred to as a message broker or integration server, is used as the foundation for every category of integration project described above. Data coordination is enabled by technology that connects applications and data stores to a common middleware platform (or bus), routes the message-based information between these different systems based on content, rules or subscription and dynamically transforms the data so that it is in the native format of the target system(s).
Data coordination transforms application-specific information into a shared enterprise resource reducing the costs and clerical errors associated with entering and maintaining consistent information across disparate systems. The result is improved data quality and increased productivity by ensuring consistent data access across all applications.
Business Process Orchestration (also called Business Process Management, or BPM) is the combination of the process re-engineering concepts of the 80’s and the workflow technologies of the 90’s.
Business Process Management (BPM) is focused on modeling and orchestrating the workflow between individual functions in different applications in order to automate and streamline previously independent business processes. It can be thought of as the “integration logic” of a cross application workflow.
In many cases, BPM is primarily focused on “long running” business processes that may take hours, days, months or longer to complete, as well as business processes that span multiple applications and include interaction with users (often called workflow). For example, the process of shipping a computer to the customer of a mail-order computer company is a long running business process that starts with the request-to-ship at the computer company’s warehouse and ends when the return period has ended, which might be 30 or 60 days. The process itself might span both the back office warehouse application as well as the customer support and order entry applications.
Managing long running processes requires that state of the processes be maintained through the entire duration—be that hours, days, weeks, or months. BPM tools typically include modeling, automation and management components as well. The modeling components allow business analyst to define, view, or manage individual processes without having to understand the underlying technical details of how the process is actually implemented.
Business Process Management enables organizations to automate and streamline their manual processes and fuse previously autonomous operational and management systems. The result is a more agile business and efficient business better able to respond to changes in the marketplace.
The goal of Business Activity Monitoring (BAM) is to provide management with immediate awareness of changing business events across the enterprise, so that appropriate and timely decisions can be made. Real-time, event-driven business activity monitoring solutions provide real-time alerts via graphical dashboards and other notification mechanisms, enabling management to immediately react and intervene when key performance indicators change. BAM solutions also complement BPM solutions by providing real-time process monitoring capabilities that enable BPM systems to dynamically and immediately react to changes in the business environment.
By using real-time information to remove delays in managing and executing an enterprises critical business processes, BAM reduces costs and enables faster execution of business processes.
A composite application is an application or new application functionality that combines the data and functionality of an enterprise’s existing applications and data stores, adding new business process logic, custom code and user-facing front ends. Composite applications leverage individual functions or business processes within back-end operational systems and use them as components to build new applications or application functionality. Composite Application Development uses a service-oriented development approach, whereby existing functions and business processes, available as services, are combined in support of new application functionality.
Composite applications enable organizations to gain greater re-use from existing applications and IT investments, facilitating quicker time-to-market for new solutions that rapidly address changing business dynamics and challenges.
Does my integration platform really need to be capable of supporting all four categories of integration?
Yes. Even if you don’t think you need all four integration capabilities right now, the chances are you will in the future. New business opportunities breed new integration projects, or what looks like a small project normally expands dramatically in scope once the initial business benefits are realized. It is therefore usually better to choose a complete integration platform than to try and assemble and manage all the necessary capabilities piecemeal. This technology assembly approach dramatically increases the complexity and costs when integration projects evolve and new technologies are required to implement new integration strategies.
But the “complete” integration platforms – aren’t they difficult to use?
They can be. That’s because some complete integration platforms are really nothing more than “suites” that represent assemblies of formerly independent products. A comprehensive integration platform with a consistent architecture will deliver ease of use – a prime consideration when choosing an integration platform. The easier your platform is to use, the faster your integration projects will be completed. Section #3: “Understanding Integration Platforms” gives more detail about the capabilities that a complete integration platform should provide.
Section #3: Understanding Integration Platforms
What are the basic functions of an integration platform?
There are seven capabilities that a comprehensive integration platform should provide. They are:
Let’s take them one at a time.
What is Connection?
Connection provides a channel of communication between the integration platform and each of the applications that are being integrated. Most integration platforms achieve connection by using adapters. Adapters are pre-written pieces of code that work by speaking the native protocols of the target resources and connecting them to the integration platform or message bus. The use of adapters greatly speeds integration and can significantly reduce costs associated with writing code for each connection.
When choosing an integration platform look at the number and types of adapters it includes. Can the platform connect to your existing applications? Is there a mechanism for building custom adapters should you need to? How easy is it to build and use adapters?
Abstraction is the process of representing the data and functionality of your existing applications in some consistent form. This alleviates the need to have to understand and work with the diverse and different protocols, data, and programming models used by each of the applications you are integrating. Some common approaches to abstraction are:
- Using J2EE
This approach can work well for applications and business logic, but it isn’t as good at dealing with data.
- Using XML and Web services
This approach works well for loosely coupling applications that are already Web service enabled. Legacy and custom applications may need to be retrofitted with Web service“wrappers”.
- Using “canonical form”
Canonical form basically means a standardized representation of the data or functions. Putting something into canonical form would mean that each set of data and application functionality would be translated into a standard format or representation. This approach can be very flexible and powerful, if the canonical form can be exposed or projected in various standard-based object and data formats concurrently e.g. Java, .NET, Web Services, Relational, C++, etc.
When choosing an integration platform, consider the flexibility of its abstraction. Is it easy to represent both data and functionality? Can it represent your legacy applications without requiring that they be rewritten? Do you have both J2EE and .NET-centric applications within your organization? What happens if your Java-based organization acquires a company where all the applications or development are based on .NET?
In an integrated system, information is passed between disparate applications in the form of messages. Coordination is the capability to manage the flow of messages in your integrated system. Most integration platforms include message brokers that are responsible for guaranteed delivery, data transformation, and intelligent routing of messages.
When choosing an integration platform, the performance and reliability of the messaging engine is of prime importance, as these will directly affect the scalability and robustness of your integrated system. But also consider the messaging engine’s capabilities: Does it support synchronous, asynchronous, and publish-and-subscribe routing? Does it support content-based routing? What data transformation tools are available and how easy are they to use? Is it integrated with a message warehouse for persisting all messages?
Integration generates data (metadata, messages, state information of long-running processes, indexes on federated databases, etc.) and every integration platform needs a mechanism for storing, retrieving, and analyzing data. Unfortunately, many integration platforms include only rudimentary capabilities for storage. In those cases, in order to gain robust, scalable storage, you must purchase and integrate an external database, thus adding cost and complexity to your integration project.
When choosing an integration platform look for one that has a built-in shared metadata repository for all the integration touchpoints that will be generated and used by the integration platform. Also look for one that has a built-in message warehouse, and pay particular attention to its capabilities for analyzing the message data in support of reporting and activity monitoring. How well does the platform’s storage mechanism support service-oriented development of composite applications? Does it support distributed environments? Will it impede the overall performance and scalability of the integration platform under heavy load?
Orchestration is another name for modeling and automating business processes. It can be as detailed as writing the code that tells the messaging engine what to do and when to do it. However, orchestration normally refers to business process modeling, whereby business analysts define and model graphical process flows without thinking about the underlying coding complexities involved in automating them. The orchestration engine is able to “read” these process models and execute them. Most integration platforms come with built-in graphical tools for process modeling. A few of them enable standard-based XML-based code to be generated from the process diagrams, thus allowing interoperability with third-party modeling tools.
When choosing an integration platform, consider how much flexibility it gives you with regard to orchestration. Does it provide a powerful graphical modeling tool? Does it support interoperability with third-party BPM products? Does the integration platform support direct coding of processes, and what scripting language does it use? How easy is it to orchestrate complex business processes? Does it support human workflow interaction? Does it have a rules-based engine that provides analysts with a quick and easy ways to define rules that change the process flow?
In the context of integration, development normally refers to building composite applications and portals, often the ultimate deliverable in an integration project. Composite applications make use of all of the capabilities of the integration platform we have described so far, adding new business logic and user-facing front ends to the abstracted services and business processes previously discussed.
When choosing an integration platform, look for the same capabilities that you would want in any rapid development environment. Is the environment easy to use? Does the development environment support business process modeling? Can you build all the components of your integration solution using the same development environment (e.g. adapters, message maps, transformations, business activity monitoring solutions, etc.)? Does it support the development technologies you already use? Does it work with your favorite third-party development tools?
Integrated systems are amongst the most difficult to manage because of their loosely coupled nature. It is therefore vital that your integration platform provides good end-to-end management capabilities, both during development, and during operation of your integrated system. Ideally, your integration platform will keep a record of every single message that passes through the system in a message warehouse. Analysis of the message warehouse allows for quick debugging and identification of problems. Other important management features include: configuration management, queue and process monitoring, detailed event logs and usage histograms.
When choosing an integration platform, consider the completeness and ease-of-use of the management tools. Does the platform save enough diagnostic data? Can that data be analyzed in real time? Are the management tools extensible? Does the platform support the use of standard based (e.g. SNMP) third-party management tools? Can the messages that flow through all business processes be traced?
One Memorial Drive
Cambridge, MA 02142-1356
InterSystems Ensemble is a trademark of InterSystems Corporation.
Other product names are trademarks of their respective vendors.
© Copyright 2004 InterSystems Corporation. All rights reserved. 09-04