Adaptive Communication Environment

{{Infobox software

| name = ADAPTIVE Communication Environment (ACE)

| logo =

| author =

| developer =

| released = {{Start date and age|1993}}

| latest release version = 7.0.11

| latest release date = {{Start date and age|2022|12|19}}{{cite mailing list | url = https://list.isis.vanderbilt.edu/pipermail/ace-announce/2022-December/000051.html | title = ACE 7.0.11 and TAO 3.0.11 available for download | date= 19 December 2022 | access-date=16 February 2023 | mailing-list= ace-announce | last= Willemsen | first= Johnny}}

| latest preview version =

| latest preview date =

| programming language = C++

| genre = Object-oriented C++ classes Framework for Network

| license =

| website = {{URL|www.dre.vanderbilt.edu/~schmidt/ACE.html}}

| size =

}}

The Adaptive Communication Environment (ACE) is an open source software framework used for network programming. It provides a set of object-oriented C++ classes designed to help address the inherent complexities and challenges in network programming by preventing common errors.{{Cite web |url=http://www.riverace.com/acebooks/index.htm#cnpv1 |title=C++ Network Programming, Volume 1, Schmidt and Huston, Addison Wesley Professional, 2001 |access-date=2009-07-30 |archive-date=2008-12-25 |archive-url=https://web.archive.org/web/20081225091406/http://www.riverace.com/acebooks/index.htm#cnpv1 |url-status=dead }}

History

ACE was initially developed by Douglas C. Schmidt during his graduate work at the University of California, Irvine. Development followed him to the Washington University in St. Louis, where he was employed. ACE is open-source software released by WU's Distributed Object Computer (DOC) group. Its development continued in the Institute for Software Integrated Systems (ISIS) at Vanderbilt University.{{Cite web |url=http://www.riverace.com/acebooks/index.htm#apg |title=ACE Programmer's Guide, The: Practical Design Patterns for Network and Systems Programming, Huston, Johnson and Syyid, Addison Wesley Professional, 2003 |access-date=2009-07-30 |archive-date=2008-12-25 |archive-url=https://web.archive.org/web/20081225091406/http://www.riverace.com/acebooks/index.htm#apg |url-status=dead}}

Features

ACE provides a standardized usage for operating system/machine specific features. It provides common data types and methods[http://www.dre.vanderbilt.edu/~schmidt/PDF/wrapper-facade.pdf Wrapper Facade, A Structural Pattern for Encapsulating Functions within Classes, Schmidt] to access the powerful but complex features of modern operating systems. These include: inter-process communication, thread management, efficient memory management, etc.

It was designed to be portable and provide a common framework. The same code will work on most Unixes, Windows, VxWorks, QNX, OpenVMS, etc., with minimal changes.Porting ACE to a New OS, https://htmlpreview.github.io/?https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/docs/ACE-porting.html Due to this cross-platform support, it has been widely used in the development of communication software. Some of the successful projects that have used ACE includes: Motorola Iridium satellites, Boeing Wedgetail's Australian airborne early warning & control (AEW&C) system, and others.ACE and TAO Success Stories, http://www.dre.vanderbilt.edu/~schmidt/TAO-users.html

ACE used software design patterns.Pattern-Oriented Software Architecture, Volume 2, Schmidt et al., Jon Wiley & Sons, Ltd, 2000

See also

References

{{Reflist}}