学科前沿技术讲座-Web Services技术.ppt_第1页
学科前沿技术讲座-Web Services技术.ppt_第2页
学科前沿技术讲座-Web Services技术.ppt_第3页
学科前沿技术讲座-Web Services技术.ppt_第4页
学科前沿技术讲座-Web Services技术.ppt_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/9/14,Web Services 技术讲座,2020/9/14,Web Services技术讲座作业,写一篇根据Web Services技术分析的技术报告,具体要求: 内容包括: (1)Web Services技术介绍 (2)Web Services技术的优势不足(与传统的分布式计算方式(J2EE,CORBA等) (3)个人对Web Services技术的观点 字数要求:3000字以上(禁止抄袭、转载别人的文档) 提交方式:纸张 提交时间:第五周周末之前,2020/9/14,目录,Web Services的背景介绍 Web Services体系架构 Web Services中的核心

2、技术 XML技术 SOAP技术 Web Services 接口描述(WSDL) Web Services 注册与发现(UDDI) Web Services实现 Web Services应用实例 Web Services应用框架 Web Services发展趋势,2020/9/14,目录,Web Services的背景介绍 Web Services体系架构 Web Services中的核心技术 XML技术 SOAP技术 Web Services 接口描述(WSDL) Web Services 注册与发现(UDDI) Web Services实现 Web Services应用实例 Web Serv

3、ices应用框架 Web Services发展趋势,2020/9/14,Web Services背景介绍,产生背景 Web应用和传统桌面应用之间存在连接的鸿沟,成为阻碍Web应用进入主流工作流的巨大障碍 大多数基于电子商务的应用和基于Web的商业服务开发语言不同、部署平台不同、通信协议不同、对外交换的数据格式不同,系统集成代价很高,2020/9/14,Web Services背景介绍,实现目的 主要目标: 在现有的各种异构平台的基础上构筑一个通用 的与平台无关、语言无关的技术层,各种不同平台 之上的应用依靠这个技术层来实施彼此的连接和集 成。 与传统Web应用技术的差异: 传统Web应用技术解

4、决的问题是如何让人来使用Web应用提供的服务 Web Services则要解决如何让计算机系统来使用Web应用所提供的服务,2020/9/14,Web Services背景介绍,概 念 Web Service: 封装成单个实体并发布到网络上供使用的功能集合体(使用Web Services技术而创建的应用实例) Web Services:泛指(应用实例的复数) Web Services技术:一个指功能集合体被调用所提供的服务(架构Web Service的整体技术框架 ) 在现有的web技术和设施之上,制定新的协议和标准,提出新的技术来实现的,是现有应用面向Internet的一个延伸,现有Inte

5、rnet应用面向更好的互操作能力的一个延伸 优点:开放、简单、跨平台、低代价集成,2020/9/14,Web Services背景介绍,主要特征 完好的封装性 松散耦合 使用协约的规范性 使用标准协议规范 高度可集成能力,2020/9/14,Web Services背景介绍,Web Services的类别 面向商务的Web Services (Business-oriented Web Services) 面向消费者的Web Services (Consumer-Oriented Web Services) 面向设备的Web Services (Device-Oriented Web Serv

6、ices) 面向系统的Web Services (System-Oriented Web Services),2020/9/14,Web Services背景介绍,Web Services的类别 面向商务的Web Services (Business-oriented Web Services) 该类服务针对的是那些面向企业应用服务,包括企业内部的ERP系统,企业间的SRM ( Social Relation Management)/CRM ( Customer Relation Management)等系统。当这些系统以Web Services的形式在网络(Internet和Intranet

7、)中出现时,企业内的应用集成将更为容易,而在企业间的众多合作伙伴的系统对接也将不再是无法完成的任务。目前,现有的解决方案和产品的提供商有Bowstreet (后被IBM收购), Epicentric(后被Vignette公司收购)等。,2020/9/14,Web Services背景介绍,Web Services的类别 面向消费者的Web Services (Consumer-Oriented Web Services) 此类服务针对的是那些原先的B2C的网站的改造,为这些Browser-Oriented的Web应用增加了Web Services的应用界面,使得第三方的桌面工具或其自身提供的增

8、值的桌面工具能够利用更优秀的用户界面提供跨越多个B2C服务的桌面服务。这将使得用户使用Internet更为方便,能够获得更加便捷的服务。比如,我们完全就可以在个人理财桌面系统中继承(调用) Internet 上的股票价格查询Web Services、机票预定Web Services等,使得个人理财应用的自动化程度更高。,2020/9/14,Web Services背景介绍,Web Services的类别 面向设备的Web Services (Device-Oriented Web Services) 此类服务的使用终端一般是手持设备和日用家电。对于前者而言,可以在不用修改网络服务的体系架构的前

9、提下,令先前的网络服务支持除PC以外的各种终端,比如Palm、PocketPC、手机等。如此,那些天气预报服务、E-mail服务、主动信息服务等将更为有效和便捷。而后者对于日用家电则可能是一个市场的启动期,有了Web Services作为基础框架,智能型的日用家电将真正获得标准的支持,从而有了广泛使用的可能。,2020/9/14,Web Services背景介绍,Web Services的类别 面向系统的Web Services (System-Oriented Web Services) 一些传统意义上的系统服务,比如用户权限认证,系统监控等,如果被迁移到全球范围的Internet上或者企业

10、内部的Intranet上,其作用范围将从单个系统和局部网络拓展到整个企业网络和整个Internet。如此,基于同一系统服务的不同应用将得以在整个Internet环境中部署,譬如跨国企业的所有在线服务可以使用同一个用户权限认证Web Services。,2020/9/14,支持Web Services的企业,2020/9/14,Web Services的特点,缺点 Web Services通常需要大量的CPU资源。 因为XML数据要经过多步处理才能被系统使用。首先是效验(validate),检查它的格式是否符合XML的规范,以及根据应用程序定义(DTD或Schema)检查是否符合语义上的规范;然

11、后还要进行解析(parse),从XML文档分解出单个的元素;最后还要转换成应用程序所需要的二进制表达(例如,把“12” 转换成整型12的二进制表示)。,2020/9/14,Web Services的特点,Web Services还意味着占用较多的内存资源。 在进行XML解析的时候,会产生大量的临时内存对象。特别是在处理DOM ( Document Object Model )对象的时候。这些大量的临时对象对于象JAVA这类自动回收内存的语言和系统其实是一种负担,大量的临时对象将会使系统每隔一段时间就会进行内存回收,从而降低系统的性能。当然,现在有的Web Services的产品(如axis)采

12、用了SAX (Simple API for XML )技术,大大减少了内存的占用量。,2020/9/14,Web Services的特点,网络资源的消耗也是Web Services应用的一些限制。 因为基于XML数据的传递通常数据量要比二进制的协议(如RMI/IIOP )要大的多。这种额外的消耗在网络资源比较紧张或网络传输比较频繁的应用中会产生一定的影响。 Web Services是一种无状态(stateless)的服务 数据绑定不足,2020/9/14,Web Services的特点,适用环境 基于WAN和Internet的应用 基于异构平台的应用 EAI(企业应用集成) 行业内部B2B应用

13、,2020/9/14,Web Services的技术规范,组织 W3C ( ) OASIS ( ) WS-I ( ) 规范 XML(eXtensible Markup Language )可扩展置标语言 XML Schema SOAP(Simple Object Access Protocol)简单对象访问协议 WSDL (Web Services Description Language ) UDDI (Universal Description,Discovery and Integration)统一描述、发现

14、和集成协议),2020/9/14,Web Services平台,Microsoft .Net IBM Web Services Sun ONE ,2020/9/14,目录,Web Services的背景介绍 Web Services体系架构 Web Services中的核心技术 XML技术 SOAP技术 Web Services 接口描述(WSDL) Web Services 注册与发现(UDDI) Web Services实现 Web Services应用实例 Web Services应用框架 Web Services发展趋势,2020/9/14,Web Services体系架构,角色和行为

