课程名称主讲教师:XXX第六章Web服务(WebService)技术章节内容WebService的主要技术2异构平台的整合4WebService的简介31WebService的应用33什么是WebService•什么是WebService呢?从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,WebService是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。WebService便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用你喜欢的任何语言,在你喜欢的任何平台上写WebService。•WebService为Internet上的组件服务•通过网络提供,以URL定位方法调用•以Internet技术为基础•未來的分散式应用程序课程名称高层次的复用(reuse)`FunctionReuseObjectReuseServiceReuseLibLibLibObjObjObjApplicationApplicationWebService的标准•SOAP(SimpleObjectAccessProtocol)•UDDI(UnviversalDescription,Discovery,andIntegration)统一描述发现和集成协议–公开的,或是企业自己的注册与查询•WSDL(WebServiceDescriptionLanguage)–WebService描述语言WebService的标准–1.XMLWebService通过标准的Web协议向Web用户提供有用的功能。多数情况下使用SOAP协议。–2.XMLWebService可以非常详细地说明其接口,这使用户能够创建客户端应用程序与它们进行通信。这种说明通常包含在称为Web服务说明语言(WSDL)文档的XML文档中。–3.XMLWebService已经过注册,以便潜在用户能够轻易地找到这些服务,这是通过通用发现、说明和集成(UDDI)来完成的。–4.XMLWebService体系结构的主要优点之一是:允许在不同平台上、以不同语言编写的各种程序以基于标准的方式相互通信。–5.我们将XMLWebService定义为:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。SOAP•Soap是XMLWebService的通信协议。•SOAP是一种规范,用来定义消息的XML格式。包含在一对SOAP元素中的、结构正确的XML段就是SOAP消息。•SOAP规范的其他部分介绍如何将程序数据表示为XML,以及如何使用SOAP进行远程过程调用(RPC)。这些可选的规范部分用于实现RPC形式的应用程序,其中客户端将发出一条SOAP消息(包含可调用函数,以及要传送到该函数的参数),然后服务器将返回包含函数执行结果的消息。目前,多数SOAP实现方案都支持RPC应用程序。SOAP还支持文档形式的应用程序,在这类应用程序中,SOAP消息只是XML文档的一个包装。文档形式的SOAP应用程序非常灵活,许多新的XMLWebService都利用这一特点来构建使用RPC难以实现的服务SOAP•SOAP规范的最后一个可选部分定义了包含SOAP消息的HTTP消息的样式。此HTTP绑定非常重要,因为几乎所有当前的OS(以及许多以前的OS)都支持HTTP.HTTP绑定虽然是可选的,但几乎所有SOAP实现方案都支持HTTP绑定,因为它是SOAP的唯一标准协议。由于这一原因,人们通常误认为SOAP必须使用HTTP。其实,有些实现方案也支持MSMQ、MQ系列、SMTP或TCP/IP传输,但由于HTTP非常普遍,几乎所有当前的XMLWebService都使用它。由于HTTP是Web的核心协议,因此大多数组织的网络基础结构都支持HTTP。•到目前为止,SOAP最引人注目的特征是它可以在许多不同的软件和硬件平台上实现。这意味着SOAP可用于链接企业内部和外部的不同系统。•HTTP的普及和SOAP的简单性使您几乎可以从任何环境调用它们,因此成为XMLWebService的理想基础。SOAP的用户并不直接编写SOAP消息,而是使用SOAP工具包来创建和分析SOAP消息。这些工具包通常将函数调用从某种语言转换为SOAP消息。SOAP(HTTP+XML)SOAPApplicationServiceSOAPClientSOAPProcessorServiceApplicationSOAPRequestSOAPResponseUDDI•UDDI目录条目是介绍所提供的业务和服务的XML文件。UDDI目录条目包括三个部分。“白页”介绍提供服务的公司:名称、地址、联系方式等等;“黄页”包括基于标准分类法的行业类别;“绿页”详细介绍了访问服务的接口,以便用户能够编写应用程序以使用Web服务。服务的定义是通过一个称为类型模型(或tModel)的UDDI文档来完成的。多数情况下,tModel包含一个WSDL文件,用于说明访问XMLWebService的SOAP接口,但是tModel非常灵活,可以说明几乎所有类型的服务。•UDDI目录还包含若干种方法,可用于搜索构建您的应用程序所需的服务。例如,您可以搜索特定地理位置的服务提供商或者搜索特定的业务类型。之后,UDDI目录将提供信息、联系方式、链接和技术数据,以便您确定能满足需要的服务。•UDDI允许您查找提供所需的Web服务的公司。如果您已经知道要与谁进行业务合作,但尚不了解它还能提供哪些服务,这时该如何处理呢?WS-Inspection规范(英文)允许您浏览特定服务器上提供的XMLWebService的集合,从中查找所需的服务。UDDIUDDIWhitePages公司基本资料GreenPages技术信息YellowPagesService的种类WSDL•WebServiceDescriptionLanguage(WSDL):用来定义WebService交换的文件格式以及提供服务方式的说明文件•WSDL表示Web服务说明语言,是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。WSDL对于SOAP的作用就象TLD对于Tiglib的作用。由于WSDL是XML文档,因此很容易进行阅读和编辑;但大多数情况下,它由软件生成和使用。•要查看WSDL的值,可以假设您要调用由您的一位业务伙伴提供的SOAP方法。您可以要求对方提供一些SOAP消息示例,然后编写您的应用程序以生成并使用与示例类似的消息。WSDL通过明确的表示法指定请求消息必须包含的内容以及响应消息的样式。WSDL•WSDL文件用于说明消息格式的表示法以XML架构标准为基础,这意味着它与编程语言无关,而且以标准为基础,因此适用于说明可从不同平台、以不同编程语言访问的XMLWebService接口。除说明消息内容外,WSDL还定义了服务的位置,以及使用什么通信协议与服务进行通信。WSDL文件定义了编写使用XMLWebService的程序所需的全部内容。•当前,许多SOAP工具包都包括从现有程序接口生成WSDL文件的工具,但却几乎没有直接用于编写WSDL的工具,而且WSDL的工具支持也很不完整。但不久就会出现编写WSDL文件的工具,接着还会有生成代理和存根的工具(与COMIDL工具很相似),这些工具将成为多数SOAP实现方案的一部分。到那时,WSDL将成为创建XMLWebService的SOAP接口的首选方法。•由W3C制定的标准`WebService提供者绑定InternetSOAPSOAPSOAPWebService的应用•可以利用WebService作为B2B跨平台整合的机制。•即时资讯服务公司(音乐、电影、股票等)可以利用WebService,提供各种平台资讯服务。•仓储、货运业可以通过WebService結合移动设备,建立即时管理系统。异构平台的整合-企业內外系统的整合ApplicationServerSOAP/HTTPSOAP/HTTPSOAP/HTTPUDDICRM下游工厂分公司经销商异构平台的整合-Galileo•42000travelagency•511airlines•37carrental•47000hotelWebService实例•在环境变量中设置当前JDK为1.4.2•将weblogic.jar和webservice.jar设置到classpath中•将C:\bea\weblogic81\server\bin设置到path中•编写并编译源文件StockTrade.javajavac–d.StockTrade.java•运行ant命令,生产ear文件和stocktrade_client.jar文件,并将jar文件设置到classpath中,•将生成的ear文件部署到Weblogic中•编辑StockClient.java源文件•删除生成的examples包,编译StockClient.java源文件javac–d.StockClient.java•运行编译的测试客户端类StockClient并观察输出结果javaexamples.StockClientWebService小结•重点在应用而非技术•可先将现有功能模块重新包装•WebService组件,可重复使用降低开发成本•协同开发慢慢取代独立开发本章小结•WebService的简介•WebService的主要技术•WebService的应用•异构平台的整合谢谢观看