Sharepoint学习笔记 –架构系列—09 Sharepoint的服务器端对象模型(Server Object Model) 1.物理对象层次结构
關于Sharepoint的服務器端對象模型的內容很龐大很繁雜,而事實上,我們在這里只把最關鍵的對象梳理一下,我們會從三個體系來大致描述它們。
? 這三個體系分別是:
?? 1、物理對象層次結構(Physical Objects Hierarchy)
?? 2、內容層次結構(Content Hierarchy)
?? 3、服務層次結構(Services Hierarchy)。
? 希望通過我們的大致描述能讓你對Sharepoint的服務器端對象模型能有一個大致的了解。下面進入主題。
?這里先看看物理對象層次結構(Physical Objects Hierarchy)
? 物理對象層次結構中的類所表示的實體既可以是實際物理對象(SPFarm, SPServer),也可以是根據上下文(Context)被視為物理對象或非物理對象的對象(SPFolder,SPFile)。
? 下圖顯示了該層次結構中的四個主要類。
?
???它們中最重要的兩個類就是Servers與Farms。
???Sharepoint Fundation Farm以及它的配置數據庫(configuration database)就是由SFarm類來表示的。
?? Sharepoint的服務器場(Farm)是一個物理服務器集群,包括一個或多個前端服務器(Front-End Web Server),零個或更多的應用服務器(Application Server)以及SQL服務器,SQL服務器可能被寄存在專用的數據庫服務器(dedicated database Server,雖然在這種專用數據庫服務器上并不安裝Sharepoint,但它們仍是Sharepoint場的組成成員,我們可以在Sharepoint場的管理中心界面上看到它們)上或者在其中一個應用服務器上(如:在一臺前端服務器上)。 (嚴格的講,Windows SharePoint Services 3.0總是部署在場中,雖然有可能它是整個部署環境(場)中唯一的一臺計算機。
???SharePoint Foundation 場中的物理服務器具有 IP 地址和角色。以下是?SharePoint Foundation 中的服務器可能具有的三種(或四種)角色:
??? 1、單一服務器(Single Server):從名稱的含義可以得知,當且僅當服務器是場中的唯一服務器時,服務器將具有此角色。
??? 2、前端服務器(Front-End Web Server):多臺服務器都可以具有此角色。前端服務器接受來自客戶端計算機的 HTTP 請求。由于前端服務器提供響應這些請求的內容,因此前端服務器上必須運行內容發布 Web 應用程序。
??? 3、應用程序服務器(Application Server):任何未用作前端服務器或單一服務器的 SharePoint Foundation 服務器都具有應用程序服務器角色(有一種例外情況:見4)。這些服務器運行的是必須從前端服務器卸載的專用 SharePoint Foundation Web 服務或 Windows 服務,這是因為它們需要大量使用服務器的處理器、硬盤或其他硬件資源。SharePoint Foundation 附帶了經常卸載到應用程序服務器的一些服務,開發人員可以使用 SharePoint Foundation 對象模型來開發其他服務,并將這些服務作為 SharePoint Foundation 部署的一部分運行。給定的 Web 服務或 Windows 服務可以在多臺應用程序服務器上運行。例如,搜索服務可以在多臺服務器上運行。每臺服務器均具有該服務的單獨實例
??? 4、專用數據庫服務器(Dedicated Database Server):上面提到的例外情況是指承載 SQL Server 數據庫的服務器。此數據庫可以位于任何應用程序服務器上,但通常情況下,如果 SharePoint Foundation 部署的規模大到需要多個服務器場,則此數據庫將需要自己的服務器(可能是一個服務器鏡像群集)。當此數據庫位于它自己的專用服務器(或群集)上時,甚至不會在此服務器上安裝 SharePoint Foundation。場的配置數據庫中將標識此服務器,并且此服務器會讓場以為它正在運行一個稱作"Windows SharePoint Services 數據庫服務"的服務,而實際上,此服務只是數據庫服務器上運行的 SQL Server 服務的別名。此專用服務器上通常不會安裝 SharePoint Foundation,并且此專用服務器實際上不具有場中的角色。
?
關于場的負載平衡問題:
??? 如果Sharepoint場有多臺前端Web服務器,那么它們通常都需要負載平衡的(load-balance) 支持。你可以使用硬件支持或軟件支持的負載平衡解決方案(包括Windows Server2008內置的網絡負載平衡(NLB:Network Load Balancing)方案)。你需要清楚的是:Sharepoint自身并不支持負載平衡解決方案。
??? 當使用了負載平衡方案后,系統將會把客戶端計算機的傳入網絡連接指引到場中當時最不繁忙的那一臺前端計算機。這樣,執行服務的客戶端連接的工作負荷將分攤到多臺服務器,進而分攤到多個處理器、硬盤驅動器和其他外圍設備,從而讓客戶端獲得更好的性能。此外,這樣做還有這樣一個好處:如果某一臺服務器將發生崩潰,則其他服務器還可以繼續處理所有傳入連接。此時,服務的速度可能會減慢,但服務不會完全停止。
??? 由于場在外部網絡中作為單一服務器出現,如果有客戶端計算機想要訪問場中的某個資源(如: 特定應用程序、文件、數據庫或網頁),這個客戶端計算機不在乎(通常是不知道)它們將與場中的哪一臺物理服務器連接,因此必須對客戶端可能會連接到的所有計算機進行相同的配置。
??? 完成相同配置的最簡單方法是,在所有計算機上安裝相同的應用程序并將任何所需文件、數據庫和網頁的副本放置在所有計算機上(使用相同的目錄路徑)。不過,由于此方法要求將客戶端對文件、數據庫或服務器上保留的任何其他項所做的每個更改傳播到所有其他服務器,因此幾乎不可行。若要確保服務器保持同步,場必須在傳播過程中阻止傳入連接。由所有傳播導致的性能降低會使場應提供的優勢不再存在。實際上,甚至于連適度使用的 SharePoint Foundation 部署也會陷于幾乎不停地傳播更改的狀態。 為了避免這些問題,可以為場中的某些服務器分配特殊任務,如承載數據庫。雖然客戶端連接到的前端服務器不會將數據庫復制到它們上面,但仍需對這些服務器進行相同的配置,這是因為這些服務器將使用相同的連接字符串和網絡地址來訪問數據庫。
?
關于SPFarm類
??SPFarm類繼承自SPPersistedObject,它代表一臺或多臺物理服務器組成的場,因此它被包含在物理層次中。
??但是它同樣可以被認為是內容層次結構(Content Hierarchy)的最頂級; 例如,所有Windows SharePoint Services 場的(非配置)內容都支持備份和恢復。
??在Windows SharePoint Services 3.0中,SPFarm類也可以被視作和服務器場相關的配置數據庫的代表,因為Windows SharePoint Services 3.0沒有代表配置數據庫的類。例如,SPFarm對象的?? DisplayName屬性也是配置數據庫的名字。?
??SPFarm對象有三個主要的子類型: SPServer、SPService和SPSolution。
??SPFarm從SPPersistedObject繼承,意味著它的對象(只有一個)實例保存在配置數據庫中。?
??SPFarm的靜態成員能夠建立服務器場和返回本地或遠程的服務器場。
??SPFarm類有許多成員可以用來開發管理功能,一些更重要的成員可以用來幫助管理,如下:
- Backup and restoration of the farm(備份和還原服務器場)
- Upgrades of the farm (升級服務器場)
- Migration of (moving) the farm(升級服務器場)
- Error reporting(錯誤報告)
- Caching (緩存)
下面是 SharePoint Foundation 場(Farm)的一些特征:
- 每個 SharePoint Foundation 場都具有一個配置數據庫(configuration database),此數據庫包含有關場、場的服務器和場的其他重要子類的信息。
- 場是對象模型的一個級別,可以在此級別安裝 SharePoint Foundation 解決方案,也可以從此級別將解決方案部署到服務器和 SharePoint Foundation Web 應用程序(web application)。
- 場是可從中激活 SharePoint Foundation 功能(feature)的四個級別之一。其他三個級別為網站、網站集和 Web 應用程序。
關于SPServer類
??? SPServer類在Windows SharePoint Services 場中代表一臺物理服務器。
??? 除許多被繼承的成員之外,SPServer類有個Address屬性,這個屬性保存了服務器的IP地址。而SPServer類的Role屬性用來分辨服務器角色。 如果只有一臺服務器,它的Role為SingleServer。
??? 如果有超過一臺的服務器,前端服務器的Role為WebFrontEnd,并且幾乎其他所有的服務器的Role為Application。
??? 然而,實際上寄存Windows SharePoint Services內容服務器的服務器Role屬性值為Invalid。因為,這個服務器只運行一個Windows SharePoint service-數據庫服務(一個Windows服務)-這個數據庫服務實際上是SQL Server Windows service的別名,該SQL Server Windows service并不是Windows SharePoint service的一部分。 因此,它實際上并不運行任何Windows SharePoint service代碼,并且它對應用程序角色并不適用。
??? SPServer類還有一個ServerInstances 屬性,可以返回當前服務器上所有的Windows services和Web services的實例.
??? SPServer從SPPersistedObject繼承,SPPersistedObject的實例都保存在配置數據庫中
總結
以上是生活随笔為你收集整理的Sharepoint学习笔记 –架构系列—09 Sharepoint的服务器端对象模型(Server Object Model) 1.物理对象层次结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刚买的理财可以赎回吗?这几种情况可以!
- 下一篇: 【转】注册Azure AD 应用程序