IBM calls elements of the biological metaphor as "Autonomic Computing"
- A recent posting on comp.lang.python mentions
>From "the 8 elements" I quote:While the definition of autonomic computing will likely transform as
contributing technologies mature, the following list suggests eight
defining characteristics of an autonomic system.
1. An autonomic computing system needs to "know itself" - its components
must also possess a system identity. Since a "system" can exist at many
levels, an autonomic system will need detailed knowledge of its
components, current status, ultimate capacity, and all connections to
other systems to govern itself. It will need to know the extent of its
"owned" resources, those it can borrow or lend, and those that can be
shared or should be isolated.
2. An autonomic computing system must configure and reconfigure itself
under varying (and in the future, even unpredictable) conditions. System
configuration or "setup" must occur automatically, as well as dynamic
adjustments to that configuration to best handle changing environments.
3. An autonomic computing system never settles for the status quo - it
always looks for ways to optimize its workings. It will monitor its
constituent parts and fine-tune workflow to achieve predetermined system
4. An autonomic computing system must perform something akin to healing
- it must be able to recover from routine and extraordinary events that
might cause some of its parts to malfunction. It must be able to
discover problems or potential problems, then find an alternate way of
using resources or reconfiguring the system to keep functioning
5. A virtual world is no less dangerous than the physical one, so an
autonomic computing system must be an expert in self-protection. It must
detect, identify and protect itself against various types of attacks to
maintain overall system security and integrity.
6. An autonomic computing system must know its environment and the
context surrounding its activity, and act accordingly. It will find and
generate rules for how best to interact with neighboring systems. It
will tap available resources, even negotiate the use by other systems of
its underutilized elements, changing both itself and its environment in
the process -- in a word, adapting.
7. An autonomic computing system cannot exist in a hermetic environment.
While independent in its ability to manage itself, an it must function
in a heterogeneous world and implement open standards -- in other words,
an autonomic computing system cannot, by definition, be a proprietary
8. An autonomic computing system will anticipate the optimized resources
needed while keeping its complexity hidden. It must marshal I/T
resources to shrink the gap between the business or personal goals of
the user, and the I/T implementation necessary to achieve those goals --
without involving the user in that implementation.
Eliot Miranda Smalltalk - Scene not herd