技术开发 频道

集成IBM Lotus Domino数据和Microsoft SharePoint Services

【IT168 技术文档】

集成,不要迁移。本文将向您展示集成 IBM Lotus Domino 和 Microsoft Windows SharePoint Services 是件多么轻松的事情。还介绍了使用标准 HTTP 请求或 XML 来访问 SharePoint 安装中的 Lotus Domino 数据。

多年来,Microsoft 一直在关注 IBM Lotus Domino 产品线。不久以前,Microsoft Exchange Server 打算取代 Lotus Domino 在企业前景中的地位。虽然并没有实现预期目标,但 Microsoft 继续以备受推崇的 Lotus Domino 平台为竞争目标。Microsoft Windows SharePoint Services 是最新的 Microsoft 协作产品;它可以独立使用或与众多其他 Microsoft 产品相结合来构建应用程序,尝试提供与 Lotus Domino 相似的功能。

SharePoint 参与竞争后,很多客户错误地认为他们必须在 SharePoint 或 Lotus Domino 中作出选择;但是,这两个平台可以和平共存,协同工作。您可以方便地利用二者的强大功能。本文研究了将基于 Domino 的数据和应用程序集成到 SharePoint 环境中的各种方法。文章以 SharePoint 平台的简单介绍作为开始。

本文使用了以下工具:

  • Microsoft Windows Server 2003 with SharePoint Services
  • Lotus Domino V7.0.1
  • IBM Lotus Domino Designer V7.0.1

 

什么是 Microsoft SharePoint?

Microsoft SharePoint 仅仅是众多 Microsoft 产品中的其中之一,是作为 Lotus Domino 的替代产品问世的。但是,若要复制 Lotus Domino 的众多功能,还需要 Microsoft Exchange、Microsoft Visual Studio .NET 以及其他产品,仅凭 SharePoint 并不够。实际上,SharePoint 是一种门户服务器,将不同资源放在单个 Web 界面中。这些资源可以是 Web 站点、后端数据、文件系统资源(如文档)等等。现在存在两种风格的 SharePoint 产品:

  • Microsoft Windows SharePoint Services
    该核心产品提供了 SharePoint 的基本功能以及用于构建站点的各种模板。从 Windows Server 2003 开始,它可以作为标准组件使用。它是以 Microsoft .NET Framework 为基础的。
  • Microsoft Office SharePoint Portal Server
    该服务器提供了分组并组织单个的站点和列表,以及跨多站点进行搜索的功能。它以 Windows SharePoint Services 为核心,添加了更广泛的功能。

 

这两个版本的 SharePoint 都使用 Microsoft SQL Server 作为后端数据存储。SharePoint 的具体细节不在本文所讨论的范围之内。我们着重讨论将基于 Domino 的数据和应用程序集成到 SharePoint 安装中的方法。

SharePoint 和 Lotus Domino 的集成

最近,我们收到一位客户打来的电话,他提出了有关将现有 Domino 数据迁移到新的 SharePoint 安装中的想法。由于这位客户有着大型的 Domino 安装,因此这种提议存在问题。我们提出了问题,然后为他说明了在新的 SharePoint 安装中使用当前基于 Domino 的应用程序的各种方法。

集成是当今企业环境中的实际问题,当前的企业环境有着多应用平台的特点,因此 Lotus Domino 和 SharePoint 可以轻松协作是毋庸置疑的。集成平台的方法众多;下面的列表给出了一个概况:

  • Web
    SharePoint 提供了基于 Web 的异构资源访问,而借助于 Web 请求,Lotus Domino 能够轻松处理 SharePoint 数据。因此,使用标准 HTTP 请求或 Web 服务(用于 Lotus Domino 7 中),即可在 SharePoint 环境中包含基于 Domino 的数据和应用程序。
  • XML
    XML 事实上已演化为用于移动数据的语言。Lotus Domino 通过其可用 Domino Web 代理公开的开发语言(LotusScript/Java)对 XML 提供了广泛的支持。还可以使用 ?ReadViewEntries URL 命令来读取 Domino 视图中的数据。
  • ADO.NET
    .NET Framework 访问数据源的标准方式是 ADO.NET。可以按照与其他任何数据源相同的方式来处理 Domino 数据,并通过 Open Database Connectivity(ODBC:IBM Lotus NotesSQL ODBC driver)或特定于 Domino 的 .NET 数据适配器访问这些数据。
  • Component Object Model(COM)
    尽管 .NET Framework 的目标之一是消除 COM 及其问题,但仍可以在 .NET 应用程序中使用 COM。Lotus Domino 通过 COM 公开其对象;使用这些对象可以在 SharePoint 环境中访问基于 Domino 的对象。

 

