ACE综述

news2024/11/16 5:50:44

1、ACE综述        

        ACE自适配通信环境(ADAPTIVE Communication Environment)是可自由使用、开放源码的面向对象(OO)框架(framework),它实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可重用C++包装外观(wrapper facade)和框架组件,可跨多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。

        ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE使系统的配置和重配置得以自动化。

        ACE正在进行持续的改进。Riverace公司()采用开放源码商业模式对ACE进行商业支持。此外,ACE开发组的许多成员目前正在进行The ACE ORB(TAO,)的开发工作。

2、使用ACE的好处

        (1)增强可移植性:在ACE组件的帮助下,很容易在一种OS平台上编写并发网络应用,然后快速地将它们移植到各种其他的OS平台上。而且,因为ACE是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或编译器上。

        (2)更好的软件质量:ACE的设计使用了许多可提高软件质量的关键模式,这些质量因素包括通信软件灵活性、可扩展性、重用性和模块性。

        (3)更高的效率和可预测性:ACE经仔细设计,支持广泛的应用服务质量(QoS)需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能,以及实时应用的可预测性。

        (4)更容易转换到标准的高级中间件:TAO使用了ACE提供的可重用组件和模式。它是CORBA的开发源码、遵循标准的实现,并为高性能和实时系统作了优化。为此,ACE和TAO被设计为能良好地协同工作,以提供全面的中间件解决方案。

3、ACE构架

        ACE还包含一个高级的网络编程框架,集成并增强了较低层次的C++包装外观。该框架支持将并发分布式服务动态配置进应用。ACE的框架部分包含以下组件:

        (1)事件多路分离组件:ACE Reactor(反应器)和Proactor(前摄器)是可扩展的面向对象多路分离器,它们分派应用专有的处理器,以响应多种类型的基于I/O、定时器、信号和同步的事件。

        (2)服务初始化组件:ACE Acceptor(接受器)和Connector(连接器)组件分别使主动和被动的初始化任务与初始化一旦完成后通信服务所执行的应用专有的任务去耦合。

        (3)服务配置组件:ACE Service Configurator(服务配置器)支持应用的配置,这些应用的服务可在安装时和/或运行时被动态装配。

        (4)分层的流组件:ACE Stream组件简化了像用户级协议栈这样的由分层服务组成的通信软件应用的开发。

        (5)ORB适配器组件:通过ORB适配器,ACE可以与单线程和多线程CORBA实现进行无缝集成。

        ACE框架组件便利了通信软件的开发,它们无需修改、重编译、重链接,或频繁地重启运行中的应用,就可被更新和扩展。在ACE中,这样的灵活性是通过结合以下要素来获得的:

        (1)C++语言特性,比如模板、继承和动态绑定,

        (2)设计模式,比如抽象工厂、策略和服务配置器,以及(3)OS机制。

4、分布式服务和组件

        除了OS适配层、C++包装外观和框架组件,ACE还提供了包装成自包含组件的标准分布式服务库。尽管这些服务组件并不是ACE框架库的严格组成部分,它们在ACE中扮演了两种角色:

        1. 分解出可重用分布式应用的“积木”:这些服务组件提供通用的分布式应用任务的可重用实现,比如名字服务、事件路由、日志、时间同步和网络锁定。

        2. 演示常用的ACE组件的用例:这些分布式服务还演示了怎样用像Reactor、Service Configurator、Acceptor和Connector、Active Object,以及IPC包装这样的ACE组件来有效地开发灵活、高效和可靠的通信软件。

5、ACE的结构和功能The Structure and Functionality of ACE

        The following diagram illustrates the key components in ACE and their hierarchical relationships:下图显示了ACE中的关键组件以及它们的层次关系:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1067206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【juc】countdownlatch实现游戏进度

目录 一、截图示例二、代码示例 一、截图示例 二、代码示例 package com.learning.countdownlatch;import java.util.Arrays; import java.util.Random; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurr…

C++:模板(非类型模板参数、类模板的特化、模板的分离编译)

本文是 C:模板(函数模板、类模板) 该文的进阶部分,主要介绍模板非类型模板参数、类模板的特化、模板的分离编译这三部分。 目录 一、非类型模板参数 二、模板的特化 1.概念 2.函数模板特化 3.类模板特化 1.全特化 2.偏特…

Lua系列文章(1)---Lua5.4参考手册学习总结

windows系统上安装lua,下载地址: Github 下载地址:https://github.com/rjpcomputing/luaforwindows/releases 可以有一个叫SciTE的IDE环境执行lua程序 1 – 简介 Lua 是一种强大、高效、轻量级、可嵌入的脚本语言。 它支持过程编程, 面向对…

VScode配置Jupyter

环境 安装步骤 1、插件安装 2、更改pip加速源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 参考:vscode python配置pip源 ​​​​​​​ 【Python学习】Day-00 Python安装、VScode安装、pip命令、镜像源配置、虚拟环境 3、建…

202. 最幸运的数字

