主從式架構
出自 MBA智库百科(https://wiki.mbalib.com/)
主從式架構 (Client–server model)
目錄 |
主從式架構或客戶端-伺服器(Client/Server)結構簡稱C/S結構,是一種網路架構,它把客戶端 (Client) (通常是一個採用圖形用戶界面的程式)與伺服器 (Server) 區分開來。每一個客戶端軟體的實例都可以向一個伺服器或應用程式伺服器發出請求。有很多不同類型的伺服器,例如文件伺服器、游戲伺服器等。
主從式架構通過不同的途徑應用於很多不同類型的應用程式,最常見就是目前在網際網路上用的網頁。例如,當你在維基百科閱讀文章時,你的電腦和網頁瀏覽器就被當做一個客戶端,同時,組成維基百科的電腦、資料庫和應用程式就被當做伺服器。當你的網頁瀏覽器向維基百科請求一個指定的文章時,維基百科伺服器從維基百科的資料庫中找出所有該文章需要的信息,結合成一個網頁,再發送回你的瀏覽器。
主從式架構意圖提供一個可縮放 (scalable)的架構,藉此網上的電腦或者處理過程是一個客戶端或者伺服器。伺服器軟體一般,但不是總是,運行在強大的專用商業電腦上。另一方面,客戶端一般運行在普通個人電腦或者工作站上。
服務端的特征:
- 被動的角色(從)。
- 等待來自用戶端的要求。
- 處理要求並傳回結果。
用戶端的特征:
- 主動的角色(主)。
- 發送要求。
- 等待直到收到回應。
伺服器可是有狀態或者無狀態的。無狀態的伺服器不會保留任何兩個請求之間的信息,有狀態伺服器會記住請求之間的信息。這些信息的作用域可以是全局的或者某個事務 (session)的。靜態 HTML 頁面伺服器是一個無狀態伺服器的例子,Apache Tomcat 是一個有狀態伺服器。伺服端與用戶端的互動經常使用循序圖描述,循序圖是 UML 中的一個標準。
另一種目前廣範使用的網路架構類型是點對點技術(peer-to-peer architecture),不同於主從式架構,網路上的每個使用端或程式的實體都擁有相同的等級,同時扮演用戶端與伺服器的角色。Peer-to-peer 常被縮寫成 P2P。