• <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>

            網(wǎng)絡(luò)服務(wù)器軟件開(kāi)發(fā)/中間件開(kāi)發(fā),關(guān)注ACE/ICE/boost

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
            (以前寫(xiě)的一篇文章)

            最近一直在關(guān)注ICE(http://www.zeroc.com/),不得不說(shuō)其功能的強(qiáng)大,我主要看重幾個(gè)點(diǎn):

            1.多語(yǔ)言支持,C++,Java,C#,Objective-C,Python,Ruby,PHP。

            2.高級(jí)RPC,同時(shí)支持同步調(diào)用和異步調(diào)用,由于RPC是在ICE框架環(huán)境下運(yùn)行的,所以穩(wěn)定性和可靠性可以保證。在服務(wù)端內(nèi)部使用會(huì)非常方便,比如將ICE前置在數(shù)據(jù)庫(kù)之上,所有對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)方式就成了RPC

            3.對(duì)分布式系統(tǒng)的支持-ICEGrid,涵蓋了負(fù)載均衡,位置服務(wù),計(jì)算節(jié)點(diǎn)“需要時(shí)啟動(dòng)”等眾多特性,更多內(nèi)容可以參考幫助文檔(http://www.zeroc.com/doc/index.html)。簡(jiǎn)單提一下“需要時(shí)啟動(dòng)”,就是說(shuō)某個(gè)client調(diào)用了節(jié)點(diǎn)Node1,如果Node1此時(shí)沒(méi)有啟動(dòng),則ICE負(fù)責(zé)將他啟動(dòng),這個(gè)過(guò)程對(duì)client來(lái)說(shuō)是透明的。 假如計(jì)算節(jié)點(diǎn)的邏輯上存在bug,觸發(fā)bug會(huì)引起節(jié)點(diǎn)退出。通常的做法是自己寫(xiě)一些監(jiān)控程序,如果發(fā)現(xiàn)節(jié)點(diǎn)不在了重啟動(dòng),利用ICEGrid后,就避免了這個(gè)問(wèn)題

            4.提供了基于發(fā)布-訂閱機(jī)制的消息組建ICEStorm

              上面只是我關(guān)注的幾點(diǎn),更多的功能特性,請(qǐng)參考幫助文檔!      下面以python作為web的開(kāi)發(fā)后端,來(lái)調(diào)用python寫(xiě)的ICE服務(wù),注意ICE服務(wù)可以是其他語(yǔ)言編寫(xiě)的,這個(gè)例子是修改的ICE提供的demo(D:\libs\Ice-3.3.1\demopy\book\printer),主要的功能是

                   (1)client通過(guò)瀏覽器打開(kāi)某個(gè)python頁(yè)面

                     (2) python頁(yè)面調(diào)用ICE基礎(chǔ)服務(wù)

                   (3)python頁(yè)面將結(jié)果通過(guò)瀏覽器返回給client

            一。接口文件Printer.ice內(nèi)容如下:

            #ifndef SIMPLE_ICE
            #define SIMPLE_ICE

            module Demo
            {

                interface Printer
                {
                    string echo(string s);
                };

            };

            #endif

            二。Server.py內(nèi)容如下:

            import sys,traceback,Ice

            Ice.loadSlice(’Printer.ice’)
            import Demo

            class PrinterI(Demo.Printer):
                def echo(self, s, current=None):
                    print s
                    return s

            status = 0
            ice = None
            try:
                ic = Ice.initialize(sys.argv)
                adapter = ic.createObjectAdapterWithEndpoints(”SimplePrinterAdapter”, “default -p 10000″)
                object = PrinterI()
                adapter.add(object, ic.stringToIdentity(”SimplePrinter”))
                adapter.activate()
                ic.waitForShutdown()
            except:
                traceback.print_exc()
                status = 1

            if ic:
                # Clean up
                try:
                    ic.destroy()
                except:
                    traceback.print_exec()
                    status = 1

            sys.exit(status)

            三。echo.psp內(nèi)容如下:

            <%
            import sys, traceback, Ice

            import Demo

            status = 0
            ice = None
            try:
                ic = Ice.initialize(sys.argv)
                base = ic.stringToProxy(”SimplePrinter:default -p 10000″)
                printer = Demo.PrinterPrx.checkedCast(base)
                if not printer:
                    raise RuntimeError(”Invalid proxy”)

                sEcho = printer.echo(”Hello ICE!”)
                print sEcho
            except:
                traceback.print_exc()
                status = 1

            if ic:
                # Clean up
                try:
                    ic.destroy()
                except:
                    traceback.print_exc()
                    status = 1

            %>
            <%=sEcho%>

            四。運(yùn)行過(guò)程:

            1.啟動(dòng)ICE服務(wù):python Server.py

            2.啟動(dòng)Apache

            3.瀏覽器中輸入http://localhost:8080/echo.psp

            4.此時(shí)瀏覽器中顯示:Hello ICE!

            posted on 2010-09-18 17:26 true 閱讀(4859) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): pythonICE
            久久影院午夜理论片无码| 囯产精品久久久久久久久蜜桃| 久久夜色精品国产噜噜亚洲AV| 久久99亚洲网美利坚合众国| 国产精品青草久久久久福利99| 青青热久久国产久精品| 无码国产69精品久久久久网站| 草草久久久无码国产专区| 欧美一区二区久久精品| 青青草原综合久久大伊人精品| 欧美激情精品久久久久久久| 久久精品水蜜桃av综合天堂| 久久久久久亚洲精品不卡| 亚洲αv久久久噜噜噜噜噜| 久久国产视频99电影| 欧美噜噜久久久XXX| 亚洲美日韩Av中文字幕无码久久久妻妇 | 亚洲国产天堂久久久久久| 久久精品国产亚洲av日韩| 人人狠狠综合88综合久久| 精品免费tv久久久久久久| 性欧美大战久久久久久久久| 亚洲精品无码久久毛片| 国产精品成人99久久久久91gav| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲欧美久久久久9999| 久久狠狠一本精品综合网| 99久久国产综合精品麻豆| 久久夜色精品国产欧美乱| 一本色道久久88—综合亚洲精品| 免费精品久久久久久中文字幕| 久久久久亚洲AV综合波多野结衣 | 精品久久久久中文字| 久久精品国产91久久综合麻豆自制 | 国产精品热久久无码av| 国内精品久久久久影院网站| 大蕉久久伊人中文字幕| 久久久久国产一区二区| 久久久久18| 久久香综合精品久久伊人| 久久久午夜精品福利内容|