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所示。

ACE总体结构

                                                                                          图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架构设计与实现原理》从构架模式、编程示例和源代码3个维度系统地对经典网络框架ace(adaptivemunicationenvironment)的架构设计和实现原理进行了深入分析,它能解决4个方面的问题:,帮助框架设计者领略软件框架设计的普适原则和思想,进而设计出自己的软件框架;第二,帮助ace应用开发人员加深对ace框架的理解,提升开发水平,更好地去定制和扩展ace框架,以及解决c 网络通信中的难题;第三,帮助c 开发人员加深c 语言功底,书中有大量对c 源代码的分析,包括网络编程、动态库编程和异步编程等,还涉及10余个经典的设计模式的解析;第四,增强平台开发人员和软件架构师的技术修养,ace的设计和实现都极其,它的实现源码和架构思想非常值得去学习和研究。 全书共7章,详细分析了ace的reactor、serviceconfigurator、task、acceptor_connector、proactor和streams等6个框架的架构设计与实现原理。每个框架的分析分为3部分:,框架的设计分析,每个框架(除task框架)都有个构架模式与之对应,构架模式阐述了框架的设计原理,给出了框架的总体结构,是学习框架的理论基础;第二,框架的应用分析,每个框架都有个应用实例与之对应,应用实例既帮助读者了解框架的使用方法,又为读者提供了个可以调试的应用程序,便于读者使用调试器探索框架的内部秘密;第三,框架的实现分析,这是本书的重点,对框架的实现原理进行了详细的分析,并且对重点的类和流程给出了uml类图和uml顺序图,可以让读者在短时间内掌握框架的实现技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值