课程介绍课程介绍授课授课::白天白天baitian@ustc.edu.cnbaitian@ustc.edu.cn中国科技大学软件学院中国科技大学软件学院课程介绍课程介绍考试考试:50%:50%出席与课程互动出席与课程互动:20%:20%实验实验30%30%目标:1、顺利完成课程,获得学分2、通过课程学习,对SOA的基本概念和应用第一章第一章概概述述一、什么是一、什么是SOASOA??SOASOA的出现和流行,是软件技术的出现和流行,是软件技术(特别是分布计算技术)发展到一定阶段(特别是分布计算技术)发展到一定阶段的自然产物的自然产物SOA是用于大型分布式系统的概念●●案例一:网络购物案例一:网络购物网络购物顶层业务模型网络购物顶层业务模型网购网购订单订单销售商销售商工厂工厂支付宝支付宝物流公司物流公司下订单下订单清单清单浏览浏览支付支付支付支付确认支付确认支付确认支付确认支付订单订单交货交货发货发货11、问题引入、问题引入面临的问题:面临的问题:●●复杂性不一致复杂性不一致●●业务与业务与ITIT的不一致的不一致●●已存在的遗产软件已存在的遗产软件●●异构问题异构问题●●生命周期的问题生命周期的问题●●参与者(所有者)的问题参与者(所有者)的问题●●灵活性问题灵活性问题●●冗余问题冗余问题以上为大型分布式系统共有的问题以上为大型分布式系统共有的问题22、计算环境的演变、计算环境的演变●●主机主机时代。时代。●●客户客户//服务器计算环境。服务器计算环境。●●基于基于多层架构和中间件的分布式计算环境。多层架构和中间件的分布式计算环境。●●面向面向服务的计算环境。服务的计算环境。主机时代几乎所有的计算功能和系统的组成部分,都包括在一台机器里,很多人分时的共同使用一台计算机。各个主机之间的数据、功能很难共享和相互调用。客户/服务器计算环境在20世纪80年代,随着PC的繁荣,计算环境发生很大的变化。通过局域网相互连接的计算设备构成客户/服务器计算环境,计算资源和数据资源被适当地分割,客户和服务器通过网络协议、远程调用或消息等方式来相互协作,完成计算。基于多层架构和中间件的分布式计算环境为了更高的可伸缩性,数据和计算功能分布在多台计算机,同时与原有计算环境的集成也变得很重要。计算环境间的交互,也从相对低层的网络协议、远程调用和消息机制发展到支持分布式对象、组件和接口之间的交互,这种交互在名字服务(NamingService)等的支持下,通常是位置透明的。但由于缺乏普遍的标准化支持,很难做到技术透明,系统是紧耦合的。中间件分布式对象面向服务的计算环境基于标准、开放的互联网技术,以服务为中心的计算环境。△Internet的发展△开放和标准的网络协议的普遍支持△XML与WebService等技术的成熟分布计算技术的发展33、什么是服务、什么是服务现实世界中的服务现实世界中的服务商品消费中心商品提供者购买商品提供商品商品消费者服务注册中心服务提供者服务消费者发现服务发布服务使用服务•服务提供者:–一个可通过网络寻址的实体,它接受和执行来自使用者的请求。–它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。•服务使用者:–一个应用程序、一个软件模块或需要一个服务的另一个服务。–它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。–服务使用者根据接口契约来执行服务。•服务注册中心:–服务发现的支持者;–它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。服务是整个SOA实现的核心。SOA的基本元素是服务,SOA指定一组实体,这些实体详细说明了如何提供和消费服务。这些服务是可互操作的、独立的、模块化的、位置明确的、松耦合的并且可以通过网络查找其地址。服务就是业务功能的IT体系服务和业务流程一个服务的集合,可以按照特定的顺序并使用一组特定的规则进行调用,以满足业务要求;业务流程本身也看作是服务,这样就产生了业务流程可以由不同粒度的服务组成的观念。网购网购订单订单支付支付确认支付确认支付销售商销售商支付宝支付宝浏览浏览工厂工厂物流公司物流公司组合服务组合服务服务服务清单清单订单订单下单下单发货发货支付支付确认支付确认支付交货交货•服务可独立存在:接口和实现可分离的。服务隐藏了服务实现内部复杂逻辑和技术。•服务可独立存在:接口和实现可分离的。服务隐藏了服务实现内部复杂逻辑和技术。•服务是精确定义的契约。•服务是精确定义的契约。•服务之间是松散耦合的,服务之间通过消息交互。•服务之间是松散耦合的,服务之间通过消息交互。基于服务可在业务层进行建模,从而支持顶层设计。并且,在服务实现之前就可对顶层架构进行验证。基于服务可在业务层进行建模,从而支持顶层设计。并且,在服务实现之前就可对顶层架构进行验证。毕业管理毕业管理实习实习成绩管理成绩管理实习实习管理部门管理部门论文论文计算成绩计算成绩查询单查询单成绩成绩论文论文确认确认确认确认情况查询情况查询是否合格是否合格情况查询情况查询是否合格是否合格44、面向服务架构、面向服务架构--SOA(SoftwareSOA(Software--OrientedArchitectureOrientedArchitecture))●●狭义观点:认为狭义观点:认为SOASOA主要是一种架构风格主要是一种架构风格●●广义观点:认为广义观点:认为SOASOA是包含运行环境、编程是包含运行环境、编程模型、架构风格和相关方法论在内的一整套新的的分模型、架构风格和相关方法论在内的一整套新的的分布式软件系统构造方法和环境,涵盖服务的整个生命布式软件系统构造方法和环境,涵盖服务的整个生命周期:建模周期:建模--开发开发--整合整合--部署部署--运行运行--管理管理SOASOA关键技术概念关键技术概念●●服务服务●●高互操作性高互操作性●●松耦合松耦合它们使它们使SOASOA能处理具有前述特点的系统能处理具有前述特点的系统二、二、SOASOA参考平台结构参考平台结构1)协议转换支持异构的、已有的应用或数据包装成服务;2)采用已有的技术构建服务;3)将简单服务,组合成复杂业务功能的组合服务;4)通过流程编制,实现业务之间的交互;5)应用(展现)可以集成到企业门户中;6)服务之间的交互是松耦合、基于消息。服务的定位对于服务消费者是透明的。7)服务是可管理的;8)服务的质量是有保障的。1)协议转换支持异构的、已有的应用或数据包装成服务;2)采用已有的技术构建服务;3)将简单服务,组合成复杂业务功能的组合服务;4)通过流程编制,实现业务之间的交互;5)应用(展现)可以集成到企业门户中;6)服务之间的交互是松耦合、基于消息。服务的定位对于服务消费者是透明的。7)服务是可管理的;8)服务的质量是有保障的。服务注册企业服务总线业务流程管理服务组合企业门户服务管理Backplane烤面包箱结构•服务之间是松藕合的•服务之间可通过背板交互•通过背板管理服务•服务变化引发事件通知•平台的能力是可定制的•构建时进行定制•运行时进行升级一个面向服务设施的集成平台服务设施仓库JTSJNDIEJB ContainerEAIBPMFlowUDDIWeb ServiceBIDCOMSSOPortalWeb Server三、三、SOASOA历史与现状历史与现状SOASOA的提出的提出1996年,Gartner的研究报告中提出SOASSAResearchNoteSPA-401-068,12April1996,'ServiceOriented'Architectures,Part1SSAResearchNoteSPA-401-069,12April1996,‘ServiceOriented’Architectures,Part229SOASOA的发展的发展2002年,Gartner提出SOA是“现代应用开发领域最重要的课题”2004年初业界推出SOABea、IBM、ORACLE、微软等纷纷发布自己的SOA战略2005年,一些IT组织成功建立并实施SOA应用软件2008年Bea、IBM、ORACLE等陆续推出SOA整体解决方案30目前:回归理性和客观目前:回归理性和客观目前SOA的理念有了具体的实现技术和方案。四、四、SOASOA要素要素●基础设施是SOA中高互操作性成为可能的技术部分。SOA范畴的基础设施被称为“企业服务总线”(ESB)●架构架构决定不同类型服务和耦合程度,以及限制服务接口的数据类型,定义政策、规则和模式。理顺角色和职责,选择基础设施技术,敲定使用何种标准等●过程从业务到实现都和过程相关,所以必须建立适当过程●监管监管是所有流程的元流程,也是SOA的一个总体策略。监管----确保人们做“正确”的事情五、关于五、关于SOASOA几点说明几点说明●SOA不是具体实现技术●SOA重点是支持业务快速变化,保证IT与业务对齐●在工程上,SOA的重点是服务建模和基于SOA的设计原则进行架构决策和设计●在技术和管理之间找到平衡●没有银弹六、课程内容组织六、课程内容组织整个课程分为三个部分.第一部分介绍SOA的起源、思想、方法、参考架构和设计原则等SOA基础知识。第二部分介绍SOA的支持技术,主要包括Web服务标准、SOAP协议、WSDL规范、UDDI协议。以及BMPL和面向服务的编程模型等。第三部分综合IBM的SOA方案、开源技术,并结合前两部分所学知识在实际的问题中实践SOA.