`
wanxiaotao12
  • 浏览: 472423 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Web Service原理三

 
阅读更多

转:http://blog.csdn.net/ostrichmyself/article/details/6393627

第一部分 : 直观概述

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

 

  • 大小: 10.2 KB
  • 大小: 15.4 KB
  • 大小: 18.3 KB
  • 大小: 5 KB
  • 大小: 17.8 KB
分享到:
评论

相关推荐

    Web Service原理及应用

    Web Service原理及应用 Web Service是一种基于互联网的、平台无关的、标准化的接口技术,它允许不同的应用程序之间进行通信和数据交换。Web Service的核心概念在于使用XML(可扩展标记语言)来描述服务,SOAP(简单...

    web service soap原理

    详细讲解web service soap原理。

    C#Web Service C#Web Service C#Web Service

    C# Web Service是一种基于.NET Framework的开发技术,用于创建分布式应用程序,使得不同系统间能够通过互联网进行通信。...通过理解并掌握Web Service的原理和实现,开发者能够创建出高效、安全的分布式系统。

    web service课件

    西北某高等院校研究生的web service课件,英文版的,总共7个ppt,比较简练,适合想快速了解学习web service的学生下载学习,分别是Web Services(ch3.1)、Web Services(ch3.2)、Web Services(ch3.3)、Web Services(ch...

    asp.net写的web service例子

    ASP.NET Web Service是一种基于.NET Framework的简单方法,用于构建可跨平台、跨语言通信的Web...通过学习这个例子,初学者可以理解Web Service的基本原理,掌握创建和调用服务的方法,为进阶的Web开发打下坚实的基础。

    PB11开发Web Service应用

    理解Web Service的基本原理,熟悉PB11的API和工具,以及遵循良好的编程和设计原则,将有助于提升开发效率和应用质量。 总结,PB11提供了强大的Web Service开发功能,让开发者能够轻松地构建和整合分布式系统。通过...

    《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》(

    在《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》这本书中,作者李维精心编撰了一套系统而全面的教程,针对的是Delphi6和Kylix2这两个经典的Visual Basic derivative (VBD) 编程环境,尤其是针对SOAP(Simple ...

    Java Web Service总结

    下面是 Java Web Service 的总结,涵盖了 Web Service 的原理、技术支持、 AXIS 实现、Eclipse 部署等方面的知识点。 一、Web Service 简介 Web Service 是一种分布式系统架构,它允许不同的系统和应用程序通过...

    Java完整的Web Service示例代码,学会做web service程序

    然而,XFire作为早期的框架,对于理解Web Service的基本原理仍然是有价值的。 在学习这个示例时,你应重点掌握以下几个核心概念: - WSDL:描述服务的接口和消息格式。 - SOAP:传输协议,用于封装数据并发送给...

    web service第一次启动慢

    首先,要理解web service的工作原理。Web service基于客户端/服务器模式,其中客户端可以是本地应用程序或通过网络连接的远程应用程序。当客户端发起一个对web service的请求时,服务器上的web service接收请求,...

    web service reference

    #### 三、Web Service的关键技术 实现Web Service涉及到多个关键技术: 1. **RPC (Remote Procedure Call)**:远程过程调用协议,它使一个程序可以调用另一个位于不同地址空间的程序,如同调用本地函数一样。 2. **...

    JavaScript Web Service Calls

    3. **XmlLogWriter.cs**: 这个类可能负责将Web服务的调用日志记录为XML格式,以便于分析和调试。在JavaScript调用Web服务时,记录请求和响应的详细信息可以帮助开发者排查问题。 4. **CrmLogService.cs**: 此文件...

    web service入门教程ppt

    2-WS--WebService-Developing Web Service with Visual Web Developer Express 2005.ppt详细讲解了如何使用微软的Visual Web Developer Express 2005工具创建Web服务。这个IDE提供了一个直观的环境,使得开发者能够...

    T100 Web Service 接口开发v1.5版.rar

    《T100 Web Service 接口开发v1.5版》 在现代信息技术领域,Web Service接口开发扮演着至关重要的角色,它使得不同系统之间的数据交换和功能调用变得简单而高效。本文将深入探讨T100 Web Service接口开发的最新版本...

    Web Service入门例子

    总结:通过这个“Web Service入门例子”,我们可以深入理解Web Service的基本原理、工作流程以及使用XFire进行开发的过程。实践中,我们可以结合实际需求,利用Web Service实现跨平台、跨系统的数据共享和功能集成,...

    简单星座测试 Web Service 实例代码

    这个例子对于初学者来说是一个很好的起点,帮助他们理解Web Service的基本工作原理和.NET框架中的Web Service和C#客户端应用的开发。通过深入研究这个实例,开发者可以进一步掌握网络通信、数据交换以及Web Service...

    ASP.NET与Web Service实例剖析中文版(PPT)

    ASP.NET和Web Service是...它将帮助你理解这两种技术的核心原理,提高开发Web应用程序和服务的能力,并提供实际操作的指导。通过这份PPT,你可以系统地学习和实践,从而在.NET平台上构建出高效、可靠的Web解决方案。

    Web Service开发指南

    在本“Web Service开发指南”中,我们将深入探讨Web服务的概念、工作原理、开发过程以及相关的技术和工具。 1. Web Service简介 Web Service是一种通过统一的接口标准(如SOAP,简单对象访问协议)来交换结构化信息...

    开发应用之Web Service

    3. **WSDL文件**:Web Service Description Language的缩写,是一个XML文档,用于描述Web Service的接口、消息结构、操作和绑定,帮助客户端了解如何与Web Service进行通信。 了解和掌握Web Service的基本工作原理...

Global site tag (gtag.js) - Google Analytics