WebService的简介, 原理, 使用
2011-05-04 12:21
369 查看
第一部分
:
直观概述
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.
第三部分
:
实践
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. http://www.axaptapedia.com/Webservice
2. http://gdp.globus.org/gt3-tutorial/multiplehtml/ch01s02.html
3.
http://blog.csdn.net/gnuhpc/archive/2009/12/22/5047951.aspx
延伸阅读:
1. http://topic.csdn.net/u/20070417/14/48a1d5ff-9917-4f70-8604-040630da60a3.html
相关文章推荐
- WebService的简介, 原理, 使用
- WebService的简介, 原理, 使用,流程图
- WebService的简介、原理和使用方法
- WebService的简介, 原理, 使用
- WebService的简介, 原理, 使用
- WebService的简介、原理和使用方法
- 推荐 kafka 简介、使用场景、设计原理、主要配置及集群搭建
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- Java基础篇Map集合类简介和使用原理剖析
- 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- android源码中ccache使用及原理简介
- 【转】Postmark原理及使用简介
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建