zoukankan      html  css  js  c++  java
  • 01_入门

    【何为webService?】

     WebService即Web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术,即跨平台远程调用技术

    1. 采用标准SOAP(Simple Object Access Protocol)协议传输,SOAP属于w3c标准,SOAP协议是基于HTTP的应用层的协议,SOAP协议传输的是XML数据。

    2.采用wsdl作为描述语言,相当于webService的使用说明书,wsdl属于w3c标准。

    3.xml是WebService实现跨平台的基础,xml的主要优点在于它即与平台无关,又与厂商无关。

    4.XSD(XML Schema Datatypes),任何编程语言写的WebService接口在发送数据时都要转换成WebService标准的XSD发送,w3c为其制定了一套传输数据类型。

    5.当前的 非SOAP协议 的WebService以轻量为 首要目标,比如 REST WebService也是WebService的一种方式。

    【WebService的三要素】

    1.SOAP

    SOAP(Simple Object Access Protocol)即简单访问协议,是一种简单的基于XML协议的,它使应用程序通过HTTP来交换信息,简单理解就是: SOAP=HTTP+XML。

    SOAP协议主要使用的版本是 SOAP1.1、 SOAP1.2

    SOAP并不是WebService专有的协议,其它协议也使用SOAP传输数据,如SMTP、tr069等

    2.WSDL(重点)

    WSDL(Web Service Description Language)网络服务描述语言(可以描述网络服务,也可以定位网络服务)。

    是一种使用XML编写的文档,用于描述WebService及其方法、参数和返回值,可以规定服务的位置、以及服务提供的方法。

    通俗理解就是WSDL是WEbService的使用说明书。

    3.UDDI

    UDDI是一种目录服务,通过它,企业可以注册并搜索WebService,企业将自己提供的WebService注册在UDDI,也可以使用别的企业在UDDI注册的WebService服务,从而达到资源共享的目的。

    UDDI旨在将全球的WebService资源进行共享,促进全球经济合作。

    但是使用WebService并不是必须使用UDDI,因为用户通过WSDL可以知道WebService的地址,可以直接投WSDL调用WebService。

    【WebService在Java中实现的三种规范】

    1.JAX-WS

    JAX-WS(Java API for XML-Base WebServices),早期基于SOAP的Java的Web服务规范JAX-RPC目前已经被JAX-WS 规范取代。从java5开始支持JAX-WS2.0版本,Jdk1.6.0_13以后的版本支持2.1版本,jdk1.7支持2.2版本。

    2.JAXM&SAAJ(一般不使用)

    JAXM(Java API for XML Message)主要定义了发送和接受数据所需的API,SAAJ(SOAP With Attachment API For Java)是与JAXM搭配使用的API,为构建SOAP包和解析SOAP包提供了重要的支持,支持附件传输等。JAXM&SAAJ与JAX-WS都是基于SOAP的Web服务,相比之下JAXM&SOAP暴露了更多SOAP更多的底层细节,编码较为麻烦,而JAX-WS更加抽象,隐藏了更多的细节,更加面向对象,实现时基本不需挂心SAOP的任何细节。

    3.JAX-RS

    JAX-RS是针对REST(Representation State Transfer)风格指定的一套Web服务规范,由于推出的较晚,该规范(JSR 311,目前JAX-RS 的版本为1.0)并未随JDK1.6 一起发行。

    【WebService应用场景】

    1.应用程序集成

      分布式程序之间进行集成使用WebService直接调用服务层方法,不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性,因为WebService支持跨平台且遵循表尊协议SOAP。

    2.软件重用

      将一个软件的功能以WebService方式暴露出来,达到软件重用。如待会后面要写的天气预报功能,将天气查询的功能以WebService接口方式暴露出来,使其非常容易集成在其它系统中。还例如一个第三方物流系统将快递查询、快递等级暴露出来,从而集成在电子商务系统中。

    【对使用WebService的建议】

    【不建议使用】

    场景:同构程序之间的通信

      同构程序是指采用相同的编程语言的程序之间的通信。例如java远程调用RMI技术就可以非常高效地实现远程调用,使用简单,必须保证两边的应用都是java编写才可以。

      只要有其它方法比WebService更加高效更可行,就不要使用WebService,因为Web跨平台的远程调用方法不止WebService一种。RMI是Java语言提供的远程调用技术,RMI速度会比WebService块的多,但比socket要慢。

    【建议使用】

    场景1:公开接口

      面向互联网公开的接口,例如某公司产品促销的介绍、股票信息查询,因为WebService是互联网的一个标准协议,将接口发布为WebService,其它公司可以很容易的调用。

    场景2:调用WebService服务端

      作为客户要调用别人的接口,对方的接口使用的是WebService,这时你也用WebService开发客户端,且协议版本要和服务端保持一致。

    【WebService优缺点】

    优点:

    1.采用XML支持跨平台远程调用

    2.基于HTTP的SOAP协议,可以穿越防火墙

    3.支持面向对象开发。

    4.有利于软件和数据重用

    缺点:

      由于SOAP是基于XML传输的,本身使用XML传输会传输一些无关的东西从而使效率不高,随着SOAP协议的完善,SOAP协议增加了许多内容,这样就导致了使用SOAP协议去完成简单的数据传输效率不高。如果直接使用HTTP传输自定义数据内容比WebService开发更快捷,例如第三方付支付公司的支持接口。

  • 相关阅读:
    稳扎稳打Silverlight(47) 4.0UI之操作剪切板, 隐式样式, CompositeTransform, 拖放外部文件到程序中
    返璞归真 asp.net mvc (9) asp.net mvc 3.0 新特性之 View(Razor)
    返璞归真 asp.net mvc (6) asp.net mvc 2.0 新特性
    稳扎稳打Silverlight(48) 4.0其它之打印, 动态绑定, 增强的导航系统, 杂七杂八
    精进不休 .NET 4.0 (9) ADO.NET Entity Framework 4.1 之 Code First
    稳扎稳打Silverlight(42) 4.0控件之Viewbox, RichTextBox
    稳扎稳打Silverlight(53) 4.0通信之对WCF NetTcpBinding的支持, 在Socket通信中通过HTTP检索策略文件, HTTP请求中的ClientHttp和BrowserHttp
    稳扎稳打 Silverlight 4.0 系列文章索引
    稳扎稳打Silverlight(54) 4.0通信之对UDP协议的支持: 通过 UdpAnySourceMulticastClient 实现 ASM(Any Source Multicast),即“任意源多播”
    返璞归真 asp.net mvc (8) asp.net mvc 3.0 新特性之 Model
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5831176.html
Copyright © 2011-2022 走看看