面向服务的软件开发技术.ppt

上传人:牧羊曲112 文档编号:6034448 上传时间:2023-09-16 格式:PPT 页数:69 大小:2.35MB
返回 下载 相关 举报
面向服务的软件开发技术.ppt_第1页
第1页 / 共69页
面向服务的软件开发技术.ppt_第2页
第2页 / 共69页
面向服务的软件开发技术.ppt_第3页
第3页 / 共69页
面向服务的软件开发技术.ppt_第4页
第4页 / 共69页
面向服务的软件开发技术.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《面向服务的软件开发技术.ppt》由会员分享,可在线阅读,更多相关《面向服务的软件开发技术.ppt(69页珍藏版)》请在三一办公上搜索。

1、软件工程国家重点实验室(武汉大学)State Key Lab of Software Engineering,面向服务的软件开发技术,贾向阳jxy,2010年10月7日,提纲,什么是SOA,什么是SOA由Gartner Group于1996年提出 SOA is a software architecture that starts with an interface definition and builds the entire application topology as a topology of interfaces,interface implementations and int

2、erface calls.SOA would be better-named interface-oriented architecture.,Service Oriented Architectures,Part 1,SSA Research Note SPA-401-068,12 April 1996 Service Oriented Architectures,Part 2,SSA Research Note SPA-401-069,12 April 1996,什么是SOA,OASIS的观点 SOAs support thinking and organizing in terms of

3、 services with distributed capabilities which may be under the control of different ownership domainsis an architectural style as well as a paradigm for business and IT architecture.,面向服务软件体系结构的特征,1)特殊的构造单元服务服务的抽象性(基于接口的编程)服务是实际程序、数据库、业务过程等软件实体的抽象了的逻辑视图。实现平台透明性服务的自治性(实现分布式应用)You dont“new”a service i

4、ts just there.服务的自描述性(支持动态发现与延迟绑定)服务具有可发布、可发现、机器可处理的接口契约服务的粗粒度(支持基于业务逻辑的积木式装配),面向服务软件体系结构的特征,2)连接与交互方式松耦合式绑定,基于标准化消息进行通信松耦合式绑定通过接口和契约进行绑定,服务提供者组件的变化不影响服务的使用者组件。可以动态发现服务,实现延迟绑定基于标准化消息进行通信标准化的通信协议,一般是基于XML的,如Web服务调用时的SOAP消息,ESB内部使用的NM消息等。实现高度的互操作性,Service Requester,Service Broker,Service Provider,面向服务

5、软件体系结构的特征,3)拓扑结构,Service,service description,service description,service description,publish,find,bind,面向服务软件系统的层次结构,面向服务的软件开发方法,开发范型的变迁结构化程序设计面向对象的软件开发基于组件的软件开发面向服务的软件开发从单机系统、分布式系统、异构分布式系统,软件的规模和复杂度逐步提高,模块耦合度逐步降低,面向服务的软件开发方法,面向服务软件开发的特点两个视图:服务提供者视图:关心服务如何实现、封装、发布、管理服务消费者视图:关心服务如何组合满足业务需求面向重用的开发Deve

6、lopment for reuseReuse-based Development业务敏捷的开发快速构建适应变化,面向服务的软件开发方法,面向服务的软件开发方法,已有的面向服务软件开发方法IBM:Service-Oriented Analysis and Design(SOAD)IBM:Service Oriented Modeling and Architecture(SOMA)SUN:SOA Repeatable Quality(RQ)CBDI:CBDI-SAE ProcessKunal:Service Oriented Unified Process(SOUP)Abdelkarim Err

7、adi:Service Oriented Architecture Framework(SOAF),4.面向服务的软件开发范型,提纲,3.Web服务编程技术,已有的SOA实现方案CORBA早期的实现技术,因过于复杂,应用较少。Web Service应用范围:EAI、面向网络的分布式应用OSGI应用范围:基于Java的单虚拟机内的应用JINI应用范围:网络设备的嵌入式应用,Web服务,W3C的“Web Service”定义a software system designed to support interoperable machine-to-machine interaction over

