Adaptive Communication Environment
   HOME

TheInfoList



OR:

The Adaptive Communication Environment (ACE) is an open source software framework used for network programming. It provides a set of
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of p ...
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
classes designed to help address the inherent complexities and challenges in network programming by preventing common errors.


History

ACE was initially developed by
Douglas C. Schmidt Douglas C. Schmidt (born July 18, 1962) is a computer scientist and author in the fields of object-oriented programming, distributed computing and design patterns. Biography In August 1994 he joined the faculty of Washington University, St. Lo ...
during his graduate work at the
University of California, Irvine The University of California, Irvine (UCI or UC Irvine) is a public land-grant research university in Irvine, California. One of the ten campuses of the University of California system, UCI offers 87 undergraduate degrees and 129 graduate and p ...
. Development followed him to the
Washington University in St. Louis Washington University in St. Louis (WashU or WUSTL) is a private research university with its main campus in St. Louis County, and Clayton, Missouri. Founded in 1853, the university is named after George Washington. Washington University is r ...
, where he was employed. ACE is
open-source software Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Op ...
released by WU's Distributed Object Computer (DOC) group. Its development continued in the Institute for Software Integrated Systems (ISIS) at
Vanderbilt University Vanderbilt University (informally Vandy or VU) is a private research university in Nashville, Tennessee. Founded in 1873, it was named in honor of shipping and rail magnate Cornelius Vanderbilt, who provided the school its initial $1-million ...
.


Features

ACE provides a standardized usage for operating system/machine specific features. It provides common data types and methods to access the powerful but complex features of modern
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s. These include: inter-process communication, thread management, efficient
memory management Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when ...
, etc. It was designed to be portable and provide a common framework. The same code will work on most
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
es,
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
,
VxWorks VxWorks is a real-time operating system (or RTOS) developed as proprietary software by Wind River Systems, a wholly-owned subsidiary of Aptiv. First released in 1987, VxWorks is designed for use in embedded systems requiring real-time, determi ...
,
QNX QNX ( or ) is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems. The product was originally developed in the early ...
, OpenVMS, etc., with minimal changes. Due to this
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
support, it has been widely used in the development of
communication software Communication software is used to provide remote access to systems and exchange files and messages in text, audio and/or video formats between different computers or users. This includes terminal emulators, file transfer programs, chat and instant ...
. Some of the successful projects that have used ACE includes:
Motorola Motorola, Inc. () was an American Multinational corporation, multinational telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent p ...
Iridium Iridium is a chemical element with the symbol Ir and atomic number 77. A very hard, brittle, silvery-white transition metal of the platinum group, it is considered the second-densest naturally occurring metal (after osmium) with a density of ...
satellites,
Boeing Wedgetail The Boeing 737 AEW&C is a twin-engine airborne early warning and control aircraft based on the Boeing 737 Next Generation design. It is lighter than the 707-based Boeing E-3 Sentry, and has a fixed, active electronically scanned array radar an ...
's Australian airborne early warning & control (AEW&C) system, and others. ACE used
software design pattern In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code ...
s.Pattern-Oriented Software Architecture, Volume 2, Schmidt et al., Jon Wiley & Sons, Ltd, 2000


See also

*
Communication software Communication software is used to provide remote access to systems and exchange files and messages in text, audio and/or video formats between different computers or users. This includes terminal emulators, file transfer programs, chat and instant ...
* Component-integrated ACE ORB (CIAO, a
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
implementation) *
Cross-platform support middleware A cross-platform support middleware (CPSM) is a software abstraction layer that guarantees the existence, and correct implementation, of a set of services on top a set of platforms. Abstraction method The abstraction method in the CPSM develop ...
*
TAO (software) The ACE ORB (TAO) is a freely available, open-source, and standards-compliant real-time C++ implementation of CORBA based upon the Adaptive Communication Environment (ACE). Availability TAO can be downloaded from the Internet and freely used and ...


References


External links

*
Distributed object computer (DOC) Group websiteInstitute for Software Integrated Systems (ISIS) website
{{Webarchive, url=https://web.archive.org/web/20100616153306/https://www.isis.vanderbilt.edu/research/DOC , date=2010-06-16
ACE Doxygen referenceACE github code repository
Application programming interfaces C++ libraries Cross-platform software