SharePoint 环境的一个要素就是 Web Part,它是将不同资源集合到一个界面中的工具。在深入研究 Lotus Domino 和 SharePoint 的集成之前,集中了解一下 Web Part 的基本概念将受益匪浅。

Web Part

Web Part 是用于控制一个 Web 页面的某些部分的软件组件。它们提供了在 SharePoint 内部包含资源的方法。此类资源的范围从简单的 Web 页面一直到调用 Web 服务并显示结果。

从编程角度看,Web Part 是基于 .NET Framework 和 Microsoft ASP.NET 的。Web Part 本质上是 ASP.NET 服务器控件。可以创建新的 Web Part 作为 ASP.NET 定制控件。但是,它们与标准 ASP.NET 控件之间存在一个关键区别,即:标准 ASP.NET 控件是在设计时添加到 Web 表单页的,而 Web Part 是由用户在运行时添加到 Web Part Pages 的 Web Part Zones 的。

SharePoint Web 界面可以划分为区(zone)或页(page)。在下一部分中将介绍使用 Web Part 将资源放置在这些区域中。SharePoint 产品和技术依靠 Web Part 来提供可配置、可扩展的用户界面。本文将使用标准的、开箱即用的 Web Part。

在深入研究如何在 SharePoint 中使用 Domino 资源的例子之前,先来快速浏览一下本文所附的示例 Domino 应用程序。图 1 展示了包含公司信息的 Domino 数据库的默认视图。示例应用程序包含一个带有公司名称、联系人姓名和电子邮件地址字段的表单。此外,它还包含了一个视图,用来显示按公司名称列出的数据。


图 1. 示例 Domino 数据库的默认视图
示例 Domino 数据库的默认视图

图 2 展示了数据库中的一个文档。


图 2. 在 Domino 数据库中打开的示例文档
在 Domino 数据库中打开的示例文档

从本文的 下载部分 可以下载示例数据库以供使用。

使用 Web

要将基于 Domino 的应用程序集成到 SharePoint 环境中,最简单的方法就是通过标准的 Web 或 HTTP 调用。使用 SharePoint Page Viewer Web Part 可以很轻松地实现上述集成。

可以使用 Page Viewer Web Part 在 Web Part Page 上显示 Web 页面、文件或文件夹。使用超级链接、文件路径或文件夹名称来链接内容。当然,需要有一个 SharePoint 站点来连接 Lotus Domino。图 3 展示了在 SharePoint 测试环境中所选择的 Create Page 选项。


图 3. 创建新的 SharePoint 站点
创建新的 SharePoint 站点

从列表(位于模板列表的底部,图中未显示)中选择 Web Part Page 模板。该模板允许您将 Web Part Page 的布局组织成区,并在这些区中安置一个或多个 Web Part。在本文中,我们将在单个区中链接 Domino 资源。

使用模板创建新的 Web Part Page,如图 4 所示。


图 4. 使用现有模板来创建新的 Web Part Page
使用现有模板来创建新的 Web Part Page

Web Part 的关键特性之一就是拖放式特征。可以选择一个 Web Part,将其拖至页面上的目标区域或目标区,然后放到该位置上。将 Web Part 放置在预期的区之后,即可对它进行配置。

如前所述,我们将使用 Page Viewer Web Part 通过 HTTP 请求来访问 Lotus Domino。单击 Next 链接来访问 Page Viewer Web Part 选项,如图 5 所示。


图 5. Page Viewer Web Part 选项
Page Viewer Web Part 选项

将 Page Viewer Web Part 拖放到预期的位置。图 6 所示将其放置在页面的较低位置上。


图 6. 创建新的 Page Viewer Web Part
创建新的 Page Viewer Web Part

若要访问 Page Viewer Web Part 的属性,单击 open the tool pane 链接。图 7 显示了结果。


图 7. 设置 Page Viewer Web Part 属性
设置 Page Viewer Web Part 属性

为了在 Page Viewer Web Part 中使用基于 Domino 的应用程序,选择 Web Page 作为要显示项的类型(Folder 和 File 是另外两个选项),然后在 Link 字段输入正确的 URL。工具窗格中的 Appearance、Layout 以及 Advanced 部分使您可以进一步对资源外观进行控制。