8、a network.It has an interface described in a machine-processable format(specifically Web Services Description Language WSDL).Other systems interact with the Web service in a manner prescribed by its description using SOAP messages,typically conveyed using HTTP with an XML serialization in conjunctio

9、n with other Web-related standards,Web服务技术的基本协议,SOAP(Simple Object Access Protocol)Lightweight(XML-based)protocol for exchange of information in a decentralized,distributed environmentWSDL(Web Service Description Language)XML format that describes the web serviceUDDI(Universal Description Discovery

10、and Integration)Like yellow pages of Web services,Web服务几个相关概念,WSDL协议,WSDL 是服务提供者和服务请求者之间的契约WSDL 文档描述了What the service can doWhere it residesHow to invoke it,Types,Message,Operation,Port Type,Binding,Port,Service,WSDL,WSDL elements,SOAP协议,SOAP 是一种基于XML的一个轻量级(XML-based)协议,用以在非集中的分布式环境中交换信息.SOAP 定义了消息格

11、式SOAP 与具体的传输协议无关,SOAP消息示例,Luqman,Hello Luqman,Request,Response,UDDI协议,UDDI 是一系列规范,用来发布Web服务的描述信息,并支持服务的发现。UDDI Registry 是存放Web服务相关信息的目录库UDDI 使用SOAP 协议进行通信.,公司的名称和相关属性,业务相关信息,Web服务的相关信息,3 levels of information in UDDI,White Pages,Yellow Pages,Green Pages,UDDI协议,RESTful web services,REST(Representatio

12、nal State Transfer)从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表形。获得这些表形致使这些应用程序转变了其状态。随着不断获取资源的表形,客户端应用不断地在转变着其状态,所谓表形化的状态转变-wikipediaREST是一种设计风格,其主要特征为:资源是由URI来指定。对资源的获取、创建、修改和删除正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。通过操作资源的表形来操作资源。资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。

13、,RESTful web services,RequestGET/india/hyd/employees/1234 HTTP/1.1Host:Accept:application/xmlResponseHTTP/1.1 200 OKDate:Tue,09 Feb 2010 11:41:20 GMTContent-Type:application/xml;charset=UTF-8,Method,Resource,RESTful web services,REST的优势可以利用缓存Cache来提高响应速度通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性浏览器即

14、可作为客户端,简化软件需求相对与其他叠加在HTTP协议之上的机制,REST的软件依赖性更小不需要额外的资源发现机制在软件技术演进中的长期的兼容性更好,Web Service 标准和技术体系,Web Service 标准和技术体系,CBDI的Web Service 协议栈,已有的Web服务容器,已有的Web服务容器Apache Axis 1.x(java)Apache Axis 2.x(java,C+)Apache CXF(java).NetgSoap(C/C+),提纲,信息集成的层次,数据层集成集中的数据视图、统一的数据管理服务层集成实现异构系统接口的虚拟化实现资源共享、以及系统的互联互通流程

15、层集成实现业务流程的编排,实现多系统的协同工作。,2.技术方案,常规方案:ESB(企业服务总线):实现数据、系统接口的服务化实现各种通信协议的适配实现消息的路由转换过滤BPEL引擎:实现流程的编排与执行、跨域系统的协同共享MQ实现数据的可靠传递和交付可选方案基于EIP的集成中间件:轻量级的消息路由、中介软件(如Camel)SCA:实现协议适配、服务的组合SDO:实现异构数据的统一访问,ESB(企业服务总线),ESB(企业服务总线),ESB(企业服务总线),ESB的好处,ESB(企业服务总线),ESB的功能,ESB(企业服务总线),ESB的主要优势预定义的ready-for-use的服务类型更多

