您好,登錄后才能下訂單哦!
基于消息的中間件MOM
中間件所包括的范圍十分廣泛,針對不同的應用需求涌現(xiàn)出多種各具特色的中間件產(chǎn)品。但至今中間件還沒有一個比較精確的定義,因此,在不同的角度或不同的層次
上,對中間件的分類也會有所不同。由于中間件需要屏蔽分布環(huán)境中異構的操作系統(tǒng)和網(wǎng)絡協(xié)議,它必須能夠提供分布環(huán)境下的通訊服務,我們將這種通訊服務稱之
為平臺。基于目的和實現(xiàn)機制的不同,我們將平臺分為以下主要幾類:
遠程過程調用(Remote Procedure Call)
面向消息的中間件(Message-Oriented Middleware)
對象請求代理(Object Request Brokers)
它們可向上提供不同形式的通訊服務,包括同步、排隊、訂閱發(fā)布、廣播等等,在這些基本的通訊平臺之上,可構筑各種框架,為應用程序提供不同領域內的服務,如 事務處理監(jiān)控器、分布數(shù)據(jù)訪問、對象事務管理器OTM等。平臺為上層應用屏蔽了異構平臺的差異,而其上的框架又定義了相應領域內的應用的系統(tǒng)結構、標準的 服務組件等,用戶只需告訴框架所關心的事件,然后提供處理這些事件的代碼。當事件發(fā)生時,框架則會調用用戶的代碼。用戶代碼不用調用框架,用戶程序也不必 關心框架結構、執(zhí)行流程、對系統(tǒng)級API的調用等,所有這些由框架負責完成。因此,基于中間件開發(fā)的應用具有良好的可擴充性、易管理性、高可用性和可移植 性。
MOM面向消息的中間件
MOM指的是利用高效可靠的消息傳遞機制進行平臺無關的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴展進程間的通信,并支持多通訊協(xié)議、語言、應用程序、硬件和軟件平臺。目前流行的MOM中間件產(chǎn)品有IBM的MQSeries、BEA的MessageQ等。消息傳遞和排隊技術有以下三個主要特點:
通訊程序可在不同的時間運行程序不在網(wǎng)絡上直接相互通話,而是間接地將消息放入消息隊列,因為程序間沒有直接的聯(lián)系。所以它們不必同時運行。消息放入適當?shù)年犃袝r,目標程序甚至根本不需要正在運行;即使目標程序在運行,也不意味著要立即處理該消息。
對應用程序的結構沒有約束。在復雜的應用場合中,通訊程序之間不僅可以是一對一的關系,還可以進行一對多和多對一方式,甚至是上述多種方式的組合。多種通訊方式的構造并沒有增加應用程序的復雜性。
程序與網(wǎng)絡復雜性相隔離
程序將消息放入消息隊列或從消息隊列中取出消息來進行通訊,與此關聯(lián)的全部活動,比如維護消息隊列、維護程序和隊列之間的關系、處理網(wǎng)絡的重新啟動和在網(wǎng)絡中移動消息等是MOM的任務,程序不直接與其它程序通話,并且它們不涉及網(wǎng)絡通訊的復雜性。
/*****************************************************************/
作為 MOM(Message Oriented Middleware) 標準的 JMS
Java 消息傳送服務規(guī)范最初的開發(fā)目的是為了使 Java 應用程序能夠訪問現(xiàn)有 MOM 系統(tǒng)。引入該規(guī)范之后,它已被許多現(xiàn)有的 MOM 供應商采用并且已經(jīng)憑借自身的功能實現(xiàn)為異步消息傳送系統(tǒng)。
在創(chuàng)建 JMS 規(guī)范時,設計者希望融合現(xiàn)有消息傳送系統(tǒng)的精髓。這包括:
路由和傳送消息的消息傳送提供者的概念
不同的消息傳送模式或域,例如點對點消息傳送和發(fā)布/訂閱消息傳送
用于接收同步和異步消息的工具
對可靠消息傳送的支持
常見消息格式,例如流、文本和字節(jié)
供應商通過提供一個 JMS 提供者來實現(xiàn) JMS 規(guī)范,該提供者由實現(xiàn) JMS 接口的庫、消息的路由和傳送功能以及用來管理、監(jiān)視和調整消息傳送服務的管理工具組成。路由和傳送功能可以由集中式消息服務器或代理來執(zhí)行,也可以通過每個客戶端運行時環(huán)境的功能來實現(xiàn)。
同樣,JMS 提供者可以扮演多種角色:可以創(chuàng)建為獨立產(chǎn)品或大型分布式運行時環(huán)境系統(tǒng)中的嵌入式組件。作為獨立產(chǎn)品時,它可以用于定義企業(yè)應用程序集成系統(tǒng)的主干;在 嵌入到應用服務器中時,它可以支持組件間消息傳送。例如,J2EE 使用 JMS 提供者實現(xiàn)消息驅動 Bean 并允許 EJB 組件發(fā)送和接收消息。
如果創(chuàng)建了包含現(xiàn)有系統(tǒng)所有功能的標準,則用戶很難了解并實現(xiàn)通過此標準建立的系統(tǒng)。而 JMS 定義了消息傳送概念和功能所具有的共同特點。從而使這種標準更易于掌握,并最大限度地提高了 JMS 應用程序在 JMS 提供者之間的可移植性。需要強調的一點是,JMS 是 API 標準,而不是協(xié)議標準。將 JMS 客戶端從一個供應商移動到另一個供應商是很容易的。但是不同的 JMS 供應商之間通常不能相互直接通信。
/*****************************************************************/
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。