WebService之工作原理 一

来源:互联网 发布:看门狗2低配置怎么优化 编辑:程序博客网 时间:2024/05/22 04:36

一、Web Service基本概念


Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

简单说:
WSDL、SOAP和UDDI 一起工作,支持WebService与Internet上的其他服务、应用程序和设备交互作用。UDDI提供了发布和
定位Web服务功能,WSDL描述了Web服务,SOAP服务提供了传输消息。


二、Web Service 优势:

1. 平台无关性。任何平台都可以使用WebService,它围绕Web浏览器标准被进行构建,不同的平台可以借此进行交互。
2. 编程语言无关系。基于XML,XML本身与平台无关,使用XSD作为数据类型系统,不论用什么语言编写,所有数据类型都会被转换为XSD,只需要遵守WebService的统一标准即可。
3. 部署、升级和维护Web服务简单、方便。
4. 实现多数据、多服务的聚合
5. 成本低
6. 不受防火墙影响。使用SOAP协议通信,封装了XML格式的数据,以ASCII文本的方式传输,而非二进制,调试方便,而且可以使数据容易的通过防火墙,不需要单独开通信端口。

三、调用原理

1)WebService简要说明

图一: WebService的简要表示


2)Webservice 架构说明:
                    
图二: 基本的WebService架构流程图     
实现一个完整的Web服务包括以下步骤:

◆ Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册; (发布)

◆ Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务; (发现)

◆ Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;(发现)

◆ 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;(绑定)

◆ Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。(绑定)


3)WebService 调用流程说明:
 

图三: 细节步骤流程图

上图呈现了 WebService 的整个原理流程 :

1.       Client 有需要,想调用一个服务,可以去 UDDI Registry 上查找相关服务。

2.       UDDI 上记录了某个一个叫做 Web Server A 的服务器能提供这样的服务。

3.       Client 去 Web Server A, 询问确切的调用方法(一般就是URL访问)。

4.       Web Server A 看到 Client 提出的“确切方法查询”之后, 返回给它一个 WSDL 描述的 xml 文档,里面记录他能提供的各类方法接口 及其参数.

5.       Client 了解到这些之后,将这些 xml 的接口方法,封装成为 HTTP 请求 , 发给 Web Server A. 

这些封装方式采用的是标准的 SOAP 方式 , 实质是满足 HTTP 协议的一些 SOAP 的报文消息。

6.       Web Server A 回应Client的请求,返回的也是 HTTP 协议的 SOAP 包 。

 

调用过程:客户端——> 阅读WSDL文档 (根据文档生成SOAP请求) ——>发送到Web服务器——>交给WebService请求处理器 (ISAPI Extension)

——>处理SOAP请求——> 调用WebService——>生成SOAP应答 ——> Web服务器通过http的方式交给客户端


进一步深入 , 可以发现如下的协议架构图 :

图四: 协议结构

 

 Service发现(UDDI), Service 接口描述 (WSDL), Service的调用 (SOAP), 以及传输 (HTTP) 。

其中 核心技术是 SOAP。