|
SharePoint 2010認證考試出來之后,去把幾個考試都考了一遍:70-573、70-576、70-667、70-668。如果你正有計劃也去參加這幾門認證考試,我可以提供的建議是:不要在11:30開始考70-668,否則到12:00吃飯的時候,你很可能還沒有答完題目。70-668包含不少場景題,也就是給一個場景,包含各種Business Requirements、Technical Requirements、Recovery Requirements之類,然后基于此場景選出最佳方案。閱讀并理解場景會花費不少時間。
嗯,言歸正傳。如果你曾經使用過SharePoint 2007,一定知道在SharePoint 2007中有一個叫做“共享服務提供程序”(Shared Services Provider,簡稱SSP)的東東。SharePoint 2010對SSP架構進行了優化,設計了一個更靈活、更有擴展性的架構:服務應用程序(Service Application)架構。這篇博文將圍繞Service Application,仔細講講這個東東。由于服務應用程序是SharePoint 2010一個非?;A的架構,無論你是Developer,或是IT Pro,都需要對它有足夠的了解。
“服務”這個詞是一個比較通用的詞匯,它可以用在很多場合,在每個場合中,它的含義可能都不會相同。簡單來說,當我們使用服務這個詞匯的時候,通常是用來描述某個在后臺運行的,可以進行某種運算,或是提供某些數據,能夠讓它的使用者調用的一組代碼。服務的概念與應用程序是相對的,我們通常使用應用程序這個詞匯,來描述一個擁有用戶界面,用戶能在這個界面上進行諸如點擊、瀏覽等操作,大部分情況下可能是運行在客戶端計算機里面的一組代碼。一個服務的使用者可能是另一個服務或一個應用程序。
上面是對服務這個通用詞匯的解釋,這個解釋在大部分場景中都是適用的。接下來,讓我們來了解SharePoint 2010系統中的服務。
SharePoint 2010將其所包含的用來提供某種功能的后端組件,也稱為服務。例如,SharePoint 2010包含了Excel Services服務,這是一個能將Excel文檔的內容渲染成HTML頁面的后臺組件。SharePoint 2010的服務運行在SharePoint服務器場中的服務器上。每臺服務器,都可能運行了一個或多個SharePoint服務。大部分SharePoint服務,也都可以運行在一個或多個服務器上。
大部分的SharePoint 2010服務,都是運行在服務器場中的應用服務器上,但有些服務也是可以運行在前端Web服務器上的。實際上,SharePoint 2010系統中有一個名為“Microsoft SharePoint Foundation Web 應用程序”的服務,專門用來描述處理用戶HTTP請求的前端Web服務,凡是啟用了這個服務的物理服務器,就被SharePoint 2010系統識別為前端Web服務器。另外,還有一個名為“Microsoft SharePoint Foundation 數據庫”的服務,是專門用來標識SQL Server數據庫服務的,它并不代表任何實質上的SharePoint 2010服務,僅僅用來標識在哪些服務器上運行著SQL Server數據庫。
在SharePoint 2010管理中心的“服務器上的服務”頁面中,管理員可以查看服務器場中的每臺服務器上,運行了哪些服務。管理員可以通過這個頁面,在每臺服務器上啟動或停止某個服務。如下圖所示。
有一部分SharePoint 2010服務,使用了SharePoint 2010的服務應用程序框架(Service Application Framework)來構建。如果一個服務基于服務應用程序框架,那么這個服務可以包含多個可配置服務器場實例(Configured Farm-Scoped Instantiation,簡稱CFSI)。每一個CFSI被稱為一個服務應用程序(Service Application)。服務應用程序運行在服務器場中的應用服務器上,一個服務應用程序可以被服務器場中的多個網站所使用,有一些服務應用程序甚至可以被跨服務器場調用。
為什么在SharePoint 2010中要設計出服務應用程序這套架構呢?其主要原因就在于,在一個大型的企業級系統中,系統中的各種后端服務,必須從網站中解耦了出來。有一些功能,是每個網站都必須要使用,例如,每個網站都需要具有搜索功能,讓網站的用戶能夠搜索內容和數據。如果搜索功能與網站直接耦合在一起,那么每個網站就都會有自己的搜索服務。這不僅增加了整個系統的設計難度,還會造成不必要的系統資源浪費。所以,必然設計出要有某種架構,能將一組所有網站都需要用到的公用服務,從網站中解耦出來。系統中所有的公用服務,都由一個集中的“資源池”來進行提供,而網站只需要存儲其自己的數據和內容。當網站需要為網站用戶提供某項功能時,網站可以直接調用由集中的服務“資源池”所提供的相應服務。有了這樣的架構,不但減少了整體的資源消耗,而且可以讓開發人員更容易的向整個系統中添加新的服務。
在Office SharePoint Server 2007中,這個架構被設計成共享服務提供程序(Shared Services Provider,簡稱為SSP)。Office SharePoint Server 2007中的共享服務,包括企業級搜索、業務數據目錄(Business Data Catalog)、Excel Services、用戶配置文件(User Profile)等等,都由共享服務提供程序,提供給各個SharePoint網站。值得一提的是,雖然在大部分Office SharePoint Server 2007系統中,只需要為整個系統創建一個共享服務提供程序,但如果有需要,管理員是可以在系統中創建多個共享服務提供程序的。每個共享服務提供程序可以分別提供不同的服務,或是為不同的網站提供服務。
下圖是取自微軟公司《Office SharePoint Server 2007 的規劃和體系結構》在線文檔中的一個共享服務提供程序架構示意圖。從圖中可以看到,整個服務器場中包含了兩個共享服務提供程序,其中第一個為“Web應用程序1”和“Web應用程序2”所包含的SharePoint網站提供服務,另外一個為“Web應用程序3”所包含的SharePoint網站提供服務。
只所以在一個服務器場中創建兩個(或更多)共享服務提供程序,可能是出于性能的考慮,也可能是出于功能分割的考慮。比如,在上圖所示的服務器場中,有可能“Web應用程序3”所包含的SharePoint網站并不需要所有的共享服務,它們可能僅僅需要Excel Services服務,而不需要其他的諸如搜索、用戶配置文件等服務。所以,在服務器場中新建一個單獨的共享服務提供程序,配置此共享服務提供程序僅僅提供Excel Services服務,然后將“Web應用程序3”與這個共享服務提供程序關聯。
在Office SharePoint Server 2007中,共享服務提供程序是與Web應用程序進行關聯的。一個共享服務提供程序可以關聯到多個Web應用程序,也就是說,它可以為多個Web應用程序所包含的所有網站提供服務。但一個Web應用程序不能和多個共享服務提供程序關聯。比如在上圖中,第一個共享服務提供程序可以與“Web應用程序1”和“Web應用程序2”關聯,但“Web應用程序3”是不能同時與服務器場中的兩個共享服務提供程序進行關聯的。
NET技術:SharePoint 2010 服務應用程序(Service Application)架構,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。