软件系统集成初探
第1节: 集成 – 业务相关
什么是集成?
许多CIO开始重点关注通过集成企业应用和数据以简化和自动化业务流程。集成不但涉及集成数据和应用的任务,也涉及提供集成框架和相关工具的软件产品。集成使跨应用共享数据和业务功能成为可能。
集成流行是因为大多数传统企业应用是为满足特定业务需求而客户化定制的。随着企业的壮大、跨部门和业务领域共享信息的需求变得越来越重要,公司开始集成以提供一个方法来连接这些分散的而且往往是特有的系统。
需要注意的是,软件系统集成项目有各种规模涉及各个领域,但大多数项目都可归入以下四种类型(详细定义见 第2节):
为什么我要集成?
当今所有类型的公司正变得更灵活、响应更快并充分利用他们现有的IT投资。为此,他们需要将各个独立应用中的信息和功能解锁,将其转化为企业范围内的共享资源。集成方案解锁现有信息资源,将其在多个应用和业务流程间共享;提供实时企业和实时业务网络的框架。集成还使许多公司能建立其所有企业数据的“统一视图”和保证应用能交换和更新关键业务数据——不论它们在哪——的底层基础。
从另一角度,通过简化、集成、管理之前独立的业务流程,集成技术使组织的IT底层基础和应用能快速响应业务变化。
另外,集成方案将独立的应用转化为被其它应用或业务流程使用的通用资源,成为复合应用中的一部分。 (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.
集成带来什么好处?
使用集成方案可得到诸多益处。一个是成本节省、简化业务流程和增进效率。集成还帮助组织保护投资,继续使用现有应用中的数据和功能,而不是“拆换”掉遗留系统。集成项目更可带来长远的益处,组织可由此得到所有数据和操作的即时的、实时的视图,有利于更好的决策。另外,集成产品提供很大的灵活性,使业务流程快速适应增长、满足新业务挑战。
今日集成项目的业务原动力?
组织实施集成项目的原因有四点:
- 新系统未替换遗留系统.
已实施的新企业应用(如SAP、Siebel等等)一般并不是要替换现有的遗留系统,而是要补充或扩展它们。这就产生了这些系统间整合或互联的需求. - 并购和全球化的需求.
合并和收购让许多组织面对大量不能被废弃或替换的关键人物系统。而将它们集成使组织中大量应用能相互交换信息成为更现实的解决方案. - 追求生产力增长.
经济形势触使许多组织追求提高生产力和降低成本的方法。使用集成平台来自动化现有业务流程和应用,组织可以简化业务同时提高生产力、降低成本. - Web经验带来的期望.
不论行业,客户现在都希望组织有他们的帐户、交易和任何相关信息的统一视图,而不论这些数据实际存在哪里。为了保持竞争力,组织要能提供给内部客户(如客户服务代表或销售)和外部客户(如客户或合作伙伴)更方便的数据和应用访问.
集成方案用在何处?
大多传统企业应用用来解决特定的业务需求。随着企业的壮大、跨部门、区域和遍布全球的企业间共享信息的需求变得越来越重要,公司开始集成以提供一个方法来连接这些分散的而且往往是特有的系统。
自从组织开始实施打包的企业应用,如SAP、Siebel、PeopleSoft、JD Edwards等,集成变得特别流行。一旦企业开始实施这些新的打包的应用,他们很快意识到需要手段在这些新系统和原有应用间动态交换信息。在应用间保持数据一致之后,跨系统自动化和简化业务流程以提高效率的需求随之而来。
集成软件产品发展出提供人工干预、工作流和业务行为监控(实时监控应用和业务流程,而不是将信息加载到数据仓库以备今后分析)以支持新业务驱动。集成的这条发展路径使组织能基于现有系统通过复合应用开发实现全新的应用功能。
S第2节: 集成的方方面面
软件系统集成项目的四种基本类型:
或许说集成有如下四种原动力:
许多集成项目包含多个类型——这是选择集成平台时应该考虑的因素.
什么是数据协调及其带来什么好处?
数据协调为提供一致性在应用间移动事务数据。
通常作为消息中介或集成服务器,这个核心技术是上述各类集成项目的基础。连接应用和数据源到一个通用中间件平台(或总线),根据内容、规则或下标将基于消息的信息在这些不同的系统间路由,并动态转换数据以符合目标系统的特有格式,由此实现数据协调。
数据协调将应用特有的信息转换为共享的企业资源从而降低成本并减少在异构系统间输入和维护信息一致性容易造成的文书错误。确保在所有应用间一致的数据访问提高了数据质量和生产力
.
什么是业务流程协奏及其所带来的好处?
业务流程协奏(也称为业务流程管理,或BPM)是上世纪80年代的流程再造和上世纪90年代工作流技术的融合。
业务流程管理(BPM)关注不同应用的独立功能间的工作流建模和协奏,以自动化和简化之前独立的业务流程。它可被理解为跨应用工作流的“集成逻辑”。
在很多案例中,BPM首先关注那些数小时、数天、数月或更长时间才能完成的“长运行”业务流程和跨多个应用及包括人工干预(常称为工作流)的业务流程。例如,一个通过邮件订购计算机的公司将计算机运送给客户的流程就是一个长运行业务流程,它起始于仓库的送货请求,直到退货期过了才结束,可能要30或60天。而且该流程本身可能跨仓库应用、客户支持和订单管理应用。
管理长运行流程需要在整个流程周期(可能数小时、数天、数周或数月)中维持流程状态。BPM工具一般包括建模、自动化和管理组件。建模组件让业务分析员可以定义、查看或管理单个流程而不用知道流程运行的底层技术细节。
业务流程管理使组织可以自动化和简化他们的人工流程并于之前的自动操作和管理系统融合。创造出更好响应市场变化的灵活高效的业务。
什么是业务行为监控及其所带来的好处?
业务行为监控(BAM)的目标是提供能立即感知企业内变化的业务市场活动以快速准确做出决策的管理。实时、市场活动驱动的业务行为监控方案通过图形化的仪表板和其它通知机制提供实时报警,当关键性能指标变化时,能立即反应和干预。BAM方案还补充BPM:BAM提供的实时流程监控能力使BPM系统能动态立即对业务环境的变化做出响应。
由于使用实时信息,取消了企业关键业务流程管理和执行上的延迟,BAM节省了成本、加速了业务流程执行。
什么是复合应用开发其所带来的好处?
复合应用是整合了原有应用和数据源的功能和数据,并加入新的业务流程逻辑、用户代码和用户风格前台的一个应用或新的应用功能。复合应用使用后台业务系统中独立的功能和业务逻辑,将它们作为组件建立新的应用或应用功能。复合应用开发使用面向服务的开发手段,将现有功能和业务流程以服务的形式组合来支持新的应用功能。
复合应用使组织能更多地重用现有应用和IT投资中,推动快速满足业务变化和挑战的市场响应更快的新业务方案。
是否我的集成平台应该支持所有这四类集成类型?
是的。即使你认为现在不需要所有这四类功能,今后也需要。新的业务机会导致新的集成项目,而且看起来小的项目一旦实现了最初设想的业务利益,它也会急剧扩展。因此,与其不断尝试、组装和管理所有必须的独立模块,选择一个完整的集成平台是更好的方案。当集成项目需要扩展、需要用新的技术实现新的集成战略时,那种技术组合的实现方案将极大地增加复杂性和成本。
但“完整的”集成平台是不是难于使用?
可能。有些完整集成平台实际上也是“套件”,和以前的需要组合的独立产品没大的区别。有一致构架的全面集成平台易于使用——这是选择集成平台的首要考虑因素。你的平台越易使用,集成项目会越快完成。第三部分“理解集成平台”里有关于完整集成平台应该提供的功能的更详细内容。
第3节: 理解集成平台
集成平台的基本功能?
一个完整的集成平台应提供7项能力,它们是:
下面来逐一介绍.
什么是连接?
连接提供了在集成平台和被集成应用间的交互通道。大多数集成平台使用适配器实现连接。适配器是预先写好的代码块,以目标资源本身的协议与其通信,并将其连接到集成平台或小型总线。使用适配器能极大加速集成速度并显著节省为每个连接写代码的成本。
当选择集成平台,应查看其包含的适配器数量和类型。这个平台可以连接你的现有应用吗?有建立你需要的客户定制适配器的机制吗?创建和使用适配器容易吗?
什么是抽象?
抽象是以某种一致的形式展现现有应用数据和功能的过程。它削减了对被集成中各个应用所使用的不同协议、数据和编程模型的理解和操作的需求。一些通用的抽象方式是:
- 使用 J2EE.
这种方式能很好地抽象应用和业务逻辑,但不能很好地抽象数据. - 使用 XML 和 Web
services.
这种方式可以很好地解决已支持Web服务的松耦合应用。遗留应用和客户特定应用需要用Web服务“包装器”来翻新. - 使用 “规范形式”(canonical form).
简单的说,规范形式是数据和功能的标准化表达。进行规范形式化意为把每个数据和应用转换为标准的格式或表达。在种方式可以非常灵活和强大,规范形式可以同时导出或映射为大量基于标准的对象和数据格式,如Java、 .NET、 Web服务、关系型、 C++等等.
当选择一个集成平台,应考虑其抽象的灵活性。是否能同样简单地展现数据和功能?是否能不需改写地展现遗留应用?你的组织内是否同时有J2EE和.NET核心的应用?如果你基于Java的组织得到一家所有应用都基于.NET的公司会怎样?
什么是协调?
在集成系统中,信息以消息的形式在异构应用间传递。协调是在集成系统中管理消息流的能力。大多数集成平台含有消息中介,负责消息的可靠传递、数据转换和智能路由。
当选择集成平台时,消息引擎的性能和可靠性是首要的因素,因为它将直接影响集成系统的伸缩性和健壮性。但也应该考虑消息引擎的功能:是否支持同步、异步和出版/订阅路由?是否支持基于内容的路由?可用何种数据转换工具及是否容易使用?是否集成有消息仓库以持久化保存所有消息?
什么是存储?
集成会产生各种数据(元数据、消息、长运行流程的状态信息、联邦数据库索引等),而且每个集成平台都需要存储、取得和分析数据的机制。不幸的是,许多集成平台只包含基本的存储能力。这种情况下,为了得到健壮性和可伸缩存储,你必须购买并集成一个外部数据库,因此增加了集成项目的成本和复杂性。
当选择集成平台,应选择一个含有内建共享元数据仓库的产品,以保存被集成平台产生和使用的所有集成点的元数据。也要选择内建消息仓库和产品,还要注意其分析消息数据的能力能否满足报表和行为监控的需求。平台的存储机制对复合应用的面向服务开发支持如何?是否支持分布式环境?当大负载时,是否会限制集成平台的总体性能和伸缩性?
什么是协奏?
协奏(Orchestration)是业务流程建模和自动化的别名。它是告诉消息引擎做什么和何时做的代码。然而,协奏常指业务流程建模,业务分析员定义和建模图形化流程,而不需考虑底层自动化流程的代码复杂性。协奏引擎能“读”这些流程模型并执行。大多数集成平台内建有流程建模的图形化工具。一些集成平台支持由流程图产生的基于标准的XML形式的代码,从而能与第三方建模工具交互。
选择集成平台时,应考虑协奏的灵活性。是否提供了强大的图形化的建模工具?是否支持第三方BPM工具?是否集成平台支持直接编写的流程代码,使用何种脚本?是否能简单的协奏复杂业务流程?是否支持人工流程干预?是否有基于规则的引擎,能提供给分析员快速简单的方法定义修改流程的规则?
为什么在集成项目中开发很重要?
在集成概念中,开发常指建立复合应用和门户,复合应用利用我们到目前为止介绍的所有集成平台功能,为之前讨论的抽象服务和业务流程增加新的业务逻辑和用户风格的前端。
当选择集成平台,要选择其拥有你在任何快速开发环境里期望的同样功能。这个环境是否易于使用?开发环境是否支持业务流程建模?是否可以使用同一个开发环境开发集成方案中的所有组件(如适配器、消息图、转换、业务行为监控方案等)?是否支持你已使用的技术?是否能和你喜欢的第三方开发工具一同工作?
还有管理?
由于其松耦合特点,集成系统非常难于管理。因此,你的集成平台能提供优秀的端对端管理能力很重要,不论在集成系统的开发阶段还是运行阶段。理想情况下,你的集成平台将每个系统中传递的单独消息的记录保存到消息仓库。对消息仓库的分析能快速诊断和定位问题。其它重要的管理特性包括:配置管理、队列和流程监控、详细的市场活动记录和使用直方图。
当选择集成平台,要考虑管理工具的功能完整性和易用性。这个平台是否能保存足够的诊断数据?可否实时分析?管理工具是否可扩展?平台是否支持基于标准(如SNMP)的第三方管理工具?可否跟踪所有业务流程中的消息流?
InterSystems Corporation
World Headquarters
One Memorial Drive
Cambridge, MA 02142-1356
Tel: +1.617.621.0600
Fax: +1.617.494.1631
www.InterSystems.com
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

