1、软件体系结构 (Software Architecture),讲义10:应用集成概述,内容,应用集成概述 面向业务过程的应用集成 应用集成中的中间件技术 适配器与J2EE连接子体系结构,背景,目前,企业政府构建了许多应用系统,但是,多数应用系统相互独立运行,每个系统都包含其自己的应用、流程和数据,从而形成了一个个“信息孤岛”,相互之间无法进行通畅的信息交换与共享 企业业务已经进入“随需应变”的时代 ,为提高企业的综合竞争力,即时处理瞬间万变的信息,其中一个关键的工作就是将各类业务应用系统及各类信息进行有效的集成 “应用集成”是目前解决“信息孤岛”和“随需应变”的一种有效技术途径。是“二十一世纪
2、软件工程所面临的三大挑战之一”,定义,Application integration is 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. 应用集成是一种在服务和信息层面把多个信息系统绑定在一起的策略性途径,支持实时地进行信息的交换和业务过程的流转。-
3、David S. Linthicum 摘自Next Generation Application Integration,寻求一种谁都可使用的应用集成技术方案,一般来说这基本 上是不可能的。因此,每一种应用集成方案都需要不同的途径。目前,已有的途径大体上可以分为4类:(1)面向信息的途径;(information-oriented)(2)面向业务过程的途径;( business process integration-oriented )(3)面向服务的途径;( service-oriented )(4)面向门户的途径。( portal-oriented ),引言,2、面向信息的途径(info
4、rmation-oriented) 集成基本点:数据库和产生信息的API 被看作是应用集 成的基本点。 分类:这类途径又可分为:1)数据复制(data replication);2)数据“联邦”(data federation);3)接口处理(interface processing)。,1)数据复制(data replication) 语义:简单地把信息在两个或多个数据库之间进行“迁移”(moving) 基本需求:解析(account for)不同数据模型和数据模 式 (schemas) 实现方法:提供数据交换(exchange)的基础设施。例如,元数据库,以及元数据到元数据的映射、元数据到
5、数据的映射等。 应用情况:已存在大量的基础设施,投资少。例如面向数据库 的中间件,提供了数据复制服务。,优缺点分析:优点:简单、成本低,容易实现,技术清晰。问题:如果方法需要与特定数据绑定方法需要仅与特定数据共享那么就应该考虑使用面向服务的方案。,2)数据“联邦”(data federation) 语义:把多种数据库和多种数据模型集成为一个单一的、统一的虚拟数据库。,DB2,Informix,Oracle,Virtual Database,实现方法:数据库联邦软件作为一个层次(layer),处于物理数据库和应用之间。这一层使用可用的接口连接各数据库;为了访问所需要的信息,实现物理数据库与仅在该
6、软件中存在的一个虚拟数据库模型的映射。该应用使用这一虚拟数据库来访问所需要的信息。当需要时,数据库联邦处理数据的聚集和分布。,数据库联邦软件,物理数据库,应用,优点分析:使用这一软件的优点是,可以绑定很多不同的数据类型,使之成为一个统一的模型,以支持信息的交换(exchange)。由于数据库联邦通过单一、良好定义的接口,允许访问任一已经连接起来的数据库,因此对面向数据应用集成问题来说,这是一种最优美的应用集成方案。,比较:与数据复制途径相比,这一方案不需要改变源应用和目标应用。为了支持联邦数据库软件,在所面向的应用层必须要进行一些改动。这是因为:为了访问不同数据库模型(虚拟数据库),使用了不同
7、的接口层。,3)接口处理(interface processing) 语义:为了强调“打包”的应用和定制的应用这两者的集成,接口处理方案使用了良好定义的应用接口,Packaged Application,Application Integration Engine,API,Information and services,接口处理:打包的应用通过良好定义的API向外展示 信息,应用情况:在ERP应用中,这一方案得到了很好的应用, 实现了相当好的应用集成。其中,集成商通过提供适配器 支持应用接口处理,通过他们开放的、合适的接口,尽可能将更多的打包应用和定制的应用实现连接。他们还涉及一些技术方案,
8、包括中间件技术等。,3、面向业务过程的途径( business process integration-oriented )语义:简单地说,面向业务过程集成 产生了一个层次,该层次定义了并管理了一些核心的、包含在企业应用顶层的过程。,本质:业务过程集成是一门科学和机制,该科学和机制以正确的、合适的次序,管理数据的迁移和过程的调用(invocation)以支持应用之间和应用内公共过程的管理和执行。作用:业务过程集成是一种策略,更是一种技术,通过 企业内和企业之间的业务过程集成,增强组织与不同应用 进行交互的能力。 目标:绑定一些相关的过程,通过支持单位内过程之间的信息流和控制逻辑,以获最多有价值
9、的信息(value)。,传统的应用集成和业务过程之间的区别: 业务过程集成的一个实例,通常是跨越传统的应用集成,其中应用集成通常是指两个或多个系统之间的信息交换,而见不到内部的过程。 业务过程集成的要点是过程模型以及支持该模型的应用之间数据的移动(move) 应用集成是由需求所驱动,以实现两个或多个应用的通信;而业务过程集成是通过权衡业务规则的,以确定系统应该如何通过一个抽象的业务模型,实现系统之间交互,并更好地权衡业务中有价值的信息。,面向业务过程集成的应用集成BPIOAI的构造: 1)关于BPIOAI的定义最好把BPIOAI定义为:一些可应用的、适当的规则,以一致的逻辑顺序,以一定的次序在
10、相关的系统之间转送信息,并使应用层的过程可视化和共享。面向业务过程的应用集成是一个关键的概念,并可控制我们如何处理信息迁移和本地、远程应用服务的调用。其中,信息迁移和本地、远程应用服务的调用,均被抽象为一个BPIOAI模型,控制公司内外的应用集成域。即BPIOAI应包括:创建一个跨越内部和外部系统的公共的抽象过程。,BPIOAI 应该有能力支持定义一个公共的业务过程模型,其中关注5个问题: 顺序、 层次、 事件、 执行逻辑,以及信息在同一组织和多个组织内系统之间的迁移。事实上,BPIOAI的思想就是提供一个单一的模型,它跨越多个应用和数据存储;提供一种公共业务过程的想法,控制系统与人的交互,以
11、完成一种特定的业务需求。,2)业务过程集成提供的服务业务过程集成提供的三个主要服务为:(1)包含在相关伙伴系统中的过程的可视化(2)接口抽象(3)业务过程性能的实时测量,(1)过程的可视化目的:通过企业内外相关过程的可视化,业务管理人员就可以参与到企业集成中。原因是: 图或图形的使用,提供了一种有力的工具,便于交流和共识的建立。 通过过程可视化这一途径,提供了面向业务的集成场景,涉及实时集成中可用的中间件和集成点。 为业务分析人员提供了一种能力,使之能够对业务模型以及业务实现作出相应的变化,而不必让企业内的IT部门参与。,(2)接口抽象接口抽象涉及“一个映射和二个抽象”,即:业务过程集成模型与
12、物理系统接口的映射; 对具有连接作用的连接件 和 业务分析人员关于系统集成方案这两者的抽象。业务过程集成在应用集成中间件的上层。使用业务过程集成 工具的人员能够以一种逻辑业务层的观点来看待客观世界,并 不受物理集成流、界面和适配器等的限制。进一步地说,应用 的中间件机制也被抽象。,(3)业务过程性能的测量目的:业务过程性能测量为业务过程集成提供了一种实时分析业务的能力。通过权衡与过程模型和中间件的紧密集成,业务分析人员就可以获得实时的业务统计。业务过程集成可以使技术人员有能力跟踪每一业务过程实例。从而需要测量和维护一个跨越多个活动的过程实例的持续时间等语境方面的信息。,业务过程集成逻辑与程序设
13、计逻辑一般来说,业务过程集成逻辑只关注过程流和过程集成,不 同于传统的程序设计逻辑,例如处理一个用户界口,修改一个 数据库等。事实上,在大多数BPIOAI的场景中,其过程逻辑与应用逻辑 是分离的。它的功能仅是协调、管理多个源系统和目标系统之 间的信息流。,4、面向服务的途径( service-oriented )语义:面向服务的应用集成(SOAI)允许应用共享公共的业务逻辑或方法。实现方法:1)定义一些可以被共享的、进而可以被集成的方法;或2)为这样方法的共享 提供一种基础设施,例如Web服务。,应用A,应用B,应用C,应用D,组合应用,终端用户,注意: 面向信息的应用集成一般不需要改变源应用
14、和目标应用,而面向服务的应用集成为了得到规范上的统一,有时则需要改变企业的应用。由于改变应用要付出昂贵的代价,因此,就需要确保SOAI符合实际需要。 在认可SOAI的蔓延性和较贵的价格之前,企业必须清楚地了解它的机遇和风险。,5、面向门户的途径( Portal-oriented ) 语义:面向门户的应用集成(POAI),允许我们通过单一的用户界面来观视企业的内外部系统。 实现方法:它把每个系统的用户界面适配到一个公共的用户界面(聚集的用户界面)-大部分是Web browser。,SAP,*,* *,*,中间件,Web 服务器,*,* *,Web Browser,It integrates al
15、l participating systems through the browser, although the applications are not directly integrated within or between the enterprises.,比较: 其它类型的应用集成,关注系统之间和企业之间信息的实时交换,而POAI强调把大量企业系统的信息外部化(externalizing)到一个单一的应用和界面。 但是:通常所说的在两个或多个应用之间的数据迁移或过程绑定,如果没有用户帮助的话,应用集成也可能发生在用户界面上。,内容,应用集成概述 面向业务过程的应用集成 应用集成中的
16、中间件技术 适配器与J2EE连接子体系结构,1、概要问题的提出:面向业务过程的应用集成,是应用集成的一项功能。随着技术的进步,通过信息交换和绑定过程将不能控制应用的集成,然而,可以通过对过程的模型化 和一个业务过程模型的执行来绑定许多内外多个系统中的过程和信息。,从技术角度来讲,面向业务过程的应用集成是一个关键的概念,并可控制我们如何处理信息迁移和本地、远程应用服务的调用。其中, 信息迁移和本地、远程应用服务的调用,均被抽象为一个BPIOAI模型,控制公司内外的应用集成域。 应特别注意那些主要针对业务过程集成(BPI)的标准,例如RosettaNet 和ebXML等。,BPIOAI的思想BPI
17、OAI 有能力去定义一个公共的业务过程模型,其中关注5个问题: 顺序、 层次、 事件、 执行逻辑,以及信息在同一组织和多个组织内系统之间的迁移。事实上,BPIOAI的思想就是提供一个单一的模型,它跨越多个应用和数据存储;提供一种公共业务过程的想法,控制系统与人的交互,以完成一种特定的业务需求。,与其他途径的比较与IOAPI和SOAI相比,甚至与POAI相比,BPIOAI是一种值得称赞的应用集成形式。原因是:BPIOAI提供了一个控制机制,用于定义并执行信息迁移和跨越多个系统的过程调用。其目标是把封装的应用服务和应用信息抽象为单一的业务过程模型。,BPIOAI introduces the no
18、tion 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.,A,B,C,D,E,company1,company2,BPIOAI的应用可以被应用到以下业务事件:处理一个客户要求;向客户交付一个产品;处理一个财政交易。 这一想法是简单的。把控制逻辑层放到集成技术的顶层,允许控制逻辑把这样的一些系统绑
19、定为一个单一的、统一的业务过程,该过程可以实现业务过程的特定过程。但必须做到: (1) 正确的定序,包括合适的信息、控制顺序、状态维护、时间延迟,并且(2)有能力处理例外。,BPIOAI技术必须是灵活的,为此,需要 提供:1)一个在源系统和目标系统之间的转换层;2)过程集成引擎。并且,为其工作,还需要:3)不同类型的技术和接口模式。,2、BPIOAI与传统应用集成途径的区别实际上, BPIOAI是传统应用集成途径(包括IOA,ISOAI)的最上面的、完整的一层。它们之间的区别是:1) BPIOAI的一个实例,通常跨越多个传统应用集成的实例。2)应用集成一般意指多个系统之间的信息迁移,看不到内部
20、的过程。 BPIOAI定义了一个主(master)应用,可以看到许多被封装的服务和应用信息。3) BPIOAI涉及一个过程模型,迁移应用之间的信息,并且为了支持该模型,调用一些内部应用的服务。 4) BPIOAI独立于源应用和目标应用。在不需改变源系统和目标系统的情况下,可以对其一些过程进行改变。,5) 应用集成一般是战术性的解决方案,是由两个或多个 应 用为了通讯而引发的; 而BPIOAI是战略性的解决方案,权衡一些业务规则,以确定系统如何交互;通过公共、抽象的业务模型,更好地权衡每一系统的业务流程。 BPIOAI是以正确的、合适的次序管理应用服务之间数据迁移和调用的一种科学和机制,目的是为
21、了支持组织之间和内部应用之间现存公共过程的管理和执行。,BPIOAI的目标为了支持内外部系统之间相关过程的信息流和逻辑,实现它们共有价值的最大化,其目标就是如何定义这一机制,用于绑定那些相关的过程。 另外, 还要解决如何定义一个公共的、一致依赖(agreed-upon)的过程,该过程存在于许多组织之间,并通过这一过程能够看到任意一些被集成的系统,并可以看到需要权衡公共过程模型的任一系统。,BPIOAI的探索把BPIOAI定义为:以一种一致依赖的、逻辑的、多步的顺序,应用一些适当的规则,目的是在参与的系统之间转送信息,可视化和共享应用服务,其中包括创建一个跨越内外部系统的公共抽象过程。这一定义是
22、否为真,取决于业务过程是否予以自动化。公共过程模型的重要性体现在:1)可以产生被参与该过程的系统所理解的事件;2)可以对应用通信的事件作出反映,并反馈到BPIOAI引擎;3)必须能够确认发生的例外,并处理之;4)必须能够维护较长时间(几天,几周或几个月)的状态,使用一个公共过程模型的优点使用一个公共过程模型来实现跨越多个系统和公司的应用集成,具有以下优点:1)模型化(modeling):有能力在计算机系统之间创建一个公共的、一致依赖的过程,实现所有信息系统的集成自动化,实时响应业务事件,例如增加消费者的要求,材料存储和质量问题等。2)监控(monitoring):有能力分析业务、企业等所有方面
23、,以实时确定该过程的当前状态。,3)自信(Optimization):有能力在给定的时间上重新定义该过程,支持该过程使之更加有效。4)抽象(abstraction):有能力隐藏业务用户本地应用的复杂性,使业务用户按一个公共的一组业务语义进行工作。,5)公共过程模型排序主过程,发送并接受其它事件,支持公共B2B过程模型。这是一项不断的活动,将本地系统中的信息迁移到过程引擎,进行必要的转换,并从过程引擎中迁移到本地系统,支持过程模型的执行。,BPIOAI引擎,Source,Target,Transformed,Assembled Skateboard,Sales Information,Assem
24、bled Skateboard,Skateboard to Assemble,1,2,3,4,在一个典型BPIOAI过程中的步骤,一般来说,BPIOAI逻辑强调过程流和信息集成,它不是传统的程序设计逻辑,例如用户界面处理,数据库调整,或一个事务的执行.在大多数情况下, BPIOAI逻辑与应用逻辑是分离的.应用逻辑很少来协调管理一些源应用和目标应用之间的信息流和应用服务的调用.这样的一个系统操作在3个技术层面:,Process model,Transformation,routing,and rules,Messaging Service,其中:1)最上层为BPIOAI层。 有:模型化工具和过程
25、引擎; 定义了:信息迁移的应用服务。2)第二层为Transformation,routing,and rules处理层。 处理信息迁移和信息格式化通常,这一层是一个代理(broker)或是一个B2B的交换服务器;但也可以是面向事务的中间件,甚至可以是Web服务器。其中唯一的需求是:我们使用的那些中间件技术或接口可以与BPIOAI引擎一起工作。一般来说, BPIOAI引擎与这些技术的接口是一些适配器或API。这些适配器或API为BPIOAI,引擎对那些中间件或接口进行了抽象,允许BPIOAI分析人员通过使用一组公共的过程和业务语义来处理所有系统。 3)第三层为是消息处理系统,负责在所有相关系统之
26、间迁移信息,尽管该层可能也有一些应用服务器和其它的企业级中间件,但主要功能是面向消息的中间件或服务器,使用标准的消息机制,例如XML或EDI。通过这三层,形成了以下信息迁移模式:经源系统处理的信息向上经过这三层;而向目标系统交付的信息向下经过这三层。,BPIOAI的实现将业务应用集成为一个BPIOAI方案,要求去掉该应用的流依赖。其中,应考虑以下问题: 1)在企业和伙伴中的业务过程必须建立相应的文档。必须了解相关源系统和目标系统中的所有过程和数据。这是每一类应用集成解决方案的一个需求。 2)定义与目标过程进行连接的过程,不仅要了解每一过程如何工作,还必须与其它过程进行权衡,以创建更有效的一组过
27、程。 3)通过使用BPIOAI技术,与这些过程进行了绑定的过程,必须是可执行的。,工具和途径对于每一类应用集成,可用一组特定的技术和工具实现之。 模型化工具为用户提供了一种图形化地表述集成的技术。 一个BPIOAI模型的部件是: 公共过程模型; 实体,例如公司,组织或人; 源系统和目标系统。,过程模型化使用BPIOAI模型化工具建立模型,一般意指化一张图,描述过程 资源(系统和人)逻辑信息迁移系统之间应用服务的共享;并定义过程的连接和顺序。,BPIOAI和应用集成目前,BPIOAI是大多数应用集成方案的一个组成部分。一旦了解怎样把任意数据点和过程点连接到另一其它数据点和过程点,那么工作流就应该
28、是信息迁移或信息流管理的方法。多数应用集成中间件提供商推销BPIOAI模型化工具,以支持他们现有的中间件方案。这是在正确的方向上迈出的一步。多数组织希望将中间件、适配器和BPIOAI模型化工具进行组合(mix)和匹配。,内容,应用集成概述 面向业务过程的应用集成 应用集成中的中间件技术 适配器与J2EE连接子体系结构,目前,使应用集成成为可能的2大要素是:中间件和标准 1、中间件1)何谓中间件?目前对于中间件都是按其功能予以定义的。实际上,中间件是一种机制,该机制允许一个实体与其它 实体进行通讯。广义地说:中间件是一类软件,该软件作为一种设施,支持两个或多 个系统之间的通讯。,2)中间件模型关
29、于中间件模型,存在两类:即逻辑模型和物理模型。逻辑模型在概念上描述了信息是怎样在企业中迁移的。而物 理模型信息迁移的实际方法和所使用的技术。逻辑模型涉及(1)点对点的配置(2)多对多的配置(3)同步(4)异步物理模型涉及各种不同消息处理模型,逻辑模型(1)点对点中间件点对点的中间件使用一个管道,允许一个应用连到另一个应 用。通过使用一个过程调用或消息,该中间件完成管道的功能。,ascder,Aser scdr,ascder,Aser scdr,massage,点到点中间件,sender,listener,优缺点分析缺点 (1)点对点模型并不表达一种有效的应用集成方案,因 为大多数问题领域需要连
30、接多个应用;(2)在点对点模型的场景下,为了共享信息,必须连接多个应用;并且信息必须通过一个共享的、集中的服务器予以代理,即信息共享需要一个消息代理或事务中间件。优点 (1)点对点中间件的最大优点是简单性。,多对多中间件多对多中间件将多个应用连接到其它多个应用。这一能力使 之成为应用集成的最好选择。另外,它是最有力的逻辑中间件模型,其中为应用集成问题 提供了灵活性和应用性。,DB2,0,sybase,oracle,Sql server,0,1,1,Legacy Applications,Packaged Applications,Electronic commerce Applications
31、,Internet World Wide Web Java,Middleware,Client/Server Applications,Objects,多对多中间件模型,同步与异步-中间件使用的通讯机制异步:异步中间件以异步的模式在一个和多个应用之间迁移信息,即中间件软件可以脱离源应用和目标应用。这些应用不依赖其它所连接的应用。对于异步而言,应用把一个消息放到一个队列中,然后继续它的业务,以后就等待其它应用的响应。异步模型的基本优点是:这样的中间件并不阻止应用的处理。 同步:同步中间件紧密地与应用“捆”在一起。这样的应用依赖中间件来处理在一个远程应用上的一个或多个功能调用。发出调用的应用必须等
32、待远程应用的响应。一般把这样的中间件称为“阻止”类型的中间件。,同步模型的缺点:同步模型的缺点完全是由于它把应用与中间件和远程应用“捆”在一起所产生的。1)由于应用与中间件不独立,因此就有能由于网络和远程服务器等问题而中止应用的处理。2)为了支持同步的功能调用,穿越网络会处理一些不同的调用,因此存在调用处理的吞吐量问题。结论:以上缺点,使异步模型更适合用于应用集成方案。,面向连接的和不连接的面向连接的通讯,意味着两个部分进行连接,继之交换消息,而后断开连接。通常,这是一个同步过程,但也可能是一个异步过程。不连接的通讯意味着发出调用的程序,并不与目标过程实现一个连接。接受方的应用简单地按请求进行
33、工作,当需要时作出响应。 直接通讯在直接通讯中,中间件层接受程序发来的消息,并把它直接送到远程程序。异步处理或使用直接通信,也可以使用队列式通信。一般来说,直接通信是同步的;队列式通信是异步的。大多数RPC中间件使用了直接通信模型。,队列式通信队列式通信为了把一个消息放如一个队列,一般需要一个队列管理器。远程应用或在消息发来不久或在以后任意时刻检索消息。如果发来消息的应用要求一个响应(例如一个验证消息或数据),则通过队列机制返回相应的信息流。大多数面向消息中间件(MOM)使用队列式通信。,Application A,Application B,Message Queue,Queued Comm
34、unication,3)中间件类型 中间件的特征(feature)不断演化,对中间件的分类是一件很困难的任务。但就应用集成问题的讨论而言,所涉及的中间件可以分为:RPC(远程过程调用)MQM(消息中间件)分布对象面向数据库的中间件事务中间件(包括TP监控器和应用服务器)集成服务器,(1)RPC(远程过程调用)RPC是最老的一种中间件,是容易理解和使用的。它们为开发人员提供了调用一个程序中功能的能力,并可执行一个远程机器上另一程序中的功能。RPC是同步的。为了完成一个RPC,这类中间件必须停止该程序的执行。因此RPC也称之为“阻止型中间件”。与其它类型的中间件产品相比,为了实现一个远程规程调用,
35、RPC还要求更多的开销。多少年以来,RPC已经成为一种成熟产品,例如多数UXIX系统具有RPC开发库和工具,作为基操作系统的一部分。最有名的RPC是分布计算环境(DCE)(OSF)。 DCE提供了一种非常复杂的、分布的RPC机制,有很多服务层(例如安全服务,目录服务,应用之间完整性维护服务等),RPC的问题:尽管简单,但多数RPC均不是性能良好的中间件产品。对于其功能而言,RPC对处理能力要求具有大量的层次。另外,为了实现一个要求,必须在一个网络中发生很多次交换。例如,一种典型的RPC可能需要24步才能完成请求。这样的性能限制了RPC在较慢网络(例如互连网)上的使用。,(2)MQM(面向消息中
36、间件)针对RPC的问题,MQM使用了消息机制。传统MOM是一种队列软件,其中使用消息-一种在应用之间迁移的信息单元。作为一种机制,实现点对点的信息迁移。由于MQM使用消息的思想来实现应用之间的通信,因此不需要把这样的中间件机制与应用直接地“捆”在一起。MQM产品依据一种异步通讯模式。开发人员发现,MQM使用消息相对来说容易管理。消息有一种结构(模式)和内容(数据)。可以把它们看作是一个小的、一个记录的数据库,该数据库通过消息传递机制在应用之间迁移。,MQM支持两种模型:点对点 和 消息队列。但主要关注第二种-消息队列(MQ)。与RPC比较,MQ有性能方面的优点。如果中间件没有中断的话,MQ让每
37、一个参与的程序按自己的速度进行,即调用程序可以把一个消息发送到消息队列,继之继续自己的处理;如果需要一个响应的话,以后可以在该消息队列中获取。MQ允许程序将一个消息发送到多个远程程序(广播),而不必等待远程程序。由于MQ软件(例如IBM MQSeries Microsofts MSMQ)管理消息从一个程序到下一个程序的分布,负责从队列中取出消息和将消息放入队列,因此可以采用一些方法,提高MQ管理器的性能。对于消息而言,一个小的危险是:在网络或系统失败期间消息丢失问题。对此,有的MQ软件引入了“永久消息”和“消息存储”机制 。,(3)分布对象把分布对象作为一类中间件,是因为它们是实现内部通信的设
38、施。但是,它们也是应用开发的机制,为企业方法的共享提供了可用的技术。事实上,分布对象是一些小的应用程序,为了与其它程序通讯,它们使用了标准的接口和协议。,(4)面向数据库的中间件面向数据库的中间件是一种与数据库通讯的设施,不管是应用与数据库通讯还是数据库与数据库通讯。通常,开发人员把这类中间件作为一种机制,用于在本地数据库或远程数据库中提取信息。,data,SQL,Response Set ( information),client,面向数据库的中间件,(5)面向事务的中间件事物中间件,例如TP监控器和应用服务器,优点在于在不同资源之间协调信息迁移和方法共享。 问题: 事务中间件趋于创建紧密耦
39、合的应用集成方案,而消息机制的方案趋于内聚的;为了获取事务中间件的优点,源应用和目标应用需要进行修改。,5.1 TP监控器实际上, TP监控器是第一代应用服务器产品,也是第一代事物中间件产品。它们提供了一种机制,支持2个或多个应用之间的通讯,并支持应用逻辑的分配。,begin,end,1,0,1,0,Data,Application,Queue,Objects,TP Monitor,例如,BEA系统中的Tuxedo,微软的MTS,IBM的CICS。这些产品已有很长成功的历史,并在一天内可以处理数十亿个事务.,TP监控器(和应用服务器)基于事务这一概念,即事务是一个工作单元,有开始,有结束.其中
40、的原理是:如果应用逻辑被封装在一个事务中,那么该事务或完成,或彻底返回.如果该事务已经修改了远程资源,例如数据库或队列,那么这些资源就必须返回到问题发生时的情况.事务的优点是,能够把一个应用分为更小的部分,并调用这样的事务实现用户的期望.由于事务是一些小的工作单元,因此在TP监控器的环境中它们就容易管理和处理. TP监控器提供了刻度性.它们还可以执行刻度性的跟踪,例如数据库连接情况等.,5.2 应用服务器 应用服务器提供了应用逻辑的共享和处理,提供了后台资源的连接,其中这些资源包括数据库,ERP应用,传统的框架应用. 应用服务器一般还提供用户界面开发机制. 应用服务器还提供了把应用部署到Web
41、平台上的机制.,1,0,1,0,Database,Mainframe,Third-Party Software and Middleware,Core Application,Application Platform,Web Server,Tirewall,Internet HTML,Extranet HTML Java,Intranet Java c+ ActiveX,典型应用服务器的体系结构,(6) 集成服务器集成服务器表达了应用集成中间件的“最高境界”(nirvana).集成服务器能够: 支持两个或多个资源(源应用和目标应用)之间的信息迁移; 解析应用语义和平台的差异. 集成服务器通过使
42、用一些公共规则和路由引擎,组合多个应用. 这样,就可以完美地实现所谓的应用集成.,DB2 Informix SQL Server OLE DB Oracle Sybase ODBC,Databases,Oracle via Oracle DB People Soft SAP Siebel Others via JCA Gateway,Applications,Messaging Middleware (BEA,Candle,IBM,Tibco,etc.Communications (JCA,FTP,HTTP,COM,E-mail,etc)Utilities (JNDI,LDAP,MIME,SI
43、NK,etc),Resources,Rules,Transforming,Routing,Integrator,Adaptor,Management Tools,Managing/Monitoring,Integration server are able to share information with a multitude of systems using an asynchronous, event-driven type mechanism.,关于中间件的选择 RPC是性能较低的技术,但由于它们是阻止型中间件,因此提供了最好的数据完整性控制。当使用RPCs时,几乎总是以正确的次序进
44、行修改。即,如果数据完整性比性能更重要的话,那么RPCs可能就是最好的选择。 就应用集成而言,在大多数企业中, RPCs 就不是一种最好的选择,因为企业需要一些即时的处理,并不希望“呆”在一个应用,等待其它组织中有关应用的响应。因此,在多数企业中,异步中间件就是一种很好的方案。这样的方案支持长事务,这对这类需求是至关重要的。同步中间件不可能支持今天事件驱动的应用的需要。尽管RPC可以提供较好的性能,而消息机制可以提供更好的性能,因为队列管理器给出了复杂的性能特征,例如负载均衡。,内容,应用集成概述 面向业务过程的应用集成 应用集成中的中间件技术 适配器与J2EE连接子体系结构,1、引言:适配器
45、的任务是,将信息和应用服务自后台系统中“解放”出来。因此, 适配器处于源/目标应用和集成服务器之间; 适配器通过将请求转换为源/目标应用可以理解的形式, 解析后台系统的差异,并转换源/目标应用的响应。,需要适配器的理由如下: 第一,我们需要复用一些软件服务,这些服务可以提取信息并向源/目标系统发布这些信息,这样我们就不必在每一次进行应用集成项目时重复地建造那些接口。 第二,对于源/目标系统,我们需要一些公共的接口,以便提供一致性的一组服务。 最后,对于源/目标系统的连接,我们需要管理其可见性。这可增强连接的灵活性,我们可以了解源/目标系统一次有依次的运行,且适配器就可以对此管理之。适配器的简单
46、思想以被一些提供商予以实现,但在遵循的标准方面存在不同。目前,实现适配器的途径比以适配器连接的源/目标系统还要多。另外,使用的意在简化问题的标准更加复杂,并在术语方面更加混饶。,2、适配器的目的(purpose):过去,人们认为将应用A连接应用B,或将应用A、B连接一个集成服务器,必须使用应用所提供的某些接口与这些应用进行交互。连到应用和数据库的接口相当多,少到简单的、定义良好的API,多到复杂的、语义隐含的出口调用。适配器是位于集成服务器和源/目标应用之间的层。例如,一个适配器可以是一组“文库”(library),实现2个不同接口(集成服务器接口和源/目标应用接口)之间的映射,向使用应用服务
47、器的最终用户或应用集成开发人员隐藏了这些接口的复杂性。有两类适配器:瘦适配器和胖适配器。这些适配器可能有两类行为:静态的和动态的。,瘦适配器:在多数情况中,瘦适配器简单地是一些绑定器,将源/目标系统的接口映射为集成服务器所提供的公共接口。即它们简单地实施一个API绑定踪迹,把一个API连接到另一端接口。,Application,Other Application Or Integration Servers,API,Thin Adapter (Abstraction),瘦适配器并不在源/目标系统和集成服务器之间提供一些复杂的层,仅是在现有API之上的一些简单的抽象。,优点:实现简单。缺点: (
48、1)性能的影响;(2)仍然需要大量的程序设计;(3)对于那些复杂的问题,到API的映射几乎总是独自的。,Application,Other Application Or Integration Servers,API,Management,Automation,Transformation,Queuing,胖适配器是位于应用接口之上一个更复杂的层,胖适配器:胖适配器在集成服务器基础设施和源/目标应用之间提供了大量的软件和功能。胖适配器的抽象层使信息迁移和过程调用的管理不是痛苦的。因为该抽象层和管理器处理所有需要集成的那些应用之间的差异,几乎不需要程序设计。,胖适配器的特征(feature)是,能够独立于集成服务器,集中思考、处理信息。由胖适配器所实施的处理包括:(1)简单地转换应用语义,例如将原格式转换为标准形式。(2)例外处理例程。(3)在集成服务器中止运行的情况下,信息的排队和重新开始。(4)信息路由的方向,这可以不需要集成服务器中的服务。,