15、 三个角色: Web服务提供者:Web服务的拥有者,等待为其它服务和用户提供自 己的功能; Web服务请求者: Web服务功能的使用者,使用SOAP消息向Web服 务提供者发送调用信息得到其服务。 Web服务中介者:将一个Web服务请求者和合适的提供者联系在一起 的管理者,一般是UDDI。 三个行为: 发布:发布服务描述,让用户或其 它服务知道一个 Web服务的 存在和相关信息 查找:找到合适的Web服务 绑定:在提供者与请求者之间建立 某种联系,调用服务,2020/9/14,Web Services体系架构,Web Service实现步骤 Web服务提供者设计实现Web服务,并将调试正确后的

16、Web服务通过Web服务中介者发布,在UDDI注册中心注册; Web服务请求者向Web服务中介者请求特定的服务,中介 者根据请求,查询UDDI注册中心,为请求者寻找满足请求的服务; Web服务中介者向Web服务请求者返回满足条件的Web服务的描述信息,该描述信息用WSDL写成,机器也能够阅读; 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用; Web服务提供者按SOAP消息执行相应的Web服务,并且 将服务结果给Web服务请求者返回。,2020/9/14,目录,Web Services的背景介绍 Web Services体系架构 We

17、b Services中的核心技术 XML技术 SOAP技术 Web Services 接口描述(WSDL) Web Services 注册与发现(UDDI) Web Services实现 Web Services应用实例 Web Services应用框架 Web Services发展趋势,2020/9/14,Web Services核心技术,主要技术规范 XML(eXtensible Markup Language) XML Schema SOAP(Simple Object Access Protocol) WSDL( Web Services Description Language) U

