共用方式為


Project Server 2010 架構

 

適用版本: Project Server 2010

上次修改主題的時間: 2016-11-30

Microsoft Project Server 2010 是多層系統,可擴充 Microsoft Office Project Server 2007 中所採用的架構。Project Server 架構包括前端層中的 Microsoft Project Professional 2010 與 Microsoft Project Web App 用戶端。前端應用程式只能透過 Project Server 介面 (PSI) Web 服務與中間層通訊,再由其與商務物件層通訊。商務物件透過資料存取層 (DAL) 使用資料庫。用戶端應用程式不會直接存取主要資料庫;Project Server 會隱藏商務物件與用戶端的 DAL。

本文包含下列章節:

  • 一般架構

  • 網頁伺服器

  • Project Server 介面 (PSI)

  • 商務物件

  • 資料存取層與資料庫

  • 發佈與伺服器端排程

一般架構

Project Server 2010 與 Office Project Server 2007 的一般架構主要差異如下:

  • Project Server 2010 需要 Microsoft SharePoint Server 2010 Enterprise 才能安裝。與 Microsoft Office Project Server 2007 伺服器陣列部署類似,當您將 Project Server 2010 部署到伺服器陣列時,必須在伺服器陣列中的所有應用程式伺服器與所有網頁伺服器上安裝 Project Server 2010。

  • PSI 包含 Web 服務適用的 Windows Communication Foundation (WCF) 介面與 ASMX 介面。

  • Project Server 工作流程平台整合於 PSI、商務物件層與 DAL 中,並建立於 SharePoint 平台的 Windows Workflow Foundation (WF) 上。

  • Project Server 的任務、工作分派與工作分派狀態資料會與 Microsoft Exchange Server 整合,而非 Microsoft Outlook 增益集。

下圖顯示 Project Server 2010 架構的概觀。Project Server 上有一部網頁伺服器和一個 Project Web App 執行個體。與 Office Project Server 2007 一樣,一部伺服器上可執行多個 Project Web App 執行個體。

Project Server 2010 架構

注意

  • 在 Project Server 2010 中,您可以使用 PSI 的 WCF 或 ASMX 介面。Project Web App 與 Project Professional 2010 用戶端均使用 WCF 介面。

  • 架構圖中的 PSI 轉寄站由兩個元件構成:WCF 轉寄站與 Web 服務轉寄站。使用 ASMX 介面的用戶端會透過 Web 服務轉寄站呼叫 PSI。使用 WCF 介面的用戶端則透過 WCF 轉寄站呼叫 PSI。

  • 架構圖未顯示網頁伺服器可透過周邊網路中額外的防火牆來隔離 (也稱為「隔離區」或 DMZ)。

  • SharePoint Web 服務網站是 SharePoint Server 2010 的一部分 (未顯示於架構圖中)。SharePoint Web 服務網站包含 ASMX 與 WCF 服務專用的 Project 服務應用程式與 PSI 虛擬目錄。Project Server 2010 中的 Project 服務應用程式取代 Office Project Server 2007 中的共用服務應用程式。

前端層包含協力廠商應用程式、Microsoft Project Professional 與 Project Web App。Project Web App 使用 Internet Explorer 來顯示 Microsoft ASP.NET 3.5 頁面。Project Web App 頁面使用可與 PSI 通訊的 Project Server 網頁組件,也使用標準的 SharePoint Server 2010 網頁組件。

不同電腦上的用戶端應用程式會透過服務 Proxy 呼叫 PSI。使用 WCF 介面的外部用戶端透過 https://ServerName/ProjectServerName/_vti_bin/psi/ProjectServer.svc 存取 PSI。使用 ASMX Web 服務介面的用戶端則使用其中一個 Project Web App URL (例如 http://server1/pwa/_vti_bin/psi/project.asmx)。如果應用程式不具備 Project Server 的內部網路存取權,可以使用周邊網路中的 Project Web App 伺服器 (未顯示於架構圖中)。

