Click here to Skip to main content
15,867,594 members
Articles / Operating Systems / Windows
Article

Application Integration through Microsoft Technologies

Rate me:
Please Sign up or sign in to vote.
3.79/5 (8 votes)
28 Feb 200710 min read 43.6K   25   6
Describes Application Integration and discusses Different Microsoft technologies Related to Application integration

Introduction

Organizations have been using numerous applications that were built over many years. These applications probably are of different era, were written by using different languages and technologies, reside on different hardware platforms, use different operating systems, and provide very different functionality. In fact, many of the 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.

Types of Application Integration

Application integration can be broadly categorized into three types:

· Manual application integration

· Semi-automated application integration

· Fully automated application integration

Application Integration type

Cost

Benefits

Manual

Higher labor costs that scale badly. Subject to human error.

Little change required from existing low-technology environment.

Semi-automated

Higher technology costs to implement. Subject to design-time and run-time errors.

Lower labor costs. Scales better. Less subject to human error at run time. Faster processing.

Fully automated

Highest technology costs to implement. Subject to design errors.

Lowest labor costs. Not subject to human error at run time. Lose human decision making on business processes, but faster processing.

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. For automated application integration, you have two choices:

● Point-to-point model

● Integration hub model

Requirements for Application Integration

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 it from existing technologies by using interfaces.

Challenges of Application Integration

Technical Issues

When building an application integration environment, you are creating an environment that allows components to communicate with each other even though they were never designed to do so. In many cases, these components are not even aware of each other. They may include a variety of preexisting systems (some of which are essential), yet your environment needs to be noninvasive to existing applications.

In these conditions, complex architectural issues such as the following can arise:

· Control and coupling

· Data exchange and data formats

· Distribution and concurrency

· Scalability, reliability, and availability

You do not want to completely rebuild the application integration environment itself every few months. The aim, instead, is to have a relatively stable application integration environment, which is flexible enough to allow the addition of new applications or the alteration of relationships between applications.

Organizational Issues

Organizational issues in application integration arise mainly from the fact that the application integration environment will span multiple departments in the organization. Staff in different departments may choose to deploy applications that will then need to integrate with the rest of organization environment. To design a truly effective application integration environment, you need to isolate application integration as a separate management function, and determine who is responsible for making it happen. In larger organizations, you may have a group of people specifically responsible for this function, including application integration architects, application architects, and application owners, whereas in other cases, application integration may be one of many management functions that you are responsible for. Either way, by defining the application integration management function in this way, you help to ensure that it is properly considered whenever changes are made to the IT infrastructure.

Levels of Application Integration

Application integration can occur at many different levels, including:

· Presentation level

· Business process level

· Data level

· Communications level

Business Process – Level Integration

Business process – level integration often forms the starting point for defining application integration environment, because it is most closely related to the business requirements of the organization. Business process – level integration starts with defining your business processes and then specifying the logical integration that corresponds to those processes.

Defining Your Business Processes

Before you can design your application integration environment, it is important to understand the organization in logical terms, removed from the technology that underlies it. Business processes consist of a group of logical activities that model the activities in your organization. These activities typically represent the smallest units of logical work that can be done in the organization.

Mapping Business Requirements to Application Integration Requirements

After you have determined the business processes that the organization uses, you can begin to examine how they affect your application integration requirements. It is important to realize that a simple business process does not always correspond to simple requirements for application integration.

By modeling each of your business processes, you can define which applications must integrate with one another, and in what way. This enables you to make intelligent decisions about the specifics of application integration environment.

Data-Level Integration

You can define how applications communicate with each other at a business process level, but if they cannot understand the data they exchange, they cannot integrate successfully

There are two general ways to enable data-level integration:

· Add logic to enable each application to understand incoming data from other applications.

· Add logic to enable each application to interpret outgoing data to an intermediate data format and interpret incoming data from that format into a form the application understands.

To support the various complex data integration requirements, your application integration solution must often contain a considerable amount of logic that supports the access, interpretation, and transformation of data. You also need schematic models of enterprise data to describe data attributes. The definition and recognition of schemas enables the validation of data. Descriptions of how data elements may be related or mapped to each other allow for the transformation of data.

Communications-Level Integration