18、DDI( Universal Description, Discovery and Integration ) WS-Security( Web Services Security ) WSFL(Web Services Flow Language) WSCL(Web Services Conversation Language) WSXL( Web Services Experience Language) WSIA 3.SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定; 4.SOAP绑定(binding),使用底层协议交换信息。,2020/9/14

19、,POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset=utf-8“ Content-Length: nnnn SOAPAction: /2001/06/quotes DIS ,SOAP消息,2020/9/14,SOAP消息响应:,HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8“ Content-Length: nnnn 34.5 ,2020/9/14,(1)SOAP包封,SOAP Header 典型的扩展例子可以是实现一些诸如

20、认证、事务管理以及支付的Header条目。 SOAP actor属性: SOAP actor属性的值是一个URI,指明下一个进行消息处理的SOAP中介。若省略SOAP actor属性,则表明接收者是SOAP消息的最终接收者。 SOAP mustUnderstand属性:用于指明一个Header条目是否能够被接受方正确的理解。将返回“true”或“false”.,2020/9/14,SOAP Body,这个调用负责指定要执行的方法名以及所有传递给方法的参数。在WEB服务者接受、翻译并处理完了这个方法调用之后,它就会发送一个响应或错误消息。,2020/9/14,SOAP Fault,SOAP Fa

21、ult元素是用于在SOAP消息中传输错误或状态信息。如果SOAP消息需要包含SOAP Fault元素的话,它必须作为一个Body条目出现,同时在Body元素内它必须不出现多于一次(至多出现一次)。,2020/9/14,SOAP Fault元素定义了如下子元素,faultcode :此元素必须在SOAP Fault 中出现,SOAP定义了一个小的错误集合,用于定义覆盖基本的SOAP错误。 faultstring:是为那些错误代码提供一个人可以读懂的错误解释。 faultactor :用于指示错误源,属性的值是一个标识该源的一个URI。 Detail:它可以添加用户自定义的错误(包括错误消息和错误

22、号 ),2020/9/14,(2)SOAP编码,SOAP编码规则(encoding rules),定义了一个数据的编码机制,通过这样一个编码机制来定义应用程序中需要使用的数据类型,它遵循XML模式规范的结构和数据类型定义,其中包括简单类型(整数,字符串等)和一些复杂类型(struct,Array等) 。,2020/9/14,(3)SOAP与传输协议绑定:(一般是HTTP),将SOAP绑定在HTTP上可以利用HTTP丰富的特性集,更恰当的描述应当是SOAP的语义通过HTTP的映射而很自然地成为HTTP的语义。同时,SOAP很自然的利用HTTP的请求响应模型。 SOAPAction HTTP请求:

