WebService详细概述和理解

版权声明:本文为博主原创文章。只要评论中留言就可以转载。 https://blog.csdn.net/wenzhi20102321/article/details/68067423

WebService概述

       WebService不仅是Android平台中的。WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。
WebService图示:
s1

一.WebService的基础理解

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

(一)什么是Web Service

       对这个问题,我们至少有两种答案。
       1.从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可以建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个ASP页面,客户端需要发送下面的这个HTTP的GET接着返回的数据就应该是这样。
       2.Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。

二.XML和XSD(xml Schema Definition,xml结构定义)

       可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。
       XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。
       W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB. NET或C#)来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换。
       也就是说,WebService中传递的数据要使用XSD标准的XML格式数据。

三.SOAP(Simple Object Access Protocol,简单对象协议)

       Web service建好以后,你或者其他人就会去调用它。
       简单对象访问协议(SOAP),提供了标准的RPC(远程传输)方法来调用WebService。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。

四.WSDL(Web Services Description Language,WebService定义语言)

       你会怎样向别人介绍你的WebService有什么功能,以及每个函数调用时的参数呢?WSDL已经定义好这些工作的,机器能够识别这些数据,我们也可以阅读,但是要进过一些便签化的学习。
       WebService描述语言(WSDL),就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。

五.UDDI(Universal Description, Discovery and Integration)

       为加速Web Service的推广、加强Web Service的互操作能力而推出的一个计划,基于标准的服务描述和发现的规范(specification)。
       以资源共享的方式由多个运作者一起以Web Service的形式运作UDDI商业注册中心。
       UDDI计划的核心组件是UDDI商业注册,它使用XML文档来描述企业及其提供的Web Service。
       UDDI商业注册提供三种信息:
       White Page包含地址、联系方法、已知的企业标识。
       Yellow Page包含基于标准分类法的行业类别。
       Green Page包含关于该企业所提供的Web Service的技术信息,其形式可能是指向文件或URL的指针,而这些文件或URL是为服务发现机制服务的。
       上面就是WebService的详细介绍,这里还没介绍到编程和WSDL文档的设计,后面会有。
       本文中WebService前面四点的知识,是我们程序员学习WebService要知道的基础内容。WSDL(WebService定义语言)的标签学习也是设计WebService的一个重要内容。

       下面是一个WSDL文档,其中很多内容没有展开,关于各个标签属性的介绍,后面会详细介绍。这个WSDL文档定义了WebService中有什么方法,返回什么数据等等信息。

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions name="ABPWebService" targetNamespace="http://abp.freelance.com" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://abp.freelance.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <wsdl:message name="getPageEmrInstanceVOResponse">
+ <wsdl:message name="loginResponse">
+ <wsdl:message name="getPageEmrInstanceVO">
+ <wsdl:message name="login">
+ <wsdl:portType name="ABPWebService">
+ <wsdl:binding name="ABPWebServiceSoapBinding" type="tns:ABPWebService">
  <soap:operation soapAction="http://abp.freelance.com/getPageEmrInstanceVO" style="document" /> 
+ <wsdl:input name="getPageEmrInstanceVO">
+ <wsdl:output name="getPageEmrInstanceVOResponse">
  </wsdl:operation>
  <soap:operation soapAction="http://abp.freelance.com/login" style="document" /> 
- <wsdl:input name="login">
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output name="loginResponse">
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
+ <wsdl:service name="ABPWebService">
  </wsdl:definitions>

WebService图解:
ss
共勉:好好学,没什么是学不会的。

阅读更多
换一批

没有更多推荐了,返回首页