1、常用的开源WebService框架

Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF、Apache Wink、Jboss  RESTEasy、Sun JAX-WS(最简单、方便)、阿里巴巴  Dubbo(除外)等。

目前三种主流的web服务实现方法: 

REST(新型):表象化状态转变 (软件架构风格)RESTEasy、Wink、CXF、Axis2…….

SOAP(比较成熟):简单对象访问协议  Xfire、Axis2、Axis1、CXF

XML-RPC(淘汰):远程过程调用协议(慢慢被soap 所取代)

REST 简单易用,效率高,貌似未来有很大的发展空间,也有宣称rest性能个方便比soap强大的,已经有很多框架宣称对rest进行支持比如spring 3.0、struts

SOAP 成熟度较高,安全性较好

 

2、WebService 三个基本要素:

UDDI(Universal Description Discovery and Integration)  UDDI始于2000年,由IBM、Microsoft和其他33家公司创立。用户自己可以按UDDI标准搭建UDDI服务器,用来管理,分发,查询WebService 。其他用户可以自己注册发布WebService调用。

WSDL (WebService Description Language)WebService描述语言,用来描述如何访问具体的服务。 

SOAP(Simple Object Access Protocol) 简单对象访问协议,一般基于TCP、HTTP等协议,采用二进制、XML、JSON等格式,用来传递信息的格式。

程序开发人员通过UDDI机制查找分布在互联网上的Web Service,在获取其WSDL文件后,就可以在自己的程序中以SOAP调用的格式请求相应的服务了。

 

3、通讯协议SOAP(Simple Object Access Protocol):

简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:
SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它,以及如何处理它们的框架;

SOAP编码规则,用于表示应用程序需要使用的数据类型的实例; SOAP RPC 表示远程过程调用和应答的协定; SOAP绑定(binding),使用底层协议交换信息。

SOAP的两个主要设计目标是简单性和可扩展性。它定义了一种在HTTP客户端和服务器端传输命令和参数的机制。

SOAP不关心什么操作系统、编程语言或在服务器端或客户端使用的对象模型:除了需要使用HTTP传输外,与其他无关。目前SOAP有1.0和1.2两个版本

 

4、Web服务契约WSDL:

WSDL(Web Service Description Language),是一个用来描述Web服务(Web Service)和说明如何与Web服务通信的XML语言。

因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。

Service 用于聚合一组服务访问点构成一个Web Services的定义

Port 为Binding(绑定)制定一个地址,从而定义一个服务访问点

Binding 为特定PortType(端口类型)定义的操作和消息指派具体的传输协议和数据格式规范

PortType 一个或多个端点支持的操作的抽象集合。每个操作一般会引用一条输入消息和一条输出消息

Message 代表所传输数据的抽象定义。消息由一些逻辑片断构成,每个逻辑片断分别与某个类型系统中的定义相关联

Type 提供用于描述所交换消息的数据类型定义(string、int)