23、可以用于指示SOAP HTTP请求的目的,它的值是一个标识该目的的URI。SOAP对于格式上并没有严格的限制,同时对URI的描述以及是否要是可解析的都没有严格的限制。当发出SOAP HTTP请求时,HTTP客户必须使用该头字段。,2020/9/14,(4).在RPC中使用SOAP,SOAP RPC表示(RPC representation),定义了一个用于表示远端过程调用和响应的约定,例如如何传输过程调用,在具体传输协议的哪个部分传输过程响应,因为我们可以在HTTP的响应的时候传递过程响应。,2020/9/14,为实施一个方法调用,需要以下信息:,目标SOAP结点的URI: 方法名 可选的方法

24、或过程的特征 方法或过程的参数 可选的头数据,2020/9/14,5总结:,SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。,2020/9/14,SOAP的优势:,SOAP是平台独立的:SOAP是普通的XML,可以运行任何平台。 SOAP消息描述了消息负载的每个数据元素,这样就可以很容易的诊断可能出现的问题 。 自由的传输绑定 (不仅仅是HTTP);自由的语言绑定 (比如Java, C#)。 SOAP降低了安全风险:SOA

25、P只是XML,因此它能够使用端口80,而该端口通常配置HTTP,因此SOAP消息无需开放其他任何端口,就能通过防火墙的优点,从而降低了潜在的安全风险。,2020/9/14,SOAP的不足:,SOAP允许每个平台按照他们认为的方式考虑如下的特征: . 对象调用:SOAP规范不打算定义如何创建对象实例。 . 垃圾收集:SOAP规范没有定义不再需要对象时如何销毁对象,如没有定义如何去除对象。 . 安全性:SOAP没有讨论,依靠其他技术(比如安全套接层SSL) 。验证:SOAP也没有提到,众多技术都可以实现。,2020/9/14,第三部分:服务描述WSDL,XML是一种编码数据的标准方法。SOAP基于

26、XML定义了一种消息格式以便交换方法请求和响应,并最终完成WEB服务的调用,而WSDL则是用于描述如何使用SOAP来调用WEB服务的。,2020/9/14,1.定义:,WSDL将WEB服务描述定义为一组服务访问点。它包含对一组操作和消息的抽象定义,绑定到这些操作和消息的一个具体协议和这个绑定的一个具体服务访问规范。,2020/9/14,1Types:数据类型的容器,它是用某种类型系统,很多情况下这个部分指的是XML模式定义(XML Schema Definition, XSD) 2Messages通信消息的数据机构的抽象类型化定义。使用TYPE所定义的类型来定义整个消息的数据结构。 3Oper

27、ation:对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求响应消息对。 4.PortTypes:对于某个访问入口点类型所支持的操作的抽象集合。 5 Bindings:特定端口类型的具体协议和数据格式规范的绑定。 6 Port :定义为协议数据格式绑定与具体WEB访问地址组合的单个服务访问点。 7. Services:相关服务访问点的集合。 8. Import: 引用其他的接口服务文档。,2020/9/14,2.结构,类型部分:数据类型的容器,包含了所有在消息中使用的XML元素的类型定义。,2020/9/14,消息部分:具体定义了通信中使用消息的数据结构,Me

28、ssage元素包含了一组Part元素(相当于函数中的参数),2020/9/14,端口类型部分:定义了一种服务访问入口类型。所谓访问入口类型就是传入传出消息模式及其格式(WSDL中支持四种访问入口调用的模式:A:单请求;B:单响应;C:请求响应;D:响应请求)。PortType的定义会引用消息定义部分的一到两个消息,作为请求或响应消息的格式。一个PortType可以包含若干个Operation,而一个Operation则是指访问入口支持的一种类型的调用 。,2020/9/14,小结:以上三种描述了WEB服务的抽象定义(抽象定义层),这三部分与具体WEB服务部署细节无关,是可复用的描述。(即这三部

29、分可以说是WEB服务本身,与具体的语言实现,遵从的平台的细节规范,被部署到那台机器无关),2020/9/14,绑定部分:定义了某个PortType与具体的网络传输协议或消息交换协议相绑定,以及具体的数据格式规范。从这一层开始,就与具体的服务部署相关了。,2020/9/14,服务部分:描述的是一个具体的被部署的WEB服务所提供的所提供的所有访问入口的部署细节,一个Service往往有多个服务访问入口(Port)。Port描述的是一个服务访问入口的部署细节 。,2020/9/14,第四部分:服务发现与发布,WEB 服务发现是定位或发现一个或多个说明特定的WEB 服务的文档的过程,WEB 服务的客户

30、通过发现来知道某个Web 服务是否存在,以及从哪里功能获取这个WEB 服务的文档。,2020/9/14,1.定义: UDDI是一种使贸易伙伴彼此发现对方和查询对方的规范。它是最终用户通过搜索企业列表、企业分类或者实际WEB服务的可编程描述。使查找产品和服务成为可能。 解释:UDDI不仅是一个简易的搜索引擎,它也包含了如何通过编程来和这些WEB服务进行交互。 (对UDDI的使用可以用手动查询或程序查询),2020/9/14,UDDI工作原理,2020/9/14,2.UDDI数据表类型:,白页:包含了基本的企业信息,诸如企业名称、文字性介绍(可能是多国语言)以及联系方式,包括名称、电话号码、电子邮

31、件以及属于这些企业的网站。 黄页:按分类法对企业信息进行分类,在UDDI的第一个版本中,这种分类法包括了对行业、产品或服务以及位置的分类。 绿页:包含了如何与企业进行电子交互的信息,包含交易过程(也就是,创建订单和检查存货等多种WEB服务)、服务描述(个人WEB服务和它们的用途)以及解释如何通过调用一个给定的WEB服务的捆绑信息。,2020/9/14,UDDI的数据结构:,2020/9/14,商业实体信息:businessEntity 元素许多合作伙伴希望能准确地定位到你提供的服务的相关信息,并把这些信息作为了解你们企业的开始。技术人员、程序员或应用程序希望知道你的企业名称和一些关键性的标识。

32、所有“businessEntity”中的信息支持“黄页”分类法。如:Business Key, Name,Description,Contacts等。,2020/9/14,商业服务信息:businessService元素 businessService 和下面要提到的bindingTemplate一起构成了“绿页”信息。businessService 结构是一个描述性的容器,它将一系列有关商业流程或分类目录的Web 服务的描述组合到一起。 (包含businessKey,serviceKey,name,description).,2020/9/14,技术绑定信息:bindingTemplate元

33、素 对于每一个businessService,存在一个或多个Web 服务的技术描述bindingTemplate。这些技术描述包括应用程序连接远程Web 服务并与之通讯所必须的信息。这些信息包括Web应用服务的地址、应用服务宿主和调用服务前必须调用的附加应用服务等。另外,通过附加的特性还可以实现一些复杂的路由选择,诸如负载平衡等。 包括(bindingKey,businessKey,serviceeKey,accessPoint(指向WEB服务入口点的URL、EMAIL、电话号码等)等)。,2020/9/14,规范描述的指针和技术标识tModel 调用一个服务所需要的信息是在bindingTe

34、mplate的结构中定义的。不过一般来说,仅知道Web服务所在的地址是不够的 。因此,每一个bindingTemplate元素都包含一个特殊的元素,该元素包含了一个列表,列表的每个子元素分别是一个调用规范的引用。这些引用作为一个标识符的杂凑集合,组成了类似指纹的技术标识,用来查找、识别实现了给定行为或编程接口的Web 服务。(主要包含name,Description,categoryBag等),2020/9/14,描述商业实体之间关联关系的关联信息: pulisherAssertion,UDDI2.0新增加了一个结构,这种机制能令多于一个的已注册的bussinessEntity元素以某种方式互

35、相连接,用以表示一种特定类型的关联关系。因为大型商业实体有很多小型的部分组成,UDDI允许他们以多个组成部分的形式来实施注册。,2020/9/14,3.UDDI程序员的API规范:,UDDI程序员的API规范是一个文档,概述了公共课调用SOAP接口在UDDI站点上执行的每项操作。它由两部分组成: Inquiry API,用于查询和浏览UDDI注册表来发现最终用户查询的企业和服务; Publisher API,用于添加、更新和删除UDDI注册表中的企业和服务信息。,2020/9/14,(1)查询用API:,每个UDDI数据结构(businessEntity,businessService,bin

36、dingTemplate和tModel)都有一个find_xxx和get_xxx函数。这8个函数构成了查询API。它允许用户在数据实体上的注册表中搜索关键词或者值,然后给出所有与这个条目相关的数据。这个API主要作为查找和显示最终用户想查找的企业、服务等的一种方法。 Find_xxx一般是用于定位特定的服务,get_xxx一般是用于得到完整的信息。,2020/9/14,(2).发布用API:,每个UDDI数据结构都有一个save_xxx和delete_xxx函数。加上权限认证函数(get_authToken,discard_authToken)这些函数形成了Pulication(发布)API,

37、它允许用户(经过注册授权的用户)对现有的注册标目进行更新,用save_xxx创建新的条目,用delete_xxx能完全删除给出的数据结构。但是用户必须是已经授权的终端使用者。,2020/9/14,3.UDDI和WSDL的关系:,UDDI数据实体提供了对定义业务和服务信息的支持,WSDL中定义的服务描述信息是UDDI注册信息的补充,UDDI提供了许多不同类型的服务描述的支持。因此,UDDI没有对WSDL的直接支持,也没有对任何其他服务描述机制的直接支持。,2020/9/14,WSDL文档被分成两种类型,即服务接口和服务实现。 服务接口包括types,message,portType, Bindi

38、ng等元素。通过使用import元素,一个服务接口文档可以使用另一个服务接口文档。 服务实现文档包含实现一个服务接口类型服务的描述,包含import和service元素。 服务接口文档:在UDDI注册中心被当作tModel发布; 服务实现文档:包含的每个service元素都被用作UDDI businesssService;(port相当于 bindingTemplate),2020/9/14,2020/9/14,三.WEB服务的开发环境,主要使用.NET FRAMEWORK,如果使用VS.NET,则会更方便,下面为要安装的组件,注意要严格按照安装顺序来。 1FPSE 2002(Frontpag

39、e服务器扩展) 2.MDAC 2.7(Microsoft Data Access Compoment) 3IE 6.0 4IIS 5.0(以上几部分成为WINDOWS组件更新) 5.NET Framework SDK,2020/9/14,四.ASP.NET介绍:,ASP.NET是一个统一的WEB开发平台,它为创建WEB应用程序和WEB服务提供高级服务,ASP.NET提供了一种新的编程模型和底层结构,从而以前所未有的速度,灵活性和简易性创建功能强大的WEB应用程序.,2020/9/14,2020/9/14,六.一个具体WEB服务的实例:,1创建WEB服务 (1)WEB服务说明:温度转换WEB服务

40、是把指定的温度从华氏单位或摄氏单位转换成华氏,摄氏,开尔芬等单位。每一种单位转换都采用一种现成的算法公式。为简单起见,本转换只支持从摄氏,华氏转换成其他单位。 WEB方法说明:使用一种名为Ctemp的方法 算法公式: 参数说明: Temperature Decimal 待转换的温度 FromUnit String 转换前的温度单位 ToUnit String 转换后的温度单位,2020/9/14,(2)程序部分:,/(Ctemp.asmx) using System; using System.Web.Services; /WebService(Namespace=http:/localhos

41、t/ctem/) public class TempConverter:WebService WebMethod public Decimal Ctemp(Decimal Temperature,String FromUnits,String ToUnits),2020/9/14,switch(FromUnits.ToUpper().Substring(0,1) case F: switch(ToUnits.ToUpper().Substring(0,1) case F: return Temperature; case C: return (Temperature-32)*5)/9; cas

42、e K: return (Temperature-32)*5)/9)+(Decimal)273.15; case R: return Temperature+(Decimal)459.67; default: throw new ArgumentException(Bad ToUnits arg.); ;,2020/9/14,case C: switch(ToUnits.ToUpper().Substring(0,1) case C: return Temperature; case F: return (Temperature*9)/5)+(Decimal)32; case K: retur

