MSDN Magazine > Home > Issues > 2008 > March >  Office 程式開發: 真實世界中的 OBA 解決方案模式
Office 程式開發
真實世界中的 OBA 解決方案模式
Steve Fox

本文探討:
  • OBA 基礎
  • OBA 模式
  • Microsoft Office 與 LOB 整合
  • 真實世界的 OBA 模式應用程式
本文使用技術:
Visual Studio 2008
大型系統 (如 SAP 和 PeopleSoft) 及其他設計完善的企業營運 (LOB) 系統,對於有效管理各種商務資料與流程是不可或缺的。然而,並非組織內的所有人員都能存取這些系統,因此系統中的商務資料往往只能由少數人使用。結果常使得資料必須從系統外部擷取來進行處理,進而造成商務資料來源與使用這些資料的資訊工作者之間的落差。
藉由使用 Microsoft® Office 做為 LOB 系統中的商務資料與資訊工作者之間的橋樑,Office Business Application (OBA) 能有效解決這個問題。Office 功能可讓您執行多項工作,例如透過自訂表單區域和資料夾將客戶關係管理 (CRM) 資料整合到 Microsoft Outlook®,將商務智慧整合到 Microsoft Office SharePoint® Server (MOSS) 以提供銷售 (Sales) 績效資料的檢視,甚至還可整合 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 (Visual Studio 2008 Professional 及更新版本隨附的最新版 VSTO) 建置而成。您也可以將介面設計為使用 Microsoft Word 內容控制項,然後將這些控制項繫結到資料,或使用自訂工具列、表單區域或自訂功能區來擴充 Outlook。如需如何自訂用戶端的詳細資訊,請參閱「OBA 資訊資源」資訊看板。
Figure 1 整合 SAP 與 Excel 2007 (按影像可放大)
MOSS 2007 提供多種選項可讓您自由選用。舉例來說,您可以建置一個裝載各種網頁組件的網站。用於 OBA 的常見網頁組件包括商務資料目錄 (Business Data Catalog,BDC) 網頁組件 (可管理整個企業實體及相關服務或 ADO.NET 連線)、Excel Services 網頁組件 (可將試算表資料連結到網頁組件),以及關鍵效能指標 (Key Performance Indicator,KPI) 網頁組件 (可提供效能指標)。當然還有其他很多網頁組件可供您建立 Office Business Application 時使用。[圖 2] 顯示 SharePoint 網站中的 BDC 網頁組件與 Excel Services 網頁組件。
Figure 2 BDC 與 Excel Services 網頁組件 (按影像可放大)
可能的方案成千上萬種,幸好有方法可以協助您著手進行。這個方法是包含七種 OBA 解決方案模式的核心組合。接下來我會介紹這些 OBA 解決方案模式,並實際加以應用來設計和開發 OBA。

OBA 模式
OBA 模式的目標在於告訴您如何建構和開發 OBA,提供您在特定模式中可以使用的技術,並示範開發 OBA 的程序。其中的一些技術包括 OpenXML、MOSS 2007、Web 服務及 VSTO 3.0。
在這七種核心模式中,有些核心模式包含子模式。由於這些 OBA 屬於運用多種 Office 平台組件的複合式應用程式,因此這些模式會互相牽連。這七種模式與各個模式的目標都列示在 [圖 3] 中。

