ACE之(一)ACE概述
1 ACE概述
1.1 模式與架構
(1)軟體模式分為3類:架構模式、設計模式、慣用法。
(2)模式貫穿了軟體開發流程的幾個關鍵階段:
①系統分析:分析模式--著重於如何關注需求表面的額問題及蘊含的實質。
②系統設計:架構模式--規定了一個系統的結構特徵及子系統的體系結構。
③模組設計實現:設計模式--描述了通訊元件的一種通用的、可重用的結構,用於解決特定環境下的一般設計問題。
④實現:慣用法--特定程式語言的底層模式。
(3)當前最為常用的軟體架構主要有OMG的CORBA框架、SUN的EJB框架和微軟的DCOM框架等。
(4)《Applying UML and Patterns》一書中對軟體框架的定義:
①框架是一個內聚的介面和類的集合,這些介面和類相互協助,提供核心的服務功能和邏輯子系統不變的部分。
②框架包含了抽象的類,這些抽象類定義了框架中使用者需要遵循的約束,包含了物件的互動過程和不變數。
③通常框架的使用者需要定義框架中部分類的子類,才能定製、利用、擴充套件框架的功能。
④框架包含用抽象方法和具體方法的抽象類。
⑤框架採用Hollywood原則“不要找我們,我們會打電話給你”。通常這意味著使用者通過定義框架中既有類的子類,從框架中獲取資訊。
1.2 ACE框架
ACE(Adpative Communication Environment)是一個跨平臺的用於併發通訊的C++框架。ACE提供了豐富的可重用的C++封裝器(Wrapper Facade)和框架元件。使用ACE,開發者可以開發出高效能、實時的通訊服務和應用。ACE利用程式間通訊、事件分離、動態連結和併發技術簡化了物件導向的網路開發。ACE結構如圖1-1所示。
圖1-1 ACE結構圖
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伺服器。
1.3 ACE原始碼
(1)原始碼下載:http://download.dre.vanderbilt.edu/
(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 Socket封裝器封裝
- ACE(01):Oracle ACE 申請Oracle
- ACE(02):Oracle ACE常見問題Oracle
- Oracle ACE AssociateOracle
- 一加ace3 禁用更新
- 不止一面的百變 ACE
- omi ace markdown editor
- stencil ace markdown editor
- react-ace使用示例React
- Ace editor中文文件
- 一文總結ACE程式碼框架框架
- astro react ace markdown editor and previewerASTReactView
- lit ace markdown編輯器
- web指令碼編輯器ACE EditorWeb指令碼
- Ace Editor 擴充套件編寫初步(轉)套件
- 一個關於ace-editor編輯器的問題
- 微星MPG Z590 ACE主機板怎麼樣?微星MPG Z590 ACE主機板評測
- thinkphp + ace 後臺模板淘寶客網站PHP網站
- Boost.Asio和ACE之間關於Socket程式設計的比較程式設計
- 王牌登場!一加Ace系列正式官宣,4月21日見
- Laravel-admin 中引入 Ace 程式碼編輯器Laravel
- 阿里雲ACE認證學習知識點梳理阿里
- 雲端計算進階之路——與ACE相約
- 一加 Ace 3 售價2599元起,打造效能手機新標杆
- Flutter 125: 圖解自傳 ACE_ICON.ttf 圖示庫Flutter圖解
- 一加開啟王牌雙 11,一加 Ace 2 系列熱門機型享全程價保
- 一加 Ace 3 「鳴沙金」正式開售,以全能姿態普及旗艦體驗
- 一加 Ace 3 搭載 5500mAh 電池,續航體驗領先同檔
- Ace editor 線上網頁版的vscode!程式碼編輯器網頁VSCode
- 效能手機新標杆,一加 Ace 3 釋出會定檔 1 月 4 日
- 讓旗艦體驗全面普及 一加Ace 2定檔2月7日釋出
- 對話ACE第五期:到底什麼才是真正的HTAP?
- 【Flutter 專題】125 圖解自傳 ACE_ICON.ttf 圖示庫Flutter圖解
- Linux下簡單的ACE socket客戶端和伺服器端Linux客戶端伺服器
- 一加 Ace 2 首銷創巔峰 破近一年安卓所有機型首銷紀錄安卓
- Oracle ACE尹海文:查詢是資料庫工具的核心功能Oracle資料庫
- 火線再燃全民剛槍 ACE S2賽季熱血來襲
- ACE雙幣拆分理財dapp系統開發功能底層邏輯拆解APP