應(yīng)用程序有各種形狀、大小和用例。在我們依賴大量關(guān)鍵業(yè)務(wù)流程的世界中,應(yīng)用程序服務(wù)器是向用戶和 Web?客戶端提供應(yīng)用程序資源的高性能計(jì)算機(jī)。應(yīng)用程序服務(wù)器物理地或虛擬地位于存儲(chǔ)應(yīng)用程序數(shù)據(jù)的數(shù)據(jù)庫(kù)服務(wù)器和與客戶端通信的Web 服務(wù)器之間。應(yīng)用服務(wù)器和類似中間件是支持應(yīng)用程序開(kāi)發(fā)和交付的操作系統(tǒng)。無(wú)論是桌面應(yīng)用程序、移動(dòng)應(yīng)用程序還是 Web 應(yīng)用程序,應(yīng)用程序服務(wù)器在連接設(shè)備世界方面都發(fā)揮著關(guān)鍵作用。
應(yīng)用服務(wù)器在服務(wù)架構(gòu)中的作用
當(dāng)應(yīng)用程序用戶(無(wú)論是員工還是 Web 客戶端)請(qǐng)求訪問(wèn)應(yīng)用程序時(shí),應(yīng)用程序服務(wù)器通常會(huì)在后端執(zhí)行繁重的工作以存儲(chǔ)和處理動(dòng)態(tài)應(yīng)用程序請(qǐng)求。
為什么我們需要應(yīng)用服務(wù)器?
每天有數(shù)十億的 Web 客戶端發(fā)出 HTTP 請(qǐng)求,期望即時(shí)訪問(wèn)您命名的應(yīng)用程序。早上例行公事時(shí)的頂空,廣泛報(bào)告的谷歌文檔,咖啡休息時(shí)的推特,無(wú)論使用什么應(yīng)用程序,它都是從應(yīng)用程序服務(wù)器中提取出來(lái)并通過(guò)網(wǎng)絡(luò)服務(wù)器傳送的。Web 服務(wù)器負(fù)責(zé)為帶有 HTTP 響應(yīng)的 Web 客戶端 HTTP 請(qǐng)求提供服務(wù)。與應(yīng)用程序服務(wù)器不同,Web 服務(wù)器設(shè)計(jì)足夠輕巧,可以在保持安全性的同時(shí)處理多個(gè)應(yīng)用程序(或網(wǎng)站)的靜態(tài)數(shù)據(jù)請(qǐng)求。動(dòng)態(tài)請(qǐng)求(通常以應(yīng)用程序的形式)需要額外的幫助。
應(yīng)用服務(wù)器優(yōu)化流量并增加安全性
為了實(shí)現(xiàn)最佳的 Web 服務(wù)器敏捷性,管理來(lái)自 Web 客戶端的 HTTP 請(qǐng)求以及從多個(gè)網(wǎng)站傳遞或存儲(chǔ)資源是行不通的。應(yīng)用服務(wù)器通過(guò)專為處理動(dòng)態(tài) Web 內(nèi)容請(qǐng)求而構(gòu)建的高性能設(shè)計(jì)填補(bǔ)了這一空白。應(yīng)用服務(wù)器還提供程序冗余和額外的安全層。一旦部署在數(shù)據(jù)庫(kù)和 Web 服務(wù)器之間,跨網(wǎng)絡(luò)保留和復(fù)制應(yīng)用程序架構(gòu)的工作就更加可行。潛在的惡意 Web 通信與數(shù)據(jù)庫(kù)服務(wù)器中的皇冠寶石之間的額外步驟增加了額外的安全層。因?yàn)閼?yīng)用服務(wù)器可以處理業(yè)務(wù)邏輯請(qǐng)求,所以嘗試 SQL 注入也困難得多。組織可以使用位于其數(shù)據(jù)庫(kù)前面的反向代理服務(wù)器進(jìn)一步保護(hù)其數(shù)據(jù)。代理服務(wù)器和VPN可以在匿名和加密通信方面創(chuàng)造奇跡,以保護(hù)用戶和公司數(shù)據(jù)。
應(yīng)用服務(wù)器如何工作?
與當(dāng)今的大多數(shù)服務(wù)器一樣,應(yīng)用服務(wù)器包含安全、事務(wù)、服務(wù)、集群、診斷和數(shù)據(jù)庫(kù)等功能。應(yīng)用服務(wù)器的不同之處在于它們處理來(lái)自 Web 服務(wù)器的servlet 請(qǐng)求的能力。
我們展示了 Web 應(yīng)用程序服務(wù)器的一般流程:
- 客戶端打開(kāi)瀏覽器并請(qǐng)求訪問(wèn)網(wǎng)站
- Web 服務(wù)器接收 HTTP 請(qǐng)求并以所需的網(wǎng)頁(yè)進(jìn)行響應(yīng)
- Web 服務(wù)器處理靜態(tài)數(shù)據(jù)請(qǐng)求,但客戶端想要使用交互式工具
- 作為動(dòng)態(tài)數(shù)據(jù)請(qǐng)求,Web 服務(wù)器將請(qǐng)求傳送到應(yīng)用服務(wù)器
- 應(yīng)用服務(wù)器接收到 HTTP 請(qǐng)求并將其轉(zhuǎn)換為 servlet 請(qǐng)求
- servlet 到達(dá)數(shù)據(jù)庫(kù)服務(wù)器,應(yīng)用服務(wù)器收到 servlet 響應(yīng)
- 應(yīng)用服務(wù)器將 servlet 響應(yīng)轉(zhuǎn)換為 HTTP 格式以供客戶端訪問(wèn)
在收到來(lái)自 Web 服務(wù)器的 servlet 請(qǐng)求后,應(yīng)用程序服務(wù)器處理該請(qǐng)求并通過(guò)servlet response 響應(yīng)Web 服務(wù)器。由于應(yīng)用程序服務(wù)器主要處理業(yè)務(wù)邏輯請(qǐng)求,因此 Web 服務(wù)器轉(zhuǎn)換 servlet 響應(yīng)并傳遞用戶可訪問(wèn)的 HTTP 響應(yīng)。
2020 年代的應(yīng)用服務(wù)器
應(yīng)用服務(wù)器市場(chǎng)預(yù)計(jì)將以13.2%的復(fù)合年增長(zhǎng)率增長(zhǎng),從 2020 年的近 170 億美元增長(zhǎng)到 2026 年的 410 億美元。隨著互聯(lián)網(wǎng)連接和對(duì)應(yīng)用程序依賴的增加,持續(xù)增長(zhǎng)也就不足為奇了。向云平臺(tái)和服務(wù)的遷移以及物聯(lián)網(wǎng)設(shè)備的繁榮是現(xiàn)代應(yīng)用基礎(chǔ)設(shè)施和中間件市場(chǎng)的兩個(gè)關(guān)鍵驅(qū)動(dòng)因素。除此之外,還有一個(gè)轉(zhuǎn)向 BYOD 政策和依賴于增加的連接性和運(yùn)營(yíng)效率的遠(yuǎn)程勞動(dòng)力。這些功能強(qiáng)大的模塊的價(jià)值及其在為客戶提供應(yīng)用程序資源方面的作用是毋庸置疑的。
應(yīng)用服務(wù)器:Web 服務(wù)器最好的朋友
應(yīng)用服務(wù)器對(duì)于當(dāng)今的互連需求至關(guān)重要。企業(yè)最終受制于客戶利益,如果沒(méi)有與應(yīng)用程序資源的可擴(kuò)展且穩(wěn)定的連接,現(xiàn)代客戶就會(huì)四處奔波。應(yīng)用服務(wù)器扮演連接器的角色,也是網(wǎng)絡(luò)服務(wù)器最好的朋友。當(dāng) Web 服務(wù)器有一個(gè)難以承受的客戶端請(qǐng)求時(shí),應(yīng)用服務(wù)器可以使與動(dòng)態(tài) Web 內(nèi)容的無(wú)縫通信成為可能。