webservice

     前面大致将了一些cxf实现webservice服务,此次对webservice作一个更为详细的总结.

     webservice的应用场景:

 1.用户公共接口的接口服务.

       面向互联网公开的接口,例如:某公司产品促销介绍、股票信息查询等,因为webservice使用的soap协议是一个标准协议,其它公司使用标准协议通信,方便系统开发和维护。比如:便民网站的天气查询接口、火车时刻查询接口等。

2.用户内部接口服务.

        一个大的系统平台是由若干个系统组成,系统与系统之间存在数据访问需求,为了减少系统与系统之间的耦合性可以将接口抽取出来提供单独的接口服务供它系统调用,如下图是企业ERP系统的接口服务图.


       webservice能够优点:

1 、采用xml支持跨平台远程调用。

2、基于http的soap协议,可跨越防火墙。

3、支持面向对象开发。

4、有利于软件和数据重用,实现松耦合。

       webservice缺点

        由于soap是基于xml传输,本身使用xml传输会传输一些无关的东西从而效率不高,随着soap协议的完善,soap协议增加了许多内容,这样就导致了使用soap协议进行数据传输的效率不高。

         Webservice简介

  • Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。
  • 采用标准SOAP(Simple Object Access Protocol)  协议传输,soap属于w3c标准。Soap协议是基于http的应用层协议,soap协议传输是xml数据。采用wsdl作为描述语言即webservice使用说明书,wsdl属w3c标准。
  • xml是webservice的跨平台的基础,XML主要的优点在于它既与平台无关,又与厂商无关。
  • XSD,W3C为webservice制定了一套传输数据类型,使用xml进行描述,即XSD(XML Schema Datatypes),任何编程语言写的webservice接口在发送数据时都要转换成webservice标准的XSD发送。
  • 当前非SOAP协议的webService以轻量为首要目标,比如http rest方式也是webservice的一种方式,或者直接使用http自定义数据协议,比如http传输json数据,http传输xml数据等。

       Webservice三要素:

        1.soap

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

Soap协议版本主要使用soap1.1、soap1.2。

        SOAP不是webservice的专有协议,其他应用协议也使用soap传输数据。例如,SMTP、tr069等

          2.wsdl

          WSDL 是基于 XML的用于描述Web Service及其函数、参数和返回值。通俗理解Wsdlwebservice的使用说明书。

          3.uddi

        UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。企业将自己提供的Web Service注册在UDDI,也可以使用别的企业在UDDI注册的web service服务,从而达到资源共享。 UDDI旨在将全球的webservcie资源进行共享,促进全球经济合作。

        目前大部分企业使用webservice并不是必须使用UDDI,因为用户通过WSDL知道了web service的地址,可以直接通过WSDL调用webservice。

     Webservice开发规范

       JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。

       1.JAX-WS

        JAX-WS  的全称为 Java API for XML-Based Webservices,早期的基于SOAPJAVAWeb服务规范JAX-RPCJava API For XML-Remote Procedure Call)目前已经被JAX-WS规范取代。从java5开始支持JAX-WS2.0版本,Jdk1.6.0_13以后的版本支持2.1版本,jdk1.7支持2.2版本。

      2.AXM&SAAJ

       JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输等,JAXM&SAAJ 与JAX-WS 都是基于SOAP 的Web 服务,相比之下JAXM&SAAJ 暴漏了SOAP更多的底层细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多的细节,更加面向对象,实现起来你基本上不需要关心SOAP 的任何细节.

      3.JAX-RS

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

     Webservice与Socket(Socket与Webservice的区别、TCP/IP协议、HTTP协议)

       

     

        Webservice采用soap协议进行通信,底层基于socket通信,webservice不需专门针对数据流的发送和接收进行处理,是一种跨平台的面向对象远程调用技术。

  • Socket  是基于TCP/ip的传输层协议
  • Webservice是基于http协议传输数据,http是基于tcp的应用层协议
  • Webservice采用了基于httpsoap协议传输数据。
  • Socket接口通过操作流编程传输数据,不支持面向对象。
  • Webservice 接口支持面向对象,最终webservice将对象进行序列化后通过流传输
   Socket优点:
  • Socket采用tcp、udp底层协议通信,传输速度快,适用于传输大数量的数据。
  • socket具有平台无关性,java写的socket的客户端可以访问c写的socket服务端。
   Socket 缺点

  接口传输的数据需要手动解析,socket通信的接口协议需要自定义,比如:自定义一种字符串拼接的格式,比如自定义的xml数据,自定义麻烦之处在接口调用方和接口服务端需要互相讨论确定接口的协议内容,不方便,好处:适用于传输大数量的数据。



      webservice技术拓展

        虽然java中定义webservice开发规范采用soap协议,但由于soap协议本身的缺点现在更多的webservice接口则直接采用http+自定义协议通信,比如http传输json串、http传输自定义格式的数据,因为这样做比soap协议更快捷,例如某些第三方支付公司的支持接口就直接采用http原始协议通信、http rest方式通信。

        webservice即web服务,只要这个计算机在互联网内,它对外提供的服务接口都可以认为是一个webservice,除了使用http、soap进行通信外如果要保证性能可以直接使用tcp,比如采用socket方式,但是socket方式需要手动通过流编程解析数据,有些麻烦,如果有保证传输速度及跨平台的前提下基于面向对象开发服务接口及客户端程序的技术最好不过,hessian框架就可以保证传输速度及在跨平台的前提下基于面向对象开发远程调用接口。

        总结:webservice可以实现的技术有好多,socket、http、soap方式、hessian等,在实际应用时根据具体的需求和场景去选择应用技术。

      webservice技术选型

          1. 协议约定

         你作为客户端要调用别人的接口,对方服务接口用的是什么协议客户端一般也用什么协议,比如服务端采用socket,客户端使用socket方式通信,服务端使用对外提供soap方式的webservice,客户端使用soap协议与服务端通信。

          2. 通用性

         对于一个webservice主要考虑接口的通用性时,在不要求性能的前提下可以使用soap协议。

如果要考虑接口的通用性还要考虑接口的性能可以采用http+自定义协议,比如http+json串,因为http本身就是web应用中的基础协议,json格式的数据也成为当前web开发中流行数据格式。

         3.高性能

         对于一个webservice主要作为内部系统之间通信使用,比如:联通、移动公司内部的若干系统之间进行数据传输,这类接口主要考虑的是性能,可以直接采用socket通信、hessian等,几种技术性能从高到低是:socket>hessian>http>soap。

        4.开发规范

        当然要注意,有些正规的公司会制定自己公司的开发规范,比如内部系统接口统一采用hessian,统一采用http,并不总是使用性能最高的方式,因为公司会综合考虑自己的人力资源情况在有限的成本下使用最合适的技术才是公司在进行技术选型时所遵循的原则。

      webservice 与http关系

     http与webservice之间的关系,可以用一句话描述: Webservice采用了基于http的soap协议传输数据。
      webservice的三要素soap,wsdl,uddi并未涉及网络通信(soap协议与http通信协议是有本质区别的),soap只是应用协议,并非通信协议,它所依赖的下层通信方式不单单是HTTP,也有SOAP over SMTP, SOAP over TCP,由于HTTP协议群众基础广,开发调试方
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值