微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService的简介, 原理, 使用

第一部分 : 直观概述

WebService 的几种概念 :

 

以 HTTP 协议为基础,通过 XML 进行客户端和服务器端通信的框架 / 组件

 

两个关键点 :

1.       服务端提供的功能,通过 xml 描述

2.       第一步中的描述的功能,嵌入到 HTTP 协议中,使得能通过 HTTP 协议进行通信【所谓的 SOAP 】 .

 

用图可以如下表示:

图一: WebService的简要表示

 

 采用这两个技术的目的主要是 :

1.       跨平台,支持 HTTP 协议的主机和服务器,都能够建立通信联系,并且大部分的主机和服务器 (99.999% 以上 ) 将支持 HTTP 协议。一般而言,不同目标主机之间的通信,需要通过防火墙,打开某个端口,HTTP 协议的优势在于,防火墙一般不会封掉 80 端口,这样就可以方便,安全的通信。

 

2.       跨语言,任何语言,都支持 XML 文本解析,这个的目的是为了实现不同语言之间的通信,通信的内容,是被 xml 限制的,因此这样进行通信,能跨越语言障碍,即,Java 开发的服务端,客户端可以用 C 访问,可以用 java , VB 等访问,反之亦然。

 

 第二部分 : 基本原理和架构

当然, 架构比我们上面说到的图要更为复杂,上面只是说明了一来一回的通信,实际情况还需要考虑以下问题,参照图例说明 :

1. 服务器端 (Provider) 提供统一的标准化服务。 就像开办一个公司 ( 即 Server Provider),工商行政管理局,注册一下公司地址和性质。 目的是,别人要用公司的服务,从工商管理局就知道你的地址。这样统一的做法,是方便所有的公司以及所有需要公司提供服务的客户。 并且这些信息是最大限度的公开。

 

2. 客户端 (Requester) 到注册中心 (Registry) 拿到公司的基本信息之后,去找到这个公司,然后使用该公司提供的服务。

 

图二: 基本的WebService架构流程图

 

注意上面图中的基本步骤的标号,解释如下

1. Provider 节点提供好服务后,首先注册到节点 Registry

2 和 3. Requester 节点到 Regitry 节点查信息,找到需要的 Provider 及其提供的 Service

4. Requester 使用 Provider 提供的服务

 

更具体的介绍,参照参考文献 [2],下面这些基本由这个参考文献翻译而来 :

 

图三: 细节步骤流程图

上图这些东西,完完整整的呈现了 WebService 的整个原理流程 :

1.       Client 有需要,想调用一个服务,但不知道哪里去调用 . 但知道 uddi Registry 上可以查到。

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

3.       于是 Client 去 Web Server A,询问确切的调用方法

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

5.       Client 了解到这些之后,将这些 xml 的接口方法,封装成为 HTTP 请求,发给 Web Server A. 这些封装方式采用的是标准的 SOAP 方式,实质是满足 HTTP 协议的一些 SOAP 的报文消息。

6.       Web Server A 回应的也是 HTTP 协议的 SOAP 包 . 这样双方的请求 - 响应完全畅通。

 

 

上面我们看到的是应用原理图,进一步深入,可以发现如下的协议架构图 :

图四: 协议结构

 

上面我们已经花了很大的精力,介绍了发现 Service(uddi),Service 提供的接口描述 (WSDL),调用 Service(SOAP),以及传输 (HTTP) 的的整个过程。因此不再做介绍。 这个技术的核心是 SOAP。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