客戶端-服務器架構

分布式应用程序结构计算

客戶端-服務器架構(英語:Client-server model),也稱C/S架構ㄗㄨㄥˋ式架構[1],是一種將客戶端服務器分割開來的分布式架構。[2]每一個客戶端軟件的實例都可以向一個服務器或應用程序服務器發出請求。有很多不同類型的服務器,例如文件服務器遊戲服務器等。

客戶端通過互聯網與服務器交互的圖例

主從式架構通過不同的途徑應用於很多不同類型的應用程序,最常見的用途為萬維網上的網頁。例如,當在維基百科閱讀文章時,電腦和網頁瀏覽器即為客戶端;同時,組成維基百科的電腦、數據庫和應用程序即為服務器。當網頁瀏覽器向維基百科請求指定的頁面時,維基百科服務器從維基百科的數據庫中找出所有該頁面需要的信息,結合成一個網頁,再發送回瀏覽器。

特徵

主從式架構意圖提供一個可伸縮(英語:scalable)的架構,藉此網上的計算機或者處理過程是一個客戶端或者服務器。服務器軟件一般,但不總是,運行在強大的專用商業計算機上。另一方面,客戶端一般運行在普通個人電腦或者工作站上。

服務端的特徵:

  • 被動的角色(從)。
  • 等待來自用戶端的請求。
  • 處理請求並傳回結果。

用戶端的特徵:

  • 主動的角色(主)。
  • 發送請求。
  • 等待直到收到響應。

服務器可以是有狀態或者無狀態的。無狀態的服務器不會保留任何兩個請求之間的信息,有狀態服務器會記住請求之間的信息。這些信息的作用域可以是全局的或者某個事務 (session)的。像Apache HTTP等只提供靜態HTML頁面的網頁服務器是一個無狀態服務器的例子,像Apache Tomcat網頁應用服務器是一個有狀態服務器。

伺服端與用戶端的互動經常使用循序圖描述,循序圖是UML中的一個標準。

與點對點技術的比較

另一種目前廣範使用的網路架構類型是點對點架構(P2P),不同於主從式架構,網路上的每個使用端或程式的實體都擁有相同的等級,同時扮演用戶端與伺服器的角色。

參見

其他網絡架構

參考文獻

  1. ^ 辭典檢視 [主從式架構 : ㄓㄨˇ ㄗㄨㄥˋ ㄕˋ ㄐㄧㄚˋ ㄍㄡˋ] - 教育部《重編國語辭典修訂本》. 中華民國教育部. (原始內容存檔於2022-12-04). 
  2. ^ Distributed Application Architecture (PDF). Sun Microsystem. [2009-06-16]. (原始內容 (PDF)存檔於2011-04-06).