模式 描述
做為傳達管道的 OBA 應用程式 (OBA Application as a Reach Channel) 示範如何為更廣泛的使用者群擴充 LOB 應用程式功能。
文件整合 (Document Integration) 指引如何從 LOB 應用程式產生 Office 文件,以及如何在 Office 文件中產生內嵌 LOB 資料。
複合式使用者介面 (Composite User Interface) 說明如何在 Office 文件或 SharePoint 網頁中組合多個應用程式使用者介面。
互補式文件工作流程 (Complementary Document Workflow) 顯示如何經由使用工作流程,來控制和監視以文件為主的作業。
探索導覽 (Discovery Navigation) 提供更自然的 LOB 系統商務資料互動方式,說明如何搜尋多個 LOB 應用程式來探索資料。
共同作業網站 (Collaborative Site) 指引如何透過無結構的共同作業人力,來增強結構分明的商務流程。
應用程式產生的工作和通知 (Application-Generated Tasks and Notifications) 顯示如何使用 Outlook 做為主要的使用者介面,來接收及處理由 LOB 應用程式產生的工作和警示。
每一個模式都代表單一模式,或由可提供更詳細指引的子模式組合而成。譬如說,「做為傳達管道的 OBA 應用程式」(OBA Application as a Reach Channel) 是由兩個子模式 (「直接整合」(Direct Integration) 和「間接整合」(Mediated Integration)) 組成,分別提供 SOA 與非 SOA 解決方案的特定指引。稍後我會詳細解說「做為傳達管道的 OBA 應用程式」(OBA Application as a Reach Channel) 模式。
模式還有一項重點,就是它們會提供 Office 平台內的一些技術指引,以便用來開發您的 OBA。舉例而言,「文件整合」(Document Integration) 模式與其子模式建議使用 OpenXML、VSTO、BDC 或更廣泛來說的文件標記。[圖 4] 顯示構成七種核心 OBA 解決方案模式的子模式概觀,還有當您使用特定 OBA 模式來設計 OBA 解決方案時,可能需要用到的技術。

模式 子模式 使用的技術
做為傳達管道的 OBA 應用程式 (OBA Application as a Reach Channel) 直接整合 (Direct Integration) -- 在複合式 UI 中不使用服務且以自訂方式提供商務資料的自訂元件。間接整合 (Mediated Integration) -- 中間層,可抽象化兩端的通訊;採取較鬆散的聯繫性、宣告式,且以服務為導向。 VSTO MOSS 2007 BDC
文件整合 (Document Integration) 應用程式產生的文件 (Application-Generated Document) -- 從 LOB 系統產生 (使用伺服器端批次處理程序)。也可以使用直接整合 (Direct Integration) 或間接整合 (Mediated Integration)。智慧型文件 (Intelligent Documents) -- 直接在文件中嵌入 LOB 系統資料 (內容控制項、命名範圍)。 OpenXML VSTO BDC 文件標記
複合式使用者介面 (Composite User Interface) 內容導向的複合式使用者介面 (Context-Driven Composite User Interface) -- 與事件和應用程式內容繫結的自訂 UI 元件 (特定資料或使用者設定檔)。網狀複合式檢視 (Mesh Composite View) -- 可相互連接的網頁組件,以建立主要/詳細複合式使用者介面 (SharePoint 中的 BI 檢視)。RSS 和 Web 服務組合 (RSS and Web Services Composition) -- RSS 和 Web 服務的網狀複合式檢視。分析 (Analytics) -- 資料分析儀表板的網狀複合式檢視。 網頁組件 VSTO (功能區、自訂工作窗格...等等) BDC Excel 服務與儀表板
互補式文件工作流程 (Complementary Document Workflow) LOB 起始的文件工作流程 (LOB-Initiated Document Workflow) -- 與工作流程對應的文件會以商務資料進行轉換、增強或填入。其他工作流程功能會嵌入文件中。合作文件工作流程 (Cooperating Document Workflow) -- 工作流程屬於文件容器的一部分,因此很多人參與其中,而且必須透過有組織的方式來合作使用文件。 Windows Workflow Foundation SharePoint Storage BDC
探索導覽 (Discovery Navigation) 不適用 企業版搜尋 BDC
共同作業網站 (Collaborative Site) 不適用 Windows SharePoint Services InfoPath® Forms Services
應用程式產生的工作和通知 (Application-Generated Tasks and Notifications) 簡單工作和通知傳遞 (Simple Task and Notification Delivery) -- 工作的單向流程並透過電子郵件通知指派給某人。工作同步處理 (Task Synchronization) -- 在 Outlook 中,工作的雙向同步處理。智慧型工作和通知 (Intelligent Tasks and Notifications) -- 說明如何根據指派的工作採取行動。表單型工作和通知 (Form-Based Tasks and Notifications) -- 說明如何整合 InfoPath 表單以提供更豐富的商務規則驗證和自動化。 Outlook 2007 與 MOSS 整合 VSTO (自訂工作窗格、Outlook 表單區域...等等) InfoPath Forms Services
您可以使用這些模式做為採用其他 OBA 內容的一部分,藉此熟悉 OBA 的構成方式,以及用來建置 OBA 的技術,或是在您自己的 OBA 設計中使用這些模式。另外還有一些參考架構套件 (Reference Architecture Pack) 可用。它們是專為特定產業 (例如製造業或銀行業) 所提供的 OBA 架構 (及應用程式) 指引套件。如需詳細資訊,請參閱「OBA 資訊資源」資訊看板。
了解了一些 OBA 模式基本要素之後,讓我們將 OBA 解決方案模式應用到真實世界的軟體設計。