如果用戶端應用程式可直接存取 Project Server 電腦,其與企業營運 (LOB) Web 應用程式的後端元件便可使用 PSI Proxy,PSI Proxy 會使用連至 PSI Web 服務的 SharePoint 共用服務 URL,例如 http://server1:32843/ProjectServiceApplication/project.asmx。連接埠 32843 是 SharePoint Server 2010 中的 SharePoint Web 服務應用程式的預設連接埠。只有當應用程式必須使用模擬或以較高的權限執行時,才應開放 Project 服務應用程式虛擬目錄的直接存取。

中間層包含 PSI 與商務邏輯層,後者由代表 Project Server 商務實體的邏輯商務物件構成。商務物件包含專案、任務、資源與工作分派等。PSI 與商務邏輯層會緊密結合,並且位於同一部伺服器中。用戶端應用程式會呼叫 PSI Web 服務,PSI 則呼叫商務邏輯層中的商務物件。

DAL 提供中間層與資料庫間的通訊。所有的 Project Server 資料均儲存在 Microsoft SQL Server 資料庫中。Project Server 資料庫分成下列儲存區:草稿、發佈、封存及報表。用戶端應用程式可讀取報表資料庫中的專案資料。用戶端應只能使用 PSI 來存取草稿、發佈或封存資料庫。報表資料服務 (RDS,未顯示於圖 1 中) 會以幾乎即時的方式更新報表資料庫中已發佈的資料。在 Project Server 2010 中,所有 Project Server 資料庫都可位於不同的伺服器上。

Project Server 的 Project Web App 元件也會使用 Microsoft SharePoint Foundation 2010 設定資料庫來設定專案網站,並使用內容資料庫設定專案網站內容,例如自訂頁面、工作流程、管理設定、文件、問題清單、風險與承諾。SharePoint 的設定與內容資料庫支援額外的專案管理功能,例如專案範本與工作區、小組共同作業自訂清單與報表。

網頁伺服器

您可以在公司內部網路中安裝一或多部網頁伺服器以分散內部網路用戶端的負載。當用戶端應用程式使用不同的網頁伺服器時,PSI 呼叫是透過 PSI 轉寄站路由至 Project Server 電腦上的 PSI Web 服務。PSI 轉寄站 (WCF 轉寄站或 Web 服務轉寄站) 有下列作用:

  • 最佳化遠端用戶端的 PSI 呼叫

  • 將與用戶端主動式快取一併使用的伺服器快取包含在 Microsoft Project Professional 中,以減少對 Project Server 的來回呼叫。

在使用者收到來自 Project Server 的驗證 Cookie 之後,PSI 轉寄站自然會傳送要求至 Project Server 電腦上的 PSI Web 服務。PSI 轉寄站可透過 LAN 與 WAN 提升效能與穩定性。

Project Web App 是使用 ASP.NET 3.5 所開發。.aspx 檔案中的視覺元素 (HTML、伺服器控制項與靜態文字) 與編譯的組件 (.dll 檔案) 中程式碼後置 (Code-Behind) 類別的程式設計邏輯不同。Project Web App 中的網頁 (例如頂層網頁、專案中心與報告中心) 都可利用網頁組件自訂。[網站動作] 功能表中未包含 [編輯頁面] 選項的應用程式頁面則無法編輯,例如 [伺服器設定] 頁面與 [檢閱時程表] 頁面。

Project Server 介面 (PSI)

PSI 是 Project Server 的 API。PSI 物件模型可向所有外部應用程式顯示 Project Server 功能。Project Professional 2010、Project Web App、LOB 及其他協力廠商應用程式均使用 PSI 來存取草稿、發佈及封存資料庫中的 Project Server 資料。透過後端 LOB 應用程式的 WCF 服務與 ASMX Web 服務呼叫,或透過 PSI Proxy,便可使用 PSI。

PSI 中的 Web 方法一般會產生 DataSet 物件或消耗輸入的 DataSet 物件,以做為和商務物件交換資訊的方法。PSI 參考資料包含 DataSet 文件。

