Adaptivt kommunikasjonsmiljø

Den ACE ( Adaptive Kommunikasjon Environment ) er et objektorientert programmeringsmiljø , det er åpen kildekode og er skrevet i C ++. ACE inneholder flere komponenter som forenkler utviklingen av kommunikasjonsprogramvare og øker dermed fleksibilitet, effektivitet, interoperabilitet , pålitelighet og bærbarhet . Komponentene i ACE gir forskjellige tjenester som inter-prosess kommunikasjon (IPC), minnestyring, synkronisering , oppgavebehandling, hendelsesadministrasjon, konfigurering av distribuerte tjenester, etc.

Noen fordeler med ACE

ACE Arkitektur

ACE er designet i tre grunnleggende lag:

Operativsystemtilpasningslaget (OSAL)

OSAL er et tynt lag med C ++ - kode som sitter mellom operativsystemets C-bibliotek ( API ) og resten av ACE. Dette laget sparer oss for å være avhengige av utviklingsplattformen (OS), noe som innebærer at koden skrevet med ACE er relativt uavhengig, derfor bærbar. Dette forklarer hvorfor ACE- rammeverket fungerer på mange operativsystemer som VxWorks , Chorus, LynxOS , RTEMS , Win32 , Solaris , Debian , RedHat , ...

OSAL innkapsler derfor funksjonene til OS API, det vil si at dette laget gir en felles base av systemfunksjoner på tvers av alle plattformene der ACE blir portet.

C ++ innpakningslaget

Dette laget inneholder C ++ klasser som innkapsler funksjoner og data i objektorienterte grensesnitt. Dette laget er den største delen av ACE, det inneholder 50% av den totale koden.

C ++ wrappers gir de samme tjenestene som OSAL, bortsett fra at funksjonene er organisert i klasser og objekter, noe som letter bruken av ACE, og dessuten gjør C ++ applikasjonen robust. Fordi C ++ wrappers er sterkt skrevet, slik at kompilatoren kan oppdage et typebrudd på kompileringstid i stedet for på kjøretid (i motsetning til OS C APIer som stikkontakter der en typebrudd bare oppdages ved kjøretid). Applikasjoner bruker wrapper-klasser gjennom arv, aggregering og / eller instantiering.

Den rammeverk og mønsterlaget

Rammelaget er det høyeste nivået av ACE. Dette laget er basert på flere designmønstre som er spesifikke for kommunikasjonsprogramvare.

Mønstre gir løsninger på vanlige programvareproblemer som oppstår i visse sammenhenger, de er velprøvde og anerkjente måter å programmere på for å gi egenskaper som konsistens, robusthet, gjenbrukbarhet, etc.

Framework er "semi-complete" applikasjoner som kan sees på som konkrete implementeringer av designmønstre og som tar sikte på å gi en struktur og spesifikke funksjoner til et domene, det vil si et rammeverk. Er en samling klasser som jobber sammen for å produsere et gjenbrukbar arkitektur for en familie av applikasjoner.

De forskjellige ACE-rammene

Reaktor  : Grensesnitt for synkron hendelsesbehandling fra forskjellige kilder (Timere, I / O, signaler). Den implementerer derfor påvisning av hendelser synkront, demultipleksering og kringkasting av hendelser.

Acceptor - Connector  : Oppretter en forbindelse mellom en klient (connector) og en server (Acceptor) ved å la applikasjoner konfigurere nøkkelegenskapene til deres tilkoblingstopologi (UNIX Socket, UDP, TCP, etc.), uavhengig av tjenestene de tilbyr.

Oppgave  : Danne en samtidig modell som gir en strategi for styring av meldingsminne og synkronisering.

Proactor  : Asynkron I / O-behandlingsgrensesnitt. Det muliggjør derfor effektiv demultipleksering og utsendelse av hendelser utløst av fullføringen av asynkrone I / O-operasjoner.

Strømmer : Gir et rammeverk for systemer som håndterer datastrømmer. Den komponerer derfor lagdelte tjenester og overfører meldinger (mellom disse lagene).

Service Configurator  : Programkonfigurasjonsgrensesnitt (ved kjøretid). Det avkobler atferdene til tjenestene fra når implementeringer av disse tjenestene er konfigurert i applikasjonsprosesser.

Eksterne linker

Bibliografi