应用集成原理与工具.ppt
应用集成原理与技术,课程内容组织,课程内容包括以下部分:集成概念及集成技术发展主要集成技术及原理典型集成应用方案剖析常见部分集成工具分析,第一部分 集成概念及发展,应用集成 应用集成就是建立一个统一的综合应用,即将截然不同的、基于各种不同平台、用不同方案建立的应用软件和系统有机地集成到一个无缝的、并列的、易于访问的单一系统中,并使它们就像一个整体一样,进行业务处理和信息共享。应用集成由数据库、业务逻辑以及用户界面三个层次组成。它是一个面向用户的应用技术。,应用集成的发展,发展简介,独立应用政府信息化的最初,一个应用系统的使用范围仅限于某一部门和某一种业务,因此导致了在基层政府存在大量独立的应用软件,这些软件可能基于不同的程序语言,运行在不同的软、硬件环境上。这也是应用集成产生的原动力。,发展简介,基于接口的代码定制这是应用集成的最初形式,一个系统与另外一个系统直接通话,采用接口开发的形式,通过一些标准的协议,如TCP/IP、HTTP等紧密集成在一起。这种应用集成方式的缺点是明显的:系统间紧密结合,缺乏弹性;数据传输缺乏可靠性;部署模型复杂等。,发展简介,EAI:集线器模式集线器模式阶段,是在基于消息的基础上引入了“服务器-前置机”的结构,类似总线网络的架构,将集成逻辑和业务逻辑分离开,大大增强系统部署的弹性,并且简化了接口开发工作量,从而将复杂的网状结构变成了简单的星型结构。,发展简介,ESB:SOA+集线器模式SOA(Service-Oriented Architecture)是一个划时代的体系,它将软件的功能设计成一个个独立封装的服务,并通过标准协议(SOAP)来进行发布,在业界普遍认可并遵循,以达到无界限的联通和软件复用。ESB(Enterprise Service Bus)则巧妙地将集线器模式和SOA思想结合起来,作为服务提供者和消费者之间的桥梁,它提供数据处理流程并支持数据转换,屏蔽了异构应用之间的平台差别和数据差别。,EAI诞生,什么是EAI?EAI(Enterprise Application Integration,企业应用集成)是信息集成、过程集成、功能集成的大统一。不难看出,EAI是改造原有系统的有力武器,原有系统在EAI的改造下,不需要重建,便可建立大统一的系统,并且大大降低了系统的投入成本。当前的应用集成通常都认为是EAI。也通常被称作企业级应用集成。,驱动力(1),驱动力(2),于是,企业对应用整合的需求应运而生。具体来说,主要的内、外在的驱动力如下:1)电子商务 目前企业面临的一个关键问题就是如何在尽可能小的风险下充分利用当前所有的IT设施抓住电子商务带来的机遇。EAI为这个问题提供了一个答案。电子商务必须将企业内部、企业与合作伙伴、企业与客户之间的各种业务流程(诸如销售订单处理、客户服务、供应链管理)整合起来,而这必须通过整合企业内部的信息系统来达到,并且要将整合后的系统通过web方式展现出来。一旦完成了信息系统的整合,EAI就使企业能够改进和客户的关系,因为这时候企业能够得到关于客户的集成的完整的信息。客户也会将企业视为一个整体而不是一个个的部门。从长远看,这样有助于提升客户的忠诚度。此外,在电子商务时代,缩短新产品进入市场的时间将为企业带来巨大的优势。通过运用遗留系统中存在的知识,EAI能够帮助企业加速新产品的入市。这并不需要对遗留系统重新编程,通过EAI,只需要将各种各样的系统整合起来提供web终端和新的服务就可以了。,驱动力(3),2)兼并与收购 近几年来,大型的兼并收购活动屡见不鲜。这些企业都希望通过兼并收购来扩大自己的业务范围,降低成本,减少冗余,提供流线型的服务。但是联合起来的不同企业往往运行不同的系统平台,很难用低成本的方式将这些不同的应用和平台整合起来。EAI的出现有助于解决这个问题。3)ERP软件包 20世纪90年代,ERP应用开始流行的时候,同时也要求它们能够支持已经存在的应用和数据,这就必须引入EAI。此外,企业常常从一个ERP供应商处购买财务模块,而从另一个供应商处购买人力资源模块,这样模块之间也需要整合。,EAI的定义,企业应用集成是最近国内外研究的一个非常热门的领域,其实企业实施的IT支持系统多于一个,并且系统相互间要进行数据或信息交流时就有不同系统的集成问题,当然这只是EAI问题的简单表述。在学术上EAI有好几种定义。但是尽管许多学者的定义与其他人的定义大相径庭,集成是贯穿这些定义的一个主题。下面首先给出一些学者的定义:Green:EAI是通过一个公用用户接口来共享异构应用系统中的信息。D.S.Linthicum:EAI是在企业范围内无限制的共享相互连接的信息系统内的信息和业务流程。Taylor:EAI是将信息系统改造成一个支持电子商务的应用平台。综合这些观点,我们将EAI定义成:EAI就是将业务流程、应用软件、硬件和各种标准联合起来,在两个或更多的企业应用系统之间实现无缝集成,使它们像一个整体一样进行业务处理和信息共享,从而提高企业效率,为客户提供灵活的业务服务。,EAI的模型,EAI的层次(1),不同企业的应用系统集成有不同的层次,不同的起点。有的企业可能刚开始考虑信息和数据的集成,有的企业可能开始向面向过程的集成迈进,还有的企业可能已经实现了基于WEB的集成和企业之间的协同商务。不管企业应用集成如何发展,企业在对应用系统实施集成的过程中,必须切合自己的企业规模、技术水平和发展战略,选择最合适本企业的实际需求和发展目标的集成策略和方案。EAI技术和内容从不同的角度有不同的分类方法。从应用集成的对象来划分可以分为面向数据的集成和面向过程的集成;从应用集成所使用的工具和技术来划分的,可以分成六个层次,分别是平台集成、数据集成、组件集成、应用集成、过程集成和业务对业务的集成。如果从企业组织角度EAI可分为水平的组织内的集成、垂直的组织内的集成和不同组织间系统的集成。,EAI的层次(2),从集成的深度上来说,可以分为以下几种集成方式:数据的集成。为了完成应用集成和业务过程集成,必须首先解决数据和数据库的集成问题。在集成之前,必须首先对数据进行标识并编成目录,另外还要确定元数据模型。这三步完成以后,数据才能在数据库系统中分布和共享。应用系统的集成。为两个应用中的数据和函数提供接近实时的集成。例如,在一些B2B集成中用来实现CRM系统与企业后端应用和Web的集成,构建能够充分利用多个应用系统资源的电子商务网站。业务流程的集成。当对业务过程进行集成的时候,企业必须在各种业务系统中定义、授权和管理各种业务信息的交换,以便改进操作、减少成本、提高响应速度。业务过程集成包括业务管理、进程模拟以及综合任务、流程、组织和进出信息的工作流,还包括业务处理中每一步都需要的工具。,ETL,BI(商业智能)运作所依靠的信息系统是一个由传统系统、不兼容数据源、数据库与应用所共同构成的复杂数据集合,各个部分之间不能彼此交流。从这个层面看,目前运行的应用系统是企业在花费了很大精力和财力构建的、不可替代的系统,尤其是系统的数据。而新建的BI系统目的就是要通过数据分析来辅助自己决策,恰恰这些数据的来源、格式不一样,导致了系统实施、数据整合的难度。此时,企业非常希望有一个全面的解决方案来解脱自己的困境,解决数据一致性与集成化问题,从而能够从所有传统环境与平台中采集数据,并利用一个单一解决方案对其进行高效的转换。这个解决方案就是ETL(数据的提取、转换和加载extraction,transformation and loading)。通常情况下,企业的数据源分布在各个子系统和节点中,利用ETL将各地方业务系统上的数据,通过自动化FTP或手动控制传到UNIX或NT服务器上进行数据获取、转化处理,然后存储到数据仓库。因为现有业务数据源多,保证数据的一致性,真正理解数据的业务含义,跨越多平台、多系统整合数据,并最大可能地提高数据的质量,迎合业务需求不断变化的特性,这是ETL技术的关键所在。可以肯定的是,ETL贯穿整个BI解决方案的全过程,完成整个系统的数据处理与调度。,认识EAI(1),EAI不是一个典型的“计算机应用系统”一般说来,一个企业的“应用系统”由数据库、业务逻辑以及用户界面三个层次组成。虽然应用系统的设计架构从三位一体发展到今天的多层结构,但它本身的定义没有发生很大的改变。而EAI则起着将两个“孤立”的应用系统相互“粘接”的作用,是一个“中间插件”,很像一个“中间人”的角色,如图所示。,认识EAI(2),B2Bi、B2Ci与EAI之间的关系 B2Bi(Business to Business integration)是一个企业与另一个企业的应用系统之间的整合,以实现企业同供应商、经销商等合作伙伴之间更加紧密的协作关系。B2Ci(Business to Customer integration)是指企业内部系统(主要是ERP系统)和企业的Web应用之间的整合。一个企业如要进行电子商务,就必须将Web应用同后台的财务、库存管理模块等实现充分的信息交流,否则传统的作业方式无法满足电子商务的实际需要。另外,也有些研究人员干脆将B2Bi和B2Ci都归到EAI范围,而不管是企业内部还是企业之间的,这种把B2Bi和B2Ci都当作EAI的扩展的提法,也未尝不可,其实很多在互联网时代出现的名词本身也在不断的演变之中,往往隔一段时间就需要重新定义。,认识EAI(3),BPI、eBI与EAI BPI即业务流程整合(Business Process Integration)的简称。很显然,EAI主要强调的是应用系统之间对数据和功能组件的共享(相互调用),是以“数据”驱动的,在理解上比较“实在”;而BPI是由“活动”驱动的,业务流程“整合”的理解,就是将原有的分散于企业内部或者外部的“业务流程断点”加以接续,从而完成全程业务活动的自动化。eBI即电子商务的整合,则是一个广义的词汇,任何的整合只要它是在电子商务框架内,都属于电子商务的整合,这包含了上面各种整合的提法。,为什么需要EAI?(1),现在,每个企业都或多或少地存在某种“计算机应用系统”。虽然应用的IT技术有新有旧、应用领域的范围也有宽有窄,但是有一个共同点:基本上是以企业某个部门或基于一个或几个功能为目标的设计。这样,由于历史原因,企业就可能拥有多个独立的应用系统。这种“应用碎片”和“信息孤岛”的现象,已经存在很多年了。为什么最近几年企业才对EAI产生重视呢?,为什么需要EAI?(2),Ebusiness的推广 随着企业在信息化方面的不断探索,一个企业有大大小小的多个系统。举例说,一个企业在实施ERP的时候,往往已经拥有了旧的财务或MIS系统。如何进行这些软件之间的数据、应用及业务流程的整合,就成为企业需要考虑的当务之急。,为什么需要EAI?(3),互联网的兴起 互联网是与世界交流的最有效工具。很多企业已经开始着手进行电子商务模型下的运作。然而,要把生意从“网下”搬到“网上”,就要加快后台系统,以适应需要快速反应的网络客户的需要,即让信息在网上和网下系统之间、企业与企业的合作伙伴之间自由地流动起来。因此,成功地进行EAI这个整合手术,就成为企业电子商务战略成败的关键。EAI的实际内容有很多,范围也已经从单纯的企业内部的应用整合,发展成为当前面向B2B的整合及B2C的EAI。,EAI发展的3阶段,EAI的发展经历了三个阶段:点对点的连接阶段、企业的内部协作阶段、企业间的协作阶段。EAI涉及不同硬件、网络、OS平台、应用系统、数据基础、业务流程等许多方面的内容。那么,究竟怎样完成如此错综复杂的整合呢?,EAI发展的3阶段(1),传统的整合方式 传统的EAI实现主要针对第一个阶段,几十个、几百个“信息孤岛”应用程序集成。通常是使用点对点的集成方式。这种集成的缺点显而易见:集成虽然在一个整体的平台上,但是很多都不是开放及标准的环境,此类整合常伴随重复或技术难度较大的问题,导致整合的时间过长、成本过高,成功的几率不高。,EAI发展的3阶段(2),主流的整合方式 目前各大厂商提供的主流EAI解决方案大都采用了这种整合方式:通过建立底层架构来连接整个企业的异构系统、应用、数据源等。它对应着EAI的第二、三个阶段,架构中引入了新的技术标准。,EAI发展的3阶段(3),主流的底层架构集成方法,EAI发展的3阶段(4),如上图,EAI的集成建立在一个由中间件组成的底层基础平台上,各种“应用孤岛”、“信息孤岛”通过各种适配器连接到一个总线上,然后再通过一个消息队列 实现各个应用之间的交流。在业务人员的眼中,它们便成为一个个召之即来、挥之即去的模块。各个EAI供应商几乎都会提供一些开发包,以便企业定义、升级适配器及定义管理流程。,EAI发展的3阶段(5),当前国际上主流的EAI系统有:IBM MQSeries Integrator、BEA WebLogic Integration、Sybase(New Era of Networks)e-Biz Integrator、TIBCO ActiveEnterprise、Active ActiveWorks Integration、Mercator Mercator Enterprise Brokers、STC(Software Technologies)的e.Gate Integrator、Vitria BusinessWare及Sun iPlanet、Microsoft、Borland、Viewlocity、Oracle、CrossWorlds、SeeBeyond和WebMethods公司的相应产品。,EAI发展的3阶段(6),BEA WebLogic Server BEA WebLogic 服务器基于J2EE平台,集成了著名的Tuxedo TP交易监控技术、IBM的Visual Age和Inprise JBuilder,是目前主要的应用服务器。在软件开发平台上可以通过各种数据访问技术访问应用的数据库以及对旧系统进行打包,甚至可以开发出客户化的各种适配器。另外,BEA WebLogic系统产品中有一个WebLogic 流程整合器,是一个进行BPI业务流程的设计管理工具,可以用于企业内部和外部业务流程的设计和管理。总之,WebLogic作为较早推出的应用服务器之一,几乎可以完成所有复杂的整合。,EAI发展的3阶段(7),IBM WebSphere WebSphere在整合领域方面,除了提供了众多预制的应用适配器外,还集成了自己的MQSeries技术,并且支持几乎所有流行的数据格式。WebSphere的Business Integrator对应于WebLogic的Process Integrator,也是BPI的设计管理工具。IBM的一个优点是它的产品支持绝大多数软件硬件平台。它凭着“大而全”的优势以及同其他产商的广泛合作,WebSphere的开发平台也是很多企业的选择。,EAI的三个范畴(1),数据集成 这是一个基本的集成。应用集成与业务集成都建立在此基础上。方法主要有数据的转换、数据格式的定义、规则的描述、数据的整理及再加工等。集成包含数据共享、数据迁移及数据复制等。主要难点有数据格式的转换、数据冗余以及完整性的保持等。,EAI的三个范畴(2),应用集成 这是EAI中关键并难于实现的一环,指各个E-business间的集成,比如CRM、ERP等系统之间的集成。,EAI的三个范畴(3),业务集成 企业中事件的处理、操作的流程化。业务流程的前身是Workflow,即工作流程。它由一系列的活动相互连接,从而完成特定的业务活动。应用集成和业务集成实现的方法为:API调用、业务组件调用以及目前最新的基于服务功能调用三种方式实现。在技术实现上,有微软的COM、DCOM、COM+,OMG的CORBA,以及Java的EJB组件标准。所有这些功能组件技术都可以用来对带有API或没带API的应用进行打包处理,使之可以被以组件为标准的最新应用(如Web应用)直接调用。,选择EAI的注意事项,(1)着眼于长远战略 企业在进行任何改造或者新的应用系统,一定要把眼光看远一点,不可仓促决定。(2)选择开放标准 选择支持国际开放标准的EAI产品、解决方案。(3)选购技术先进的软件 对于没有实施过E-business的企业来讲,一定要选择具有良好结构及接口的软件产品,不要为将来留下后患。,EAI的基本特征(1),EAI 的核心是使用中间件连接企业应用。有多种不同类型的中间件可以提供 EAI 的功能。在选择 EAI 中间件时需注意以下的基本特征:通过中间件将不同的应用连接起来,保证应用的独立性,在不需要修改应用自身的业务逻辑的同时,又解决了数据共享问题。对核心共享业务数据模型的处理与支持。实现业务流程自动化。确保各个部门在采用不同的系统的同时可以协同完成同一个工作。支持应用架构的不断变更。可以方便地重新配制以增加或去除系统而不会影响其它系统。,EAI的基本特征(2),必须保证数据的安全,只有目的应用可以读取。良好的性能和数据吞吐量,并且具有灵活的可扩展性以适应企业的发展。必须具备恢复机制,当数据传输过程中发生连接中断等异常时可以确保数据的恢复。对流程管理提供预定义的通用模型与行业模型。既能够提供实时接口和批处理接口,又能够提供同步和异步接口。,EAI解决方案的五个层面(1),用户交互 这个层面是一个面向用户的整合,强调的是要将来自多个信息源的信息以一种可定制的、个性化的界面展现给用户。在这个层面上,主要涉及的技术包括:门户技术:为企业提供一个单一的访问企业各种信息资源的入口,企业的员工、客户、合作伙伴和供应商等,都可以通过这个门户获得个性化的信息和服务。现在的门户平台已经能够提供综合、分类、搜索、出版和发行、处理、协作和个性化等关键功能,是企业下一代的桌面。主机集成技术:可以将传统的主机界面发布到流行的 Web 界面,从而使得主机能够参与到新兴的计算环境。无线技术:可以通过代码变换(transcoding)和翻译(translation)等手段将信息发布给手持设备,使得手持设备的使用者可以远程使用企业应用程序,随时随地获取信息。,EAI解决方案的五个层面(2),应用连接 这个层面强调的是应用可以存取企业范围的信息,而且保证信息能够及时和准确传递。该层面提供了应用程序之间的互连从而也成为 EAI 的基础。消息中间件是实现这个层面的主力军。,EAI解决方案的五个层面(3),业务流程整合 这个层面强调的是对涉及不同系统、不同角色人员所进行的活动的控制和协调。该层面既可以将多个离散的应用当作一个应用程序管理,从而实现流程自动化,也可以将企业业务流程从应用逻辑中剥离开,并集中到相应的业务流程管理工具中来统一管理并根据需要调整。,EAI解决方案的五个层面(4),构建整合 这个层面强调的是新发布应用程序对企业遗留资产的兼容。当在 EAI 过程中需要编写代码来实现新功能,并希望新的程序能和现有的应用集成,我们可以选用某些企业级的连接技术。特定到 J2EE 平台,可以通过 JMS、JCA 以及 Web 服务来实现。,EAI解决方案的五个层面(5),信息集成 这个层面强调的是将企业内部的信息通过联邦、变换和复制技术将企业内部的信息源集成在一起,集成的数据源将屏蔽底层数据源的位置、类型等物理特性,会以统一的视图和接口呈现给用户或者应用程序。,EAI之于企业的意义(1),优化管理流程“要取得EAI建设的成功不单单需要系统技术方面的成熟,影响最终效果的根本实际在于我们的业务想怎么做。理顺业务流程是首先需要做的工作。”中国网通信息系统部某负责人言。按照国际通行的建设惯例,实施EAI的首要工作是如何利用先进的管理理念对现有的业务流程进行的整合,而不是急于先上EAI的平台或者技术。但是由于我国企业运营体系的特殊性,导致了业务流程不但在不同省存在差异,甚至在同一省不同的本地网也千差万别,最终造成了支撑系统中各种各样的业务需求的沉淀和流程的不顺畅。,EAI之于企业的意义(2),为客户带来便利 以网通为例。据了解,EAI作为企业资源管理的核心部分,中国网通把客户资源、网络资源、工单等系统都是架构在EAI总线之上的,目前这些基于EAI架构的系统正在逐步建设阶段。EAI实施以来,大大提高了企业的工作效率。比如:关于计费、账务和客服系统,原来都是分散的小系统,甚至在每个方面都有不同的系统,系统间存在着数据重复、冲突的问题。而EAI将这些系统根据eTOM(商务过程框架)的模型构建成一套完整的IT系统架构,实现统一的计费、账务和客户资源管理,大大提高了前台的响应速度,为客户带来了极大的便利。,打破三维障碍 EAI技术加强了企业不同功能领域部门之间的横向联系,也加强了上下部门之间的纵向联系,打破了企业及其职能部门之间的三维障碍-横向障碍、纵向障碍、外部障碍。企业的组织形态变成了结构扁平化、网络化,决策方面实现了分散化、实时化,部门之间和上下级的关系实现了紧密化、协调化,与供应商、合作伙伴和客户的关系开放化,减少了生产环节,为客户建立起端到端的服务环境,并且使企业拥有了适应新环境下的竞争优势。,EAI之于企业的意义(3),EAI之于企业的意义(4),EAI让企业走向实时 在电子商务时代,企业管理的发展方向是“实时企业”,即企业能够实时地知道市场上的变化、实时地知道公司目前的状况,并根据这些实时信息作出实时决策,来迅速响应市场的变化。实际上,“实时企业”所要解决的核心问题就是指数据的流动性,而解决问题的关键就在于必须有一个良好的EAI。,企业级应用集成,简单的说,企业级应用集成就是将分散的应用程序集合到一起,提供一个统一的功能集合。一个企业中可能有很多个独立实现的应用程序,使用了不用的语言不同的平台。企业需要一个统一的方式来共享数据和处理过程。,企业应用集成的现状与发展趋势,在EAI的范畴中,企业一直面临着削减成本和最大限度地利用现有技术的难题,但是与此同时,他们还必须不断地努力,以期更好地服务客户,更快地响应企业战略重点,从而赢得更大的竞争力。从信息的整合再到功能与流程的整合,从企业内部的应用整合到跨企业边界的整合,企业整合的需求不断地变化和丰富。,EAI必须解决的主要问题,在当前激烈竞争的环境下,一个成功的企业在IT构建上需要解决下列问题:如何实现应用系统的快速构建,迁移和伸缩,以满足不断变化的市场需求。如何能够让已有的多种应用系统无缝的集成起来。如何设计现代IT架构,使系统不仅功能强大和可靠,而且还有强大的灵活性和可扩展性,以满足不断增长的新需求。,成功实现应用集成的12个步骤,了解问题领域定义价值弄清数据的含意弄清楚流程的含意确定应用接口确定业务事件确定转换场景绘制信息流动路线图选择合适的技术测试优化系统性能维护程序,成功实现应用集成的12个步骤(1),了解问题领域 首先必须对问题领域加以研究孤立地和放在企业环境中加以研究。听起来很简单,事实上它是整个流程中最复杂和最耗时的部分,是不可避免的。了解问题领域需要与许多机构负责人合作,还要求与文书、人员和系统打交道,确定将使应用集成问题被正确定义的信息,使问题可以被分析、建模和细化。这一步骤中的信息采集质量直接导致和影响到步骤二和三的成功。,成功实现应用集成的12个步骤(2),定义价值 了解问题后,就到了定义应用集成解决方案的价值、确定集成系统的业务价值的时候了。确定价值的方法一般是评估成功的应用集成解决方案所节省的费用。此时,应当考虑两件事:软的和硬的费用节省。简单地说,硬资金代表着应用集成解决方案的价值,这种价值可以很容易地根据解决方案消除高成本流程的能力(如自动完成手工过程,减少错误率或更迅速地处理顾客订单)来决定。相比之下,软费用节省更难决定。这类节省包括不断提高生产力和由于使用系统为顾客提供服务的能力得到提高而提高的顾客保持率、顾客对拥有集成系统机构的满意度(根据易用性)。,成功实现应用集成的12个步骤(3),弄清数据的含意 由于以下两个原因,我们将从数据入手:首先,多数EAI/B2B项目只存在于数据级上。仅此一点就值得努力了解分布在企业各个位置的数据库中保存着什么内容。其次,尽管EAI/B2B项目在方法级、应用接口级和用户界面级上工作,但仍需要了解数据库。最后,数据级应用集成的部署归结为理解数据所在位置,采集有关数据的信息(例如,数据方案信息)以及应用业务规则来确定哪些数据流向何处和原因。必须按照三个基本步骤为实现数据级应用集成做准备:确定数据,编制数据目录,建立企业元数据模型,这个模型将被用做集成存在于企业中的不同数据存储的主要指导。,成功实现应用集成的12个步骤(4),弄清楚流程的含意 在了解企业数据并且创建企业元数据模型等基本信息后,还必须做出如何实现企业业务模型的决定。这种决定取决于如何解决特定的应用集成问题。同数据库分析过程一样,需要使用传统的流程建模技术,如对象建模,来创建业务流程。此外,除了由应用要求集合创建的业务流程外,最好梳理一下已有的业务流程和方法,以便更好地了解它们干什么,并因此了解如何在方法级上通过复合的应用集成它们。,成功实现应用集成的12个步骤(5),确定应用接口 除了寻找通用的集成方法和数据外,更重要的是在支持应用接口级应用集成,或与应用接口和其他应用级应用集成中注意可供使用的应用接口。接口错综复杂,它们在不同的应用中差别非常大。花时间确认关于接口的假设十分重要。接口问题的最佳入手点是创建应用接口目录。同其他目录一样,应用接口目录是保存采集到的关于可用接口的信息和每个接口的文件的信息库。这种目录同通用业务模型和企业元数据模型一起用于了解应用集成问题领域的所有系统中的集成点。,成功实现应用集成的12个步骤(6),确定业务事件 这一步是确定发生在企业中的所有相关业务事件。这意味着当发生什么时(即事件),就会做出相应的反应。例如,一位顾客在一家网上商店购物代表着一次事件。也许需要捕获这次事件,做出某种反应,如运行自动信用检查来确保这位顾客信用良好。这些事件本质上一般不是同步的,但在某些情况下可以同步。重要的是了解什么调用业务事件、在事件过程中发生什么以及作为最初事件的结果可能引发的任何事件。最终的结果是一个相互关联的事件网,它记录着每个事件如何依赖于另一事件。目前,这种网通过自动或手工流程存在。在应用集成解决方案集合中,所有这些事件都将跨系统自动完成,因此完全消除了手工处理。,成功实现应用集成的12个步骤(7),确定转换场景 对数据和EAI/B2B问题领域中存在的应用语义有了了解后,还需要掌握系统之间的数据内容如何转换。由于以下两个理由,这样做是必须的。首先,在一个系统中的数据方案和内容进行转换,变为对另一个系统有意义之前,这个数据对于目标系统没有意义。第二,它将确保系统到系统的一致的应用语义。,成功实现应用集成的12个步骤(8),绘制信息流动路线图 一旦前面的步骤显示所有的可用信息后,就该是绘制信息从系统到系统的流动路线图的时候了:信息来自什么接口,信息最终将转移到何处。例如,来自销售数据库的顾客号需要转移到信用报告系统,并最终保留在信用系统维护的顾客表中。这种知识使我们能够绘制从源系统、销售系统到信用系统(即目标系统)的移动路线图。应当注意的是:保存信息的物理位置、有什么安全措施、存在什么使能技术(即关系表)以及信息如何在一端提取保存在另一端。还必须注意必然引起信息流动的事件,或者如果不需要事件,其他什么条件(如数据时间、实时或状态变化)造成信息从源向目标的移动。,成功实现应用集成的12个步骤(9),选择合适的技术 有许多技术可供使用,包括应用服务器、分布式对象和消息代理。选择的技术可能是不同产品和厂商的组合,这种组合将满足应用集成解决方案的需要。一家厂商就能够解决所有问题的情况非常少,虽然这种实现没有阻止厂商声称自己可以解决所有问题。选择技术是一个困难的过程,它需要大量的时间和精力。制定选择技术和产品的准则,了解可供使用的解决方案,然后对照准则筛选产品,不是一件轻松的工作。若想取得成功,这种准则与产品的“匹配”常常需要试用来证明技术是否有效。选择合适技术所需时间可能同实际部署应用集成解决方案一样长。尽管这也许看起来令人畏惧,但这比选择错误的技术要好得多。错误的选择实际上注定了应用集成项目失败的命运。,成功实现应用集成的12个步骤(10),测试 测试非常费时,但如果因系统测试耗费时间而集成解决方案没有经过适当的测试,灾难随时可能来临。例如,重要的数据可能被覆盖(因此而丢失)。也许更糟的是,应用中可能出现错误的信息等。若想保证合适的测试,就必须制定测试计划。测试计划的详细讨论超出了本文的范围,不过它实际上只是详细规定应用集成解决方案在完成时如何进行测试的分步执行的程序。由于测试应用集成解决方案所存在的困难,测试计划尤其重要。多数源和目标系统都在业务关键系统,所以不能离线。因此,测试这些系统可能有点棘手。,成功实现应用集成的12个步骤(11),优化系统性能 性能常常被忽视,性能不佳的EAI/B2B系统注定要失败。例如,如果为一位电话客户处理一个信用报告在高峰时间需要20分钟,那么应用集成解决方案则没有什么业务价值。从系统到系统的信息流动,或通用业务过程的调用,应当提供少于一秒的响应时间。此外,应用集成解决方案应当在用户和处理负载不断增加的情况下提供同样的响应时间。注意,一旦应用集成解决方案部署后,性能就是某种不可能修改的东西。性能必须“从头”设计,这意味着应用集成解决方案的架构必须为性能和所选择的技术提供基础设施。在用传统性能模型(如多年来在分布式计算世界中开发的模型)的解决方案部署前,可能需要进行某些调整。最后,必须进行一定的性能测试,以确保系统在不同条件下具有良好的性能。,成功实现应用集成的12个步骤(12),维护程序 最后同样重要的一点是,必须考虑应用集成解决方案今后怎样维护。谁管理消息代理服务器,谁管理安全性,谁监测系统性能和解决问题?在满足今后的维护需要时,一个好主意是记载所有必须发生的维护活动,并派人执行它们。记住,应用集成解决方案代表着企业的心脏,是在关键任务系统之间传送重要信息。因此,它也是一个可能造成整个企业瘫痪的故障点。考虑到这些问题之后,现在也许是考虑灾难恢复问题的时候了,如冗余服务器与网络,以及如何在灾难发生时重新部署应用集成解决方案。,应用集成的类型,这里给出适应电子政务环境下的应用集成中间件解决方案的3个类型:数据集成业务流程集成 表示集成当我们看到这些解决方案的类型,要注意的是我们在讨论解决方案的样式而不是具体实现。,应用集成的类型(1),数据集成 数据集成发生在应用环境内的数据库和数据源级别。通过从一个数据源将数据移植到另外一个数据源来完成数据集成。数据集成是现有应用集成解决方案中最普遍的一个形式。然而,数据集成的一个最大的问题是业务逻辑常常只存在于主系统中,无法在数据库层次去响应商业流程的处理,因此这限制了实时处理的能力。此外还有一些数据复制和中间件工具来推动在数据源之间的数据传输,一些是以实时方式工作的,一些是以批处理方式工作的。下面列出了一些数据集成的方法:1.批传输 2.数据合并 3.数据复制 4.析取、转换、装载解决方案(ETL Solution),应用集成的类型(2),业务流程集成 虽然数据集成已经证明是应用集成的一个流行的形式,然而,从安全性、数据完整性、商务流程角度来看,数据集成仍然存在着很多问题。组织内大量的数据是被业务逻辑所访问和维持的。业务逻辑应用并加强了必须的业务规则、业务流程和安全性,而这些对于下层数据都是必需的。业务流程集成产生于跨越了多个应用的业务流程层。通常通过使用一些高层的中间件来表现业务流程集成的特征。这类中间件产品的代表是消息中介,消息中介使用一个总线模式或者是HUB模式来对消息处理标准化并控制信息流。,应用集成的类型(3),表示集成 表示集成包括直接的和严格的,在网络环境中的跨平台应用程序之间的应用到应用(Application to Application)的集成。它涵盖了普通的代码(COBOL,C+,Java)撰写、应用程序接口(APIs)、远端过程调用(RPCs)、分布式中间件如TP监控、分布式对象、公共对象访问中介(CORBA)、Java远端方法调用(RMI)、面向消息的中间件以及Web Services等等各种软件技术。,EAI10准则(1),准则1:Align Plans to Strategy制定短期计划和长期策略准则2:Consolidate First,Integrate Second联合为先,整合在后准则3:Use a process-driven approach to develop end-to-end solutions.采用流程驱动方式来开发端到端解决方案准则4:Establish clear lines of ownership and accountability.确定明晰的属主和责任准则5:Enforce EAI architecture明确EAI体系结构,EAI10准则(2),准则6:Mandate integration requirements for new applications在新应用中考虑整合需求准则7:Develop a common representation of data and process.建立数据和过程的通用表示准则8:Test early and often早测试,常测试准则9:Re-factor interfaces constantly so they never become legacy经常重构系统接口,防止过时准则10:Evolve business practices through experimentation.通过实践演化业务流程,EAI的四个基本组成模块通信模式,通信模式通常分为同步和异步,每种模式下又有细分,如同步通信中包括请求/应答、单向和同步轮询,异步通信中包括消息传送、发布/订阅和广播。,EAI的四个基本组成模块集成方法,集成方法用于处理产生通信的方式,包括两种方法:消息传递和接口定义,消息定义具有较大的灵活性,而接口方式有较好的规范性。不管那种方式,集成现有软件时往往需要使用连接器。,EAI的四个基本组成模块中间件,中间件是EAI的基础,提供了集成的技术结构。包括远程过程调用、数据库中间件、面向消息的中间件、分布式对象中间件和事务处理监视器等。,EAI的四个基本组成模块服务,服务指EAI方案需要提供的辅助功能,如目录、安全等等。,EAI与中间件,中间件 中间件这一概念是在应用架构(Application Architecture)的发展历程中,伴随着三层(3-Tiers)或多层(n-Tiers)结构应运而生的。在三层或多层结构出现之前,应用通常采用两层结构,即客户/表示层和服务器/数据层。为了解决交易问题、应用逻辑共用问题和松耦合问题,在客户/表示层和服务器/数据层之间引进了中间层,这就是中间件。通常,中间件分为交易中间件、应用中间件和消息中间件。,中间件类型(按功能分),交易中间件:交易中间件的出现是为了解决交易(Transaction)的问题,特别是包含多个资源系统时的交易问题。交易中间件的典型例子就是Tuxedo和CICS。应用中间件:应用中间件是三层(3-Tiers)或多层(n-Tiers)应用架构的核心部分,最典型的应用中间件是以CORBA和J2EE为基础的应用中间件。今天以J2EE为基础的应用中间件逐渐为业界广泛采用。消息中间件:消息中间件是应运松耦合的概念而产生的中间件,主要以队列(Queue)和发布定阅(PUB/SUB)为消息传输机制。典型的产品有Vitria的Communicator和IBM的MQ等。中间件保证了系统的异构性、扩展性和分布运行的可行性,但它们所解决的问题主要是具体应用的实现。,中间件类型(按实现方法分),基于远程过程调用(Remote Procedure Call,RPC)的中间件,允许一个应用程序中的过程调用远程应用程序中的过程,就好像它们是本地调用一样。该中间件实处理基于过程的程序;现在,它还包括基于对象的现一个查找远程过程的链