单击 OK 保存更改。图 8 显示了在页面内包含示例 Domino 应用程序的结果 —— 页面的其他区域(顶部横幅和左侧栏)是不可见的,因为它们是空的。现在完成了仅带有一些鼠标单击事件的 Lotus Domino/SharePoint 集成。


图 8. SharePoint 站点中包含 Domino 应用程序的结果
SharePoint 站点中包含 Domino 应用程序的结果

视图内容的显示是不受限制的。可以使用任何 Domino URL 来访问基于 Domino 的数据。图 9 展示了在 SharePoint 页面的标题栏中使用 Domino 图像资源的例子(使用了来自 developerWorks 站点的 IBM 徽标)。通过标准的 ?OpenImageResource URL 命令来访问图像资源,为使用本地 Domino 服务器的示例数据库使用以下语法:

http://localhost/SharePointTest.nsf/ibm-logo.gif?OpenImageResource.
图 9. 在 SharePoint 页面中使用 Domino 图像资源
在 SharePoint 页面中使用 Domino 图像资源

除了通过 URL 来引用图像之外,还可以使用 SharePoint Image Web Part,它允许您通过 URL 来引用图像并设置图像属性,如垂直和水平对齐、背景颜色等。使用 Domino URL 命令的要点在于可通过 Web 地址进行访问的任何资源都能够用在 SharePoint 安装中。

也可以通过 URL 与 Lotus Domino 进行交互,使用 Domino 代理来显示数据。这种方法使您能够利用 Domino 编程环境在展示之前按需处理数据。清单 1 中简单的 LotusScript 代理显示了来自示例应用程序的特定视图中各文档的公司名称。


清单 1. 用于显示视图内容的 LotusScript 代理
            Sub Initialize
            Dim s As New NotesSession
            Dim db As NotesDatabase
            Dim vw As NotesView
            Dim doc As NotesDocument
            Set db = s.CurrentDatabase
            If Not (db Is Nothing) Then
            Set vw = db.GetView("Companies")
            Set doc = vw.GetFirstDocument()
            While Not (doc Is Nothing)
            Print doc.CompanyName(0)
            Print "<br>"
            Set doc = vw.GetNextDocument(doc)
            Wend
            End If
            Delete doc
            Delete vw
            Delete db
            Delete s
            End Sub
            

该脚本访问数据库的 Companies 视图,并使用 Print 语句来显示视图中各文档 CompanyName 字段的内容。使用带有 HTTP 请求的 Lotus Domino 可以扩展为使用两个平台的 XML 功能。

使用 XML

XML 是 Lotus Domino 的一部分,就像它也是 .NET Framework 的一部分一样。二者都包括解析器和广泛的 XML 支持,简化了平台之间的数据交换。要访问来自 Lotus Domino 的 XML,最容易的方法之一是利用 Lotus Domino 在视图中的固有支持,使用 ?ReadViewEntries URL 命令。清单 2 展示了为示例数据库的 Companies 视图生成的 XML。


清单 2. 使用 ?ReadViewEntries 命令为示例数据库生成的 XML
            <?xml version="1.0" encoding="UTF-8" ?>
            <viewentries toplevelentries="2">
            <viewentry position="1" unid="62AB3655123C7D6E85257228001484AF"
            noteid="8F6" siblings="2">
            <entrydata columnnumber="0" name="CompanyName">
            <text>Baseline, Inc.</text>
            </entrydata>
            <entrydata columnnumber="1" name="CompanyContact">
            <text>Tony Patton</text>
            </entrydata>
            <entrydata columnnumber="2" name="CompanyEmail">
            <text>aspatton@bellsouth.net</text>
            </entrydata>
            </viewentry>
            <viewentry position="2" unid="90B3859793C60C2385257228001479BF"
            noteid="8FA" siblings="2">
            <entrydata columnnumber="0" name="CompanyName">
            <text>ACME Products</text>
            </entrydata>
            <entrydata columnnumber="1" name="CompanyContact">
            <text>Joe Smith</text>
            </entrydata>
            <entrydata columnnumber="2" name="CompanyEmail">
            <text>jsmith@acme.com</text>
            </entrydata>
            </viewentry>
            </viewentries>
            

