WebService – 基础详解

【1】是什么?


  1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据)
  2. 一个跨语言、跨平台的规范(抽象)
  3. 多个跨平台、跨语言的应用间通信整合的方案(实际)

一个完整的webservice由server和client组成,即服务器端和客户端。



【2】为什么要使用?

web service能解决:


跨平台调用 ;

跨语言调用;

远程调用。


【3】什么时候使用?

  1. 同一家公司的新旧应用之间。
  2. 不同公司的应用之间

分析业务需求:天猫网与中通物流系统如何交互?

  1. 一些提供数据的内容聚合应用:天气预报、股票行情

【4】Web Service中的几个重要术语


① WSDL:web service definition language

WebService定义语言,可归结如下:

对应一种类型的文件.wsdl;

定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式

一个web service对应一个唯一的wsdl文档。

② SOAP:simple object access protocal


简单对象访问协议,可归结为如下:

是一种简单的、基于HTTP和XML的协议, 用于在WEB上交换结构化的数据;

soap消息:请求消息和响应消息;

http+xml片断。

③ SEI:WebService EndPoint Interface(终端)

web service的终端接口,就是WebService服务器端用来处理请求的接口。

④ CXF和axis2

CXF(Celtix + XFire)和axis2都是用于开发webservice服务器端和客户端的框架。

【5】一次webservice请求流程

一次web service请求的本质:

1)客户端向服务器端发送了一个soap消息(http请求+xml片断);

2) 服务器端处理完请求后, 向客户端返回一个soap消息。

那么它的流程是怎样的呢?


【6】WSDL重要标签说明

WSDL 是一种XML Application,它将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。

WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的Web服务。

在具体使用中,我们可以对 WSDL 进行扩展(类似SOAP的可扩展性),这样无论通信时使用何种消息格式或网络协议,都可以对服务访问点及其使用的消息格式进行描述。

在WSDL的框架中,可以使用任意的消息格式和网络协议,如同SOAP中可以使用任意的网络协议一样。在WSDL规范中,定义了如何使用SOAP消息格式、HTTP GET/POST消息格式以及MIME格式来完成Web服务交互的规范。

types – 数据类型(标签)定义的容器,里面使用schema定义了一些标签结构供message引用 。

message – 通信消息的数据结构的抽象类型化定义。引用types中定义的标签。

Message具体定义了在通信中使用的消息的数据结构,Message元素包含了一组Part元素,每个Part元素都是最终消息的一个组成部分,每个 Part都会引用一个DataType来表示它的结构。Part元素不支持嵌套(可以使用DataType来完成这方面的需要),都是并列出现。

operation – 对服务中所支持的操作的抽象描述,一个operation描述了一个访问入口的请求消息与响应消息对。

portType – 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。

portType具体定义了一种服务访问入口的类型,何谓访问入口的类型呢?

就是传入/传出消息的模式及其格式。

一个portType可以包含若干个 operation,而一个operation则是指访问入口支持的一种类型的调用。

在WSDL里面支持四种访问入口调用的模式:

单请求; 单响应; 请求/响应; 响应/请求。

如下图所示,name=”WeatherWSSoap” 的portType中有多个operation元素。其中每个operation元素又分别拥有input/output message。

binding – 特定端口类型的具体协议和数据格式规范的绑定。

Binding结构定义了某个PortType与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次开始,描述的内容就与具体服务的部署相关了。比如可以将PortType与SOAP/HTTP绑定,也可以将PortType与MIME/SMTP相绑定等。

service- 相关服务访问点的集合。

service描述的是一个具体的被部署的Web服务所提供的所有访问入口的部署细节,一个service往往会包含多个服务访问入口,而每个访问入口都会使用一个port元素来描述。

port – 协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。

port描述的是一个服务访问入口的部署细节,包括通过哪个Web地址(URL)来访问,应当使用怎样的消息调用模式来访问等。其中消息调用模式则是使用Binding结构来表示。


如 :http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl


【7】WebService相关协议

目前开发的Web服务的相关标准协议:

① 服务调用协议SOAP;

② 服务描述协议WSDL;

③ 服务发现/集成协议UDDI;

④ 服务工作流描述语言WSFL。

SOAP是用来最终完成Web服务调用的,而WSDL则是用于描述如何使用 SOAP来调用Web服务的。

发表评论