《Webservice基础》教案【教学内容】WebService编程——用C#.NET开发网络服务第一课时【教学目的】1、知道Webservice的基本概念。2、了解Webservice的体系结构及平台组成,具体包括SOAP、UDDI、WSDL等。3、了解WebService的优缺点和面对现代Web的趋势应当如何发展。4、学会在visualstudio2010环境下,创建Webservice简单的项目应用程序,并使用ASP.NET调用Webservice。【教学重点】Webservice的体系构成及平台组成,学会创建简单的Webservice应用程序。【教学难点】深刻理解Webservice工作流程,并运用visualstudio2010进行Webservice的简单开发。【教学准备】多媒体课件、板书【教学过程】一、复习1、C#语言是一门面向什么的语言?面向对象的语言。2、在C#中与C语言里所谓的“函数”有近似用途的是什么?方法。3、请大家回忆一下使用visualstudio2010开发windows窗口程序和网页程序的过程。二、激趣导入课件展示几张网页天气图片,用学生熟知的天气预报,这一生活中的实例,引出WebService这一话题。提出问题,你们觉得天气预报这一程序的实现难吗?你们想试着编写一个天气预报的程序吗?给大家解释一下,其实并不难,只需建立一个很普通的网站,调用中国气象局在互联网上公开的天气预报web服务,就能实现。只要会用WebService,其实非常简单。从而勾起学生对WebService的极大兴趣。三、学习WebService新知识,理解其概念及用法(一)介绍WebService的基本概念。1、WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。2、WebService是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的POS刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率。3、WebService就是一个应用程序。向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。4、WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Webservice,只要我们可以通过Webservice标准对这些服务进行查询和访问。(二)、理解WebService的体系和平台构成1、WebService的体系:WebService体系结构是面向对象分析与设计(OOAD)的一种合理发展,同时也是电子商务解决方案中,面向体系结构、设计、实现与部署而采用的组件化的合理发展。此时在黑板上,画出WebService的体系结构——面向服务的体系结构(SOA),让学生一起思考。2、WebService的平台:最基本的WebService平台是XML加HTTP。为了使它成为一个完整的、功能更强大的平台,有必要增加一些服务。可以认为功能全面的WebService平台主要是HTTP+XML+XSD+SOAP+WSDL+UDDI。当然HTTP这一Internet上广泛使用的协议就不用讲了,在此要针对学生的种种疑惑,用较通俗的语言对平台的主要要素进行简要描述。(1)XML和XSD可扩展的标记语言(标准通用标记语言下的一个子集)是WebService平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XMLSchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台是用XSD来作为数据类型系统的。当你用某种语言如VB.NET或C#来构造一个WebService时,为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协议,如SOAP。(2)SOAPSOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。WebService希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。(3)WSDLWebService描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述WebService及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。(4)UDDIUDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。(三)、讲解WebService的优缺点及发展前景。1、WebService的优点(1)跨防火墙通信:如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件。从大多数人的经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构,可以节省花在用户界面编程上20%的开发时间。(2)应用程序集成:企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,可以很容易的集成不同结构的应用程序。(3)B2B集成:用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。(4)软件和数据重用:软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,一种形式是二进制形式的组件重用。采用WebService应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用,达到业务级重用。2、WebService的缺点(1)单机应用程序:目前,企业和个人还使用着很多桌面应用程序。其中一些只需要与本机上的其它程序通信。在这种情况下,最好就不要用WebService,只要用本地的API就可以了。COM非常适合于在这种情况下工作,因为它既小又快。运行在同一台服务器上的服务器软件也是这样。最好直接用COM或其它本地的API来进行应用程序间的调用。当然WebService也能用在这些场合,但那样不仅消耗太大,而且不会带来任何好处。(2)局域网的同构应用程序:在许多应用中,所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。例如,有两个服务器应用程序需要相互通信,或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序。在这些程序里,使用DCOM会比SOAP/HTTP有效得多。与此相类似,如果一个.NET程序要连接到局域网上的另一个.NET程序,应该使用.NETRemoting。有趣的是,在.NETRemoting中,也可以指定使用SOAP/HTTP来进行WebService调用。不过最好还是直接通过TCP进行RPC调用,那样会有效得多。3、WebService的发展Web发展的趋势意味着,更加智能的处理,操作和汇总内容变得十分重要。按照WebService角度所预示的四个趋势:(1)内容更加动态:一个WebService必须能合并从多个不同来源的内容,可以包括股票,天气,新闻等,在传统环境中的内容,如存货水平,购物订单或者目录信息等,都从后端系统而来;(2)带宽更加便宜:WebService可以分发各种类型的内容(音频,视频流等);(3)存储更便宜::WebService必须能聪明地处理大量数据,意味着要使用数据库,LDAP目录,缓冲,和负载平衡软件等技术保持可扩展能力;(4)普遍式计算更重要:WebService不能要求客户使用某一版本的windows的传统浏览器,必须支持各种设备,平台,浏览器类型,各种内容类型。(四)、WebService的创建和使用在对WebService基本概念有了初步了解之后,再通过visualstudio软件,马上现场示范创建一个最简单的WebService,讲授创建过程。1、WebService的创建。首先,打开VS2010,打开文件-新建-网站,选择ASP.NETWeb服务查看Service.cs代码,你会发现VS.Net2005已经为WebService文件建立了缺省的框架。原始代码为:usingSystem;usingSy