WebService学习(一)——简介

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-10 18:38:16

一、什么是WebService

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

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

二、WebService规范

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

  1. JAXM&SAAJ:
    JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,相当于Web 服务的服务器端。SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输,它在服务器端、客户端都需要使用。

  2. JAX-WS:
    JAX-WS(Java API For XML-WebService)。早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API For XML-Remote Procedure Call)目前已经被JAX-WS 规范取代,JAX-WS 是JAX-RPC 的演进版本,但JAX-WS 并不完全向后兼容JAX-RPC,二者最大的区别就是RPC/encoded 样式的WSDL,JAX-WS 已经不提供这种支持。

  3. JAX-RS:
    JAX-RS 是JAVA 针对REST(Representation State Transfer)风格制定的一套Web 服务规范。

JAXM&SAAJ 与JAX-WS 都是基于SOAP 的Web 服务,相比之下JAXM&SAAJ 暴漏了SOAP更多的底层细节,编码比较麻烦,而JAX-WS 更加抽象,隐藏了更多的细节,更加面向对象。JAX-WS 和JAX-RS 规范我们采用Apache CXF 作为实现,CXF 是Objectweb Celtix和Codehaus XFire 合并而成。CXF 的核心是Bus(总线),CXF是依赖于Spring 的,Bus 都有一个ID,默认的BUS 的ID 是cxf。三种规范中,第一种和第三种的使用更为常见。

三、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、Headers、Body组成,其中Headers是可选,其余两种为必选,Envelope以XML根元素出现,Body包含执行的服务器的方法,和发到服务器的数据。

四、wsdl说明书

WSDL(WebService Definition Language)就是用机器能阅读的方式提供一个正式描述文档的语言,该语言基于XML形成。用于描述WebService及其函数,参数和返回值。

  • 通过wsdl说明书,就可以描述服务端对外发布的服务
  • wsdl基于xml文件,通过xml语言描述整个服务
  • 在wmdl说明书中,包含有:
    • 对外发布的服务名称
    • 接口方法名称
    • 接口参数
    • 服务返回的数据类型

五、UDDI

web服务服务商将自己的web服务发布到Internet上,就需要UDDI(Universak Description,Discovery and Integration),UDDI是一个跨语言,跨平台的开放性架构,可以帮助web服务商在互联网上发布web服务信息。UDDI是一种目录服务,企业可以通过UDDI来注册,搜索web服务。UDDI通过SOAP进行通讯,构建在.NET傻瓜

六、优缺点

  • 优点:

    • 异构平台互通性
    • 软件复用性
    • 成本低
    • 迅捷开发
  • 缺点:

    • 冗余大效率低

七、关于SOA

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!