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

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

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

    J2EE之巔

     

    同步代理模式 Synchronization Proxy Pattern

    模式發(fā)現(xiàn)者 : 蔡超

    北京天融信,軟件架構(gòu)師

    SUN certified Enterprise Architect

    Microsoft certified Solution Developer

    IBM certified RUP Specialist

    聯(lián)系方式 :cai_chao@topsec.com.cn,chaocai2001@yahoo.com.cn

    010-82776427

    語(yǔ)境

    在基于異步通信方式的系統(tǒng)中,實(shí)現(xiàn)模塊的同步調(diào)用。

    問(wèn)題

    消息隊(duì)列已經(jīng)成為目前很多軟件選用的通訊方式,消息模式使得不同分布式組件間的耦合性較為松散,提高了系統(tǒng)的可維護(hù)性和可擴(kuò)充性。但是有時(shí)我們希望在這種情況下能夠模擬同步的調(diào)用方式,希望能夠通過(guò)一個(gè)組件透明的幫我們實(shí)現(xiàn)這種異步和同步調(diào)用的轉(zhuǎn)換。

    解決方案

    p1.jpg
    圖表
    1 基于消息的分布式系統(tǒng)

    上圖是一種常見的基于消息的分布系統(tǒng)結(jié)構(gòu),系統(tǒng)中包含兩條隊(duì)列。命令隊(duì)列用于傳送模塊間相互調(diào)用的命令對(duì)象,響應(yīng)隊(duì)列用于傳送命令處理后的響應(yīng)結(jié)果對(duì)象。

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

    為了模擬同步調(diào)用我們通過(guò)一個(gè) SynProxy 組件來(lái)幫助我們完成由異步到同步調(diào)用的模擬。使得 Client 對(duì)其他模塊的調(diào)好像是同步的一樣。

    SynProxy 組件的結(jié)構(gòu)如下:

    p2.jpg
    圖表
    2 SynProxy 的靜態(tài)結(jié)構(gòu)

    SynProxy: 組織完成異步到同步調(diào)用的轉(zhuǎn)換

    WaitingQueue: 存放還未獲得執(zhí)行返回值的 Command 對(duì)象

    UIDCreator: 產(chǎn)生能夠唯一標(biāo)示每個(gè) Command 對(duì)象的 UID

    ResponseReceiver: 監(jiān)聽響應(yīng)隊(duì)列中的響應(yīng)消息,它在獨(dú)立的線程中運(yùn)行

    Command :命令對(duì)象

    Response :響應(yīng)對(duì)象p3.jpg

    ?

    圖表 3 將異同步調(diào)用轉(zhuǎn)化成同步調(diào)用的過(guò)程

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

    Wait 表示調(diào)用 Command wait 方法阻塞住當(dāng)前線程

    Command 執(zhí)行模塊在執(zhí)行了響應(yīng)操作后生產(chǎn) Response 對(duì)象用于放回結(jié)果, Response 對(duì)象中的 UID 屬性應(yīng)該與處理的 Command UID 的值相同

    Notify 表示調(diào)用 Command notify 方法喚醒被阻塞的線程

    上面過(guò)程中的 wait 設(shè)置了阻塞的超時(shí)時(shí)間(來(lái)自于 Command 對(duì)象的屬性值)

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

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊(cè)

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: MM1313亚洲精品无码久久| 女同免费毛片在线播放| 亚洲精品高清在线| 成全在线观看免费观看大全 | www免费插插视频| 亚洲成A人片在线观看WWW| 99国产精品永久免费视频| 国产精品成人亚洲| 91亚洲自偷手机在线观看| 午夜免费福利网站| 大地影院MV在线观看视频免费| 亚洲首页国产精品丝袜| 国产午夜亚洲不卡| 在线免费观看中文字幕| 成人性生交大片免费看好| 亚洲国产无线乱码在线观看| 亚洲人成影院在线无码按摩店| 成人毛片18女人毛片免费视频未 | 免费毛片网站在线观看| baoyu116.永久免费视频| 亚洲欧美成人一区二区三区| 亚洲国产人成在线观看69网站| 国产99视频精品免费视频7| 亚洲精品视频免费看| 岛国精品一区免费视频在线观看 | 在线观看国产区亚洲一区成人 | 亚洲人成网站免费播放| 成全视频免费观看在线看| 美女黄色毛片免费看| 亚洲人成片在线观看| 亚洲AV无码一区二区三区DV| 亚洲福利精品一区二区三区| 最新猫咪www免费人成| 真实国产乱子伦精品免费| 国产猛男猛女超爽免费视频| 免费人成大片在线观看播放电影 | 成在人线av无码免费高潮水| 亚洲av成人片在线观看| 国产亚洲国产bv网站在线| 久久精品国产亚洲av高清漫画 | 亚洲嫩草影院在线观看|