Enabling Communication between Applications

Because many applications are not designed to communicate directly with each other, it is likely that you will need to do some development work to ensure that your applications can be called by other applications.

There are two possible approaches to this problem:

· Rewrite your application to provide it with an API that other applications can call.

· Create a communications adaptor that acts as an intermediary between the application and other applications.

Important Considerations for Application Integration

There are few important considerations regarding Application integration and they are as follows

· Using Synchronous and Asynchronous Communication

· Increasing Automation

· Straight-Through Processing (STP)

· Ensuring Data Integrity

· Managing Latency

· Data Aggregation

· Combining Application Functionality

· Application Composition

· Managing Transactions

o Providing ACID Transactions

o Transactional Messaging

o Two-Phase Commit

o Long-Running Transactions

o Timed Transactions

Security and Operational Issue

Security Issue

Because different applications have different security requirements and features, it can be quite a challenge to ensure that your application integration environment functions properly without compromising your security requirements. Security is particularly important in application integration because a breach in an integration service may result in security breaches in other integrated systems.

Security Policy

The first step toward effective security in any environment is creating a written security policy. Many factors can affect the security policy, including the value of the assets you are protecting, the threats that your environment faces, and the vulnerabilities that are currently present

From an integration standpoint, your security policy should define:

  • A mechanism for evaluating and classifying threats

  • A mechanism for acting on threats

  • A boundary for information security

  • A plan for communication and enforcement.

  • General security guidelines

  • Reference to other documents

  • A mechanism for modifying security policies

Defining Your Security Requirements

The precise security requirements of application integration environment depend on a number of factors, including the following:

· Security requirements of the organization

· Business requirements for application integration

· Technical requirements for application integration

· Capabilities of the applications which will be integrated

· Platforms of the applications

· Budgetary constraints

As a starting point for defining your security requirements, you should perform a risk analysis. Doing so allows you to identify the threats and vulnerabilities that you face and identify the countermeasures you can deploy to keep risk at an appropriate level.

Operational Management Considerations

Even after you build an application integration environment and it is running successfully, your work does not stop there. The environment will need to be monitored and maintained over time. This section discusses the various operational management considerations involved. Implementing the capabilities listed in this section should help to ensure that your architecture continues to function as smoothly as possible.

Defining an Operational Management Policy

Your operational management policy, at the minimum, should provide the following information:

· Clearly defined terminologies and target metrics

· Methodology and/or formulas for measuring the metrics to ensure that results are consistent

· Service-level prioritization to ensure that the most important policies are followed first

Defining Operational Requirements

The operational requirements of application integration environment depend on a number of factors, including the following:

· System Monitoring

· System and application health

· System and Application Performance Monitoring

· Security monitoring

· Service-level monitoring

· Business Activity Management

· Business transaction exception handling

· Contextual monitoring

· Rules-based alerting

· Historical data mining

· Change and Configuration Management

· Directory

Microsoft Technology/Tools Mapping on EAI Capabilities

Capabilities Required for EAI Environment

The capabilities are defined as follows:

· Business process integration capabilities

· Data integration capabilities

· Communications capabilities

· Security capabilities

· Operational management capabilities

Business Process Integration Capabilities

Capability

Provided By

Rules Processing

Custom .NET Framework components, SQL Server stored procedures, and BizTalk Server Business Rules Engine

Transaction Management and Compensation

Microsoft Distributed Transaction Coordinator (DTC) and BizTalk Server long-running transactions

Workflow

Windows Workflow Foundation and BizTalk Server Human Workflow Services

Orchestration

BizTalk Orchestration service

State Management

Common language runtime, IIS session management, and BizTalk Server orchestration state management

Event Processing

SQL Server triggers, MSMQ Events, and BizTalk Server messaging subscriptions

Schedule

Windows Server Schedule service and SQL Server Job Scheduler

Contract Management

Windows Communication Foundation and BizTalk Orchestration service

Data Integration Capabilities

Capability

Provided By

Data Validation

XML schemas

Data Access

ADO.NET and SQLXML

Schema Definition

Visual studio 2003/2005

Data Transformation

SQL Server DTS, XSLT and BizTalk Mapped

Schema Recognition

XML schemas and BizTalk Server parsers

