65.9K
CodeProject 正在变化。 阅读更多。
Home

通过 Microsoft 技术进行应用程序集成

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.79/5 (8投票s)

2007年3月1日

10分钟阅读

viewsIcon

45186

描述了应用程序集成,并讨论了与应用程序集成相关的不同 Microsoft 技术。

引言

组织多年来一直在使用众多应用程序。这些应用程序可能出自不同的时代,使用不同的语言和技术编写,驻留在不同的硬件平台,使用不同的操作系统,并提供非常不同的功能。事实上,许多应用程序之间常常几乎没有共同点,导致功能孤立和同一数据存在多个实例。对您的组织而言,这些情况可能导致活动冗余、成本增加以及对客户响应效率低下。

应用程序集成类型

应用程序集成可大致分为三种类型:

· 手动应用程序集成

· 半自动应用程序集成

· 全自动应用程序集成

应用程序集成类型

成本

优点

手动

人工成本高且难以扩展。容易出错。

对现有低技术环境的改动要求很少。

半自动

实施技术成本高。容易出现设计时和运行时错误。

人工成本低。更易扩展。运行时出错的可能性较小。处理速度更快。

全自动

实施技术成本最高。容易出现设计错误。

人工成本最低。运行时出错的可能性为零。丧失了业务流程中的人工决策,但处理速度更快。

使应用程序集成具有可扩展性

使应用程序集成具有可扩展性的重要部分是增加自动化步骤的数量并减少人工步骤的数量。这通常涉及在应用程序之间创建接口以及预定义的逻辑,以取代人工参与。对于自动化的应用程序集成,您有两种选择:

● 点对点模型

● 集线器模型

应用程序集成要求

通常,支持应用程序集成的环境至少满足以下要求:

· 不同平台之间的连接性

· 复杂业务规则的处理,包括复杂的数据转换逻辑

· 对业务流程的支持,从很短到很长,包括持续数周或数月的流程,因为数据会在组织的各个部分之间传递和处理

· 随着业务目标的变化,修改现有业务流程或创建新业务流程的能力

· 适应硬件、软件和业务目标变化的能力

为满足这些要求,您的应用程序集成环境应:

· 公开一个通用接口,应用程序可以通过该接口进行通信,并使用业务语义请求 Web 服务。

· 允许不使用业务语义的应用程序进行功能级别或数据级别的服务请求。

· 使用一组通用的流程和服务规则,以确保集成服务的一致性和重用性。

· 能够重用企业中已存在的传输协议。

· 通过使用接口来隔离现有技术。

应用程序集成挑战

技术问题

构建应用程序集成环境时,您将创建一个允许组件相互通信的环境,即使它们从未被设计成这样。在许多情况下,这些组件甚至不知道彼此的存在。它们可能包含各种现有的系统(其中一些至关重要),而您的环境需要对现有应用程序具有非侵入性。

在这种情况下,可能会出现复杂的架构问题,例如:

· 控制和耦合

· 数据交换和数据格式

· 分布式和并发

· 可扩展性、可靠性和可用性

您不希望每隔几个月就完全重建应用程序集成环境本身。相反,目标是拥有一个相对稳定的应用程序集成环境,该环境足够灵活,可以添加新应用程序或更改应用程序之间的关系。

组织问题

应用程序集成中的组织问题主要源于这样一个事实:应用程序集成环境将跨越组织内的多个部门。不同部门的员工可能会选择部署需要与组织其余环境集成的应用程序。为了设计一个真正有效的应用程序集成环境,您需要将应用程序集成隔离为一个独立管理职能,并确定谁负责实现它。在大型组织中,您可能有一组专门负责此职能的人员,包括应用程序集成架构师、应用程序架构师和应用程序所有者,而在其他情况下,应用程序集成可能只是您负责的众多管理职能之一。无论哪种方式,通过这样定义应用程序集成管理职能,您都有助于确保在对 IT 基础架构进行任何更改时都能妥善考虑它。

应用程序集成级别

应用程序集成可以在许多不同的级别发生,包括:

· 表示级别

· 业务流程级别

· 数据级别

· 通信级别

业务流程级别集成

业务流程级别的集成通常是定义应用程序集成环境的起点,因为它与组织的业务需求最为相关。业务流程级别的集成始于定义您的业务流程,然后指定与这些流程相对应的逻辑集成。

定义您的业务流程

在设计应用程序集成环境之前,了解组织在逻辑层面上(摆脱底层技术)至关重要。业务流程由一组逻辑活动组成,这些活动模拟组织中的活动。这些活动通常代表组织中可完成的最小逻辑工作单元。

将业务需求映射到应用程序集成要求

在确定了组织使用的业务流程后,您可以开始检查它们如何影响您的应用程序集成要求。重要的是要认识到一个简单的业务流程并不总是对应于简单的应用程序集成要求。

通过为每个业务流程建模,您可以定义哪些应用程序必须相互集成,以及如何集成。这使您能够就应用程序集成环境的具体细节做出明智的决定。

数据级别集成

您可以在业务流程级别定义应用程序如何相互通信,但如果它们无法理解它们交换的数据,它们就无法成功集成。

有两种主要方法可以实现数据级别集成:

· 添加逻辑以使每个应用程序能够理解来自其他应用程序的传入数据。

· 添加逻辑以使每个应用程序能够将传出数据解释为中间数据格式,并将来自该格式的传入数据解释为应用程序可以理解的形式。

为了支持各种复杂的数据集成需求,您的应用程序集成解决方案通常必须包含大量的逻辑,以支持数据的访问、解释和转换。您还需要企业数据的模式模型来描述数据属性。模式的定义和识别可以实现数据的验证。数据元素之间如何关联或映射的描述允许数据转换。

