在本期的J2EE探索者( J2EE pathfinder)中,java 開發者和咨詢顧問Kyle Gabhart 解釋了為什么消息服務對于企業的體系結構來說是至關重要的,您的解決方案必須克服什么類型的障礙,以及 除了Java消息服務(Java Message Service ,JMS)之外,還有哪些替代的解決方案。在本文的結尾,他分析了三種可用的解決方案(簡單JMS客戶機(Simple JMS Client)、結合JMS使用的會話bean, 以及消息驅動bean),并且提供了一些特定的指導方針來衡量這些選項。
說到對消息傳遞解決方案的選擇,您可以像配手套那樣找到適合于企業的解決方案。您的消息傳遞框架必須能夠在一組應用和企業資源之間進行通信。而且,該消息傳遞框架必須快速、可靠地完成這一任務。此外,面對日復一日的騷擾和緊急情況,它必須表現得天衣無縫。
為了根據您的需求選擇適當的消息傳遞解決方案,首先應該對您企業當前的組成結構以及將來的發展趨勢有一個清醒的熟悉。此外,假如能夠透徹地理解消息傳遞框架在完成目標的過程中必須克服的障礙,那么對于解決方案的選擇將會很有幫助。最后,您要知道 可選擇的范圍:有哪些可用的技術,以及各種技術對于不同的環境和需求的適用情況如何。
在本期的J2EE 探索者中,我們將一一闡述以上要點。首先是對企業消息傳遞的概述,在此我們將著眼于消息傳遞在您企業中所扮演的角色,并在建立可靠的通信方面給出了一些挑戰。接著,我們將從體系結構的角度來快速 了解一下,在一個典型的企業網絡環境中,J2EE 消息傳遞技術如何與面向消息的中間件協同工作。然后,我們將針對Java消息服務(Java Message Service ,JMS)和J2EE的消息傳遞包展開更具體的討論。我們將分別論述三種類型的J2EE消息傳遞客戶機的基本目標和功能,而且您也可以了解到每種類型的 J2EE消息傳遞客戶機各自的優勢和劣勢所在。最后,我們將分析一些常見的消息傳遞場景和解決方案,這將有助于您為您的企業選擇最好的J2EE消息傳遞解決方案。
企業消息傳遞101
企業消息傳遞框架被設計用于使得一個或多個應用能夠克服各種障礙進行通信。常見的屏障包括:兩個系統同時運行(同步通信)的需求,多個應用獲取同一條消息(多重傳輸)的需求,大多數系統都彼此異構,以及網絡故障等。
M許多企業的體系結構依靠于面向消息的中間件系統(MOM)來為不同類型的系統提供消息通道。MOM為應用提供了一種公共的、可靠的方式,使這些應用能夠輕松地創建、交換和處理消息,而無需考慮消息傳遞客戶機的實現細節。消息被發送到服務器目的地和域 (domain),而不是發送到物理地址。消息傳遞客戶機只需簡單地聲明對某個特定的域和目的地感愛好,提供適當的安全性令牌(security token)以獲得訪問該域的權限,然后通過那個目的地與消息傳遞服務器進行交互。
從概念上來講,這與現實生活中真實郵件的傳遞方式沒什么不同。消息的發送方只負責使用正確的包裝,提供正確的地址,并附上適當的郵資。 郵局(這里是一個MOM系統)處理 與消息的安全可靠的傳遞相關的所有問題,而不 管出現在他們面前的任何障礙(機器故障,天氣惡劣,等等)。
在一個MOM系統中,客戶機之間的耦合性比較弱,這答應它們不必真正地全天“在線”便能維持服務的最佳質量。假如能夠去掉應用一直處于可用狀態這一需求,那么維護和伸縮性將變得更加易于治理??梢栽谝惶熘械娜魏螘r候將應用離線,更新應用,或者作為例行的維護工作刷新應用,而不必擔心會影響服務的質量。
Java 消息服務
MOM 服務器答應不同類型的系統交換消息,但是每個MOM供給商都有其特有的處理消息的API。這種標準化的缺乏對于Java技術開發范例來說是不可接受的。為了充分利用已有的MOM基礎設施,同時又不失標準化,J2EE平臺提供了JMS。
Java 標準化
為了提供平臺無關的和供給商無關的解決方案,所有Java技術都可以分成兩個部分:
不管您使用的是何種Java技術,您首先要編寫使用了技術規范中提供的接口的應用組件,然后在運行時提供某一特定供給商對這些接口的實現。在J2EE中,企業消息傳遞的規范和API是JMS。
JMS 定義了在Java企業系統中傳遞消息的規則,并且聲明了一些方便應用組件和消息傳遞系統(通常是MOM)之間的消息交換的接口。JMS客戶機向MOM服務器上的目的地開放連接,然后在那個目的地上發送和接收消息。JMS卸下了 保證傳送(guaranteed delivery)、消息通知(message notification)、消息耐久性(message durability)以及消息傳遞系統中所有底層網絡和路由問題的負擔。JMS和MOM能夠很好地協同工作,因為它們都劃清了消息傳遞客戶機和服務器之間的責任界限。
消息傳遞的類型
JMS 支持兩種基本的消息傳遞機制。第一種機制是點到點的消息傳遞(point-to-point messaging),在這種機制下,消息由一個發布者(發送方)發送,由訂閱者(接收方)接收。另一種機制是發布-訂閱式的消息傳遞(publish- subscribe messaging),在這種機制下,消息由一個或多個發布者發送,由一個或多個訂閱者接收。盡管這兩種機制是JMS的實際基礎,很多人還是按照三種消息傳遞模型來看待這項技術:
新聞熱點
疑難解答