WebService的简介、原理和使用方法

第一部分:直观概述

Webservice的几种概念:

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

两个关键点:

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

2)第一步中描述的功能,嵌入到HTTP协议中,使得能通过HTTP协议进行通信(就是SOAP)

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

1) 跨平台,支持HTTP协议的主机和服务器都能够建立通信联系,并且大部分主机和服务器都支持HTTP协议,一般而言,所有主机和服务器之间的通信都需要通过防火墙,HTTP协议的优势在于防火墙一般不会封掉80端口,这样就方便安全通信;

2) 跨语言,任何语言都支持XMl文件的解析,这样不同语言之间也可以用XML传递信息,通信的内容受XMl限制;例如,java开发的服务器端,c语言的客户端也可以访问。

 

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

上面只是说明了一来一回的通信,实际情况要更为复杂,需要考虑一下问题,参照图例说明:

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

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

如下解释:

1、 (1)Provider节点提供好服务之后,首先注册到Registy;

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

3、(4) Requester 使用 Provider 提供的服务.

更具体的理解如下:

上图这些东西 , 完完整整的呈现了 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.

第三部分 : 实践 WebService

看到上面的图那么复杂 , 实质上 SOAP+HTTP 协议已经足够成熟,犯不着让我们通过 xml 生成带有 SOAP 变迁的 HTML 脚本 , 有很多工具可以帮住我们实现。事实上,开发起来还是相当简便的。

情况 A: 已知存在 Web Service, 客户端的开发可以通过以下步骤 :

 

1.        通过 UDDI ,查找到 Client 程序需要的 Web Service 的位置

2 .        通过 WebService 找到 WSDL 接口描述文件

3 .        通过工具,将步骤 2 得到的 WSDL 文件,生成一个 Client Stub, 这个实质上是代码 , 也就是打了一个桩。把这个 stub 的代码归并到 Client 程序中 .

4.        每次 Client 需要调用 WebService 的时候,直接调用步骤 4 生成的 Stub 接口,就实现了对 Server 端的调用。

 

情况 B: Server 端的开发,同样无需做解析 SOAP 这样的破事,框架会帮我们做好。大致步骤如下 :

1 .        实现 WebServer 需要提供的所有功能

2 .        利用 WSDL 文件 ( 或者 IDL) 生成 Server Stub, 这些代码将负责接收从外界获得的请求,并将其转发给 Web Server 的 Service Implementation (实现代码)。当 Service Implementation 的代码处理完,产生结果之后,又会把结果交给 Server Stub, 然后 Server Stub 可以产生一个 SOAP 的响应 . Server Stub + Server Implementation 合在一起 , 称为 Web Service Container, 这玩意儿就是让发送到 WebService 的 HTTP 请求,直接送到 Server Stub 上面的。

 

 

 

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值