名詞解析——中間件

操作系統、數據庫、中間件號稱系統軟件三駕馬車,其中的中間件是最神秘的。操作系統,如Windows,Linux等等,略有常識的小夥伴都耳熟能詳,對於其功能也略知一二,數據庫大致也許是一個用來存儲數據的倉庫。本文我們來簡單的說一下中間件

關於中間件:

中間件是一種獨立的系統軟件或服務程序,分佈式應用軟件藉助這種軟件在不同的技術之間共享資源,中間件位於客戶機服務器的操作系統之上,管理計算資源和網絡通信。——IDC對於中間件的定義

中間件位於操作系統與用戶軟件之間,作用是為自己上層的應用軟件提供運行於開發的環境,幫助用戶靈活高效地開發和集成負載的應用軟件。通俗的可以將中間件理解為一個水管,它不提供傳統的應用的功能,而是提供軟件與軟件之間的連接,它能夠讓數據從一個應用流動的另一個應用之中。

中間件發展的驅動力來源於凝練、高效、複用的軟件開發特點,通過中間件提供簡單、一致、集成的開發核運行環境,簡化分佈式系統的設計、編程核管理。常見的中間件舉例

1.事務處理中間件——Hadoop

當一個大的任務由一臺機器在規定的時間內不能完成時,人們就要採用分佈式計算,即很多臺機器聯合起來共同完成任務。換句話說,就是把大任務拆分成許多個小任務,然後再把這些小任務分配給多臺計算機去完成。參與計算的多臺計算機組成一個分佈式系統,需要運行一系列的分佈式基礎算法。

Hadoop 實現了分佈式計算中的基礎算法(如一致算法、選舉算法、故障檢測、快照等),同時為用戶提供了編程和命令接口。程序員調用這些函數能輕鬆寫出分佈式應用程序,我們都知道,如果一切從頭開始,要完成一個分佈式程序的編寫是異常艱難的。Hadoop“覆蓋”在操作系統之上,向上提供函數調用(API)和命令接口,在水平方向完成分佈式系統的基礎算法。作為編程人員和用戶,只要瞭解 API 和命令即可。


名詞解析——中間件

圖1. Hadoop

基於 Hadoop 平臺衍生出來的開源項目主要有 Yarn、HBase、Hive、ZooKeeper、Avro、Sqoop、Mahout、Crossbow 等。

2. 消息中間件——QPID

消息中間件則是將軟件與軟件之間的交互方式進行存儲和管理的一種技術,也可以看做是一種容器。

消息隊列,是消息中間件的一種實現方式,下面是消息隊列傳遞服務的模型:


名詞解析——中間件

圖2. 消息隊列傳遞服務模型

Qpid 是 Apache 開發的一款面向對象的消息中間件,Qpid 提供了很多額外的 HA 特性,非常適於集群環境下的消息通信。它提供了 C++ 和 Java 兩個版本的 broker服務端,並支持多種語言的客戶端。

Qpid 還提供了提供了安全認證特性,任何 producer/consumer 需要和 broker 通信時,都需要提供身份認證。QPID 的安全認證使用 SSL 協議。

名詞解析——中間件

圖3. Qpid 中間件

目前使用較多的消息隊列有 ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 。

3. Web服務器中間件——TOMCAT

Web服務器的工作原理,一般可分成如下4個步驟:

  • 連接過程就是Web服務器和其瀏覽器之間所建立起來的一種連接。查看連接過程是否實現,用戶可以找到和打開socket這個虛擬文件,這個文件的建立意味著連接過程這一步驟已經成功建立。
  • 請求過程就是Web的瀏覽器運用socket這個文件向其服務器而提出各種請求。
  • 應答過程就是運用HTTP協議把在請求過程中所提出來的請求傳輸到Web的服務器,進而實施任務處理,然後運用HTTP協議把任務處理的結果傳輸到Web的瀏覽器,同時在Web的瀏覽器上面展示上述所請求之界面。
  • 關閉連接就是當上一個步驟應答過程完成以後,Web服務器和其瀏覽器之間斷開連接之過程。


Web服務器上述4個步驟環環相扣、緊密相聯,邏輯性比較強,可以支持多個進程、多個線程以及多個進程與多個線程相混合的技術。

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,其工作流程如下圖所示:


名詞解析——中間件

圖4. TomCat服務器工作原理圖

常見的web中間件包括 Tomcat, Weblogic,Jboss, Jetty, WebShere, Glasshfish


名詞解析——中間件



分享到:


相關文章: