1.07k likes | 1.21k Views
软件体系结构 (Software Architecture). 讲义 10 :应用集成概述. 内容. 应用集成概述 面向业务过程的应用集成 应用集成中的中间件技术 适配器与 J2EE 连接子体系结构. 背景. 目前,企业政府构建了许多应用系统,但是,多数应用系统相互独立运行 , 每个系统都包含其自己的应用、流程和数据,从而形成了一个个“ 信息孤岛 ”,相互之间无法进行通畅的信息交换与共享 企业业务已经进入 “随需应变” 的时代 ,为提高企业的综合竞争力,即时处理瞬间万变的信息,其中一个关键的工作就是将各类业务 应用系统 及 各类信息 进行 有效的集成
E N D
软件体系结构(Software Architecture) 讲义10:应用集成概述
内容 • 应用集成概述 • 面向业务过程的应用集成 • 应用集成中的中间件技术 • 适配器与J2EE连接子体系结构
背景 • 目前,企业政府构建了许多应用系统,但是,多数应用系统相互独立运行,每个系统都包含其自己的应用、流程和数据,从而形成了一个个“信息孤岛”,相互之间无法进行通畅的信息交换与共享 • 企业业务已经进入“随需应变”的时代 ,为提高企业的综合竞争力,即时处理瞬间万变的信息,其中一个关键的工作就是将各类业务应用系统及各类信息进行有效的集成 • “应用集成”是目前解决“信息孤岛”和“随需应变”的一种有效技术途径。是“二十一世纪软件工程所面临的三大挑战之一”
定义 • Application integrationis a strategic approach to binding many information systems together, at both the service and information levels, supporting their ability to exchange information and leverage processes in real time. 应用集成是一种在服务和信息层面把多个信息系统绑定在一起的策略性途径,支持实时地进行信息的交换和业务过程的流转。 ---- David S. Linthicum 摘自《Next Generation Application Integration》
引言 寻求一种谁都可使用的应用集成技术方案,一般来说这基本 上是不可能的。 因此,每一种应用集成方案都需要不同的途径。目前,已有的途径大体上可以分为4类: (1)面向信息的途径;(information-oriented) (2)面向业务过程的途径; ( business process integration-oriented ) (3)面向服务的途径;( service-oriented ) (4)面向门户的途径。( portal-oriented )
2、面向信息的途径(information-oriented) 集成基本点:数据库和产生信息的API 被看作是应用集 成 的基本点。 分类:这类途径又可分为: 1)数据复制(data replication); 2)数据“联邦”(data federation); 3)接口处理(interface processing)。
1)数据复制(data replication) 语义:简单地把信息在两个或多个数据库之间进行“迁移” (moving) 基本需求:解析(account for)不同数据模型和数据模 式 (schemas) 实现方法:提供数据交换(exchange)的基础设施。例如, 元数据库,以及元数据到元数据的映射、元数据到数据 的映射等。 应用情况:已存在大量的基础设施,投资少。例如面向数据库 的中间件,提供了数据复制服务。
优缺点分析: 优点:简单、成本低,容易实现,技术清晰。 问题:如果方法需要与特定数据绑定 方法需要仅与特定数据共享 那么就应该考虑使用面向服务的方案。
2)数据“联邦”(data federation) 语义:把多种数据库和多种数据模型集成为一个单一的、 统一的虚拟数据库。 DB2 Virtual Database Informix Oracle ……
实现方法:数据库联邦软件作为一个层次(layer),处于物理实现方法:数据库联邦软件作为一个层次(layer),处于物理 数据库和应用之间。 这一层 使用可用的接口连接各数据库; 为了访问所需要的信息,实现物理数据库与仅在该软 件中存在的一个虚拟数据库模型的映射。 该应用使用这一虚拟数据库来访问所需要的信息。 当需要时,数据库联邦处理数据的聚集和分布。 应用 数据库联邦软件 物理数据库
优点分析: 使用这一软件的优点是,可以绑定很多不同的数据类 型,使之成为一个统一的模型,以支持信息的交换 (exchange)。 由于数据库联邦通过单一、良好定义的接口,允许访问 任一已经连接起来的数据库,因此对面向数据应用集 成问题来说,这是一种最优美的应用集成方案。
比较:与数据复制途径相比,这一方案不需要改变源应用比较:与数据复制途径相比,这一方案不需要改变源应用 和目标应用。 为了支持联邦数据库软件,在所面向的应用层必须 要进行一些改动。这是因为:为了访问不同数据库 模型(虚拟数据库),使用了不同的接口层。
3)接口处理(interface processing) 语义:为了强调“打包”的应用和定制的应用这两者的集成,接口处理方案使用了良好定义的应用接口 Information and services Packaged Application Application Integration Engine API 接口处理:打包的应用通过良好定义的API向外展示 信息
应用情况:在ERP应用中,这一方案得到了很好的应用, 实现了相当好的应用集成。 其中,集成商通过提供适配器 支持应用接口处理,通过 他们开放的、合适的接口,尽可能将更多的打包应用和 定制的应用实现连接。他们还涉及一些技术方案,包括 中间件技术等。
3、面向业务过程的途径 ( business process integration-oriented ) 语义:简单地说,面向业务过程集成 产生了一个层次,该层次定义了并管理了一些核心的、包含在企业应用顶层的过程。
本质:业务过程集成是一门科学和机制,该科学和机制以本质:业务过程集成是一门科学和机制,该科学和机制以 正确的、合适的次序,管理 数据的迁移和过程的调用(invocation) 以支持应用之间和应用内公共过程的管理和执行。 作用:业务过程集成是一种策略,更是一种技术,通过 企业内和企业之间的业务过程集成,增强组织与不同 应用 进行交互的能力。 目标:绑定一些相关的过程,通过支持单位内过程之间的信 息流和控制逻辑,以获最多有价值的信息(value)。
传统的应用集成和业务过程之间的区别: 业务过程集成的一个实例,通常是跨越传统的应用集成, 其中应用集成通常是指两个或多个系统之间的信息交换, 而见不到内部的过程。 业务过程集成的要点是过程模型以及支持该模型的应用之 间数据的移动(move) 应用集成是由需求所驱动,以实现两个或多个应用的通信 ;而业务过程集成是通过权衡业务规则的,以确定系统 应该如何通过一个抽象的业务模型,实现系统之间交互, 并更好地权衡业务中有价值的信息。
面向业务过程集成的应用集成BPIOAI的构造: 1)关于BPIOAI的定义 最好把BPIOAI定义为:一些可应用的、适当的规则,以一致的逻辑顺序,以一定的次序在相关的系统之间转送信息,并使应用层的过程可视化和共享。 面向业务过程的应用集成是一个关键的概念,并可控制我们如何处理信息迁移和本地、远程应用服务的调用。其中, 信息迁移和本地、远程应用服务的调用,均被抽象为一个BPIOAI模型,控制公司内外的应用集成域。即BPIOAI应包括:创建一个跨越内部和外部系统的公共的抽象过程。
BPIOAI 应该有能力支持定义一个公共的业务过程模型,其中关注5个问题: 顺序、 层次、 事件、 执行逻辑,以及 信息在同一组织和多个组织内系统之间的迁移。 事实上,BPIOAI的思想就是提供一个单一的模型,它跨越多个应用和数据存储;提供一种公共业务过程的想法,控制系统与人的交互,以完成一种特定的业务需求。
2)业务过程集成提供的服务 业务过程集成提供的三个主要服务为: (1)包含在相关伙伴系统中的过程的可视化 (2)接口抽象 (3)业务过程性能的实时测量
(1)过程的可视化 目的:通过企业内外相关过程的可视化,业务管理人员就可 以参与到企业集成中。原因是: 图或图形的使用,提供了一种有力的工具,便于交流和共 识的建立。 通过过程可视化这一途径,提供了面向业务的集成场景, 涉及实时集成中可用的中间件和集成点。 为业务分析人员提供了一种能力,使之能够对业务模型以 及业务实现作出相应的变化,而不必让企业内的IT部门参 与。
(2)接口抽象 接口抽象涉及“一个映射和二个抽象”,即: 业务过程集成模型与物理系统接口的映射; 对具有连接作用的连接件 和 业务分析人员关于系统 集成方案这两者的抽象。 业务过程集成在应用集成中间件的上层。使用业务过程集成 工具的人员能够以一种逻辑业务层的观点来看待客观世界,并 不受物理集成流、界面和适配器等的限制。进一步地说,应用 的中间件机制也被抽象。
(3)业务过程性能的测量 目的:业务过程性能测量为业务过程集成提供了一种实时分 析业务的能力。通过权衡与过程模型和中间件的紧密 集成,业务分析人员就可以获得实时的业务统计。 业务过程集成可以使技术人员有能力跟踪每一业务过 程实例。从而需要测量和维护一个跨越多个活动的过 程实例的持续时间等语境方面的信息。
业务过程集成逻辑与程序设计逻辑 一般来说,业务过程集成逻辑只关注过程流和过程集成,不 同于传统的程序设计逻辑,例如处理一个用户界口,修改一个 数据库等。 事实上,在大多数BPIOAI的场景中,其过程逻辑与应用逻辑 是分离的。它的功能仅是协调、管理多个源系统和目标系统之 间的信息流。
4、面向服务的途径( service-oriented ) 语义:面向服务的应用集成(SOAI)允许应用共享公共的 业务逻辑或方法。 实现方法: 1)定义一些可以被共享的、进而可以被集成的方法;或 2)为这样方法的共享 提供一种基础设施,例如Web服务。 应用A 组合应用 应用B 终端用户 应用C 应用D
注意: • 面向信息的应用集成一般不需要改变源应用和目标应用,而面向服务的应用集成为了得到规范上的统一,有时则需要改变企业的应用。由于改变应用要付出昂贵的代价,因此,就需要确保SOAI符合实际需要。 • 在认可SOAI的蔓延性和较贵的价格之前,企业必须清楚地了解它的机遇和风险。
5、面向门户的途径( Portal-oriented ) 语义:面向门户的应用集成(POAI),允许我们通过单一 的用户界面来观视企业的内外部系统。 实现方法:它把每个系统的用户界面适配到一个公共的用 户界面(聚集的用户界面)-大部分是Web browser。 SAP **** **** **** *** 中间件 Web 服务器 Web Browser **** *** **** It integrates all participating systems through the browser, although the applications are not directly integrated within or between the enterprises.
比较: • 其它类型的应用集成,关注系统之间和企业之间信息的实时交换,而POAI强调把大量企业系统的信息外部化(externalizing)到一个单一的应用和界面。 • 但是:通常所说的在两个或多个应用之间的数据迁移或过程绑定,如果没有用户帮助的话,应用集成也可能发生在用户界面上。
内容 • 应用集成概述 • 面向业务过程的应用集成 • 应用集成中的中间件技术 • 适配器与J2EE连接子体系结构
1、概要 问题的提出: 面向业务过程的应用集成,是应用集成的一项功能。随着技术的进步,通过信息交换和绑定过程将不能控制应用的集成,然而,可以通过对 过程的模型化 和 一个业务过程模型的执行 来绑定许多内外多个系统中的过程和信息。
从技术角度来讲,面向业务过程的应用集成是一个关键的概念,并可控制我们如何处理信息迁移和本地、远程应用服务的调用。其中, • 信息迁移和本地、远程应用服务的调用,均被抽象为一个BPIOAI模型,控制公司内外的应用集成域。 • 应特别注意那些主要针对业务过程集成(BPI)的标准,例如RosettaNet 和ebXML等。
BPIOAI的思想 BPIOAI 有能力去定义一个公共的业务过程模型,其中关注5个问题: 顺序、 层次、 事件、 执行逻辑,以及 信息在同一组织和多个组织内系统之间的迁移。 事实上,BPIOAI的思想就是提供一个单一的模型,它跨越多个应用和数据存储;提供一种公共业务过程的想法,控制系统与人的交互,以完成一种特定的业务需求。
与其他途径的比较 与IOAPI和SOAI相比,甚至与POAI相比,BPIOAI是一种值得称赞的应用集成形式。原因是: BPIOAI提供了一个控制机制,用于定义并执行信息迁移和跨越多个系统的过程调用。其目标是把封装的应用服务和应用信息抽象为单一的业务过程模型。
A B C D E company2 company1 BPIOAI introduces the notion of a common business process model that controls the movement of information and the invocation of application services across many different systems,both inter-intra company.
BPIOAI的应用 可以被应用到以下业务事件: •处理一个客户要求; •向客户交付一个产品; •处理一个财政交易。 • …… 这一想法是简单的。把控制逻辑层放到集成技术的顶层,允许控制逻辑把这样的一些系统绑定为一个单一的、统一的业务过程,该过程可以实现业务过程的特定过程。但必须做到: (1) 正确的定序,包括合适的信息、控制顺序、状态维护、时间延迟,并且 (2)有能力处理例外。
BPIOAI技术必须是灵活的,为此,需要 提供: 1)一个在源系统和目标系统之间的转换层; 2)过程集成引擎。并且,为其工作,还需要: 3)不同类型的技术和接口模式。
2、 BPIOAI与传统应用集成途径的区别 实际上, BPIOAI是传统应用集成途径(包括IOA,ISOAI)的最上面的、完整的一层。它们之间的区别是: 1) BPIOAI的一个实例,通常跨越多个传统应用集成的实例。 2)应用集成一般意指多个系统之间的信息迁移,看不到内部的 过程。 BPIOAI定义了一个主(master)应用,可以看到许 多被封装的服务和应用信息。 3) BPIOAI涉及一个过程模型,迁移应用之间的信息,并且为 了支持该模型,调用一些内部应用的服务。 4) BPIOAI独立于源应用和目标应用。在不需改变源系统 和目标系统的情况下,可以对其一些过程进行改变。
5)• 应用集成一般是战术性的解决方案,是由两个或多个 应 用为了通讯而引发的; • 而BPIOAI是战略性的解决方案,权衡一些业务规则, 以确定系统如何交互;通过公共、抽象的业务模型, 更好地权衡每一系统的业务流程。 • BPIOAI是以正确的、合适的次序管理应用服务之间数 据迁移和调用的一种科学和机制,目的是为了支持组 织之间和内部应用之间现存公共过程的管理和执行。
BPIOAI的目标 为了支持内外部系统之间相关过程的信息流和逻辑,实现它们共有价值的最大化,其目标就是 如何定义这一机制,用于绑定那些相关的过程。 另外, 还要解决如何定义一个公共的、一致依赖(agreed-upon)的过程,该过程存在于许多组织之间,并通过这一过程能够看到任意一些被集成的系统,并可以看到需要权衡公共过程模型的任一系统。
BPIOAI的探索 把BPIOAI定义为:以一种一致依赖的、逻辑的、多步的顺序,应用一些适当的规则,目的是在参与的系统之间转送信息,可视化和共享应用服务,其中包括创建一个跨越内外部系统的公共抽象过程。 这一定义是否为真,取决于业务过程是否予以自动化。 公共过程模型的重要性体现在: 1)可以产生被参与该过程的系统所理解的事件; 2)可以对应用通信的事件作出反映,并反馈到BPIOAI引擎; 3)必须能够确认发生的例外,并处理之; 4)必须能够维护较长时间(几天,几周或几个月)的状态
使用一个公共过程模型的优点 使用一个公共过程模型来实现跨越多个系统和公司的应用集成,具有以下优点: 1)模型化(modeling): 有能力在计算机系统之间创建一个公共的、一致依赖的过程,实现所有信息系统的集成自动化,实时响应业务事件,例如增加消费者的要求,材料存储和质量问题等。 2)监控(monitoring): 有能力分析业务、企业等所有方面,以实时确定该过程的当前状态。
3)自信(Optimization): 有能力在给定的时间上重新定义该过程,支持该过程使之更加有效。 4)抽象(abstraction): 有能力隐藏业务用户本地应用的复杂性,使业务用户按一个公共的一组业务语义进行工作。
5)公共过程模型排序主过程,发送并接受其它事件,支持公共B2B过程模型。这是一项不断的活动,将本地系统中的信息迁移到过程引擎,进行必要的转换,并从过程引擎中迁移到本地系统,支持过程模型的执行。5)公共过程模型排序主过程,发送并接受其它事件,支持公共B2B过程模型。这是一项不断的活动,将本地系统中的信息迁移到过程引擎,进行必要的转换,并从过程引擎中迁移到本地系统,支持过程模型的执行。 Assembled Skateboard Assembled Skateboard 3 Transformed 2 Skateboard to Assemble 4 BPIOAI引擎 Sales Information 1 Target Source 在一个典型BPIOAI过程中的步骤
一般来说,BPIOAI逻辑强调过程流和信息集成,它不是传统的程序设计逻辑,例如用户界面处理,数据库调整,或一个事务的执行.在大多数情况下, BPIOAI逻辑与应用逻辑是分离的.应用逻辑很少来协调\管理一些源应用和目标应用之间的信息流和应用服务的调用. 这样的一个系统操作在3个技术层面: Process model Transformation,routing,and rules Messaging Service
其中: 1)最上层为BPIOAI层。 有:模型化工具和过程引擎; 定义了:信息迁移的应用服务。 2)第二层为Transformation,routing,and rules处理层。 处理信息迁移和信息格式化 通常,这一层是一个代理(broker)或是一个B2B的交换服务器;但也可以是面向事务的中间件,甚至可以是Web服务器。其中唯一的需求是:我们使用的那些中间件技术或接口可以与BPIOAI引擎一起工作。一般来说, BPIOAI引擎与这些技术的接口是一些适配器或API。这些适配器或API为BPIOAI
引擎对那些中间件或接口进行了抽象,允许BPIOAI分析人员通过使用一组公共的过程和业务语义来处理所有系统。引擎对那些中间件或接口进行了抽象,允许BPIOAI分析人员通过使用一组公共的过程和业务语义来处理所有系统。 3)第三层为是消息处理系统,负责在所有相关系统之间迁移信息,尽管该层可能也有一些应用服务器和其它的企业级中间件,但主要功能是面向消息的中间件或服务器,使用标准的消息机制,例如XML或EDI。 通过这三层,形成了以下信息迁移模式: 经源系统处理的信息向上经过这三层;而向目标系统交付的信息向下经过这三层。
BPIOAI的实现 将业务应用集成为一个BPIOAI方案,要求去掉该应用的流依赖。其中,应考虑以下问题: 1)在企业和伙伴中的业务过程必须建立相应的文档。必须了解相关源系统和目标系统中的所有过程和数据。这是每一类应用集成解决方案的一个需求。 2)定义与目标过程进行连接的过程,不仅要了解每一过程如何工作,还必须与其它过程进行权衡,以创建更有效的一组过程。 3)通过使用BPIOAI技术,与这些过程进行了绑定的过程,必须是可执行的。
工具和途径 对于每一类应用集成,可用一组特定的技术和工具实现之。 模型化工具为用户提供了一种图形化地表述集成的技术。 一个BPIOAI模型的部件是: 公共过程模型; 实体,例如公司,组织或人; 源系统和目标系统。
过程模型化 使用BPIOAI模型化工具建立模型,一般意指化一张图,描述 过程 资源(系统和人) 逻辑 信息迁移 系统之间应用服务的共享;并定义过程的连接和顺序。
BPIOAI和应用集成 目前,BPIOAI是大多数应用集成方案的一个组成部分。一旦了解怎样把任意数据点和过程点连接到另一其它数据点和过程点,那么工作流就应该是信息迁移或信息流管理的方法。 多数应用集成中间件提供商推销BPIOAI模型化工具,以支持他们现有的中间件方案。这是在正确的方向上迈出的一步。多数组织希望将中间件、适配器和BPIOAI模型化工具进行组合(mix)和匹配。