什么是服務(wù)器?服務(wù)器是通過網(wǎng)絡(luò)向其他計(jì)算機(jī)(稱為客戶端)提供資源、數(shù)據(jù)、服務(wù)或程序的計(jì)算機(jī)或系統(tǒng)。理論上,每當(dāng)計(jì)算機(jī)與客戶端計(jì)算機(jī)共享資源時(shí),它們就被視為服務(wù)器。服務(wù)器有多種類型,包括 Web 服務(wù)器、郵件服務(wù)器和虛擬服務(wù)器。單個(gè)系統(tǒng)可以提供資源并同時(shí)從另一個(gè)系統(tǒng)使用它們。這意味著設(shè)備可以同時(shí)作為服務(wù)器和客戶端。
一些最早的服務(wù)器是大型計(jì)算機(jī)或小型計(jì)算機(jī)。小型機(jī)比大型機(jī)小得多,因此得名。然而,隨著技術(shù)的進(jìn)步,它們最終變得比臺(tái)式計(jì)算機(jī)大得多,這使得微型計(jì)算機(jī)這個(gè)詞有些滑稽。
最初,此類服務(wù)器連接到稱為終端的客戶端,這些客戶端不進(jìn)行任何實(shí)際計(jì)算。這些終端稱為啞終端,其存在只是為了通過鍵盤或讀卡器接受輸入并將任何計(jì)算的結(jié)果返回到顯示屏或打印機(jī)。實(shí)際計(jì)算是在服務(wù)器上完成的。
后來,服務(wù)器通常是單一的、功能強(qiáng)大的計(jì)算機(jī),通過網(wǎng)絡(luò)連接到一組功能較弱的客戶端計(jì)算機(jī)。這種網(wǎng)絡(luò)架構(gòu)通常被稱為客戶端-服務(wù)器模型,其中客戶端計(jì)算機(jī)和服務(wù)器都擁有計(jì)算能力,但某些任務(wù)委托給服務(wù)器。在以前的計(jì)算模型中,例如大型機(jī)-終端模型,大型機(jī)確實(shí)充當(dāng)服務(wù)器,即使它沒有被稱為該名稱。
隨著技術(shù)的發(fā)展,服務(wù)器的定義也隨之發(fā)展。如今,服務(wù)器可能只不過是在一個(gè)或多個(gè)物理計(jì)算設(shè)備上運(yùn)行的軟件。此類服務(wù)器通常稱為虛擬服務(wù)器。最初,虛擬服務(wù)器用于增加單個(gè)硬件服務(wù)器可以執(zhí)行的服務(wù)器功能數(shù)量。今天,虛擬服務(wù)器通常由第三方在互聯(lián)網(wǎng)上的硬件上運(yùn)行,這種安排稱為云計(jì)算。
服務(wù)器可以設(shè)計(jì)為執(zhí)行單個(gè)任務(wù),例如郵件服務(wù)器,它接受和存儲(chǔ)電子郵件,然后將其提供給請求的客戶端。服務(wù)器還可以執(zhí)行多項(xiàng)任務(wù),例如文件和打印服務(wù)器,它們既存儲(chǔ)文件又接受來自客戶端的打印作業(yè),然后將它們發(fā)送到網(wǎng)絡(luò)連接的打印機(jī)。
服務(wù)器如何工作?
要用作服務(wù)器,必須將設(shè)備配置為偵聽來自網(wǎng)絡(luò)連接上的客戶端的請求。此功能可以作為操作系統(tǒng)的一部分作為已安裝的應(yīng)用程序、角色或兩者的組合存在。例如,Microsoft 的 Windows Server 操作系統(tǒng)提供了偵聽和響應(yīng)客戶端請求的功能。另外安裝的角色或服務(wù)增加了服務(wù)器可以響應(yīng)的客戶端請求類型。在另一個(gè)示例中,Apache Web 服務(wù)器通過安裝在操作系統(tǒng)之上的附加應(yīng)用程序 Apache 響應(yīng) Internet 瀏覽器請求。
當(dāng)客戶端需要來自服務(wù)器的數(shù)據(jù)或功能時(shí),它會(huì)通過網(wǎng)絡(luò)發(fā)送請求。服務(wù)器接收此請求并以適當(dāng)?shù)男畔⑦M(jìn)行響應(yīng)。這是客戶端-服務(wù)器網(wǎng)絡(luò)的請求和響應(yīng)模型,也稱為調(diào)用和響應(yīng)模型。作為單個(gè)請求和響應(yīng)的一部分,服務(wù)器通常會(huì)執(zhí)行許多附加任務(wù),包括驗(yàn)證請求者的身份、確保客戶端有權(quán)訪問所請求的數(shù)據(jù)或資源,以及正確格式化或以預(yù)期的方式返回所需的響應(yīng)大大地。
服務(wù)器的結(jié)構(gòu)
服務(wù)器的概念幾乎與網(wǎng)絡(luò)本身一樣古老。畢竟,網(wǎng)絡(luò)的意義在于允許一臺(tái)計(jì)算機(jī)與另一臺(tái)計(jì)算機(jī)通信并分發(fā)工作或資源。從那時(shí)起,計(jì)算不斷發(fā)展,產(chǎn)生了多種類型的服務(wù)器結(jié)構(gòu)和硬件。
- 大型機(jī)或小型機(jī) (AS/400):可以說,最初的服務(wù)器、大型機(jī)以及后來的小型機(jī)幾乎處理了所有計(jì)算任務(wù),除了通過屏幕和鍵盤與用戶進(jìn)行交互,這些任務(wù)留給客戶端系統(tǒng)。
- 電腦硬件服務(wù)器:服務(wù)器的下一個(gè)主要浪潮包括基于計(jì)算機(jī)的服務(wù)器。在許多方面,這些服務(wù)器只不過是更大、更強(qiáng)大的臺(tái)式計(jì)算機(jī)。與大多數(shù)客戶端計(jì)算機(jī)相比,此類服務(wù)器通常更昂貴,并且擁有更多的內(nèi)存和磁盤空間。每臺(tái)服務(wù)器仍然是一個(gè)獨(dú)立的單元,具有自己的主板、處理器、內(nèi)存、磁盤驅(qū)動(dòng)器和電源。像這樣的服務(wù)器通常存放在稱為服務(wù)器機(jī)房的空調(diào)房間內(nèi),然后用螺栓固定在機(jī)架中,以便更好地存儲(chǔ)和訪問。
- 刀片服務(wù)器:最初的計(jì)算機(jī)服務(wù)器硬件很大,存放在可承載數(shù)百磅的機(jī)架中。然而,隨著時(shí)間的推移,連接硬件的更快方法導(dǎo)致部分服務(wù)器從單個(gè)獨(dú)立設(shè)備中提取出來。通過移除硬盤驅(qū)動(dòng)器、消除內(nèi)部冷卻以及計(jì)算部件的持續(xù)小型化,服務(wù)器最終被縮減為單一的瘦服務(wù)器,稱為刀片服務(wù)器。雖然仍然存儲(chǔ)在服務(wù)器機(jī)房的機(jī)架中,但刀片服務(wù)器更小,更容易更換。
- 組合服務(wù)器:甚至在虛擬化之前,服務(wù)器就是從安裝在硬件機(jī)器上的單個(gè)服務(wù)器操作系統(tǒng)的標(biāo)準(zhǔn)模型中提取出來的。諸如網(wǎng)絡(luò)附加存儲(chǔ)之類的技術(shù)消除了服務(wù)器擁有自己存儲(chǔ)的需要。其他技術(shù),如鏡像和集群,使硬件能夠組合成更大、更強(qiáng)大的服務(wù)器。這樣的服務(wù)器可能由多個(gè)刀片、多個(gè)連接的存儲(chǔ)設(shè)備和一個(gè)外部電源組成,并且可以在服務(wù)器仍在運(yùn)行時(shí)將每個(gè)部件更換為另一個(gè)。
- 虛擬服務(wù)器:虛擬服務(wù)器仍然需要硬件,但該硬件現(xiàn)在運(yùn)行一個(gè)不同的進(jìn)程,稱為管理程序。在某些情況下,例如 Microsoft 的 Hyper-V,完整的操作系統(tǒng)會(huì)繼續(xù)在硬件本身上運(yùn)行。在其他情況下,所謂的裸機(jī)管理程序可以直接安裝到服務(wù)器硬件上。在這兩種情況下,硬件本身通常分布在刀片服務(wù)器、網(wǎng)絡(luò)存儲(chǔ)和電源陣列中,導(dǎo)致無法分辨單個(gè)服務(wù)器在哪里結(jié)束和另一個(gè)服務(wù)器開始的環(huán)境。