簡介
MOM通過提供訊息傳遞和訊息排隊模型,它可在分布環境下擴展進程間的通信,並支持多通訊協定、語言、應用程式、硬體和軟體平台。時下流行的MOM中間件產品有IBM的MQSeries、BEA的MessageQ等。中間件
面向訊息的中間件使用訊息傳送提供者來協調訊息傳送操作。MOM(Message-orientedMiddleware)系統的基本元素是客戶端、訊息和MOM提供者,後者包括API和管理工具。MOM提供者使用不同的體系結構路由和傳送訊息:它可以使用集中式訊息伺服器,也可以將路由和傳送功能分布在每個客戶端上。某些MOM產品結合了這兩個方法。
使用MOM系統,客戶端可以進行API調用,以便將訊息傳送到由提供者管理的目的地。該調用會調用提供者服務以路由和傳送訊息。在傳送訊息之後,客戶端會繼續執行其他工作,並確信在接收方客戶端檢索該訊息之前,提供者一直保留該訊息。基於訊息的模型與提供者的協調耦合在一起,使得創建鬆散耦合的組件系統成為可能。這樣的系統可以繼續可靠地工作,即使在有個別組件或連線失敗時也不會停機。
由訊息傳送提供者協調客戶端之間的訊息傳送的另一個優點是:通過添加管理界面,可以監視和調整性能。這樣,客戶端應用程式便不必關心傳送、接收和處理訊息之外的任何問題。對於互操作性、可靠性、安全性、可伸縮性和性能之類的問題,應當由管理員通過編碼實現MOM系統來解決。
至此,我們已經介紹了使用面向訊息的中間件連線分散式組件的很多優點。下面將介紹其缺點。缺點之一源自鬆散耦合本身。在RPC系統中,只有在被調用函式完成任務之後,才能返回調用函式。在異步系統中,調用方客戶端會繼續為接收方裝入工作,直到處理裝入工作所需的資源耗盡且被調用組件發生故障。當然,可以通過監視性能和調整訊息流來儘量減少或避免這些情況,但對於RPC系統卻不必這樣做。有一點很重要,那就是了解每種系統的優缺點。每種系統所適合執行的任務都不同。有時,您需要結合兩種系統才能完全獲得所需的行為。