国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

基于JMS的數據匯集系統的研究與實現

2019-11-18 11:12:52
字體:
來源:轉載
供稿:網友
摘要 在深入研究JMS異步消息處理機制的基礎上,利用JMS為分布在不同系統中的氣象數據的匯集提供了一個可行的方案,解開了應用程序間的耦合,并增強了應用程序的可擴展性和可靠性。

  要害詞 消息、JMS、點對點、發布/訂閱、數據匯集、氣象

  現如今,越來越多的企業、單位面臨著各種各樣的數據集成和系統整合,CORBA、DCOM、RMI等RPC中間件技術也應運而生,但由于采用RPC同步處理技術,在性能、健壯性、可擴展性上都存在著諸多缺點。而基于消息的異步處理模型采用非阻塞的調用特性,發送者將消息發送給消息服務器,消息服務器在合適的時候再將消息轉發給接收者;發送和接收是異步的,發送者無需等待,二者的生命周期也可以不必相同,而且發送者可以將消息間接傳給多個接收者,大大提高了程序的性能、可擴展性及健壯性,這使得異步處理模型在分布式應用上比起同步處理模型更具有吸引力。

  本文具體介紹了java中的異步處理機制――基于JMS的異步消息處理技術,并結合實例討論了基于JMS的氣象系統數據匯集系統的設計與實現。

  Java消息服務-JMS

  JMS是由包括Sun Microsystems和IBM等在內的幾個公司合作設計的一個面向消息的中間件(MOM)API。JMS定義了Java 中訪問消息中間件的接口,但JMS 只是接口,并沒有給予實現,實現JMS 接口的消息中間件稱為JMS提供者(JMS PRovider)。JMS的目的是應用程序能在異步情況下可靠地傳輸和接受消息。從編程的角度來看,JMS可以被當作一個容器治理的資源,與JDBC連接類似。正如你可以通過JDBC去訪問許多不同的關系數據庫一樣,你可以通過JMS訪問獨立于廠商的消息服務系統。

  JMS主要包括三個部分――JMS提供者(JMS Provider)、消息發送者(Message ProdUCer)和消息接收者(Message Consumer)。簡單的說,JMS提供者是指實現JMS API接口的消息系統,是消息的中轉站;消息發送者是指消息的創造和發送者,是消息的發源地;消息接收者是指接收消息的應用程序,是消息最終的目的地。

  JMS消息是異步處理的,消息發送者可以發送一個消息而無須等待響應。消息發送者將消息發送到一條虛擬的通道(主題或隊列)上,消息接收者則訂閱或是監聽該通道。一條消息可能最終轉發給一個或多個消息接收者,這些接收者都無需對消息發送者做出回應。

  1、JMS消息的組成

  在J2EE1.4后,JMS API不再區分在點對點域和發布/訂閱域中創建的消息。JMS消息由以下三部分組成(如圖1.1所示):

  消息頭(header)――JMS消息頭包含了許多字段,它們是消息發送后由JMS提供者或消息發送者產生,用來表示消息、設置優先權和失效時間等等,并且為消息確定路由。

  屬性(property)――由消息發送者產生,用來添加刪除消息頭以外的附加信息。

  消息體(body)――由消息發送者產生,JMS中定義了5種消息體:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。

基于JMS的數據匯集系統的研究與實現(圖一)

  2、JMS消息傳遞模式

  JMS支持兩種消息傳遞模式――點對點模式(P2P)和發布/訂閱模式(Publish/Subscribe)。這兩種都是人們熟知的push模式,消息的發送者是活動的發起人,而接收者則是被動的接收消息。在JMS中,這些消息傳遞模式被稱為消息域(message domain)。

  2.1 JMS點對點消息域

  在點對點模式中,發送者和接收者對消息傳送的目的地址達成一致,即所謂的隊列(queue)。消息隊列位于JMS提供者中,消息發送者向一個消息隊列發送消息,消息接收者可以在消息發送后的任何時刻從這個隊列中(被動地)接收消息,在接收者確認之前消息一直保存在消息隊列中直到過期。點對點模式的結構圖如圖1.2所示:

  JMS點對點消息域具有以下特點:

  ·每條消息能而且只能被一個接收者接收。

  ·每條消息或者被接收者從隊列中取走,或者被 JMS提供者在超時的情況下刪除。

  ·消息產生的時候接收者不一定要存在,接收者可以在消息產生后的任何時間里取走消息。

  ·接收者不能請求一個消息。

  ·接收者必須在收到消息后發出確認信息。

基于JMS的數據匯集系統的研究與實現(圖二)

  2.2 JMS發布/訂閱消息域

  在發布/訂閱模式下,發送者被稱為發布者(publisher),一個消息可已有很多接收者,這些接收者被稱為訂閱者(subscriber)。發布/訂閱模式采用與點對點模式完全不同的消息發送模式。在發布/訂閱模式下,發布者給一個主題(topic)發送消息,多個訂閱者在訂閱的時候可以訂閱他們感愛好的主題。一個主題可以被多個訂閱者訂閱,一個訂閱者也可以訂閱多個主題。一個主題的消息只被發給該主題的所有訂閱者。訂閱者只能接收它訂閱的主題中的消息,并且,在默認情況下,訂閱者在消息發送的時候必須是活動的,并隨時預備接收消息,否則它將錯過該消息。為了避免這種時間依靠性JMS API答應訂閱者創建持久訂閱。發布/訂閱模式的結構圖如圖1.3所示:

  JMS發布/訂閱消息域具有以下特點:

  ·每一條消息由一個發布者創建而由0個或多個訂閱者接收它。

  ·消息馬上被分發給現有的訂閱者。

  ·訂閱者必須在消息發送的時候存在以接收消息。

  ·持久訂閱答應訂閱者接收它處于非活動狀態時由發布者向主題發送的消息。

  ·訂閱者必須在接收到消息后發出確認信息。

基于JMS的數據匯集系統的研究與實現(圖三)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固安县| 泸州市| 达孜县| 富裕县| 重庆市| 平乡县| 芜湖市| 泗水县| 北票市| 蕉岭县| 嘉荫县| 新蔡县| 观塘区| 安平县| 剑阁县| 中卫市| 盐池县| 临沂市| 米林县| 六盘水市| 梁平县| 徐汇区| 荆门市| 五寨县| 炎陵县| 凤山市| 冀州市| 扬州市| 沐川县| 平江县| 通江县| 宁明县| 舞阳县| 婺源县| 海门市| 江川县| 博野县| 馆陶县| 奉化市| 菏泽市| 进贤县|