更新時(shí)間:2022-10-27 09:09:31 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1607次
中間件是用于彌合應(yīng)用程序與其他工具或數(shù)據(jù)庫(kù)之間差距的軟件。中間件位于操作系統(tǒng)和在其上運(yùn)行的應(yīng)用程序之間。它是一種有效的軟件,它提供了一種應(yīng)用程序之間的通信和數(shù)據(jù)管理方法,否則這些應(yīng)用程序?qū)o(wú)法交換數(shù)據(jù)——例如使用軟件工具和數(shù)據(jù)庫(kù)。

中間件出現(xiàn)在很多地方;但是,組織和開(kāi)發(fā)人員會(huì)專門(mén)使用中間件來(lái)更有效地構(gòu)建應(yīng)用程序。使用多云和容器化環(huán)境的組織通常還會(huì)使用中間件作為開(kāi)發(fā)和擴(kuò)展應(yīng)用程序的更具成本效益的方式。
中間件活動(dòng)的一些示例包括處理數(shù)據(jù)和API管理、身份驗(yàn)證和消息傳遞服務(wù)。
中間件這個(gè)名稱源于這樣一個(gè)事實(shí),即它是位于前端客戶端請(qǐng)求和所請(qǐng)求的后端資源之間的軟件。
客戶端可以通過(guò)基于網(wǎng)絡(luò)的交互發(fā)出請(qǐng)求。該客戶端通常是駐留在前端的應(yīng)用程序,這是用戶與軟件交互的地方。數(shù)據(jù)庫(kù)、消息隊(duì)列、 NoSQL 數(shù)據(jù)存儲(chǔ) 和文件服務(wù)器等資源通常被稱為后端的一部分。中間件將位于這些端點(diǎn)之間。
基于網(wǎng)絡(luò)的請(qǐng)求嘗試與后端數(shù)據(jù)交互。這些數(shù)據(jù)可能像要顯示的圖像或要播放的視頻一樣簡(jiǎn)單,也可能像銀行交易歷史一樣復(fù)雜。
請(qǐng)求的數(shù)據(jù)可以采用多種不同的形式,并且可以以多種方式存儲(chǔ),例如來(lái)自文件服務(wù)器、從消息隊(duì)列中獲取或保存在數(shù)據(jù)庫(kù)中。中間件的作用是啟用和簡(jiǎn)化對(duì)這些后端資源的訪問(wèn)。中間件程序通常會(huì)為應(yīng)用程序提供消息傳遞服務(wù)以傳輸數(shù)據(jù),例如簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議 ( SOAP )、表示狀態(tài)傳輸 ( REST ) 或 JavaScript 對(duì)象表示法 ( JSON )。
中間件提供多種功能。首先,它管理與各種后端資源的連接。中間件組件可能會(huì)創(chuàng)建一個(gè)連接池,以提供對(duì)流行后端數(shù)據(jù)庫(kù)的快速高效訪問(wèn)。它還可以創(chuàng)建與消息隊(duì)列和主題的連接。此外,一個(gè)中間件軟件可以管理與基于云的資源的連接,例如 Amazon Simple Storage Service ( Amazon S3 )。
其次,中間件軟件具有根據(jù)客戶端請(qǐng)求實(shí)現(xiàn)邏輯的能力。例如,中間件組件可能會(huì)識(shí)別出發(fā)出給定請(qǐng)求的客戶端瀏覽器將語(yǔ)言標(biāo)頭設(shè)置為英語(yǔ),因此,它對(duì)后端的查詢可能會(huì)被調(diào)整為只返回基于英語(yǔ)的結(jié)果?;蛘撸苍S服務(wù)器可以根據(jù)其IP 地址識(shí)別發(fā)出請(qǐng)求的客戶端的地理位置, 并將數(shù)據(jù)返回給優(yōu)先考慮附近結(jié)果的客戶端。接受用戶請(qǐng)求、執(zhí)行邏輯然后自定義結(jié)果的能力是中間件軟件執(zhí)行的一項(xiàng)重要工作。
第三,中間件在并發(fā)處理、 負(fù)載均衡 和事務(wù)管理中起著重要的作用 。中間件軟件通常具有垂直和水平擴(kuò)展的能力,以幫助將傳入的客戶端請(qǐng)求分發(fā)到多個(gè)服務(wù)器、虛擬機(jī)或云的可用區(qū)。中間件軟件還可以處理并發(fā)和事務(wù)管理問(wèn)題,例如處理兩個(gè)或多個(gè)客戶端嘗試同時(shí)訪問(wèn)或更新給定后端資源時(shí)出現(xiàn)的問(wèn)題。
最后,中間件在保護(hù)對(duì)后端資源的訪問(wèn)方面發(fā)揮著重要作用。中間件軟件具備挑戰(zhàn)客戶端的能力;它需要安全連接(使用 SSL等技術(shù) )和身份驗(yàn)證 (使用用戶名和密碼組合或 數(shù)字證書(shū))。然后使用此安全信息檢查發(fā)出請(qǐng)求的客戶端是否有權(quán)訪問(wèn)相關(guān)數(shù)據(jù)。如果確認(rèn)了權(quán)限,則使用安全和加密的連接將數(shù)據(jù)從中間件服務(wù)器發(fā)送到客戶端。
一般來(lái)說(shuō),Gartner 和 Forrester Research 等 IT 行業(yè)分析師將中間件分為兩類:企業(yè)應(yīng)用程序集成中間件和平臺(tái)中間件。
企業(yè)應(yīng)用程序集成 中間件使程序員能夠創(chuàng)建業(yè)務(wù)應(yīng)用程序,而無(wú)需為每個(gè)新應(yīng)用程序定制集成。在這種情況下,中間件幫助軟件和服務(wù)組件協(xié)同工作,為數(shù)據(jù)一致性和多企業(yè)或 B2B 集成提供一層功能。
通常,集成中間件提供消息傳遞服務(wù),因此不同的應(yīng)用程序可以使用 SOAP、Web 服務(wù)、REST 或 JSON 等消息傳遞框架進(jìn)行通信。此類別中使用的其他中間件技術(shù)包括對(duì)象請(qǐng)求代理 (ORB) 和 XML 等數(shù)據(jù)表示技術(shù)。
企業(yè)可以購(gòu)買(mǎi)單獨(dú)的集成中間件產(chǎn)品、本地產(chǎn)品或基于云的應(yīng)用集成套件。
平臺(tái)中間件通過(guò)為應(yīng)用程序邏輯提供運(yùn)行時(shí) 托管環(huán)境(例如容器)來(lái)支持軟件開(kāi)發(fā)和交付 。它的主要組件是內(nèi)存和企業(yè)應(yīng)用程序服務(wù)器,以及 Web 服務(wù)器和內(nèi)容管理。平臺(tái)中間件包括支持應(yīng)用程序開(kāi)發(fā)和交付的工具,例如 Web 服務(wù)器、應(yīng)用程序服務(wù)器和內(nèi)容管理系統(tǒng)。
通常,嵌入式或外部通信平臺(tái)中間件將允許不同的通信工具一起工作。這些通信工具支持應(yīng)用程序和服務(wù)交互。資源管理服務(wù),例如 Microsoft Azure 資源管理器,在運(yùn)行時(shí)托管應(yīng)用程序邏輯——平臺(tái)中間件中的另一個(gè)關(guān)鍵功能。其他組件包括可信平臺(tái)模塊 ( TPM ) 和內(nèi)存數(shù)據(jù)網(wǎng)格 ( IMDG )。
平臺(tái)中間件產(chǎn)品也可用作特定的本地或云服務(wù)工具,以及多功能工具套件。在云套件站點(diǎn)上,中間件即服務(wù)提供運(yùn)行時(shí)環(huán)境和一組集成的平臺(tái)工具。
有許多中間件示例,每個(gè)示例都是為了實(shí)現(xiàn)連接應(yīng)用程序、Web 和云服務(wù)的特定功能而創(chuàng)建的。以下是一些常用的中間件類型:
消息中間件促進(jìn)了分布式應(yīng)用程序和服務(wù)之間的通信。
對(duì)象或 ORB 中間件使軟件組件或?qū)ο竽軌蚩绶植际较到y(tǒng)與程序(例如容器)進(jìn)行通信和交互。
遠(yuǎn)程過(guò)程調(diào)用 (RPC)中間件提供了一種協(xié)議,該協(xié)議允許程序從位于另一臺(tái)計(jì)算機(jī)或網(wǎng)絡(luò)上的另一個(gè)程序請(qǐng)求服務(wù)。
數(shù)據(jù)或數(shù)據(jù)庫(kù)中間件可以直接訪問(wèn)數(shù)據(jù)庫(kù)并與之交互;它通常包括 SQL 數(shù)據(jù)庫(kù)軟件。
事務(wù)或事務(wù)中間件通過(guò)事務(wù)過(guò)程監(jiān)控確保事務(wù)從一個(gè)階段轉(zhuǎn)移到下一個(gè)階段。
以內(nèi)容為中心的中間件允許客戶端對(duì)特定內(nèi)容和摘要的請(qǐng)求并交付它;它類似于 Apache Kafka等發(fā)布/訂閱中間件。
嵌入式中間件有助于嵌入式應(yīng)用程序和實(shí)時(shí)操作系統(tǒng)之間的通信和集成。
中間件程序來(lái)自本地軟件和云服務(wù);它們可以單獨(dú)使用,也可以一起使用,具體取決于用例。雖然云提供商將中間件捆綁到云服務(wù)套件中——例如中間件即服務(wù) (MWaaS) 或集成平臺(tái)即服務(wù) ( iPaaS )——但許多企業(yè)可能會(huì)選擇適合其特定需求的獨(dú)立中間件產(chǎn)品。
一些提供中間件的供應(yīng)商包括:
IBM與用于開(kāi)發(fā)跨平臺(tái)移動(dòng)應(yīng)用程序的 IBM Worklight。
Microsoft與 Microsoft BizTalk,用于集成中心。
SAP與 SAP NetWeaver Mobile 的移動(dòng)應(yīng)用程序。
Apache與 Apache Camel,它為基于 B2B 和微服務(wù)的環(huán)境提供開(kāi)源中間件。
其他供應(yīng)商包括 Oracle、Red Hat、TIBCO Software 和 ScaleOut Software。
選擇中間件時(shí)應(yīng)考慮個(gè)人或組織希望通過(guò)它實(shí)現(xiàn)的目標(biāo)。例如,如果數(shù)據(jù)管理需要中間件,那么就應(yīng)該使用數(shù)據(jù)庫(kù)中間件;如果應(yīng)用服務(wù)需要中間件,則應(yīng)使用應(yīng)用服務(wù)器中間件。關(guān)鍵思想是根據(jù)所需的性能找到合適的軟件。
一些中間件會(huì)提供特定的工具來(lái)幫助開(kāi)發(fā)人員。例如,紅帽提供了基于容器的處理功能。如果某個(gè)特定的工具集脫穎而出,那么該特定的中間件可能是值得的。但是,組織應(yīng)該確保中間件可以與它嘗試連接的應(yīng)用程序一起工作。
組織還應(yīng)該將可靠性、復(fù)雜性和性能——因?yàn)槟承┬阅芩俣瓤赡軙?huì)有很大差異——與其他中間件產(chǎn)品進(jìn)行比較。
從 2000 年到大約 2010 年,中間件軟件是應(yīng)用服務(wù)器概念的代名詞。然而,隨著云計(jì)算的普及和微服務(wù)取代更多基于面向服務(wù)架構(gòu) ( SOA ) 的單體系統(tǒng),中間件正在發(fā)生變化。
開(kāi)發(fā)人員不再將完整的應(yīng)用程序部署到中間件服務(wù)器,而是開(kāi)始創(chuàng)建更小的、基于微服務(wù)的應(yīng)用程序。然后,他們將這些微服務(wù)與連接到所需的后端資源所需的所有知識(shí)打包在一起,并將應(yīng)用程序部署在基于容器的輕量級(jí)系統(tǒng)中,例如 Docker。然后將容器部署到基于云的服務(wù)。
在這種情況下,中間件將是容器內(nèi)托管的微服務(wù)和運(yùn)行容器的云計(jì)算基礎(chǔ)設(shè)施的組合。這種安排是目前中間件的趨勢(shì)方向。
通過(guò)上述介紹,相信大家對(duì)什么是中間件已經(jīng)有所了解,大家如果想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下本站的Java在線學(xué)習(xí),里面的課程內(nèi)容由淺到深,很適合沒(méi)有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)