Posted on 2007-02-28 16:46
lendo 閱讀(122)
評論(0) 編輯 收藏
-
MOM(Message Oriented MiddleWare):消息中間件
-
JMS是一系列接口和關聯語法的集合,這些接口可以讓JMS客戶端訪問消息中間件服務器,例如Websphere,Weblogic,JBoss都提供對JMS的支持,實際上它們就是消息中間件服務器,這些服務器都實現了Sun的關于JMS的規范,我們需要做的就是通過J2EE提供的JMS API來訪問這些服務器。
-
消息系統是對等的設備(P2P),所以每個客戶端都能夠接受來自另一個客戶端的消息,也可以向另一個客戶端發送消息,每個客戶端都會連接到一個消息代理服務(agent),這個服務就能夠提供創建,接收和發送消息的功能。每個消息系統都提供尋址消息的方法,同時提供創建消息和用數據填充這個消息的方法。
-
一些系統提供把一個消息發送到多個目的地的功能,而另外一些消息系統只提供把一個消息發到一個目的地的功能。有些提供同步(synchronous)的的消息,而有些提供異步(asynchronous)的消息。
-
JMS Provider:對于一個消息中間件實現JMS功能的實體。它是用純粹的Java代碼編寫的。JMS的目標是:讓客戶端程序員實現Provider的時候的代碼量最少。
-
JMS Messages:消息接口,客戶端需要使用這些由JMS Provider實現的消息接口。JMS的目標是:客戶端有一致和固定的接口用來創建消息,客戶端不需要依賴JMS Provider。
-
JMS Domains:消息系統可以大概分為:P2P模式和發布者-訂閱者(publish-subscribe)模式,P2P模式是基于消息隊列(Queue)的概念,每個消息被放進一個特殊的隊列,然后客戶端從這個隊列里面來提取這個消息(隊列里面的消息一經提取就自動消失了,還是仍然存在?我能不能取隊列里面的任意一條消息,還是必須按順序依次提取?)。發布者-訂閱者模式是基于消息主題(Topic)的概念,每個消息被放置在象一顆樹一樣的結構的某個節點上,系統負責把消息發送到多個訂閱者。
-
JMS不包含:負載均衡,出錯提示,消息系統管理,安全認證,傳輸協議,消息類型庫。
-
盡管JMS有兩種域模式,但是JMS一般建議使用普通的消息接口來開發客戶端,這樣可以在兩種模式之間互相調用。
-
ConnectionFactory - 客戶端用來創建連接的對象,Connection - JMS provider使用的一個活動連接,Destination -消息目的地,Session - 一個單線程的用來發送和接收消息的Context,MessageProducer -由Session創建的用來發送消息的對象,MessageConsumer - 由Session創建的用來接收消息的對象。
-
JMS把消息當作一個輕量的實體,這個實體由Header和Body組成,Header包含了message的路由,唯一標識等信息,Body里面就包含了具體所發送的數據。