Office Web Apps Server 简介

原文发布于 2012 年 9 月 11 日(星期二)

本文的作者是 Office Web Apps 的高级项目经理 Nick Simons。

我们在 2010 年夏天向您介绍了 Office Web Apps:基于浏览器的 Word、PowerPoint、Excel 和 OneNote 版本。我们将这些产品作为一组 SharePoint 应用程序提供。在自己的网络上部署 Office Web Apps 的客户也是通过在 SharePoint 服务器上安装 Office Web Apps 来这样使用的。

那时,紧密的 SharePoint 集成似乎是最佳途径。显然,SharePoint 过去是而且现在仍是 Office Web Apps 的支柱。SharePoint 具有一个用于集成 Office Web Apps 等应用程序的定义完善的模型。不过,当我们开始规划下一个 Office Web Apps 版本时,使用与 SharePoint 耦合如此紧密的体系结构显然很难实现我们的某些核心目标。

我们希望简化设置和容量规划,并在多个服务器场中启用联盟。我们还希望满足来自新的合作伙伴(如 Lync)的集成请求。最后,我们听到很多 Office 365 和本地客户反映,他们同样希望获得我们的 SkyDrive 用户定期享受的改进。

为了实现这些目标,我们回到开始并重新构想 Office Web Apps 与现在以及将来的其他产品的集成方式。我们创建了一个新模型,将 Office Web Apps 与任何特定合作伙伴技术分隔开。最终,我们的模型只给文件主机(如 SharePoint)带来相对较轻的编码负担,同时允许我们在完全不同的服务器上运行 Office Web Apps。

这个新的独立服务器产品就是 Office Web Apps Server。

我们知道,乍一看,添加其他类型的服务器的想法看上去增加了复杂性并加大了管理员的负担。但是,您将会看到,通过独立我们可以获得以下好处...

1.  设置更简单

2.  升级和维护完全独立于 SharePoint

3.  多个 SharePoint 服务器场与单个 Office Web Apps Server 场集成

4.  其他产品(如 Exchange、Lync 和第三方产品)与 Office Web Apps 集成

5.  基本上同时为我们的基于 Web 的客户和本地客户交付新的功能和改进

当我们将早期的基于 SharePoint 2010 的 Office Web Apps 部署与新的使用 Office Web Apps Server 的部署进行比较时,优势开始真正显现。

对于早期的 Office 版本,典型的 Office Web Apps 部署看上去与下面类似...

 

早期版本的 Office Web Apps 部署

请注意,早期版本的 Office Web Apps 需要安装在每个服务器场以及每个服务器场中的每台计算机上。此外,Office Web Apps 的扩展受制于整个 SharePoint 的扩展。而且,更新 Office Web Apps 需要更新所有 SharePoint 服务器场中的每台计算机上的代码。

通过使用 Office Web Apps Server,我们预期部署看上去更接近下图...

 

使用 Office Web Apps Server 的 Office Web Apps 部署

显而易见,一个 Office Web Apps Server 场即可为多个 SharePoint 2013 服务器场以及 Lync 2013 和 Exchange 2013 (Outlook Web Access) 提供服务。此外,您还可使用 Office Web Apps 服务器场查看任何可通过 URL 或 UNC 访问的 Word、Excel 和 PowerPoint 文件。

新的集成模型的简要概述

下面将概要介绍 Office Web Apps 与 SharePoint 等文件主机集成的方式。此处的信息将有助于您理解下文中描述的网络和安全要求。

首先了解一些定义:

  • Office Web Apps Server – 为主机提供 Office Web Apps 功能,这是本文通篇介绍的主体。
  • 主机 – 使用 Office Web Apps Server 提供的服务在 Web 浏览器中显示文件。例如,SharePoint Server 2013、Lync Server 2013 和 Exchange Server 2013 都是主机。
  • 客户端 – 这是浏览器或其他类似的软件。

新的集成模型的一个关键部分是 Office Web Apps 用来与主机通信的一个新的公共 API。此 API 称为 WOPI(Web 应用程序开放平台接口)。Office Web Apps Server 使用 WOPI API 获取和操作文件。我们通常将 Office Web Apps Server 称为一个 WOPI 应用。主机必须理解来自 WOPI 应用的 WOPI 请求。

WOPI 是使用 HTTP/HTTPS 的 RESTful API。这意味着,除了别的内容以外,主机与 Office Web Apps Server 之间的所有通信都将通过标准的 HTTP/HTTPS 端口。这还意味着,Office Web Apps Server 会尽可能是无状态的。这使它能够更加灵活地应对各种失败情况(从网络中断到完全的硬件失败)。

为了了解 WOPI 的工作原理,让我们演练一个简单的方案。在这个方案中,用户 Sally 查看一个承载在 SharePoint 上的名为 test.docx 的文件。下面是工作原理...