Communication Capabilities

Capability

Provided By

Message Routing

Windows Communication Foundation and BizTalk Server Message Box and subscriptions

Message Delivery

BizTalk Server message ports

Message Queuing

Microsoft Message Queuing and BizTalk Message Queuing

Message Forwarding

Windows Communication Foundation and BizTalk Server Message Box and subscriptions

Message Correlation

BizTalk Orchestration correlation services

Message Instrumentation

BizTalk Orchestration

Addressing

BizTalk Server message ports

Transactional Delivery

Microsoft Message Queuing and BizTalk Server reliable messaging

Security Capabilities

Capability

Provided By

Authorization

Windows Card Space and Active Directory

Authentication

Windows Card Space and Active Directory and Share Point Portal Server Enterprise single sign-on

Information Protection

Windows Server

Identity Management

Windows Card Space and <city w:st="on"><place w:st="on">Enterprise single sign-on

No repudiation

Digital signatures

Profile Management

<city w:st="on"><place w:st="on">Enterprise single sign-on

Security Context Management

Active Directory and <city w:st="on"><place w:st="on">Enterprise single sign-on

Operational Management Capabilities

Capability

Provided By

Business Activity Management

BizTalk Server Business Activity Monitoring (BAM)

Event Handling

Windows Management Instrumentation (WMI) events, Event Viewer, Performance Monitor, and MOM

Configuration Management

System Management Server

Directory

Active Directory

Change Management

BizTalk Server Business Rules Engine and schema versioning

System Monitoring

Windows Server and MOM

References

http://msdn.microsoft.com/practices/Topics/appint/default.aspx?pull=/library/en-us/dnpag/html/eappint.asp

http://msdn.microsoft.com/practices/Topics/appint/default.aspx?pull=/library/en-us/dnpag/html/intpatt.asp

http://www.developers.net/intelisdshowcase/view/840

http://www.infoq.com/j+n/

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Pakistan Pakistan
Naveed Bajwa, an experienced Lead Architect at Kalsoft Pvt. Ltd., received Microsoft’s Most Valuable Professional (MVP) award in Connected System Development. This is yet another value addition to KalSoft’s MVP Club. He has worked on several technologies including Microsoft .NET, .NET Remoting and other Microsoft Technologies. Apart from being the Solution Architect and Technology Consultant he is also heading the Department of Research and Development at KalSoft and working very closely with Microsoft.

Naveed Bajwa is a graduate of FAST (2000). He has substantial knowledge of Enterprise Application, Database Application, Web based Solutions, Business Process Improvement, Next Generation Windows APIs (WinFX), Windows Presentation Foundation (Avalon) and Microsoft Communication Foundation (Indigo).

Naveed Bajwa has worked as Development Consultant on a number of on-site foreign projects in Middle East and Europe. He has extensive experience of Microsoft BizTalk Implementation and Adapter development. Besides from development and consultation projects, he has conducted professional trainings of Visual Studio 2005, Microsoft .NET 2.0 and SQL Server 2005 as a Microsoft Technology consultant; was a presenter on WCF (Windows Communication Foundation) in Pakistan Developers Conference 2006; delivered a presentation in Microsoft Developer Days 2006. He has also conducted a series of seminars on VS2005 and .Net 2.0 in various universities as part of VS2005 launch and is a member of multiple technology forums.

Comments and Discussions

 
QuestionHelp required Pin
Syed Muhammad Kamran16-Apr-08 22:28
Syed Muhammad Kamran16-Apr-08 22:28 
GeneralAdapter Oracle Pin
Aunalisiraj20-Jan-08 21:26
Aunalisiraj20-Jan-08 21:26 
GeneralBiztalk and HL7 Pin
Blumen6-Mar-07 15:46
Blumen6-Mar-07 15:46 
GeneralRe: Biztalk and HL7 Pin
Naveed Bajwa7-Mar-07 1:51
Naveed Bajwa7-Mar-07 1:51 
GeneralRe: Biztalk and HL7 Pin
Blumen7-Mar-07 5:39
Blumen7-Mar-07 5:39 
GeneralRe: Biztalk and HL7 Pin
Aslesh25-Jul-08 7:36
Aslesh25-Jul-08 7:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.