Chapter 12: Integrating .NET Applications


Enterprises often want pieces of their data and services to be accessible over the Web to partners , suppliers, customers, and remote employees . Enterprises can realize this by building a Web application that can access and manage data stored within existing information systems. With the .NET Framework, enterprises have the ability to build applications that can extend the reach of their existing information systems across the Internet. This chapter explores the delicate field of application integration and applies some of the technologies described earlier to build integration solutions.

Defining an Application Integration Strategy

Integrating new applications with existing legacy applications has always been a challenge. Legacy applications often include traditional enterprise applications, such as Enterprise Resource Planner (ERP) systems, transaction processing systems, database management systems, and various business-specific applications developed within the enterprise. The goal of application integration is to seamlessly bind existing application data and functionality to other business applications.

An integration project needs to be implemented without requiring changes to the legacy application or its data. An integration project must also assure that none of its newly added components cause any data inconsistencies or compromise the integrity of the existing data. The selected application integration strategy needs to be clearly defined. The strategy should list and address the predicted integration challenges, identify the type of integration necessary, and address security concerns.

Exposing the Integration Challenges

Generally, enterprises have built up their legacy information systems incrementally over time. As a business grows, it often finds it necessary to combine existing applications, even if they operate on different hardware platforms or were written in different programming languages. Enterprises usually end up with clusters of disparate business functions and data across their networks. A lack of integration between applications leads to information and process inconsistencies throughout the enterprise. Enterprise-wide integrations are always an expensive and risky undertaking. Some of the integration challenges include the following:

  • Merging different application architectures: Legacy applications are often written in different programming languages and target different operating platforms without any mechanism for sharing information.

  • Combining different client models: Legacy applications present technology and administrative restrictions, such as new user account creation, that are difficult to overcome .

  • Addressing different transaction mechanisms and security: Legacy applications may apply transactions and security that are difficult to integrate. Some applications may control access to their resources through transactions, and others offer limited or no support for transactions.

  • Resolving data inconsistencies: Legacy applications may use different data storage mediums in different formats for storing data requiring significant data mapping and/or transformations.

When developing a .NET application that integrates with a legacy application, keep the legacy application's functional limitations in mind. Design the integration solution to consider such limitations. It may be necessary to support transactions with rollback capabilities that span across multiple applications.

Understanding the Types of Integration

There are three different types of integration: inbound, outbound, and bidirectional. From the perspective of the new application, an inbound integration is passive and only exposes data and services to other applications. An outbound integration is active and interacts with the data and services provided by other applications. A bidirectional integration is both inbound and outbound. There is equal use of services between the new and legacy applications. You can also differentiate these three types of integration by the types of communication they use.

Synchronous communication involves a synchronous interface, which provides request-reply communication between a new application and a legacy application. When a new application wants to interact with the legacy application, it invokes an exposed function within the legacy application and then waits until the function completes before returning with a reply. The reply contains the results of the function's legacy execution.

Asynchronous integration involves an asynchronous interface, which enables a new application to call a remote function within the legacy application and then continue its own processing. The remote function within the legacy application processes that request and then returns an appropriate response to the application. The new application does not suspend its own processing while the remote function executes. Rather, the new application continues its work and receives a notification with the results of its request.

Message-based integration requires a connection to a queue-based or publish-subscribe messaging system. With queue-based messaging, a queue, independent from both the sender and receiver, serves as a message buffer between two communicating applications. One application sends a message to this queue, and another receives messages from it. With publish-subscribe messaging, publishers produce messages and subscribers listen to messages in which they are interested.

Building Awareness of Integration Security

An enterprise depends on its existing information systems to serve its business activities. Information loss or unauthorized access can be extremely costly. Enterprises require that the security of their legacy applications must never be compromised. Integrating applications must provide access to legacy applications without creating new security threats.

Enterprises must clearly establish the requirements for a secured environment. They must also weigh the cost of implementing, administering, and running a secure system against the security needs of individual applications. It is best for new applications to require only the minimum level of access allowed by the legacy applications. New applications should also reduce the level of access for less sensitive information or where the system is less vulnerable to threats. Enterprises need to establish their security requirements before mapping the architecture for legacy application integration. The integration project should do the following:

  • Support a consistent end-to-end security architecture across all legacy application tiers.

  • Fit into the existing security environment and infrastructure supported by the legacy application.

  • Support authentication and authorization of users who are accessing the legacy application.

  • Be transparent to new application components. This includes support for enabling end users to log on only once to the enterprise environment and access multiple enterprise information systems.

  • Enable new applications to be portable across security environments that enforce different security policies.

Achieving these goals depends on the cost vs. benefit tradeoffs for the security requirements. The more that the integration project takes care of security requirements for the application, the easier the new application development effort will be.

A new application should clearly specify security requirements. This includes security roles, method permissions, and the authentication approach for the legacy application login.

When in doubt, a separate security component can manage security. A programmatic interface can be exposed through which new applications can manage security. The security component interface allows the new application to make access control decisions based on the role associated with the login.




Developing. NET Enterprise Applications
Developing .NET Enterprise Applications
ISBN: 1590590465
EAN: 2147483647
Year: 2005
Pages: 119

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net