43、n Temperature+(Decimal)273.15; case R: return (Temperature*9)/5)+(Decimal)459.67; default: throw new ArgumentException(Bad ToUnits arg.); ; default: throw new ArgumentException(Bad FromUnits arg.); ,2020/9/14,2测试WEB服务:可以通过WEB浏览器和HTTP协议测试WEB服务,2020/9/14,2020/9/14,4部署和发布WEB服务,(1) 部署准备: 当首次创建WEB服务时,在默认

44、情况下,WEB服务的名字空间设置为 / , 就必须将临时名字空间指示符更改为某个永 久值。更该WebService的属性。 WebService(NameService=http:/localhost/ctemp) (2) 部署WEB服务: 对WEB服务实施部署将允许在目标WEB服务器上,一般来说。WEB服务的 部署过程包括WEB服务入口点文件(ASMX文件),WEB服务程序集和相关的支持文件(比如WEB服务的合同文件或Web.config文件)。将这些文件复制到目标WEB服务器的具有相应配置的虚拟目录。但对于简单的WEB服务来说,就只有一个ASMX文件即可。

45、 (3)发布WEB服务,2020/9/14,4. 查找WEB服务,(1)UDDI注册中心 (2)UDDI编程 (3)UDDI SDK,2020/9/14,5.使用WEB服务,传统的桌面应用程序,WEB应用程序都可以使用WEB服务。要使用WEB服务,要做到 : 查找WEB服务; 获得WEB服务的WSDL服务合同; 生成调用WEB服务的代理类; 创建代理类的实例; 调用代理类的方法;,2020/9/14,WEB服务使用过程,2020/9/14,(1)关于代理类,通过生成和使用代理类,我们可以经由HTTP和SOAP协议到达WEB服务,这个代理允许你开发你自己的应用程序,就好像WEB服务驻留在本地计算

