一:ACE简介

  ADAPTIVE 通信环境(ACE,ADAPTIVE Communication Enviroment)是一种广泛的主机基础设施中间件,ACE可以免费获得,可以在http://ace.ece.uci.edu/ 或 http://www.riverace.com 下载到它。为分离关系、降低复杂度、允许功能模块的划分、ACE被设计为层次化体系结构。ACE软件包的基础是ACE OS Adaptive 层和c++ wrapper facades 的结合,它封装了核心OS并发网络编程机制。ACE 的较高层建立在这一基础之上,提供了可复用的框架、网络服务组件、基于标准的中间件等。这些中间件层联合起来,简化了网络应用程序的创建、组成、配置和移植,但不会导致显著的性能开销。

  

1:ACE OS Adaptive 层
    它由一个名为ACE_OS的类构成,此类包含了500多个C++静态方法(static method).这些方法封装了原始的、基于C的OS API,隐藏了"和平台相关"的细节、展示了统一的OS机制接口,供高级的ACE层使用。ACE_OS adaptive 层使得ACE的可移植性和可维护性变得单纯;只用ACE开发者----而不是应用程序开发者 需要了解ACE wrapper facade 底层的、和平台相关的神秘知识。
 
2:ACE C++ Wrapper Facade 层
   Wrapper facade 由一个或多个类组成,这些类将函数和数据封装在类型安全的"面向对象"接口中。ACE C++ Wrapper facade 层位于 OS adaptation 层之上,并提供了大致相同的功能,
ACE 提供了一套庞大的的Wrapper facade,几乎占整个代码库的50%,通过有选择地继承、聚合和(或)实例化这些Wrapper facade,应用程序可以结合、提炼这些Wrapper facade。
 
3:ACE framework 层
  ACE 中剩下的40%是面向对象框架。它们是多组集成在一起、相互合作的类,用来为一组相关应用提供可复用的软件架构,为获得成功的、系统化的可复用性,面向对象框架很关键;因为它们补充、加强了其他复用技术,如类库、组件、模式。例如,较之复用“单独的类”或“独立的函数”,ACE框架加强了“和应用相关的类”和“独立于应用的类”之间的集成与合作,可以获得更大范围的软件可复用性。ACE框架集成、扩充了C++ wrapper facade类;它们运用高级的并发和网络编程模式,具体化了ACE中多组相关类之间的标准控制流程和合作。
 
4:ACE 网络组件层
    除了前面讲述的主机基础设施中间件Wrapper facade 和 framework 之外,ACE还提供了一个网络服务库,库中的服务都被包装成组件,所谓组件指的是软件系统中一个"被封装的部分",用来实现特定的一个或一组服务。虽然ACE本身并不包括这些组件,但它们被捆绑在ACE软件的发行包中,用来提供以下功能:
    演示“ACE 功能的常见使用方式”--------这些组件用来演示如何通过主要的ACE框架和类来开发灵活、高效、健壮的网络服务。
    提取“可复用的网络应用构件”-------------这些组件可以为常见的网络应用服务(如 名称管理、事件路由处理、日志记录、时间同步和网络锁定)提供可复用的实现。
 
///////////
 

