出版時間:2012-7-30 出版社:機械工業(yè)出版社華章公司 作者:潘榮 頁數(shù):333
Tag標簽:無
前言
為什么寫作本書 軟件框架的設計始終代表著業(yè)界最高的設計水準,《設計模式》一書指出:如果說應用程序難以設計,那么工具箱就更難了,而框架則是最難的?! ”M管業(yè)界有一些大型的、常用的軟件框架,如OMG的CORBA框架、SUN的EJB框架和微軟的DCOM框架,但是很多一線的開發(fā)人員在日常的開發(fā)活動中并不和它們打交道,也很少接觸其他軟件框架。在這種情況下,我們如何來學習軟件框架的設計思想,如何讓這些思想來幫助我們設計和架構自己的軟件框架呢? ACE(Adaptive Communication Environment)是一個開源的、面向對象的網絡框架,它實現(xiàn)了很多用于并發(fā)通信軟件的核心模式,是一個非常好的軟件框架學習平臺。學習ACE所需要的特殊的專業(yè)知識非常少,讀者只要熟悉C++和網絡編程即可。有了本書可以讓你的框架學習事半功倍?! ‰m然本書還無法和參考資料中大師們的著作相比,但是其對你學習軟件框架的架構設計與實現(xiàn)原理同樣會有非常大的幫助。侯捷大師說過這樣一句話:“源碼之前,了無秘密。”本書通過框架代碼、框架使用示例、UML類圖、UML順序圖詳細分析了ACE的Reactor、Service Configurator、Task、Acceptor_Connector、Proactor和Streams等6個框架。這些圖例不僅可以幫助你從源代碼的角度學習框架的架構設計與實現(xiàn)原理,實現(xiàn)與軟件框架的一次親密接觸,還可以真正減少你學習所需的時間和精力?! 忻恳粋€框架的架構原理均來自《Pattern-Oriented Software Architecture—A System of Patterns》和《Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2》,想深入學習架構原理的讀者可以在閱讀時參考以上兩本書。
內容概要
《ace技術內幕:深入解析ace架構設計與實現(xiàn)原理》從構架模式、編程示例和源代碼3個維度系統(tǒng)地對經典網絡框架ace(adaptive
communication
environment)的架構設計和實現(xiàn)原理進行了深入分析,它能解決4個方面的問題:第一,幫助框架設計者領略軟件框架設計的普適原則和思想,進而設計出自己的軟件框架;第二,幫助ace應用開發(fā)人員加深對ace框架的理解,提升開發(fā)水平,更好地去定制和擴展ace框架,以及解決c++網絡通信中的難題;第三,幫助c++開發(fā)人員加深c++語言功底,書中有大量對c++源代碼的分析,包括網絡編程、動態(tài)庫編程和異步編程等,還涉及10余個經典的設計模式的解析;第四,增強平臺開發(fā)人員和軟件架構師的技術修養(yǎng),ace的設計和實現(xiàn)都極其優(yōu)秀,它的實現(xiàn)源碼和架構思想非常值得去學習和研究。
全書一共7章,詳細分析了ace的reactor、service
configurator、task、acceptor_connector、proactor和streams等6個框架的架構設計與實現(xiàn)原理。每個框架的分析分為3部分:第一,框架的設計分析,每個框架(除task框架)都有一個構架模式與之對應,構架模式闡述了框架的設計原理,給出了框架的總體結構,是學習框架的理論基礎;第二,框架的應用分析,每個框架都有一個應用實例與之對應,應用實例既幫助讀者了解框架的使用方法,又為讀者提供了一個可以調試的應用程序,便于讀者使用調試器探索框架的內部秘密;第三,框架的實現(xiàn)分析,這是本書的重點,對框架的實現(xiàn)原理進行了詳細的分析,并且對重點的類和流程給出了uml類圖和uml順序圖,可以讓讀者在短時間內掌握框架的實現(xiàn)技術。
書籍目錄
前 言
第1章 概述
1.1 模式與框架
1.1.1 模式
1.1.2 框架
1.1.3 模式與框架的關系
1.2 ace框架
1.3 關于本書
1.3.1 本書的內容
1.3.2 源代碼的表示
1.3.3 測試組網
1.3.4 幾個常用術語
1.4 ace socket封裝器
1.4.1 示例分析
1.4.2 socket ipc分析
1.4.3 ace_sock_acceptor類的分析
1.4.4 ace_sock_connector類的分析
1.5 進一步學習
1.6 總結
第2章 reactor框架
2.1 reactor構架模式
2.2 reactor框架概述
2.3 reactor框架應用示例
2.3.1 io事件處理器的實現(xiàn)
2.3.2 accept事件處理器的實現(xiàn)
2.3.3 main函數(shù)
2.4 事件處理器接口實現(xiàn)
2.4.1 事件處理器接口的構造與析構
2.4.2 事件處理器接口的使用規(guī)范
2.5 reactor管理器的設計分析
2.5.1 reactor管理器接口分析
2.5.2 bridge設計模式接口
2.5.3 ace_select_reactor_impl類的分析
2.5.4 ace_select_reactor_t類的分析
2.6 io事件調度的分析
2.6.1 io事件調度集的設計
2.6.2 調度集操作函數(shù)的分析
2.6.3 i o事件處理器倉庫的分析
2.6.4 io事件注冊流程的分析
2.6.5 io事件調度流程的分析
2.6.6 io事件刪除流程的分析
2.7 信號量事件調度的分析
2.7.1 信號量事件管理器的分析
2.7.2 reactor管理器中的信號量事件處理
2.7.3 信號量事件刪除流程的分析
2.8 定時器事件調度的分析
2.8.1 定時器事件管理器的分析
2.8.2 定時器事件注冊流程的分析
2.8.3 定時器事件調度流程的分析
2.8.4 定時器事件刪除流程的分析
2.9 notify事件調度的分析
2.9.1 notify事件管理器的分析
2.9.2 notify事件注冊流程的分析
2.9.3 notify事件調度流程的分析
2.10 進一步學習
2.11 總結
第3章 service configurator框架
3.1 component configurator構架模式
3.2 configurator框架概述
3.3 configurator框架應用示例1
3.3.1 配置文件
3.3.2 可配置組件
3.3.3 main函數(shù)
3.4 ace動態(tài)庫接口封裝的分析
3.5 配置組件接口的分析
3.6 組件工廠函數(shù)的分析
3.7 組件配置器設計的分析
3.7.1 組件配置器控制接口的分析
3.7.2 組件配置器實現(xiàn)的分析
3.7.3 語法分析器的分析
3.8 動態(tài)庫符號定位的分析
3.8.1 ace_location_node類分析
3.8.2 ace_object_node類的分析
3.8.3 ace_function_node類的分析
3.9 配置組件倉庫的分析
3.9.1 find函數(shù)
3.9.2 remove函數(shù)
3.9.3 suspend函數(shù)
3.9.4 resume函數(shù)
3.10 配置組件類型的分析
3.10.1 ace_service_type類
3.10.2 ace_service_type_impl類
3.10.3 ace_service_object_type類
3.10.4 ace_service_type_factory類
3.11 指令解析功能的分析
3.12 配置文件解析流程的分析
3.13 configurator框架應用示例2
3.13.1 可配置組件
3.13.2 配置文件
3.13.3 配置文件解析流程的分析
3.14 配置改變
3.15 configurator框架應用示例3
3.15.1 靜態(tài)配置組件
3.15.2 配置文件
3.15.3 靜態(tài)配置組件分析
3.16 進一步學習
3.17 總結
第4章 task框架
4.1 task框架概述
4.2 task框架應用示例
4.2.1 生產者
4.2.2 消費者
4.2.3 main函數(shù)
4.3 ace消息隊列實現(xiàn)分析
4.3.1 數(shù)據(jù)塊結構分析
4.3.2 消息塊結構的分析
4.3.3 消息隊列實現(xiàn)的分析
4.4 ace多線程編程
4.4.1 線程的創(chuàng)建
4.4.2 線程的運行
4.4.3 線程的退出
4.4.4 線程等待
4.5 task框架接口的分析
4.5.1 ace_task_base類
4.5.2 ace_task類
4.6 active object設計模式
4.6.1 模式概述
4.6.2 應用示例
4.6.3 ace_future和ace_future_rep類
4.7 進一步學習
4.8 總結
第5章 acceptor_connector框架
5.1 acceptor_connector構架模式
5.2 acceptor_connector框架概述
5.3 acceptor_connector框架應用示例
5.3.1 open函數(shù)
5.3.2 handle_input函數(shù)
5.3.3 handle_close函數(shù)
5.3.4 main函數(shù)
5.4 服務處理器接口的分析
5.4.1 open函數(shù)
5.4.2 handle_close函數(shù)
5.4.3 close函數(shù)
5.4.4 shutdown函數(shù)
5.5 acceptor設計的分析
5.5.1 ace_acceptor類
5.5.2 open函數(shù)
5.5.3 handle_input函數(shù)
5.5.4 handle_close函數(shù)
5.6 connector設計的分析
5.6.1 ace_connector類
5.6.2 阻塞模式連接的分析
5.6.3 非阻塞模式連接的分析
5.7 進一步學習
5.8 總結
第6章 proactor框架
6.1 proactor構架模式
6.2 proactor框架概述
6.3 proactor框架應用示例
6.3.1 io事件完成處理器的實現(xiàn)
6.3.2 異步acceptor的實現(xiàn)
6.3.3 main函數(shù)
6.4 事件完成處理器接口的分析
6.5 proactor管理器的設計分析
6.5.1 proactor管理器接口的分析
6.5.2 bridge設計模式接口
6.5.3 ace_posix_proactor接口分析
6.6 異步操作初始化器和操作結果分析
6.6.1 公共接口介紹
6.6.2 ace_posix_asynch_operation類
6.6.3 ace_posix_asynch_result類
6.6.4 ace_posix_asynch_read_stream_result類
6.6.5 ace_posix_asynch_read_stream類
6.7 ace_posix_aiocb_proactor管理器實現(xiàn)的分析
6.7.1 構造函數(shù)
6.7.2 start_aio函數(shù)
6.7.3 handle_events_i函數(shù)
6.7.4 find_completed_aio函數(shù)
6.7.5 start_deferred_aio函數(shù)
6.7.6 application_specific_code函數(shù)
6.8 異步非io事件調度的分析
6.8.1 ace_aiocb_notify_pipe_manager類
6.8.2 post_completion函數(shù)
6.8.3 putq_result函數(shù)
6.8.4 process_result_queue函數(shù)
6.9 定時器事件調度的分析
6.9.1 定時器事件操作結果的分析
6.9.2 定時器管理器實現(xiàn)的分析
6.10 網絡連接之accept事件調度的分析
6.10.1 reactor任務分析
6.10.2 異步acceptor分析
6.10.3 ace_posix_asynch_accept類
6.10.4 ace_posix_asynch_accept_result類
6.10.5 ace_asynch_acceptor類
6.11 proactor框架的調度分析
6.11.1 調度函數(shù)分析
6.11.2 退出調度分析
6.12 進一步學習
6.13 總結
第7章 streams框架
7.1 管道和過濾器構架模式
7.2 streams框架的概述
7.2.1 ace_task類
7.2.2 put函數(shù)
7.2.3 put_next函數(shù)
7.3 streams框架應用示例
7.3.1 logrec_reader類
7.3.2 logrec_timer類
7.3.3 logrec_suffix類
7.3.4 logrec_writer類
7.3.5 main函數(shù)
7.4 ace_module類的分析
7.4.1 open函數(shù)
7.4.2 link函數(shù)
7.4.3 ace_module的關閉
7.5 ace_stream類的分析
7.5.1 構造函數(shù)
7.5.2 open函數(shù)
7.5.3 push函數(shù)
7.5.4 close函數(shù)
7.6 進一步學習
7.7 總結
參考文獻
章節(jié)摘錄
第1章 概述 本章先介紹模式與框架的基本概念及它們之間的關系。然后介紹ACE框架的基本組成及本書的內容組織形式和約定。最后通過一個示例分析ACE的Socket封裝器(Socket Wrapper Facade)。Socket編程技術是整個網絡編程的基礎,而ACE的Socket封裝器則是ACE對Socket編程接口面向對象的封裝,它為上層提供了統(tǒng)一的、面向對象的接口,這是我們學習ACE網絡框架的基礎。 1.1 模式與框架 1.1.1 模式 自Gof(《設計模式》一書的作者四人組)對設計模式進行歸納、整理和分類,并出版了《設計模式》一書后,設計模式在軟件開發(fā)的各個領域都大放光彩。在此基礎上,各路“英雄豪杰”又對設計模式進行了更深入的研究,一時間“百花齊放、百家爭鳴”。軟件的分析與設計在面向過程、面向對象的方法的基礎之上又發(fā)展出了面向模式的分析與設計方法。更有專家預言未來的軟件開發(fā)是面向組件、面向框架的。面向組件、面向框架的軟件開發(fā)可以帶來更高的穩(wěn)定性與更好的重用性。 在《設計模式》一書中,作者引用了模式的經典定義:每一個模式都描述了一個在我們周圍不斷重復發(fā)生的問題,以及該問題的解決方案的核心,這樣就能一次又一次地使用該方案而不必做重復努力。 ……
編輯推薦
《ACE技術內幕:深入解析ACE架構設計與實現(xiàn)原理》從構架模式、編程示例和源代碼三個維度系統(tǒng)深入解讀ACE的架構設計和實現(xiàn)原理,幫助提升ACE開發(fā)人員的水平,及其對ACE定制和擴展的能力。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載