2007 Microsoft Office 系统及其他平台技术用于构建复合应用程序





0/5 (0投票)
2007 年 6 月 15 日
20分钟阅读

30280
复合应用程序是为提供业务能力而组装的软件资产集合。这些资产可以独立部署,支持组合,并利用特定的平台功能。Microsoft Office 提供的综合平台是 Office 业务应用程序 (OBA)
有关 Office 业务应用程序的更多信息,请访问 Office 业务应用程序开发人员门户。
这是我们对 The Code Project 赞助商的展示性评测。这些评测旨在为您提供我们认为对开发人员有用且有价值的产品和服务信息。
目录
引言
2007 Microsoft Office System 提供托管应用程序的功能
SQL Server 2005 提供商业智能功能
BizTalk Server 2006 提供消息和业务流程功能
Office 业务应用程序是复合应用程序
构建 Office 业务应用程序
引言
本白皮书是关于基于 Microsoft 平台构建的复合应用程序系列白皮书中的第二篇。本章将深入探讨用于构建和部署复合应用程序的特定平台技术。
在上一篇白皮书中,我们看到复合应用程序必须部署到支持组合的平台上。这样的平台必须提供
- 在演示层、生产力层、应用程序层和数据层中的每个层中,提供一组容器以及可托管在这些容器中的相关组件类型。
- 一套为复合应用程序提供核心服务的核心能力。
本白皮书将首先介绍构成 Microsoft 平台的各种平台技术的功能,然后讨论这些平台技术提供的各种容器。请注意,这些复合业务应用程序被称为 Office 业务应用程序 (OBA),因为大多数用户交互都是通过 2007 Microsoft Office System 的客户端和服务器组件进行的。然而,要为端到端业务流程构建 OBA,除了 Microsoft Office 的功能之外,还必须利用其他平台技术的功能。
2007 Microsoft Office System 提供托管应用程序的功能
Microsoft Office 的新版本——2007 Microsoft Office System——是一个构建复合应用程序的绝佳平台。该系统不仅提供了熟悉的 Microsoft Office 客户端套件(Office Word、Office Excel、Office InfoPath),还提供了作为服务的几个关键功能,这些功能在客户端应用程序和服务器上均有提供。这些服务并非简单地打包成一个单一的整体单元,而是高度模块化的(如图 1 所示),并且每个都有自己的 Web 服务接口。
解决方案提供商可以在自己的应用程序中利用这些服务,这意味着核心业务流程现在可以干净地集成到 Microsoft Office 客户端和服务器中。在这个平台上组装的复合应用程序称为 Office 业务应用程序 (OBA)。
2007 Microsoft Office System 中的高级功能列在以下小节中。单独来看,这些功能中的每一个都是强大的特性;然而,正是这些不同技术组合成一个单一集成平台,才使组合变得实用。这种集成使得复合应用程序的交付和部署成为可能,而不会压倒性地增加整体平台、工具和架构的复杂性。
网站和安全框架
Microsoft Office SharePoint 提供了一个通用框架,用于创建各种网站,例如团队协作网站、内部网门户和互联网网站。这与 Active Directory 目录服务系统紧密集成,以提供身份验证和基于角色的授权,并支持联合信任关系。
Open XML 文件格式
这使得文档的丰富服务器端处理成为可能。在以前的 Microsoft Office 版本中,使用对象模型解析文档需要启动客户端应用程序实例。
可扩展用户界面
用户界面的扩展有两种途径:在服务器端和客户端。
Office SharePoint 提供了一个 Web 门户,可用于托管由称为 Web 部件的构建块库组成的服务器端 Web 应用程序。此库附带了许多开箱即用的 Web 部件,并且可以由解决方案提供商针对特定业务流程进行扩展。此外,用户可以在将应用程序部署到 Office SharePoint 后对其进行个性化和扩展。与以前版本的 Office SharePoint 不同,Web 部件框架现在已与 ASP.NET 中的 .NET 构造集成。此外,Web 部件的分发基础架构已简化,因此您可以打包基于 Web 部件的应用程序,将其推广到 Office SharePoint 站点的整个服务器场,并以非常简单和集中的方式进行管理。
已构建到 Microsoft Office 客户端(Office Excel、Office InfoPath、Office Word)中的应用程序也可以由解决方案提供商使用 Microsoft Visual Studio Tools for Office (VSTO) 扩展,以创建自定义任务窗格、自定义功能区等。
业务数据目录
这是一个元数据存储库,用于定义存储在后端数据存储中的业务实体,建模实体之间的关系,以及定义实体上允许的操作。
企业搜索
使用此功能通过搜索从各种企业源中显示数据。
工作流
Windows Workflow Foundation(来自 .NET Framework 3.0)已直接集成到 Office SharePoint 中,这意味着您可以直接在 Office SharePoint 服务器中托管核心工作流运行时引擎。反过来,这意味着开箱即用地提供了围绕工作流的一组核心场景,例如组织中典型的串行-并行文档审批路由。此工作流集也可以由解决方案提供商扩展。工作流可以从 Microsoft Office 客户端应用程序内部启动,也可以由服务器端事件(例如文档保存)启动。因此,一个基本场景可能是信息工作者在 Word 中创建文档并将文档发布到 Office SharePoint 站点,从而触发审批工作流。
解决方案提供商可以使用 Office SharePoint Designer (SPD) 或 Visual Studio 扩展这些功能。Visual Studio 是一款开发人员工具,而 SPD 是一款面向业务分析师的工具。SPD 是一款所见即所得的设计工具,专注于通过一组向导引导用户创建新工作流的过程,从而创建 Office SharePoint 屏幕和工作流。工作流在开发方面提供了强大的关注点分离。开发人员可以开发称为活动的可重用模块,这些模块可以部署到 Office SharePoint 服务器上,然后业务分析师可以将这些活动链接起来,形成工作流以解决特定的业务问题。
除了 2007 Microsoft Office System 的核心功能之外,还有三个主要投资领域,即利用基本功能的场景。这些列在以下小节中。
企业内容管理
管理各种内容,为 Web、文档和记录管理提供一个拓扑。此外,还支持文档生命周期管理。
商业智能
这包括基于服务器的 Office Excel 电子表格,以及内置于门户并连接到 SQL Server Analysis Services 的商业智能 (BI) 组件(仪表板、报表、Web 部件)。
统一通信和协作
这些提供集成到平台中的统一通信支持。
图 1. 2007 Microsoft Office System 提供的功能(单击图片查看大图)
SQL Server 2005 提供商业智能功能
除了核心关系数据库功能之外,SQL Server 2005 还提供完整的 BI 堆栈,具有三个核心服务:Integration Services、Analysis Services 和 Reporting Services。这些服务产生了以下一组功能,这些功能支持围绕商业智能解决方案的组合,这些解决方案可以显示在部署到 2007 Microsoft Office System 的 OBA 中。
设计
内置于 Visual Studio 中的 BI Development Studio 为 Analysis Services、Reporting Services 和 Integration Services 提供设计功能。
合成
SQL Server Integration Services 提供了构建和调试复杂集成包的能力。这支持从源系统获取数据、集成、数据转换和合成。一个用例可能是从事务系统获取数据以馈送到数据仓库中。
存储
通用维度模型 (UDM) 是一种灵活而强大的方式,用于对数据和业务规则进行建模,它模糊了关系存储和多维存储之间的界限。这如图 2 所示。
图 2. 可扩展、高性能的 UDM 服务器
分析
SQL Server Analysis Services 提供 OLAP 服务器、具有打包数据挖掘模型的数据挖掘平台,支持历史/预测分析和隐藏关系检测。解决方案提供商可以扩展这些模型,如图 3 所示。
图 3. Analysis Services 数据挖掘模型
交付
SQL Server Reporting Services 支持传统报表、基于 Web 的报表、自定义报表和动态报表,并以 Web 服务的形式公开。
图 4. 业务记分卡服务器是一套报表工具,它利用 SQL Server 报表服务,可用于将报表显示到 2007 Microsoft Office System 中。(单击图片查看大图)
管理
SQL Server Management Studio 提供 SQL Server 数据库和分析服务多维数据集的管理功能。
BizTalk Server 2006 提供消息和业务流程功能
BizTalk Server 2006 提供了广泛的消息和业务流程功能,如图 5 所示。这些功能列举如下。
消息传递
BizTalk 提供了通过消息与各种其他系统通信的能力。可插拔适配器支持不同类型的通信,例如支持不同类型的线路协议和消息格式。
业务流程
这些是用于创建业务流程的图形设计时工具,以及基于消息功能运行这些流程的引擎。通常,BizTalk 用于协调涉及系统而非人员的业务流程。
业务规则引擎
这些是用于复杂业务规则集的设计时工具和运行时引擎。
业务活动监视
这些是用于监视面向业务用户的长时间运行的业务流程的功能。
业务活动服务
这允许信息工作者设置和管理与贸易伙伴的交互。
图 5. BizTalk Server 提供消息和业务流程功能。
Office 业务应用程序是复合应用程序
OBA 利用这些各种平台技术的能力来形成复合应用程序。现在让我们查看第 1 章图 6 中的每个层,并检查平台提供的容器类型和组件类型。
演示层的组合
演示层中的第一种容器类型是 Microsoft Office 客户端应用程序,例如 Office Excel、Office Word 或 Office InfoPath。这些应用程序是可定制的容器,现在可以更轻松地通过自定义任务窗格、功能区和操作来显示业务线 (LOB) 应用程序的信息和功能,这些操作在用户当前活动的上下文中向用户呈现数据和操作。可以托管在这些容器中的组件类型是 Open XML 文档。这是 Microsoft Office 文档的新 XML 表示,可以对其中存储的信息进行丰富的服务器端处理。这如图 6 所示。
图 6. Microsoft Office 客户端应用程序是 Open XML 内容的可定制容器。(单击图片查看大图)
第二种容器类型是 Web 门户,由 Windows SharePoint Services (WSS) 和 Microsoft Office SharePoint Server (MOSS) 提供。
WSS v3.0 提供了以下容器层次结构,如图 7 所示
- 服务器场——一个或多个负载均衡 Web 服务器和后端服务器的安装,带有一个配置数据库。
- Web 应用程序——IIS Web 站点,扩展以使用 WSS,可以托管站点集。
- 站点集——WSS 站点的容器,存在于特定的内容数据库中。站点集包含一个顶级站点,带有可选的子站点,并且是所有权、安全性、可恢复性的单元。
- 站点——子站点、页面和内容(例如列表和文档库)的容器。
- 页面——Web 部件区域和 Web 部件的容器。
- Web 部件区域——Web 部件的容器。
- Web 部件——以模块化形式在页面上显示内容的组件,是用户自定义/个性化页面的主要方式。
图 7. Windows SharePoint Services 提供的容器(单击图片查看大图)
虽然 WSS 提供构建团队协作站点集合的支持,但 MOSS 在 WSS 的基础上实现了门户功能,并具有额外的功能。例如,MOSS 提供了增强搜索、与业务数据存储的连接以及商业智能的功能。然而,MOSS 门户是一个 WSS 站点集,因此也是一个 WSS 站点层次结构。MOSS 还附带一个 Web 部件库,其中包含一组丰富的开箱即用 Web 部件,例如用于显示 Office Excel 电子表格和图表。解决方案提供商还可以提供自己的自定义 Web 部件,用于特定于应用程序或特定于领域的功能。这些可以上传到 WSS 中。信息工作者可以通过从库中添加 Web 部件、从页面中删除 Web 部件或重新排列布局来个性化页面。
生产力层的组合
2007 Microsoft Office System 提供了多种共享信息和协作处理信息的方式。例如,服务器端存储为处理中的文档和其他各种异构内容提供了带版本控制的容器。这允许在意外或计划外情况下进行协作。很难在业务流程管理 (BPM) 系统中捕获所有复杂的 HUI(人机交互),因为工作通常不会按计划进行。在传统的三层架构中,除了将传输中的文档存储在个人硬盘或电子邮件服务器上之外,几乎没有支持,有时很难确定哪个文档是正确的版本。然而,2007 Microsoft Office System 可以设置带版本控制的文档库,以存储业务流程中间阶段的文档。这提高了可管理性,也提高了从计划外事件中优雅恢复的可能性。
WSS 提供以下存储类型
- 列表——项目的容器,可以是内置列表类型或自定义列表类型。传统上,这是存储的原子单元,但现在列表可以存储大量数据,如知识库或 Web 内容。还有内置的索引和查询支持。
- 文档库——支持文档版本控制和源代码控制的特殊类型的列表。例如,InfoPath 表单可以存储在表单库中,报表存储在报表库中,其他文档存储在文档库中。
信息工作者可以自行添加文档库,并指定所有文档在该库中使用的特定文档模板。例如,业务分析师可能会使用 Office InfoPath WYSIWYG 设计工具创建一个表单,然后将该表单用作模板来创建一个表单库。当用户在该库中创建新文档时,将使用此模板创建一个空表单。
2007 Microsoft Office System 还内置了对 Windows Workflow Foundation (WWF) 的服务器端支持,WWF 是一种可用于设计和执行工作流的技术。图 8 显示了 WWF 中的不同组件。
图 8. Windows Workflow Foundation (WWF)
这如何实现组合?WWF 使得通过易于使用的图形设计工具对工作流进行建模成为可能,并以称为 XAML 的 XML 表示形式声明性地表示工作流结构和数据流。
WWF 运行时引擎托管在 MOSS 中,并充当业务逻辑的容器,这些业务逻辑可以作为工作流附加到工作项和文档。这些工作流可以与列表、文档库或特定内容类型相关联。它们由用户操作启动和完成,并使用 WSS 任务列表进行管理。例如,工作流活动根据需要创建和更新任务项,用户可以通过历史记录表跟踪工作流进度。2007 Microsoft Office System 客户端应用程序也支持工作流。它们可用于工作流的启动、配置、完成和即席自定义(转发/委托)。
工作流可以与列表、文档库或特定内容类型相关联。这些与 WWF 模板的关联在场范围的工作流关联表中进行跟踪。WWF 模板由 XML 元数据定义,可以包括工作流程序集和表单。例如,当用户创建文档库时,他们可以选择将该库与特定工作流关联,并指定触发工作流的条件;例如,给定库中的文档可能已被修改或创建。此工作流可以支持特定的业务流程或支持文档生命周期管理。
图 9. SharePoint 工作流架构(单击图片查看大图)
2007 Microsoft Office System 与 WWF 的集成提供了多种好处。简单的业务流程可以以无缝集成到 Office SharePoint 用户界面的方式实现自动化。用户通过自助服务功能获得授权,例如支持广泛的用户控制文档路由和跟踪场景,从而减少 IT 人员参与构建简单应用程序。WWF 还为垂直解决方案提供商提供了扩展点,以将其自己的业务规则和逻辑部署到 2007 Microsoft Office System 提供的容器中。
最后,生产力层还必须提供一种轻量级的方式来创建和发布信息和报告。2007 Microsoft Office System 支持这样做,它集成了 SQL Server Reporting Services,并提供以下组件
- 报表中心——用于创建 WSS 报表站点的模板。
- 报表库——一种文档库,专门用于存储报表。
- 仪表板——由报表 Web 部件组成的 WSS 页面。
- 报表查看器——用于查看 SQL Server Reporting Services 提供的报表的 Web 部件。
- Web 部件——用于查看 Office Excel 图表和表格。
- KPI(关键绩效指标)Web 部件和列表——信息工作者可以选择通过多种方式获取指标。
可以向用户提供一个仪表板作为围绕特定业务功能(例如销售、营销或库存管理)构建的报告模板。
应用程序层的组合
通常,结构化业务逻辑存在于应用程序层中。这可能是一个 LOB 应用程序,例如 ERP 系统,或者是跨多个系统的编排,例如 BPM 系统。应用程序层通常包括事务系统和决策支持系统。OBA 有多种方式可以在应用程序层中实现组合,以及消耗其他平台技术(包括 Microsoft 和非 Microsoft)公开的复合服务。
应用程序层中的第一层组合是通过使用 WWF 创建并部署到 2007 Microsoft Office System 的打包活动库。之前,我们讨论了工作流如何附加到列表、文档库和特定内容类型。图 10 展示了 WWF 运行时如何为打包并部署为活动库的应用程序特定活动提供容器,并在其之上组装工作流。
图 10. 使用 WSS 进行工作流托管(单击图片查看大图)
请注意,工作流是一组活动;而且,虽然活动本身可以表示为工作流,但也可以使用代码编写。这使得解决方案提供商可以打包特定于解决方案的活动库。这样,工作流设计者就可以使用设计工具从活动库中选择并将其串联成工作流。图 11 显示了如何打包自定义活动库。
图 11. 为 WWF 打包活动(单击图片查看大图)
2007 Microsoft Office System 提供的应用程序层中的第二个组合级别是通过 Office Excel Services。这是一个内置于 Office SharePoint Server 中的服务器端 Office Excel 计算引擎。它提供对部署在服务器上的实时交互式电子表格的浏览器访问,以及对服务器端 Office Excel 计算的 Web 服务访问。通过 Office Excel Services,现有的 Office Excel 高级用户现在可以以他们熟悉的方式提供服务器端应用程序逻辑。MOSS 现在是应用程序逻辑的容器,如图 12 所示。
图 12. 2007 Microsoft Office System 中的 Office Excel Services(单击图片查看大图)
OBA 在应用程序层实现组合的第三种方式是消费由其他平台技术公开的复合服务。2007 Microsoft Office System 可以无缝地插入到面向服务架构 (SOA) 中。如果企业已经有正在开发的后端服务,则可以从 2007 Microsoft Office System 中消费这些接口。这可以通过两种方式完成。第一种是在已部署到生产力层的工作流中内置的活动中调用 Web 服务接口。第二种是通过业务数据目录 (BDC),这将在下一节中描述。
数据层的组合
2007 Microsoft Office System 还附带一个业务数据目录 (BDC),该目录作为共享服务在服务器中运行。它可以从多种类型的数据源(数据库、Analysis Services 多维数据集和 Web 服务)读取数据,然后通过 Office SharePoint 表和列表将其显示到门户中。它充当业务数据实体及其属性的描述的元数据存储库,以及这些实体到企业内部数据存储的映射的元数据存储库,如图 13 所示。
图 13. 业务数据目录 (BDC)
虽然 BDC 不能用于创建跨多个数据存储映射的实体,但可以定义链接实体(例如父子关系)的关系。因此,BDC 可用于在企业内部的数据实体之间创建轻量级链接——几乎就像一个企业同义词库。然后,BDC 定义的实体可以插回 2007 Microsoft Office System 中——例如,在 Office SharePoint 列表中。这允许用户使用与后端数据的链接来组合页面,并通过实体之间的关系遍历数据表。
BDC 实现了数据组合,但它只提供对数据的只读访问。但是,您可以使用 BDC 对数据实体上可以执行的操作进行建模,其中操作由名称、URL 和实体定义中要传递回此 URL 的一组属性定义。然后可以在 Office SharePoint 列表的下拉菜单中使用此功能。URL 可以对应于 Web 服务,也可以对应于服务器端文档,例如带有后台代码的 Office InfoPath 表单,用于从 BDC 传递的上下文中预填充表单。信息工作者 then can use the portal to create lightweight applications in Office SharePoint with tables and lists that surface BDC data and actions.
总结 Microsoft 平台支持组合的功能
图 14 展示了 2007 Microsoft Office System 的一些功能如何映射到第 1 章中的各个层。
图 14. 2007 Microsoft Office System 应用程序平台功能与层级映射(单击图片查看大图)
表 1 列出了可能进行组合的资产类型。
表 1. 资产类型,组合候选项
· Open XML 文档 · 工作流 · 业务活动 · 业务规则 · 架构 · 指标 |
|
构建 Office 业务应用程序
构建标准业务流程作为 OBA 需要两个步骤
- 设计并打包元数据和打包的应用程序代码。
- 将软件包部署到生产系统。
构建流程包
- 使用 Visual Studio Tools for Office (VSTO) 在 Microsoft Office 客户端应用程序中构建以文档为中心的流程的用户界面。
- 构建带有任务特定 Web 部件、页面、仪表板、列表和文档库的 WSS 站点,其中每个站点都专为特定业务功能或流程设计。这些站点可用于创建站点模板,以便将标准业务流程打包到 OBA 解决方案中。
- 使用 WWF 将站点中的列表和文档库与服务器端规则和业务逻辑连接起来,用于对正在处理的文档进行服务器端处理。将这些工作流打包成程序集以进行部署。
- 定义 OBA 中工作流与后端 LOB 系统的接触点。流程包元数据应包含用于此集成的 Web 服务接口。实际连接必须在部署阶段进行。
- 为 OBA 中内置的跨职能流程所需的数据连接定义 BDC 实体。
- 通过定义 WSS 站点将使用的指标、报表、仪表板以及 Office Excel 图表和表格来添加决策支持。
- 使用表 1 中的组件类型将解决方案打包为流程包(WSS 站点模板、WWF 程序集、Microsoft Office 文档等)。
将流程包部署到生产系统
- 将 WSS 站点部署到生产系统上的 Office SharePoint 服务器。
- 使用 Web 服务或其他自定义适配器配置工作流与 LOB 应用程序的连接。
- 通过将 BDC 数据实体定义连接到实际数据存储来配置数据连接。
- 配置用户。