分散式系統
理想的分散式環境包含:開發、系統整合測試及生產環境三種環境。開發人員使用開發環境進行模組及整合測試。為了初步確保測試的順利進行,他們檢查源程式碼存放庫 (如 Visual SourceSafe) 中的程式碼。目前實際處理的範例包含一檢查唯讀權限的組建小組,並按需要的方式編譯二進位程式碼。組建小組繼續將分散式程式碼部署到分散式測試伺服器,即「系統整合測試」環境。為了成功的完成測試,組建小組將分散式程式碼部署到生產環境,該環境對外部操作開放。
圖 1 理想化分散式環境的示意圖
在此分散式系統中,作為部署策略的一部份,此文件期待推薦部署程序的封裝問題。封裝分散式程式碼為以一致性及控制性方式管理部署的中心。已封裝程式碼的好處包含藉由記錄顯示部署及安裝內容,執行版本控制。理想的分散式系統包含分散式網路管理系統伺服器,如 SMS 或 Application Center 2000 Server,它可能會促進已封裝 MSI 容器的部署及安裝。
圖 2 理想化分散式環境的封裝
「Microsoft 系統管理伺服器 (SMS)」可用於部署及初始化 MSI 套件的遠端部署。但自動化部署及使用 Microsoft Application Center 2000 Server 安裝這些套件可帶來更大的益處。Application Center 2000 Server 將 Windows Installer 特定的用於遠端軟體發佈及安裝。利用為開發及遠端安裝設計的預先組建 MSI 套件,Application Center 2000 Server 可以獨立及排定為基礎,用於自動化 Web 伺服器的拆卸及安裝。
部署處理程序
封裝處理程序開始於來源控制存放庫,並依序到達名單建立 (由一組自我描述部署指示組成的 XML 例項),讀取該名單的封裝工具,然後產生部署及安裝就緒的 MSI 套件。
圖 3 封裝程序概觀
封裝工具建立一Shell MSI 套件,消耗 (讀取) 名單,開始以與安裝指示相關的資訊填入 MSI 套件。該工具然後將奪取所有名單中列出的檔案,並將其精簡為將裝入 MSI 套件的壓縮 CAB 檔。該名單亦將包含於此 MSI 套件中用於安裝後指示。
圖 4 使用封裝工具建立 MSI 套件。
圖 5 封裝程序
開發人員使用開發環境測試其程式碼,然後將其來源存放至來源程式碼存放庫區域。BCM 編譯二進位程式碼,並將位元封裝至 MSI 套件。然後這些套件部署至各自的系統整合測試 (SIT) 及名單中定義之檔案結構中的生產環境。
圖 6 利用 MSI 部署的理想化環境
將所有檔案部署至其適當的目的地,並且執行了所有 Windows Installer 自身操作之後,將會安裝「安裝後 Windows Installer 自訂操作 (WICA)」元件並執行非自身 Windows Installer 操作。這些非自身操作可包含 IIS 虛擬 Web 目錄安裝程式、 NT 4.0 Server、SQL 指令檔及查詢執行方式的 MTS 套件登錄、及指令行執行。
Windows 2000 系統之 Windows Installer 本身擁有 COM+ 套件登錄。為 NT 4.0 伺服器設計之 MTS 套件的 WICA 安裝程式執行方式亦可以嚴密地執行在 Windows 2000 上。
圖 7 自動化公布的安裝處理程序
角色
開發人員
開發人員根據名單和/或 BCM 的執行方式指示,以結構格式化提供關於如何組建產品,如 DLL 的指示。開發人員將協助 BCM 產生關於 MTS/COM+ 元件、資料庫指令檔建立、及任何成功安裝所必需的名單資訊。此外,開發人員提供任何依存檔案如 .OCX、.INI、及部署產品所需之登錄資料項目和協力廠商 (如果存在) 元件。
組建設定管理員
BCM 對封裝、部署、及自動化 MSI 套件建立至關重要。此非開發人員形式可使開發人員輕鬆地進行程式碼開發。此人瞭解應用程式如何完整地工作,及各部份結合的位置。一般職責包含編譯碼、確認名單及封裝及部署應用程式。此人將特別負責:
名單 (XML 檔案) 的建立及維護。(可使用文字或 XML 編輯器手動地的建立名單,或程式化的使用來源控制的 API 自動化建立。)
定義組建元件的群組 (Windows Installer 元件)
組建程序
部署/安裝程序
遷移程序
專案領域
專案領域定義及條件對所有專案都至關重要。本文建議使用 Visual Basic 及 Windows Installer 組建自訂封裝工具。無論工具組的種類為何,部署策略應保持一致。
領域
領域定義為:
建議的工具組是指此後提及的 WinDNA 封裝程式。相關的文件提供將用於產生分散應用程式之 Windows Installer 套件的程序及一組可多次使用的元件。這些將包含提供 MTS/COM+ 的 DLL、Windows Installer 的 IIS 及 SQL 自訂操作功能、說明程式 WSH 指令檔、名單架構及架構存取程式碼、及描述該工具組使用方法的文件。
領域包含:
MSI 套件的自動化建立
名單的 XML-架構。
工具 (WinDNA 封裝程式)
該工具的結構將幫助 Windows Installer API 讀取名單及 XML 檔案表單中的資料,並建立安裝就緒的 MSI 套件。MSI 套件將由包含文字檔案 (例如,ASP、XML、HTML) 的 Windows Installer 元件、DLL、EXE、MTS/COM+ DLL、支援檔案、及該名單本身組成。工具組或部署裝備及相關的文件提供將用於產生應用程式之 Windows Installer 套件的程序及一組可多次使用的元件及指令檔。
資源
BCM 將負責產生及維護名單,即 XML 檔案,它是來源控制存放庫 (如 Visual SourceSafe) 與 WinDNA 封裝程式之間的媒體。此人亦將執行來源控制中來源程式碼的唯讀檢驗、編譯二進位碼、對部署工具開放二進位碼及支援檔案、維護名單、並使用 WinDNA 套件建立 MSI 套件。
Patches/Hotfixes/Includes
MSI 套件可包含單一 Windows Installer 元件;因此,將產生更流行的 MSI 套件取代現存的目標元件。BCM 可能選擇性的包含合併模組 (將屬於 MSI 套件) 中的二進位碼,如最新的 ADO 位元。
名單
名單作為 Windows Installer 技術的摘要的中間階層。BCM 需要瞭解 Windows Installer 的工作方法、或 MSI 資料庫的建立方法。BCM 幾乎無需瞭解 Windows DNA 應用程式對成功部署的要求。
建立名單有兩種建議方法。第一種為藉由程式化的提高來源控制 (例如,Visual SourceSafe) 物件模型及 Microsoft XML DOM,自動化建立例項。此方為兩種方法中較可靠的一種,但它需要初始程式投資。第二種方法為手動建立名單—開發人員逐段建立名單,每個人負責建立各自的區域。BCM 可將獨立例項編譯為一個檔案。
名單的建立對其相關的 XML 架構必須正確的。判定 XML 架構可為與之相關的程序,特別是由於名單負責兩個區域:套件建立及安裝後指示。名單 XML 及其使用方式詳見本文末尾的附錄章節。範例的使用方式資訊與 WinDNA 封裝程式緊密相關。
結構
該結構包含 Custom Action DLL 即「Windows Installer 自訂操作 (WICA)」處理非 Windows Installer 自身的工作。已對 MSI 套件建立套用了最佳方法。設計該結構以允許工具靈活的使用在任何 Windows DNA 應用程式的部署及安裝。
該結構亦允許支援二進位的安裝,如 MDAC (ADO) 元件的最新版本,以合併模式包含於 MSI 套件中。
套件工具非常依賴名單提供安裝 Windows DNA 應用程式的大量規則。
套件工具
封裝工具讀取名單以取得用於封裝 MSI 套件所需的指示組。封裝程序包含所有列出的檔案並將其精簡到 CAB 壓縮檔案中,此檔案實體性的儲存於 MSI 套件中。
MSI 套件為一包含檔案部署資訊,如其大小及位置,的 SQL 型資料庫。該套件亦包含下列資訊:登錄設定、ODBC 設定、NT 服務安裝程式、Windows Installer 自訂操作元件及帶有安裝後資訊的名單。
MSI 套件可與其他 MSI 套件相結合,即為合併模組。合併模組可由「組合」功能設定加以靈活擴充。例如,包含最新的「使用中資料物件 (ADO)」的 MDAC 2.5,它可自行封裝,然後併入需要 ADO 2.5 的 Windows DNA 應用程式中。
圖 8 顯示該結構的構成。由 Windows Installer API 組成的工具將讀取該名單,並相應地建立安裝 MSI 套件。它亦將該名單及安裝後「Windows Installer 自訂操作」元件併入該套件。安裝程式 MSI 套件可能透過 Windows Installer 轉型,結合合併模組或其他 MSI 套件。 圖 8 架構撰寫
圖 9 顯示如何撰寫安裝 MSI 套件。如果它結合「MSI/合併模組」套件,將造成如下列圖表中顯示的轉型。合併模組為可與其他 MSI 套件結合的 MSI 套件。 圖 9 安裝 MSI 套件,包含合併模組
圖 10 顯示轉型的 MSI 套件。
圖 10 安裝 MSI 套件結合 MSI/合併模組套件的轉型結果
Windows Installer 自訂操作 (WICA)
安裝後 COM 元件 DLL,WICA 讀取名單並依存於其安裝、執行工作 (非 Windows Installer 自身的) 的內容及類型。這些工作包含:
MTS 登入/取消登入自訂執行 DLL 建立套件並根據名單的內容將元件填入其中。如果出現移除旗標,自訂操作 DLL 在執行有效性檢查後移除套件。Windows Installer 自身支援 Windows 2000 系統的 COM+ 封裝,但不支援 NT 4.0 Server 的 COM+ 封裝。
IIS 安裝/移除。自訂操作 DLL 根據名單的內容設定虛擬目錄。如果出現移除旗標,自訂操作 DLL 在執行有效性檢查後移除虛擬目錄。
資料庫安裝程式。自訂操作 DLL 執行名單所含的 SQL 指令。它亦尋找名單中的復原指示。名單亦包含復原 SQL 指令。
指令行執行。自訂操作元件執行指令行操作,如 Windows Scripting Host 及批次檔。
有效性檢查。移除套件或虛擬目錄前,自訂操作 DLL 檢查目標套件或虛擬目錄是否為空。如果如此,則已移除該套件或虛擬目錄。
摘要
WinDNA 封裝程式為綜合的封裝解決方案,它提供 MSI 套件形式之分散設計應用程式的端對端覆蓋。MSI 套件為 SQL 類型資料庫,Windows Installer 服務使用它安裝應用程式。充分發揮 Windows Installer 技術,Windows DNA 應用程式將具有與桌面應用程式 (如同 Microsoft Office 2000) 同樣方便的安裝。
XML 例項是指包含用於封裝、部署、及安裝後指導之自身說明資料集的名單。它亦在 WinDNA 封裝程式與來源控制機制間作為額外階層。最後,它允許負責組建程序的人員 BCM,將注意集中於 Windows DNA 應用程式封裝程序,而非建立 MSI 套件必需的技術機制。
安裝後元件包含於 WinDNA 封裝程式,即為「Windows Installer 自訂操作 (WICA)」。WICA 負責 Windows Installer 自身不執行的操作—安裝後步驟—。這些步驟包含 Windows NT 4.0 Server 上 MTS 套件的登錄,它亦可用於 Windows 2000 (儘管 Windows Installer 自身支援 COM+ 套件建立) 的 COM+ 套件。安裝後的步驟額外地包含 IIS 虛擬目錄的安裝程式及其存取權限,及建立/銷毀/修改資料庫的 SQL 查詢及指令檔執行方式,因為大多數 Windows DNA 應用程式由資料庫驅動。WICA 亦將執行指令行操作,如 Windows Scripting Host 或批次檔。WICA 需要其名單以取得用於安裝後指示的資訊。
在分散式網路管理系統,如 Microsoft Systems Manager Server (SMS) 或 Microsoft Application Center 2000 Server 的協助下,MSI 套件部署及安裝可在遠端以排定且自動化方式完成。然而,WinDNA 封裝程式亦可遠端藉由擴充其功能安裝 MSI 套件,此過程藉由程式化結合「Windows 管理設備 (WMI)」物件模型來完成。
沒有留言:
張貼留言