文/江濤 2009-8-25
ace的全稱是theadaptive communicationenvironment ,中文意思是「自適應通訊環境」,它是開源的物件導向的框架(framework)。ace提供了一組c++的包裝類和一組強大的應用框架,非常方便開發各類網路應用的伺服器,當然也非常適合開發遊戲伺服器。
要更好的理解ace的定義,先來了解一下什麼是框架(framework):
如果用框架是什麼是什麼來解釋可能比較費解也比較難懂,讓我們換乙個角度來看,這個角度就是人們對「**復用」的認知的過程。首先有需要和大家有乙個共識,**復用度越高就說明它的價值越大。
最原始的**復用是什麼呢?這很簡單了,那就是在源**中拷貝貼上。
這種復用侷限性太大了,接下來就有子過程和函式,然後就有了函式庫,庫函式就是c語言的一大特色。
隨著硬體越來越強,人們對軟體產品的期望越來越高,而軟體開發的工藝卻停滯不前,在這種矛盾下產生了軟體危機,於是,人們開始思想了。物件導向就是人們思想產物中的佼佼者。於是,軟體復用進入了乙個新的層次,那就是基於類庫的函式。
物件導向曾經被寄於厚望,但是,事情上這個世界上不存在包治百病的靈丹妙藥(magic bullet),所以,當開發人員面對一些可復用的元件,想象成自己想建築工人那樣把不同磚頭堆成高樓大廈時,發現粘合不同物件之間的膠水** (glue code)比元件本身更難寫,更易出錯。 這可怎麼辦呢? 框架(framework)!這就需要框架。**的復用過程還在被推進(後面的我以後再介紹)。
ace就是框架,她不僅僅是一堆類庫,她是比類庫更好的**復用。
**復用的發展歸結如下:
拷貝貼上-->庫函式->類庫->框架-> (???)->(???)->
所以,無論您是否編寫網路程式,ace也是很好的學習範例。用白話說,ace源**大滋大補哦!
我們再看網路服務應用,為什麼說ace是開發遊戲伺服器的利器?
不管你是否寫過網路程式,有一些事實需要達成共識,那就是:
1. 網路環境很複雜。 同乙個系統,往往是由不同的網路裝置,不同時期(當時最好)的服務構成,有時還要執行不同的作業系統。
3. 網路化的應用軟體比單機的複雜。寫網路程式面臨著兩方面的挑戰。一種是固有的挑戰,那就是無論服務多麼小,都會面臨著
a) 如何選擇恰當的通訊機制和協議並有效的應用它們;
b) 如何設計網路服務來使用計算機資源並能減少以後的維護成本;
c) 如何設計有效的併發機制來讓系統達到可**性、可靠性和高效能;
d)如何部署和配置來讓服務的可用性和靈活性得到最大化。
另一種是偶發的挑戰,那就是:
e)作業系統原生的api都往往缺少型別安全、不可移植、擴充套件性差;
f)非向物件使用的是演算法分解(algorithmic decomposition)的思想,往往會導致服務很難維護和擴充套件;
h)有人說我們自己做自己的網路開發包。但這種重**現和發現,使得開發周期和成本都極大的浪費。
也許您會問,你說了這麼多,ace到底提供了哪些功能,有哪些優點呢?問得好,ace提供了編寫網路程式都會遇到的問題的解決辦法,讓您不必重頭做起。這些功能包括了:
1. 網路事件的分離並向事件處理器分派出;
2. 訊號處理;
3. 服務的初始化;
4. 程序間的通訊;
5. 共享記憶體管理;
6. 訊息處理
7. 分布式服務的動態(再)配置
8. 服務的併發執行和同步
使用ace讓您讓您的網路服務:
1) 讓可移植性更好;
2) 更好軟體的質量
3) 更高效有可**性
4) 更容易向更高層的標準的中介軟體轉移
ace的官方**是
有不少網友反應,ace太大太難學了。
呵呵,是啊,ace不是小玩意,ace已經經歷了十多年發展,歷史比windows作業系統還悠久。她包含了見多開發網路應用的方方面,支援幾乎所有的主流作業系統和編譯器,所以不小。ace的包含了數不數的貢獻者的智慧型。學習ace需要一定的基礎,需要學習者靜心修煉。
如果您想跟我學ace,歡迎和我聯絡。
什麼是ACE 為什麼它說是開發遊戲伺服器的利器?
文 江濤 2009 8 25 ace的全稱是theadaptive communicationenvironment 中文意思是 自適應通訊環境 它是開源的物件導向的框架 framework ace提供了一組c 的包裝類和一組強大的應用框架,非常方便開發各類網路應用的伺服器,當然也非常適合開發遊戲伺...
什麼是磁碟轉殖軟體?為什麼需要它?
轉殖就是乙個副本。現在已經有轉殖羊的實現,也許某一天人類也會被轉殖。但是這裡所說的磁碟轉殖有更重要的意義,它是乙個可以管理和保護資料的重要工具。讓我們來看下磁碟轉殖軟體可以做什麼。先從基本知識開始。基本上來說,磁碟轉殖是乙個將每個位元組的資訊從乙個計算機磁碟上完整複製到另乙個磁碟上的過程。通常,第乙...
為什麼翻譯它
原來想翻譯using drupa這本書的,剛開個頭,發現已經有人翻譯了,水平比我高,所以我改看他的翻譯了。位址是 url 索性自己再試一試翻譯flash with drupal這本書。題目就犯了難,先叫 flash結合durpal開發 吧。size medium 前言 size 這本書深入討論和指導...