webservice总结

一、webservice介绍

1.  webservice 也叫作web服务。是java1.5以后推出的 。跨平台跨语言的远程调用技术。

     客户端与服务端项目之间的交互、数据传递。

2.   webservice技术,客户端与服务端进行通讯使用的协议是soap协议。(如果是基于restful风格的webservice,使用http协议。)

3.   soap协议使用wsdl说明书作为服务端接口的描述文档(地址)

 

二、webservice的三要素

1. SOAP

  • SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。SOAP作为一个基于XML语言的协议用于有网上传输数据。
  • SOAP = 在HTTP的基础上+XML数据。  SOAP是基于HTTP的。
  • SOAP的组成如下
    •    Envelope  必须的部分。以XML的根元素出现。
    • Headers  可选的。
    • Body  必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

2.  WSDL

        wsdl说明书,可以描述服务端接口。(wsdl说明书,是一个xml文档。)

        Web Service描述语言WSDL(web Service Definition Language)就是用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。

          wsdl说明书:

                   a: 通过wsdl说明书,就可以描述webservice服务端对外发布的服务;

                   b:  wsdl说明书是一个基于xml文件,通过xml语言描述整个服务;

                   c:  在wsdl说明中,描述了:                    

                                  对外发布的服务名称、                                     

                                  对外发布的服务接口(portType)、                                

                                  服务接口参数、                           

                                  服务返回的数据类型(字符串、对象)    

        发布一个简单Web Service服务,并提供对外的wsdl文档的话;需要做哪些步骤呢?

        步骤1: 写一个服务类,在类上添加@WebService注解

        步骤2: 发布服务:EndPoint.publish(….)

        步骤3: 访问wsdl说明书

 

3. 开发规范(UDDI)

         a: jaxws  传统的webservice开发   (基于soap协议,只能传输xml数据) —— 开发简单,高度封装实现细节

      (JAX-WS(Java API for XML Web Services)规范是一组XML Web Services的JAVA API;也即JDK内置的Web Service实现,用来开发和发布Web Service服务。)

         b: jaxrs  基于restful风格的webservice的开发规范,基于http协议的应用开发,传输xml+json,更高效。比较流行。

 

三、webservice的优缺点

优点:

     a:实现异构平台的互通性

         理论上, Web Service 最大的优势是提供了异构平台的无缝街接技术手段。由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的协议通信,这就产生了互相通信的需求。 Web Service 使任何两个应用程序,只要能读写XML,那么就能互相通信。

      b:更广泛的软件复用(例如手机淘宝可以复用已有淘宝的业务逻辑.)

        软件的复用技术通过组合已有模块来搭建应用程序,能大幅度提高软件的生产效率和质量。用户只要获得了描述 Web Service 的 WSDL 文件,就可以方便地生成客户端代理,并通过代理访问 Web Service 。

       c:成本低、可读性强、应用范围广

          Web Service 可用基于 XML 的 SOAP 来表示数据和调用请求。并且通过 HTTP 协议传输 XML 格式的数据。 使用webservice实现基于服务的架构。(SOA)

       d:迅捷的软件发行方式

           (每个web Service称为一个生产者.不同的生产者可以相互协同合作完成整个应用)

         Web Service 将彻底地改变软件的发行方式。 软件供应商可以把软件分解成若干Web Service 模块构成的系统,直接在 Web 上发布。

缺点:

         由于soap是基于xml传输,本身使用xml传输会传输一些无关内容从而影响效率,随着soap协议的完善,soap协议增加了许多内容,这样就导致了使用soap去完成简单的数据传输而携带的信息更多效率再受影响;

四、应用场景

      Web Service 可以适用于应用程序集成、软件重用、跨防火墙通信等需求。不同的业务要求不同。具体如下:

适合使用Web Service情形:

       a:公开接口

       b:调用webservice服务端

不适合使用Web Service情形

       a:单机程序间通信

       b :同构程序间通信

五、@WebService注解

@WebService

   1、serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service。缺省值为 Java 类的简单名称 + Service。(字符串)

   2、endpointInterface: 服务接口全路径, 指定做SEI(Service EndPoint Interface)服务端点接口

   3、name:此属性的值包含XML Web Service的名称。在默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。缺省值为 Java 类或接口的非限定名称。(字符串

   4、portName:  wsdl:portName。缺省值为 WebService.name+Port。

   5、targetNamespace:指定你想要的名称空间,认是使用接口实现类的包名的反缀

   6、wsdlLocation:指定用于定义 Web Service 的 WSDL 文档的 Web 地址。Web 地址可以是相对路径或绝对路径。(字符串)

   注意:实现类上可以不添加Webservice注解  

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值