使用 JMS 減少應用程序耦合

作者: Builder.com
Thursday, March 18 2004 10:24 AM

本文譯自Builder.com,未經許可請勿轉載

在開發界,耦合是指兩個實體相互依賴於對方的一個量度。程序員每天都在(有意識地或者無意識地)做出影響耦合的決定:類耦合,API耦合,應用程序耦合等等。

advertisement_e1.gif
<script language=JavaScript1.1 src="http://ad.cn.doubleclick.net/adj/messagingplus.zdnet.com.cn/developer/tech;sz=1x1;ord=1771207148?"> </script> <script language=VBScript> on error resume next ShockMode = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) </script>

兩個應用程序間的耦合並不一定是壞事,但是過多的耦合會使得你的企業軟件難於管理。而且在你打算擴展應用程序或者爲公司編寫新的應用程序或服務的時候也會減少你的開發選擇。Java 消息服務(JMS)可以幫助我們減少應用程序間的耦合,而同時又允許應用程序間的通信以及使用對方的資源。

JMS 一般都包含至少三個組成部分:兩個JMS 客戶和一個 JMS 服務器。兩個客戶通過 JMS 服務器相互通信。JMS 客戶是使用 JMS API發送和接收消息的常規應用程序。

JMS 服務器可以是任何實現 JMS 規範的應用程序。一些 JMS 服務器是更大的應用程序的一部分;還有一些是專門負責 JMS 任務的應用程序。有很多第三方商業資源和一些開放源代碼資源的 JMS 服務器可供選擇使用。

應用程序使用 JMS 相互通信有兩個方法可以選用:JMS 主題和 JMS 隊列。主題和隊列只在很少一些地方有區別,其中最明顯的區別是它們發送消息的方式不同。

JMS 主題從一個 JMS 客戶接收消息然後將這些消息分發給所有註冊爲主題監聽者的 JMS 客戶。相反,JMS 隊列只將消息分發給一個客戶,不管有多少客戶註冊爲隊列監聽者。如果兩個或者多個客戶註冊到一個隊列,同時一個消息存儲在隊列中,那麼只有一個客戶能接收到這個消息。JMS 規範沒有規定哪個客戶將接收這個消息。

不管你是使用 JMS 主題還是 JMS 隊列,消息中所要傳遞的數據的類型都在於你自己。一些程序員通過他們的消息系統發送商業對象,而其它程序員以文本格式發送 XML 消息從而進一步地減少耦合。

如果你以前沒有用過 JMS,那麼可能是因爲你還沒有一個使用它的原因。如果你以前編寫過你自己的消息系統,那麼很可能你將從 JMS API 中受益。

JMS 到現在已經出現了幾年時間了,而且已經證明是一種很實用的技術。拿出來自己研究一下吧。


本文作者:David Petersheim是Genscape公司的應用開發主任。他設計和開發服務器端應用程序來獲取和處理實時能源數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章