·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
您现在的位置:天新网 > 软件开发 > .Net开发 > Web Service
用 SOAP 消息传递返回 ADO 记录集
http://dev.21tx.com 2002年09月03日 Microsoft

1 2 3 4 下一页

  摘要:本文提供了用 SOAP 引出 Web Service 中现有的 COM 对象的准则。本文通过研究返回 ADO 记录集的两种不同方案说明了这些准则,最后讨论了每种解决方案的优缺点,以及在对数据进行打包和检索时可能出现的其它问题。

  简介

  Web Service 概念的引入带来了一种全新的、强有力的方法,用于在 Internet 上进行方法调用。开发人员现在可以利用“简单对象访问协议”(SOAP) 技术,使用户远程调用 Internet Information Services (IIS) 服务器上现有 COM 对象的方法。

  因为这种新的调用进程是基于消息的,所以它在语言和平台方面是未知的。意思是说开发人员可用他们最钟爱的语言来开发客户机代码和服务器对象。Microsoft? SOAP Toolkit 使开发人员能够在 Microsoft Windows? 2000 服务器上使用这项技术快速而容易地在 Web 上引出方法。

  引出现有的 COM 对象

  在将 Microsoft SOAP Toolkit 添加到新的开发工具库以后,我想测试的第一项内容就是,SOAP 与我现有的 Web 应用程序结合得怎么样,以及有多么容易。许多现有的 COM 对象和 Web Service 都通过 Microsoft ActiveX? Data Objects (ADO) 记录集将信息返回到客户机。我开发的用来跟踪我的音乐库的 Web Service 就属于这种情况。

  一个 SQL Server? 数据库包含了我关于艺术家和歌曲的记录。因为 SOAP Toolkit 能够帮助在 Internet 上引出我的服务(并且几年前就出现了在 ASP 页面或简单客户机应用程序中访问此功能的技术),所以我认为,通过 SOAP 将我的音乐库服务引出是一件相当容易完成的事情。

  在安装了 SOAP Toolkit 并将它的组件注册以后(有关正确安装必需的 SOAP 文件的信息,请参阅 SOAP Toolkit 下载包中的 SOAP Toolkit 文档),我就准备通过 SOAP 引出我的第一个 COM 对象。首先运行 SOAP Toolkit Wizard,并使它指向我的列表中的第一个 COM 对象 — 该对象返回我的音乐库中音乐家的一个列表(以及其它一些有帮助的方法)。该向导返回下面的屏幕(图 1)。

SOAP Toolkit Wizard

图 1. SOAP Toolkit Wizard

  我最感兴趣的方法用红色加以高亮显示!发生了什么事?

  此处显而易见的问题实际上根本就不成为问题。它只要求对 SOAP 到底是什么,以及它如何调用方法并返回数据有一定的了解。有了这种了解,您就可以完成某些相当强大的编程目标。

  请注意位于方法右侧的“注”区域中明确显示:

“用红色高亮显示的方法要么返回未知的数据类型,要么包含未知的参数变量类型。如果您一定要选择它,则会在 SDL 文件中将有问题的类型定为数据类型 'string'。”

  回想一下,我记得这些高亮显示的方法返回的是 ADO 记录集。因此,我要么必须为该对象编写一段包装代码,要么必须重写我的 COM 对象。

  深入研究 SOAP 的工作方式证实,SOAP 的意图就是在对分布式对象技术没有任何共享理解的情况下传递消息。ADO 记录集对象是特定于 Microsoft COM 技术的。因为 SOAP 的一个主要目标就是平台和技术之间的互操作性,所以我们的返回 SOAP 程序包不可能返回 ADO 记录集这样的对象。

  为了说明这种基于消息的技术,让我们进一步考察实际的 SOAP 程序包到底返回什么。下面的 SOAP 程序包返回值取自 SOAP Toolkit 的 Microsoft Visual Basic? 样例,该样例调用方法 GetServerTime

  正如我们在上面的样例代码节选中看到的那样,SOAP 的返回值是基于 XML 文本的消息。不可能通过这种范例返回像 ADO 记录集这样的对象。另一方面,过去我已将 ADO 记录集转换为 XML;那么采用什么办法来改变这种情况呢?实际上,我可以将 ADO 记录集转换为 XML,并通过 SOAP 将它传递给我的客户机!简单的返回值可能类似以下代码:

ABBA
Aeromsmith
Alice Cooper
Bad Company
Barry White
Brash
...end so on

  这样我们就发现了一种方法,使用 SOAP 和一点小创新就可以返回某个对象的数据,如 ADO 记录集。在下一节,我们将探索不同的方法来完成这一任务。

  通过选择方法 GetAllArtists 并选择使用 ASP 解决方案,我将生成我的服务所必需的源文件。在下一节中讨论各种可能的解决方案时,将会用到这些文件。

  注:SOAP Toolkit 文档更详细地说明了使用 ASP 解决方案与使用 ISAPI 解决方案之间的差异。

  

1 2 3 4 下一页

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
晨新科技 版权所有 Created by TXSite.net