通信级别集成

实现应用程序之间的通信

由于许多应用程序并非设计为直接相互通信,因此您可能需要进行一些开发工作,以确保您的应用程序可以被其他应用程序调用。

解决此问题有两种可能的方法:

· 重写您的应用程序,为其提供其他应用程序可以调用的 API。

· 创建一个通信适配器,充当应用程序与其他应用程序之间的中介。

应用程序集成的重要注意事项

关于应用程序集成有几个重要的考虑因素,它们如下:

· 使用同步和异步通信

· 增加自动化

· 直通式处理 (STP)

· 确保数据完整性

· 管理延迟

· 数据聚合

· 组合应用程序功能

· 应用程序组合

· 管理事务

o 提供 ACID 事务

o 事务消息传递

o 两阶段提交

o 长时运行事务

o 定时事务

安全和运营问题

安全问题

由于不同的应用程序具有不同的安全要求和功能,因此要确保您的应用程序集成环境正常运行而不损害您的安全要求可能是一项挑战。在应用程序集成中,安全性尤其重要,因为集成服务的漏洞可能会导致其他集成系统的安全漏洞。

安全策略

在任何环境中实现有效安全的第一步是创建书面的安全策略。许多因素会影响安全策略,包括您要保护的资产的价值、您的环境面临的威胁以及当前存在的漏洞。

从集成角度来看,您的安全策略应定义:

  • 评估和分类威胁的机制

  • 处理威胁的机制

  • 信息安全的边界

  • 沟通和执行计划。

  • 一般安全指南

  • 参考其他文档

  • 修改安全策略的机制

定义您的安全要求

应用程序集成环境的确切安全要求取决于许多因素,包括:

· 组织的安全性要求

· 应用程序集成的业务需求

· 应用程序集成的技术要求

· 将被集成的应用程序的功能

· 应用程序的平台

· 预算限制

作为定义安全要求的起点,您应该进行风险分析。这样做可以让您识别面临的威胁和漏洞,并确定可以部署的对策,以将风险保持在适当的水平。

运营管理注意事项

即使您构建了应用程序集成环境并且它已成功运行,您的工作也不会停止。该环境将需要随着时间的推移进行监控和维护。本节讨论了涉及的各种运营管理注意事项。实施本节中列出的功能应该有助于确保您的架构尽可能平稳地运行。

定义运营管理策略

您的运营管理策略至少应提供以下信息:

· 明确定义的术语和目标指标

· 衡量指标的方法和/或公式,以确保结果一致

· 服务级别优先级,以确保首先遵守最重要的策略

定义运营要求

应用程序集成环境的运营要求取决于许多因素,包括:

· 系统监控

· 系统和应用程序的运行状况

· 系统和应用程序性能监控

· 安全监控

· 服务级别监控

· 业务活动管理

· 业务事务异常处理

· 上下文监控

· 基于规则的警报

· 历史数据挖掘

· 变更和配置管理

· 目录

Microsoft 技术/工具与 EAI 功能的对应关系

EAI 环境所需的功能

这些功能定义如下:

· 业务流程集成功能

· 数据集成功能

· 通信功能

· 安全功能

· 运营管理功能

业务流程集成功能

功能

提供方

规则处理

自定义 .NET Framework 组件、SQL Server 存储过程和 BizTalk Server 业务规则引擎

事务管理和补偿

Microsoft 分布式事务协调器 (DTC) 和 BizTalk Server 长时运行事务

工作流

Windows Workflow Foundation 和 BizTalk Server 人工工作流服务

业务流程

BizTalk Orchestration 服务

状态管理

通用语言运行时、IIS 会话管理和 BizTalk Server 编排状态管理

事件处理

SQL Server 触发器、MSMQ 事件和 BizTalk Server 消息订阅

计划

Windows Server 计划服务和 SQL Server 作业计划程序

合同管理

Windows Communication Foundation 和 BizTalk Orchestration 服务

数据集成功能

功能

提供方

数据验证

XML 架构

数据访问

ADO.NET 和 SQLXML

架构定义

Visual Studio 2003/2005

数据转换

SQL Server DTS、XSLT 和 BizTalk Mapper

架构识别

XML 架构和 BizTalk Server 解析器

通信功能

功能

提供方

消息路由

Windows Communication Foundation 和 BizTalk Server Message Box 和订阅

消息传递

BizTalk Server 消息端口

消息队列

Microsoft Message Queuing 和 BizTalk Message Queuing

消息转发

Windows Communication Foundation 和 BizTalk Server Message Box 和订阅

消息关联

BizTalk Orchestration 关联服务

消息检测

BizTalk Orchestration

寻址

BizTalk Server 消息端口

事务性传递

Microsoft Message Queuing 和 BizTalk Server 可靠消息传递

安全功能

功能

提供方

Authorization

Windows Card Space 和 Active Directory

身份验证

Windows Card Space 和 Active Directory 以及 SharePoint Portal Server Enterprise 单点登录

信息保护

Windows Server

身份管理

Windows Card Space 和企业版单点登录

不可否认性

数字签名

配置文件管理

企业版单点登录

安全上下文管理

Active Directory 和企业版单点登录

运营管理功能

功能

提供方

业务活动管理

BizTalk Server 业务活动监控 (BAM)

事件处理

Windows Management Instrumentation (WMI) 事件、事件查看器、性能监视器和 MOM

配置管理

系统管理服务器

Directory(目录)

Active Directory

变更管理

BizTalk Server 业务规则引擎和架构版本控制

系统监控

Windows Server 和 MOM

参考文献

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/

© . All rights reserved.