Integration Concepts
Application integration is when multiple, dissimilar applications work together as if they were one application. Application integration is mainly a function of traditional programming. Occasionally, one package will support the interfaces of one or two other packages. The current trend is to use message brokers and queues, applications servers, and other specialized integration products that provide a common connecting point. These prepackaged middleware solutions are widely used to enable an enterprise through the web.
The trend in the Internet business application arena is moving toward using Enterprise Application Integration (EAI), which is interoperability and information synchronization across multiple applicationsmainframe, packaged or purchased systems, and custom application systems. EAI enables information sharing within a business environment that includes a company, its suppliers, and its customers. EAI incorporates application integration within internal processes, as well as external entities that interface with the business.
To establish EAI, a tool or methodology must be in place to facilitate the process. EAI solutions enable the following services:
Message servicesThese services provide the backbone of an EAI framework. This backbone transports messages between resources, reconciling network and protocol differences. Message services support features such as security, queuing, and guaranteed delivery.
Connectivity servicesThese services provide the path and traffic management for message flow between integrated resources.
Security servicesThese services provide user authentication, resource access control, and information encryption. This technology must also integrate with existing security implementations.
The following is a list of business benefits of using application integration:
Extracting value from mergers and acquisitions
Delivering new levels of customer care
Benefiting from the investment in Enterprise Resource Planning (ERP) applications
Exploiting the benefits of Customer Relationship Management (CRM)
Delivering supply chain management benefits
Integrating web-based information
Delivering Internet business from old world business
Achieving faster time-to-market of new products through an automated information flow
Reducing cost and complexity compared with custom, point-to-point integration
From integration, managers usually hope to see the following:
25 to 50 percent reduction in time-to-market for new applications
25 to 60 percent lower development costs for integration infrastructure
10 to 20 percent reduction in infrastructure maintenance costs
An effective application integration strategy can position an enterprise to take advantage of new opportunities. Application integration projects emphasize the need for a common definition of information between applications. The greatest problems in enterprise application implementations come from difficulties in ownership and defining business rules and data, not from technology.
To illustrates integration's nuances, the discussion is divided into the following areas:
Risk Factors
Preplanning for Successful Application Integration
Middleware
Enterprise Resource Planning
Risk Factors
Consider the risk factors when looking at EAI. Risks should be factored in when approaching large-scale application integration:
Is the patchwork of systems and databases developed without any architecture plan?
Have attempts at small-scale integration occurred with less than optimal results?
Are there conflicts between IT strategy and corporate strategy?
Is there high acquisition and merger activity in the business area?
Are there industry competitive pressures?
Preplanning for Successful Application Integration
Making the right decisions when it comes to application integration requires you to understand the various business requirements for applications. In addition, you need to know where they fit into the overall organizational context.
Achieving integration requires a comprehensive plan based on a proven methodology. The methodology should focus not just on the technology itself, but also on leveraging the technology to provide a solution that meets business requirements.
The following questions should be asked when considering application integration:
How many applications need to be integrated?
How much of the budget is available to build, integrate, and support the applications?
What entry points are available into the applications being integrated?
How current does the data need to be?
Does the application's end user need an immediate confirmation that the transaction completed or failed?
What level of integrity checks or native business logic needs to be applied on data passed between applications?
Is the end user willing to accept separate user interfaces into separate applications on the desktop for executing the business process?
Is application development and support structured along vertical business lines or horizontal layers of services?
What resourcesin terms of hardware, software, networks, number of staff, and staff skillsare available to address problems in application integration?
Is unidirectional or bidirectional data flow needed?
How important is having a single master copy or "single source of truth" for the data?
Middleware
Middleware is any program or application that connects or "glues" other programs or applications. Middleware is a methodology often incorporated into an enterprise application integration strategy because rewriting existing applications is generally prohibitively expensive.
Middleware can be classified into the following groups:
Message-oriented middlewareProvides a common messaging interface and transport among applications. Typically supported features include store and forward, message queue management, and recovery. The messaging system can contain business logic that routes messages to the appropriate destinations and reformats the data. IBM's MQSeries is an example of message-oriented middleware.
Object-oriented middlewareEnables processes to run anywhere in the network. These methods provide a way to execute programs (objects) written in different programming languages, running on different platforms, anywhere on the network. Examples of object-oriented middleware include Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM), and Enterprise JavaBeans (EJB).
Transaction Processing (TP) middlewareProvides integrity in a distributed environment by ensuring that transactions do not get lost or damaged. This type of middleware can perform many functions, including load balancing, high availability, and guaranteeing that all databases can be updated from a single transaction.
Database middlewareProvides a common interface between a query and multiple databases. This method is typically implemented using either a hub and spoke architecture or a distributed architecture. This type of middleware enables data to be consolidated from a variety of disparate data sources into a single view. Database software that can provide database middleware services includes Oracle, DB2, SQLServer, MySQL, and PostgreSQL.
Enterprise Resource Planning
Enterprise Resource Planning (ERP) is an integrated information system that serves all departments within an enterprise. Evolving out of the manufacturing industry, ERP uses packaged software rather than proprietary software written by, or for, one customer. ERP modules can integrate with an organization's software with varying degrees of effort. ERP modules are also alterable with the vendor's proprietary tools, as well as proprietary or standard programming languages.
ERP systems include software packages in various combinations for manufacturing, order entry, accounts receivable and payable, general ledger, purchasing, warehousing, transportation, and human resources.