`
wanxiaotao12
  • 浏览: 456358 次
  • 性别: 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 soap原理

    详细讲解web service soap原理。

    Web Service原理及应用

    介绍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...

    Web Service

    Web Service工作原理 Web Service的优势 Web Service的创建 Web Service的发布 Web Service的调用

    开发应用之Web Service

    掌握 Web Service 的基本工作原理 理解 Web Service 的优势 掌握 Web Service 的开发和使用

    Understanding SOA with Web service( 中英版)

    Understanding SOA with Web service主要是通过web服务来阐述SOA架构原理与方法,是当今一种相对主流的实现SOA架构的方式,很有启发,拿出来与大家共享一下!

    基于Web Service的数据库同步系统的设计与实现.rar(论文+程序源码)

    2Web Service数据库同步原理 7 2.1 Web Service构成与特点 7 2.1.1 Web Servcie 的结构 7 2.1. 2 Web Servcie的关键技术 8 2.1.3 Web Servcie 的特点 9 2.2数据库复制的分类 9 2.3复制数据的类型 11 2.4数据捕获技术...

    Web Service 运行原理详细介绍

    主要介绍了 Web Service 运行原理详细介绍的相关资料,需要的朋友可以参考下

    Web服务:原理和技术

    本书是有关Web Service讨论最详尽的书籍之一。

    WEB服务 原理和技术.pdf(带书签)

    出书时间为2009年,作者是芬兰的时间著名计算机工作者;另外我手动把书签加上了,方便大家查看

    Web+Service通用客户端和测试工具Java源码

    Web+Service通用客户端和测试工具Java源码

    ROP(Rest Open Platform)用户开发手册

    它不同于传统的SOAP Web Service和Rest Web Service这些Web Service 技术型框架,Rop是一个应用型的Web Service平台框架,它不但可以方便快捷地开发一个个Web Service服务,还提供了服务平台领域问题的整体解决方案...

    嵌入式WEB Server设计与应用

    随着 科 学 技术的不断发展,嵌入式系统在工业控制和智能家电领域 得到了广泛的应用,同时控制逻辑和功能也变得越来越复杂,相...介绍了实现的原理和方法,并在最后对本文的工作做了总结,展望了后 续工作的发展方向.

    webService的基本原理

    webService的基本原理 SOAP: 是“Simple Object Access Protocol”的缩写,SOAP是消息传递的协议,它规定了Web Services之间是怎样传递信息的。简单的说,SOAP规定了: 1. 传递信息的格式为XML。这就使Web ...

    ASP.NET报名管理信息系统(源代码+论文+开题报告+任务)

    该系统采用C/S结构,利用Web Service原理来实现。Web services是建立可互操作的分布式应用程序的新平台。Web service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现...

    05-web开发系列图书27-33.doc

    本书一共分为8章,前半部分主要包括:阐释Ajax、动态语言、Web service和SOA的定义和基本原理;实现JavaScript单元测试;理解JavaScript函数为何具有状态;实现JavaScript “Generics”;使用代码块;使用函数进行...

    Rapid Open Platform

    它不同于传统的SOAP Web Service和Rest Web Service这些Web Service 技术型框架,Rop是一个应用型的Web Service平台框架,它不但可以方便快捷地开发一个个Web Service服务,还提供了服务平台领域问题的整体解决方案

    HTTP协议基本原理PPT介绍

    第3章 XML Web Service 基础技术 第4章 使用 XML Web Service 第5章 实现一个简单的 XML Web Service 第6章 部署和发布 XML Web Service 第7章 XML Web Service 的安全 第8章 XML Web Service 设计 第9章 全局 ...

    基于WebService的SOA实现技术研究

    WebService 因其中立的技术标准、松散耦合、通用的协议规范成为 SOA 的主流实现技术,本文重点研究了 Web- Service 的核心技术和工作原理,开发并使用了 WebService。

Global site tag (gtag.js) - Google Analytics