Adaptive Communication Environment

Adaptive Communication Environment

L'ACE (Adaptive Communication Environment, ou environnement de communication adaptatif) est un environnement de programmation orientée objet, il est open source et est écrit en C++. ACE contient plusieurs composants qui simplifient le développement de logiciel de communication augmentant ainsi la flexibilité, l’efficacité, l'interopérabilité, la fiabilité et la portabilité. Les composants de l’ACE fournissent différents services comme la communication inter-processus (IPC), la gestion de mémoire, la synchronisation, la gestion des tâches, la gestion d’événements, la configuration de services répartis, …

Sommaire

Quelques avantages d’ACE

  • Augmentation de la portabilité : les composants ACE rendent simple l’écriture d’applications réseaux concurrentes ou autres sur un OS et de le porter vers un autre OS.
  • Augmentation de la qualité du logiciel : les composants ACE sont conçus à partir de modèles clés (Design Patterns) qui augmente la qualité, la portabilité, l'interopérabilité ainsi que la reutilisabilité et la modularité des logiciels de communications.
  • Augmentation de l’efficacité et de la prévisibilité : ACE est conçu pour supporter une large gamme d’applications qui requièrent une qualité de service (QoS), comme de faibles temps de latence, de haute performance, et la prévisibilité pour des applications temps-réel.
  • Ce middleware (logiciel intermédiaire) nous évite de coder en dur des applications comme les applications client-serveur avec des dépendances de langage, de système d’exploitation, de matériel, …

Architecture d’ACE

L’ACE est conçu en 3 couches de base :

  • La couche d’adaptation au système d’exploitation
  • La couche wrapper C++
  • La couche framework et pattern

La couche d’adaptation au système d’exploitation (OSAL : Operating system adaptation layer)

OSAL est une fine couche de code C++ qui se trouve entre la bibliothèque C (API) du système d’exploitation et le reste de l’ACE. Cette couche nous évite d’être dépendant de la plate-forme de développement (OS), ce qui implique que le code écrit avec ACE est relativement indépendant, donc portable. C’est ce qui explique pourquoi le framework ACE fonctionne sur de nombreux systèmes d’exploitation comme VxWorks, Chorus, LynxOS, RTEMS, Win32, Solaris, Debian, RedHat, …

L’OSAL encapsule donc les fonctions de l’API de l’OS c’est-à-dire que cette couche fournit une base commune de fonctions systèmes à travers toutes les plateformes où ACE est porté.

La couche wrapper C++

Cette couche contient des classes C++ qui encapsulent des fonctions et des données dans des interfaces orientées objets. Cette couche est la plus grande partie de l’ACE, elle contient 50% du code total.

Les « wrapper » C++ fournissent les mêmes services que l’OSAL, sauf que les fonctions sont organisées en classes et en objets, ce qui facilite l’utilisation de l’ACE, de plus, l’utilisation du C++ rend l’application robuste car les wrappers C++ sont fortement typés, donc le compilateur peut détecter une violation de type à la compilation plutôt qu’a l’exécution (contrairement aux API C de l’OS comme les sockets où une violation de type n’est détectée qu’à l’exécution). Les applications utilisent les classes wrappers via l’héritage, l’agrégation, et/ou l’instanciation.

La couche framework et pattern

La couche framework est la couche de plus haut niveau de l’ACE. Cette couche s’appuie sur plusieurs design patterns spécifiques au domaine du logiciel de communication.

Les Patterns fournissent des solutions à des problèmes logiciels communs surgissant dans certains contextes, ce sont des façons de programmer éprouvées et réputées pour apporter des propriétés comme la cohérence, la robustesse, la reutilisabilité, etc.

Les frameworks sont des applications « semi-complete » qui peuvent être vu comme étant des implémentations concrètes de design pattern et qui ont pour but de fournir une structure et des fonctionnalités spécifiques à un domaine, c'est-à-dire qu'un framework est une collection de classes qui collabore pour produire une architecture réutilisable pour une famille d'applications.

Les différents Framework ACE

