Office Web Apps Server 簡介
英文原文已於 2012 年 9 月 11 日星期二發佈
本文作者為 Nick Simons,Office Web Apps 資深程式總監。
我們在 2010 年夏天引進 Office Web Apps:以瀏覽器為基礎的 Word、PowerPoint、Excel 及 OneNote 版本。我們以一組 SharePoint 應用程式的形式提供這些產品。客戶可以在 SharePoint 伺服器上安裝 Office Web Apps,來在其網路上部署 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 的調整功能是與整體的 SharePoint 調整功能結合。若要更新 Office Web Apps,必須在所有 SharePoint 伺服器陣列中的每部電腦上更新程式碼。
使用 Office Web Apps Server 時,我們預期部署看起來如下所示:
如您所見,單一 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 提供的服務,以網頁瀏覽器來顯示檔案。例如,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 的 REST 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。我們將此稱為 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 之間的資料流...
設定 Office Web Apps Server 伺服器陣列
從在共用伺服器上執行的一部虛擬機器到幾十個資料中心類別伺服器的伺服器陣列,都可以是本案例中的伺服器陣列。所有案例中的基本安裝和維護都相同。當然,建立伺服器陣列所需的精確先決條件與步驟隨附於產品中。我將不再於此複述該文件。我將在合理的限度下說明相關內容的詳細資訊。
硬體
首先,您需要一些機器。假設您即將設定的伺服器陣列需處理多個 SharePoint 伺服器陣列中 80,000 位使用者的需求。我們認為您將需要四部伺服器,配備:
- Windows Server 2008 R2 或 Windows Server 2012 (含所有先決條件)
- 8 核心
- 8 GB RAM
- 容量充足的硬碟 (60 GB 或以上)
您還需要一個負載平衡器。我們在 Microsoft 設定,讓有 10 部電腦的伺服器陣列和許多其他伺服器產品共用 F5 BIG-IP 硬體負載平衡器。上述安排的運作十分良好,但任何適當的負載平衡解決方案也都能夠做到。我們唯一強烈建議您讓負載平衡解決方案支援相關性。如果能讓同一部伺服器處理特定工作階段的所有要求,對於效能會有極大的助益。
網路
我假設您希望使用者能夠從內部網路與網際網路來存取 Office Web Apps。若是如此,您必須為伺服器陣列設定內部與外部 DNS。或者,您可以選擇只設定外部 DNS,然後使用內部 DNS 規則讓內部要求留在私人網路上。換成我就會那樣做。
請依照您自身的需求來設定您的網路。我們只要求:
- 用戶端 (通常是網頁瀏覽器) 必須能向伺服器陣列發出要求。這些分別是連接埠 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 假設:
- 您只是在 URL https://officewebapps.contoso.com 設定外部 DNS。這可以是您設定的任何 URL。
- 您正在設定 Office Web Apps Server 伺服器陣列,以支援編輯及檢視功能。
請只在組織擁有適用於編輯功能的授權時才這樣做。除了說明 Office Web Apps 檢視功能是免費提供,但編輯功能則否外,我不會在此說明其他授權詳細資訊。如需詳細資訊,請參閱<規劃 Office Web Apps (搭配 SharePoint 2013 產品並用)>。 - 您正在負載平衡器終止 SSL。
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 的任何記錄。
您可以連線至單一 Office Web Apps 伺服器陣列的 SharePoint 伺服器陣列數量不限。將 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 伺服器陣列中的電腦,您必須從負載平衡器與伺服器陣列中移除電腦。不過,管理該程序的方式,事實上對於使用者並無影響。
基本上,如果您有四部電腦一組的伺服器陣列,您可以移出兩部機器,然後加以升級。接著,利用那兩部電腦建立新的伺服器陣列,然後在兩部電腦指定負載平衡器,而不是指定原始伺服器陣列中的兩部電腦。現在升級其餘的兩部電腦,然後加入新的伺服器陣列,也在這些電腦指定負載平衡器。
從伺服器陣列中移出電腦時,有些使用者的作業可能會斷斷續續,但 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 Microsoft Lync Web App