1. 程式人生 > >中介軟體系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中介軟體

中介軟體系列ActiveMQ,Rocketmq,Rabbitmq,Kafka,Mycat讓你深入理解學習中介軟體

以前的網路主要是客戶端與伺服器(C/S)結構或瀏覽器/伺服器(B/S)  形式的兩層結構,隨著企業資訊的不斷擴大,企業級應用不再滿足於簡單的兩層系統,而是向著三層和多層體系結構發展。中介軟體就是在其中加入一箇中間層,以支援更多的功能和服務。 

一、什麼是中介軟體
     通常,中介軟體是位於硬體作業系統和軟體之間的通用服務。這些服務具有標準的程式介面和協議。針對不同的作業系統和硬體平臺,它們可以有符合介面和協議規範的多種實現。

 

通俗點說:

     中介軟體是為上層應用提供底層服務的軟體。它對使用者是透明的,使用者並不關心處理是怎樣進行的,只要能順利的完成事務處理獲取所需訊息即可。由此可見,中介軟體是一種獨立的服務程式,分散式應用軟體藉助中介軟體在不同技術之間共享資源。

 

     並且,中介軟體位於伺服器作業系統之上,和OS、DB並列為三大軟體基礎。在金融、電信、交通、電子商務都有著廣泛的應用。

二、中介軟體的分類
1、資料庫中介軟體(DM,Database Middleware)

資料庫中介軟體是在所有中介軟體中應用最廣泛、最成熟的一種。最典型的例子就是ODBC,ODBC是基於資料庫的中介軟體標準,提供了一系列應用程式介面API,允許應用程式和資料庫進行通訊。

從經驗上來看,我們在連線資料庫時,至於要在ODBC中新增資料來源,就可以連線資料庫,而不用關心目標資料庫的實現原理、機制。java同樣通過JDBC資料庫中介軟體,也可以實現同樣的需求。 

2、遠端過程呼叫中介軟體(RPC ,Remote Procedure Call)

遠端呼叫在ITOO專案中應該是使用極為廣泛了,實現遠端呼叫的功臣為EJB不可。同樣EJB亦是遠端過程呼叫中介軟體的一個代表。啟動遠端呼叫,然後將執行結果返回到本地程式。同樣使用者也無需EJB遠端呼叫中介軟體內部是如何實現呼叫的。

3、面向訊息中介軟體(MOM,Message Oriented Middleware)

訊息中介軟體的有點在於能夠在客戶端和伺服器之間提供同步和非同步的連線,並且在任何時刻都可以將訊息進行傳遞或儲存、轉發。訊息中介軟體適用於需要在多個程序之間進行可靠的資料傳遞的分散式環境。

4、基於物件請求代理(ORB,Object Request Broker)

物件請求代理是近年來才發展起來的,它可以看作是與程式語言無關的面向物件的遠端呼叫,適用於非結構化或者非關係型的資料。

5、事務處理中介軟體(TPM,transaction Pprocessing Monitor)

事務處理中介軟體是針對複雜環境下分散式應用的速度和可靠性要求實現的,它提供了一個事務處理的API,開發者可使用這個程式介面,編寫高速可靠的事務管理應用程式。

事務管理中介軟體常見的功能包括:全域性事務協調、事物的分散式提交、故障恢復、網路負載均衡。

三、中介軟體的優勢
1、縮短應用的開發週期,本來由程式開發做的控制,通過中介軟體介入都給你做了。

2、降低開發的失敗率,通過引入成熟的中介軟體,增加了軟體應用開發的成功率。

3、提高應用的開發質量。

4、減少前期開發成本和維護費用

     總而言之,中介軟體向下遮蔽了作業系統的複雜性,使得開發人員僅面對一個簡單統一的開發環境;向上使得應用程式開發簡便,週期縮短,減少了系統運維的工作量。在網路經濟發展的情況下,穩定可靠的中介軟體頗受電子商務發展的青睞,使不同作業系統和各種應用程式間無縫連線稱為可能。