JAVA的WebService支持
SOA(Service-Oriented Architecture)面向服务架构是一种思想,它将应用程序的不同功能单元
通过中立的契约(独立于硬件平台、操作系统和
编程语言)联系起来,使得各种形式的功能
单元更好的集成。目前来说,WebService是 SOA 的一种较好的实现方式,WebService采用
HTTP 作为传输协议,SOAP(Simple Object Access Protocol)作为传输消息的格式。但
WebService 并不是完全符合 SOA 的概念,因为 SOAP 协议是 WebService 的特有协议,并
未符合 SOA 的传输协议透明化的要求。SOAP 是一种应用协议,早期应用于RPC 的实现,
传输协议可以依赖于 HTTP、SMTP 等。
SOA的产生共经历了如下过程:
通常采用 SOA的系统叫做服务总线(BUS)
JAVA 中的Web 服务规范:
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。早期的基于 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 已经不提供这种支持。JAX-RPC 的 API从 JAVA EE5 开始已经移除,如
果你使用J2EE1.4,其API位于 javax.xml.rpc.*包。
JAX-WS(JSR 224)规范的 API位于 javax.xml.ws.*包,其中大部分都是注解,提供API操
作 Web 服务(通常在客户端使用的较多,由于客户端可以借助 SDK生成,因此这个包中的
API我们较少会直接使用)。
WS-MetaData(JSR 181)是 JAX-WS 的依赖规范,其 API位于 javax.jws.*包,使用注解配
置公开的Web服务的相关信息和配置 SOAP 消息的相关信息。