使用 OBA 解決方案模式
首先,我們要觀察一下您實際上可以在什麼軟體開發循環 (SDLC) 作業中運用 OBA 解決方案模式。第一步是先識別問題。如果您沒有任何問題 (或需求),那麼當初就不可能會開發該軟體。識別出問題之後,接下來就要確認與問題相對應的需求。這兩個步驟是整個流程最重要的部分。如果沒有做好這個部分,各種問題就會在 SDLC 中不斷累積。一旦鎖定需求後,您可以開始著手設計。
在設計階段中,您需要自問一些問題。例如:這些需求是否指向特定的環境 (這意味著設計上的限制)?是否需要使用特定軟體 (市售軟體或自訂軟體) 才可行?需要什麼硬體?[圖 5] 顯示在設計階段中如何結合 OBA 模式。
Figure 5 設計階段中的 OBA 模式 (按影像可放大)
找出需求組合並熟悉 OBA 之後,接下來要從 OBA 模式中確認是否有符合需求的模式,若有的話,是哪個模式。其次,您必須細究特定模式的子模式是否符合您的需求。假設您找到其中一種模式能符合您的需求,就可以使用該模式做為設計的範本。

問題
如前所述,軟體開發契機通常是為了解決一些問題。以我們的例子來說,問題在於銷售管理團隊需要檢視即時的銷售資料。為了解決這個問題,我們需要更了解這個團隊、環境,以及一些基本需求。
我們對此特定環境的了解如下:銷售管理團隊包含 100 位成員,這些成員都執行 Windows Vista®、2007 Office 系統、SharePoint,以及最新版的 Internet Explorer®。這些成員大多在遠端工作,不過都可以透過公司網站來存取中央 SharePoint 網站或伺服器。
為了便於說明,我把需求簡化成以下內容:由於成員不會一直連線到公司網路,銷售團隊成日都會使用 Excel 試算表來記錄銷售資料,然後在連線到公司網路時,再手動將資料輸入 LOB 系統中。另外,在此過程中還有一些特定步驟也會以手動執行 (例如資料驗證)。團隊需要的系統必須能支援斷斷續續連線的銷售團隊,而且能夠自動化很多手動程序,例如驗證作業 (每日的銷售資料輸入與驗證作業平均需花費 30 分鐘,團隊希望能縮減成 5 分鐘)。由於銷售團隊已經很習慣使用 Excel 及 Internet Explorer 等工具,因此希望採用以 Excel 為主的解決方案和 SharePoint 檢視,好讓成員可以在其團隊管理網站上建立報表。
陳述問題之後,您很快就會發現,銷售管理團隊直接為其遠端銷售人員擴充用來管理銷售資料的 LOB 應用程式。以陳述的問題比對 OBA 解決方案模式的清單之後,我們便找出剛好符合需求的「做為傳達管道的 OBA 應用程式」(OBA Application as a Reach Channel) 模式。