ACE工具概述的更多相关文章

  1. TMS320C54x系列DSP指令和编程指南——第1章 汇编语言工具概述

    第1章 汇编语言工具概述 TMS320C54x DSP的汇编语言开发工具包括: ■  Assembler      ■  Archiver      ■  Linker      ■  Absolut ...

  2. IBM Installation Manager 工具概述(转)

    IBM Installation Manager 工具概述 IBM Installation Manager 是一款可运行在多种平台(如 IBM i. z/OS. Windows. Linux.Uni ...

  3. 性能测试学习第二天_性能测试工具概述Loadrunner介绍

    性能测试工具概述Loadrunner介绍 http://www.51testing.com/html/42/n-6542.html 其中,T直接影响用户体验时间 性能测试的原理: 记录一个访问过程的通 ...

  4. Android开发专业名词及工具概述

    前言: 系统的学习下Android开发中涉及到的一些专业名词 和Android开发工具 名词: 一.SDK(Software Development Kit) 软件开发工具包:一般都是一些软件工程师为 ...

  5. 《Android Studio实用指南》7.1 AndroidStudio代码检查工具概述

    本文节选自<Android Studio实用指南> 作者: 毕小朋 目前本书已上传到百度阅读, 在百度中搜索[Anroid Studio实用指南]便可以找到本书. Android Stud ...

  6. 《Android Studio有用指南》7.1 AndroidStudio代码检查工具概述

    本文节选自<Android Studio有用指南> 作者: 毕小朋 博客: http://blog.csdn.net/wirelessqa 眼下本书已上传到百度阅读, 在百度中搜索[Anr ...

  7. Scribe日志收集工具

    Scribe日志收集工具 概述 Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文 ...

  8. OProfile 性能分析工具

    OProfile 性能分析工具 官方网站:http://oprofile.sourceforge.net/news/ oprofile.ko模块本文主要介绍Oprofile工具,适用系统的CPU性能分 ...

  9. Visual C++内存泄露检测—VLD工具使用说明[转]

    Visual C++内存泄露检测—VLD工具使用说明 一.        VLD工具概述 Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具.他的 ...

随机推荐

  1. 基于keras的BiLstm与CRF实现命名实体标注

    众所周知,通过Bilstm已经可以实现分词或命名实体标注了,同样地单独的CRF也可以很好的实现.既然LSTM都已经可以预测了,为啥要搞一个LSTM+CRF的hybrid model? 因为单独LSTM ...

  2. Python OJ 从入门到入门基础练习 10 题

    1.天天向上的力量: 一年365天,以第1天的能力值为基数,记为1.0.当好好学习时,能力值相比前一天提高N‰:当没有学习时,由于遗忘等原因能力值相比前一天下降N‰.每天努力或放任,一年下来的能力值相 ...

  3. SSE(Server-sent events)技术在web端消息推送和实时聊天中的使用

    最近在公司闲着没事研究了几天,终于搞定了SSE从理论到实际应用,中间还是有一些坑的. 1.SSE简介 SSE(Server-sent events)翻译过来为:服务器发送事件.是基于http协议,和W ...

  4. Angular开发实践(六):服务端渲染

    Angular Universal Angular在服务端渲染方面提供一套前后端同构解决方案,它就是 Angular Universal(统一平台),一项在服务端运行 Angular 应用的技术. 标 ...

  5. 测试对bug如何分析和定位

    如何去区分一个功能测试工程师的水平高和低? 可以从很多个方面去检查,比如测试的思路, 比如测试用例的覆盖度?,比如测试出bug是否能够定位到根因? 上面说的各个方面都很合理,那我们平常如何如更深的定位 ...

  6. [15单片机] STC15F104W开发入门及模拟串口程序

    STC15F104W开发入门及模拟串口程序 Saturday, 31. March 2018 09:42AM - beautifulzzzz 前言 最近找到一款51内核的SOP8封装的8脚单片机STC ...

  7. 第二次作业--------STEAM

    --------------------------------------第一部分 产品介绍----------------------------------------------------- ...

  8. 201621123025《Java程序设计》第1周学习总结

    201621123025<Jave程序设计>第一周学习总结 1.本章学习总结 对于java这门课程,如果不会编码那么会很难学会如何去使用它,而在大一的一二学期的专业课--C语言和数据结构我 ...

  9. mvc架构模式概念

    MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器".MVC应用程序总是由这三个部分组成.Event(事件)导致C ...

  10. Flask 学习 十四 测试

    获取代码覆盖报告 安装代码覆盖工具 pip install coverage manage.py 覆盖检测 COV = None if os.environ.get('FLASK_COVERAGE') ...