Adaptacyjne środowisko komunikacyjne

ACE ( Adaptacyjne Communication Environment ) jest programowanie obiektowe środowisko , to jest open source i jest napisany w języku C ++. ACE zawiera kilka komponentów, które upraszczają tworzenie oprogramowania komunikacyjnego, zwiększając tym samym elastyczność, wydajność, współdziałanie , niezawodność i przenośność . Komponenty ACE zapewniają różne usługi, takie jak komunikacja między procesami (IPC), zarządzanie pamięcią, synchronizacja , zarządzanie zadaniami, zarządzanie zdarzeniami, konfiguracja usług rozproszonych itp.

Niektóre zalety ACE

Architektura ACE

ACE składa się z trzech podstawowych warstw:

Warstwa adaptacji systemu operacyjnego (OSAL)

OSAL to cienka warstwa kodu C ++, która znajduje się pomiędzy biblioteką C systemu operacyjnego ( API ) a resztą ACE. Ta warstwa zapobiega uzależnieniu od platformy programistycznej (OS), co oznacza, że ​​kod napisany za pomocą ACE jest stosunkowo niezależny, a zatem przenośny. To wyjaśnia, dlaczego ACE ramy działa na wielu systemach operacyjnych, takich jak VxWorks , chór, lynxos , rtems , Win32 , Solaris , Debian , RedHat , ...

Dlatego OSAL zawiera funkcje API systemu operacyjnego , co oznacza, że ​​ta warstwa zapewnia wspólną podstawę funkcji systemowych na wszystkich platformach, na których jest przenoszony ACE.

Warstwa opakowująca C ++

Ta warstwa zawiera klasy C ++, które hermetyzują funkcje i dane w interfejsach obiektowych. Ta warstwa jest największą częścią ACE, zawiera 50% całego kodu.

Otoki C ++ zapewniają te same usługi, co OSAL, z wyjątkiem tego, że funkcje są zorganizowane w klasy i obiekty, co ułatwia korzystanie z ACE, ponadto użycie C ++ sprawia, że ​​aplikacja jest solidna, ponieważ opakowania C ++ są silnie wpisane, więc kompilator może wykryć naruszenie typu w czasie kompilacji, a nie w czasie wykonywania (w przeciwieństwie do interfejsów API systemu operacyjnego C, takich jak gniazda, w których wykrywane jest tylko naruszenie typu) w czasie wykonywania). Aplikacje używają klas opakowujących poprzez dziedziczenie, agregację i / lub tworzenie instancji.

Warstwa szkieletowa i wzornicza

Warstwa szkieletowa jest warstwą najwyższego poziomu ACE. Warstwa ta jest oparta na kilku wzorcach projektowych specyficznych dla dziedziny oprogramowania komunikacyjnego.

Wzorce zapewniają rozwiązania typowych problemów z oprogramowaniem, które pojawiają się w pewnych kontekstach, są sprawdzonymi i renomowanymi sposobami programowania w celu zapewnienia takich właściwości, jak spójność, niezawodność, możliwość ponownego użycia itp.

Frameworki to „częściowo ukończone” aplikacje, które można postrzegać jako konkretne implementacje wzorców projektowych i które mają na celu zapewnienie struktury i określonych funkcji w domenie, to znaczy frameworku. Jest zbiorem klas, które współpracują ze sobą, tworząc architektura wielokrotnego użytku dla rodziny aplikacji.

Różne frameworki ACE

Reactor  : Synchroniczny interfejs przetwarzania zdarzeń z różnych źródeł (timery, wejścia / wyjścia, sygnały). Dlatego implementuje synchronicznie wykrywanie zdarzeń, demultipleksowanie i transmitowanie zdarzeń.

Akceptor - łącznik  : ustanawia połączenie między klientem (łącznikiem) a serwerem (akceptorem), umożliwiając aplikacjom konfigurowanie kluczowych właściwości ich topologii połączenia (gniazdo UNIX, UDP, TCP itp.), Niezależnie od świadczonych usług.

Zadanie  : tworzy współbieżny model, który podaje strategię zarządzania pamięcią wiadomości i synchronizacją.

Proactor  : asynchroniczny interfejs przetwarzania zdarzeń we / wy. W związku z tym umożliwia wydajne demultipleksowanie i wysyłanie zdarzeń wyzwalanych przez zakończenie asynchronicznych operacji we / wy.

Strumienie : zapewnia strukturę dla systemów obsługujących strumienie danych. Dlatego tworzy usługi warstwowe i przesyła komunikaty (między tymi warstwami).

Service Configurator  : Interfejs konfiguracji aplikacji (w czasie wykonywania). Oddziela zachowanie usług od momentu skonfigurowania implementacji tych usług w procesach aplikacji.

Linki zewnętrzne

Bibliografia