做為傳達管道的 OBA 應用程式 (OBA Application as a Reach Channel)
此模式的目標在於示範如何使用 Office 應用程式當做工具,為更廣泛的使用者群擴充 LOB 系統功能。此模式的實作可讓更多人存取 LOB 系統的商務資料。根據此模式,舉例來說,您可以使用 Outlook 或 Excel 當做豐富型用戶端,或使用 SharePoint 網頁組件當做伺服器端的精簡型用戶端,藉此與 LOB 系統整合。在此案例中,由於您是在小型組織中部署此 OBA,所以適合這個模式,因此 Excel 和 SharePoint 可提供兩種很好的方法來做為銷售資料的介面。事實上,最理想的解決方案是能夠讓 LOB 系統同時供用戶端存取與精簡型用戶端存取。就此而言,我們的銷售資料 OBA 看起來會像 [圖 6]
Figure 6 LOB 系統的用戶端存取與精簡型用戶端存取 (按影像可放大)
Figure 6a LOB 系統的用戶端存取與精簡型用戶端存取 (按影像可放大)
Figure 6b LOB 系統的用戶端存取與精簡型用戶端存取 (按影像可放大)
仔細觀察,您會發現「做為傳達管道的 OBA 應用程式」(OBA Application as a Reach Channel) 有兩個子模式:「直接整合」(Direct Integration) 和「間接整合」(Mediated Integration):我們現在就來詳細說明這兩個子模式。
透過「直接整合」(Direct Integration),基礎 LOB 系統的存取會直接整合到 Office 用戶端或 SharePoint 網頁組件。使用這種模式時,您通常會直接與後端處理程序或資料來源建立連線,而且額外的商務邏輯應該不多。
雖然「直接整合」(Direct Integration) 很常見,但卻難以在多個系統間重複運用。「間接整合」(Mediated Integration) 需要建立一個服務層來調解 LOB 系統與自訂用戶端元件 (例如,自訂工作窗格) 之間的整合,因此有助於在多個系統間重複使用,以及使用戶端與伺服器之間的聯繫性更鬆散。對於銷售資料 OBA 來說,這真是個好消息。我們現在可以建立一個包裝銷售資料模組的 Web 服務 (所有銷售資料都在此輸入),並在所有用戶端介面中整合該 Web 服務。因此若您想要整合 LOB 系統與 Excel,也沒問題。接著您就可以經由在 Visual Studio 2008 內建立的參考,或經由 SharePoint 內的 BDC,來使用此服務。
您目前的進度如下:已清楚陳述問題與需求,並準備好套用 OBA 模式。產生的架構將運用「間接整合」(Mediated Integration) 模式;也就是說,此 OBA 會運用 Web 服務在 Excel 和 SharePoint 中提供銷售功能。值得注意的是,[圖 7] 中的內容稍有不同 (相較於 [圖 6])。這是因為 BDC 只能當做資料視覺化的唯讀工具,不過自訂的用戶端卻可以發出讀取/寫入呼叫。這點必須反映在架構圖表中。
Figure 7 銷售資料 OBA 架構 (按影像可放大)
目前的架構已經包含 Excel 2007 增益集、MOSS 2007 站台和 Web 服務,這個 Web 服務的作用是連回 LOB 系統的間接連線。此外,您也已經知道所需的技術,因此可以記錄更詳細的規格並建置開發環境 (使用 OBA 解決方案模式中的相關技術)。
您可能認為此時可以將 OBA 解決方案模式放到一旁了。不過,建議您要比較一下選擇的模式,以及七種核心解決方案模式中的其他可用模式。這麼做可以檢驗您的架構,而且可能會激起一些不錯的點子來產生下一版的解決方案,以納入更多 Office 開發平台的伺服器、工具及服務。
最後一個步驟是要考量如何在架構中建置各項元件。我會提供更全貌的概觀,還有一些額外的連結,好讓您深入探索我提及的各個技術。

開始設計
OBA 資訊資源
OBA 的開發包羅萬象,因此我在此舉出一些建議的讀物:
6 種 Office SharePoint Server 2007 適用的 Microsoft Office Business Application (6 Microsoft Office Business Applications for Office SharePoint Server 2007)
microsoft.com/mspress/books/9471.aspx
Microsoft Office Business Application 程式設計 (Programming Microsoft Office Business Applications)
microsoft.com/mspress/books/12194.aspx
Office Business Application 入門 (Getting Started with Office Business Applications)
msdn2.microsoft.com/bb614541
OBA Central
obacentral.com
OBA 參考架構套件 (OBA Reference Architecture Packs)
msdn2.microsoft.com/bb265266
VSTO 開發人員入口網站 (VSTO Developer Portal)
msdn2.microsoft.com/aa905533
Office 開發人員入口網站
msdn2.microsoft.com/office
SharePoint 開發人員入口網站
msdn2.microsoft.com/sharepoint
使用商務資料目錄定義編輯器建立資料庫連線 (Creating a Database Connection by Using the Business Data Catalog Definition Editor)
msdn2.microsoft.com/bb736296
使用商務資料目錄定義編輯器建立 Web 服務連線 (Creating a Web Service Connection by Using the Business Data Catalog Definition Editor)
msdn2.microsoft.com/bb737887
整合 LOB 系統與 Microsoft Office 系統 (Integrating LOB Systems with the Microsoft Office System)
msdn2.microsoft.com/bb896607

