MQ 消息中間件:
中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。
中間件位於客戶機/ 服務器的操作系統之上,管理計算機資源和網絡通訊。是連接兩個獨立應用程序或獨立系統的軟件。相連接的系統,即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。
執行中間件的一個關鍵途徑是信息傳遞。通過中間件,應用程序可以工作於多平台或 OS 環境。消息中間件利用高效可靠的消息傳遞機制進行平台無關的數據交流,並基於數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可以在分布式環境下擴展進程間的通信。
面向消息的中間件 <百度百科:中間件>
MOM指的是利用高效可靠的消息傳遞機制進行平台無關的數據交流,並基於數據通信來進行分布式系統的集成。通過提供消息傳遞和消息排隊模型,它可在分布環境下擴展進程間的通信,並支持多通訊協議、語言、應用程序、硬件和軟件平台。流行的MOM中間件產品有IBM的MQSeries、BEA的MessageQ等。消息傳遞和排隊技術有以下三個主要特點:
1、通訊程序可在不同的時間運行
程序不在網絡上直接相互通話,而是間接地將消息放入消息隊列,因為程序間沒有直接的聯系。所以它們不必同時運行。消息放入適當的隊列時,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味着要立即處理該消息。
2、對應用程序的結構沒有約束
在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造並沒有增加應用程序的復雜性。
3、程序與網絡復雜性相隔離
程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網絡的重新啟動和在網絡中移動消息等是MOM的任務,程序不直接與其它程序通話,並且它們不涉及網絡通訊的復雜性。
IBM 消息中間件概述:
MQ 消息中間件為用戶和應用開發人員提供了一種直接,簡單的手段以實現應用系統在不同操作系統平台之間穩定可靠地傳遞,交換重要的數據和信息,確保消息不丟失/不復傳。 MQ 消息傳輸產品和企業 IT 應用的關系,就如同電子郵件和人一樣,是 SOA 時代企業 IT 應用之間相互傳遞消息的最重要工具。但是,與由於網絡原因而經常丟失消息的脆弱的電子郵件系統不同的是,MQ 消息中間件強大而穩定,永遠能夠確保每一個字節的消息都能夠被正確地傳送到目的應用之中。
---------------------------------------------------------------------------
消息中間件有點像操作系統的消息隊列,可以在你的多個數據中心間進行數據的傳遞。
您使用消息中間件的時候,分以下幾個步驟,
1, 鋪設消息管道,就是定義多個隊列,A到B,B到C,A到F;
2,利用其提供的簡單接口編寫數據到消息包的處理,把你的數據打成消息數據包,把消息數據包還原成你的完整數據。
3,根據數據內容把不同的消息壓入到不同的隊列,送往不同的目的地
MQ的操作程序:
第一步是讓應用程序與隊列管理器連接。它通過 MQConnect 調用來進行此連接。
下一步使用 MQOpen 調用為輸出打開一個隊列。
然后應用程序使用 MQPut 調用將其數據放到隊列上。
要接收數據,應用程序調用 MQOpen 調用打開輸入隊列。
應用程序使用 MQGet 調用從隊列上接收數據。
中間件的簡單的例子:
有這樣一個需求,sap有一組hr的相關信息,比如姓名,工號等等要求顯示到一個portal上面,供user使用 查看信息。
數據怎么從sap到portal呢,可能的一種情況是,使用一個中間件,通過rfc或者idoc把相關信息從sap取出來,整合以后在通過jdbc插入到 portal的后台db里去。
這就是一個中間件參與數據整合 協同的簡單過程。這樣一個過程是由中間件完成的。所以簡單的說,中間件就是在異構系統間起數據傳輸,整合作用的一個軟件。
以剛才的例子為例,看看什么是消息中間件:
如果是消息中間件,就要把剛才例子中的hr數據看成一個消息,具體的數據結構可以根據需要和開發平台自己來定義。把從rfc出來的數據,先形成一個消息,然后發布到一個消息隊列里面,然后再通過一定規則去取這個消息解析再使用jdbc插入數據庫
這個過程可以是一對一,以可以是多對多。也許上面這個簡單的例子並不能體現消息中間件的優點,但是在復雜的網絡環境下,例如多個通訊方式,多個業務系統之間進行消息交互,他的優點是顯而易見的。