1、二、面向服务的软件工程二、面向服务的软件工程22.12.1概念和背景概念和背景2.22.2面向服务的架构面向服务的架构SOASOA2.32.3语义互操作语义互操作2.42.4服务案例服务案例2.52.5服务开发方法服务开发方法2.62.6云计算中的服务云计算中的服务2.72.7高级专题高级专题提提 纲纲3什么是服务什么是服务?WebWeb服务的定义服务的定义W3CW3C:Web Web服务(服务(Web serviceWeb service)应当是一个软件)应当是一个软件系统,用以支持网络间不同机器的互动操系统,用以支持网络间不同机器的互动操作。作。Web Web服务是一个用服务是一个用URI
2、(Uniform Resource URI(Uniform Resource Identifier)Identifier)标识的软件实体,其接口和绑定可标识的软件实体,其接口和绑定可以用以用XMLXML协议定义、描述和发现。协议定义、描述和发现。WebWeb服务服务通过通过InternetInternet协议以基于协议以基于XMLXML消息,以松散消息,以松散耦合的方式与其它软件实体或耦合的方式与其它软件实体或WebWeb服务直接服务直接通讯。通讯。4WebWeb服务的兴起服务的兴起 Web服务作为一种新兴起的技术,被称为继PC和Internet之后的第三次计算机革命 Web服务利用标准的In
3、ternet协议(如HTTP,SMTP等),解决了面向Web的分布式计算的通信问题,而传统的分布式模型解决的是特定平台下的通信问题。Web服务具有完全的平台独立性和语言独立性,只要遵守WebService的接口即可进行服务的请求和调用。5WebWeb服务的主要思想服务的主要思想 以后的应用将由一组在线服务组合而成。两个相似的服务使用统一的标准和方法在网络上发布,一个信息应用就可以按照代价或性能的标准,从这两个相互竞争的候选服务中选择一个服务来使用。服务允许在机器间复制,可以通过将特定的服务复制到本地存储库,从而提高位于特定的计算机(群)上的应用程序的性能.6WebWeb服务的本质服务的本质 从
4、表像上看,Web服务就是应用程序,它向外界暴露出一个能够通过Web访问方式进行调用的服务接口。从应用程序的角度上看,Web服务是一种新的Web应用程序,是自包含、自描述、模块化的应用程序,可以通过互联网特别是Web方式来描述、发布、查找和调用。7发展脉络发展脉络前期前期互联网一个以协议为主的交互世界 底层网络协议和简单的内容传输协议:“桶”到“桶”之间的交换,不触及“桶”中的内容很少触及8发展脉络发展脉络当前当前互联网一个以“文档的对象化”形式主导的交互世界O-本体(论域中的标准化概念)Service(instance)-(对象)Service schema-知识模式(类)Controlled
5、-vocabulary受控词集 (人或机器理解的含义)9发展脉络发展脉络当前当前互联网一个以“文档的对象化”形式主导的交互世界O-本体(论域中的标准化概念)Service(instance)-(对象)Service schema-知识模式(类)Controlled-vocabulary受控词集 (人或机器理解的含义)10发展脉络发展脉络今后今后互联网一个以价值为导向的交互世界未经整合、未经整合、低价值的资源低价值的资源经过整合、经过整合、高价值的服务高价值的服务11WebWeb服务特征服务特征 完好的封装性。服务是一种部署在完好的封装性。服务是一种部署在WebWeb上的对象上的对象,自然具备自
6、然具备对象的良好封装性对象的良好封装性,对于使用者而言对于使用者而言,能且仅能看到该对象能且仅能看到该对象提供的功能列表。提供的功能列表。松散耦合松散耦合:当一个当一个WebWeb服务的实现发生变更的时候服务的实现发生变更的时候,调用者调用者是不会感到这一点的是不会感到这一点的,对于调用者来说对于调用者来说,只要服务的调用接只要服务的调用接口不变口不变,服务实现任何变更对他们来说都是透明的。服务实现任何变更对他们来说都是透明的。使用标准协议规范使用标准协议规范:作为作为WebWeb服务服务,其所有公共的协约完全其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标需要使用开放的
7、标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范准协议具有完全免费的规范,以便由任意方进行实现。以便由任意方进行实现。高度可集成能力高度可集成能力:由于服务采取简单的、易理解的标准协议由于服务采取简单的、易理解的标准协议作为组件接口描述规范和协同描述规范作为组件接口描述规范和协同描述规范,完全屏蔽了不同软完全屏蔽了不同软件平台的差异。件平台的差异。12WebWeb服务优势服务优势 高度的通用性和易用性高度的通用性和易用性:Web:Web服务利用标准的工服务利用标准的工InternetInternet协协议议(如如HTTP,SMTPHTTP,SMTP等等),),解决了面向解决了面向W
8、ebWeb的分布式计算模式的分布式计算模式,提提高了系统的开放性、通用性和可扩展性。高了系统的开放性、通用性和可扩展性。完全的平台、语言独立性完全的平台、语言独立性:Web:Web服务进行了更高程度的抽服务进行了更高程度的抽象象,只要遵守只要遵守WebWeb服务的接口即可进行服务的请求与调用。服务的接口即可进行服务的请求与调用。高度的集成性高度的集成性:Web:Web服务实质就是通过服务的组合来完成服务实质就是通过服务的组合来完成业务逻辑的业务逻辑的,因此因此,表现出了高度的组装性和集成性表现出了高度的组装性和集成性.容易发布和部署容易发布和部署:Web:Web服务体系结构方案通过服务体系结构
9、方案通过UDDI,WSDL,UDDI,WSDL,SOAPSOAP等技术协议等技术协议,能够很容易实现系统的部署能够很容易实现系统的部署.13WebWeb服务架构栈服务架构栈(1 1)(2 2)(3 3)(4 4)(2 2)、()、(3 3)将在)将在2.32.3节讨论节讨论142.1概念和背景2.2面向服务的架构SOA2.3语义互操作2.4服务案例2.5服务开发方法2.6云计算中的服务2.7高级专题提提 纲纲15SOA(Service-Oriented Architecture)SOA(Service-Oriented Architecture)起源起源 SOA不是一个新概念,通用对象代理架构
10、CORBA和分布式组件对象模型DCOM被看成是SOA架构的前身。1996年,Gartner Group提出了SOA“预言”(到2008年,超过60%的企业将使用SOA作为一个“指导原则”),因为当时的软件发展水平和信息化程度还不足支撑此概念进入实质性的应用阶段。SOA可以认为是面向对象分析与设计(OOAD)的合理发展;也是电子商务解决方案中,在体系结构、系统设计、实现与部署时所采用的组件化方法的合理发展。16SOASOA兴起原因(计算部件的对象兴起原因(计算部件的对象化趋势)化趋势)分布式系统的自然发展 系统与运算环境的异质性 操作环境的动态性 交流设备细节的透明化 面向过程需要多重服务17G
11、artner Group Gartner Group 关于关于SOASOA的最初概念的最初概念 客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成。SOA 与大多数通用的客户端/服务器模型的不同之处,在于它强调软件组件的松散耦合,并使用独立的标准接口(对象化趋势)18SOA SOA 的当前定义的当前定义 W3C SOA的定义:SOA是组件的集合,这些组件能被调用,并且接口的描述可以发布和发现。维基百科SOA的定义:SOA是构造分布式计算的应用程序的方法。它将应用程序功能作为服务发送给最终用户或者其它服务。它采用开放标准、与软件资源进行交互并采用表示的标准方式。19SOA SO
12、A 的当前定义(续)的当前定义(续)当代 SOA 代表一个开放的、敏捷的、可扩展的、可联邦的、可组合的架构,包含了自治的、高服务质量的、厂商多样性的、可互操作的、可发现的和潜在可复用的服务,使用 Web 服务来实现。Thomas ErlSOA 概念、技术与设计20普遍接受的普遍接受的SOASOA架构架构W3C发布的Web服务架构基本两种基本角色(服务提供者和服务请求者)和一个可选的服务注册中心.三种角色交互,涉及发布、发现、绑定操作.UDDIUDDI、WSDLWSDL和和SOAPSOAP将在将在2.32.3节节“语义互操作语义互操作”中讨论中讨论21SOASOA架构中的角色架构中的角色 服务提
13、供者(service provider):发布自己的服务,并且使用自身服务的请求进行响应.服务代理(service broker):可选.注册与发布服务及其提供者,对其进行分类,并提供搜索服务.服务使用者(service requester):利用服务代理来查找所需服务,进而根据需求使用该服务.22SOASOA架构中的操作架构中的操作 发布(publish):使服务提供者可以通过向服务代理注册自己的功能及访问接口.查找(find):服务使用者可以通过服务代理查找特定的服务.绑定(bind):使服务使用者能够调用或激活服务.23SOASOA架构特点架构特点 服务的封装(encapsulation
14、).将服务封装成用于业务流程的可重用组件的应用程序函数.服务的互操作(interoperability).通过服务之间既定的通信协议进行互操作,SOA提供服务的互操作特性更利于其在多种场合被重用(“服务”(组织和交互方式)这种抽象协议).服务是位置透明的(location transparency).服务请求者不需要知道服务的具体位置及是哪一个服务响应了自己的请求.24SOASOA架构特点(续)架构特点(续)服务的重用(reuse).一个服务是一个独立的实体,与底层实现和用户的需求完全无关,极大的方便了服务的重复使用,从而降低了开发成本.服务是自治(autonomous)的功能实体.服务是由组
15、件组成的组合模块,是自包含和模块化的.服务之间的松散耦合(loosely coupled).服务请求者和服务提供者之间只有接口上的往来,至于服务内部如何更改,如何实现都与服务请求者无关25SOASOA与与WebWeb服务(当前服务(当前P7P7和前期和前期P8P8的区别)的的区别)的联系与区别联系与区别 SOA是一套面向服务架构的标准规范;Web服务是一套技术体系,可以用来建立应用解决方案,解决特定的消息通信和应用集成问题。SOA是一种软件架构,不局限于某个技术的组合(例如Web服务)。SOA和Web服务是一对关联技术。262.1概念和背景2.2面向服务的架构SOA2.3语义互操作2.4服务案
16、例2.5服务开发方法2.6云计算中的服务2.7高级专题提 纲27发展脉络发展脉络对象化的文档对象化的文档互联网一个以“文档的对象化”形式主导的交互世界O-本体(论域中的标准化概念)Service(instance)-(对象)Service schema-知识模式(类)Controlled-vocabulary受控词集 (人或机器理解的含义)28 XMLXML建模体系与语义建模体系与语义WebWeb 语义互操作途径之一:当前式,语义互操作途径之一:当前式,RDFRDF、本、本体与语义体与语义WebWeb 语义互操作途径之二:三角架构,语义互操作途径之二:三角架构,UDDIUDDI(开放式的)、(
17、开放式的)、WSDLWSDL(类或者对象)与(类或者对象)与SOAPSOAP(前期(前期-内容传输)内容传输)29适用于网络应用的标签化描述方式适用于网络应用的标签化描述方式XMLXML XML(可扩展标记语言)是SGML的子集,其目标是允许普通的SGML在Web上以HTML的方式被服务、接收和处理。XML被设计成易于实现,且可在SGML和HTML之间互相操作。30XMLXML的基本特点的基本特点 XML是结构化的。XML是自描述的。XML允许自定义标签,并且这些标签可以说明数据的语义,而不是HTML中的格式说明。XML是可扩展的。XML的概念很简单,但是它却有广阔的应用领域,因为任何人都可以
18、按照自己应用的需要定义相应的XML标签来表达信息的结构和类型。独立于平台和应用。文档内容是基于UniCode的文本,适于网络的传输。XML易于设计。XML文档容易编写,设计正式且简洁,可读性强。更精确的搜索。XML标签表达的是内容的含义,从而搜索引擎可以通过搜索XML文档得到更精确的需要的内容。广泛的支持。XML得到了众多的软件厂商比如Microsoft,IBM,Sun,Oracle等几乎所有大公司的支持。31简单的简单的XMLXML文件文件XML声明文档类型声明文档元素!DOCTYPE books SYSTEM“books.dtd”Java超级编程比尔盖茨32格式良好(格式良好(Well-f
19、ormedWell-formed)的)的XMLXML文档文档遵循如下规则的XML文档称为格式良好的XML文档:语法规范必须有XML声明语句必须有且仅有一个根元素标记大小写敏感属性值用引号标记成对空标记关闭元素正确嵌套33有限表达能力的有限表达能力的XML DTDXML DTD 描述XML文档的结构时,文件类型定义(DTD)是一个重要的工具,DTD也是XML1.0的重要组成部分。但DTD存在不少缺陷:DTD是基于正则表达式的,描述能力有限;DTD没有数据类型的支持,在大多数应用环境下能力不足;DTD的约束定义能力不足,无法对XML实例文档作出更细致的语义限制;DTD的结构不够系统化,复用的代价相
20、对比较高;DTD并非使用XML作为描述手段,而DTD的构建和访问并没有标准的编程接口,无法使用标准的编程方式进行DTD维护。34较强表达能力的较强表达能力的XML SchemaXML Schema XML Schema 是针对DTD的缺点设计的。2001年5月,XML Schema作为W3C的推荐标准正式发布,并迅速取代DTD的地位,成为描述XML文档结构的主流技术。35XML SchemaXML Schema的优点的优点 一致性。一致性。XML SchemaXML Schema本身就是一个本身就是一个XMLXML文档。文档。扩展性。扩展性。XML SchemaXML Schema对对DTDD
21、TD进行扩展,引进了数进行扩展,引进了数据类型、命名空间等,还可以基于标准数据类型据类型、命名空间等,还可以基于标准数据类型创建自己的数据类型。创建自己的数据类型。互换性。利用互换性。利用XML SchemaXML Schema能够书写能够书写XMLXML文档以及文档以及验证文档的合法性。通过映射机制,可以实现验证文档的合法性。通过映射机制,可以实现SchemaSchema的转换。的转换。规范性。规范性。XML SchemaXML Schema更加便于描述文档的内容,更加便于描述文档的内容,对数据的内容、格式进行各种限制,对各种不同对数据的内容、格式进行各种限制,对各种不同的数据进行转换,并验
22、证数据的正确性。的数据进行转换,并验证数据的正确性。36A Simple XML SchemaA Simple XML Schema /XML声明 37XMLXML的自描述体系与语义的自描述体系与语义WebWeb的发展的发展38 XML建模体系与语义Web 语义互操作途径之一:RDF、本体与语义Web 语义互操作途径之二:UDDI、WSDL与SOAP39基于基于XMLXML的语义的语义WebWeb技术技术 传统的Web面向文档,没有提供网页中数据语义信息的表述和处理机制,不便于通过计算机进行判断和推理。2001年,Web创始人Tim Berners-Lee等人正式提出语义Web。语义Web对现
23、在的Web进行了扩展和延伸,通过XML、RDF/RDFS和本体技术,将Web中的信息按照语义层次结构进行组织,并以此为基础构建推理规则,完成语义的知识表达和推理。40RDF(RDF(资源描述框架资源描述框架)Resource Description Framework(RDF)Resource Description Framework(RDF)是是W3CW3C组织于组织于20042004年年2 2月月1010日发布的一个推荐日发布的一个推荐标准。它的功能是利用当前存在着的多种标准。它的功能是利用当前存在着的多种元数据标准来描述各种网络资源,形成人元数据标准来描述各种网络资源,形成人机可读的、
24、可以由计算机自动处理的文件机可读的、可以由计算机自动处理的文件。RDFRDF是采用是采用XMLXML语法格式处理元数据的应语法格式处理元数据的应用,为描述图像、文档和它们之间的相互用,为描述图像、文档和它们之间的相互关系定义了一个简单数据模型。简而言之关系定义了一个简单数据模型。简而言之,RDFRDF用于进行资源描述,但它并不直接用于进行资源描述,但它并不直接用来描述资源,而是定义了描述资源的规用来描述资源,而是定义了描述资源的规则。则。41RDF Schema(RDFS)RDF Schema(RDFS)RDF Schema 是资源描述框架的扩展。RDF模式相对于RDF来说提供了一个更高级别的
25、抽象概念。具体类别的资源具体的属性描述的资源与属性直接的关系RDFS 允许具体资源能被描述成为更加普通的类别的实例。RDFS提供了传统RDF词汇能被发展的机制,同时,RDFS提供了重要的语义功能,即能被增强型的语义语言如 DAML,OIL 和 OWL进行使用。42RDFRDF的的自描述自描述体系与体系与语义语义WebWeb的的发展发展43本体本体“本体”这个术语来自于哲学,它是研究世界上的各种实体以及它们是怎么关联的科学。对于 web,本体则关于对 web 信息及 web 信息之间的关系的精确描述。关于论域中概念的精确描述44Web Ontology Language(OWL)Web Onto
26、logy Language(OWL)Web本体语言是构建在RDF之上的,用于处理Web中信息的标记语言,于2004年成为W3C建议标准。OWL提供更多的词汇、丰富的操作符、更强的语法,来对领域知识或者概念加以描述。通过简单的概念定义复杂的概念,按照“概念-属性-概念”的形式描述概念间的关系。45OWLOWL子语言子语言-按描述和计算能力分类按描述和计算能力分类 为了便于开发支持OWL的工具,OWL提供了以下三个子语言。OWL Lite 创建简单的本体用户 OWL DL(描述逻辑)当在需要较强的表达能力,同时所有的结论都需要能通过计算推理得到、所有的计算都能在有限的时间内完成时,可以使用OWL
27、DL。OWL Full 高表达能力46语义语义WebWeb服务和服务和OWL-SOWL-S 语义Web服务(SWWS)就是将语义Web技术与Web服务技术相结合,通过语义Web服务标记语言OWL-S,利用本体来描述Web服务信息,通过这些带有语义信息的描述来实现服务的自动发现、调用和组合。47OWL-SOWL-S OWL-S是本体语言,是OWL基础框架的语义Web,为了描述语义Web服务。OWL-S能使用户和软件提供商自动地发现、调用、组合和监控Web资源来提供服务。OWL-S的目标 自动的Web服务发现 自动的Web服务调用 自动的Web服务组合和互操作48OWL-SOWL-S重要组成重要组
28、成 Service Profile Service Profile 描述此描述此WebWeb服务提供什么服务、服务提供什么服务、介绍服务的名称、提供的功能、服务提供介绍服务的名称、提供的功能、服务提供者的联系方式。者的联系方式。Process Model 描述Web服务是怎样工作。Service Grounding 描述怎样使用Web服务49OWL-SOWL-S技术来源技术来源50 XML建模体系与语义Web 语义互操作途径之一:RDF、本体与语义Web 语义互操作途径之二:UDDI、WSDL与SOAP51传统传统Web ServiceWeb Service互操作的核心技术互操作的核心技术 W
29、ebService的核心技术主要包括SOAP、WSDL和 UDDI。这三大部分代 表了 Web service 体系中的三个层次,分别是:传输层、描述层和发现层。52SOAPSOAP使人想起了互联网发的前期使人想起了互联网发的前期互联网一个以协议为主的交互世界 底层网络协议和简单的内容传输协议:“桶”到“桶”之间的交换,不触及“桶”中的内容很少触及53SOAP(SOAP(简单对象访问协议简单对象访问协议)SOAP是一种在分布式环境中进行信息转换的轻量级协议。作为一种不依赖传输协议、用于在应用程序之间以对象的形式交换数据的表示层通信协 议,SOAP是Web Services的核心。主要特征扩展性
30、(Extensible)。SOAP定义了一个框架,允许例如安全、路由和可靠性等特性作为分层扩展添加进来互操作(Interoperable)。SOAP允许使用任何传输协议传输数据。独立(Independent)于编程模型。SOAP采用XML文本格式,因此可以独立于各种编程语言和平台。54SOAPSOAP信息交换模式信息交换模式 SOAP消息交换模式(MEP)是指如何根据通信的需要将多条消息组合成一条整体的消息交换的抽象描述。四种模式:请求-响应消息交换模式一个SOAP节点向另一个SOAP节点发送的包含SOAP信息的请求,另一个节点返回包含SOAP消息的响应55SOAPSOAP信息交换模式信息交换
31、模式(续续)单一响应消息交换模式单一响应消息交换模式一个一个SOAPSOAP节点向另一个节点向另一个SOAPSOAP节点发送的请求不包含节点发送的请求不包含任何任何SOAPSOAP信息,而期望对方返回信息,而期望对方返回SOAPSOAP消息。消息。SOAP WebSOAP Web方法特性方法特性请求响应模式和单一响应模式可一起使用,请求响应模式和单一响应模式可一起使用,SOAPSOAP节节点间互相交流一些额外信息以表示点间互相交流一些额外信息以表示WebWeb方法的名字。方法的名字。SOAP ActionSOAP Action特性特性请求响应模式和单一响应模式可一起使用,请求响应模式和单一响应
32、模式可一起使用,SOAP SOAP节节点间互相交流一些额外信息以表示其激活标志。点间互相交流一些额外信息以表示其激活标志。56SOAP SOAP 信息交换信息交换Service BrokerServiceConsumerService Providerhttphttp SOAPmessageWSDLdescribingserviceSOAPmessagehttphttpclientclientserviceserviceregistryfindpublishDESCRIBEDESCRIBEINVOKEINVOKESOAP SenderSOAP ReceiverSOAP SenderSOAP R
33、eceiverrequestresponse57SOAPSOAP协议组成协议组成 SOAP由4部分组成:SOAP封装(SOAP Envelope)构造定义了一个整体的表示框架,可用于表示 在消息中的是什么 谁应当处理它 是“可选的”还是“强制的”SOAP编码规则(SOAP Encoding Rules)定义了一套编码机制用于交换应用程序定义的数据类型的实例 SOAP RPC表示(SOAP RPC Presentation)定义了一个用于表示远程过程调用和响应的约定 SOAP绑定(SOAP Binding)定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。58SOAP SOAP 信
34、息格式信息格式SOAP BodySOAP headerSOAP envelopeHeader blockHeader dataHeader dataHeader dataBody child elementBody child element59 1 1 2001-06-22T14:00:00-05:00 2001-06-22T14:00:00-05:00 Pick up Mary at school at 2pmPick up Mary at school at 2pm 60SOAP SOAP 编码编码 SOAP编码:将数据的值编码为XML格式 对于应用中所定义的数据结构和值,SOAP可以将
35、其转换为由节点和带有标签的边组成的图,称为数据模型,并进而通过SOAP编码规则将SOAP数据模型转换为XML格式。61SOAP RPC SOAP RPC SOAP 远程过程调用信息描述了方法的请求或者方法的回复。SOAP XML文档在服务器端转换成方法调用,调用后的结果将编码成为XML文档返回给服务请求者。62SOAPSOAP请求请求目标对象的目标对象的URIURI方法的参数方法的参数方法名方法名63SOAPSOAP响应响应方法名方法名目标对象的目标对象的URIURI返回的结果返回的结果64SOAPSOAP协议绑定协议绑定 SOAP可在任何传输协议上使用,并提供了一种用于定义任意协议绑定的灵活
36、框架。HTTP使用极为广泛,也是SOAP协议绑定对象的首选。65HTTP HTTP 请求与回应请求与回应POST /Accounts/Henrik HTTP/1.1Content-Type:text/xml;charset=utf-8“Content-Length:nnnnSOAPAction:http:/electrocommerce.org/MyMessageSOAP:Envelope.HTTP 请求HTTP 回应HTTP/1.1 200 OkContent-Type:text/xml;charset=utf-8“Content-Length:nnnnSOAP:Envelope.HTTP请
37、求方法请求方法HTTP协议版本协议版本HTTP请求资源请求资源资源的文本类型以资源的文本类型以及编码格式、长度及编码格式、长度SOAPAction HTTP 请求头请求头字段(指示字段(指示SOAP HTTP请求请求的目的,它的值是一个标识的目的,它的值是一个标识该目的的该目的的URI)SOAP信息信息2XX状态码表示成功返回状态码表示成功返回66SOASOA架构架构 67WSDLWSDL使人想起了互联网发展的当前状况使人想起了互联网发展的当前状况互联网一个以“文档的对象化”形式主导的交互世界O-本体(论域中的标准化概念)Service(instance)-(对象)Service schema
38、-知识模式(类)Controlled-vocabulary受控词集 (人或机器理解的含义)68WSDLWSDLlWSDL(Web services description language)是以XML格式来描述Web服务接口,指定Web服务的位置、操作方法等信息的描述语言。l使用者使用WSDL就可以使用Web服务,而不必关心服务的实现细节。69WSDLWSDL构成元素构成元素 WSDL文档包含7个关键的构成元素:service、和元素是Web Service的抽象定义,与具体的Web Service部署细节无关,可以被重用;而、和元素是Web Service的具体描述,其中定义了Web Ser
39、vice的技术细节 70WSDLWSDL文档结构文档结构 示例代码:WeatherWebService.wsdl 是天气预报Web Service的WSDL文档,具体含义分析如下:该元素用来定义WSDL文档的名称,引入需要的XML命名空间71p元素规定了与消息相关的数据类型的定义元素规定了与消息相关的数据类型的定义p 72p(消息消息)元素定义了传递的消息的数据结构元素定义了传递的消息的数据结构 p (端口类型端口类型)元素是抽象操作和抽象消息的组合元素是抽象操作和抽象消息的组合 73p (绑定绑定)元素用来具体化元素用来具体化元素,其中元素,其中定义了定义了元素中的操作和消息的格式与协议等元
40、素中的操作和消息的格式与协议等 74p(服务服务)元素指定了元素指定了Web ServiceWeb Service的位置。一个的位置。一个元素可以包含多个元素可以包含多个(端口端口)元素,端口的集元素,端口的集合构成了合构成了serviceservice。weather.wsdlweather.wsdl中的中的元素如下:元素如下:75WSDLWSDL绑定绑定 WSDL 绑定可为 web service 定义消息格式和协议细节。WSDL规范中定义了3种绑定扩展:SOAP绑定 HTTP GET POST绑定 MIME绑定 其中SOAP绑定是最常用的一种方式。76SOAP绑定绑定soap:bindi
41、ng style=documenttransport=http:/schemas.xmlsoap.org/soap/http/soap:operation soapAction=http:/www.example.org/Weather/getWeather/绑定名,命名绑定名,命名空间不重复空间不重复指出绑定是针对指出绑定是针对SOAP协议协议格式的格式的指出操作是面向指出操作是面向RPC(消息包含参数和返(消息包含参数和返回值)的还是面向文档的(消息包含文档)回值)的还是面向文档的(消息包含文档)使用的使用的 SOAP 协议协议指出绑定是针对指出绑定是针对SOAP协议协议格式的格式的此此U
42、RI应当被直接用作应当被直接用作SOAPAction头头的值的值给出输入、输出消息的编给出输入、输出消息的编码为码为literal77UDDIUDDI UDDI是通过因特网描述服务、发现服务并且集成商业服务的一个独立于平台的框架。UDDI代表着普遍化的描述、发现和集成。UDDI是一个存储Web服务的目录,使用WSDL描述Web服务接口。78UDDIUDDI互联网今后发展的初级阶段互联网今后发展的初级阶段互联网一个以价值为导向的交互世界未经整合、未经整合、低价值的资源低价值的资源服务集市服务集市79UDDIUDDI互联网今后发展的初级阶段互联网今后发展的初级阶段互联网一个以价值为导向的交互世界经
43、过整合、经过整合、高价值的服务高价值的服务服务集市服务集市存在明显的差距80四种核心数据类型四种核心数据类型 businessEntity(businessEntity(描述发布服务组织的信息描述发布服务组织的信息)businessService(businessService(描述服务的业务功能描述服务的业务功能)binding Template(binding Template(描述服务的技术细节描述服务的技术细节)tModel(tModel(其他各种属性其他各种属性)新的数据类型新的数据类型(2.0/3.0)(2.0/3.0)publisherAssertion publisherAss
44、ertion 描述所注册的服务之描述所注册的服务之间的关系间的关系 Subscription Subscription 跟踪一组实体的变更跟踪一组实体的变更81UDDI UDDI 数据结构数据结构82UDDIUDDI如何工作如何工作2)2)将服务的描将服务的描述注册到述注册到UDDIUDDI注册中注册中心心UDDI Business Registry3)3)UDDI UDDI 注册中心给注册中心给每个实体指定一个在每个实体指定一个在程序中唯一的标识符程序中唯一的标识符4)4)电子交易场所和搜电子交易场所和搜索引擎等客户机与商索引擎等客户机与商业应用程序使用业应用程序使用 UDDI UDDI 注
45、册中心来发注册中心来发现它们感兴趣的服务现它们感兴趣的服务1)1)软件公司、软件公司、程序员等将程序员等将tModeltModel发布到发布到UDDIUDDI注册中注册中心心5)企业调用这些服务企业调用这些服务,简便地进行动态集简便地进行动态集成成83注册信息注册信息企业与服务的注册信息:企业与服务的注册信息:白页:表示企业的基本信息,如企业的名称、经白页:表示企业的基本信息,如企业的名称、经营范围描述、联系信息等。营范围描述、联系信息等。黄页:通过支持使用多种具有分类功能的分类法黄页:通过支持使用多种具有分类功能的分类法系统产生的类别划分,使得使用者能够在更大的系统产生的类别划分,使得使用者
46、能够在更大的范围内查找在注册中心注册的企业或者服务。范围内查找在注册中心注册的企业或者服务。绿页:与服务相关联的绑定信息,并提供了指向绿页:与服务相关联的绑定信息,并提供了指向这些服务所实现的技术规范的引用和指向基于文这些服务所实现的技术规范的引用和指向基于文件的件的URLURL的不同发型机制指针。的不同发型机制指针。84WebWeb服务工作流程服务工作流程85WS-BPELWS-BPEL WS-BPEL(Web Services Business Process Execution Language)是一种基于XML用来描述高层业务流程的编程语言,被描述的业务流程的每个单一步骤由Web服务实
47、现。原名是BPEL4WS,2002年由IBM、Microsoft、BEA合作开发。2007改名为WS-BPEL。目前版本是2.0 本质上是将一组Web服务整合在一起以形成一个新的Web服务的语言。86WS-BPEL WS-BPEL 基本结构基本结构 /流程定义的根元素流程定义的根元素 /描述业务流程与伙伴的关系描述业务流程与伙伴的关系./通过变量表示合作伙伴间生成与传递的信息通过变量表示合作伙伴间生成与传递的信息./一组顺序执行的活动一组顺序执行的活动.87WS-BPELWS-BPEL建模工具和引擎建模工具和引擎 Active EndpointsActive Endpoints ActiveB
48、PEL engineActiveBPEL engine ActiveBPEL DesignerActiveBPEL Designer Oracle BPEL Process ManagerOracle BPEL Process Manager IBM WebSphere Business Integration Server IBM WebSphere Business Integration Server FoundationFoundation BEA WebLogic IntegrationAquaLogicBEA WebLogic IntegrationAquaLogic Apache
49、 ODEApache ODE开源开源WS-BPELWS-BPEL引擎引擎88Apache ODEApache ODE开源开源WS-BPELWS-BPEL引擎引擎 Apache ODE是一个WS-BPEL兼容的Web服务编配引擎,它可以使开发人员根据以BPEL XML语法写成的过程描述来编配Web服务。89基于基于Apache ODEApache ODE的的WebWeb服务组合服务组合一、加法服务一、加法服务(Add_Service)(Add_Service)输入输入doubledouble类变量类变量a a、b b,输出结果,输出结果a+ba+b;二、减法服务二、减法服务(Sub_Servic
50、e)(Sub_Service)输入输入doubledouble类变量类变量a a、b b,输出结果,输出结果a-ba-b;三、将这两个服务组合为一个新服务三、将这两个服务组合为一个新服务输入输入doubledouble类变量类变量a a、b b和字符串变量和字符串变量c c,如果如果c=addc=add,输出结果为,输出结果为a+ba+b;如果如果c=subc=sub,输出结果为,输出结果为a-ba-b;90基于基于Apache ODEApache ODE的的WebWeb服务组合服务组合91基于基于Apache ODEApache ODE的的WebWeb服务组合服务组合组合后的Web服务运行结