第4讲 Web服务技术.ppt
第4讲Web服务技术第10章 Web Services开发情景:为什么要使用Web Services两个应用系统之间需要交互数据(通信)两个应用系统之间需要交互数据(通信)两个应用系统之间需要交互数据(通信)两个应用系统之间需要交互数据(通信)如果是同一种语言如果是同一种语言如果是同一种语言如果是同一种语言 JavaJava:EJBEJB(RMI/IIOPRMI/IIOP).Net.Net:.NETRemoting.NETRemoting(RPCRPC)如果是使用了不同的语言?如果是使用了不同的语言?如果是使用了不同的语言?如果是使用了不同的语言?JavaJava调用调用调用调用.Net.Net提供的功能?提供的功能?提供的功能?提供的功能?JavaJava.Net.Net?DBDB这种方式有什么弊端?这种方式有什么弊端?这种方式有什么弊端?这种方式有什么弊端?情景:为什么要使用Web Services什么是服务(什么是服务(什么是服务(什么是服务(ServicesServices)?)?)?)?传统上,我们把计算机后台程序提供的功能,称为传统上,我们把计算机后台程序提供的功能,称为传统上,我们把计算机后台程序提供的功能,称为传统上,我们把计算机后台程序提供的功能,称为“服务服务服务服务”(serviceservice)。通俗地说,)。通俗地说,)。通俗地说,)。通俗地说,“服务服务服务服务”就是计算机可以提供就是计算机可以提供就是计算机可以提供就是计算机可以提供的某一种功能。的某一种功能。的某一种功能。的某一种功能。根据来源的不同,根据来源的不同,根据来源的不同,根据来源的不同,“服务服务服务服务”又可以分成两种:又可以分成两种:又可以分成两种:又可以分成两种:本地服务:使用同一台机器提供的服务,不需要网络。本地服务:使用同一台机器提供的服务,不需要网络。本地服务:使用同一台机器提供的服务,不需要网络。本地服务:使用同一台机器提供的服务,不需要网络。网络服务:使用另一台计算机提供的服务,必须通过网络服务:使用另一台计算机提供的服务,必须通过网络服务:使用另一台计算机提供的服务,必须通过网络服务:使用另一台计算机提供的服务,必须通过网络才能完成。网络才能完成。网络才能完成。网络才能完成。情景:为什么要使用Web ServicesWebWeb服务是一种面向服务的架构的技术,通过服务是一种面向服务的架构的技术,通过服务是一种面向服务的架构的技术,通过服务是一种面向服务的架构的技术,通过标准的标准的标准的标准的WebWebWebWeb协议协议协议协议提提提提供服务,目的是供服务,目的是供服务,目的是供服务,目的是保证不同平台的应用服务可以互操作保证不同平台的应用服务可以互操作保证不同平台的应用服务可以互操作保证不同平台的应用服务可以互操作。根据根据根据根据W3CW3C的定义,的定义,的定义,的定义,WebWebWebWeb服务应当是一个软件系统,用以支持网络服务应当是一个软件系统,用以支持网络服务应当是一个软件系统,用以支持网络服务应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口间不同机器的互动操作。网络服务通常是许多应用程序接口间不同机器的互动操作。网络服务通常是许多应用程序接口间不同机器的互动操作。网络服务通常是许多应用程序接口(APIAPIAPIAPI)所组成的,它们透过网络,例如国际互联网)所组成的,它们透过网络,例如国际互联网)所组成的,它们透过网络,例如国际互联网)所组成的,它们透过网络,例如国际互联网(InternetInternetInternetInternet)的远程服务器端,执行客户所提交服务的请求。)的远程服务器端,执行客户所提交服务的请求。)的远程服务器端,执行客户所提交服务的请求。)的远程服务器端,执行客户所提交服务的请求。WebServiceWebService架构的基本思想,就是尽量把非核心功能交给其他架构的基本思想,就是尽量把非核心功能交给其他架构的基本思想,就是尽量把非核心功能交给其他架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。人去做,自己全力开发核心功能。人去做,自己全力开发核心功能。人去做,自己全力开发核心功能。JavaJava.Net.Netstubstub存根存根skeletonskeleton骨架骨架HTTP、XMLSOA与Web ServicesSOASOA是什么是什么是什么是什么 SOASOA是指为了解决在是指为了解决在是指为了解决在是指为了解决在InternetInternet环境下业务集成的需要,环境下业务集成的需要,环境下业务集成的需要,环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种通过连接能完成特定任务的独立功能实体实现的一种通过连接能完成特定任务的独立功能实体实现的一种通过连接能完成特定任务的独立功能实体实现的一种软件系统架构软件系统架构软件系统架构软件系统架构。面向服务是一种理念,面向服务的架构是基于这种理面向服务是一种理念,面向服务的架构是基于这种理面向服务是一种理念,面向服务的架构是基于这种理面向服务是一种理念,面向服务的架构是基于这种理念的念的念的念的架构方法架构方法架构方法架构方法。面向服务在不少方面是以面向对象为基础,当前典型面向服务在不少方面是以面向对象为基础,当前典型面向服务在不少方面是以面向对象为基础,当前典型面向服务在不少方面是以面向对象为基础,当前典型的面向服务的解决方案由服务和面向对象的组件构成。的面向服务的解决方案由服务和面向对象的组件构成。的面向服务的解决方案由服务和面向对象的组件构成。的面向服务的解决方案由服务和面向对象的组件构成。SOA与Web Services一个典型的电子商务流程一个典型的电子商务流程一个典型的电子商务流程一个典型的电子商务流程电子商务门户电子商务门户订单销售商销售商工厂工厂支付宝支付宝物流公司物流公司下订单清单浏览支付支付确认支付确认支付订单交货发货SOA与Web Services业务层业务层业务层业务层服务服务服务服务电子商务门户电子商务门户订单支付确认支付销售商销售商支付宝支付宝浏览工厂工厂物流公司物流公司组合组合服务服务服务服务清单订单下单发货支付确认支付交货业务层(服务)业务层(服务)SOA与Web Services服务之间是松耦合的服务之间是松耦合的服务之间是松耦合的服务之间是松耦合的服务可独立存在服务可独立存在服务可独立存在服务可独立存在网购电子商务门户网购电子商务门户订单支付确认支付销售商销售商支付宝支付宝浏览工厂工厂物流公司物流公司组合组合服务服务服务服务清单订单下单发货支付确认支付交货服务可独立存在:接口和实现可分离的。服务隐藏了服务实现内部复杂逻辑和技术。服务之间是松散耦合的,服务之间通过消息交互。SOA与Web Services在架构人员眼中:一切皆服务在架构人员眼中:一切皆服务在架构人员眼中:一切皆服务在架构人员眼中:一切皆服务组合组合服务服务服务服务清单 订单下单发货预支付支付交货技术技术业务业务管理人员业务人员设计人员开发人员客户客户合作伙伴合作伙伴构件技术构件技术分布对象技术分布对象技术应用服务器技术应用服务器技术架构人员SOA与Web ServicesSOASOA 一个架构方法。一个架构方法。一个架构方法。一个架构方法。将应用程序的不同功能单元(将应用程序的不同功能单元(将应用程序的不同功能单元(将应用程序的不同功能单元(服务服务服务服务)通过这些服务之)通过这些服务之)通过这些服务之)通过这些服务之间定义良好的接口和契约联系起来。间定义良好的接口和契约联系起来。间定义良好的接口和契约联系起来。间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实接口是采用中立的方式进行定义的,它应该独立于实接口是采用中立的方式进行定义的,它应该独立于实接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。现服务的硬件平台、操作系统和编程语言。现服务的硬件平台、操作系统和编程语言。现服务的硬件平台、操作系统和编程语言。构建在各种各样的系统中的服务可以以一种统一和通构建在各种各样的系统中的服务可以以一种统一和通构建在各种各样的系统中的服务可以以一种统一和通构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。用的方式进行交互。用的方式进行交互。用的方式进行交互。SOA与Web ServicesWebServicesWebServices 从外部的使用者的角度而言,从外部的使用者的角度而言,从外部的使用者的角度而言,从外部的使用者的角度而言,WebWeb服务是一种部署在服务是一种部署在服务是一种部署在服务是一种部署在WebWeb上的对象上的对象上的对象上的对象/组件组件组件组件,它有一个或多个端口(它有一个或多个端口(它有一个或多个端口(它有一个或多个端口(PortPort),),),),这些端口用于接收客户端的请求,并返回响应。这些端口用于接收客户端的请求,并返回响应。这些端口用于接收客户端的请求,并返回响应。这些端口用于接收客户端的请求,并返回响应。WebWeb服务的特点:服务的特点:服务的特点:服务的特点:WebWeb服务是基于标准的(服务是基于标准的(服务是基于标准的(服务是基于标准的(WSDL,UDDIWSDL,UDDI,SOAP,XML,TCP,HTTP,SMTPSOAP,XML,TCP,HTTP,SMTP)WebWeb服务是跨平台、跨语言的服务是跨平台、跨语言的服务是跨平台、跨语言的服务是跨平台、跨语言的 WebWeb服务是面向消息的服务是面向消息的服务是面向消息的服务是面向消息的 WebWeb服务获得了广泛的支持服务获得了广泛的支持服务获得了广泛的支持服务获得了广泛的支持 SOA与Web ServicesWebServicesWebServices应用应用应用应用SOA与Web ServicesSOASOA架构架构架构架构第10章 Web Service开发10.1Web10.1Web服务概述服务概述服务概述服务概述 10.2WEBService10.2WEBService基础基础基础基础 10.3XML10.3XML基础基础基础基础10.410.4使用使用使用使用JAX-WSJAX-WS构建简单的构建简单的构建简单的构建简单的WebServiceWebService10.1 Web Service概述简单来说,简单来说,简单来说,简单来说,Web ServiceWeb ServiceWeb ServiceWeb Service就是一个就是一个就是一个就是一个向外界暴露出接口的能向外界暴露出接口的能向外界暴露出接口的能向外界暴露出接口的能够通过网络进行远程调用够通过网络进行远程调用够通过网络进行远程调用够通过网络进行远程调用的应用程序。的应用程序。的应用程序。的应用程序。更准确地说:更准确地说:更准确地说:更准确地说:一方面一方面一方面一方面Web ServiceWeb ServiceWeb ServiceWeb Service是一种部署在是一种部署在是一种部署在是一种部署在WebWebWebWeb上的对象上的对象上的对象上的对象;另一方面另一方面另一方面另一方面Web ServiceWeb ServiceWeb ServiceWeb Service是建立在以是建立在以是建立在以是建立在以XMLXMLXMLXML为主的、开放的为主的、开放的为主的、开放的为主的、开放的WebWebWebWeb标标标标准协议规范的基础上的分布式应用新平台准协议规范的基础上的分布式应用新平台准协议规范的基础上的分布式应用新平台准协议规范的基础上的分布式应用新平台,也就是说也就是说也就是说也就是说Web Web Web Web ServiceServiceServiceService的实质是一套标准,它定义了应用程序如何在的实质是一套标准,它定义了应用程序如何在的实质是一套标准,它定义了应用程序如何在的实质是一套标准,它定义了应用程序如何在WebWebWebWeb上实现互操作。上实现互操作。上实现互操作。上实现互操作。只需要遵守这一套只需要遵守这一套只需要遵守这一套只需要遵守这一套标准标准标准标准,人们可以用任何语言,在任何,人们可以用任何语言,在任何,人们可以用任何语言,在任何,人们可以用任何语言,在任何平台上实现所需要的平台上实现所需要的平台上实现所需要的平台上实现所需要的Web ServiceWeb ServiceWeb ServiceWeb Service,并且可以顺利地同网,并且可以顺利地同网,并且可以顺利地同网,并且可以顺利地同网络上任何其它亦遵守上述协议的络上任何其它亦遵守上述协议的络上任何其它亦遵守上述协议的络上任何其它亦遵守上述协议的Web ServiceWeb ServiceWeb ServiceWeb Service组件进行互组件进行互组件进行互组件进行互操作,从而可以实现一种高效、低廉的异构平台上应用操作,从而可以实现一种高效、低廉的异构平台上应用操作,从而可以实现一种高效、低廉的异构平台上应用操作,从而可以实现一种高效、低廉的异构平台上应用的集成。对于从事企业应用开发来讲,学习的集成。对于从事企业应用开发来讲,学习的集成。对于从事企业应用开发来讲,学习的集成。对于从事企业应用开发来讲,学习Web ServiceWeb ServiceWeb ServiceWeb Service技术是相当必要的。技术是相当必要的。技术是相当必要的。技术是相当必要的。10.1 Web Service概述WebServicesWebServices(WebWeb服务)定义:服务)定义:服务)定义:服务)定义:WebServiceWebService是一种是一种是一种是一种新的新的新的新的WebWeb应用程序分支应用程序分支应用程序分支应用程序分支,它们是自,它们是自,它们是自,它们是自包含、自描述、模块化的应用,可以在网络包含、自描述、模块化的应用,可以在网络包含、自描述、模块化的应用,可以在网络包含、自描述、模块化的应用,可以在网络(通常为通常为通常为通常为 Web)Web)中被描述、发布、查找以及通过中被描述、发布、查找以及通过中被描述、发布、查找以及通过中被描述、发布、查找以及通过WebWeb来调用。来调用。来调用。来调用。使用标准的互联网协议,像超文本传输协议使用标准的互联网协议,像超文本传输协议使用标准的互联网协议,像超文本传输协议使用标准的互联网协议,像超文本传输协议HTTPHTTP和和和和 XMLXML。WebserviceWebservice平台是一套标准,它定义了应用程序如何平台是一套标准,它定义了应用程序如何平台是一套标准,它定义了应用程序如何平台是一套标准,它定义了应用程序如何在在在在WebWeb上实现互操作性。你可以用任何你喜欢的语言,上实现互操作性。你可以用任何你喜欢的语言,上实现互操作性。你可以用任何你喜欢的语言,上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写在任何你喜欢的平台上写在任何你喜欢的平台上写在任何你喜欢的平台上写WebserviceWebservice。10.1 Web Service概述WebServiceWebService的特点的特点的特点的特点 跨平台的可互操作性跨平台的可互操作性跨平台的可互操作性跨平台的可互操作性 跨防火墙的通信跨防火墙的通信跨防火墙的通信跨防火墙的通信 应用程序集成应用程序集成应用程序集成应用程序集成 B2BB2B的集成的集成的集成的集成 软件和数据重用软件和数据重用软件和数据重用软件和数据重用 普遍、易用性普遍、易用性普遍、易用性普遍、易用性10.1.1 Web Service的核心标准WebServiceWebService的核心标准的核心标准的核心标准的核心标准 XMLXML SOAPSOAP WSDLWSDL UDDIUDDI10.1.1 Web Service的核心标准XMLXML和和和和XMLSchemaXMLSchema XML(eXtensibleMarkupLangugageXML(eXtensibleMarkupLangugage,即可扩展标记语言,即可扩展标记语言,即可扩展标记语言,即可扩展标记语言)是是是是WebServiceWebService技术架构的基石,它是技术架构的基石,它是技术架构的基石,它是技术架构的基石,它是WebServiceWebService中中中中表示数据的表示数据的表示数据的表示数据的基本格式基本格式基本格式基本格式。XMLSchemaXMLSchema定义了一套标准的数据类型,并给出了一种语言来定义了一套标准的数据类型,并给出了一种语言来定义了一套标准的数据类型,并给出了一种语言来定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型,扩展这套数据类型,扩展这套数据类型,扩展这套数据类型,WebServiceWebService平台就是用平台就是用平台就是用平台就是用XMLSchemaXMLSchema作为作为作为作为其数据类型系统的其数据类型系统的其数据类型系统的其数据类型系统的。XMLXMLXMLXMLXMLSchemaXMLSchemaXMLSchemaXMLSchema10.1.1 Web Service的核心标准SOAPSOAP SOAP(SimpleObjectAccessProtocolSOAP(SimpleObjectAccessProtocol,简单对象访问协议简单对象访问协议简单对象访问协议简单对象访问协议)提供了标准的提供了标准的提供了标准的提供了标准的RPCRPC(远程过程调用协议远程过程调用协议远程过程调用协议远程过程调用协议)方法来调用方法来调用方法来调用方法来调用WebServiceWebService。SOAPSOAP规范中定义了规范中定义了规范中定义了规范中定义了SOAPSOAP消息的格式,以及怎样通过消息的格式,以及怎样通过消息的格式,以及怎样通过消息的格式,以及怎样通过HTTPHTTP协协协协议来使用议来使用议来使用议来使用SOAPSOAP。SOAPSOAP是是是是基于基于基于基于XMLXML和和和和XSDXSD(XMLSchemasDefinition)(XMLSchemasDefinition)的,其中的,其中的,其中的,其中XMLXML是是是是SOAPSOAP的数据编码方式。的数据编码方式。的数据编码方式。的数据编码方式。10.1.1 Web Service的核心标准WSDLWSDL WSDL(WebServicesDescriptionLanguageWSDL(WebServicesDescriptionLanguage,WebServicesWebServices描描描描述语言述语言述语言述语言)是一种基于是一种基于是一种基于是一种基于XMLXML的,的,的,的,用于描述用于描述用于描述用于描述WebServiceWebService及其操作、参及其操作、参及其操作、参及其操作、参数和返回值的语言数和返回值的语言数和返回值的语言数和返回值的语言。一些最新的开发工具既能根据一些最新的开发工具既能根据一些最新的开发工具既能根据一些最新的开发工具既能根据WebServiceWebService生成生成生成生成WSDLWSDL文档,又能文档,又能文档,又能文档,又能通过导入通过导入通过导入通过导入WSDLWSDL文档,生成调用相应文档,生成调用相应文档,生成调用相应文档,生成调用相应WebServiceWebService的代码。的代码。的代码。的代码。10.1.1 Web Service的核心标准UDDIUDDI UDDI(UniversalDescriptionDiscoveryIntegrationUDDI(UniversalDescriptionDiscoveryIntegration,统一描统一描统一描统一描述、发现和集成协议述、发现和集成协议述、发现和集成协议述、发现和集成协议)是是是是WebServiceWebService架构下核心的架构下核心的架构下核心的架构下核心的服务描述、服务描述、服务描述、服务描述、发现和集成机制发现和集成机制发现和集成机制发现和集成机制,其目的是在网上自动查找,其目的是在网上自动查找,其目的是在网上自动查找,其目的是在网上自动查找WebServiceWebService。一旦。一旦。一旦。一旦WebServiceWebService注册到注册到注册到注册到UDDIUDDI,客户就可以很方便地查找和定位到,客户就可以很方便地查找和定位到,客户就可以很方便地查找和定位到,客户就可以很方便地查找和定位到所需要的所需要的所需要的所需要的WebServiceWebService。10.1.2 Web Service体系架构服务提供者服务提供者服务提供者服务提供者(Service(ServiceProvider)Provider)从企业的角度看,从企业的角度看,从企业的角度看,从企业的角度看,这是服务的所有者。这是服务的所有者。这是服务的所有者。这是服务的所有者。从体系结构的角度从体系结构的角度从体系结构的角度从体系结构的角度看,这是托管被访看,这是托管被访看,这是托管被访看,这是托管被访问服务的平台。问服务的平台。问服务的平台。问服务的平台。服务请求者服务请求者服务请求者服务请求者(ServiceRequestor)(ServiceRequestor)从企业的角度看,这是要求满足特定功能的企业。从体系结构的角从企业的角度看,这是要求满足特定功能的企业。从体系结构的角从企业的角度看,这是要求满足特定功能的企业。从体系结构的角从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务交互的应用程序。服务度看,这是寻找并调用服务,或启动与服务交互的应用程序。服务度看,这是寻找并调用服务,或启动与服务交互的应用程序。服务度看,这是寻找并调用服务,或启动与服务交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界面的程序请求者角色可以由浏览器来担当,由人或无用户界面的程序请求者角色可以由浏览器来担当,由人或无用户界面的程序请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,例如,例如,例如,另一个另一个另一个另一个WebService)WebService)来控制它。来控制它。来控制它。来控制它。服务注册中心服务注册中心服务注册中心服务注册中心(ServiceRegistry)(ServiceRegistry)这是可搜索的服务描述注册中心,服务提供者在此发布他们的这是可搜索的服务描述注册中心,服务提供者在此发布他们的这是可搜索的服务描述注册中心,服务提供者在此发布他们的这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。服务描述。服务描述。服务描述。10.1.2 Web Service体系架构Bind(Bind(绑定绑定绑定绑定)服务请求者通过绑定调用服务请求者通过绑定调用服务请求者通过绑定调用服务请求者通过绑定调用服务提供者提供的服务。服务提供者提供的服务。服务提供者提供的服务。服务提供者提供的服务。Find(Find(查找查找查找查找)服务请求者可以通服务请求者可以通服务请求者可以通服务请求者可以通过服务注册中心查过服务注册中心查过服务注册中心查过服务注册中心查找特定种类的服务。找特定种类的服务。找特定种类的服务。找特定种类的服务。Publish(Publish(发布发布发布发布)服务提供者发布服务描服务提供者发布服务描服务提供者发布服务描服务提供者发布服务描述以使服务可访问并且述以使服务可访问并且述以使服务可访问并且述以使服务可访问并且服务请求者可以查找它。服务请求者可以查找它。服务请求者可以查找它。服务请求者可以查找它。第10章 Web Service开发10.1Web10.1Web服务概述服务概述服务概述服务概述 10.2WEBService10.2WEBService基础基础基础基础 10.3XML10.3XML基础基础基础基础10.410.4使用使用使用使用JAX-WSJAX-WS构建简单的构建简单的构建简单的构建简单的WebServiceWebService10.2.1 SOAPSOAP(SimpleObjectAccessProtocolSOAP(SimpleObjectAccessProtocol,简单对象访问协,简单对象访问协,简单对象访问协,简单对象访问协议议议议)是在分散或分布式的环境中交换信息的简单的协议,是是在分散或分布式的环境中交换信息的简单的协议,是是在分散或分布式的环境中交换信息的简单的协议,是是在分散或分布式的环境中交换信息的简单的协议,是一个基于一个基于一个基于一个基于XMLXML的协议。的协议。的协议。的协议。SOAPSOAP在在在在WebServiceWebService中作为用于中作为用于中作为用于中作为用于XMLXML消息传递的一种非消息传递的一种非消息传递的一种非消息传递的一种非常普遍的协议,它包括四个部分:常普遍的协议,它包括四个部分:常普遍的协议,它包括四个部分:常普遍的协议,它包括四个部分:SOAPSOAP封装封装封装封装(envelop)(envelop),封装定义了一个描述消息中的内容是什么,封装定义了一个描述消息中的内容是什么,封装定义了一个描述消息中的内容是什么,封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;是谁发送的,谁应当接受并处理它以及如何处理它们的框架;是谁发送的,谁应当接受并处理它以及如何处理它们的框架;是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAPSOAP编码规则编码规则编码规则编码规则(encodingrules)(encodingrules),用于表示应用程序需要使用的,用于表示应用程序需要使用的,用于表示应用程序需要使用的,用于表示应用程序需要使用的数据类型的实例;数据类型的实例;数据类型的实例;数据类型的实例;SOAPRPCSOAPRPC表示表示表示表示(RPCrepresentation)(RPCrepresentation),表示远程过程调用和应答,表示远程过程调用和应答,表示远程过程调用和应答,表示远程过程调用和应答的协定;的协定;的协定;的协定;SOAPSOAP绑定绑定绑定绑定(binding)(binding),使用底层协议交换信息。,使用底层协议交换信息。,使用底层协议交换信息。,使用底层协议交换信息。虽然这四个部分都作为虽然这四个部分都作为虽然这四个部分都作为虽然这四个部分都作为SOAPSOAP的一部分定义的,但它们在功的一部分定义的,但它们在功的一部分定义的,但它们在功的一部分定义的,但它们在功能上是相交的、彼此独立的。特别的,信封和编码规则是能上是相交的、彼此独立的。特别的,信封和编码规则是能上是相交的、彼此独立的。特别的,信封和编码规则是能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的被定义在不同的被定义在不同的被定义在不同的XMLXML命名空间命名空间命名空间命名空间(namespace)(namespace)中,这样使得中,这样使得中,这样使得中,这样使得定义更加简单。定义更加简单。定义更加简单。定义更加简单。10.2.1 SOAPSOAPSOAP的两个主要设计目标是的两个主要设计目标是的两个主要设计目标是的两个主要设计目标是简单性简单性简单性简单性和和和和可扩展性可扩展性可扩展性可扩展性。这就。这就。这就。这就意味着有一些传统消息系统或分布式对象系统中的某些意味着有一些传统消息系统或分布式对象系统中的某些意味着有一些传统消息系统或分布式对象系统中的某些意味着有一些传统消息系统或分布式对象系统中的某些性质将不是性质将不是性质将不是性质将不是SOAPSOAP规范的一部分。规范的一部分。规范的一部分。规范的一部分。SOAPSOAP可简单地理解为这样一个开放协议的组合可简单地理解为这样一个开放协议的组合可简单地理解为这样一个开放协议的组合可简单地理解为这样一个开放协议的组合SOAP=RPC+HTTP+XMLSOAP=RPC+HTTP+XML:采用采用采用采用HTTPHTTP作为底层通讯协议;作为底层通讯协议;作为底层通讯协议;作为底层通讯协议;RPCRPC作为一致性的调用途径;作为一致性的调用途径;作为一致性的调用途径;作为一致性的调用途径;XMLXML作为数据传送的格式,允许服务提供者和服务客户经过防火作为数据传送的格式,允许服务提供者和服务客户经过防火作为数据传送的格式,允许服务提供者和服务客户经过防火作为数据传送的格式,允许服务提供者和服务客户经过防火墙在墙在墙在墙在INTERNETINTERNET进行通讯交互。进行通讯交互。进行通讯交互。进行通讯交互。RPCRPC的描叙可能不太准确,因为的描叙可能不太准确,因为的描叙可能不太准确,因为的描叙可能不太准确,因为SOAPSOAP一开始构思就是一开始构思就是一开始构思就是一开始构思就是要实现平台与环境的无关性和独立性,每一个通过网络要实现平台与环境的无关性和独立性,每一个通过网络要实现平台与环境的无关性和独立性,每一个通过网络要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过的远程调用都可以通过的远程调用都可以通过的远程调用都可以通过SOAPSOAP封装起来,包括封装起来,包括封装起来,包括封装起来,包括DCE(DistributedComputingEnvironment)DCE(DistributedComputingEnvironment)、RPCRPCCALLSCALLS、COM/DCOMCALLSCOM/DCOMCALLS、CORBACALLSCORBACALLS、JAVACALLSJAVACALLS等等。等等。等等。等等。10.2.1 SOAP客户发送请求时,不管客户是什么平台,首先把请求客户发送请求时,不管客户是什么平台,首先把请求客户发送请求时,不管客户是什么平台,首先把请求客户发送请求时,不管客户是什么平台,首先把请求转转转转换成换成换成换成XMLXML格式格式格式格式,SOAPSOAP网关网关网关网关可自动执行这个转换。为了可自动执行这个转换。为了可自动执行这个转换。为了可自动执行这个转换。为了保证传送时参数、方法名、返回值的唯一性,保证传送时参数、方法名、返回值的唯一性,保证传送时参数、方法名、返回值的唯一性,保证传送时参数、方法名、返回值的唯一性,SOAPSOAP协协协协议使用了一个私有标记表,从而服务器的议使用了一个私有标记表,从而服务器的议使用了一个私有标记表,从而服务器的议使用了一个私有标记表,从而服务器的SOAPSOAP网关可网关可网关可网关可以正确地解析;以正确地解析;以正确地解析;以正确地解析;而使用而使用而使用而使用XMLXML作为编码表现形式,提供了作为编码表现形式,提供了作为编码表现形式,提供了作为编码表现形式,提供了更高层次上的抽象,从而实现与平台和环境的无关。更高层次上的抽象,从而实现与平台和环境的无关。更高层次上的抽象,从而实现与平台和环境的无关。更高层次上的抽象,从而实现与平台和环境的无关。10.2.2 WSDLWSDL(WebServiceDescriptionLanguageWSDL(WebServiceDescriptionLanguage,即,即,即,即WebWeb服服服服务器描述语言务器描述语言务器描述语言务器描述语言)是用是用是用是用XMLXML文档来描述文档来描述文档来描述文档来描述WebWeb服务的标准,是服务的标准,是服务的标准,是服务的标准,是WebWeb服务的接口定义语言,由服务的接口定义语言,由服务的接口定义语言,由服务的接口定义语言,由AribaAriba、IntelIntel、IBMIBM、MicrosoftMicrosoft等共同提出。通过等共同提出。通过等共同提出。通过等共同提出。通过WSDLWSDL,可描述,可描述,可描述,可描述WebWeb服务的三服务的三服务的三服务的三个基本属性:个基本属性:个基本属性:个基本属性:服务做些什么服务做些什么服务做些什么服务做些什么服务所提供的操作服务所提供的操作服务所提供的操作服务所提供的操作(方法方法方法方法)如何访问服务如何访问服务如何访问服务如何访问服务和服务交互的数据格式以及必要协议和服务交互的数据格式以及必要协议和服务交互的数据格式以及必要协议和服务交互的数据格式以及必要协议 服务位于何处服务位于何处服务位于何处服务位于何处协议相关的地址,如协议相关的地址,如协议相关的地址,如协议相关的地址,如URLURL10.2.2 WSDLWSDLWSDL文档在文档在文档在文档在WebServiceWebService的定义中使用下列元素:的定义中使用下列元素:的定义中使用下列元素:的定义中使用下列元素:TypesTypes-数据类型定义的容器数据类型定义的容器数据类型定义的容器数据类型定义的容器;MessageMessage-通信消息的数据结构的抽象类型化定义;通信消息的数据结构的抽象类型化定义;通信消息的数据结构的抽象类型化定义;通信消息的数据结构的抽象类型化定义;OperationOperation-对服务中所支持的操作的抽象描述;对服务中所支持的操作的抽象描述;对服务中所支持的操作的抽象描述;对服务中所支持的操作的抽象描述;PortTypePortType-对于某个访问入口点类型所支持的操作的对于某个访问入口点类型所支持的操作的对于某个访问入口点类型所支持的操作的对于某个访问入口点类型所支持的操作的抽象集合;抽象集合;抽象集合;抽象集合;BindingBinding-特定端口类型的具体协议和数据格式规范的特定端口类型的具体协议和数据格式规范的特定端口类型的具体协议和数据格式规范的特定端口类型的具体协议和数据格式规范的绑定。绑定。绑定。绑定。PortPort-定义为协议定义为协议定义为协议定义为协议/数据格式绑定与具体数据格式绑定与具体数据格式绑定与具体数据格式绑定与具体WebWeb访问地址访问地址访问地址访问地址组合的单个服务访问;组合的单个服务访问;组合的单个服务访问;组合的单个服务访问;SrviceSrvice-相关服务结点的集合相关服务结点的集合相关服务结点的集合相关服务结点的集合。10.2.3 UDDIUDDI(UniversalDescriptionUDDI(UniversalDescription,DiscoveryandDiscoveryandIntegrationIntegration,即统一描述、发现与集成协议标准,即统一描述、发现与集成协议标准,即统一描述、发现与集成协议标准,即统一描述、发现与集成协议标准)是一个是一个是一个是一个非常重要的创新。非常重要的创新。非常重要的创新。非常重要的创新。它是第一个由平台提供者、软件开发者、交易市场运营它是第一个由平台提供者、软件开发者、交易市场运营它是第一个由平台提供者、软件开发者、交易市场运营它是第一个由平台提供者、软件开发者、交易市场运营者、电子商务企业和全球商务领头羊为解决者、电子商务企业和全球商务领头羊为解决者、电子商务企业和全球商务领头羊为解决者、电子商务企业和全球商务领头羊为解决B2BB2B电子商电子商电子商电子商务的发展的局限性而一起提出的跨行业的解决方案。务的发展的局限性而一起提出的跨行业的解决方案。务的发展的局限性而一起提出的跨行业的解决方案。务的发展的局限性而一起提出的跨行业的解决方案。是一套基于是一套基于是一套基于是一套基于WebWeb的、分布式的、为的、分布式的、为的、分布式的、为的、分布式的、为WebWeb服务提供的信服务提供的信服务提供的信服务提供的信息注册中心的实现标准规范息注册中心的实现标准规范息注册中心的实现标准规范息