準備好架構後,您需要了解如何建置此 OBA。您知道需要有 MOSS 網站 (或具備現有網站上的系統管理員權限,以便加以開發)。若您選擇設立新網站,就必須在 Windows Server® 2003 (或 Windows Server 2008) 上安裝 MOSS (及所有必要元件)。您也需要確認已安裝 Visual Studio 2008 Professional Edition,以及 2007 Office System Professional Edition 和 Office 主要 Interop 組件 (PIA) -- 這是 Visual Studio 2008 中的安裝選項。您還需要存取 LOB 系統,因為您必須對此系統的執行個體開發和測試 Web 服務。
要建立此環境至少需要一天的時間。我建議的順序為:設定伺服器作業系統、在伺服器上設定 MOSS、在伺服器上 Office,然後在本機電腦上安裝 Visual Studio 2008 (及 PIA)。此時,您可以測試所建立 (或現有) 服務的存取。
設立好環境後,您需要建立 Web 服務。針對銷售資料 OBA,您可能至少要建立兩個 Web 服務:一個用來取得銷售資料 (以顯示在 Excel 用戶端增益集和 MOSS 網站中),另一個則用來更新來自 Excel 用戶端增益集的資料。雖然 LOB 系統是通用的,但是您可以使用 Web 服務工具來建立包裝更多網域特定功能的服務,在現有的商業模組 (例如 SAP) 中使用。
當然,不同 LOB 系統的運作方式當然會不同,但目的都是要產生同時可用於 BDC 和 VSTO 增益集中的服務。若要取得相關領域 (即 SAP 與 Office 的整合) 的協助,您可以檢視 SAP 的 OBA 入門套件 (OBA Starter Kit for SAP),它會提供如何針對 SAP 建立 Web 服務的說明 (msdn2.microsoft.com/bb498189)。
建立了 Web 服務之後,接著可以建立 VSTO 增益集。若要這麼做,請使用 Visual Studio 2008 來建立 VSTO 應用程式層級增益集或文件層級解決方案。這些增益集都會依照類似的方式使用 Web 服務。您可能會在增益集內建立自訂工作窗格,來管理銷售資料 (控制所顯示資料的篩選器),還有自訂功能區來管理這些資料的檢視 (建立資料的圖表、套用函數...等等)。VSTO 開發人員中心有提供許多執行此作業的相關資訊,網址是:msdn2.microsoft.com/aa905533
下一步是將 Web 服務新增到 MOSS 網站。也就是說,您要為 Web 服務建立應用程式定義檔案 (ADF),您可以手動編寫 XML 檔案的程式碼,或使用 BDC 定義編輯器 (BDC Definition Editor) 或 BDC MetaMan 來建立 ADF,接著再將 ADF 匯入到 SharePoint 來建立 BDC 網頁組件,然後試著將網頁組件套用到 ADF 來完成 BDC 網頁組件與 LOB 系統間的整合。如需如何進行的詳細資訊,請參閱 msdn2.microsoft.com/bb737887
若要部署此解決方案,就必須同時具備用戶端部署機制與部署的 MOSS 網站,銷售團隊將透過這個網站來存取 BDC 網頁組件和 Web 服務。您可以將 VSTO 用戶端組件發行到 SharePoint 網站,再讓銷售管理團隊將組件下載到本機用戶端,如此一來,每次啟動增益集時,組件都會透過部署資訊清單來檢查伺服器上是否有更新資料。
若要部署 BDC 網頁組件,您需要先設定現有的 MOSS 網站以供團隊使用,因為網頁組件的部署程序包括到在現有網站上建立網頁組件。如需詳細的部署資訊,請參閱 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 產品。

Page view tracker