转: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
相关推荐
Web Service原理及应用 Web Service是一种基于互联网的、平台无关的、标准化的接口技术,它允许不同的应用程序之间进行通信和数据交换。Web Service的核心概念在于使用XML(可扩展标记语言)来描述服务,SOAP(简单...
详细讲解web service soap原理。
C# Web Service是一种基于.NET Framework的开发技术,用于创建分布式应用程序,使得不同系统间能够通过互联网进行通信。...通过理解并掌握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是一种基于.NET Framework的简单方法,用于构建可跨平台、跨语言通信的Web...通过学习这个例子,初学者可以理解Web Service的基本原理,掌握创建和调用服务的方法,为进阶的Web开发打下坚实的基础。
理解Web Service的基本原理,熟悉PB11的API和工具,以及遵循良好的编程和设计原则,将有助于提升开发效率和应用质量。 总结,PB11提供了强大的Web Service开发功能,让开发者能够轻松地构建和整合分布式系统。通过...
在《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》这本书中,作者李维精心编撰了一套系统而全面的教程,针对的是Delphi6和Kylix2这两个经典的Visual Basic derivative (VBD) 编程环境,尤其是针对SOAP(Simple ...
下面是 Java Web Service 的总结,涵盖了 Web Service 的原理、技术支持、 AXIS 实现、Eclipse 部署等方面的知识点。 一、Web Service 简介 Web Service 是一种分布式系统架构,它允许不同的系统和应用程序通过...
然而,XFire作为早期的框架,对于理解Web Service的基本原理仍然是有价值的。 在学习这个示例时,你应重点掌握以下几个核心概念: - WSDL:描述服务的接口和消息格式。 - SOAP:传输协议,用于封装数据并发送给...
首先,要理解web service的工作原理。Web service基于客户端/服务器模式,其中客户端可以是本地应用程序或通过网络连接的远程应用程序。当客户端发起一个对web service的请求时,服务器上的web service接收请求,...
#### 三、Web Service的关键技术 实现Web Service涉及到多个关键技术: 1. **RPC (Remote Procedure Call)**:远程过程调用协议,它使一个程序可以调用另一个位于不同地址空间的程序,如同调用本地函数一样。 2. **...
3. **XmlLogWriter.cs**: 这个类可能负责将Web服务的调用日志记录为XML格式,以便于分析和调试。在JavaScript调用Web服务时,记录请求和响应的详细信息可以帮助开发者排查问题。 4. **CrmLogService.cs**: 此文件...
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版》 在现代信息技术领域,Web Service接口开发扮演着至关重要的角色,它使得不同系统之间的数据交换和功能调用变得简单而高效。本文将深入探讨T100 Web Service接口开发的最新版本...
总结:通过这个“Web Service入门例子”,我们可以深入理解Web Service的基本原理、工作流程以及使用XFire进行开发的过程。实践中,我们可以结合实际需求,利用Web Service实现跨平台、跨系统的数据共享和功能集成,...
这个例子对于初学者来说是一个很好的起点,帮助他们理解Web Service的基本工作原理和.NET框架中的Web Service和C#客户端应用的开发。通过深入研究这个实例,开发者可以进一步掌握网络通信、数据交换以及Web Service...
ASP.NET和Web Service是...它将帮助你理解这两种技术的核心原理,提高开发Web应用程序和服务的能力,并提供实际操作的指导。通过这份PPT,你可以系统地学习和实践,从而在.NET平台上构建出高效、可靠的Web解决方案。
在本“Web Service开发指南”中,我们将深入探讨Web服务的概念、工作原理、开发过程以及相关的技术和工具。 1. Web Service简介 Web Service是一种通过统一的接口标准(如SOAP,简单对象访问协议)来交换结构化信息...
3. **WSDL文件**:Web Service Description Language的缩写,是一个XML文档,用于描述Web Service的接口、消息结构、操作和绑定,帮助客户端了解如何与Web Service进行通信。 了解和掌握Web Service的基本工作原理...