46、机上。它将你的方法请求序列化为SOAP,然后SOAP消息通过网络被发送到WEB服务。当WEB服务返回编码后结果之后,这个代理类就进入处理过程,截获消息,将其反序列化,把结果返回给应用程序。 代理的重要性在于它隐藏了SOAP序列化和网络通信的细节,调用WEB服务方法所需的HTTP和SOAP消息通道代码完全隐藏在代理类中。,2020/9/14,(2)WSDL工具生成代理类: .NET框架提供的WSDL工具用于解析WEB服务描述和生成代理类,客户使用代理类可以在WEB服务上调用方法, 例:wsdl /l: cs /o :CtemProxy.cs /n :Ctemproxy c:inetpubwwwr

47、ootctemctem. Wsdl 可生成名称为CtemProxy.cs的代理类,以方便客户端使用。,2020/9/14,(3) 编译代理类生成.NET程序集 csc t :library /out:c:inetpubwwwrootctembinCtempProxy.dll /r:System.Web.Services.dll /r:System.XML.dll /r: System.dll c:inetpubwwwrootctemCtempProxy.cs 注释:t:library 制定要创建一个dll /r选项指定了.NET程序集。这些程序集对应于代理类引用的.NET 名字空间。 out选

48、项将程序集保存到web应用程序的bin文件。 上述代码是将Ctem WEB服务代理类编译成.Net程序集,这样WEB FORM客 户端应用程序可以方便的引用它。,2020/9/14,(4).生成WEB服务客户端, void btnConvert_Click(Object Src, EventArgs E) TempConverter TC=new TempConverter(); txtOutputTemp.Text= TC.Ctemp(Convert.ToDecimal(txtInputTemp.Text), optFromUnits.SelectedItem.Value, optToUnits.SelctedItem.Value).ToString(F); ,2020/9/14,CTem Web Service Consumer Application 华氏 摄氏 ,2020/9/14,华氏 摄氏 开尔芬 兰金

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论