WebService介绍以及应用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wxwsfl/article/details/88634126

WebService基本概念

1.什么是web服务

这里列举一些常见的web服务:

  1. 手机淘宝、京东...
  2. 天气预报
  3. 手机号归属地
  4. 股票查询
  5. 发手机短消息
  6. 手机充值功能
  7. 中英文翻译
  8. 银行转账业务
  9. 公司的“进销存系统”在某商品缺货时自动给供应商下订单

免费web服务网站:http://www.webxml.com.cn/zh_cn/index.aspx

2.简介

  • webService即web服务,它是一种跨编程语言和操作系统平台的远程调用技术。
  • Java中共有三种webService规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS
  • webService三要素:soap、wsdl、uddi

3.术语

3.1 webService开发规范

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

(1)JAX-WS

JAX-WS(JAVA  API  For XML-WebService),JDK1.6自带的版本为JAX-WS2.1,其底层支持为JAXB。JAX-WS(JAR 224)规范的API操作Web服务(通常在客户端使用的较多,由于客户端可以借助SDK生成,因此这个包中的API我们较少会直接使用)

(2)JAXM&SAAJ

JAXM(JAVA  API  For  XML Message)主要定义包含了发送和接收消息所需的API,相当于Web服务器的服务端,其API位于javax.messaging.*包,它是JAVA EE的可选包,因此,需要单独下载。

SAAJ(SOAP With Attachment  API  For JAVA ,JSR 67)是与JAXM搭配使用的API,为构建SOAP包和解析SOAP包提供了重要的支持,支持附件传输,它在服务器、客户端都需要使用。这里还要提到的是SAAJ规范,其API位于javax.xml.soap.*包

JAXM*SAAJ与JAX-WS都是基于SOAP的web服务,相比之下,JAXM&SAAJ暴露了SOAP更多的底层细节,编码比较麻烦,而JAX-WS更加抽象,隐藏了更多的细节,更加面向对象,实现起来你基本上不需要关系SOAP的任何细节。那么如果你想控制SOAP消息的更多细节,可以使用JAXM&SAAJ.

(3)JAX-RS

JAX-RS是JAVA针对REST风格定制的一套Web服务规范。到JCP上单独下载JAX-RS规范的接口,其API位于javax.ws.rs.*包。

这里的JAX-WS和JAX-RS规范我们采用Apache CXF作为实现。

3.2 SOAP协议

(1)SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。他有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的预定。SOAP可以运行在任何其他传输协议上。

(2)SOAP作为一个基于XML语言协议用于网上传输数据

(3)SOAP = 在HTTP的基础上 +  XML数据

(4)SOAP是基于HTTP的

(5)SOAP的组成如下

  • Envelope-必须的部分,以XML的根元素出现。
  • Headers-可选的。
  • Body-必须的。在body部分,包含要执行的服务器的方法和发送到服务器的数据。

3.3 wsdl说明书

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

(1)通过wsdl说明书,就可以描述webService服务端对外发布的服务;

(2)wsdl说明书是一个基于xml文件,通过xml语言描述整个服务。

(3)在wsdl说明中,描述了:

  • 对外发布的服务名称(类)
  • 接口方法名称(方法)
  • 接口参数(方法参数)
  • 服务返回的数据类型(方法返回值)

3.4 UUDI

UUDI是一个跨产业、跨平台的开放性架构,可以帮助Web服务提供商在互联网上发布Web服务的信息。

UUDI是一种目录服务,企业可以通过UDDI来注册和搜索Web服务。

简单来说:UUDI就是一个目录,只不过在这个目录中存放的是一些关于Web服务的信息而已。

并且UUDI通过SOAP进行通讯,构建于.net之上

4.应用场景

(1)跨防火墙通信

(2)应用系统集成

(3)软件和数据重用

简单来说,如果一个功能,需要被多个系统使用,可以使用webService开发一个服务端接口,供不同的客户端应用。主要应用在企业内部系统之间的接口调用、面向公网的webService服务。

5.优缺点

优点:

(1)异架构平台的互通性

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

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

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

(3)成本低、可读性强、应用范围广

Web Service可用于基于XML的SOAP来表示数据和调用请求。并通过HTTP协议传输XML格式的数据。

(4)迅捷的软件发行方式

(每个Web Service称为一个生产者,不同的生产者可以相互协同合作完成整个应用)Web Service将彻底改变软件的发行方式。软件供应商可以把软件分解成Web Service模块构成的系统。直接在Web上发布。

(5)跨平台、语言通信

客户端与服务器可能是不同的语言开发的。但是,通过Web Service提供服务接口,客户端与服务端之间可以传递对象。

缺点:

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

Web Service作为Web跨平台访问的标准技术,很多公司都限定要求使用Web Service,但如果是简单的接口可以直接使用HTTP协议自定义数据格式,开发更快捷。

6.面向服务架构SOA

SOA(Service-OrientedArchitecuture)面向服务架构是一种思想,他将应用程序的不同功能单元通过中立的契约(独立于硬件平台、操作系统和编程语言)联系起来,使得各种形式的功能单元更好的集成。目前来说,WebService是SOA的一种较好的实现方式,WebService采用HTTP作为传输协议,SOAP作为传输消息的格式。但WebService并不是完全符合SOA的概念,因为SOAP协议是WebService的特有协议,并未符合SOA的传输协议透明化的要求。SOAP是一种应用协议,早起应用于RPC的实现,传输协议可以依赖于HTTP,SMTP等。

猜你喜欢

转载自blog.csdn.net/wxwsfl/article/details/88634126
今日推荐