商務物件

Project Server 的內部物件模型包含商務物件。用戶端應用程式只能透過 PSI 存取商務物件,而只有商務物件可以呼叫 DAL。

商務物件是邏輯實體,可分為下列三種類型:

  • 核心實體是專案、任務、工作分派、資源及行事曆物件。核心實體包含基本商務邏輯,例如權限與命名規則。

  • 商務實體是時程表、產品組合與模型物件。商務實體包含額外的商務邏輯,通常由核心實體的組合所建立。

  • 支援實體是安全性與驗證的物件。

PSI 會處理 API 對商務物件的對應。

資料存取層與資料庫

DAL 僅供 Project Server 內部存取,不會向外部應用程式公開。DAL 會在資料的邏輯商務實體表示法與實體資料庫資料表之間進行轉譯。每個邏輯實體均儲存在數個不同的資料表中。DAL 會封裝管理連線需要的工作、執行佇列,以及開始/認可/回復交易。

Project Server 資料會分割到 SQL Server 的四個資料庫中。

  • 草稿資料庫包含可儲存 Microsoft Project Professional 與其他應用程式尚未發佈之專案的資料表。Project Web App 不會顯示草稿資料庫中的專案資料。

  • 發佈資料庫包含所有發佈的專案與企業資源、企業通用範本和其他專案範本。在 Project Web App 中可以看到發佈的專案。發佈資料庫也包含 Project Web App 特定的資料表 (時程表、模型及檢視等) 與通用運算列表 (自訂欄位、查閱表格、安全性及中繼資料)。

  • 封存資料庫會儲存專案與其他資料的備份版本。

  • 報表資料庫 (RDB) 用來產生報表與 OLAP Cube 的臨時區域。報表資料庫中的資料是完整的,並且幾乎是即時更新。資料表與檢視經過最佳化處理,以方便產生唯讀報表;例如,RDB 資料表是反正規化的資料表,可提供冗餘資料,並減少關聯式資料表的數目。

類似資源或專案的實體可能會涵蓋在多個資料表中,特定實體的所有資料表,都會有相同的主索引鍵。主索引鍵是可唯一識別特定實體之執行個體的單欄。唯一識別碼是 GUID。

只有報表資料庫結構描述會記錄成文件。您應該只透過 PSI 存取草稿、發佈與封存資料庫。您可以將 Project Server 2010 資料庫結構描述中未定義的運算列表、欄位 (屬性) 和實體,新增到報表資料庫。如果您新增資料表到核心資料庫,則也必須提供完整的自訂組件、Web 服務、商務物件和資料存取。您可以輕鬆修改報表資料庫;建議您不要修改核心 Project Server 資料庫。

發佈與伺服器端排程

Project Server 2010 支援手動與自動化專案排程更新。預設程序是手動更新專案。也就是說,專案經理在 Microsoft Project Professional 中開啟專案、套用變更,然後儲存並發佈專案,讓每個人都能看到變更。Microsoft Project Professional 中的排程引擎會計算排程變更,以便進行手動更新。

Project Server 中的排程引擎可利用 PSI 來自動化專案更新。透過下列步驟,Project Server 能在專案經理使用草稿版專案時更新成發佈版專案:

  1. Project Server 自動套用更新,並重新排程發佈的版本。

  2. Project Server 儲存更新,並在下列任一事件發生時套用至草稿版本;

    1. Microsoft Project Professional 開啟專案。

    2. Microsoft Project Professional 嘗試發佈專案。

  3. 如果發生衝突,專案經理必須先解決衝突,才能發佈草稿版本。

警告

Project Server 排程引擎與 Microsoft Project Professional 排程引擎之間有一些限制與差異。例如,Project Server 無法排程子專案或與其他專案的連結,而且無法計算盈餘分析欄位。如需詳細資訊,請參閱線上的 MSDN Library 中 Project Server 程式設計(可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=191606&clcid=0x404)(可能為英文網頁) 的<伺服器上的專案排程>一節。