(1)軟體模式分為3類:架構模式、設計模式、慣用法。
(2)模式貫穿了軟體開發流程的幾個關鍵階段:
①系統分析:分析模式--著重於如何關注需求表面的額問題及蘊含的實質。
②系統設計:架構模式--規定了乙個系統的結構特徵及子系統的體系結構。
③模組設計實現:設計模式--描述了通訊元件的一種通用的、可重用的結構,用於解決特定環境下的一般設計問題。
④實現:慣用法--特定程式語言的底層模式。
(3)當前最為常用的軟體架構主要有omg的corba框架、sun的ejb框架和微軟的dcom框架等。
①框架是乙個內聚的介面和類的集合,這些介面和類相互協助,提供核心的服務功能和邏輯子系統不變的部分。
②框架包含了抽象的類,這些抽象類定義了框架中使用者需要遵循的約束,包含了物件的互動過程和不變數。
③通常框架的使用者需要定義框架中部分類的子類,才能定製、利用、擴充套件框架的功能。
④框架包含用抽象方法和具體方法的抽象類。
⑤框架採用hollywood原則「不要找我們,我們會打**給你」。通常這意味著使用者通過定義框架中既有類的子類,從框架中獲取資訊。
圖1-1ace結構圖
ace的結構可以分為以下結構部分:
(1)ace作業系統適配層和c++封裝器
ace是乙個跨平台的通訊框架,支援windows、unix、linux以及vxworks等常用作業系統。作業系統適配層直接駐留在作業系統介面之上,主要用於遮蔽各類作業系統的差異,增強ace的可移植性和可維護性。c++封裝器為上層提供統一的物件導向的介面,這些型別安全的c++介面可以大大簡化應用程式的開發。這一層主要採用facade設計模式封裝各主要作業系統的常用功能。
①併發和同步:多程序、多執行緒和同步功能。
②程序間通訊和共享記憶體:本機及遠端間通訊和共享記憶體功能。
③事件分離:同步和非同步i/o、定時器、訊號、同步事件的分離功能。
⑤檔案系統:檔案和目錄服務。
(2)框架
ace架構是乙個在作業系統適配層和c++封裝器之上的網路程式設計框架,可以分為以下幾個元件:
①事件分離元件:包括reactor和proactor框架,它們為應用程式響應特定i/o、定時器、訊號和同步事件提供分離和排程功能。
②服務初始化元件:acceptor_connector框架,它將網路通訊的初始化和應用程式的處理解耦。
③服務配置元件:service configurator框架,它使得應用程式的配置功能可以延緩到執行期。
④task元件:task框架,主要應用於多執行緒的併發程式設計。
⑤流元件:streams框架,它為處理流資料的系統提供了結構。
⑥orb介面卡元件:orb adapter,ace使用它可以實現與corba的無縫整合。
(3)分布式服務庫和元件
除了作業系統適配層、c++封裝器和框架元件外,ace還提供了包裝成自包含組建的額標準分布式服務庫。
①可重用的分步式應用元件塊:提供可重用的分布式應用模組,如命名服務、事件路由服務、日誌服務等。
②框架應用例項:演示怎樣使用reactor、service configurator、acceptor_connector、active object以及ipc這樣的ace元件來有效地開發靈活、高校、可靠的通訊軟體。
(4)分布式計算中介軟體元件
在ace中還繫結了如下的高層中介軟體元件:
①ace orb(tao):利用ace框架和模式實現的實時corba。
②jaws:利用ace框架和模式實現的自適應web伺服器。
(2)原始碼介紹
按照參考文獻[1]中的介紹,ace-6.0.0包的源**的組織結構圖如圖1-2所示。ace的主要**在ace目錄下,它包含了作業系統適配層、c++封裝器和網路程式設計框架的**。
圖1-2 展開後的ace+tao-6.0.0的**組織
【早在18年3月份就知道要使用ace,當工作生活瑣事+懶惰讓學習過程一拖再拖,大致看了下《ace程式設計師指南》,但看的很矇圈,而且沒有總結,現在準備結合《ace技術內幕:深入解析ace架構設計與實現原理》在學習一下。】
[1] ace技術內幕:深入解析ace架構設計與實現原理
ACE篇之一 使用ACE日誌設施
1 前言 使用ace日誌設施的主要巨集如下 ace debug 常用 用於除錯語句 ace error 常用 用於警告和錯誤 ace trace 用於跟蹤資訊 2 新建控制台專案log practice vs2008 3 刪除自動生成的其它所有檔案,僅僅保留log practice.cpp檔案 4 ...
ACE篇之一 使用ACE日誌設施
1 前言 使用ace日誌設施的主要巨集如下 ace debug 常用 用於除錯語句 ace error 常用 用於警告和錯誤 ace trace 用於跟蹤資訊 2 新建控制台專案log practice vs2008 3 刪除自動生成的其它所有檔案,僅僅保留log practice.cpp檔案 4 ...
ACE的功能概述
ace從功能上大致分為如下幾個方面 ace os 層 ace os 層封裝了平台相關的函式和定義,例如 ace os strlen,ace os closesocket 等,這些封裝的意義在於使ace做到與平台無關,乙個比較好的例子是 socket 的定義,在 linux 上為 int 型別,在 w...