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)