




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向服务的软件工程何扬帆2015-11-042概念和背景面向服务的架构SOA服务案例服务开发方法云计算语义Web服务高级专题提纲3什么是服务?Web服务的定义[W3C]:
Web服务(Webservice)应当是一个软件系统,用以支持网络间不同机器的互动操作。
Web服务是一个用URI(UniformResourceIdentifier)标识的软件实体,其接口和绑定可以用XML协议定义、描述和发现。
Web服务通过Internet协议以基于XML消息,以松散耦合的方式与其它软件实体或Web服务直接通讯。Web服务的兴起Web服务作为一种新兴起的技术,被称为继
PC
和
Internet
之后的第三次计算机革命Web服务
利用标准的
Internet
协议(如
HTTP,SMTP
等),解决了面向
Web
的分布式计算的通信问题,而传统的分布式模型解决的是特定平台下的通信问题。Web服务具有完全的平台独立性和语言独立性,只要遵守
Web
Service
的接口即可进行服务的请求和调用。4Web服务的主要思想以后的应用将由一组在线服务组合而成。两个相似的服务使用统一的标准和方法在网络上发布,一个信息应用就可以按照代价或性能的标准,从这两个相互竞争的候选服务中选择一个服务来使用。服务允许在机器间复制,可以通过将特定的服务复制到本地存储库,从而提高位于特定的计算机(群)上的应用程序的性能.5Web服务的本质从表像上看,Web服务就是应用程序,它向外界暴露出一个能够通过Web访问方式进行调用的服务接口。从应用程序的角度上看,Web服务是一种新的Web应用程序,是自包含、自描述、模块化的应用程序,可以通过互联网特别是Web方式来描述、发布、查找和调用。6发展脉络—前期互联网一个以协议为主的交互世界
底层网络协议和简单的内容传输协议:“桶”到“桶”之间的交换,不触及“桶”中的内容很少触及7发展脉络—当前互联网一个以“文档的对象化”形式主导的交互世界O-本体(论域中的标准化概念)Service(instance)-(对象)Serviceschema-知识模式(类)Controlled-vocabulary受控词集(人或机器理解的含义)8发展脉络—今后互联网一个以价值为导向的交互世界9未经整合、低价值的资源经过整合、高价值的服务Web服务特征完好的封装性。服务是一种部署在Web上的对象,自然具备对象的良好封装性,对于使用者而言,能且仅能看到该对象提供的功能列表。松散耦合:当一个Web服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要服务的调用接口不变,服务实现任何变更对他们来说都是透明的。使用标准协议规范:作为Web服务,其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范,以便由任意方进行实现。高度可集成能力:由于服务采取简单的、易理解的标准协议作为组件接口描述规范和协同描述规范,完全屏蔽了不同软件平台的差异。10Web服务优势高度的通用性和易用性:Web服务利用标准的Internet协议(如HTTP,SMTP等),解决了面向Web的分布式计算模式,提高了系统的开放性、通用性和可扩展性。完全的平台、语言独立性:Web服务进行了更高程度的抽象,只要遵守Web服务的接口即可进行服务的请求与调用。高度的集成性:Web服务实质就是通过服务的组合来完成业务逻辑的,因此,表现出了高度的组装性和集成性.容易发布和部署:Web服务体系结构方案通过UDDI,WSDL,SOAP等技术协议,能够很容易实现系统的部署.11Web服务架构栈12(1)(2)(3)(4)13提纲面向服务的架构SOASOA(Service-OrientedArchitecture)起源SOA不是一个新概念,通用对象代理架构CORBA和分布式组件对象模型DCOM被看成是SOA架构的前身。1996年,GartnerGroup提出了SOA“预言”(到2008年,超过60%的企业将使用SOA作为一个“指导原则”),因为当时的软件发展水平和信息化程度还不足支撑此概念进入实质性的应用阶段。SOA可以认为是面向对象分析与设计(OOAD)的合理发展;也是电子商务解决方案中,在体系结构、系统设计、实现与部署时所采用的组件化方法的合理发展。14SOA兴起原因(计算部件的对象化趋势)分布式系统的自然发展系统与运算环境的异质性操作环境的动态性交流设备细节的透明化面向过程需要多重服务15GartnerGroup关于SOA的最初概念客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成。SOA与大多数通用的客户端/服务器模型的不同之处,在于它强调软件组件的松散耦合,并使用独立的标准接口(对象化趋势)16SOA的当前定义[W3C]SOA的定义:SOA是组件的集合,这些组件能被调用,并且接口的描述可以发布和发现。[维基百科]SOA的定义:SOA是构造分布式计算的应用程序的方法。它将应用程序功能作为服务发送给最终用户或者其它服务。它采用开放标准、与软件资源进行交互并采用标准的表示方式。17SOA的当前定义(续)当代SOA代表一个开放的、敏捷的、可扩展的、可联邦的、可组合的架构,包含了自治的、高服务质量的、厂商多样性的、可互操作的、可发现的和潜在可复用的服务,使用Web服务来实现。 ——ThomasErl 《SOA概念、技术与设计》18普遍接受的SOA架构19W3C发布的Web服务架构基本两种基本角色(服务提供者和服务请求者)和一个可选的服务注册中心.三种角色交互,涉及发布、发现、绑定操作.SOA架构中的角色服务提供者(serviceprovider):发布自己的服务,并且使用自身服务的请求进行响应.服务代理(servicebroker):可选.注册与发布服务及其提供者,对其进行分类,并提供搜索服务.服务使用者(servicerequester):利用服务代理来查找所需服务,进而根据需求使用该服务.20SOA架构中的操作发布(publish):使服务提供者可以通过向服务代理注册自己的功能及访问接口.查找(find):服务使用者可以通过服务代理查找特定的服务.绑定(bind):使服务使用者能够调用或激活服务.21SOA架构特点服务的封装(encapsulation).将服务封装成用于业务流程的可重用组件的应用程序函数.服务的互操作(interoperability).通过服务之间既定的通信协议进行互操作,SOA提供服务的互操作特性更利于其在多种场合被重用(“服务”(组织和交互方式)这种抽象协议).服务是位置透明的(locationtransparency).服务请求者不需要知道服务的具体位置及是哪一个服务响应了自己的请求.22SOA架构特点(续)服务的重用(reuse).一个服务是一个独立的实体,与底层实现和用户的需求完全无关,极大的方便了服务的重复使用,从而降低了开发成本.服务是自治(autonomous)的功能实体.服务是由组件组成的组合模块,是自包含和模块化的.服务之间的松散耦合(looselycoupled).服务请求者和服务提供者之间只有接口上的往来,至于服务内部如何更改,如何实现都与服务请求者无关23SOA与Web服务的联系与区别SOA是一套面向服务架构的标准规范;Web服务是一套技术体系,可以用来建立应用解决方案,解决特定的消息通信和应用集成问题。SOA是一种软件架构,不局限于某个技术的组合(例如Web服务)。SOA和Web服务是一对关联技术。24传统WebService互操作的核心技术WebService的核心技术主要包括SOAP、WSDL和UDDI。这三大部分代表了Webservice体系中的三个层次,分别是:传输层、描述层和发现层。25SOAP(简单对象访问协议)26SOAP是一种在分布式环境中进行信息转换的轻量级协议。作为一种不依赖传输协议、用于在应用程序之间以对象的形式交换数据的表示层通信协议,SOAP是WebServices的核心。主要特征扩展性(Extensible)。SOAP定义了一个框架,允许例如安全、路由和可靠性等特性作为分层扩展添加进来互操作(Interoperable)。SOAP允许使用任何传输协议传输数据。独立(Independent)于编程模型。SOAP采用XML文本格式,因此可以独立于各种编程语言和平台。SOAP信息交换模式SOAP消息交换模式(MEP)是指如何根据通信的需要将多条消息组合成一条整体的消息交换的抽象描述。四种模式:请求-响应消息交换模式
一个SOAP节点向另一个SOAP节点发送的包含SOAP信息的请求,另一个节点返回包含SOAP消息的响应27SOAP信息交换模式(续)单一响应消息交换模式
一个SOAP节点向另一个SOAP节点发送的请求不包含任何SOAP信息,而期望对方返回SOAP消息。SOAPWeb方法特性
请求-响应模式和单一响应模式可一起使用,SOAP节点间互相交流一些额外信息以表示Web方法的名字。SOAPAction特性
请求响应模式和单一响应模式可一起使用,SOAP节点间互相交流一些额外信息以表示其激活标志。28SOAP信息交换29ServiceBrokerServiceConsumerServiceProviderhttp
SOAPmessageWSDLdescribingserviceSOAPmessagehttpclientserviceregistryfindpublishDESCRIBEINVOKESOAPSenderSOAPReceiverSOAPSenderSOAPReceiverrequestresponseSOAP协议组成SOAP由4部分组成:SOAP信封(SOAPEnvelope)构造定义了一个整体的表示框架,可用于表示在消息中的是什么谁应当处理它是“可选的”还是“强制的”SOAP编码规则(SOAPEncodingRules)定义了一套编码机制用于表示应用程序交换的数据实例SOAPRPC表示(SOAPRPCPresentation)用于表示远程过程调用和响应的约定SOAP绑定(SOAPBinding)底层传输协议,用以表示节点间交换的SOAP信封的约定。30SOAP信息格式31SOAPBodySOAPheaderSOAPenvelopeHeaderblockHeaderdataHeaderdataHeaderdataBodychildelementBodychildelement<env:Envelopexmlns:env="/2003/05/soap-envelope"><env:Header>
<n:alertcontrolxmlns:n="/alertcontrol">
<n:priority>1</n:priority>
<n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol>
</env:Header><env:Body>
<m:alertxmlns:m="/alert">
<m:msg>PickupMaryatschoolat2pm</m:msg>
</m:alert>
</env:Body></env:Envelope>
32SOAP编码SOAP编码:将数据的值编码为XML格式对于应用中所定义的数据结构和值,SOAP可以将其转换为由节点和带有标签的边组成的图,称为数据模型,并进而通过SOAP编码规则将SOAP数据模型转换为XML格式。33SOAPRPCSOAP远程过程调用信息描述了方法的请求或者方法的回复。SOAPXML文档在服务器端转换成方法调用,调用后的结果将编码成为XML文档返回给服务请求者。34SOAP请求35目标对象的URI方法的参数方法名SOAP响应36方法名目标对象的URI返回的结果SOAP协议绑定SOAP可在任何传输协议上使用,并提供了一种用于定义任意协议绑定的灵活框架。HTTP使用极为广泛,也是SOAP协议绑定对象的首选。37HTTP请求与回应38POST
/Accounts/Henrik
HTTP/1.1
Content-Type:text/xml;charset="utf-8“
Content-Length:nnnn
SOAPAction:"/MyMessage"
<SOAP:Envelope...
HTTP请求HTTP回应HTTP/1.1200Ok
Content-Type:text/xml;charset="utf-8“
Content-Length:nnnn
<SOAP:Envelope...
HTTP请求方法HTTP协议版本HTTP请求资源资源的文本类型以及编码格式、长度SOAPActionHTTP请求头字段(指示SOAPHTTP请求的目的,它的值是一个标识该目的的URI)SOAP信息2XX状态码表示成功返回SOA架构
39WSDLWSDL(Webservicesdescriptionlanguage)是以XML格式来描述Web服务接口,指定Web服务的位置、操作方法等信息的描述语言。使用者使用WSDL就可以使用Web服务,而不必关心服务的实现细节。40WSDL构成元素WSDL文档包含7个关键的构成元素:<definitions><types><message><operation><portType><binding><port><service><types>、<message>、<operation>和<portType>元素是抽象定义,与具体的WebService部署细节无关,可以被重用;而<binding>、<port>和<service>元素是WebService的具体描述,其中定义了WebService的技术细节41WSDL文档结构示例代码:WeatherWebService.wsdl是天气预报WebService的WSDL文档,具体含义分析如下:
<definitions>
该元素用来定义WSDL文档的名称,引入需要的XML命名空间42<definitionsname="Weather" xmlns="/wsdl/" xmlns:soap="/wsdl/soap/"
xmlns:tns="/Weather/" xmlns:xsd="/2001/XMLSchema"
targetNamespace="/Weather/"><types>元素规定了与消息相关的数据类型的定义
43<types><xsd:schematargetNamespace="/Weather/">
<xsd:elementname="WeatherRequest"><xsd:complexType><xsd:sequence><xsd:elementname="city"type="xsd:string"/><xsd:elementname="date"type="xsd:date"/></xsd:sequence></xsd:complexType></xsd:element><xsd:elementname="WeatherResponse"><xsd:complexType><xsd:sequence><xsd:elementname="temperature"type="xsd:int"/><xsd:elementname="humidity"type="xsd:int"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></types><message>
<message>(消息)元素定义了传递的消息的数据结构<portType>
<portType>(端口类型)元素是抽象操作和抽象消息的组合44<messagename="getWeatherRequest"> <partelement="tns:WeatherRequest"name="parameters"/></message><messagename="getWeatherResponse"> <partelement="tns:WeatherResponse"name="parameters"/></message><portTypename="Weather"> <operationname="getWeather"> <inputmessage="tns:getWeatherRequest"/> <outputmessage="tns:getWeatherResponse"/> </operation></portType><binding>
<binding>(绑定)元素用来具体化<portType>元素,其中定义了<portType>元素中的操作和消息的格式与协议等45<bindingname="WeatherSOAP"type="tns:Weather"> <soap:bindingstyle="document" transport="/soap/http"/> <operationname="getWeather"> <soap:operation
soapAction="/Weather/getWeather"/> <input> <soap:bodyuse="literal"/> </input> <output> <soap:bodyuse="literal"/> </output> </operation></binding><service>
<service>(服务)元素指定了WebService的位置。一个<service>元素可以包含多个<port>(端口)元素,端口的集合构成了service。weather.wsdl中的<service>元素如下:46<servicename="Weather"> <portbinding="tns:WeatherSOAP"name="WeatherSOAP">
<soap:addresslocation="/"/> </port></service>WSDL绑定WSDL绑定可为webservice定义消息格式和协议细节。WSDL规范中定义了3种绑定扩展:SOAP绑定HTTPGETPOST绑定MIME绑定其中SOAP绑定是最常用的一种方式。47SOAP绑定48<binding
name="WeatherSOAP"
type="tns:Weather"> <soap:binding
style="document" transport="/soap/http"/> <operationname="getWeather"> <soap:operation soapAction="/Weather/getWeather"/> <input> <soap:bodyuse="literal"/> </input> <output> <soap:bodyuse="literal"/> </output> </operation></binding>绑定名,命名空间不重复指出绑定是针对SOAP协议格式的指出操作是面向RPC(消息包含参数和返回值)的还是面向文档的(消息包含文档)使用的SOAP协议指出绑定是针对SOAP协议格式的此URI应当被直接用作SOAPAction头的值给出输入、输出消息的编码为literalUDDIUDDI是通过因特网描述服务、发现服务并且集成商业服务的一个独立于平台的框架。UDDI代表着普遍化的描述、发现和集成。UDDI是一个存储Web服务的目录,使用WSDL描述Web服务接口。49四种核心数据类型businessEntity(描述发布服务组织的信息)businessService(描述服务的业务功能)bindingTemplate(描述服务的技术细节)tModel(其他各种属性)新的数据类型(2.0/3.0)publisherAssertion–描述所注册的服务之间的关系Subscription–跟踪一组实体的变更50UDDI数据结构51BusinessEntity企业码,企业名,联系方式,描述信息,
分类BusinessService服务码,企业码,服务名描述信息及分类BindingTemplate绑定码,服务码,
描述信息,描述信息,接入点tModel模型名,描述信息,
概述文档,
指向WSDL文档的指针WSDL文档外部Web服务的接口描述UDDI如何工作522)将服务的描述注册到UDDI注册中心UDDIBusinessRegistry3)
UDDI注册中心给每个实体指定一个唯一的标识符4)电子交易场所和搜索引擎等客户机与商业应用程序使用UDDI注册中心来发现它们感兴趣的服务1)软件公司、程序员等将tModel发布到UDDI注册中心5)企业调用这些服务,简便地进行动态集成注册信息53企业与服务的注册信息:白页:表示企业的基本信息,如企业的名称、经营范围描述、联系信息等。黄页:通过多种具有分类功能的分类法系统产生的类别划分,使得使用者能够在更大的范围内查找在注册中心注册的企业或者服务。绿页:与服务相关联的绑定信息,并提供了指向这些服务所实现的技术规范的引用.Web服务工作流程54JAXR(JavaAPIforXMLRegistries)WS-BPEL55WS-BPEL(WebServicesBusinessProcessExecutionLanguage)是一种基于XML来描述高层业务流程的编程语言,被描述的业务流程的每个单一步骤由Web服务实现。原名是BPEL4WS,2002年由IBM、Microsoft、BEA合作开发。2007改名为WS-BPEL。目前版本是2.0本质上是将一组Web服务整合在一起以形成一个新的Web服务。WS-BPEL基本结构<process>//流程定义的根元素 <partnerLinks>//描述业务流程与伙伴的关系 <partnerLink> .......... </partnerLink> </partnerLinks>
<variables>//通过变量表示合作伙伴间生成与传递的信息 ............ </variables> <sequence> //一组顺序执行的活动 ............. </sequence></process>56WS-BPEL建模工具和引擎ActiveEndpointsActiveBPELengineActiveBPELDesignerOracleBPELProcessManagerIBMWebSphereBusinessIntegrationServerFoundationBEAWebLogicIntegration\AquaLogicApacheODE开源WS-BPEL引擎57ApacheODE开源WS-BPEL引擎ApacheODE是一个WS-BPEL兼容的Web服务编配引擎,它可以使开发人员根据以BPELXML语法写成的过程描述来编配Web服务。58基于ApacheODE的Web服务组合59一、加法服务(Add_Service)输入double类变量a、b,输出结果a+b;二、减法服务(Sub_Service)输入double类变量a、b
,输出结果a-b;三、将这两个服务组合为一个新服务输入double类变量a、b和字符串变量c,如果c=add,输出结果为a+b;如果c=sub,输出结果为a-b;基于ApacheODE的Web服务组合60基于ApacheODE的Web服务组合组合后的Web服务运行结果:6162提纲服务案例开发案例-基于IP地址的气象查询服务案例通过BPEL组装IP2Location(根据IP地址查出所在地的城市名和国名)和GlobalWeather(根据城市名和国名给出天气信息)两个独立的Web服务,使得两个服务能够自动地串行调用,并将整合了的流程发布为WeatherByIP服务。63业务用例客户端向WeatherByIP服务请求某一个IP所在地的天气信息当WeatherByIP服务取得目标IP后,将参数传给IP2Location服务IP2Location服务根据IP地址查出所在地的城市名和国名,将此消息传递给GlobalWeather服务GlobalWeather服务通过城市名和国家名查询当地的天气信息,并将反馈信息传回WeatherByIP服务WeatherByIP服务最终向用户输出目标IP所在地的天气情况。64ClientWeatherByIPServiceGlobalWeatherServiceIP2LocationServiceTargetedIPWeatherInfoLocationInfoTargetedIPWeatherInfo访问流程(1)(2)(3)(4)(5)65开发环境NetBeansIDE5.5withNetBeansEnterprisePack5.5SunjavaSystemApplicationServerPlatformEdition9Update1PartnerServicesIP2LocationService服务地址:http:///ip2locationwebservice.asmxWSDL地址:http:///ip2locationwebservice.asmx?wsdlGlobalWeatherService服务地址:/globalweather.asmxWSDL地址: http://www.webservicex.net/globalweather.asmx?wsdl66IP2Location接口类型67SOAPHttpGetHttpPostIP2Location输入消息结构68输入信息IP2Location输出消息结构69可输出信息GlobalWeather接口类型70GetWeather输入消息结构71输入信息GetWeather输出消息结构72输出信息WeatherByIPService的XMLSchema为了使整个流程的输入格式与输出消息格式保持一致,需在XMLSchema文档中规定服务的输入和输出消息结构。主要来自IP2LocationService的输入消息格式和GlobalWeatherService的输出消息格式。73XMLSchema图形化表示74WeatherByIP的服务描述接口类型和操作:输入消息结构:75输出消息结构:BPEL流程是业务流程的物理实现,通过服务间的消息传递,实现相互调用和流程组合BPEL流程描述76BPEL变量映射在BPEL把消息从一个service传递给另一个service时,需要定义不同服务间的消息变量的映射关系消息传递通过Assign活动来实现。Assign1从WeatherByIP服务的输入到IP2Location服务的输入Assign2从IP2Location服务的输出到GlobalWeather服务的输入Assign3从GlobalWeather服务的输出到WeatherByIP的输出77测试输入的SOAP消息:输出的SOAP消息:7879提纲服务开发方法开发范式的变迁结构化程序设计面向对象的软件开发基于组件的软件开发面向服务的软件开发(对象化+开放式)从单机系统、分布式系统、异构分布式系统,软件的规模与复杂度逐渐提高,模块耦合度逐步降低(对象化+开放式)。80面向服务的软件开发特点两个视图:服务提供者视图:关心服务如何实现、封装、发布、管理服务消费者视图:关心服务如何组合满足业务需求面向重用的开发DevelopmentforreuseReuse-basedDevelopment业务敏捷的开发快速构建适应发展81Web服务开发生命周期IBM将服务的生命周期分为建模、组装、部署和管理四个阶段,而SOA理念和最佳实践贯穿每个阶段。治理和最佳实践为SOA工程提供指导和监管,支撑整个生命周期的各个阶段。82建模Model建模阶段主要是收集和分析业务需求,建立和优化业务流程,并设计软件服务的流程。业务模型的建立是此阶段的主要工作。83组装Assemble在服务组合阶段,主要是根据业务模型,利用已有的服务资源库和业务解决方案,发现服务、创建服务和集成服务的过程。84部署Deploy在部署阶段,主要是将服务以及集成的业务流程部署到运行环境中,通过控制中心配置和优化运行环境,使其能够满足业务所需的不同服务水平要求。85提供一定的灵活性,以支持服务和业务流程的动态更新以适应不断变化的业务需求。管理Manage管理阶段提供对底层服务资源的管理,并实时监测主要的性能指标以获得预防、隔离、分析和修复问题的信息。86及时了解系统的状态,并为业务建模和业务流程的持续改进提供重要的反馈信息。服务提供者的开发方法零起点方法。为新Web服务创建新的服务接口,服务接口和服务实现都归服务提供者所有。自顶向下方法。开发一个与现有服务接口一致的新Web服务。这类服务接口通常是业界标准的一部分,可以被许多服务提供者实现。服务接口不能归服务提供者所有。87服务提供者的开发方法(续)自底向上方法。用于为现有的应用程序创建新的服务接口。服务接口是从应用程序的应用程序编程接口(applicationprogramminginterface,API)派生出来的。中间相遇方法。当服务接口已经存在,并且用作Web服务的应用程序也已经存在时,将使用中间相遇这种Web服务开发方法。主要任务是将现有的应用程序接口映射到服务接口定义中定义的那些应用程序接口。88服务请求者的开发方法静态绑定。静态绑定是在构建时通过为服务请求者将使用的单个Web服务定位服务实现定义构建的。构建时动态绑定。当服务请求者想使用特定类型的Web服务,但在运行时之前实现是未知的,或者实现可以在运行时发生改变,这时将使用这类绑定。这类服务定义在服务接口定义中。运行时动态绑定。这类绑定的不同之处在于服务接口是在运行时被发现的。找到服务接口后,就生成、编译,然后执行代理代码。89服务设计方法中的原则服务的名称要方便使用者服务的操作不能太多或者太少服务的操作应该是内聚的和完全的服务应该对实现的细节进行封装服务应该适应多种调用模式服务的操作应该是无状态的服务应该使用有状态的事务进行建模服务的操作应该代表业务动作服务操作的参数应该是粗粒度的。9091提纲云计算云计算云计算(CloudComputing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态扩展而且经常是虚拟化的资源。92云计算中的服务特征随需自助服务。随时随地用任何网络设备访问。多人共享资源池。快速重新部署灵活度。可被监控与量测的服务。基于虚拟化技术快速部署资源或获得服务。减少用户终端的处理负担。降低了用户对于IT专业知识的依赖。93云计算服务的概观94云计算服务模式软件即服务(SaaS)平台即服务(PaaS)基础架构即服务(IaaS)95软件即服务(SaaS)消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组帐号密码。例如:MicrosoftCRM与S。96平台即服务(PaaS)消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。例如:GoogleAppEngine。97基础架构即服务(IaaS)消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。例如:AmazonAWS、Rackspace。98云计算服务的部署模型公用云(PublicCloud) 简而言之,公用云服务可通过网络及第三方服务供应者,开放给客户使用,“公用”一词并不一定代表“免费”,但也可能代表免费或相当廉价,公用云并不表示用户数据可供任何人查看,公用云供应者通常会对用户实施使用访问控制机制,公用云作为解决方案,既有弹性,又具备成本效益。私有云(PrivateCloud) 私有云具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,数据与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。99云计算服务的部署模型(续)社区云(CommunityCloud)社区云由众多利益相仿的组织掌控及使用,例如特定安全要求、共同宗旨等。社区成员共同使用云数据及应用程序。混合云(HybridCloud) 混合云结合公用云及私有云,这个模式中,用户通常将非企业关键信息外包,并在公用云上处理,但同时掌控企业关键服务及数据。100101提纲语义Web服务WWWURI,HTML,HTTPBringingthewebtoitsfullpotentialSemanticWebRDF,RDF(S),OWLDynamicWebServicesUDDI,WSDL,SOAPStaticSemanticWebServicesMotivationofSemanticWebService
SemanticWebTechnology+WebServiceTechnologySemanticWebServices=SemanticWebServices
allowmachinesupporteddatainterpretationontologiesasdatamodelautomateddiscovery,selection,composition,andweb-basedexecutionofservicesasintegratedsolutionforrealizingthevisionofthenextgenerationoftheWeb.SemanticWebServicesDefineexhaustivedescriptionframeworksfordescribingWebServicesandrelatedaspects(WebServiceDescriptionOntologies)Supportontologiesasunderlyingdatamodeltoallowmachinesupporteddatainterpretation(SemanticWebaspect)DefinesemanticallydriventechnologiesforautomationoftheWebServiceusageprocess(WebServiceaspect)
SemanticWebServicesUsageProcess:Publication:MaketheavailabledescriptionofthecapabilityofaserviceDiscovery:LocatedifferentservicessuitableforagiventaskSelection:ChoosethemostappropriateservicesamongtheavailableonesComposition:CombineservicestoachieveagoalMediation:Solvemismatches(data,protocol,process)amongthecombinedExecution:Invokeservicesfollowingprogrammaticconventions
SemanticWebServicesExecutionsupport:Monitoring:ControltheexecutionprocessCompensation:ProvidetransactionalsupportandundoormitigateunwantedeffectsReplacement:FacilitatethesubstitutionofservicesbyequivalentonesAuditing:VerifythatserviceexecutionoccurredintheexpectedwaySemanticWebServicesWithSemantic:Notonlyaninterfacedescription,butalsothecapabilityoftheservice.Logicreasoningenhancedservicediscoveryandcomposition.Canbedoneautomatically.OWL-S:OntologyWebLanguageforServicesWSMLWSDL-S…语义Web服务标记语言OntologyOWL-SisanOWLontologytodescribeWebservicesOWL-SleveragesonOWLtoSupportcapabilitybaseddiscoveryofWebservicesSupportautomaticcompositionofWebServicesSupportautomaticinvocationofWebservices"Completedonotcompete"OWL-SdoesnotaimtoreplacetheWebservicesstandards ratherOWL-SattemptstoprovideasemanticlayerOWL-SreliesonWSDLforWebserviceinvocation(seeGrounding)OWL-sExpandsUDDIforWebservicediscovery(OWL-S/UDDImapping)OWL-S概述OWL-S整体结构ResourceServiceService
ProfileService
ModelService
Groundingcommunicationprotocol(RPC,HTTP,…)portnumbermarshalling/serializationinputtypesoutputtypespreconditionseffectsprocessflowcompositionhierarchyprocessdefinitionsprovidespresents(whatitdoes)describedby
(howitworks)
supports
(howtoaccess)服务概要ResourceServiceService
ProfileService
ModelService
Groundingprovidespresents(whatitdoes)describedby
(howitworks)
supports
(howtoaccess)服务概要
ServiceProfilePresentedbyaservice.RepresentswhattheserviceprovidesTwomainuses:AdvertisementsofWebServicescapabilities(non-functionalproperties,QoS,Description,classification,etc.)RequestofWebserviceswithagivensetofcapabilitiesProfiledoesnotspecifyuse/invocation!NonFunctionalPropertiesFunctionalityDescription服务概要SummarizestheabstractcapabilityofaserviceFunctionalspecificationof
whattheserviceprovides
intermsofparameters,
subclassedas:preconditionsinputsoutputseffects服务概要—功能性描述PreconditionsSetofconditionsthatshouldholdpriortoserviceinvocationInputsSetofnecessaryinputsthattherequestershouldprovidetoinvoketheserviceOutputsResultsthattherequestershouldexpectafterinteractionwiththeserviceprovideriscompletedEffectsSetofstatementsthatshouldholdtrueiftheserviceisinvokedsuccessfullyOftenrefertoreal-worldeffectsPackagebeingdelivered,orCreditcardbeingdebited服务概要—功能性描述:参数ProvidessupportinginformationabouttheserviceTheseincludeserviceNametextDescriptionhas_processqualityRatingserviceParameterserviceCategorycontactInformation服务概要—非功能性描述Sub-classingtheProfilemodelfacilitatesthecreationandspecialisationofservicecategoriesEachsubclasscan:IntroducenewpropertiesPlacerestrictionsonexistingpropertiesSub-classingcanalsobeusedtospecialiserequestsforserviceAnexampleProfileHierarchyisprovided,butotherscouldjustaseasilybedefined服务概要层次服务概要层次:例子ResourceServiceService
ProfileService
ModelService
Groundingprovidespresents(whatitdoes)describedby
(howitworks)
supports
(howtoaccess)服务模型ServiceProcessDescribeshowaserviceworks:internalprocessesoftheserviceSpecifiesserviceinteractionprotocolSpecifiesabstractmessages:ontologicaltypeofinformationtransmittedFacilitates(automated)Webserviceinvocationcompositioninteroperationmonitoring服务模型:描述方法ThebasicclassoftheProcessOntologyistheProcess.Itssubclassesdescribeeachprocessby:anynumberof(possibly,conditional)inputs;anynumberof(possibly,conditional)outputs;anynumberofpreconditions,whichmustholdinorderfortheprocesstobeinvoked;anynumberof(possibly,conditional)sideeffects;anynumberofparticipants(subprocess)服务模型:过程本体Atomicprocesses:directlyinvokable(byanagent),havenosubprocesses,executedinasinglestepCompositeprocesses:consistofother(non-compositeorcomposite)processes
TheyhaveacomposedOfproperty,bywhichthecontrolstructureoftheprocessisindicated,usingaControlConstruct
subclasses(seetable…)Simpleprocesses:abstractconcepts,usedtoprovideaviewofsomeatomicprocess,orasimplifiedrepresentationofsomecompositeprocess(i.e.,the“blackbox”viewofacollapsedcompositeprocess)服务模型:OWL-S中的过程类型服务模型:总体结构ConstructDescriptionSequenceExecutealistofprocessesinasequentialorderConcurrentExecuteelementsofabagofprocessesconcurrentlySplitInvokeelementsofabagofprocessesSplit+JoinInvokeelementsofabagofprocessesandsynchronizeUnorderedExecuteallprocessesinabaginanyorderChoiceChoosebetweenalternativesandexecuteoneIf-then-elseIfspecifiedconditionhold,execute“Then”,elseexecute“Else”.Repeat-UntilIterateexecutionofabagofprocessesuntilaconditionholdsRepeat-WhileIterateexecutionofabagofprocesseswhileaconditionholds服务模型:过程中的控制结构<!–AtomicProcessDefinition-GetDesiredFlightDetails
--><rdfs:Classrdf:ID=“GetDesiredFlightDetails”> <rdfs:subClassOf
rdf:resource= “/Process#AtomicProcess”/></rdfs:Class>GetDesiredFlightDetailsAirportFlightDateAtomicProcessdepartureAirport_InoutboundDate_InAtomicProcessExample<!–(sample)Inputsusedbyatomicprocess
GetDesiredFlightDetails--><rdf:Propertyrdf:ID="departureAirport_In">
<rdfs:subPropertyOf
rdf:resource= "http:///Process#input"/> <rdfs:domain
rdf:resource="#GetDesiredFlightDetails"/> <rdfs:range
rdf:resource="/ont/ DAML-S/concepts.daml#Airport"/></rdf:Property><rdf:Propertyrdf:ID="outbounDate_In">
<rdfs:subPropertyOf
rdf:resource="http:///Process#input"/><rdfs:domain
rdf:resource="#GetDesiredFlightDetails"/>
<rdfs:range
rdf:resource="/ont/DAML-S/concepts.daml#FlightDate"/></rdf:Property>AtomicProcessExample<rdfs:Classrdf:ID="BookFlight"><rdfs:subClassOf
rdf:resource="#CompositeProcess"/><rdfs:subClassOf
rdf:resource="/Process#Sequence"/><daml:subClassOf><daml:Restriction><daml:onProperty
rdf:resource="/Process#components"/><daml:toClass><daml:subClassOf><daml:unionOfrdf:parseType="daml:collection"><rdfs:Class
rdfs:about="#GetFlightDetails"/><rdfs:Class
rdfs:about="#GetContactDetails"/><rdfs:Class
rdfs:about="#ReserveFlight"/><rdfs:Class
rdfs:about="#ConfirmReservation"/></daml:unionOf></daml:subClassOf></daml:toClass></daml:Restriction></daml:subClassOf></rdfs:Class>CompositeProcessConfirmReservationBookFlightGetContactDetailsSequenceGetFlightDetailsReserveFlightSequenceSequenceCompositeProcessExampleResourceServiceService
ProfileService
ModelService
Groundingprovidespresents(whatitdoes)describedby
(howitworks)
supports
(howtoaccess)服务基点ServiceGroundingProvidesaspecificationofserviceaccessinformationServiceModel+GroundinggiveeverythingneededforusingtheserviceBuildsuponWSDL
todefinemessagestructureandphysicalbindinglayerSpecifies:communicationprotocols,transportmechanisms,agentcommunicationlanguages,etc.服务基点Resources/ConceptsWSDLOWL-SProcessModelAtomicProcessOperationMessageInputs/OutputsBindingtoSOAP,HTTP,etc.OWL-S/WSDLBindingOWL-S/WSDLBinding132提纲高级专题高级专题(探索性的几个议题)1331、服务推荐
2、服务组合
3、服务演化
4、服务统计服务推荐的背景134Web服务由于其良好的互操作性、平台独立性受到了学术及业界的青睐。面向服务的计算改变了传统的软件开发、交互、使用的方式,形成了软件工程和分布式计算的新型范式。
同时也带来了若干新的挑战,例如:
大量服务涌现,面对多个功能相似的服务,用户如何进行服务选择?服务推荐技术特征的发展1351、基于QoS建模的服务推荐2、QoS动态性建模3、基于协同过滤的服务推荐4、基于情景感知QoS预测的个性化服务推荐基于QoS建模的服务推荐常见的(Qos)服务评价因子:执行代价、响应时间、可靠性、可用性、信誉度、吞吐率模型的局限性:
多数情况下的前提假设是:所有的QoS数据可以从服务提供者获取并且数据是稳定的(不需要考虑动态性)。由于网络开放性、动态性,Web服务的Qos信息是动态变化的(需要考虑动态性)136服务推荐技术特征的发展1、基于QoS建模的服务推荐2、QoS动态性建模3、基于协同过滤的服务推荐4、基于情景感知QoS预测的个性化服务推荐137QoS动态性建模的服务推荐QoS数据的收集与更新(非历史和上下文的)
研究示范(1)ResearchontoolforservicequalitymeasurementofWebServices.主要工作:提出了一种基于APIHook收集QoS数据的方法(2)Random-QoS-AwareReliableWebServiceComposition.主要工作:将QoS的评价因子映射为一组随机变量,用数学期望、方差来衡量评价因子的值,不仅仅计算历史记录值的平均值。(3)AnApproachforMeasuringQualityofWebServicesBasedontheSuperpositionofUncertainFactors.主要工作:基于非确定因素叠加的web服务评价方法。局限性:虽然反映了Web服务的动态特征,但没考虑不同用户之间使用经验的不同(即用户使用服务中关注的上下文)。138服务推荐技术特征的发展1、基于QoS建模的服务推荐2、QoS动态性建模3、基于协同过滤的服务推荐4、基于情景感知QoS预测的个性化服务推荐139基于协同过滤的服务推荐研究示范(非上下文的)(1)Reputation-basedrecommenderdiscoveryapproachforserviceselection.主要工作:将信任网络划分为若干个性化的信任网络,通过信任度的迭代传播,筛选出信任度高的推荐者。(2)WebserviceQoSpredictionapproach主要工作:通过用户间Qos数据的使用经验的相似性计算,筛选出历史Qos数据与服务请求者历史Qos数据最相近的用户及其历史Qos记录。局限性:
考虑到了用户的历史使用经验,但是没有考虑用户进行服务调用时的情景,例如操作系统、内存、CPU、网络的带宽、安全性等情况。140服务推荐技术特征的发展1、基于QoS建模的服务推荐2、QoS动态性建模3、基于协同过滤的服务推荐4、基于情景感知QoS预测的个性化服务推荐141基于情景感知QoS预测的个性化服务推荐142创新之处
在进行Web服务推荐时,考虑到用户调用服务时的情景,如操作系统、内存、CPU、网络的带宽、安全性等等。技术路线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高压氧护理题库及答案
- (正式版)DB65∕T 035-2010 《和田玉》
- 高阳招聘笔试题目及答案
- 锻造工程师招聘面试题2025年题库解析附答案
- 第23课 野外活动注意安全教学设计-2025-2026学年小学地方、校本课程浙教版(2021)人·自然·社会
- 第1课 建立班级课程表教学设计小学信息技术(信息科技)第四册(2017)电子工业版(安徽)
- 虚拟数字人动作合成-洞察及研究
- 矿山通风系统优化与安全控制-洞察及研究
- 薄荷酮代谢通路调控网络构建-洞察及研究
- “四川大学2025年研究生入学考试(计算机科学)试题及答案”
- 急性重症胰腺炎个案护理
- 软式棒垒球-上手传接球教案高一上学期体育与健康人教版
- 变更董事股东会决议
- 中国功夫介绍英文
- 生物医药强国战略研究
- 驾驶员管理台帐
- 部编版五年级道德与法治上册第3课《主动拒绝烟酒与毒品》优秀课件【最新】
- 拆房协议书模板
- 制造企业物料试用单
- 《斐波那契数列》课件
- 电力排管检验批
评论
0/150
提交评论