日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)其它知識(shí) → ACE自適配通信環(huán)境開源技術(shù)介紹

      ACE自適配通信環(huán)境開源技術(shù)介紹

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2011/10/1 22:00:51字體大。A-A+

      作者:西西點(diǎn)擊:170次評(píng)論:0次標(biāo)簽: 通信

      263云通信3.1.0 官方iOS版
      • 類型:辦公學(xué)習(xí)大。36KB語言:中文 評(píng)分:10.0
      • 標(biāo)簽:
      立即下載
       ACE自適配通信環(huán)境(ADAPTIVE Communication Environment)是可自由使用、開放源碼的面向?qū)ο螅∣O)框架(framework),它實(shí)現(xiàn)了許多用于并發(fā)通信軟件的核心模式。ACE提供了一組豐富的可重用C++包裝外觀(wrapper facade)和框架組件,可跨多種平臺(tái)完成通用的通信軟件任務(wù),其中包括:事件多路分離和事件處理器分派、信號(hào)處理、服務(wù)初始化、進(jìn)程間通信、共享內(nèi)存管理、消息路由、分布式服務(wù)動(dòng)態(tài)(重)配置、并發(fā)執(zhí)行和同步,等等。

      網(wǎng)絡(luò)部分的編程往往是搞得人一個(gè)頭兩個(gè)大,各種千奇百怪的問題像土行孫一樣從沒有防備的地方不斷地冒出來,如果碰巧還要還要移植到多平臺(tái)下――那還不得熬到對(duì)影成三人?

      高手當(dāng)然不用愁了:多看看資料了解一下什么VxWorks、Solaris下的API函數(shù)幾下就搞定了。對(duì)于咱們這種手沒有那么高的一般人,對(duì)還遠(yuǎn)遠(yuǎn)沒有達(dá)到草木竹石均可為劍境界的凡人來說,難道非要熬上N個(gè)通宵再加上N的N次方的調(diào)試?

      非也!

      牛頓告訴我們:若能站在巨人的肩上,豈不是能做得更好?我國古人則說:工欲善其事,必先利其器。

      如果能夠覓得傳說中的巨人,尋到那傳說中的利器,一切還不迎刃而解?

      就在這個(gè)偉大的時(shí)刻,ACE橫空出世!


      ACE的全名是ADAPTIVE Communication Environment,是一組可以自由使用的(免費(fèi)?)、開放源碼的面向?qū)ο螅∣O)的構(gòu)架。使用它可以藐視各個(gè)平臺(tái)間的差異,大大地簡化網(wǎng)絡(luò)編程,減少出錯(cuò)的機(jī)會(huì),而且更可以――打!且先把這茬兒說清楚。

      ACE對(duì)各個(gè)操作系統(tǒng)的接口函數(shù)API進(jìn)行封裝,并且用統(tǒng)一的接口形式提供給程序員。換句話說,你只需要簡單地調(diào)用ACE提供的函數(shù)形式(這些形式和常見的系統(tǒng)API非常相像),ACE就會(huì)自動(dòng)地把它轉(zhuǎn)換成你所在的平臺(tái)上的函數(shù):VxWorks的,或者Solaris,當(dāng)然更不用說大名鼎鼎的WINDOWS和Linux了。實(shí)現(xiàn)方式么,用腳指頭都能想出來:使用了非常多的條件編譯,把不同系統(tǒng)上的功能相似的API函數(shù)統(tǒng)一起來,如果沒有則模擬實(shí)現(xiàn),如果有則簡單地inline就可以了,還可以不折損效率。此其一也!

      想不到還有其二吧?ACE將面向?qū)ο蟮乃枷脒\(yùn)用到這些函數(shù)里面,對(duì)網(wǎng)絡(luò)編程等部分的功能進(jìn)行改造,建立起面向?qū)ο蟮哪P。比如,ACE將連接的一方處理成為一個(gè)對(duì)象,將一個(gè)連接處理成為一個(gè)對(duì)象,先前的操作則被封裝成為對(duì)象的功能。切不可小覷這一點(diǎn)。要知道,這樣就可以運(yùn)用面向?qū)ο蟮乃枷雭順?gòu)建應(yīng)用,而且OO的類型保護(hù)機(jī)制可以把一大批錯(cuò)誤從運(yùn)行時(shí)提前到編譯階段。當(dāng)然,如果有誰特別有個(gè)性,特別喜歡用那種C語言的函數(shù)方式的,ACE也提供有那樣的形式的函數(shù)來滿足這種不一般的胃口。

      光說不練是沒有用的,且讓我用一個(gè)小例子來鎮(zhèn)一鎮(zhèn)那些不服的眼睛。(限于篇幅,我只在這里列出最核心的代碼:

      int main(int, char *[])

      {

      ACE_INET_Addr port_to_listen (9999);

      ACE_SOCK_Acceptor acceptor;



      acceptor.open (port_to_listen, 1);



      while (1)

      {

      ACE_SOCK_Stream peer;

      ACE_INET_Addr peer_addr;

      ACE_Time_Value timeout (10, 0);



      if( 0 == acceptor.accept (peer, &peer_addr, &timeout, 0))

      {



      char buffer[4096];

      ssize_t bytes_received;



      while ((bytes_received = peer.recv (buffer, sizeof(buffer))) != -1)

      {

      peer.send_n (buffer, bytes_received);

      }

      peer.close ();

      }

      }



      return 0;

      }

      寥寥數(shù)行代碼,就已經(jīng)實(shí)現(xiàn)了一個(gè)完整的服務(wù)器:它在9999端口上開始偵聽,接受一個(gè)TCP連接,把它發(fā)過來的數(shù)據(jù)返還回去。如果業(yè)務(wù)完成,則斷開連接,接受下個(gè)連接,開始下一個(gè)循環(huán)。只要給這段代碼包含進(jìn)需要的頭文件,加上幾句錯(cuò)誤處理,放到ACE的編譯環(huán)境下――無論是WINDOWS, Linux的,還是UNIX的――都可以編譯運(yùn)行。


      如果ACE的功能僅限于此,可能還不足以支持它取得如此大的成就:ACE在西方的應(yīng)用已經(jīng)遍及電信、航空、保險(xiǎn)、軍事、天文、游戲等眾多的領(lǐng)域。事實(shí)上,上面所說的功能僅僅占據(jù)了ACE代碼的10%左右。剩下的部分,ACE實(shí)現(xiàn)了更為了不起的功能。

      ACE融合通訊領(lǐng)域的各個(gè)優(yōu)秀的模式,利用它已經(jīng)建立起來的可移植到多平臺(tái)的OS層函數(shù)(就是上面所說的那一部分),建立起一個(gè)個(gè)精巧的框架。這些模式都是作者等眾多的工程師在實(shí)踐中積累起來的優(yōu)秀經(jīng)驗(yàn)。實(shí)際上,利益于開源的思想,現(xiàn)在全世界有一千七百多位工作者和數(shù)百人的核心團(tuán)隊(duì)進(jìn)行ACE的進(jìn)一步開發(fā)?梢赃@么說,使用ACE,你不是站在一位巨人的肩膀上,而是站在全世界一千七百多人的肩膀上。由此你只需對(duì)現(xiàn)有框架進(jìn)行擴(kuò)展,大大縮短開發(fā)的過程,并且極大地提高程序?qū)τ布氖褂眯狮D―而這是已經(jīng)被證明的。

      ACE主要提供以下幾種框架供網(wǎng)絡(luò)程序的開發(fā):

      l 事件多路分離組件:ACE Reactor(反應(yīng)堆)和Proactor(前攝器)是可擴(kuò)展的面向?qū)ο蠖嗦贩蛛x器,它們分派應(yīng)用特有的處理器,以響應(yīng)多種類型的基于I/O、定時(shí)器、信號(hào)和同步的事件。

      l 服務(wù)初始化組件:ACE Acceptor(接受器)和Connector(連接器)組件分別使主動(dòng)和被動(dòng)的初始化任務(wù)與初始化一旦完成后通信服務(wù)所執(zhí)行的應(yīng)用特有的任務(wù)去耦合。

      l 進(jìn)程和線程管理:提供多進(jìn)程和多線程的派生和管理方法,消除了平臺(tái)的差異性。

      l 服務(wù)配置組件:ACE Service Configurator(服務(wù)配置器)支持應(yīng)用的配置,這些應(yīng)用的服務(wù)可在安裝時(shí)和/或運(yùn)行時(shí)動(dòng)態(tài)裝配。

      l 分層的流組件:ACE Stream組件簡化了像用戶級(jí)協(xié)議棧這樣的由分層服務(wù)組成的通信軟件應(yīng)用的開發(fā)。

      l 命名服務(wù):ACE NamingService提供了單進(jìn)程命名上下文、同一節(jié)點(diǎn)共享命名上下文和在網(wǎng)絡(luò)上命名上下文的服務(wù)設(shè)施。

      除此以外,ACE還提供了信號(hào)、線程安全與同步、內(nèi)存管理等等多種豐富的功能。ACE已經(jīng)成長成為一個(gè)完善的系統(tǒng),在網(wǎng)絡(luò)編程方面,能夠提供非常豐富的服務(wù)。

      ACE會(huì)因此而滿足嗎?當(dāng)然不,那樣它只能逐漸被淘汰。當(dāng)前ACE正在完善它的高級(jí)分布式計(jì)算中間件組件,并且制定了多個(gè)項(xiàng)目計(jì)劃進(jìn)一步擴(kuò)充和發(fā)展ACE的功能。所以,使用ACE不用擔(dān)心所學(xué)的知識(shí)會(huì)因時(shí)間而貶值,而事實(shí)上正好與此相反。


      利劍在手,當(dāng)然要學(xué)會(huì)怎么運(yùn)用才能發(fā)揮它的最大功用了。ACE的創(chuàng)建者為我們寫好了三本教材,一套兩卷的《C++網(wǎng)絡(luò)編程》和一本《ACE程序員指南》,都有中譯本發(fā)行。此外,網(wǎng)上有大量的資料可供查詢。如果對(duì)ACE的設(shè)計(jì)感興趣,那再簡單不過了:你可以閱讀它的全部的源代碼:ACE是完全開源的!

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)