您当前位置: 圣才学习网首页 >> IT类 >> Web开发技术

Domino 6中外部Web服务使用总结

扫码手机阅读
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
评论(0
来源:网络 作者:未知
什么是Web服务?
Web服务允许组织将现有的业务流程扩展为发布的服务。开发人员使用这些服务,可以构建松散耦合的软件组件,同时,便于应用程序之间的信息交换和集成。和基于 Web的传统 Domino 应用程序不一样,Web服务并没有终端用户操作的用户界面,但是提供了一个统一的方式,执行流程和进行数据交换。
Web服务基于如下三个技术标准:
可扩展标记语言(eXtensible Markup Language , XML ,它是Web服务背后的驱动力。XML 语言并不是一种编程语言或者 API,而是一种独立于平台的组织数据的方式。XML的语法便于通过编程来处理文本数据,同时又便于为人们所理解。Web服务使用 XML 作为标准,在网络设备之间进行通信。
简单对象访问协议(Simple Object Access Protocol , SOAP),开发人员可以使用这种独立于平台的机制,远程调用分布式对象的方法。SOAP 消息的通信使用 XML 来描述对象、方法以及执行的参数。客户机和服务器都可以实现和使用 SOAP。既然这样,SOAPConnect for LotusScript 包可以方便的使用它的实现,开发人员可以不用处理底层的XML
Web服务描述语言(Web Service Description LanguageWSDL)定义了 Web服务中可用的端口和操作。你可以把端口看作一个接口,而把操作看作对一个特定对象所调用的方法。
图书目录案例
在查看这些使用了 SOAPConnect for LotusScript的代码和实现细节之前,先介绍一下包含的样本数据库的目的和结构。样本数据库是一个简短的图书目录,包括多种园艺书籍。数据库的目标是让用户可以获得类别中图书的最新价格。数据库包含了一个 Form ,称为  Book,包括了类别中的每一本书。Book form 包括了 5 个域,用来描述每一本书:图书标题,图书封面,图书作者,ISBN 号,出版社。用户可以通过 Web 浏览器查看可用图书的列表,这样使用 All Book 视图,如下 1 所示。
正如大家所料,在视图中选择了一本书之后,用户就可以看到这本书的详细信息。
对于大多数在线零售商来说,书的价格随着供求波动。用户选择 Get Price 按钮,可以获得最新价格。这里我们使用了Barnes & Noble 提供的Web服务和 SOAPConnect for LotusScript 包。
安装SOAPConnect for LotusScript
在本文最后提供了下载 SOAPConnect for LotusScript 包的链接。为了测试样本数据库,或者使用 SOAPConnect for LotusScript ,你的环境必须满足下列最低要求:
Lotus Notes Client, 版本 5.0.7a 或者更高
Lotus Domino Designer, 版本 5.0.7a 或者更高
Lotus Domino Server, 版本 5.0.7a 或者更高
尽管 SOAPConnect for LotusScript 包不需要开发人员编写任何 Java 代码,这个包使用了其中的Java Agent 来调用外部 Web服务。不幸的是,Java Agent 使用了 Apache SOAP的一个实现,需要不同版本的Java XML 解析器,比在Notes Domino 中自行安装的解析器版本高。执行如下的步骤将影响其他数据库,所以特别强调,要在测试环境或者开发环境中执行这些步骤。
要在Domino Designer 中执行安装,完成如下步骤:
1. SOAPConnect for LotusScript 包解压缩到 C:\\SOAPConnect 目录下。
2.将安装在 Notes 程序目录下的 XML4j.jar 文件(默认情况下是 C:\\Lotus\\Notes\\XML4j.jar )重新命名为 XML4j.jar-hidden
3. C:\\SOAPConnect\\ProgramDir 目录下的所有文件复制到 Notes 程序目录下(默认为 C:\\Lotus\\Notes )。
4. C:\\SOAPConnect\\DataDir 目录下的所有文件复制到 Notes 数据目录(默认为 C:\\Lotus\\Notes\\data )。
5.把安装在 Designer Java 目录(默认为 C:\\Lotus\\Notes\\data\\domino\\java )下的 XML4J.jar 文件重新命名为 XML4j.jar-hidden 。然后将 C:\\SOAPConnect\\ProgramDir 目录下的所有文件复制到你的 Designer Java 目录(默认为 C:\\Lotus\\Notes\\data\\domino\\java )。
要安装到 Windows Domino Server ,完成如下步骤:
1. SOAPConnect for LotusScript 包解压缩到 C:\\SOAPConnect 目录。
2. Domino 程序目录(默认为 C:\\Lotus\\Domino )和 Domino Java 目录(默认为 C:\\Lotus\\Domino\\Data\\domino\\java )中,将 XML4j.jar 文件重命名为 XML4j.jar-hidden
3. C:\\SOAPConnect\\ProgramDir 目录下,将所有文件复制到你的 Domino 程序目录(默认为 C:\\Lotus\\Domino ),同时也复制到 Domino Java 目录(默认为 C:\\Lotus\\Domino\\Data\\domino\\java )。
4. C:\\SOAPConnect\\DataDir 目录下,将所有文件复制到 Domino 数据目录(默认为 C:\\Lotus\\Domino\\data )。
理解
在安装过程中可以看到,SOAPConnect for LotusScript 包括多个 Java 库和 Domino 数据库。尽管 Java 技术隐藏在背后,SOAPConnect 允许开发人员使用 LotusScript 来创建、发送和处理 SOAP 消息。为了概要的了解如何进行 SOAPConnect for LotusScript 操作,下图描述了数据流程和使用的传输协议。
3 所示,每当一个用户想要查看某本书的价格,将在SOAPCall Runner 数据库中创建一个文档。SOAPCall Runner 数据库中的SOAPCall Agent 使用 Apache SOAP 库,创建 SOAP 消息,发送到 XMethod's serverXMethods 是一个虚拟的实验室,开发人员可以测试多个开发人员或者组织的Web服务。在样本数据库中,XMethod's server 充当了来自 SOAPConnect Barnes & Noble's server的请求的路由器。请求转发到 Barnes & Noble's server ,并且在类别中定位到了这本书,然后,通过 XMethod's server 将图书价格返回到 SOAPCall Agent。下一步,SOAPCall Agent 将价格返回到图书类别数据库中的调用 LotusScript Agent
调用 Web服务
前面已经讲述了 Web服务的基础知识,以及样本应用程序的行为,下面讲述如何使用 SOAPConnect for LotusScript 包调用 Web服务。在样本数据库中,当用户选择了 Book 表单的Get Price 按钮,就会调用 GetPrice LotusScript Agent。令人惊奇的是,仅仅需要 9 行代码就可以调用 Web服务,并且返回数据给 Agent。如下的代码显示了获得图书价格所需的对象和方法。
1    %INCLUDE "SoapConnect"
2    Dim session As New NotesSession
3    Dim doc As NotesDocument
4    Dim myArgs(0) As Variant
5    Dim price As String
6    Set doc = session.DocumentContext
7    Dim bn As New SOAPClient("http://services.xmethods.com:80/soap/servlet/rpcrouter" )
8    myArgs( 0 ) = doc.BookNumber( 0 )
9    price = bn.invoke("urn:xmethods-BNPriceCheck", "getPrice", myArgs)
下面讲述该代码片段:
在你使用 SOAPClient 类之前,你需要把资源的位置告知 Domino。使用第 1 行的Include声明,在编译期间会把 SoapConnect.lss的内容插入到 Agent。在安装SOAPConnect的时候会把 SoapConnect.lss 复制到你的程序目录。
2 行到第 6 行设置运行 Agent 所需的变量。
下面的部分更加有趣。在第 7 行,使用服务端点创建了一个新的SOAPClient。在本实例中使用了一个 XMethods服务端点。要想了解更多关于 XMethods的信息,可以参看本文的参考资料。
在调用 Web服务之前,你需要知道查询的ISBN 号码。
9 行调用 Web服务,传入命名空间、方法和参数。命名空间变量对应于你要装载的服务,在这里是xmethods-BNPriceCheck服务。myArgs 变量包含了图书的ISBN 号码。
4 显示了 Domino Designer 6 GetPrice Agent
总结
Lotus 承诺要更多的利用 Web服务,使用和扩展 Notes Domino的协作功能。有了 SOAPConnect for LotusScript 这些包,可以探索 Domino 是如何通过本地工具和过程来使用 Web服务。样本数据库提供了一个框架,可以用来创建你自己的数据库,调用 Web服务。整个文章探讨了如下主题:
介绍了构成 Web服务的核心技术。
安装SOAPConnect for LotusScript的步骤。
探讨了如何在样本数据库中使用 SOAPConnect for LotusScript
 

小编工资已与此挂钩!一一分钱!求打赏↓ ↓ ↓

如果你喜欢本文章,请赐赏:

已赐赏的人
最新评论(共0条)评论一句