next up previous
Next: Example: A Line Segment Up: Introduction Previous: Structural Organization

Representational 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 up previous
Next: Example: A Line Segment Up: Introduction Previous: Structural Organization
Jeremy Zucker
2000-06-10