Next: Example: A Line Segment
Up: Introduction
Previous: Structural Organization
Representational organization is an outgrowth of the effort to create
self-adaptive software systems[6].
Our model is inspired from biological regeneration where multiple
strategies are implemented in a single organism to recognize an injury
and respond appropriately. For example, in healthy bullfrogs,
scientists have observed a continuous DC voltage drop along the nerve
sheath as it travels away from the major nerve ganglions. However,
when the frog sustains an injury, such as a fibula fracture, the nerve
sheath near the trauma produces a strong negative
potential. Additionally, the piezoelectric properties of the broken
bone produce a strong positive potential at the site. Inside the
bielectric gradient thus produced, blood cells from the surrounding
tissue adhere to the
injury site, forming a blood clot. Experiments have shown that blood
cells of bullfrogs are sensitive to tiny DC currents, and will
actually dedifferentiate from a highly specialized blood cell to
a cell indistinguishable from an undifferentiated, embryonic
blastema. At higher body temperatures, the
bullfrog will instead dedifferentiate periosteum and marrow cells to
form the blastema. When placed near the fractured fibula, the
undifferentiated cells will then redifferentiate into appropriate
cartilage and bone-forming cells. Furthermore, the bioelectric
gradient appears to guide and control cell growth in the
redifferentiation process[5].
From a purely engineering point of view, bone regeneration in
bullfrogs displays all the hallmarks of robust design. We may view
the process of blood cell dedifferentiation as one subsystem, and the
process of bone marrow and periosteum dedifferentiation as a separate
subsystem which accomplishes the same task under
slightly different environmental conditions. In a similar vein,
bioelectric gradients can be generated from two completely independent
sources: from the piezoelectric properties of a broken bone, or from
the myelin sheath surrounding the nerve. Therefore, the bioelectric
and cellular components pools are redundantly
designed, and the implementation is structured to use the redundant
designs. Furthermore, since bioelectric gradients and cellular components
are used in both the dedifferentiation and redifferentiation
subsystems, we get a controlled redundancy that is quite
powerful[7].
By taking inspiration from this engineering
marvel, we propose a strategy for increasing reliability in amorphous computing
structures through the metaphor of recognizing and responding to
injury. Intuitively, suppose a structure we
design is later damaged by the local environment. How does the
structure ``recognize'' an injury has occurred? By what means can it
``diagnose'' the environmental factors which caused the injury, and how
can it utilize existing resources to ``repair'' the damage? More
concretely, in order to respond appropriately to changes in its
environment, a self-adaptive software system must provide the
following services at runtime:
- Monitoring:
- Sentinels placed in the code detect the failure of a module
to maintain invariants or to achieve conditions promised by the plan.
- Diagnosis:
- Diagnostic services localize the source of the failure and
characterize the form of the breakdown.
- Repair Selection:
- Having identified the form of the breakdown, the system
selects an alternative way of achieving the desired behavior. This
alternative may include running the same code again or it may use alternative
implementations which appear more likely to work given the nature of the
breakdown.
- Rollback and Recovery:
- Before a repair strategy can be attempted, the structure
must be put into a consistent state. This involves rolling back unwanted
side effects and recovering data necessary to start the selected alternative
strategy.
- Resource Allocation:
- Before the restart can be attempted it must obtain
resources. This is particularly critical since resources have been
consumed in the failed execution and have perhaps been rendered unusable
or untrusted as a result of the failure[4].
The challenges that Representational organization pose for Amorphous
computation seem quite formidable. Nonetheless, the ability to
predict and control the behavior of an amorphous computing structure
in the face of unknown environmental changes will almost certainly
require us to provide these sorts of services. In this paper, we
provide explicit monitoring, diagnosis, and repair algorithms for
dealing with two types of failures: A growing point which has become
``stuck,'' and a line segment which has become disconnected. For
structures, we provide a mechanism for checking
the consistency of the intermediate results. If this consistency check
fails, the structure will know it has sustained an injury. In
response, the system employs mechanisms analagous to bioelectric
gradients and cellular differentiation in order to isolate and repair
the injury. These strategies can be implemented on a High level
Simulator (HLSIM) using the Growing Point Language (GPL)
design language[2][3].
Next: Example: A Line Segment
Up: Introduction
Previous: Structural Organization
Jeremy Zucker
2000-06-10