• <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>
            cyt
            剛剛搬來這個溫暖的C++大家庭,就已經發現有高手在開發C++的RMI了。

            我一直都在留意www.codeproject.com的一個項目:http://www.codeproject.com/threads/RMI_For_Cpp.asp
            作者并在不斷的完善中,但也基本上能用了。
            calvin前幾天又提醒過我一次,一個久違的project:http://acdk.sourceforge.net/ 里面也實現了類似的RMI技術。(當然是模仿Java的RMI,而且模仿得很像)。

            個人比較討厭類似于ICE那種,需要通過一個外部工具編譯IDL的做法,不利于集成開發:老要在IDE上做些手腳,以實現自動預編譯;要找相應的語法解釋器解釋IDL,否則編輯困難;由于不是源代碼的一部分,代碼管理上經常會有些混亂……所以反而比較喜歡類似于RMI for c++這種,把接口的描述也作為源代碼的一部分。而且由于都是C++語言的一部分,不會有太多的額外工作。

            但在本人的實際工作中,RMI卻不如想象中這么有效。
            首先,就是參數傳遞。很多情況下,調用一個函數,會傳入一些參數。既然是面向對象開發,傳入一個對象的情況是不可避免的。例如:
            int func(TMyObject & a);
            TMyObject可能是一個很龐大,很復雜的類,但func里面可能只需要訪問其中80%的成員變量。但是只通過IDL的接口,不可能知道究竟函數里面需要哪些數據,所以一般根據IDL生成的輔助代碼,都會是把整個TMyObject對象序列化并傳遞。當TMyObject相當龐大的時候,這個浪費相當厲害。更好的做法只好把func所需要的參數逐個排列出來作為func的參數。但這樣func用起來就變得極為麻煩了。
            其次就是數據流的處理問題。經常會出現類似于int func(stream & a, stream & b);的函數調用。對于客戶端,缺省的實現容易理解,按順序把兩個stream中的數據序列化就可以了。但是在服務器端,代碼就沒有這么好寫了。由于stream一般都是一個虛類,因此IDL生成的輔助代碼就要想辦法用一種具體stream子類,把網絡數據先收下來,然后再傳給實際的func函數。而這個stream的子類也比較頭疼,應該選內存還是臨時文件呢?還是更智能一點,小數據內存、大數據文件呢?但無論是哪種方法,都要考慮數據的回收和生存期的問題。另外不爽的地方就是數據要接收完畢才能真正執行func,從而數據是多拷貝了一次了。

            當然這里所說的問題對于一般應用都無關痛癢,但對于一些性能要求比較高的場合,RMI自動生成的stub就無能為力了。
            RMI往往也和反射、成員序列化等技術相關。而且通常還要涉及到通訊版本差異處理、異常處理等等。像ICE還增加了異步處理、對象發現等等。所以要做一個完整的RMI,的確不是容易的事情。
            posted on 2005-10-08 17:24 cyt 閱讀(1774) 評論(2)  編輯 收藏 引用 所屬分類: Work
            Comments
            • # re: C++的RMI之我想
              江南白衣
              Posted @ 2005-10-11 12:18
              偶像來啦~~~  回復  更多評論   
            • # re: C++的RMI之我想
              nomad
              Posted @ 2005-10-21 18:07
              vc 7.1 已經有 attribute 功能了。根據這個 attribute 會自動生成代理類,但是文件并不會 Gen 出來...。
              不過只是在 ms c++ 編譯器才能這樣做,并不是 c++ 規范。  回復  更多評論   
             
            亚洲性久久久影院| 色综合合久久天天综合绕视看| 99久久婷婷国产一区二区| 亚洲乱亚洲乱淫久久| 无码精品久久一区二区三区| 久久久无码精品亚洲日韩蜜臀浪潮| 日本强好片久久久久久AAA| 青青草国产精品久久| 国产精品久久久久久久久久影院| A狠狠久久蜜臀婷色中文网| 久久国产免费| 国产精品一久久香蕉产线看 | 亚洲精品美女久久久久99小说| 久久久精品国产| 久久国产精品偷99| 日韩人妻无码精品久久久不卡| 久久91精品综合国产首页| 亚洲伊人久久精品影院| 久久影院午夜理论片无码| 狠狠色婷婷综合天天久久丁香 | 久久91精品国产91久久户| 国产精品久久久香蕉| 7国产欧美日韩综合天堂中文久久久久| 久久久这里只有精品加勒比| 久久精品国产精品青草| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲精品综合久久| 久久精品中文字幕有码| 久久国产免费直播| 久久精品国产99久久香蕉| 久久婷婷激情综合色综合俺也去| 久久精品国产色蜜蜜麻豆| 四虎久久影院| 亚洲精品第一综合99久久| 亚洲精品高清一二区久久| 亚洲精品tv久久久久| 久久亚洲国产成人影院| 97久久婷婷五月综合色d啪蜜芽| 国产亚洲美女精品久久久2020| 狠狠色综合网站久久久久久久高清 | 久久久青草久久久青草|