WebService介绍.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

WebService介绍研究中心提纲•概念介绍•WebService框架•把握使用WebService尺寸•WebService部署•WebService例子演示主题•概念介绍•WebService框架•把握使用WebService尺寸•WebService部署•WebService例子演示WebService到底是什么我们至少有两种答案;从表面上看,Webservice就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Webservice的应用程序叫做客户。WebService的例子例如,你想创建一个Webservice,它的作用是返回当前的天气情况。那么你可已建立一个JSP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个JSP页面,客户端需要发送下面的这个HTTPGET请求:=20171返回的数据就应该是这样:21,晴这个JSP页面就应该可以算作是Webservice了。因为它基于HTTPGET请求,暴露出了一个可以通过Web调用的API。当然,Webservice还有更多的东西。WebService的定义Webservices是建立可互操作的分布式应用程序的新平台。Webservice平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Webservice,只要我们可以通过Webservice标准对这些服务进行查询和访问。WebService的组成WebService平台主要由下面三种技术组成:XML和XSDSOAPWSDLWebService-XML和XSD可扩展的标记语言(XML)是Webservice平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。W3C制定的XMLSchema(XSD)定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Webservice平台就是用XSD来作为其数据类型系统的。WebService-SOAP简单对象访问协议(SOAPSimpleObjectAccessProtocol)提供了标准的RPC(RemoteProcedureCallProtocol远程过程调用协议)方法来调用Webservice。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。WebService-SOAP补充RPC英文原义:RemoteProcedureCallProtocol中文释义:远过程调用协议注解:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。WebService-WSDLWebservice描述语言(WSDL)就是一个基于XML的语言,用于描述Webservice及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。主题•概念介绍•WebService框架•把握使用WebService尺寸•WebService部署•WebService例子演示WebService网络框架浏览器SmarterClientsSmarterDevices开放的Internet通讯协定(HTTP,SMTP,XML,SOAP)更丰富的使用者经验全球的WebServices可程式化的WebServices业务逻辑&Web服务系统Services公共Web服务模块Services网络ServicesServersData,HostsOther服务WebService软件框架而对VB.NET程序来说,Webservice请求处理器则是一个.NETFramework自带的ISAPIextension。请求处理器的作用在于,解析收到的SOAP请求,调用Webservice,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。主题•概念介绍•WebService框架•把握使用WebService尺寸•WebService部署•WebService例子演示把握使用WebService尺寸到底什么时候应该使用WebService,而什么时候是不应该使用WebService?是我们在开始使用WebService时要重点关注的问题!应该使用WebService(一)跨越防火墙的通信当客户端和服务器之间有防火墙或者代理服务器时,客户端和服务器之间的通信将会变成一个棘手的问题。使用WebService可以缩短开发周期,还可以减少代码的复杂度,并增强整个应用程序的可维护性。同时,通过Webservice把你的应用程序的逻辑和数据暴露出来,还可以让其它平台上的客户重用你的应用程序。应该使用WebService(二)应用程序集成企业里经常都要把用不同语言写成的在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发的力量。通过Webservice,应用程序可以用标准的方法把功能和数据暴露出来,供其它的应用程序使用。从而达到应用程序集成的效果。应该使用WebService(三)B2B的集成用Webservice集成应用程序,可以使你公司内部的商务处理更加自动化。但当交易跨越了你的供应商和客户,突破了公司的界线时又会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。用Webservice来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把你的商务逻辑暴露出来,成为Webservice,你就可以让任何指定的合作伙伴轻松的调用你的商务逻辑,而不管他们的系统在什么平台上运行,使用的是什么开发语言。这样就大大减少了花在B2B集成的上的时间和成本。软件重用应该使用WebService(四)用Webservice来集成各种应用中的功能,为用户提供一个统一的界面。许多应用程序都会利用Webservice,把当前基于组件的应用程序结构扩展为组件和Webservice的混合结构。不应该使用WebService(一)经过前面的介绍,我们知道了Webservice在通过Web进行互操作或远程调用的时候是最有用的。不过,还有许多情况,Webservice根本不能给你带来任何好处。单机应用程序一些只需要与运行在本机上的桌面应用程序和其他程序通信,最好使用本地的API来进行应用程序间的调用。使用WebService也能用在这些情况下,但那样不仅消耗太大,而且不会给你带来任何好处。不应该使用WebService(二)局域网上的同构应用程序在许多应用中,你所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。直接通过TCP进行RPC调用会比WebService更加有效。主题•概念介绍•WebService框架•把握使用WebService尺寸•WebService部署•WebService例子演示WebService部署(一)下面我们要讲述采用WebServiceDeploymentDescriptor(WSDD)的方式部署Axis的WebService。注:Axis是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。第一步:编写实现就象一般编写工具类那样编写类和方法,如PrintControlService.java。WebService部署(二)第二步:编写WSDD在WEB-INF下增加一个server-config.wsdd文件(可以从Axis的包里获取),内容如下(注意ServicesfromPrintControlServiceServiceWSDLservice部分,allowedMethods的值“*”表示所有的公共方法,我们也列出方法名字列表,可以空格或逗号分割它们)。?xmlversion=1.0encoding=UTF-8?deploymentxmlns=:java=!--ServicesfromPrintControlServiceServiceWSDLservice--servicename=PrintControlServiceprovider=java:RPCstyle=rpcuse=encodedparametername=wsdlTargetNamespacevalue=urn:iOA/parametername=wsdlServiceElementvalue=PrintControlServiceService/parametername=wsdlServicePortvalue=PrintControlService/parametername=classNamevalue=com.nci.ioa.webservice.printControl.PrintControlServiceImpl/parametername=wsdlPortTypevalue=PrintControlService/parametername=typeMappingVersionvalue=1.2/parametername=allowedMethodsvalue=*/parametername=scopevalue=Session//service/deploymentserver-config.wsdd内容WebService部署(三)第三步:测试SOAP:publicstaticvoidmain(String[]arg){StringunitId=xwoa;StringextraFileId=C7499D74-4D54-F541-F23A-46710CD08446;intprintNum=2;StringprintPerson=张三;try{Stringendpoint==newService();Callcall=(Call)service.createCall();call.setTargetEndpointAddress(newjava.net.URL(endpoint));call.setOperationName(newQName(urn:iOA,updatePrintNum));Stringret=(String)call.invoke(newObject[]{unitId,extraFileId,newInteger(printNum),printPerson});}catch(Exceptione){System.err.println(e.toString());}}HTTP:查看WSDL:调用:=updatePrintNum&unitId=xwoa&extraFileId=C7499D74-4D54-F541-F23A-46710CD08446&printNum=2&printPerson=ZhangSanWebService部署(三)

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功