Office 开发: 现实生活中的 OBA 解决方案模式
程序员文章站
2022-07-14 13:08:07
...
Office 开发
现实生活中的 OBA 解决方案模式
Steve Fox
本文讨论:
|
本文使用了以下技术: Visual Studio 2008 |
目录
大型系统(如 SAP 和 PeopleSoft,以及其他综合业务线 (LOB) 系统)对于成功管理所有类型的业务数据和流程至关重要。然而,并非组织中的每个人都可以访问这些系统,因此,其中的业务数据通常只提供给少数人。这经常导致从系统外部抽取数据进行处理,从而造成业务数据源和使用这些数据的信息工作者之间脱节。
Office 业务应用程序 (OBA) 通过使用 Microsoft® Office 在 LOB 系统中的业务数据与信息工作者之间架起桥梁来解决此问题。Office 功能使您能够执行下列任务:通过自定义窗体区域和文件夹将客户关系管理 (CRM) 数据集成到 Microsoft Outlook® 中、将业务智能集成到 Microsoft Office SharePoint® Server (MOSS) 以查看销售业绩数据,甚至可以将 Microsoft Excel® 与财务数据相集成以提供使用直接来自 LOB 系统的数据的预测模板等等。
为了解 OBA,您可以将其视为包括下列三个主要部分的非常简单的模型:LOB 系统、与 LOB 系统集成的自定义 Office 客户端,以及同样与 LOB 系统集成的服务器组件(实质上是 MOSS)。请注意,在构建 OBA 时,您还可以利用其他 Microsoft 服务器产品,如 Exchange Server 2007、PerformancePointTM Server 2007 等。
从体系结构角度而言,您将主要使用面向服务的体系结构 (SOA) 与 LOB 系统集成,但使用 OBA,您可以采用多种方式将客户端自定义为服务层接口。更有可能的是,您将使用 Visual Studio® Tools for Office (VSTO) 来完成此项工作。例如,图 1 显示了使用自定义功能区和自定义任务窗格的界面。两种界面均具有使用来自 SAP 的事件信息填充 Excel 2007 电子表格的服务层,而且两者均使用 VSTO 3.0 0(Visual Studio 2008 Professional 及更高版本中包括的 VSTO 最新版本)来构建。您还可以设计自己的界面以使用 Microsoft Word 内容控件并将这些控件绑定到数据,或使用自定义工具栏、窗体区域或自定义功能区来扩展 Outlook。有关如何自定义客户端的详细信息,请参阅“OBA 信息资源”侧栏。
Figure 1 集成 SAP 和 Excel 2007 (单击该图像获得较大视图)
使用 MOSS 2007,有多种选项可供您选择。例如,您可以构建一个驻留不同类型 Web 部件的站点。OBA 的常用 Web 部件包括业务数据目录 (BDC) Web 部件(用于管理企业范围内的实体及其相关服务或 ADO.NET 连接)、Excel 服务 Web 部件(用于将电子表格数据链接至 Web 部件)和关键绩效指标 (KPI) Web 部件(用于提供绩效指标)。当然,创建 Office 业务应用程序时还可以使用许多其他 Web 部件。图 2 显示了 SharePoint 站点中的 BDC Web 部件和 Excel 服务 Web 部件。
Figure 2 BDC 和 Excel 服务 Web 部件 (单击该图像获得较大视图)
尽管可能性似乎无穷无尽,但下面将为您提供一些入门帮助。此帮助提供了七种核心的 OBA 解决方案模式。接下来,我将向您介绍这些模式,并将其中之一实际应用于 OBA 设计及开发。
OBA 模式
OBA 模式的目标是显示如何设计和开发 OBA、显示在特定模式中可以使用哪些技术,以及阐述如何着手开发 OBA。其中涉及的一些技术包括 OpenXML、MOSS 2007、Web 服务和 VSTO 3.0。
七种核心模式中的某些模式还包含子模式。而且,因为 OBA 是利用 Office 平台的多个部件的复合应用程序,所以您将发现这些模式之间存在着某些关系。图 3 中列出了七种模式及其各自的目标。
Figure 3 OBA Patterns
每一种模式都代表单个模式,或者包含提供更多详细指南的子模式。例如,“作为沟通渠道的 OBA 应用程序”包含两种子模式(“直接集成”和“间接集成”),可提供有关 SOA 与非 SOA 解决方案的具体指南。稍后,我将更加详细地讨论“作为沟通渠道的 OBA 应用程序”。
模式另一个非常重要的方面在于:它们提供一些针对 Office 平台内含技术的指南,您可以利用这些技术开发 OBA。因此,举例来说,“文档集成”模式及其子模式提出 OpenXML、VSTO、BDC 或更为通用的文档标记。图 4 概述了构成七种核心 OBA 解决方案模式的子模式(如果有),以及在使用特定 OBA 模式设计 OBA 解决方案时所需的技术。
Figure 4 OBA Solution Patterns, Sub-Patterns, and Associated Technologies
您可以使用这些模式作为其他 OBA 内容的占用部分,以了解 OBA 的构成对象以及用于构建它的技术,或者在您自己的 OBA 设计中使用这些模式。还有许多“参考体系结构包”可用。这些是用于特定行业(例如,制造业或银行业)的 OBA 体系结构(和应用程序)指南包。有关更多信息,请参阅“OBA 信息资源”侧栏。
至此,我们已涵盖了 OBA 模式的一些实质内容,让我们将 OBA 解决方案模式应用于真正的软件设计中。
使用 OBA 解决方案模式
首先,让我们看看在软件开发生命周期 (SDLC) 过程中,您实际会在哪个步骤使用 OBA 解决方案模式。首先从确定问题开始。如果没有问题(或需求),那我就不明白您为什么要开发软件了。一旦确定问题,接下来便需要确定与此问题相匹配的需求。这两个步骤是整个过程中最要的部分。如果您不能正确地完成这两个步骤,则问题将在整个 SDLC 中越积越多。一旦明确了需求,即可以开始设计。
在设计阶段,您需要问自己许多问题。例如:需求是否指定特殊的环境(因而对设计有所限制)?完成此工作是否需要特定软件(现成的或自定义的)?需要什么硬件?图 5 阐明了如何在设计阶段继续利用 OBA 模式。
Figure 5 设计阶段的 OBA 模式 (单击该图像获得较大视图)
掌握一组需求并了解 OBA 之后,接下来需要查看 OBA 模式,以确定是否有一种模式适合您的需求;如果有,确定是哪一种。此外,您可能希望深入了解特定模式,以查看是否有子模式适应您的需求。假设您确实找出模式之一与需求之间存在映射,则可以使用该模式作为设计模板。
问题
如我所讨论,软件开发通常以一些问题作为出发点。在我们的示例中,问题是销售管理团队需要查看最新的销售数据。要解决此问题,我们将需要了解更多有关团队、环境和一些基础需求的信息。
以下是我们对这个特殊环境的了解:销售管理团队有 100 名成员,他们都在运行 Windows Vista®、2007 Office system、SharePoint 和最新版本的 Internet Explorer®。大多数成员都处于远程位置,但均可以通过公司网络访问* SharePoint 站点或服务器。
为演示目的而加以简化的需求如下:因为他们不是始终连接到公司网络,所以销售团队每天都会将其销售数据记录在 Excel 电子表格中,然后在连接到公司网络时手动将数据重新输入到 LOB 系统中。此外,在该过程中某些特定步骤(如数据验证)也需要手动执行。该团队希望有一个能够支持销售团队之间互联并能够自动化许多手动过程(如验证)的系统。(销售数据输入和验证过程平均每天要花费 30 分钟。团队希望将其缩短到 5 分钟。)因为销售团队已经适应了使用如 Excel 和 Internet Explorer 之类的工具,所以管理团队希望使用基于 Excel 的解决方案和 SharePoint 视图,以便成员可以在团队管理站点上构建报告。
通过查看问题定义,您可以快速了解到销售管理团队需要的是扩展其 LOB 应用程序,以便管理直接提供给远程销售人员的销售数据。通过比较该定义和 OBA 解决方案模式列表,我们发现它与“作为沟通渠道的 OBA 应用程序”能够很好地匹配。
作为沟通渠道的 OBA 应用程序
该模式的目标是显示如何将 LOB 系统功能扩展到使用 Office 应用程序作为载体的更广泛的用户群。该模式实现将为更多人提供对 LOB 系统业务数据的访问。遵循该模式,您可以使用 Outlook 或 Excel 作为丰富的客户端与 LOB 系统集成,或者使用 SharePoint Web 部件作为服务器端瘦客户端。在本案例中,该模式非常适合,因为您将为小型组织推出 OBA,以便 Excel 和 SharePoint 可提供两种与销售数据相连接的不错的方法。事实上,您最想要的是使客户端和瘦客户端均可以访问 LOB 系统的解决方案。因此,我们的销售数据 OBA 如图 6 所示。
Figure 6 访问 LOB 系统的客户端和瘦客户端 (单击该图像获得较大视图)
Figure 6a 访问 LOB 系统的客户端和瘦客户端 (单击该图像获得较大视图)
Figure 6b 访问 LOB 系统的客户端和瘦客户端 (单击该图像获得较大视图)
通过进一步研究,您会注意到“作为沟通渠道的 OBA 应用程序”有两种子模式:直接集成和间接集成。下面让我们进一步看看这两种子模式。
使用“直接集成”,对基础 LOB 系统的访问会直接集成到 Office 客户端或 SharePoint Web 部件中。使用此模式,您通常可构建直接到后端进程或数据源的连接,而且附加业务逻辑应最少。
虽然“直接集成”很常见,但难以跨多个系统重复使用。“间接集成”要求在 LOB 系统和自定义客户端组件(例如,自定义的任务窗格)之间创建作为集成中介的服务层,从而简化跨多个系统的重复使用以及客户端与服务器之间的松散耦合。对于销售数据 OBA 来说,这是一个好消息。现在,我们可以创建包裹销售数据模块(输入所有销售数据之处)的 Web 服务,并将此 Web 服务与所有客户端接口集成。因此,如果您希望将 LOB 系统与 Excel 集成,完全可以做到。您可以通过在 Visual Studio 2008 内创建引用或通过 SharePoint 内的 BDC 使用该服务。
现在您已取得一些进展:您已明确了问题声明和需求,并已准备好应用 OBA 模式。生成的体系结构利用“间接集成”模式,即,利用 Web 服务在 Excel 和 SharePoint 中提供销售功能的 OBA。请注意,在图 7 中稍有不同(与图 6 相比)。这是因为 BDC 仅作为数据可视化的只读载体进行工作,您可以从客户端自定义发出读/写调用。这必须反映在体系结构图表中。
Figure 7 销售数据 OBA 体系结构 (单击该图像获得较大视图)
现在,体系结构包括 Excel 2007 加载项、MOSS 2007 站点,以及充当到 LOB 系统中介连接的 Web 服务。此外,您现在已了解了所涉及的技术,因此可以编写更加详细的规范并构建开发环境(使用 OBA 解决方案模式中包含的技术)。
您可能会认为现在应该可以将 OBA 解决方案模式丢到一边去。然而,您可能还需要将所选择的模式与七种核心解决方案模式中的其他可能模式作比较。这将验证您的体系结构,并可能为您的新解决方案提供一些灵感,使其包括更多服务器、工具和 Office 开发平台的服务。
最后一步是考虑应该如何构建体系结构中的每个组件。我将提供一个高层次概述以及一些附加链接,通过这些链接,您可以进一步研究所讨论过的每种技术。
开始进行设计
掌握体系结构后,您可能希望了解如何构建此 OBA。您将需要安装 MOSS 站点(或拥有现有站点的管理员权限以便能够根据它进行开发)。如果您选择安装一个新站点,则需要在 Windows Server® 2003(或 Windows Server 2008)上安装 MOSS(以及所有先决条件)。还要确保已安装 Visual Studio 2008 Professional Edition,以及 2007 Office system Professional Edition 和作为 Visual Studio 2008 安装选项的 Office Primary Interop Assemblies (PIA)。此外,您还需要访问 LOB 系统,因为您需要根据它的实例来开发和测试 Web 服务。
至少需要花费一天时间才能建立起该环境。我将继续进行介绍,假设安装服务器操作系统、在服务器上安装 MOSS、在服务器上安装 Office,以及在本地计算机上安装 Visual Studio 2008(和 PIA) 这些操作均已完成。此时,您将可以对任何已创建(或已存在)的服务进行测试访问。
建立起环境之后,您将需要创建 Web 服务。对于销售数据 OBA 来说,您可能需要创建至少两个 Web 服务:一个用于获得销售数据(这些数据显示在 Excel 客户端加载项和 MOSS 站点中),另一个用于更新来自 Excel 客户加载项的数据。虽然 LOB 系统很通用,但您还是需要使用 Web 服务工具来创建包裹更多域特定功能的服务,例如现有的业务模块—以 SAP 为例。
不同的 LOB 系统将明显以不同方式进行工作,但目标应该是最终能够提供可以在 BDC 和 VSTO 加载项中使用的服务。要从相关领域(SAP 和 Office 集成)获得此处的帮助,您可以查看 OBA Starter Kit for SAP,它提供了有关如何为 SAP 创建 Web 服务的帮助 (msdn2.microsoft.com/bb498189)。
现在,您已经创建了 Web 服务,因此可以创建 VSTO 加载项。为此,请使用 Visual Studio 2008 创建 VSTO 应用程序级加载项或文档级解决方案。两种方案将以相同的方式使用 Web 服务。您很可能希望在加载项中创建用于管理销售数据的自定义任务窗格(控制显示哪些数据的过滤器),以及用于管理数据视图的自定义功能区(创建图表、使用数据测试功能等)。可在 msdn2.microsoft.com/aa905533 的“VSTO 开发人员中心”中找到有关如何完成此项工作的大量信息。
下一步是将 Web 服务添加到 MOSS 站点。这意味着要为该 Web 服务创建应用程序定义文件 (ADF)(即手动编写 XML 文件,或使用类似 BDC Definition Editor 或 BDC MetaMan 之类的工具创建该文件)、将 ADF 导入 SharePoint、创建 BDC Web 部件,然后将 Web 部件绑定到 ADF 以完成 BDC Web 部件和 LOB 系统之间的集成。有关如何完成这些操作的详细信息,请参阅 msdn2.microsoft.com/bb737887。
部署此解决方案意味着需要部署客户端开发机制和 MOSS 站点,销售团队将通过该站点访问 BDC Web 部件和 Web 服务。您可以将 VSTO 客户端程序集发布到 SharePoint 站点,销售管理团队随后可以将这些程序集下载到本地客户端,客户端将在每次调用加载项时通过部署指令清单检查服务器上的更新。
部署 BDC Web 部件要求您已建立一个 MOSS 站点并将其配置为供团队使用,因为 Web 部件的部署过程包括在现有站点上创建 Web 部件。有关部署的详细信息,请参阅“VSTO 开发人员中心”(msdn2.microsoft.com/aa905533) 和“SharePoint 开发人员中心”(msdn2.microsoft.com/sharepoint)。
其他用途
虽然我已为您介绍了如何应用 OBA 模式,但您可能希望使用其他方法来应用它们,以实现您自己的目的。例如,您可能只是使用它们来了解现有模式和建议模式,把它们作为体系结构设计的参考,或者您可能将其用作 OBA 解决方案的体系结构模板,或重复使用它们作为向 OBA 解决方案提供结构的方法—并逐渐使其成为规范流程的先决条件。今后,您将看到有关 OBA 开发的更多指南,其中很可能包括现有模式的增强功能以及其他内容。让我们拭目以待!
Steve Fox 是 Microsoft 的 Visual Studio Tools for Office (VSTO) 团队的项目经理。他对外与 VSTO 客户一起合作、提供 VSTO 培训、在会议上就 VSTO 发表演讲,对内与开发团队协同工作,协助开发 VSTO 产品。
上一篇: jquery一步步开发弹窗组件(1)
下一篇: JS解析xml