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