202. 最幸运的数字 - AcWing题库 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int> PII; typedef long long ll; typedef long double ld;ll qmi(ll a, ll k, ll m…

集中发现服务DCPSInfoRepo通信端口和ORB交互流程

OpenDDS集中发现服务DCPSInfoRepo,为OpenDDS的pub和sub通信终端提供主题匹配和通信协商和中介服务,是基于TAO的ORB机制完成的,GIOP协议。 1、集中发现服务DCPSInfoRepo的相关通信端口 1)集中发现服务DCPSInfoRepo通信端口 DCPSInfoRepo -ORBListenEndpoints iiop://192.…

RK3568的CAN驱动适配

目录 背景&#xff1a; 1.内核驱动模块配置 2.设备树配置 3.功能测试 4.bug修复 背景&#xff1a; 某个项目上使用RK3568的芯片&#xff0c;需要用到4路CAN接口进行通信&#xff0c;经过方案评审后决定使用RK3568自带的3路CAN外加一路spi转的CAN实现功能&#xff0c;在这个…

SMT求解器Q3B——在WSL上的Docker配置

SMT求解器Q3B——在WSL上的Docker配置 1、配置wsl下的Docker2、在github上下载Q3B3、更换配置文件4、安装docker镜像5、编译Q3B6、使用Q3B 1、配置wsl下的Docker WSL 2 上的 Docker 远程容器入门 2、在github上下载Q3B Q3B下载地址 3、更换配置文件 下载完后&#xff0c;将…

[补题记录] Atcoder Beginner Contest 297(F)

URL&#xff1a;https://atcoder.jp/contests/abc297 目录 F Problem/题意 Thought/思路 Code/代码 F Problem/题意 给一个 H * W 的矩形&#xff0c;在其中任意放置 K 个点&#xff0c;由这 K 个点构成的最小矩形带来的贡献为该矩形的面积&#xff0c;这 K 个点构成一种…

什么是全员生产维护TPM?

在当今竞争激烈的市场环境中&#xff0c;企业不仅需要提高生产效率&#xff0c;同时也需要降低成本以保持竞争力。全员生产维护&#xff08;Total Productive Maintenance&#xff0c;TPM&#xff09;作为一种先进的生产管理方法&#xff0c;为企业提供了一种有效的方式来实现这…

【计算机基础知识】字符的编码表示

欢迎来到我的&#xff1a;世界 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言1.西文字符编码2.中文字符编码汉字输入码汉字国标码汉字机内码汉字字形码 总结 前言 计算机处理的数据中&#xff0c;除了数值型数据以外…

【数据结构-哈希表 一】【原地哈希】:缺失的第一个正整数

废话不多说&#xff0c;喊一句号子鼓励自己&#xff1a;程序员永不失业&#xff0c;程序员走向架构&#xff01;本篇Blog的主题是【原地哈希】&#xff0c;使用【数组】这个基本的数据结构来实现&#xff0c;这个高频题的站点是&#xff1a;CodeTop&#xff0c;筛选条件为&…

Day-05 CentOS7.5 安装 Docker

参考 &#xff1a; Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/install/centos/ Doc…

淘宝商品描述数据API接口

淘宝商品描述数据API接口是淘宝开放平台提供的一种接口&#xff0c;主要用于获取淘宝商品描述信息。该API接口可以帮助开发者在自己的网站或应用程序中快速获取淘宝商品的详细描述信息&#xff0c;包括商品标题、商品描述、商品属性、价格、图片等。 淘宝商品描述数据API接口采…

2023年【广东省安全员C证第四批(专职安全生产管理人员)】报名考试及广东省安全员C证第四批(专职安全生产管理人员)最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;】报名考试及广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;最新解析&#xff0c;包含广东省安全员C证第四批&…

DWC数字世界大会先导论坛将于10月13日在宁波举办 | 数字技术赋能世界可持续发展

农业经济影响世界数千年&#xff0c;工业经济从欧美发源开始已有数百年&#xff0c;数字经济作为世界未来发展之大势&#xff0c;将成为影响未来数百年的世界命题。在以中国式现代化全面推进中华民族伟大复兴的历史征程中&#xff0c;数字技术、数字经济作为中国式现代化实践最…

浅析如何在抖音快速通过新手期并积累粉丝

抖音是一款非常受欢迎的短视频分享平台&#xff0c;它提供了一个快速成名和积累粉丝的机会。对于新手来说&#xff0c;通过四川不若与众总结的以下几个步骤可以帮助你快速通过抖音的新手期。 首先&#xff0c;确定你的内容定位。在抖音上&#xff0c;有各种各样的内容类型&…

一文搞懂pytorch hook机制

pytorch的hook机制允许我们在不修改模型class的情况下&#xff0c;去debug backward、查看forward的activations和修改梯度。hook是一个在forward和backward计算时可以被执行的函数。在pytorch中&#xff0c;可以对Tensor和nn.Module添加hook。hook有两种类型&#xff0c;forwa…

开环模块化多电平换流器仿真(MMC)N=6(Simulink仿真)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Vue面试题六】为什么Vue中的 v-if 和 v-for 不建议一起用?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;v-if和v-for的优先级是什…