客戶伺服器模式
Client–server model
在計算客戶端伺服器模型是分散式應用程式結構,分區之間的一個任務或資源或服務,稱為伺服器供應商的工作量和服務請求者,稱為客戶端。常常在客戶和伺服器通信網路上的另一台計算機硬體,但客戶端和伺服器可以駐留在同一個系統。一個伺服器計算機是一台正在運行一個或多個伺服器計畫,與客戶分享他們的資源。一個客戶端不共享任何資源,但要求伺服器的內容或服務功能。因此,啟動客戶端與伺服器等待著傳入請求的通信會話。
說明
客戶機伺服器的特徵描述了應用程式中的合作關係。伺服器組件提供了一個功能或服務,以一個或多個客戶,這為開展此類服務的要求。
如電子郵件交換,Web訪問和資料庫訪問功能,是建立在客戶伺服器模式。用戶訪問銀行服務,從他們的電腦使用Web瀏覽器客戶端傳送請求到Web伺服器在銀行。該方案可能反過來請求轉發給它自己的資料庫客戶端程式,在另一家銀行的計算機傳送一個請求到資料庫伺服器檢索帳戶信息。該餘額返回到銀行的資料庫客戶端,這反過來又服務於它的回Web瀏覽器客戶端顯示結果給用戶。客戶機伺服器模式已成為網路計算的核心思想之一。許多商業應用程式被寫入今天使用客戶伺服器模型。所以,做網際網路的主要套用協定,如的HTTP,SMTP,Telnet和DNS的。
客戶端和伺服器之間的互動是經常使用序列圖描述。序列圖是在統一建模語言規範。
特定類型的客戶包括Web瀏覽器,電子郵件客戶端和線上聊天的客戶。
特定類型的伺服器包括Web伺服器,FTP伺服器,套用伺服器,資料庫伺服器,域名伺服器,郵件伺服器,檔案伺服器,列印伺服器和終端伺服器。大多數Web服務也是伺服器類型。
對比peer-to-peer結構
在peer-to-peer架構中,每個主機或程式的實例都可以同時作為一個客戶端和伺服器,每個人都有同等的責任和地位。
客戶端伺服器和點對點等網路架構在今天被廣泛使用。詳情可參閱比較集中(客戶端伺服器)和分散(對等網路)網路。
優勢
●在大多數情況下,客戶機伺服器體系結構允許的角色和責任的計算系統是其中幾個已知只有通過網路互相獨立的計算機分發。這將創建一個額外的優勢,這種體系結構:提高維護的簡便性。例如,它可以更換,維修,升級,甚至遷移伺服器,同時它的客戶都不知情,並保持該更改的影響。
●所有數據都存儲在伺服器上,通常比大多數客戶更大的安全控制。伺服器可以更好地控制訪問和資源,以保證只有那些具有適當許可權的用戶可以訪問和更改數據。
●由於數據的集中存儲,對數據的更新是更容易管理相比,一個P2P模式。在後者,數據更新可能需要分發和套用到每個網路中的對等,既費時又容易出錯,因為可以有成千上萬甚至數百萬的同齡人。
●許多成熟的客戶端伺服器技術已經可以方便的目的是確保全全,用戶界面友好,易用性。
●具有不同功能的多個不同的客戶它的功能。
劣勢
●作為客戶端同時請求數給定的伺服器的增加,伺服器可以成為重載。對照到一個P2P網路,在其總頻寬實際上增加為節點的添加,由於P2P網路的總頻寬可以大致計算作為該網路中每個節點的頻寬的總和。
●客戶機伺服器模式缺乏一個良好的P2P網路的魯棒性。在客戶端伺服器,如果一個重要的伺服器失敗,客戶的要求不能得到滿足。在P2P網路,資源通常分布在許多節點。即使一個或多個節點出發,放棄一個下載檔案,例如,剩下的節點應該還是有必要來完成下載的數據。
特徵
主從式架構意圖提供一個可縮放 (scalable)的架構,藉此網上的計算機或者處理過程是一個客戶端或者伺服器。伺服器軟體一般,但不是總是,運行在強大的專用商業計算機上。另一方面,客戶端一般運行在普通個人電腦或者工作站上。
服務端的特徵:
•被動的角色(從)。
•等待來自用戶端的要求。
•處理要求並傳回結果。
客戶端特徵:
•主動的角色(主)。
•傳送要求。
•等待直到收到回應。
伺服器可是有狀態或者無狀態的。無狀態的伺服器不會保留任何兩個請求之間的信息,有狀態伺服器會記住請求之間的信息。這些信息的作用域可以是全局的或者某個事務 (session)的。靜態 HTML 頁面伺服器是一個無狀態伺服器的例子,Apache Tomcat 是一個有狀態伺服器。
伺服器端與用戶端的互動經常使用循序圖描述,循序圖是UML中的一個標準。