1%
2% Copyright 2014, NICTA
3%
4% This software may be distributed and modified according to the terms of
5% the GNU General Public License version 2. Note that NO WARRANTY is provided.
6% See "LICENSE_GPLv2.txt" for details.
7%
8% @TAG(NICTA_GPL)
9%
10
11\chapter{Introduction}
12CAmkES is a component platform for embedded microkernel-based systems, offering
13many of the standard features available in component platforms.
14Some relevant features of CAmkES that are not common to all component platforms
15are:
16\begin{itemize}
17  \item \emph{Explicit composite components.} CAmkES components can be
18    assembled to form a re-usable composite, that can then be referenced within
19    a containing system.
20  \item \emph{Multiple instantiation of a single component.} Multiple copies of
21    a component can exist within a system, distinguished by different
22    identifiers.
23  \item \emph{Multiple implementations of an interface.} A single component can
24    implement an interface more than once. This can be useful for providing a
25    dedicated interface for each client or functionally different
26    implementations.
27  \item \emph{Distinction between active and passive components.} Components
28    can have a thread of control or be invoked via an event loop. CAmkES
29    distinguishes these modes of operation at an architectural level.
30  \item \emph{``Provides'' interfaces can be left unsatisfied at runtime.} When
31    a component implements a given interface, it does not have to be connected
32    to a component that uses that interface. The converse is not true.
33  \item \emph{Hardware devices are components.} Hardware devices can be
34    specified in ADL that generates interface methods for accessing the device.
35\end{itemize}
36