《中间件_8Web Service》由会员分享,可在线阅读,更多相关《中间件_8Web Service(76页珍藏版)》请在金锄头文库上搜索。
1、山东大学计算机科学与技术学院Web Service山东大学计算机科学与技术学院Web 服务:从服务谈起服务:从服务谈起产品有限产品有限,服务无限服务无限“应用基地化应用基地化(application hosting)” 软件正变为服务软件正变为服务 所谓所谓“应用基地化应用基地化”是指软件厂家在自己的服务器上运行应用程序,是指软件厂家在自己的服务器上运行应用程序,经由经由Internet将其结果提供给用户企业利用。这使得用户将通过租软将其结果提供给用户企业利用。这使得用户将通过租软件而不是买软件来满足自己的需要。件而不是买软件来满足自己的需要。以以Oracle和和Microsoft为首的主要软
2、件厂家,开始真正加入应用基地为首的主要软件厂家,开始真正加入应用基地化等服务事业,各厂家正加强同应用服务提供商化等服务事业,各厂家正加强同应用服务提供商(Application Service Provider,ASP)的合作关系。的合作关系。山东大学计算机科学与技术学院ASP在兴起在兴起 开始对服务下大力气的软件公司,正对经由开始对服务下大力气的软件公司,正对经由Internet简单地分发自己简单地分发自己软件产品的管理模式进行改造,使得软件公司本身和第三方,可以通软件产品的管理模式进行改造,使得软件公司本身和第三方,可以通过远程操作支持应用。过远程操作支持应用。 例如,德国例如,德国SAP
3、公司已开始提供名为公司已开始提供名为“Business Scenario”的服务,的服务,这是一种提供在这是一种提供在Web环境下利用的一群软件组件所构成的应用服务。环境下利用的一群软件组件所构成的应用服务。 IBM的服务事业部门从事的服务事业部门从事eBusiness应用基地化的负责人认为,企业今应用基地化的负责人认为,企业今后将像使用电话一样,按使用量支付软件使用费,这一时刻的到来便后将像使用电话一样,按使用量支付软件使用费,这一时刻的到来便意味着软件业革命的开始。意味着软件业革命的开始。 山东大学计算机科学与技术学院Web service的出现背景的出现背景Web应用的快速发展应用的快速
4、发展企业应用的集成整合要求迫切企业应用的集成整合要求迫切EAI (Enterprise Application Integration)B2Bi (B2B Integration)语言差异、平台差异、协议差异、数据差异带来语言差异、平台差异、协议差异、数据差异带来高代价的系统集成高代价的系统集成 山东大学计算机科学与技术学院Web Service的概念的概念提供一个与操作系统无关、与程序设计语言无关、与机器类提供一个与操作系统无关、与程序设计语言无关、与机器类型无关、与运行环境无关的平台,实现网络上应用的共享型无关、与运行环境无关的平台,实现网络上应用的共享A Service is a pie
5、ce of software that is not tightly coupled with Client applications. Services are dynamically discoverable and composable entitiesWeb服务的体系结构与服务的体系结构与Web应用的应用的N层结构类似,区别在于顶层结构类似,区别在于顶层的面向浏览器的层的面向浏览器的Web Server被面向程序的(被面向程序的(Web Service Client)的)的Web服务所取代。服务所取代。山东大学计算机科学与技术学院Web Service特点特点Web 服务是用标准的、规
6、范的服务是用标准的、规范的 XML 概念描述一些操作的接概念描述一些操作的接口(利用标准化的口(利用标准化的 XML 消息传递机制可以通过网络访问这消息传递机制可以通过网络访问这些操作)些操作)该接口该接口隐藏了实现服务的细节隐藏了实现服务的细节,允许,允许独立于独立于实现服务所基于实现服务所基于的的硬件或软件平台硬件或软件平台和编写服务所用的编程和编写服务所用的编程语言语言使用服务。使用服务。Web 服务履行一项特定的任务或一组任务。服务履行一项特定的任务或一组任务。Web 服务可以单独或同其它服务可以单独或同其它 Web 服务一起用于实现复杂的服务一起用于实现复杂的聚集或商业交易聚集或商业
7、交易山东大学计算机科学与技术学院部署在部署在Web上的对象上的对象从外部使用者的角度来看从外部使用者的角度来看, Web Service是部署在是部署在Web上的对象上的对象,具备以下特征具备以下特征:完好的封装性完好的封装性 (数据和处理)(数据和处理)松散耦合松散耦合使用协约的规范性使用协约的规范性 标准化标准化高度可集成能力高度可集成能力山东大学计算机科学与技术学院部署在部署在Web上的对象上的对象对象界面描述对象界面描述: WSDL对象访问对象访问: SOAP对象界面发现对象界面发现: UDDI对象实现对象实现: EJB, COM+, CORBA以及任何可用于对象实以及任何可用于对象实
8、现的技术现的技术UDDIWSDLSOAPEJB/COM+/CORBA山东大学计算机科学与技术学院XML & Web ServicesXML及其相关技术被证明有可能解决这个问题及其相关技术被证明有可能解决这个问题 跨语言、跨平台跨语言、跨平台数据交换的标准数据交换的标准基于基于XML技术的技术的Web Services在现有的各种异构平台的基础上构筑一个通用的平台无关、在现有的各种异构平台的基础上构筑一个通用的平台无关、语言无关的技术层语言无关的技术层 山东大学计算机科学与技术学院Web 服务的构件服务的构件服务服务 Web 服务是一个由服务描述来描述的接口,服务描述服务是一个由服务描述来描述的
9、接口,服务描述的实现就是该服务。服务是一个的实现就是该服务。服务是一个软件模块软件模块,它部署在由服务,它部署在由服务提供者提供的可以通过网络访问的平台上。服务存在就是要提供者提供的可以通过网络访问的平台上。服务存在就是要被服务请求者调用或者同服务请求者交互。被服务请求者调用或者同服务请求者交互。服务描述服务描述 服务描述包含服务的接口和实现的细节。其中包服务描述包含服务的接口和实现的细节。其中包括服务的数据类型、操作、绑定信息和网络位置。还可能包括服务的数据类型、操作、绑定信息和网络位置。还可能包括可以方便服务请求者发现和利用的分类及其它元数据。服括可以方便服务请求者发现和利用的分类及其它元
10、数据。服务描述务描述可以被发布给服务请求者或服务注册中心可以被发布给服务请求者或服务注册中心。 山东大学计算机科学与技术学院Web Service架构架构ServiceProviderServiceBrokerServiceRequesterFindBind/InvokePublishSOA模型模型山东大学计算机科学与技术学院Web Service架构架构Web Service基于基于SOA(Service Oriented Architecture)架构。架构。三个参与者:三个参与者:服务提供者(Service Provider)服务请求者(Service Requester)服务代理(Se
11、rvice Broker)三个基本操作三个基本操作发布(Publish)查找(Find)绑定/调用(Bind/Invoke)工作过程工作过程服务提供者将所提供的服务发布到服务代理的一个目录上服务提供者将所提供的服务发布到服务代理的一个目录上服务请求者首先到服务代理提供的目录上搜索服务,得到如何调用该服务的服务请求者首先到服务代理提供的目录上搜索服务,得到如何调用该服务的信息信息根据得到的信息调用服务提供者提供的服务根据得到的信息调用服务提供者提供的服务山东大学计算机科学与技术学院Web Service架构架构ServiceProviderServiceBrokerServiceRequeste
12、rFind/UDDI/WSDLBind/InvokePublish/UDDI/WSDL相关协议相关协议UDDIRegistryWebServiceClientApplicationSOAP山东大学计算机科学与技术学院What is a Web Service?一个能够使用一个能够使用XML消息消息通过通过网络网络来访问的来访问的Interface, 这个这个Interface描述了一组可访问的操作。描述了一组可访问的操作。由由SOAP+WSDL包装的包装的Object适应松散耦合的网络环境,可通过适应松散耦合的网络环境,可通过Web访问,手段是访问,手段是SOAP Message服务的行为、输
13、入服务的行为、输入/输出都可使用输出都可使用WSDL描述描述WebServiceInterfaceInvocationSOAPWSDLDescriptionServiceRequestor山东大学计算机科学与技术学院什么是什么是 XML Web Service?通过标准的通过标准的通过标准的通过标准的 Web Web 协议(协议(协议(协议(HTTPHTTP)可可可可编程访问的编程访问的编程访问的编程访问的WEBWEB组件组件组件组件开放的开放的 Internet 传输协议传输协议XML WebXML WebserviceserviceSOAPSOAPn nSOAP SOAP (简单对象访问协
14、议)简单对象访问协议)简单对象访问协议)简单对象访问协议) 用用用用 XML XML 实实实实现现现现 Web service Web service 的标准协议的标准协议的标准协议的标准协议 WSDLWSDLXML Web services XML Web services Description LanguageDescription Languagen nWSDL WSDL 描述描述描述描述Web service Web service 的语言规范,相的语言规范,相的语言规范,相的语言规范,相当于访问当于访问当于访问当于访问Web service Web service 的接口的接口的接
15、口的接口n n基于开放的基于开放的基于开放的基于开放的 Internet Internet 协议协议协议协议XML and HTTPXML and HTTPUDDIUDDIUniversal Description, Universal Description, Discovery and IntegrationDiscovery and Integrationn nUDDI - Web service UDDI - Web service 的黄页的黄页的黄页的黄页山东大学计算机科学与技术学院What is a Web Service?e-Business驱动了驱动了Web Service的发
16、展,而的发展,而Web Service的基石是的基石是Web技术、技术、IT技术和对象技术的融技术和对象技术的融合。合。高度可集成的、基于高度可集成的、基于Web的对象的对象面向对象编程面向对象编程能够将现有的企业应用使用能够将现有的企业应用使用SOAP包装、包装、WSDL描述,从而发描述,从而发布企业的商务功能或商务数据布企业的商务功能或商务数据山东大学计算机科学与技术学院Web Services TechnologiesSOAP(Simple Object Access Protocol) XML格式的消息交换协议格式的消息交换协议消息消息/文档交换协议文档交换协议用来执行服务调用用来执行
17、服务调用Web服务对象的面向对象的访问界面服务对象的面向对象的访问界面WSDL(Web Service Description Language) 基于基于XML的组件描述的组件描述用来描述服务用来描述服务UDDI(Universal Description, Discovery and Integration) 可通过可通过Web访问的注册中心访问的注册中心使用使用SOAP Message来访问来访问用来发布、查找服务用来发布、查找服务WSFL(Web Service Flow Language Web Service间工作流描述间工作流描述山东大学计算机科学与技术学院Web 服务体系结构中
18、的操作服务体系结构中的操作发布发布 为了使服务可访问,需要发布服务描述以使服务请求为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。者可以查找它。查找查找 在查找操作中,服务请求者直接检索服务描述或在服在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型。对于服务请求者,可务注册中心中查询所要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到查找操作:在设计能会在两个不同的生命周期阶段中牵涉到查找操作:在设计时为了程序开发而检索服务的接口描述,而在运行时为了调时为了程序开发而检索服务的接口描述,而在运行时为了调用而检索服务的绑定和位置描述。
19、用而检索服务的绑定和位置描述。 绑定绑定 最后需要调用服务。在绑定操作中,服务请求者使用最后需要调用服务。在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联系和调用服务,从而在运服务描述中的绑定细节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互行时调用或启动与服务的交互山东大学计算机科学与技术学院Web服务流程图服务流程图服务提供者 1.实现并部署:程序设计语言 服务 服务中介者 UDDI注册中心 4.请求返回:WSDL 2.服务发布:WSDL+UDDI API 服务请求者 3.服务发现: UDDI API+参数 绑 定 山东大学计算机科学与技术学院Where is SOA
20、P and WSDL?WSDLPublish的内容、的内容、Find的返回结果和的返回结果和Bind的信息都是的信息都是WSDL描述的服务信描述的服务信息息SOAPService Registry的访问的访问(Publish/Find)、Service的访问都是的访问都是通过通过SOAP Message实现实现ServiceProviderServiceRegistryServiceRequestorPublishBindFind山东大学计算机科学与技术学院Web 服务开发生命周期服务开发生命周期1. 构建构建包括开发和测试包括开发和测试 Web 服务实现、定义服务接口描述和定义服务实现、定义
21、服务接口描述和定义服务实现描述。服务实现描述。2. 部署部署包括向服务请求者或服务注册中心发布服务接口和服务实包括向服务请求者或服务注册中心发布服务接口和服务实现定义,以及把现定义,以及把 Web 服务的可执行文件部署到执行环境中服务的可执行文件部署到执行环境中3. 运行运行在运行阶段,可以调用在运行阶段,可以调用 Web 服务。服务。Web 服务可操作服务可操作, 服务服务请求者可以进行查找和绑定操作。请求者可以进行查找和绑定操作。4. 管理管理包括持续的管理和经营包括持续的管理和经营 Web 服务应用程序。服务应用程序。山东大学计算机科学与技术学院Web Service的分类的分类Busi
22、ness-Oriented Web Service面向企业应用的服务面向企业应用的服务将企业内部的大型系统,如将企业内部的大型系统,如ERP、CRM系统等,封装成系统等,封装成Web Service的形式的形式在网络中(在网络中(Internet or Intranet)提供。提供。企业内部的应用更容易集成;企业间的众多合作伙伴的系统对接更加容易企业内部的应用更容易集成;企业间的众多合作伙伴的系统对接更加容易Customer-Oriented Web Service面向电子商务用户的服务面向电子商务用户的服务主要针对原有主要针对原有B2C网站的改造,网站的改造,Web Service技术为技术
23、为B2C网站增加了网站增加了Web Service的应用界面,使得桌面工具可以提供跨越多个的应用界面,使得桌面工具可以提供跨越多个B2C服务的桌面服务服务的桌面服务如将机票预定、炒股等服务集成到一个个人理财桌面系统中使得用户使用使得用户使用Internet更加方便,能够获得更加便捷的服务更加方便,能够获得更加便捷的服务山东大学计算机科学与技术学院Web Service的分类的分类Device-Oriented Web Service面向其它接入设备的服务面向其它接入设备的服务如手持设备、日用家电等将原有的网络服务封装成将原有的网络服务封装成Web Service,支持除支持除PC以外的各种终端
24、以外的各种终端如天气预报、如天气预报、E-mail服务、股票信息等服务、股票信息等System-Oriented Web Service传统意义上的系统服务传统意义上的系统服务如用户权限认证、系统监控等服务如用户权限认证、系统监控等服务将这些系统级服务封装成将这些系统级服务封装成Web Service,发布到发布到Internet或者企业内部的或者企业内部的Intranet上,其作用范围将从单个系统或局部网络拓展到整个企业网络或整上,其作用范围将从单个系统或局部网络拓展到整个企业网络或整个个Internet上。上。如一个跨国企业的所有在线服务可以使用同一个用户权限认证服务山东大学计算机科学与技
25、术学院WSDL山东大学计算机科学与技术学院什么是什么是WSDLWSDL(Web Service Description Language)是采用是采用XML语语言来描述言来描述Web Service的属性的语言,的属性的语言,WSDL文档可以包含以文档可以包含以下内容:下内容:What:Web Service做什么做什么Where:Web Service位于哪里位于哪里How:怎样调用怎样调用如果如果将将Web Service作为一个分布式对象来看,作为一个分布式对象来看,WSDL就是就是Web Service的接口描述语言(的接口描述语言(IDL)。)。WSDL定义了一套基于定义了一套基于X
26、ML的语法,将的语法,将Web Service描述为描述为能够进行消息交换的服务访问点的集合。能够进行消息交换的服务访问点的集合。山东大学计算机科学与技术学院Web Services Description Language使用使用XML进行描述进行描述类似类似IDL, 不过是使用不过是使用XML格式格式描述了服务的操纵信息描述了服务的操纵信息Service InterfaceImplementation DetailsAccess ProtocolContact EndpointWSDL是早先技术的综合是早先技术的综合IBMs NASSLMicrosofts SDL山东大学计算机科学与技术学
27、院WSDL文档示例文档示例definitions name=urn:AddressFetcher2 . /定义服务使用的任何复杂数据类型定义服务使用的任何复杂数据类型/一个一个message对应在调用者和服务之间传递的一条消息,要用到前面定义的数据类型对应在调用者和服务之间传递的一条消息,要用到前面定义的数据类型./定义服务提供什么操作,要用到前面定义的消息定义服务提供什么操作,要用到前面定义的消息binding name=AddressBookSOAPBinding/定义服务如何被调用定义服务如何被调用/描述服务位于哪里描述服务位于哪里山东大学计算机科学与技术学院山东大学计算机科学与技术学院
28、WSDL数据类型定义数据类型定义xsd:schema targetNamespace=urn:xml-soap-address-demoxmlns:xsd=http:/www.w3.org/1999/XMLSchema山东大学计算机科学与技术学院WSDL消息定义消息定义山东大学计算机科学与技术学院WSDL服务提供的操作服务提供的操作山东大学计算机科学与技术学院WSDL调用方式调用方式 /.山东大学计算机科学与技术学院WSDL服务描述服务描述山东大学计算机科学与技术学院UDDI山东大学计算机科学与技术学院What is UDDI?为加速为加速Web Service的推广、加强的推广、加强Web
29、Service的互的互操作能力而推出的一个计划操作能力而推出的一个计划基于标准的基于标准的服务描述和发现服务描述和发现的的规范规范(specification)以以资源共享资源共享的方式由多个运作者一起以的方式由多个运作者一起以Web Service的形式运的形式运作作UDDI商业注册中心商业注册中心IT业界和商业界的领导者的合作业界和商业界的领导者的合作Universal Description, Discovery and Integration山东大学计算机科学与技术学院What is UDDIUDDIUniversal Description,Discovery and Integra
30、tion是一套基于是一套基于Web的的Web Service注册中心的注册中心的实现标准规范实现标准规范注册中心维护了一个Web Service的全球目录,其中的信息描述格式是基于通用的XML格式的。包含包含注册Web Service和和发现Web Service的访问协议的实现标的访问协议的实现标准准山东大学计算机科学与技术学院UDDI Roles and OperationsService Provider提供提供e-Business Service通过通过Service Registry发布发布(Publish)其提供的可用的其提供的可用的ServiceServiceProviderSe
31、rviceRegistryServiceRequestorPublish山东大学计算机科学与技术学院UDDI Roles and OperationsService Registry为为Service的发布和定位提供支持的发布和定位提供支持类似电话黄页类似电话黄页ServiceProviderServiceRegistryServiceRequestorPublish山东大学计算机科学与技术学院UDDI Roles and OperationsService Requestor通过通过 Service Registry发现发现(Find)需需要的要的Service绑定绑定(Bind) Serv
32、ice Provider提供的提供的Service, 并实施调用并实施调用ServiceProviderServiceRegistryServiceRequestorPublishBindFind山东大学计算机科学与技术学院服务发现服务发现-UDDIUDDI 计划最初是由总部在美国加利福尼亚的计划最初是由总部在美国加利福尼亚的Ariba 发起发起的,并在的,并在 IBM 和微软公司积极参与下开发的。尝试解决和微软公司积极参与下开发的。尝试解决电子商务交易的集成和自动化问题。电子商务交易的集成和自动化问题。UDDI在两个方面提供了其解决方案:在两个方面提供了其解决方案: 1.它定义了一系列技术规
33、范,使商家可以用来描述自身、他它定义了一系列技术规范,使商家可以用来描述自身、他们的产品和服务,以及他们在们的产品和服务,以及他们在Web的商业过程。的商业过程。 2.有一个全球企业注册表,能使跨越多个平台上的企业方便有一个全球企业注册表,能使跨越多个平台上的企业方便地搜索和发现对方。这个注册表将是免费的。地搜索和发现对方。这个注册表将是免费的。山东大学计算机科学与技术学院UDDI商业注册商业注册UDDI计划的核心组件是计划的核心组件是UDDI商业注册,它使用商业注册,它使用XML文档来描述企业及文档来描述企业及其提供的其提供的Web Service。从概念上讲,从概念上讲,UDDI商业注册所
34、提供的信息包含三商业注册所提供的信息包含三部分:部分:White Page包含地址、联系方法、已知的企业标识Yellow Page包含基于标准分类法的行业类别Green Page包含关于该企业所提供的Web Service的技术信息,其形式可能是指向文件或URL的指针,而这些文件或URL是为服务发现机制服务的。山东大学计算机科学与技术学院UDDI商业注册商业注册现在可用的商业注册中心:现在可用的商业注册中心:IBM商业注册中心商业注册中心https:/ Data商业实体注册其自身的发布信商业实体注册其自身的发布信息息标准实体标准实体, 程序员程序员, 商业实体注商业实体注册他们提供或所有的册他
35、们提供或所有的Service Type信息信息WhiteWhitePagesPagesYellowYellowPagesPagesGreenGreenPagesPagesService TypeRegistrations山东大学计算机科学与技术学院UDDI数据模型数据模型UDDI注册中包含了四类信息注册中包含了四类信息(UDDI 2.0中引入了第五种类型中引入了第五种类型publisherAssertion)商业实体信息(商业实体信息(businessEntity)包含发布Web Service的企业的信息企业信息可以按照NAICS工业分类法、UN/SPSC产品分类法、以及地理位置分类法进行分
36、类商业服务信息(商业服务信息(businessService)企业发布的Web service的描述服务信息也可以按照类似的分类方法组织绑定模板信息绑定模板信息(bindingTemplate)指向一个安装的Web Service(目标地址)和一个相关的WSDL文件一个商业服务条目可以有多个绑定模板信息技术规范信息技术规范信息/服务类型(服务类型(tModel)指向相应的Web Service绑定文件山东大学计算机科学与技术学院UDDI at WorkHarbour Metals通过本地通过本地的的 ASPASP创建了自身的站点创建了自身的站点1.SydneyNMarketplaces和和se
37、arch engines查询了查询了UBR, 缓存了缓存了Harbour Metals的技术数据的技术数据 3. 客户和其他企业发现了客户和其他企业发现了Harbour Metals并开始并开始与之进行与之进行e-Commerce4. 2. ASP 将将 Harbour Metals注册进了注册进了 UBRUDDI RegistryHarbourHarbour Metal, Metal, 澳洲的一家铸铁企业澳洲的一家铸铁企业澳洲的一家铸铁企业澳洲的一家铸铁企业SydneyNSydneyN, , 澳洲的一个澳洲的一个澳洲的一个澳洲的一个ASPASPASPASP山东大学计算机科学与技术学院Regi
38、stry OperationIBMMicrosoftHPotherotherUDDI.orgqueriesPeer nodes(websites)Peer nodes(websites) 商业实体可以在任意结商业实体可以在任意结商业实体可以在任意结商业实体可以在任意结点注册点注册点注册点注册 不同的结点将会每天定不同的结点将会每天定不同的结点将会每天定不同的结点将会每天定期同步复制数据期同步复制数据期同步复制数据期同步复制数据 在所有结点都会包含注在所有结点都会包含注在所有结点都会包含注在所有结点都会包含注册数据的全集册数据的全集册数据的全集册数据的全集所有的结点都支持所有的结点都支持所有的结
39、点都支持所有的结点都支持UDDIUDDI规范中定义的整套规范中定义的整套规范中定义的整套规范中定义的整套SOAP SOAP APIAPI山东大学计算机科学与技术学院SOAP山东大学计算机科学与技术学院What is SOAPSOAP是在是在松散的、分布的环境松散的、分布的环境中使用中使用XML交换交换结构结构化的和类型化的信息化的和类型化的信息的一种简单协议。的一种简单协议。SOAP本身并不定义任何应用语义,如编程模型或特本身并不定义任何应用语义,如编程模型或特定语义实现,它只定义了一种简单的定语义实现,它只定义了一种简单的以模块化的方式以模块化的方式包装数据包装数据的机制。的机制。将数据将数
40、据/对象打包成对象打包成XML格式的数据格式的数据public class PersonString name;int age;/方法的定义.zhang320山东大学计算机科学与技术学院What is SOAPSOAP没有定义任何底层的传输协议没有定义任何底层的传输协议可以使用可以使用HTTP、FTP、SMTP或者或者JMS,甚至是自定义协议来传输甚至是自定义协议来传输SOAP报报文文一般使用一般使用HTTP协议协议从某种意义上讲,从某种意义上讲,SOAP可以简单理解为:可以简单理解为:HTTP+XML+RPCHTTP作为底层通信协议作为底层通信协议RPC作为一致性的调用途径作为一致性的调用途
41、径XML作为数据传输的格式作为数据传输的格式SOAP的调用效率比较低的调用效率比较低HTTP不是有效率的通信协议不是有效率的通信协议XML需要额外的文件解析需要额外的文件解析山东大学计算机科学与技术学院SOAP Hides the ImplementationUser SOAP RequestSOAP ResponseServiceProviderHTTPServer?SOAPProcessor用户只需要了解用户只需要了解SOAP消息的格式,消息的格式,而对底层实现的细节可以无需关心而对底层实现的细节可以无需关心EJB? Corba? DCOM?山东大学计算机科学与技术学院工作过程:一个简单的
42、工作过程:一个简单的SOAP请求请求/响应响应用用XML打包请求打包请求将接口名作为根结点将接口名作为根结点方法和参数作为结点方法和参数作为结点将请求发送给服务器将请求发送给服务器不创建自己的不创建自己的TCP/IP消息,利用消息,利用HTTP将请求封装成将请求封装成HTTP POST请求格式发出请求格式发出Johnpublic interface Hellopublic String sayHelloTo(String name);山东大学计算机科学与技术学院一个简单的一个简单的SOAP请求请求/响应响应服务器接收到请求,解码服务器接收到请求,解码XML,处理请求,然后处理请求,然后以以XM
43、L格式向客户发送响应格式向客户发送响应与请求比较,方法的结点名字变为请求的方法名后缀与请求比较,方法的结点名字变为请求的方法名后缀Response客户程序知道自己调用了哪个方法,根据方法名后缀客户程序知道自己调用了哪个方法,根据方法名后缀Response寻寻找调用方法的返回值找调用方法的返回值Hello John, How are you?山东大学计算机科学与技术学院SOAP Message structureRequest/Response MessageRequest 调用远端对象的某个方法调用远端对象的某个方法Response 返回该方法运行后的输出结果返回该方法运行后的输出结果User
44、 SOAP RequestSOAP ResponseServiceProviderWebService山东大学计算机科学与技术学院SOAP Message structureSOAP 定义了一个定义了一个“envelope”对象对象使用使用“envelope”包装消息自身包装消息自身消息可以采用自身特定的消息可以采用自身特定的XML词汇词汇MessageEnvelopeSOAP词汇集词汇集自定义自定义词汇词汇山东大学计算机科学与技术学院A SOAP Request Message MSFT 山东大学计算机科学与技术学院A SOAP Response Message 78.2 山东大学计算机科学
45、与技术学院SOAP术语术语SOAP header能够被SOAP消息路径中任意的SOAP接收者处理的一组SOAP条目(0个或多个)SOAP body能够被SOAP消息路径中的最终SOAP接收者处理的一组SOAP条目(0个或多个)SOAP faultSOAP节点产生的用于包含错误信息的特殊的SOAP条目SOAP EnvelopeSOAP Header.SOAP BlockSOAP BlockSOAP Body.SOAP BlockSOAP Block山东大学计算机科学与技术学院SOAP术语术语消息发送者和接收者概念消息发送者和接收者概念SOAP发送者发送者发出SOAP消息的节点SOAP接收者接收者
46、接收SOAP消息的节点SOAP消息路径消息路径为传送一个简单的SOAP消息而要经过的一组SOAP发送者和SOAP接收者。其中包含了初始SOAP发送者、0个或多个SOAP中介以及最终SOAP接收者。初始初始SOAP发送者发送者SOAP消息的最初产生者,消息路径中的第一个节点SOAP中介中介中介既是发送者,又是接收者。处理一组确定的SOAP条目,然后将SOAP消息转发给消息路径上的下一个SOAP节点最终最终SOAP接收者接收者由初始SOAP发送者指定的通过SOAP消息路径传送SOAP消息的最终SOAP接收者。如果在SOAP消息路径中有SOAP节点产生了SOAP错误,则消息将不会到达最终接收者。山东
47、大学计算机科学与技术学院SOAP消息消息SOAP消息由一个强制的消息由一个强制的SOAP Envelope、一个可选的一个可选的SOAP Header和一个强制和一个强制的的SOAP Body组成的组成的XML文档。文档。SOAP Envelope表示一个SOAP消息的顶级元素SOAP HeaderHeader是为了支持在松散环境下在通信方之间尚未预先达成一致的情况下为SOAP消息增加特性的通用机制。SOAP定义了很少的一些属性来用于指明谁可以处理该特性以及它是可选的还是强制的。SOAP BodyBody为该消息的最终接收者所想要得到的那些强制信息提供了一个容器。此外,SOAP定义了Body的
48、一个字元素Fault用于报告错误。山东大学计算机科学与技术学院SOAP RPC表示表示利用利用XML的可扩展性和可伸缩性来包装和交换的可扩展性和可伸缩性来包装和交换RPC调用。调用。为实施一个方法调用,需要以下信息为实施一个方法调用,需要以下信息目标目标SOAP节点的节点的URI方法名方法名可选的方法或过程的特征可选的方法或过程的特征方法或过程的参数方法或过程的参数可选的头数据可选的头数据RPC调用和响应都是在调用和响应都是在SOAP Body元素中传递元素中传递山东大学计算机科学与技术学院SOAP请求请求John山东大学计算机科学与技术学院SOAP响应响应Hello John, How ar
49、e you doing?山东大学计算机科学与技术学院绑定到绑定到HTTP的的SOAP将将SOAP绑定绑定到到HTTP上可以利用上可以利用HTTP丰富的特性丰富的特性SOAP很自然的利用很自然的利用HTTP的请求的请求/响应机制响应机制山东大学计算机科学与技术学院SOAP请求请求HTTPPOST http:/www.SmartH HTTP/1.0Content-Type: text/xml; charset=utf-8Content-Length: 587SOAPAction: http:/www.SmartH 200 OKContent-Type: text/xml; charset=utf-
50、8Content-Length: 615Hello John, How are you doing?山东大学计算机科学与技术学院UDDI and SOAPUser/Client UDDISOAP RequestUDDISOAP ResponseUDDI RegistryNodeHTTPServerSOAPProcessorUDDIRegistry ServiceB2B DirectoryCreate, View, Update, and DeleteregistrationsImplementation-neutral山东大学计算机科学与技术学院Web Service 与企业集成与企业集成山东
51、大学计算机科学与技术学院Web Service的应用前景的应用前景电子商务应用电子商务应用传统电子商务传统电子商务动态电子商务动态电子商务集成企业原有系统集成企业原有系统利用利用Web Service的的高度可集成特性高度可集成特性将企业运作的各个环节有效的联系起来,组成一个协同工作的将企业运作的各个环节有效的联系起来,组成一个协同工作的整体,从而使得企业的所有业务都真正整体,从而使得企业的所有业务都真正“自动化自动化”起来起来目前存在问题目前存在问题效率问题效率问题安全性、事务特性等高级特性的支持安全性、事务特性等高级特性的支持山东大学计算机科学与技术学院Web service 与应用集成需
52、求与应用集成需求大多数企业都有遗留下来的异构的系统大多数企业都有遗留下来的异构的系统 企业资源规划企业资源规划客户关系管理客户关系管理供应链管理供应链管理企业门户企业门户山东大学计算机科学与技术学院EAI Solution 企业应用集成(EAI):通过建立地层结构,来联系横贯整个企业的异构系统、应用、数据源等。山东大学计算机科学与技术学院使用使用Web Services的内部集成的内部集成注注山东大学计算机科学与技术学院全面启动全面启动Web Services浪潮浪潮IT Vendor积极投入积极投入IBM、Microsoft、Oracle、HP、Sun、BEA、SAP等等标准化组织标准化组织
53、W3CWorld Wide Web Consortium创立于创立于1994年年10月,致力于领月,致力于领导万维网导万维网,制定公共的协议,促进万维网的发展并确保其互操作性制定公共的协议,促进万维网的发展并确保其互操作性OASISOrganization for the Advancement of Structured Information Standards是一个致力于推动结构信息标准化的国际组织是一个致力于推动结构信息标准化的国际组织应用推广组织应用推广组织WS-I.org山东大学计算机科学与技术学院Web Services: Software EvolutionNOT a soft
54、ware revolution基于现有标准基于现有标准是现有系统的一个延展是现有系统的一个延展并不需要一个新的编程语言并不需要一个新的编程语言SOAP model is not new与与20年前的年前的RPC具有同样的目的具有同样的目的山东大学计算机科学与技术学院Web Services: Software EvolutionWhats new: 为调用远端的对象提供了一整套的为调用远端的对象提供了一整套的Internet规范,而使远程调用轻便非凡规范,而使远程调用轻便非凡使用了实现中立的消息格式使用了实现中立的消息格式UDDI: 一个可用一个可用service的通用统一的目录的通用统一的目录为商业聚合提供了不同层次的服务为商业聚合提供了不同层次的服务山东大学计算机科学与技术学院发展方向发展方向基于服务的查找,组合基于服务的查找,组合基于语义的服务基于语义的服务山东大学计算机科学与技术学院Resource developerWorks 中文网站中文网站 XML Webservice专专区区www.UDDI-China.org/中国中国UDDI技术联盟技术联盟www.ws-c.org/中国中国Web Services(协同发展协同发展)组织组织