1、2023-2-7第二章面向服务的体系结构SOA第二章面向服务的体系第二章面向服务的体系结构结构SOA第二章面向服务的体系结构SOASOA市场趋势1什么是SOA2SOA的生命周期3如何实施SOA45案例:SOA在金融行业的应用第二章面向服务的体系结构SOA “为了顺利运作,企业必须具有灵活性,为了顺利运作,企业必须具有灵活性,必须具有灵活的必须具有灵活的IT基础设施。很多公司基础设施。很多公司都在通过基于面向服务的架构(都在通过基于面向服务的架构(SOA)对系统进行整合来获得协调统一的对系统进行整合来获得协调统一的IT和和业务灵活性。业务灵活性。”IBM软件集团副总裁 Sandy Carter
2、第二章面向服务的体系结构SOA市场趋势 最近一项调查称,80的财富500强企业表示在大概两年的时间内会转变一次他们的业务模式,而业务模式的成功改变很大程度上取决于其信息系统对快速演变的商业环境的适应能力,因为大概一半受访公司表示,这项转变会受到僵硬的信息系统的牵制。第二章面向服务的体系结构SOA市场趋势 十年前,解决灵活性问题的方法是企业应用集成(EIA),在主机端运行经过整合的软件。但是新的商业过程往往跨越多个组织或需要复杂的分析和协作,这一方法已越来越难于适应日新月异的商业环境。第二章面向服务的体系结构SOA市场趋势 新的解决方案不仅需要提供高效的商业推动力,更需要是能组建未来业务模式灵活
3、的模块。客户机/服务器时代必然转向SOA这一新的潮流。第二章面向服务的体系结构SOA市场趋势 公司都在努力将IT系统环境转为以服务为导向的架构(SOA),以支持安装各种软件来有效交换数据,从而降低创建和维护界面的成本。业界分析公司Gartner估计,到2008年,60%以上的企业将在创建基础软件应用和业务流程时,将SOA作为“指导原则”第二章面向服务的体系结构SOA什么是SOA?第二章面向服务的体系结构SOASOA的历史的历史 1996年,Gartner最早提出SOA。2002年12月,Gartner认为SOA是“现代应用开发领域最重要的课题”,还预计到2008年,SOA将成为占有绝对优势的软
4、件工程实践方法,主流企业现在就应该在理解和应用SOA开发技能方面进行投资。第二章面向服务的体系结构SOA SOA是一种架构模型和一套设计方法学,其目的是最大限度地重用应用程序中立型的服务以提高IT适应性和效率。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。第二章面向服务的体系结构SOA W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化”。第二章面向服务的体系结构SO
5、A SOA不是一种语言,也不是一种具体的技术而是一种软件系统架构,它尝试给出在特定环境下推荐采用的一种架构,从这个角度上来说,它更像一种模式(Pattern)。第二章面向服务的体系结构SOASOA的特征服务的封装 服务是位置透明的 服务的重用 服务的互操作 服务之间的松耦合度 服务是自治的功能实体 第二章面向服务的体系结构SOASOA中的三个角色中的三个角色1服务申请者(Service Requester)3服务注册器(Service Registry)2服务提供者(Service Provider)第二章面向服务的体系结构SOASOA中的三个角色中的三个角色Service Registry
6、Service Requester Service Provider FindBindPublish第二章面向服务的体系结构SOASOA的三种操作的三种操作发布(publish)查找(find)绑定(bind)第二章面向服务的体系结构SOA可以用面向服务的体系结构做什么可以用面向服务的体系结构做什么l 业务的水平改变 l 内部改变 l 垂直改变 第二章面向服务的体系结构SOA可以用面向服务的体系结构做什么可以用面向服务的体系结构做什么 改变和 SOA 系统适应改变的能力是最重要的部分。对于开发人员来说,这样的改变无论是在他们工作的范围之内还是在他们工作的范围之外都有可能发生,这取决于是否有改变
7、需要知道接口是如何定义的以及它们相互之间如何进行交互。与开发人员不同的是,架构师的作用就是引起对 SOA 模型大的改变。第二章面向服务的体系结构SOA构成构成 SOA 的技术的技术 SOA 本身是应该如何将软件组织在一起的抽象概念。它依赖于用 XML 和 Web 服务实现并以软件的形式存在的更加具体的观念和技术。此外,它还需要安全性、策略管理、可靠消息传递以及会计系统的支持,从而有效地工作。您还可以通过分布式事务处理和分布式软件状态管理来进一步地改善它 第二章面向服务的体系结构SOASOA 服务和服务和 Web 服务之间的区别服务之间的区别 SOA 概念并没有确切地定义服务具体如概念并没有确切
8、地定义服务具体如何交互,而仅仅定义了服务如何相互理何交互,而仅仅定义了服务如何相互理解以及如何交互。其中的区别也就是定解以及如何交互。其中的区别也就是定义如何执行流程的战略与如何执行流程义如何执行流程的战略与如何执行流程的战术之间的区别。的战术之间的区别。Web 服务在需要交互的服务之间如何传服务在需要交互的服务之间如何传递消息有具体的指导原则;从战术上实递消息有具体的指导原则;从战术上实现现 SOA 模型是通过模型是通过 HTTP 传递的传递的 SOAP 消息中最常见的消息中最常见的 SOA 模型。模型。第二章面向服务的体系结构SOAESB 企业服务总线(Enterprise Service
9、 Bus,ESB),它使用许多可能的消息传递协议来负责适当的控制、流甚至还可能是服务之间所有消息的传输。ESB 本身可以是单个引擎,甚至还可以是由许多同级和下级 ESB 组成的分布式系统,这些 ESB 一起工作,以保持 SOA 系统的运行。第二章面向服务的体系结构SOASOA 与其他技术的关系与其他技术的关系 SOA 可以与许多其他技术结合在一起使用,然而,组件的封装和聚合在其中扮演着重要的角色。如前所述,SOA 可以是一个简单对象、复杂对象、对象的集合、包含许多对象的流程、包含其他流程的流程,甚至还可以是输出单一结果的应用程序的整体集合。在服务之外,它可以看作是单个实体,但是在其自身中,它可
10、以具有任何级别的复杂性(如果必要的话)。出于性能方面的考虑,大多数 SOA 服务并没有下降到单一对象的粒度,并且更适合于大中型组件。第二章面向服务的体系结构SOASOA 与其他技术的关系与其他技术的关系 SOA 和 Web 服务是独立于编程语言的,但 Java 是主要的开发语言之一。可以使用定义良好的 Java 接口以及各种协议丰富的 Java 实现为正在构建这个模型的开发人员提供了优势。第二章面向服务的体系结构SOASOA 与其他技术的关系与其他技术的关系 SOA 与与 Web 的另一个重要的关系是自的另一个重要的关系是自主计算和网格计算的概念。自主计算的主计算和网格计算的概念。自主计算的概
11、念应用于管理分布式服务体系结构的概念应用于管理分布式服务体系结构的范围,具体来说,就是帮助维护策略和范围,具体来说,就是帮助维护策略和服务级协议以及服务级协议以及 SOA 系统的总稳定性。系统的总稳定性。第二章面向服务的体系结构SOASOA 与其他技术的关系与其他技术的关系 另外,网格计算可以以两个级别与 SOA 系统一起使用。网格是分布式计算的一种形式,它利用分布式特性和服务之间的交互来为 SOA 应用程序提供计算支持。在这种情况下,网格起到了框架的作用,其中实现了一些或所有单独的服务。因此,SOA 应用程序可以是网格服务的消费者。第二章面向服务的体系结构SOASOA的生命周期的生命周期第二
12、章面向服务的体系结构SOASOA的生命周期的生命周期第二章面向服务的体系结构SOA建模(建模(Model)建模业务流程的程度将依赖于预期实现的深度。另外,这个程度还依赖于您在开发团队中担任的角色。如果您是企业架构师,您将会对实际的业务服务进行建模。如果您是软件开发人员,您将可能对单个服务进行建模。第二章面向服务的体系结构SOA组装(组装(Assemble)在建模中,已经确定了需要何种类型的服务以及它们将访问何种类型的数据。已经存在某种形式的实现这些服务或访问该类数据所需的一些软件。“组装”步骤将要找到已经存在的功能,并为其添加服务支持。第二章面向服务的体系结构SOA部署(部署(Deploy)进
13、行了建模和组装后,要将组成 SOA 的资产部署到安全的集成环境中。此环境本身提供专门化的服务,用于集成业务中涉及的人员、流程和信息。此外,部署工作还需要满足业务的性能和可用性需求,并提供足够的灵活性,以便吸纳新服务(并使旧服务退役),而不会对整个系统造成大的影响。第二章面向服务的体系结构SOA管理(管理(Manage)部署后,需要从 IT 和业务两个角度对您的系统进行管理和监视。在“管理”步骤中收集的信息用于帮助实时地了解业务流程,从而能更好地进行业务决策,并将信息反馈回生命周期,以进行持续的流程改进工作。第二章面向服务的体系结构SOA管理(管理(Manage)在管理中,需要监视和优化系统,发
14、现在管理中,需要监视和优化系统,发现和纠正效率低下的情况和存在的问题。和纠正效率低下的情况和存在的问题。由于由于 SOA 是一个迭代过程,因此,在此是一个迭代过程,因此,在此步骤中,不仅要找出技术体系结构中有步骤中,不仅要找出技术体系结构中有待改进之处,而且还要找出业务体系结待改进之处,而且还要找出业务体系结构中有待改进之处。构中有待改进之处。第二章面向服务的体系结构SOA控制(控制(Governance)控制对所有生命周期阶段起到巩固支撑控制对所有生命周期阶段起到巩固支撑作用,为整个作用,为整个 SOA 系统提供指导,并有系统提供指导,并有助于了解系统全貌。它提供指导和控制,助于了解系统全貌
15、。它提供指导和控制,帮助服务提供者和使用者避免遇到意外帮助服务提供者和使用者避免遇到意外情况。情况。第二章面向服务的体系结构SOA如何实施SOA第二章面向服务的体系结构SOA SOA 使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行计算平台,从而提高业务流程的灵活性。这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。SOA 有助于实现更多的资产重用、更轻松的管理和更快的开发与部署。第二章面向服务的体系结构SOA构建服务 集成 转换 IT 转换业务 SOA的采用阶段包括构建服务、集成、转换 IT和转换业务。第二章面向服务的体系结构SOA构建服务 在此
16、阶段,服务构建将更多地关注解决特定的问题,而不是对企业现有系统进行转换。IT 部门将构建一些新服务,或许会将一些现有应用程序转换为一组基于 Web 的服务。它们之间的链接将根据需要提供,而不是源自整个体系结构的要求。第二章面向服务的体系结构SOA集成 发现了松散耦合体系结构的优势、方便性和易维护性后,下一步就是利用这种灵活性通过组合服务来创建新的组合应用程序。它们之间的链接是预先计划的且定义良好。第二章面向服务的体系结构SOA转换 IT 这个阶段涉及到对信息技术基础设施进行转换,以便充分利用 SOA 的优势。所有系统将转换为基于服务的应用程序,松散耦合是其中的规范做法,而不是例外。系统的所有组
17、件都将根据 SOA 进行集成和连接,IT 系统的所有部分都在 SOA 内工作。第二章面向服务的体系结构SOA转换业务 在 SOA 成熟的最后一个阶段,业务与 SOA 完全集成,达到了这样一个程度:所有合适的业务活动都被视为服务,可以最终在技术体系结构中对其进行建模、分析和实例化。第二章面向服务的体系结构SOASOA的切入点的切入点 实施SOA可以从两个方面进入,一是以业务为中心,二是以IT为重点。第二章面向服务的体系结构SOA IBM 的什么工具和产品可用于 SOA?第二章面向服务的体系结构SOA 在第一个用于实现独立 Web 服务(Implementing Individual Web se
18、rvices)的 SOA 采用层次中,主要用于帮助开发人员创建和操作比较简单的 Web 服务。第二章面向服务的体系结构SOA实现单独的实现单独的 Web 服务服务核心组件核心组件 第二章面向服务的体系结构SOA 在第二个层次,面向服务的集成(Service Oriented Integration),工具转向提供发现多个服务并与其交互的方式,以及创建 SOA 模型的基础。第二章面向服务的体系结构SOA面向服务的集成面向服务的集成核心组件核心组件 第二章面向服务的体系结构SOA面向服务的集成面向服务的集成附加组件附加组件 第二章面向服务的体系结构SOA 在层次 3,企业范围内的 IT 转换,IB
19、M 提供了各种各样的 SOA 和 Web 服务现成产品,这样就可以支持所有的 IT 系统功能,并提供 SOA 系统的企业范围内的管理。第二章面向服务的体系结构SOA企业范围内的企业范围内的 IT 转换转换核心组件核心组件 第二章面向服务的体系结构SOA企业范围内的企业范围内的 IT 转换转换附加组件附加组件 第二章面向服务的体系结构SOA案例:SOA在金融行业的应用第二章面向服务的体系结构SOA SOA的使用是基于重用的功能单元(称为服务),通过运用这些服务之间定义良好的接口和契约联系来支持业务流程,是服务(或业务)的编排和组合增加了灵活性和集成性的重要作用。SOA的关键是使用标准的服务接口和
20、定义用松耦合进行连接。从而掩盖IT环境底层的技术复杂性和繁琐性。第二章面向服务的体系结构SOA SOA是从企业的需求开始,把IT系统和业务流程结合在一起,以服务集成的形式实现新的而且灵活的应用功能。SOA简化了IT,让IT变得更有弹性,从而更好地发展和优化业务流程,促进企业与合作伙伴的业务需要,也使供应商和客户之间的运作流程能够做的端到端的整合,让企业可以快速灵敏地响应客户和市场不断变化的需求,实现随需应变业务。第二章面向服务的体系结构SOA实践实践SOA需要四方面的工作需要四方面的工作 企业组织及服务监控(Governance)1以服务为定义的业务流程(Process)2IT系统和业务流程的
21、配合(Align IT with business)3企业建模及系统架构(Architecture)4第二章面向服务的体系结构SOA SOA技术的成熟,为建设灵活,基于标准的IT基础设施提供了明确的答案。企业如何才能有效实现SOA策略?这是很大的挑战和充满了潜在的障碍。第二章面向服务的体系结构SOA 企业不需要马上全部采用或大量修改现有的IT基础,使用服务来完全代替它们。而应当优先选择利用服务接口解决最紧迫的集成问题,然后逐步扩展范围,封装出更多面向服务的业务流程,稳定地把公司转型为随需应变企业。第二章面向服务的体系结构SOA流程排演技术流程排演技术 一个业务过程是指一套以特定的顺序被调用来实
22、现某个商务目标的商务活动流。业务过程定义了流的顺序、如何处理外部事件、如何与人交互和条件判断。第二章面向服务的体系结构SOA业务过程模型业务过程模型 第二章面向服务的体系结构SOA一个业务过程的组成部分一个业务过程的组成部分过程数据(信息模型)1活动和服务(服务模型)2过程参与者(组装模型)3第二章面向服务的体系结构SOA过程数据(信息模型)l 消息:服务之间交互的请求/响应信息。l 业务实体和对象:定义消息成员的类型,包含数据的组成和处理方法 第二章面向服务的体系结构SOA活动和服务(服务模型)业务服务:业务过程的每个活动结点都对应一个服务执行步,这些服务可以是企业内部的J2EE服务、Mai
23、nframe访问服务或数据库访问服务,也可以是企业的业务伙伴提供的外部应用服务。第二章面向服务的体系结构SOA过程参与者(组装模型)l 业务伙伴:具有某种业务角色的服务提供者。在这里,我们将业务过程中的所有服务提供者都称为业务伙伴。例如企业内部的帐务系统、CICS系统、零售系统的企业外部供应商系统等。业务过程与服务提供者的交互选用Web Services的标准接口。第二章面向服务的体系结构SOA过程参与者(组装模型)l 终端用户:以特定角色参与业务过程的人员,例如审计员、施工人员、管理员等。l 角色:业务伙伴具有唯一的业务角色;而终端用户的角色,可以对人员操作进行授权和管控。第二章面向服务的体
24、系结构SOABusiness Process Execution Language 目前实现这种业务过程的标准就是Business Process Execution Language(BPEL)。第二章面向服务的体系结构SOABusiness Process Execution Language BPEL是一种描述业务过程和业务交互方式的语言,扩展了Web Services的交互模型,使之能够支持商务交易,并且将Web Services接口层的关系结构封装在partner link中。总之,BPEL定义了一种业务基础模式,提供了更高程度的企业内部和企业之间的B2B的业务整合的自动化。第二章面
25、向服务的体系结构SOAIBM的产品的产品 对于构建、配置和运行这些基于SOA的应用和业务过程,IBM推出了:WebSphere Business Integration Modeler(WBI Modeler)WebSphere Business Integration Server Foundation(WBI-SF)WebSphere Studio Application Integration Edition(WSAD-IE)第二章面向服务的体系结构SOA 用于业务建模的WBI Modeler、用于开发的WSAD-IE和用于运行、监控业务过程的WBI-SF和WBI Server相配合,形
26、成了下一代的业务集成平台,是现存的IT资产的扩展和整合最优化。第二章面向服务的体系结构SOAWBI-SF WBI-SF建立在WebSphere Application Server(WAS)的基础上,提供Java、J2EE和基于Web Services技术的应用平台,可以为随需应变的动态e-Business配置企业级Web Services解决方案。第二章面向服务的体系结构SOAWBI-SF的优势的优势 WBI-SF代表了IBM构建和配置SOA应用的趋势。支持可重用服务的创建,这些服务可以是新的也可以是基于那些现存的服务、后台系统、Java资产和封装的应用构建的。服务可以随意组合形成混合应用和业务过程,从而可以更多地利用业务规则来使这些应用和业务过程具有很好的可用性和可适应性。第二章面向服务的体系结构SOAWSAD-IE WSAD-IE为开发和测试基于BPEL的业务过程提供了必要的支持,特别是通过它的业务基础工具 第二章面向服务的体系结构SOAWSAD-IE的优势的优势 WSAD-IE提供了图形化的过程编辑器和调试器,可以帮助用户快速的构建J2EE的资源、Web Services和BPEL业务过程,并且一个活动一个活动的调试过程流。2023-2-7第二章面向服务的体系结构SOA