<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE之巔

     

    同步代理模式 Synchronization Proxy Pattern

    模式發現者 : 蔡超

    北京天融信,軟件架構師

    SUN certified Enterprise Architect

    Microsoft certified Solution Developer

    IBM certified RUP Specialist

    聯系方式 :cai_chao@topsec.com.cn,chaocai2001@yahoo.com.cn

    010-82776427

    語境

    在基于異步通信方式的系統中,實現模塊的同步調用。

    問題

    消息隊列已經成為目前很多軟件選用的通訊方式,消息模式使得不同分布式組件間的耦合性較為松散,提高了系統的可維護性和可擴充性。但是有時我們希望在這種情況下能夠模擬同步的調用方式,希望能夠通過一個組件透明的幫我們實現這種異步和同步調用的轉換。

    解決方案

    p1.jpg
    圖表
    1 基于消息的分布式系統

    上圖是一種常見的基于消息的分布系統結構,系統中包含兩條隊列。命令隊列用于傳送模塊間相互調用的命令對象,響應隊列用于傳送命令處理后的響應結果對象。

    在通常情況下消息隊列上的模塊會以異步的方式工作,這種情況下模塊通常不關心命令執行后的狀況,常常是不須返回值的。

    為了模擬同步調用我們通過一個 SynProxy 組件來幫助我們完成由異步到同步調用的模擬。使得 Client 對其他模塊的調好像是同步的一樣。

    SynProxy 組件的結構如下:

    p2.jpg
    圖表
    2 SynProxy 的靜態結構

    SynProxy: 組織完成異步到同步調用的轉換

    WaitingQueue: 存放還未獲得執行返回值的 Command 對象

    UIDCreator: 產生能夠唯一標示每個 Command 對象的 UID

    ResponseReceiver: 監聽響應隊列中的響應消息,它在獨立的線程中運行

    Command :命令對象

    Response :響應對象p3.jpg

    ?

    圖表 3 將異同步調用轉化成同步調用的過程

    部分解釋: ( 以上以在 JAVA 環境中為例 )

    Wait 表示調用 Command wait 方法阻塞住當前線程

    Command 執行模塊在執行了響應操作后生產 Response 對象用于放回結果, Response 對象中的 UID 屬性應該與處理的 Command UID 的值相同

    Notify 表示調用 Command notify 方法喚醒被阻塞的線程

    上面過程中的 wait 設置了阻塞的超時時間(來自于 Command 對象的屬性值)

    posted on 2006-11-10 17:28 超越巔峰 閱讀(1494) 評論(0)  編輯  收藏 所屬分類: Design Pattern

    導航

    統計

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲福利视频一区二区三区| 老牛精品亚洲成av人片| 久久久久免费看黄A片APP| 国产精品无码亚洲精品2021| 精品国产综合成人亚洲区| 国产成人精品免费视频大全麻豆| 精品久久久久久亚洲综合网| 久久久久久a亚洲欧洲AV| aa级一级天堂片免费观看| 国产免费高清69式视频在线观看| 亚洲国产美女精品久久久久| 亚洲爽爽一区二区三区| 国产高清不卡免费在线| 国产精品1024在线永久免费 | 不卡一卡二卡三亚洲| 希望影院高清免费观看视频| 一级毛片a免费播放王色电影 | 国产资源免费观看| 久久精品一本到99热免费| 深夜福利在线免费观看| 亚洲成人福利在线| 亚洲精品无码永久在线观看你懂的| 99久久免费精品国产72精品九九| 大地资源在线资源免费观看| 国产精品国产亚洲区艳妇糸列短篇| 亚洲美女激情视频| 亚洲人成人网站色www| 在线看片无码永久免费aⅴ| 久久国产色AV免费观看| 精品一区二区三区高清免费观看| 亚洲熟妇自偷自拍另欧美| 久久久无码精品亚洲日韩京东传媒 | 亚洲黄色片免费看| 成人性生交大片免费看中文| 老司机午夜免费视频| 亚洲熟女综合色一区二区三区| 亚洲精品视频免费看| 亚洲va久久久噜噜噜久久男同| 久久久久亚洲精品无码网址 | 亚洲国产美女在线观看 | 黄色一级视频免费|