The Adaptive Communication Environment (ACE) is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
software framework
In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard ...
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 ...
C++ 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 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 i ...
, 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. Ope ...
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 daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s. These include:
inter-process communication,
thread
Thread may refer to:
Objects
* Thread (yarn), a kind of thin yarn used for sewing
** Thread (unit of measurement), a cotton yarn measure
* Screw thread, a helical ridge on a cylindrical fastener
Arts and entertainment
* ''Thread'' (film), 2016 ...
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, a ...
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 ...
,
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, dete ...
,
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 19 ...
,
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
, 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 telecommunications company based in Schaumburg, Illinois, United States. After having lost $4.3 billion from 2007 to 2009, the company split into two independent public companies, Motorola ...
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 ant ...
'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 c ...
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 sy ...
implementation)
*
Cross-platform support middleware
*
TAO (software)
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