Reactor : Interface de traitement d’événement synchrone provenant de différentes sources (Timers, I/O, signaux). Il implémente donc, la détection d’événements de manière synchrone, le démultiplexage et la diffusion (dispatching) d’événements

Acceptor – Connector : Etablit une connexion entre un client (connector) et un serveur (Acceptor) en permettant aux applications de configurer les propriétés clefs de leur topologie de connexion (Socket UNIX, UDP, TCP…), indépendamment des services qu'ils fournissent.

Task : Forme un modèle concurrent qui donne une stratégie de gestion de mémoire de message et de synchronisation.

Proactor : Interface de traitement d’événement I/O asynchrone. Il permet donc, de demultiplexer et de dispatcher efficacement des événements déclenchés par l'achèvement d'opérations d'entrée-sortie asynchrones.

Streams : Fournit une structure pour des systèmes traitant des flots de données. Il compose donc, des services en couches et transmet des messages (entre ces couches).

Service Configurator : Interface de configuration d’application (à l’exécution). Il découple le comportement des services du moment où les implémentations de ces services sont configurées dans des processus d'application.

Liens externes

Bibliographie

  • Huston S. D., Johnson J. CE., Syyid U. 2003. The ACE Programmer’s Guide : Pratical Design Patterns for Network and Systems Programming. Addison-Wesley.

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Adaptive Communication Environment de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Adaptive Communication Environment — The Adaptive Communication Environment (often referred to as ACE) is an open source cross platform framework of object oriented classes to help the development of communication software.ACE is one of many solutions to a common problem: making… …   Wikipedia

  • ADAPTIVE Communication Environment — Das Adaptive Communication Framework ist ein Open Source C++ Framework, das plattformunabhängig einige Entwurfsmuster für nebenläufige Netzwerkapplikationen bereitstellt.[1] Inhaltsverzeichnis 1 Geschichte 2 OS Adapter Layer 3 …   Deutsch Wikipedia

  • Integrative communication theory — This page describes an integrative theory of cross cultural adaptation proposed by Young Yun Kim (1988, 2001, 2005). The theory highlights the centrality of an individual s communication activities in the process of becoming more functionally fit …   Wikipedia

  • Smart environment — Smart environments is a technological concept that, according to Mark Weiser is a physical world that is richly and invisibly interwoven with sensors, actuators, displays, and computational elements, embedded seamlessly in the everyday objects of …   Wikipedia

  • Abreviations en informatique A — Abréviations en informatique A AA : Anti Aliasing (Anticrènelage) AAA : Authentication Authorization Accounting AAC : Advanced Audio Coding AAD : Analogique Analogique Digital ABAP : Allgemeiner Berichtsaufbereitungsprozessor …   Wikipédia en Français

  • Abréviations En Informatique A — AA : Anti Aliasing (Anticrènelage) AAA : Authentication Authorization Accounting AAC : Advanced Audio Coding AAD : Analogique Analogique Digital ABAP : Allgemeiner Berichtsaufbereitungsprozessor, (en anglais : Advanced… …   Wikipédia en Français

  • Abréviations en informatique a — AA : Anti Aliasing (Anticrènelage) AAA : Authentication Authorization Accounting AAC : Advanced Audio Coding AAD : Analogique Analogique Digital ABAP : Allgemeiner Berichtsaufbereitungsprozessor, (en anglais : Advanced… …   Wikipédia en Français

  • ACE — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres > Sigles de trois lettres …   Wikipédia en Français

  • ACE — Angiotensin Converting Enzyme (Medical » Human Genome) Angiotensin Converting Enzyme (Medical » Laboratory) Angiotensin Converting Enzyme (Medical » Physiology) Acetate (Academic & Science » Chemistry) * Acuerdo de Complementación Económica… …   Abbreviations dictionary

  • STLSoft C++ Libraries — infobox software name = STLSoft C++ Libraries caption = latest release version = 1.9.57 latest release date = release date|2008|10|10 programming language = C/C++ operating system = MS Windows, Unix, partially Cross platform genre = STL extension …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”