您可将 SharePoint 页面中的 XML 与 XML Web Part 相集成。可以选择 XML Web Part 并将其拖放到页面的所需位置上。图 10 展示了添加 XML Web Part 并单击 open the tool pane 链接对 XML 进行配置之后的 SharePoint 页面。


图 10. 向页面添加 XML Web Part
向页面添加 XML Web Part

图 10 显示了用于 XML 的选项。单击 XML Editor 允许直接键入要显示的 XML;而且可以使用 XSL Editor 来输入将应用于 XML 的任何可扩展样式表语言(Extensible Stylesheet Language,XSL)。另外,可以相应字段中输入 XML 和/或 XSL 的路径。为了进行演示,将清单中 2 的 XML 连同 XSL 直接输入到 SharePoint 中。

单击 XSL Editor 按钮并输入清单 3 中的 XSL 来格式化由 Domino 生成的 XML(用于示例数据库视图的)。该 XSL 在 HTML 表中显示视图内容,其中第一列是公司名称,第二列是电子邮件地址。


清单 3. 在 HTML 表中格式化 Domino 视图内容的 XSL
            <?xml version="1.0" encoding="ISO-8859-1"?>
            <xsl:stylesheet version="1.0"
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:template match="/">
            <html><body>
            <h2>Companies</h2>
            <table border="1">
            <tr bgcolor="#9acd32">
            <th>Company</th>
            <th>Email</th>
            </tr>
            <xsl:for-each select="viewentries/viewentry">
            <tr>
            <td><xsl:value-of select="entrydata
            [@columnnumber=1]/text"/></td>
            <td><xsl:value-of select="entrydata
            [@columnnumber=2]/text"/></td>
            </tr>
            </xsl:for-each>
            </table></body>
            </html>
            </xsl:template></xsl:stylesheet>
            

图 11 展示了位于页面靠上部分的 XML Web Part 中所显示的数据。


图 11. 使用 XML 格式化并在 XML Web Part 中显示的 Domino 视图
使用 XML 格式化并在 XML Web Part 中显示的 Domino 视图

除了由 Lotus Domino 生成标准的 XML 之外,还可以使用 Domino 代理生成 XML。使用与清单 1 相同的代码,代理可以生成 XML 格式的视图内容。还可以使用 Microsoft Visual Studio .NET 开发环境来开发自己的 Web Part。

开发自己的页面

尽管 XML 和 Lotus Domino 可以解决大部分问题,但在某些情况下,可能需要开发自己的 ASP.NET 页面来展示 Domino 数据。利用 Web 服务调用、COM、ODBC 或本地数据提供程序(例如 Propulsion N2N Lotus Notes/Domino data driver for .NET),这些页面可以访问 Lotus Domino。这种方法使您可以使用完整的 ASP.NET 功能以及 Lotus Domino 后端来构建应用程序。关于 COM 的使用,有一点要注意:SharePoint 以及一些 Lotus Domino 实例必须安装在同一台机器上。

开发自己的 Web Part

开发您自己的 Web Part 时,除了要熟悉 SharePoint 环境之外,还需要具备 .NET Framework 和 ASP.NET 方面的知识。Web Part 是标准的 ASP.NET 定制控件。Microsoft 提供了模板,帮助您开始进行定制开发。下载 Microsoft 站点提供的模板安装包,您将看到需要安装 C# 或 VB.NET 示例(或安装两者)的提示。图 12 展示了安装后 Visual Studio .NET 中可以使用的 Web Part Library 项目选项。


图 12. 安装后 Visual Studio .NET 中可以使用的 Web Part Library 选项
图 12. 安装后 Visual Studio .NET 中可以使用的 Web Part Library 选项

创建定制 Web Part 的具体细节不在本文所讨论的范围之内。隐藏在 Web Part 背后的代码可以使用所有 .NET 功能,因此可以使用任何必要的方法(ADO.NET、Web 服务等)与 Lotus Domino 进行交互。

重用,不要替换

对开放标准(例如 Web 服务和 XML)的有力支持使得集成不同产品(如 Microsoft SharePoint 和 IBM Lotus Domino)变得轻而易举。SharePoint 平台通过一个 Web 界面来交付各种资源。可以方便地使用标准的或定制的 SharePoint Web Part 以及其他途径来包含基于 Domino 的应用程序和数据。利用已有的 Domino 应用程序,使之与 SharePoint 环境在同一家企业中和平共存。

0
相关文章