16、地通过配置而不是编码实现集成动态部署和修改,zero down-time适合各种规模系统,从小系统到企业级部署基于标准对已有系统快速、低代价的整合灵活适应需求变更,JBI(Java业务集成)标准,JBI(Java业务集成)JCP的标准JSR 208(JBI1.0),JSR 312(JBI1.0)插件式的ESB架构标准可以动态地安装、卸载以及启停JBI组件。JBI组件:提供服务或者消费服务的软件实体组件之间采用标准化的消息进行通信:Normalized Message组件间不直接通信,而是通过Normalized Message Router(NMR)完成消息的中介。,JBI(Java业务集成)

17、标准,JBI组件:Binding Component(BC):负责与ESB外部的系统进行交互,实现协议适配和消息的normalize/denormalizeService Engineering(SE):提供业务逻辑或者消息处理的容器,不直接与ESB外部交互,如果需要交互,需要将消息发送给相应的BC,JBI(Java业务集成)标准,集成应用程序的形式服务单元:由配置文件、脚本、程序等构成的软件单元可以被部署在特定JBI组件中,使组件可以提供服务或者消费服务。服务组合件:由多个相关的服务单元构成的部署包,JBI(Java业务集成)标准,41,工程管理系统,设备管理系统,项目管理系统,预算管理系统

18、,合同采购管理系统,财务管控系统,OA系统,用电营销系统,人力资源管理系统,SAP 组件,HTTP组件,FILE 组件,Camel组件,物资查询服务,购买设备服务,预算控制服务,合同结算服务,档案服务,集成脚本,一个示例:基于绑定组件,将各种业务系统发布为服务;通过Camel组件,执行服务路由脚本,实现服务之间的交互。,已有的ESB产品,商业产品IBM的三款ESB产品侧重于多协议适配和消息转换的WebSphere ESB侧重于J2EE平台架构的WebSphere Message Broker侧重于数据安全的DataPowerTIBICO:EMSOracle:收购BEA后,原AquaLogic

19、Service Bus整合到SOA Suite中金蝶中间件:Apusic ESB开源产品MuleSoft:muleSUN:Open ESB(JBI)Apache:ServiceMix(JBI)、SynapseJBOSS:JBOSS ESBOW2 PEtALS(JBI),提纲,面向服务的组件,面向服务的组件将面向服务的概念引入组件模型中,支持松耦合的面向服务应用软件的开发服务是组件提供的一种功能,其特征由服务契约定义组件是服务的提供者,负责服务契约的实现,同时也可以作为服务的消费者,调用其他组件提供的服务。组件之间的交互通过服务调用完成,遵循面向服务的交互模型,通过静态绑定服务或者在服务注册中心

20、动态发现并绑定服务进行交互,Cervantes H,Hall R S.Autonomous adaptation to dynamic availability using a service-oriented component modelC.In:Proceedings-26th International Conference on Software Engineering,ICSE 2004,May 23,2004-May 28,2004.Edinburgh,United kingdom,2004.614-623.,面向服务的组件,已有的面向服务组件技术SCA(Service Comp

21、onent Architecture)给出了服务组件的模型及其编程规范OSGIR4版中提出SOCM模型目前主要用于单机JAVA应用程序的开发,服务组件架构SCA,服务组件架构SCASCA由Open Service Oriented Architecture collaboration 提出的一种组件化的面向服务编程模型,并于2007年正式捐献给OASIS组织。目前,还只出了部分规范的草案。SCA提供了服务组件模型、装配模型和策略框架来支持各种异构应用的封装和集成.同SCA并列提出的SDO规范,定义了SOA应用程序中访问各种异构数据源的方法。组件可以以各种不同的协议发布服务,包括SOAP、RMI

22、、REST、JMS,甚至可以是虚拟机内的对象直接调用。组件可以使用多种技术实现,包括EJBs,Java POJOs,BPEL process,COBOL,C+,PHP,SCA的好处跨平台、跨语言组件可以自由替换,软件具有高度的弹性以适应变化服务可以通过简单的配置进行发布和调用提供了组件的装配规范,可以快速高效组装应用程序可以适用于各种规模的软件开发SCA的前景SOA在目前主要用于信息集成领域,在企业应用软件开发中,能够全面采用SOA架构的并不多见。SCA的出现,使得SOA能够适用于各种类型的软件开发中,因此被看做SOA真正能够落地的关键技术。虽然目前并不完善,但将具有很好的前景。,服务组件架构

