出版時間:2012-7 出版社:科學出版社 作者:Douglas C.Schmidt 頁數(shù):326 字數(shù):523000 譯者:葉斌
Tag標簽:無
內(nèi)容概要
你需要開發(fā)能被快速定制的靈活軟件嗎?你需要給自己的軟件添加框架的威力并提高其效率嗎?自適應通信環(huán)境(ACE)就是這樣一種用于構(gòu)建高性能網(wǎng)絡應用和下一代中間件的開放源碼工具包。ACE的威力和靈活性來自面向?qū)ο蟮目蚣?,通過它可以獲得對網(wǎng)絡應用的系統(tǒng)化復用。ACE框架不僅能處理常用的網(wǎng)絡編程任務,還能借助C++語言的各種特性對其進行定制,以生成完整的分布式應用。
本書重點講述ACE的各個框架,全面涵蓋了作為其架構(gòu)的基礎概念、模式和使用規(guī)則。本書是設計面向?qū)ο罂蚣艿膶嵱弥改希瑫r也告訴開發(fā)者,怎樣將框架應用到并發(fā)的網(wǎng)絡應用中?!禖++網(wǎng)絡編程卷1》主要介紹了ACE和wrapperfacade(包裝器外觀),它們是網(wǎng)絡計算的基礎成分,卷2則解釋了如何在包裝器外觀之上創(chuàng)建框架,以提供更高級別的通信服務。
本書由ACE社區(qū)的兩位專家撰寫,內(nèi)容包括:
◎ACE各個框架綜述
◎網(wǎng)絡服務的設計空間
◎?qū)χ匾腁CE框架提供其關(guān)鍵能力的描述
◎大量C++代碼示例,演示如何使用ACE框架
本書將教會開發(fā)者如何使用框架快速編寫網(wǎng)絡應用,同時降低開發(fā)難度和工作量。對于任何從事網(wǎng)絡應用開發(fā)的C++程序員,本書都是無法估量的財富。
作者簡介
作者:(美國)休斯頓(Stephen D.Huston) (美國)施密特(Douglas C.Schmidt) 譯者:王成章 白曉明 彭雪
書籍目錄
第1章 用于網(wǎng)絡編程的面向?qū)ο蟮目蚣?br /> 1.1 面向?qū)ο蟮目蚣芫C述
1.2 軟件開發(fā)與復用技術(shù)的比較
1.2.1 框架與類庫之間的比較
1.2.2 框架與組件之間的比較
1.2.3 框架與模式之間的比較
1.2.4 框架與模型集成式計算之間的比較
1.3 在網(wǎng)絡編程中應用框架
1.4 漫游ACE框架
1.4.1 ACE綜述
1.4.2 ACE框架概要
1.5 示例:網(wǎng)絡日志服務
1.6 小結(jié)
第2章 服務以及配置的設計空間
2.1 服務以及服務器設計空間
2.1.1 短持續(xù)時間服務與長持續(xù)時間服務
2.1.2 內(nèi)部服務與外部服務
2.1.3 有狀態(tài)服務與無狀態(tài)服務
2.1.4 分層式/模塊化服務與整體式服務
2.1.5 單服務服務器與多服務服務器
2.1.6 一次性服務器與持續(xù)式服務器
2.2 設計空間的配置
2.2.1 靜態(tài)命名與動態(tài)命名
2.2.2 靜態(tài)鏈接與動態(tài)鏈接
2.2.3 靜態(tài)配置與動態(tài)配置
2.3 小結(jié)
第3章 ACE Reactor框架
3.1 綜述
3.2 ACE_Time_Value類
3.3 ACE_Event_Handler類
3.4 ACE定時器隊列類
3.5 ACE_Reactor類
3.6 小結(jié)
第4章 ACE Reactor實現(xiàn)
4.1 綜述
4.2 ACE_Select_Reactor類
4.3 ACE_TP_Reactor類
4.4 ACE_WFMO_Reactor類
4.5 小結(jié)
第5章 ACE Service Configurator框架
5.1 綜述
5.2 ACE_Service_Object類
5.3 ACE_Service_Repository類
5.4 ACE_Service_Config類
5.5 小結(jié)
第6章 ACE Task框架
6.1 綜述
6.2 ACE_Message_Queue類
6.3 ACE_Task類
6.4 小結(jié)
第7章 ACE Acceptor-Connector框架
7.1 綜述
7.2 ACE_Svc_Handler類
7.3 ACE_Acceptor類
7.4 ACE_Connector類
7.5 小結(jié)
第8章 ACE Proactor框架
8.1 綜述
8.2 異步I/O工廠類
8.3 ACE_Handler類
8.4 前攝式Acceptor-Connector類
8.5 ACE_Proactor類
8.6 小結(jié)
第9章 ACE Streams框架
9.1 綜述
9.2 ACE_Module類
9.3 ACE_Stream類
9.4 小結(jié)
術(shù)語表
參考文獻
章節(jié)摘錄
版權(quán)頁: 插圖: 顯式動態(tài)鏈接:允許一個應用程序去獲取、使用,以及去除特定的與函數(shù)或者數(shù)據(jù)相關(guān)的,在DLL中定義的符號的運行時的地址綁定。包括UNIX函數(shù)(dlopenO、dlsymO和dlcloseO)以及Windows函數(shù)(LoadLibraryO、GetProcAddressO和FreeLibraryO)在內(nèi)的顯式動態(tài)鏈接機制都是主流操作系統(tǒng)所支持的。 動態(tài)鏈接能夠在減少內(nèi)存中的進程以及存儲在磁盤中的程序鏡像的內(nèi)存消耗方面提供幫助。理想的情況是只有DLL代碼的一個副本會存在,無論同時執(zhí)行DLL代碼的進程的數(shù)量有多少。 當在動態(tài)鏈接以及靜態(tài)鏈接之間作出選擇時,開發(fā)人員必須仔細地在靈活性、安全性,以及健壯性與時間以及空間效率的潛在益處之間進行權(quán)衡。以下是采用動態(tài)鏈接的一些劣勢。 安全性以及健壯性的問題。一個動態(tài)鏈接應用程序可能不如靜態(tài)鏈接應用程序的安全性以及健壯性高。它可能會更加不安全,這是由于特洛伊木馬可以被植入到DLL中。由于一個錯誤DLL可能會破壞在相同應用程序進程中其他代碼或者數(shù)據(jù)的狀態(tài),所以它的健壯性可能會更差。 運行時負載。動態(tài)鏈接與靜態(tài)鏈接相比較而言,可能會帶來更多的運行時負載。除了打開以及映射多個文件之外,在DLL中的外部符號地址必須在文件被加載的內(nèi)存位置的基礎上進行調(diào)整。縱然懶散的鏈接能夠減輕這一影響,但是它還是值得注意的,特別是在DLL首次被加載進入內(nèi)存的時候。此外,生成與位置無關(guān)的代碼的編譯器常常采用額外的間接層次去解析方法調(diào)用,以及訪問DLL內(nèi)部的全局變量。 過度的抖動。時間關(guān)鍵的應用程序可能無法容忍鏈接DLL進入一個進程,以及動態(tài)解析方法地址的延遲。 因此,你應該憑經(jīng)驗來評估動態(tài)鏈接的影響,以便判定它對于你的應用程序是否真是一個問題。 2.2.3靜態(tài)配置與動態(tài)配置 正如2.1節(jié)中描述的那樣,網(wǎng)絡應用程序常常提供或者采用各種各樣的服務。通過將在2.2.1以及2.2.2小節(jié)中描述的命名以及鏈接空間結(jié)合在一起,我們能夠?qū)⒕W(wǎng)絡應用程序服務分成被靜態(tài)配置的和被動態(tài)配置的。正如在2.2.2節(jié)中討論的那樣,在這一空間中主要的權(quán)衡包括可拓展性、安全性、可靠性,以及效率。 靜態(tài)配置指的是與初始化一個包含靜態(tài)命名服務(也就是說,將每一種服務開發(fā)成一個獨立的函數(shù)或者類)的應用程序。
編輯推薦
《C++網(wǎng)絡編程(卷2):基于ACE和框架的系統(tǒng)化復用》重點講述ACE的各個框架,全面涵蓋了作為其架構(gòu)的基礎概念、模式和使用規(guī)則。《C++網(wǎng)絡編程(卷2):基于ACE和框架的系統(tǒng)化復用》是設計面向?qū)ο罂蚣艿膶嵱弥改?,同時也告訴開發(fā)者,怎樣將框架應用到并發(fā)的網(wǎng)絡應用中。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載