The fitness of every individual program in the popula-
tion need to be evaluated in each generation and mul-
tiple individuals are stochastically selected from the
current population based on their fitness. However,
since distributed systems may have an effect on the
real world and be used for mission-critical processing,
there is no chance of ascertaining the fitness of ran-
domly generated programs. Our framework should
be conservative rather than emergent in the sense that
adaptation caused by the framework must be within
our prior expectation for reasons of reliability and
availability.
Many simulation-based approaches for self-
organization for distributed systems have been ex-
plored. However, there is a serious gap between
real distributed systems and those that are simulation-
based. In fact, a real distributed system is just a com-
plex system so that it is difficult to model or simulate
the system itself.
1
There have been several attempts to support soft-
ware adaptation in the literatures on self-organizing
properties, autonomic computing, and software en-
gineering. Autonomic computing was initiated by
IBM and has encouraged research on providing self-
organizing properties to systems. Several existing
studies primarily support middleware or higher lay-
ers as models and system architecture in a distributed
computing setting like ours. Bigus et al. (Bigus
et al., 2002) proposed an agent-based toolkit for au-
tonomic systems, where each agent has a closed-loop
controller as part of the whole hierarchy of distributed
control. The toolkit was intended to customize groups
of agents but not the functions inside agents. Jaeger et
al. (Jaeger et al., 2007) introduced the notion of self-
organization to ORB and a publish/subscribe system.
Holvoet et al. (Holvoet et al., 2009) supported self-
organizing coordination between agents. These exist-
ing studies could select and invoke software compo-
nents according to their context, but they could not
adapt software components themselves. Georgiadis
et al. (Georgiadis et al., 2002) presented connection-
based architecture for self-organizing software com-
ponents on a distributed system. Like other soft-
ware component architectures, they intended to cus-
tomize their systems by changing connections be-
tween componentsinstead of internal behaviorsinside
components. Like ours, Cheng at al. (Cheng et al.,
2006) presented an adaptive selection mechanism for
servers by enabling selection policies, but they did not
customize the servers themselves. They also needed
to execute different servers simultaneously.
1
We do not intend to deny simulation-based approaches. Nev-
ertheless, we need a basic model, including parameters, for real
distributed systems before simulating such systems.
We proposed a nature-inspired approach to dy-
namically deploying agents at computers in our previ-
ous papers (Satoh, 2007; Satoh, 2008). The approach
enabled each agent to describe its own deployment as
a relationship between its location and another agent’s
location. However, the approach had no mechanism
for differentiating or adapting agents themselves.
3 BASIC APPROACH
This paper introduces the notion of (de)differentiation
into a distributed system as a mechanism for adapting
software components, which may be running on dif-
ferent computers connected through a network.
Differentiation. When dictyostelium discoideum
cells aggregate, they can be differentiated into two
types: prespore cells and prestalk cells. Each cell tries
to become a prespore cell and periodically secretes
cAMP to other cells. If a cell can receive more than a
specified amount of cAMP from other cells, it can be-
come a prespore cell. There are three rules. 1) cAMP
chemotaxically leads other cells to prestalk cells. 2)
A cell that is becoming a prespore cell can secrete a
large amount of cAMP to other cells. 3) When a cell
receives more cAMP from other cells, it can secrete
less cAMP to other cells.
Each agent has one or more functions with
weights, where each weight corresponds to the
amount of cAMP and indicates the superiority of its
function. Each agent initially intends to progress all
its functions and periodically multicasts restraining
messages to other agents federated with it. Restrain-
ing messages lead other agents to degenerate their
functions specified in the messages and to decrease
the superiority of the functions. As a result, agents
complement other agents in the sense that each agent
can provide some functions to other agents and dele-
gate other functions to other agents that can provide
the functions.
Dedifferentiation. Agents may lose their functions
due to differentiation as well as be busy or failed. The
approach also offers a mechanism to recover from
such problems based on dedifferentiation, which a
mechanism for regressing specialized cells to sim-
pler, more embryonic, unspecialized forms. As in the
dedifferentiation process, if there are no other agents
that are sending restraining messages to an agent, the
agent can perform its dedifferentiation process and
strengthen their less-developed or inactive functions
again.
ECTA 2011 - International Conference on Evolutionary Computation Theory and Applications
132