23、SCA,服务组件架构SCA,SCA 规范的内容,Assembly Model定义了组件装配语言SCAL,以支持服务组件的装配Component Implementation specifications定义了使用各种技术开发SCA组件的规范包括Java,Spring,C+,BPEL,PHP实现技术规范Binding specifications定义了组件的服务绑定规范包括Web services,JMS,RMI-IIOP,REST等Policy Framework定义了对组件的安全、事务、可靠性相关的策略配置规范,服务组件架构SCA,Warehouse Service,WarehouseCom

24、posite,WarehouseBrokerComponent,WarehouseComponent,EventLogComponent,Order Processing Service,OrderProcessingComponent,EventLog Reference,External Warehouse Reference,PaymentsComponent,PaymentService,AccountsComposite,ExternalBankingReference,AccountsLedgerComponent,Example SCA assembly,服务组件架构SCA,Ex

25、ample,服务组件架构SCA,AccountServiceComponent EURO,已有的SCA平台,商业产品IBM:WPS、ESB以及WAS中都提供了SCA的支持。Oracle Web Services开源产品Apache:TuscanyCodeCauldron:Newton,OSGI,单Java虚拟机内的面向服务组件技术 OSGIOSGI(Open Service Gateway Initiative)是一个轻巧的、松耦合的、面向服务的应用程序开发框架基于OSGI框架运行在同一个Java虚拟机中,提供了可动态配置的、插件式的系统架构。Eclipse 3.0 以后的版本,采用了OSGI

26、框架作为其系统架构,从性能、可扩展性、以及对二次开发的支持,都取得巨大的成功。,OSGI,应用程序的模块被称为Bundles,框架为Bundles提供了类加载,生命周期管理,服务注册等服务。Bundles中可以定义组件以及组件提供的服务。服务可以在OSGI的服务注册中心注册。当其他bundles调用服务时,可以在服务注册中心中动态查找并匹配从而完成调用。,OSGI的优点:可动态拔插的松耦合的系统架构OSGI是一个微核的、稳定高效的系统。可复用性强,已有的OSGI实现,开源产品EquinoxFelixSpring-DM,提纲,面向服务的工作流,BPM(业务过程管理)是面向服务开发中的重要方法学体

27、系支持Web服务的工作流技术BPELXPDL,业务流程执行语言BPEL,业务流程执行语言BPEL面向服务的工作流语言,通过对服务的组合/编排,实现业务流程已成为OASIS的正式标准,目前是2.0版本。,业务流程执行语言BPEL,BPEL的语言成分,BPEL的语言成分,Partner link与外部合作伙伴的会话通道Partner link type 描述了提供或者调用的服务的portTypesVariables,Properties and Correlation用来使用无状态的Web服务接口,标示有状态的流程实例,BPEL的语言成分,Basic Activities,Structured A

28、ctivities,活动的嵌套,Scopes and Handlers,BPEL与XPDL对比,与XPDL语言相比,BPEL语言有:结构化的工作流语言,包括顺序、分支和各种流程控制方式。数据流和数据操作:可以定义变量,支持各种运算较强的XML处理能力与Web Service的交互,如invoke、receive、reply等异常处理,包括错误条件,事务和补偿。与XPDL语言相比,BPEL不含绘图相关信息没有角色、任务分配等概念,尚不能直接支持人工处理不直接支持子流程,但可以将其他流程当做服务调用目前,BPEL得到IBM、Oracle等大公司的支持,发展前景看好。XPDL是相对比较成熟的技术,在国内使用较多,但业界的支持力度逐渐变小,有没落迹象。,已有的BPEL引擎,商业产品IBM WebSphere Process ServerOracle BPEL Process Manager Microsoft BizTalk ServerCape Clear OrchestratorFiveSight Process eXecution Engine(PXE)开源产品Active Endpoints:ActiveBPELSUN:SUN BPELJBOSS:JBPM BPELApache:ODETwister,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号