• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            我要啦免费统计

                                                           一種采用消息框架切分擴展的設計方法

                                                                                                                   Lastupdate201246 蔡東赟

            http://www.LomoX.hk社區發布。

            ps:blog貼不了圖啊,可以再附件下載:一種采用消息框架切分擴展的設計方法

             

            傳統的界面uiuilogic隔離方式采用的是接口的方式,為了解耦合,為了使隔離層之間業務統一。如圖,ui層你就負責界面的,你想用什么語言都可以; uilogic層你就只做ui傳下來的io,鍵盤鼠標等的操作行為解析; applogic你就負責業務,計算執行的任務。這樣子,一個需求就可以同時三個人開發了。 

                    

             

             

             


            大型基礎軟件為了解耦而做的隔離,導致接口聲明膨脹。可以看到applogic層和uilogic的接口會無限膨脹,與其帶來的就是維護成本,如果是內部定義的接口,書寫的時候你要每個層都提供一份聲明。

                     最近在想提供一個東西做為隔離層,先看圖。

             


                  Applogic uilogic就只有數據間的通訊了。采用異步的消息方式,不管你是多線程還是單線程。模塊之間耦合徹底消失。有人會問你這個service用啥。

            Zeromq吧,這是我機器上面測試的速度

            http://m.shnenglu.com/cdy20/archive/2012/04/01/169791.html  單線程一百w120s,那個快啊,如果作為本地的派發器的服務端足夠了。

                  通信數據如何處理呢?zeromq采用的是字符串發送,我們可以配合googleprotobuf定義解析協議數據。這個東西可以壓縮,解壓縮協議非常方便,配上這個高速度的mq,那簡直棒極了。

             

            Zeromq作為一個可以內核間、跨進程、跨機器通信的消息隊列,不免又為我們提供了更多的設計的想象力。這么一個中間的消息的服務器,我們又可以把applogic切割,分成多個獨立模塊,如圖。

             

             


            如上圖,我們可以不斷拓展
            applogic的模塊,我們可以認為這些模塊是獨立的 動態鏈接庫,獨立的進程都可以,或者是獨立線程,一切通信 進出都是通過發送send,接收recv

            這個東西我現在遇到的工程項目組就有這個需求,他們要求是能夠并發開發,甚至兩個人統一個模塊不四個分支同時進行。一個強大的消息框架,讓我的模塊可以成為任何一種定義。

            畫個圈圈,歸納一下:



             上圖紅色圈圈代表bus。


                   上圖抽象的圖如下。

             

             

             

            這樣程序就可以任意擴展了。任意切分了。

             

                     有錯誤和改進方法,請發到caidongyun19@qq.com.謝謝閱讀。

            共享促進技術發展。蔡東赟。www.lomox.hk


            附上提醒:

            對待本框架,個人:建議團隊自由度不要太高,需要根據團隊項目的特點做一定的規范約束。否則將面臨質量和維護成本遞增。

             from lomox  li:

             如果僅僅是做進程間通信,那是大材小用了
            如果是進程內的線程間通信,就不合適
            客戶端面臨的問題是消息中心在進程間和線程間的通信 

             

             

             

            posted on 2012-04-06 11:13 閱讀(1929) 評論(4)  編輯 收藏 引用 所屬分類: 個人框架設計

            評論:
            # re: 一種采用消息框架切分擴展的設計方法 2012-04-06 12:22 | 飯中淹
            感覺就是MVC。  回復  更多評論
              
            # re: 一種采用消息框架切分擴展的設計方法 2012-04-06 13:07 | WXX
            Chrome源碼:
            進程間IPC
            進程內線程間MsgQueue
            同一線程對象間注冊消息,接受Notification

            封裝的足夠好了,可以借鑒。  回復  更多評論
              
            # re: 一種采用消息框架切分擴展的設計方法 2012-04-06 13:23 | 蔡東赟
            @WXX
            chrome 看來還是得看看源碼的  回復  更多評論
              
            # re: 一種采用消息框架切分擴展的設計方法 2012-04-06 15:04 | 蔡東赟
            @WXX
            zeromq估計超越這個了,你只要bind你制定的 ipc impro tcp 就可以了
            這種封裝 也很變態。  回復  更多評論
              
            久久婷婷五月综合97色直播| 亚洲va中文字幕无码久久不卡 | 18岁日韩内射颜射午夜久久成人| 香蕉久久影院| 99久久精品免费看国产一区二区三区| 日日躁夜夜躁狠狠久久AV| 久久福利青草精品资源站免费 | 久久亚洲精品无码aⅴ大香| 欧美黑人激情性久久| 久久成人18免费网站| 久久人人爽人人爽人人爽| 久久亚洲欧美国产精品| 国产精品九九久久免费视频| 99久久国产亚洲综合精品| 久久久久久毛片免费播放| 久久久亚洲精品蜜桃臀| 97久久天天综合色天天综合色hd| 久久亚洲国产精品123区| 丰满少妇人妻久久久久久| 久久人人爽人人爽AV片| 精品999久久久久久中文字幕 | 久久综合狠狠色综合伊人| 狠狠色丁香久久婷婷综合蜜芽五月| 欧美精品久久久久久久自慰| 亚洲性久久久影院| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久精品无码专区免费东京热| 国产精品亚洲美女久久久| 久久99精品久久只有精品| 午夜精品久久久久9999高清| 久久777国产线看观看精品| 色8久久人人97超碰香蕉987| 久久天天躁狠狠躁夜夜av浪潮 | 亚洲欧洲精品成人久久曰影片| 国产精品久久成人影院| 日韩精品无码久久久久久| 蜜桃麻豆WWW久久囤产精品| 久久久久久亚洲精品无码| 国产成人综合久久精品尤物| 久久91精品国产91久久麻豆| 久久久久久人妻无码|