1.  Sally 导航到存储 test.docx 的文档库。

2.  Sally 在文档库中单击相应的文件名。

3.  SharePoint 将浏览器导航到一个知道如何启动对 Office Web Apps Server(和其他 WOPI 应用)的请求的特殊的 SharePoint 页。我们将该 SharePoint 页称为 WOPIFrame.aspx。

4.  WOPIFrame.aspx 包含一个 iframe (https://dev.w3.org/html5/spec/the-iframe-element.html(该链接可能指向英文页面)) 并会将其导航到 Office Web Apps Server 上的页。我们将该页称为 WordViewer.aspx。对 WordViewer.aspx 的 HTTP 请求包含一些重要信息:

    • Office Web Apps Server 将用于获取 test.docx 的 URL。我们将该 URL 称为 WOPI 终结点。
    • 文件名。我们实际上会将 WOPI 终结点和文件名合并到一个称为“WOPI 源”的参数中。
    • Office Web Apps 可传递到 WOPI 终结点的表示 Sally 的凭据的字符串。我们将该字符串称为访问令牌。
      出于安全考虑,访问令牌仅为 Sally 提供了访问一个特定文件的权限。如果坏人设法盗取了该访问令牌,则只会允许他们在该特定文件的上下文中模拟 Sally。当然,这种情况仍然很糟糕,因此使用 SSL 保护该访问令牌很重要。

5.  Office Web Apps Server 使用 WOPI 源和访问令牌从 SharePoint 获取 test.docx。

6.  WordViewer.aspx 在 WOPIFrame.aspx 上的 iframe 中显示 test.docx。

以下的图片显示了浏览器、SharePoint 和 Office Web Apps Server 之间的数据流...

浏览器、SharePoint 和 Office Web Apps Server 之间的数据流

设置 Office Web Apps Server 服务器场

此情形中的服务器场可以是从在共享服务器上运行的一台虚拟机到由数十台数据中心级的服务器组成的服务器场的任意形式的服务器场。所有情形中的基本设置和维护都是相同的。创建服务器场所需的确切的系统必备组件和步骤当然会随相关的产品提供。在这里,我不会重复相关文档内容。下面我将适当详细地介绍所涉及的内容。

硬件

首先,您需要一些计算机。让我们假定您将设置一个服务器场来满足多个 SharePoint 服务器场的 80,000 名用户的需求。我们认为您大概需要 4 台满足以下条件的服务器...

  • Windows Server 2008 R2 或 Windows Server 2012 以及所有系统必备组件
  • 8 核
  • 8 GB 的 RAM
  • 适当大小的硬盘驱动器(60 GB 或更大)

您还需要一个负载平衡器。我们在 Microsoft 内部设置了一个包含 10 台计算机的服务器场,它与很多其他服务器产品共享一个 F5 BIG-IP 硬件负载平衡器。这种安排的效果非常好,不过任何适当的负载平衡解决方案都可以获得理想的结果。我们唯一强烈建议的是您的负载平衡解决方案应支持关联。在同一台服务器处理特定会话的所有请求的情况下,这对于确保性能是十分重要的。

网络

我将假定您希望用户能够从您的内部网络和 Internet 访问 Office Web Apps。如果是这样,您将需要为服务器场设置内部 DNS 和外部 DNS。或者,您也可以选择仅设置外部 DNS 并使用内部 DNS 规则将内部请求限制在专用网络上。我选择的是后面的这种方法。
网络是您自己的,因此应因地制宜地进行设置。我们只需要您满足以下要求...

  • 客户端(通常是 Web 浏览器)需要能够对服务器场发出请求。这些请求分别是端口 80 或 443 上的标准 HTTP/HTTPS 请求。
  • Office Web Apps 服务器场中的计算机启动对文件主机(如 SharePoint)上的服务的请求。这些请求也是端口 80 或 443 上的 HTTP/HTTPS 请求。这就是 Office Web Apps 计算机操作其呈现或编辑的文件的方式。
  • 文件主机偶尔需要通过负载平衡器直接从 Office Web Apps Server 服务器场请求信息。这些请求也是端口 80 或 443 上的 HTTP/HTTPS。
  • Office Web Apps Server 服务器场中的所有计算机需要通过端口 809 相互进行通信。理想情况是,这些计算机位于一个专用子网上,以便其他计算机无法加入该服务器场或侦听通信。如果这些计算机未在同一专用子网上,则可利用 Office Web Apps Server 中内置的一些功能帮助保护更加开放的网络上的服务器场,我不打算在这里讨论这些功能。有关详细信息,请参阅 Office Web Apps Server Preview 的安全规划

确保这些网络路由设置正确是很关键的。Office Web Apps 相对简单一些,但它们只在通信信道开放时才会工作。

安全

正如我在前面的部分中提到的,呈现或编辑文件的初始请求包括访问令牌形式的用户凭据。该访问令牌又包含在从 Office Web Apps 到主机的所有请求中。所有此类通信必须使用 SSL 进行保护,除非您位于专用网络中并且信任访问该网络的每一个人。实际上您还是应使用 SSL。
设置 SSL 需要创建证书并将其放置在每台 Office Web Apps Server 计算机或负载平衡器上。如果您选择在负载平衡器上终止 SSL,则可使用 Office Web Apps Server 中的特定设置。稍后我将介绍这些设置。

Office Web Apps Server 配置

现在您的所有硬件和网络基础结构已就绪,可以实际创建 Office Web Apps Server 服务器场了。首先,在所有计算机上安装 Office Web Apps Server 及其语言包。请勿尝试在计算机上安装任何其他软件。不要安装 SharePoint、Exchange 或任何其他软件。如果您要共享硬件,请使用虚拟机。

完成上述操作后,请在服务器场中的第一台计算机(我们称它为 Server1)上运行以下 Windows PowerShell。此 Windows PowerShell 假定...

以下是 Windows PowerShell:

New-OfficeWebAppsFarm -ExternalURL "https://officewebapps.contoso.com" -EditingEnabled -SSLOffloaded

现在您有了一个包含一台计算机的 Office Web Apps Server 服务器场。

完成上述操作之后,请继续 Server2。在该服务器上,运行以下...

New-OfficeWebAppsMachine -MachineToJoin "Server1"

现在您有了一个包含两台计算机的服务器场。对 Server3 和 Server4 重复上述步骤。

连接到 SharePoint

此时,您的 Office Web Apps 服务器场已准备就绪,但尚未连接到任何主机。若要将 SharePoint 服务器场连接到此 Office Web Apps Server 服务器场,请在 SharePoint 服务器场中的任何服务器上打开 Windows PowerShell 命令提示符,然后运行以下...

New-SPWopiBinding -ServerName "officewebapps.contoso.com"

您还需要运行以下命令以告知 SharePoint 服务器场您要使用 Office Web Apps Server 服务器场的外部 URL,并且它使用 HTTPS。

Set-SPWopiZone -Zone "external-https"

现在您实际上完成了所有操作。导航到 SharePoint 服务器场中的文档库,然后创建、查看和编辑 Office 文件直到满意为止。无需进一步配置。

最后,如果您要断开 Office Web Apps Server 服务器场与 SharePoint 的连接,请运行以下...

Remove-SPWopiBinding -All

如果您现在转到 SharePoint 服务器场中的文档库,则将不会有 Office Web Apps 的踪迹。

您可将所需任意数量的 SharePoint 服务器场连接到单个 Office Web Apps 服务器场。同样,也可以将所需任意数量的 Exchange 和 Lync 连接到单个 Office Web Apps 服务器场。有关详细信息,请参阅 Exchange Server 2013:Office Web Apps Server 集成(该链接可能指向英文页面)部署 Office Web Apps Server 和 Lync Server 2013(该链接可能指向英文页面)

获取对 Office Web Apps Server 的更新

从一开始我们就致力于经常更新 Office Web Apps。但是,我们仅通过 Service Pack 向本地客户交付了我们的更新。在我们发布 Office Web Apps Server 2013 之后,我们计划更频繁地提供更新。我们相信管理员可以管理好这项工作,因为更新 Office Web Apps Server 非常简单。

若要更新 Office Web Apps Server 服务器场中的计算机,您将需要从负载平衡器和服务器场中移除计算机。不过,可对这个过程进行控制,以便不对用户产生任何实质影响。
基本上,如果您有一个包含 4 台服务器的服务器场,则可以移除两台计算机并对其进行升级。然后您可使用这 2 台计算机创建一个新的服务器场,并将负载平衡器指向这 2 台计算机而不是原始服务器场中的 2 台计算机。现在升级剩下的两台计算机,然后将它们加入到新的服务器场并将负载平衡器也指向它们。

从服务器场中移除计算机时,部分用户可能会遇到暂时的中断,但 Office Web Apps 将会恢复正常。这适用于除单台计算机(原因显而易见)之外的所有情况。

了解有关 Office Web Apps Server 的更多信息

您可在下面找到 Office Web Apps Server 的其他资源:
• TechNet 上的 Office Web Apps Preview 库
• Exchange Server 2013:Office Web Apps Server 集成(该链接可能指向英文页面)
• 部署 Office Web Apps Server 和 Lync Server 2013(该链接可能指向英文页面)
• Office Web Apps 设置和部署论坛(该链接可能指向英文页面)

Nick Simons
高级项目经理 - Office Web Apps

 

这是一篇本地化的博客文章。请访问 Introducing Office Web Apps Server 以查看原文