发布时间:2006.02.23 20:40 来源:赛迪网 作者:
不管你的Web service是用什么工具,什么语言写出来的,只要你用SOAP协议通过HTTP来调用它,总体结构都应如下图所示。通常,你用你自己喜欢的语言(如VB 6或者VB.NET)来构建你的Web service,然后用SOAP Toolkit或者.NET的内建支持来把它暴露给Web客户。于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,以调用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。对VB 6程序来说,Web service请求处理器是一个与SOAP Toolkit组件协同工作的ASP页面或ISAPI extension。而对VB.NET程序来说,Web service请求处理器则是一个.NET Framework自带的ISAPI extension。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。
典型的Web service结构
远程过程调用(RPC)与消息传递
Web service本身实际是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC(远程过程调用)和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC强调的是远程对象和它的界面,即属性、方法和调用时的参数。DCOM和.NET远程访问都是RPC的例子。
消息传递一般是在耦合度更低的系统中。消息传递的概念是,客户端向服务器发送消息,然后等待服务器的回应。消息传递系统强调的是消息的发送和回应,而不是远程对象的界面。由于是基于消息的系统,客户端和服务器之间的耦合度比RPC方法更低。
RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在使用本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。例如,你在VB 6中通过DCOM调用一个远程对象,你的代码看起来就与调用本地对象一样。而消息传递则不同,它强调传递的东西是什么,但不管消息传递过去后干什么。客户不需要知道服务器是怎么实现的,以及消息是怎么被处理的。
我们已经说过,你可以建立一个消息服务器,根据收到的消息来调用对象。这是通过消息传递方式有效的实现了RPC。如果客户仍然以消息的思维方式来进行操作,那么你可以把它叫做消息传递。但如果客户以远程对象的思维方式来进行操作,那么你就应该把它叫做RPC。
如果你想实现一个基于XML的消息传递系统,大量的工作将集中在处理XML请求和应答消息上。虽然VB 6和VB.NET中,帮助你建立Web Service的工具已经做了许多对XML消息进行处理的工作,但毕竟所有的数据都是用XML的形式收发的,许多情况下你还是需要对消息进行一些自己的处理。深入理解XML和XML Schema对于有效地实现XML消息系统是至关重要的。
建立Web Service
我知道你现在已经很心急的想要写点代码,看看Web service到底是什么样的了。那么我们现在就介绍怎样用VB 6和VB.NET实际做出一个Web service来。本节的目的只是向你展示一下这些工具的功能,而不是深入地讲解Web service的工作原理。本书后面的章节会向你慢慢说明Web service以及Microsoft SOAP Toolkit和.NET等工具的内部原理的。
使用SOAP Toolkit
Microsoft的SOAP Toolkit V2帮助你把COM组件变成Web service。这套工具分为三大主要部分:SoapClient是一个用于调用Web service的COM组件;SoapServer 是一个处理SOAP请求和返回SOAP应答的组件;还有一个WSDL向导,它可以把你的type library转换成WSDL文档,以暴露给Web service的客户。
假设你有一个COM组件,暴露出一个GetTemperature方法:
Public Function GetTemperature(ByVal zipcode As String, _
ByVal celsius As Boolean) As Single
要把这个组件变成一个Web service,你可以使用WSDL向导。给出你要转换的组件后,向导会要你选择你想暴露出的方法,指出生成的Web service所在的URL(如http://localhost/Temperature/),以及你希望用ASP还是ISAPI做你的请求处理器(如图1-2)。然后向导还会问你生成的WSDL和ASP文件应该放在那个目录下。
使用SOAP Toolkit向导来转换COM组件
现在该调用这个Web service了。方法是在VB或其他任何可以使用COM的语言里调用SoapClient组件。下面这段代码演示了怎样调用Webservice中的GetTemperature方法:
Dim soap As MSSOAPLib.SoapClient
Set soap = New MSSOAPLib.SoapClient
soap.mssoapinit _
"http://localhost/Temperature/Temperature.wsdl"
MsgBox ("气温是: " & _
soap.GetTemperature("20171", False))
首先调用mssoapinit,把WSDL文档的URL传给SoapClient。WSDL文档的URL就是你在WSDL向导中给出的URL加上〈Service名字.wsdl〉。一旦初始化完成,SoapClient就得到了Web service的所有方法,你就可以直接调用这些方法了。
- 大小: 6.4 KB
分享到:
相关推荐
嵌入式Web Service系列讲座之二是关于在.NET平台上开发Web Service的主题。Web Service是一种基于互联网的、能够跨平台和跨应用程序交互的服务。在.NET框架中,Web Service的开发得到了全面支持,无需额外的SDK或...
Web Service是一种典型的异构分布技术,基于XML和SOAP技术。它具有面向服务、互操作性与松散耦合、封装性等特点。Web Service可以实现应用系统的集成,解决电子商务安全问题。 knowledge point 3: 基于独立安全服务...
本官方文档深入探讨了WS-Federation的原理、结构和实施细节,为开发者提供了一个全面理解这一协议的平台。 **1. WS-Federation概述** WS-Federation的核心目标是消除身份验证和授权的障碍,使得用户可以在多个信任...
### SOAP和Web Service的概念 #### 一、从Remoting到Web Service 随着互联网技术的发展以及分布式计算需求的增长,传统的客户端/服务器模型逐渐显现出局限性。例如,在多层分布式架构中,如何有效地实现不同层级...
### SOAP:XML跨平台Web Service开发技术 #### 1. 简介 SOAP(Simple Object Access Protocol),即简单对象访问协议,是一种用于交换结构化信息的标准协议。它是Web服务中用于远程过程调用的主要协议之一,特别是...
在IT行业中,Web服务是一种通过HTTP协议来交换数据和实现不同系统...这是一次典型的客户端与Web服务之间的交互测试,旨在确保两者之间的通信无误。在实际开发中,这种测试是必不可少的,可以确保软件的稳定性和可靠性。
XML Web Service的核心在于XML,它是一种结构化、可扩展的语言,用于在不同的系统之间传输数据。服务通常通过SOAP(简单对象访问协议)进行通信,SOAP消息封装在HTTP报文中,确保跨平台兼容性。WSDL(Web服务描述...
其中,“Web设计三层结构”是一种非常典型且广泛使用的架构模式。该模式将整个系统划分为三个主要层次:表现层(View)、业务逻辑层(Business Logic Layer, BLL)和数据访问层(Data Access Layer, DAL)。这种结构...
新系统采用基于Web Service的架构,可以克服C/S结构的缺点,实现分布式、跨平台的信息共享。Web Service使得各部分功能模块能够通过标准接口(如SOAP协议)进行通信,使得预定信息、点菜数据、收银记录等可以在各...
嵌入式Web Service系列讲座之一 Web Service介绍
这是一个典型的客户端-服务器架构,其中Android客户端作为请求发起者,Web服务作为提供信息的服务器。 首先,让我们了解Web服务的基本原理。Web服务通常使用SOAP(Simple Object Access Protocol)或REST...
### Web Service接口在电子政务体系结构中的应用 #### 数据交换平台概述 数据交换平台(TM-eXdata)是一款基于J2EE架构和XML技术开发的数据共享与交互工具,旨在实现异构网络或系统间的文件/数据高效传送、转换与...
5. **Web服务架构**:典型的Web服务架构包括客户端、服务端和中间的传输层。客户端通过SOAP请求调用服务,服务端处理请求并返回响应,中间的传输层负责消息的可靠传递。 6. **Web服务安全性**:由于Web服务在开放...
"嵌入式Web Service系列讲座之三:典型的Web Service结构.doc"可能详细解析了Web服务的架构,包括客户端和服务端的角色,以及中间的传输层和消息格式。这有助于理解Web服务在分布式系统中的工作方式。 "在Pocket PC...
Web Service和轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)相结合的方案,为实现分布式用户认证和单点登录提供了有效的技术支持。 ### Web Service和LDAP相结合的分布式用户认证 LDAP是一...
RESTful Web服务是一种基于HTTP协议的轻量级Web服务设计风格,它强调...提供的压缩包文件揭示了一个典型的Java Maven项目的结构,其中包含了源代码、构建配置以及第三方库,这些都是开发和部署RESTful服务所必需的。
SOAP是一种轻量级协议,用于在分布式环境中交换结构化的XML消息。它提供了传输中立的标准方法来封装XML数据。WSDL则是一种用于描述Web服务的接口的语言,它可以指定服务的端点地址、消息格式以及调用方式。 ##### ...
在本项目中,"Web网站设计实现人事资源管理系统毕业设计"是一个典型的IT课题,主要涉及了Web开发领域的多个核心技术,包括JSP、Web Service、Web设计以及Java Web。以下是这些技术在实现人事资源管理系统中的应用...