首页 > 编程知识 正文

webservice框架有哪些(webservice进程)

时间:2023-05-05 18:19:39 阅读:72835 作者:2615

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /

web服务的若干概念:

基于HTTP协议并通过XML与客户端进行服务器端通信的框架/组件

两个重点:

1 .服务端提供的功能。 用xml编写

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

在图中可以如下表示:

图:web服务的简单显示

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

1 .支持跨平台、HTTP协议的主机和服务器可以建立通信连接,大多数主机和服务器(99.999%以上)支持HTTP协议。 通常,不同目标主机之间的通信必须通过防火墙打开一个端口。 HTTP协议的优点是防火墙通常不会阻止80个端口,从而提供方便安全的通信。

2 .跨语言、任何语言都支持XML文本分析。 其目的是实现不同语言之间的通信。 因为通信的内容受到XML的限制,所以通过这样进行通信,可以跨越语言的障碍。 即,Java开发的服务端、客户端可以通过c访问,可以通过Java、VB等访问。 反之亦然。

第二部分:的基本原理和体系结构

当然,体系结构比上图更复杂,上述只是说明了一次一次的通信,实际上还需要考虑以下问题。 参考图例说明:

1 .服务器端(提供商)提供统一的标准化服务。 就像成立公司,即Server Provider,工商行政管理局,注册公司的地址和性质一样。 目的是让别人用公司的服务,从工商管理局了解你的地址。 这种统一的做法对于所有公司和所有需要公司提供服务的客户都很有用。 而且这些信息已经最大限度地公开了。

2 .客户端(Requester )前往注册中心(Registry )获取公司的基本信息后,找到这家公司并使用该公司提供的服务。

图:基本web服务体系结构流程图

注意上图基本步骤的标签,说明如下

1 .提供程序节点提供服务后,首先在节点注册

s="MsoNormal">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

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。