c面向服务的集成yourfamilysiteyoursitehere背景企业面临的问题各种各样不同的平台新系统的引入信息孤岛……集成技术的发展点对点集成消息总线企业应用程序集成(EAI)企业服务总线(ESB)c以服务为中心的集成面向服务的集成yourfamilysiteyoursitehere以服务为中心的集成集成将小粒度服务集成为大粒度服务将硬编码的集成变为动态可配置的集成以服务为中心的集成(SOI):在以服务为中心的体系架构(SOA)中,通过服务的交互来集成各企业的IT资源,如分布的应用或者数据,帮助企业IT部门将已有但老旧而不灵活的系统集成起来,释放其中功能或数据为可重用的服务与业务流程。yourfamilysiteyoursitehere资源集成有效灵活地组合资源可以优化企业内部及外部的运营人员流程信息++信息价值数据时间=实现…….yourfamilysiteyoursitehere转型业务流程外包购并与剥离随需应变的运行环境需要可编排服务(SOA)可编排流程开发基础设施管理面向服务架构(SOA)软件开发整合基础设施SOMA灵活的业务灵活的IT技术集成yourfamilysiteyoursitehereSOI的推动因素:商务方面从商务的角度,今天企业要在全球化的经济环境中求生存和发展,就必须随需应变的进行灵活转型。在一个企业的业务模型变得灵活的转型过程中,需要将业务流程不断地自动化,然后跨部门横向集成它们,并且管理和优化它们。yourfamilysiteyoursitehere例子:当铺旧时代,谁会走进当铺呢?——当铺的角色:剥削渡不过难关的穷人;为翻回老本的赌徒;穷奢极欲的败家子;…yourfamilysiteyoursitehere当今,谁会走进当铺呢?——当铺的角色:救急头脑灵活的人上典当行:外出不便携带的东西放在当铺里,有人负责保管,交点钱买个踏实;有赚钱机会的人上典当行:资金周转不过来,先拿一些已有资产变现,资金回笼后再回收已有资产;会理财的人上典当行:进货没有仓库,把当铺当自己的仓库,交点托管费;…yourfamilysiteyoursitehereSOI的推动因素:技术方面在技术方面,IT部门面临着业务部门越来越高的期望值,就是用更少的钱做更多的事情,但要做得更快、更好,这迫使IT部门考虑如何最大程度地重用已有应用的功能和数据资源,来支持新应用的开发。yourfamilysiteyoursitehere例子:假设要构建一个高性能,高稳定的服务器,是花钱购买更好的服务器还是重新组织已有的普通服务器?假设一台普通的服务器(或者PC)出故障的概率是每100天当机一次那么用两台或者三台这样的普通的服务器(或者PC)搭建的虚拟服务器出现故障的概率是多少呢?yourfamilysiteyoursitehereSOI的好处定义良好而又基于标准的接口实现技术和位置的透明灵活性重用能力和渐进式集成yourfamilysiteyoursitehereSOI的例子:高等教育信息系统高校面临的挑战yourfamilysiteyoursitehere呼唤高等教育信息系统yourfamilysiteyoursitehere成功有效的设计和有效的管理yourfamilysiteyoursitehere大学的一体化方案yourfamilysiteyoursitehere学校的运营和决策分析yourfamilysiteyoursitehere基于SOA的架构设计yourfamilysiteyoursitehere与校园Portal的无缝集成c服务集成的相关操作面向服务的集成yourfamilysiteyoursitehere服务标识和定义服务集成很少是在全新的项目中开始的,解决方案几乎总需要涉及集成现有的遗留系统,方法是将它们分解成服务、操作、业务流程和业务规则将现有的应用程序和厂商软件包分解成表示相关操作组的离散服务集。从应用程序中将业务流程和规则抽象为单独的业务编排模型。yourfamilysiteyoursitehereServiceConsumersServiceProducers服务通信通过接口,采用位置透明的、可互操作的协议进行调用,与客户端以“松散耦合”的方式绑定在一起。SOA中所有协议均是基于XML的文本文件yourfamilysiteyoursitehere服务组合服务组合是将已有服务组合为一个新服务的过程,以增加服务的可复用性、功能和性能。独立存在的服务具有较低的价值,只有多方提供的多个服务集成在一起,通过协同来完成共同的业务目标,服务和SOA才能体现出其优势。yourfamilysiteyoursitehere服务组合案例:“开设银行账户”yourfamilysiteyoursitehere服务组合的两大概念服务编排:将小粒度的服务按照特定的流程聚合为大粒度的服务;服务编舞:在多方的业务流程之间通过服务实现协同的动作编排。yourfamilysiteyoursitehereSOA中的服务组合yourfamilysiteyoursitehere服务协调多个Web服务组合在一起并被客户端所调用时,它们之间存在着复杂的交互过程,每个服务不是独立与客户端发生交互,各服务之间需要相互协调。yourfamilysiteyoursitehereSOA中的服务协调yourfamilysiteyoursitehere服务协调的实例:在实现分布式事务时,就需要由事务管理器在各个资源管理器之间相互协调,并且由“两阶段提交协议”规定了具体的协调过程。c面向服务的集成服务集成的模式yourfamilysiteyoursitehere点对点模式从集成和业务交互方式的角度来看,最早的集成方式是点对点集成如下图,当两个系统之间需要相互协作时,为这两个系统开发相应的连接组件。yourfamilysiteyoursitehere点对点集成的缺点:这种架构中,应用系统之间藕合性非常高,任何一个系统的升级或改动都将影响到其他与之相关的应用系统的修改;同时当一个新的应用系统需要纳入整个应用集成体系时将非常复杂;要想按照统一的方式进行日志、监控和系统管理也非常难。yourfamilysiteyoursitehere集线器模式对于大规模的集成,在EAI时代,逐渐发展出“集线器”模式如下图,所有的系统都连接到中央交换中心,应用之间不再直接连接,从而大大减少了连接的数量。yourfamilysiteyoursitehere集线器模式的缺点:Hub的负担会很重Hub出问题的话将造成整个通信的瘫痪yourfamilysiteyoursitehere消息总线模式多个Hub联合在一起可以形成总线,它在逻辑上是一个单一的实体、能进行单点控制,但物理上是多个分布式组件。yourfamilysiteyoursitehere企业应用程序集成(EAI)模式将进程、软件、标准和硬件联合起来,在两个或更多的企业系统之间实现无缝集成,使它们就像一个整体一样。yourfamilysiteyoursitehereEAI模式的缺点:EAI要求专有的开发接口,集成逻辑(进程,转换规则,工作流服务等)不能被移植到EAI解决方案中。yourfamilysiteyoursitehere服务总线(ServiceBus)模式服务总线提供服务中介的能力,使得服务使用者能够以技术透明和位置透明的方式来访问服务yourfamilysiteyoursitehere服务总线中的服务代理支持多种协议格式WebServices的处理多种通讯方式c面向服务的集成企业服务总线(ESB)yourfamilysiteyoursitehereESB的定义IDC将ESB定义为:基于开放的标准消息总线,用于通过标准的适配器和接口,来提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并且具有适当的服务级别和可管理性。yourfamilysiteyoursitehere企业服务总线(ESB)ESB作为SOA架构的信息传输龙骨,为SOA提供了一种连通性的基础架构,用以连接SOA中的服务。ESB是一根聪明的管子,用来连接各个愚笨的节点。第三方的程序组件能够以标准的方式“插入”到该平台上运行,组件之间能够以标准的消息通信方式进行交互。yourfamilysiteyoursitehereESB的作用ESB在请求者和服务间起如下作用路由消息转换协议转换消息格式处理业务事件yourfamilysiteyoursitehereESB的作用ESB在服务请求者和服务提供者间扮演中介的角色yourfamilysiteyoursitehereESB产品例子:MicrosoftESByourfamilysiteyoursitehereESB产品例子:FioranoESByourfamilysiteyoursitehereESB产品例子:IBMWebSphereESByourfamilysiteyoursitehereESB产品例子:OracleESByourfamilysiteyoursitehereESB涉及到的基本元素服务请求者:发出服务请求入站端口:定义总线可以接受的接口配置中介:对消息的路由和格式转换出站端口:连接服务提供者的端口服务提供者:完成具体的服务yourfamilysiteyoursitehereESB产品的内部架构yourfamilysiteyoursitehere一个ESB运行的例子功能:查询某个学生的数据前提:假设使用标准的学生ID(SSIM)来查找某个学生结果:返回查到的学生的数据yourfamilysiteyoursitehereESB的任务ESB最简单的形式是负责获得从一个节点A到另一个节点B传输的消息EnterpriseServiceBusPointAPointBMessageyourfamilysiteyoursitehere得到总线上的消息一个绑定的组件使用服务的协议,比如基于JMS的SOAP协议。EnterpriseServiceBusPointBMessageGetPersonDataClientRequestGetPersonDataBCyourfamilysiteyoursitehere读取学生的数据EnterpriseServiceBusMessageGetPersonDataRequestGetPersonDataClientRequestGetPersonDataBCGetPersonDataBC查询请求路由到一个“GetPersonDataService”,这个服务执行业务逻辑。yourfamilysiteyoursitehere执行基于标准的学生ID(SSID)的查询EnterpriseServiceBusSSIMLookupMessageGetPersonDataRequestGetPersonDataClientRequestGetPersonDataBCGetPersonDataBCRequest调用SSIM服务(SSIM服务是存在总线中的一个服务),执行查找学生的操作。yourfamilysiteyoursitehere返回学生数据EnterpriseServiceBusResponseMessageResponseSSIMLookupMessageGetPersonDataRequestGetPersonDataClientRequestGetPersonDataBCGetPersonDataBCRequestResponse将查询结果返回给请求者。yourfamilysiteyoursitehereESB工作流程请求者将SOAP/HTTP请求发送到总线。总线中的服务目标上的中介进行消息处理,将请求从请求者的形式转换成服务提供者的形式。将请求