Adaptive Communication Environment

Adaptive Communication Environment (ACE)

Adaptive Communication Environment (ACE) to framework o otwartym kodzie źródłowym, który ma na celu uproszczenie różnych aspektów związanych z programowaniem sieciowym. ACE wprowadza zestaw klas C++ zorientowanych obiektowo, które zostały zaprojektowane, aby minimalizować typowe błędy i wspierać programistów w radzeniu sobie z złożonością oraz wyzwaniami, jakie niesie ze sobą programowanie sieciowe.

Historia

ACE był pierwotnie rozwijany przez Douglasa C. Schmidta w ramach jego pracy dyplomowej na University of California, Irvine. Następnie prace były kontynuowane na Washington University in St. Louis, gdzie Schmidt został zatrudniony. To tam, w grupie DOC (Distributed Object Computer), ACE zostało opublikowane jako projekt Open Source. Większość dalszych prac nad ACE odbywa się w Institute for Software Integrated Systems (ISIS) na Uniwersytecie Vanderbilt.

Możliwości

ACE umożliwia ustandaryzowane zastosowanie w wielu systemach operacyjnych i platformach sprzętowych, oferując specyficzne funkcje. Wprowadza różne typy danych i metody, które udostępniają potężne, choć skomplikowane w użyciu, możliwości nowoczesnych systemów operacyjnych. Wśród nich znajdują się: komunikacja międzyprocesowa (inter-process communication), zarządzanie wątkami (thread management), efektywne zarządzanie pamięcią (efficient memory management) i inne.

ACE zostało zaprojektowane z myślą o przenośności, oferując standardowy framework. Ten sam kod może działać na większości systemów Unix, Microsoft Windows, VxWorks, QNX, OpenVMS i innych, z minimalnymi zmianami. Dzięki wsparciu dla wielu platform, ACE znalazło szerokie zastosowanie w oprogramowaniu komunikacyjnym. Wśród udanych projektów wykorzystujących ACE można wymienić: satelity Motorola Iridium, australijski latający system wczesnego ostrzegania i kontroli (AEW&C) Boeing Wedgetail oraz inne.

Wzorce projektowe

Jedną z charakterystycznych cech ACE jest szerokie stosowanie wzorców projektowych (design patterns) w rozwiązywaniu złożoności oprogramowania. Framework ACE oferuje następujące wzorce projektowe:

Wzorce obsługi zdarzeń:

  • Reactor
  • Acceptor-Connector
  • Proactor
  • Asynchronous Completion Token

Wzorce synchronizacyjne:

  • Scoped Locking
  • Strategized Locking
  • Thread-Safe Interface
  • Double-checked locking optimization

Wzorce współbieżności:

  • Thread-Specific Storage
  • Monitor Object
  • Active Object
  • Half-Synch/Half-Asynch
  • Leader/Follower

Wzorce konfiguracji i dostępu do usług:

  • Component Configurator
  • Interceptor
  • Extension Interface
  • Wrapper Facade

Przypisy

Linki zewnętrzne

Oficjalna strona. [zarchiwizowane z tego adresu (2008-05-12)].

Strona grupy Distributed Object Computer (DOC)

Strona Institute for Software Integrated Systems (ISIS)

Dokumentacja Doxygen ACE