Digital Ecosystems: Ecosystem-Oriented Architectures
arXiv:1112.0204v1 [cs.NI] 1 Dec 2011
Gerard Briscoe · Suzanne Sadedin · Philippe De Wilde
Abstract We view Digital Ecosystems to be the digital counterparts of biological ecosystems. Here, we are
concerned with the creation of these Digital Ecosystems, exploiting the self-organising properties of biological
ecosystems to evolve high-level software applications. Therefore, we created the Digital Ecosystem, a novel optimisation technique inspired by biological ecosystems, where the optimisation works at two levels: a first optimisation, migration of agents which are distributed in a decentralised peer-to-peer network, operating continuously
in time; this process feeds a second optimisation based on evolutionary computing that operates locally on single
peers and is aimed at finding solutions to satisfy locally relevant constraints. The Digital Ecosystem was then
measured experimentally through simulations, with measures originating from theoretical ecology, evaluating its
likeness to biological ecosystems. This included its responsiveness to requests for applications from the user base,
as a measure of the ecological succession (ecosystem maturity). Overall, we have advanced the understanding of
Digital Ecosystems, creating Ecosystem-Oriented Architectures where the word ecosystem is more than just a
metaphor.
Keywords Ecosystem · Architecture · Distributed · Evolution · Agents
Abbreviations
API
Application Programming Interface
B2B
business-to-business
BIC
Biologically-Inspired Computing
BPEL
Business Process Execution Language
CAS
Complex Adaptive Systems
DBE
Digital Business Ecosystem
ICT
Information and Communications Technology
MAS
Multi-Agent System
NIC
Nature Inspired Computing
REST
REpresentational State Transfer
SME
Small and Medium sized Enterprise
SOA
Service-Oriented Architecture
UDDI
Universal Description Discovery and Integration
UML
Unified Modelling Language
WSDL Web Services Definition Language
SWS
Semantic Web Services
G Briscoe
Systems Research Group
Computer Laboratory
University of Cambridge
E-mail:
[email protected]
S Sadedin
Department of Organismic and Evolutionary Biology
Harvard University
E-mail:
[email protected]
P De Wilde
Intelligent Systems Lab
Department of Computer Science
Heriot-Watt University
E-mail: p.de
[email protected]
2
1 Introduction
Is mimicking ecosystems the future of information systems? A key challenge in modern computing is to develop
systems that address complex, dynamic problems in a scalable and efficient way, because the increasing complexity
of software makes designing and maintaining efficient and flexible systems a growing challenge [109, 155, 99]. With
the ever expanding number of services being offered online from Application Programming Interfaces (APIs) being
made public, there is an ever growing number of computational units available to be combined in the creation
of applications. We propose that these computational units could be assembled without the intervention of a
programmer. Furthermore, we would argue that manual programming is becoming too complex to manage, which
could be overcome by automating the search for new algorithms through automated service composition. There
are existing efforts aimed at achieving automated service composition [105, 118, 107, 131], the most prevalent of
which is Service-Oriented Architectures (SOAs) and its associated standards and technologies [37, 164].
Alternatively, nature has been in the research business for 3.8 billion years and in that time has accumulated close to 30 million well-adjusted solutions to a plethora of design challenges that humankind struggles to
address with mixed results [14]. Biomimicry is a discipline that seeks solutions by emulating nature’s designs
and processes, and there is considerable opportunity to learn elegant solutions for human-made problems [14].
Biological ecosystems are thought to be robust, scalable architectures that can automatically solve complex,
dynamic problems, possessing several properties that may be useful in automated systems. These properties include self-organisation, self-management, scalability, the ability to provide complex solutions, and the automated
composition of these complex solutions [91].
So, our approach to the aforementioned challenge is to develop Digital Ecosystems, artificial systems that harness the dynamics that underlie the complex and diverse adaptations of living organisms in biological ecosystems.
While evolutionary theory may be widely appreciated in computer science under the auspices of evolutionary
computing [47], ecological theory is not. Possible connections between Digital Ecosystems and their biological
counterparts are yet to be closely examined, so potential exists to create an Ecosystem-Oriented Architecture with
the essential elements of biological ecosystems. We propose that an approach inspired by ecosystems to evolving
high-level software applications may be feasible, because it can build upon the scalable and self-organising properties of biological ecosystems [91]. We must first introduce the relevant theoretical biology, before considering the
complementary computer science, in order to justify creating the digital counterparts of biological ecosystems.
2 Background Theory
Relevant theory for digital ecosystems spans several academic domains. Here, we briefly introduce the core
concepts of Nature Inspired Computing (NIC), followed by related work in theoretical biology and computer
science [19, 17]. Within theoretical biology, we consider how properties of biological ecosystems influence functions
that are relevant to developing Digital Ecosystems. This leads us to suggest ways in which concepts from ecology
can be used to create Digital Ecosystems that solve practical problems.
2.1 Existing Digital Ecosystems
Our focus is on creating the digital counterpart of biological ecosystems. However, the term digital ecosystem has
described a variety of concepts, ranging from the existing networking infrastructure of the Internet [43, 9, 51, 172],
to digital ecosystem services which enable customers to use existing e-business solutions [13, 83, 162]. The term is
also increasingly linked to future development of Information and Communications Technology (ICT) adoption
for e-business, to support business ecosystems [111]. However, perhaps the most frequent references to digital
ecosystems arise in Artificial Life research, where they are created primarily to investigate biological and other
complex systems [151, 60, 32].
The extent to which these disparate systems resemble biological ecosystems varies, and frequently the word
ecosystem is merely used for branding purposes without any inherent ecological properties. We consider Digital
Ecosystems to be software systems that exploit the properties of biological ecosystems, and suggest that several
key features of biological ecosystems have not been fully explored in existing digital ecosystems. Mimicking these
features may create Digital Ecosystems which are robust, scalable, and self-organising.
2.2 Nature-Inspired Computing
Biomimicry (bios, meaning life, and mimesis, meaning to imitate) is the science that studies natural systems
and processes, and takes creative inspiration from them to design engineered systems [14]. This concept is far
3
Identify
Observe
Evaluate
Understand
Apply
Abstract
Fig. 1 Biomimicry Design Spiral (modified from [69]): The process of biomimicry starts with identifying some useful
behaviour in a biological system. Next, the system is studied to isolate the mechanisms by which it performs the useful
behaviour. Last, the mechanisms are mimicked in a computational system and their performance evaluated [69].
from new, with humans having long been inspired by the animals and plants of the natural world; Leonardo
Da Vinci once said, Those who are inspired by a model other than Nature, a mistress above all masters, are
labouring in vain [16]. Albeit overstating the point, it reminds us that the transfer of technology between lifeforms and synthetic constructs is often desirable because evolutionary pressures often drive living organisms
to become highly optimised and efficient at specific tasks. A classical example is the development of dirt and
water repellent paint from the observation that the surface of the lotus flower plant is practically non-sticky for
anything, commonly known as the lotus effect [8]. However, biomimicry, when done well, is not slavish imitation; it
is inspiration using the principles which nature has demonstrated to be successful design strategies. For example,
in the early days of mechanised flight the best designs were not the ornithopters, which most completely imitated
birds, but the fixed-wing craft that used the principle of aerofoil cross-section in their wings [1].
Biomimicry in computer science is called NIC or Natural Computation, and the benefits of natural computation technologies often mimic those found in real natural systems, such as flexibility, adaptability, robustness,
and decentralised control [41]. Their sources of inspiration come from many aspects of natural systems; evolution,
ecology, development, cell and molecular phenomena, behaviour, cognition, and other areas [100]. Such nature
inspired techniques often lead to novel computing systems with applicability in many different areas [100]. NIC
itself can be divided into three main branches [41]:
– Biologically-Inspired Computing (BIC): This makes use of nature as inspiration for the development of problem solving techniques. The main idea of this branch is to develop computational tools (algorithms) by taking
inspiration from nature for the solution of complex problems.
– The simulation and emulation of nature by computational means: This is the computational synthesis of
patterns, forms, behaviours, and organisms that resemble life-as-we-know-it. By mimicking various natural
phenomena, computational simulation can improve our understanding of both nature and computer models.
– Computing with natural materials: This corresponds to the use of natural materials to perform computation,
to substitute or supplement the current silicon-based computers.
Many different natural systems inspire these approaches. For example, evolutionary algorithms use the concepts of mutation, recombination, and natural selection from biology; neural networks are inspired by the highly
interconnected neural structures in the brain and the nervous system; molecular computing is based on paradigms
from molecular biology; and quantum computing is based on how quantum physics exploits quantum parallelism
[41]. There are also important methodological differences between various sub-areas. For example, evolutionary algorithms and algorithms based on neural networks are presently implemented on conventional computers.
However, molecular computing aims to develop alternatives to silicon hardware by implementing algorithms
in biological hardware using DNA molecules and enzymes, while quantum computing aims at non-traditional
hardware that can make use of quantum effects [41].
We are concerned with BIC, which relies heavily on the fields of biology, computer science, and mathematics.
Briefly put, it is the study of nature to improve algorithms [54], and should not to be confused with computational
biology [167], which applies techniques from computer science, mathematics, and statistics to address biological
problems. BIC has produced Neural Networks, swarm intelligence and evolutionary computing [54]. Introducing
BIC, one comes quickly to its applications, partly because this is the essence of the approach, and partly because
biomimicry as a process tends to be ad hoc [69]. It generally involves an engineer or scientist observing or being
aware of an area of biological study, which seems applicable to a technology or research problem they are currently
tackling, or which inspires the creation of a new technology [41]. However, there are some common steps in this
process, which starts with identifying some useful behaviour in a biological system. Next, the system is studied
4
to isolate the mechanisms by which it performs the useful behaviour. Last, the mechanisms are mimicked in a
computational system and their performance evaluated [69]. This process is summarised in Figure 1.
2.3 Biology of Digital Ecosystems
Natural science is the study of the universe via the rules or laws of natural order, and the term is also used
to differentiate those fields using scientific method in the study of nature, in contrast with the social sciences
which apply the scientific method to culture and human behaviour: economics, psychology, political economy,
anthropology, etc [71]. The fields of natural science are diverse, ranging from particle physics to astronomy [142],
and while not all these fields of study will provide paradigms for Digital Ecosystems, the further one wishes to
take the analogy of the word ecosystem, the more one has to consider the relevance of the fields of natural science,
particularly the biological sciences.
A primary motivation for our research in Digital Ecosystems is the desire to exploit the self-organising
properties of biological ecosystems. However, the biological processes that contribute to these properties have not
been made explicit in Digital Ecosystems research. Here, we discuss how biological properties contribute to the
self-organising features of biological ecosystems, including population dynamics, evolution, a complex dynamic
environment, and spatial distributions for generating local interactions [159]. The potential for exploiting these
properties in artificial systems is then considered. We suggest that several key features of biological ecosystems
have not been fully explored in existing digital ecosystems, and discuss how mimicking these features may assist
in developing robust, scalable self-organising architectures [23, 22].
Evolutionary computing uses natural selection to evolve solutions [58]; it starts with a set of possible solutions
chosen arbitrarily, then selection, replication, recombination, and mutation are applied iteratively. Selection is
based on conforming to a fitness function which is determined by a specific problem of interest, and so over time
better solutions to the problem can thus evolve [58]. As Digital Ecosystems will likely solve problems by evolving
solutions, they will probably incorporate some form of evolutionary computing.
Notably, a fundamental difference between biological and digital ecosystems lies in the motivation and approach of their respective researchers. Biological ecosystems are ubiquitous natural phenomena whose maintenance is crucial to our survival [4], developing through the process of ecological succession [10]. In contrast, Digital
Ecosystems will be defined here as a technology engineered to serve specific human purposes, developed to solve
dynamic problems in parallel with high efficiency.
environment
ecosystems
community
habitat
populations
microhabitats
niche
niche
niche
Fig. 2 Ecosystem Structure (redrawn from [135]): A stable, self-perpetuating system made up of one or more communities
of organisms, consisting of species in their habitats, with their populations existing in their respective micro-habitats [10].
A community is a naturally occurring group of populations from different species that live together in the same habitat. A
habitat is a distinct part of the environment [10].
5
2.3.1 Biological Ecosystems
An ecosystem is a natural unit made up of living (biotic) and non-living (abiotic) components, from whose
interactions emerge a self-perpetuating system. It is made up of one or more communities of organisms, consisting
of species in their habitats, with their populations existing in their respective micro-habitats [10]. A community
is a naturally occurring group of populations from different species that live together in the same habitat. A
habitat is a distinct part of the environment [10], for example, a stream. Individual organisms migrate through
the ecosystem into different habitats competing with other organisms for limited resources, with a population
being the aggregate of the individuals, of a particular species, inhabiting a specific location [10]. A micro-habitat
is a subdivision of a habitat that possesses its own unique properties, such as a micro-climate [90]. Evolution
occurs to all living components of an ecosystem, with the evolutionary pressures varying from one population to
the next depending on the local environment. A population, in its micro-habitat, comes to occupy a niche, which
is the functional relationship of a population to the environment that it occupies. A niche results in the highly
specialised adaptation of a population to its micro-habitat [90]. This is shown graphically in Figure 2.
2.3.2 Fitness Landscapes and Agents
An ecosystem comprises both an environment and a set of interacting, reproducing entities (or agents) in that
environment; with both the environment and other agents acting as a set of physical and chemical constraints on
reproduction and survival [10]. These constraints can be considered in abstract using the metaphor of a fitness
landscape, in which individuals are represented as solutions to the problem of survival and reproduction [171].
All possible solutions are distributed in a space whose dimensions are the possible properties of individuals.
An additional dimension, height, indicates the relative fitness (in terms of survival and reproduction) of each
solution. The fitness landscape is envisaged as a rugged, multidimensional landscape of hills, mountains, and
valleys, because individuals with certain sets of properties are fitter than others [171], as visualised in Figure 3.
In biological ecosystems, fitness landscapes are virtually impossible to identify. This is both because there are
large numbers of possible traits that can influence individual fitness, and because the environment changes over
time and space [10]. Within genetic algorithms, exact specification of a fitness landscape or function is common
practice [58]. The designer of a Digital Ecosystem therefore faces a double challenge: first, to specify rules that
govern the shape of the fitness function/landscape in a way that meaningfully maps landscape dynamics to user
requests, and second, to evolve within this space, solution populations that are diverse enough to solve disparate
problems, complex enough to meet user needs, and efficient enough to be preferable to those generated by other
means.
The agents within a Digital Ecosystem will need to be like biological individuals in the sense that they reproduce, vary, interact, move, and die [10]. Each of these properties contributes to the dynamics of the ecosystem.
However, the way in which these individual properties are encoded may vary substantially depending on the
intended purpose of the system [29].
Fig. 3 Fitness Landscape (modified from [161]): We can represent software development as a walk through the landscape,
towards the peaks which correspond to the optimal applications. Each point represents a unique combination of software
services, and the roughness of the landscape indicates how difficult it is to reach an optimal software design [161]. In this
example, there is a global optimum, and several lower local optima.
6
2.3.3 Networks and Spatial Dynamics
Fig. 4 Abstract View of An Ecosystem: Showing different populations (by the different colours) in different spatial areas,
and their connection to one another by lines. Included are communities of populations that have become geographically
separated and so are not connected to the main network of the ecosystem, and which could potentially give rise to allopatric
(geographic) speciation [90].
A key factor in the maintenance of diversity in biological ecosystems is spatial interactions, and several
modelling systems have been used to represent these spatial interactions, including metapopulations1 , diffusion
models, cellular automata and agent-based models (termed individual-based models in ecology) [64]. The broad
predictions of these diverse models are in good agreement. At local scales, spatial interactions favour relatively
abundant species disproportionately. However, at a wider scale, this effect can preserve diversity, because different
species will be locally abundant in different places. The result is that even in homogeneous environments, population distributions tend to form discrete, long-lasting patches that can resist an invasion by superior competitors
[64]. Population distributions can also be influenced by environmental variations such as barriers, gradients, and
patches. The possible behaviour of spatially distributed ecosystems is so diverse that scenario-specific modelling
is necessary to understand any real system [62]. Nonetheless, certain robust patterns are observed. These include the relative abundance of species, which consistently follows a roughly log-normal relationship [11], and
the relationship between geographic area and the number of species present, which follows a power law [148].
1 A metapopulation is a collection of relatively isolated, spatially distributed, local populations bound together by
occasional dispersal between populations [93, 67, 68].
7
The reasons for these patterns are disputed, because they can be generated by both spatial extensions of simple
Lotka-Volterra competition models [72], and more complex ecosystem models [150].
Landscape connectivity plays an important part in ecosystems. When the density of habitats within an
environment falls below a critical threshold, widespread species may fragment into isolated populations. Fragmentation can have several consequences. Within populations, these effects include loss of genetic diversity and
detrimental inbreeding [61]. At a broader scale, isolated populations may diverge genetically, leading to speciation,
as shown in Figure 4.
From an information theory perspective, this phase change in landscape connectivity can mediate global and
local search strategies [63]. In a well-connected landscape, selection favours the globally superior, and pursuit of
different evolutionary paths is discouraged, potentially leading to premature convergence. When the landscape is
fragmented, populations may diverge, solving the same problems in different ways. Recently, it has been suggested
that the evolution of complexity in nature involves repeated landscape phase changes, allowing selection to
alternate between local and global search [65].
In a digital context, we can have spatial interactions by using a distributed system that consists of a set of
interconnected locations, with agents that can migrate between these connected locations. In such systems the
spatial dynamics are relatively simple compared with those seen in real ecosystems, which incorporate barriers,
gradients, and patchy environments at multiple scales in continuous space [10]. Nevertheless, depending on how
the connections between locations are organised, such Digital Ecosystems might have dynamics closely parallel
to spatially explicit models, diffusion models, or metapopulations [62]. We will discuss later the use of a dynamic
non-geometric spatial network, and the reasons for using this approach.
2.3.4 Stability and Diversity in Complex Adaptive Systems
Ecosystems are often described as Complex Adaptive Systems (CAS): that is, systems made from diverse, locally
interacting components that are subject to selection. Other CAS include brains, individuals, economies, and
the biosphere. All are characterised by hierarchical organisation, continual adaptation and novelty, and nonequilibrium dynamics. These properties appear to produce behaviour that is non-linear, historically contingent,
subject to thresholds, and contains multiple basins of attraction [91].
In the previous subsections, we have advocated Digital Ecosystems that include agent populations evolving
by natural selection in distributed environments. Like real ecosystems, digital systems designed in this way fit
the definition of CAS. The features of these systems, especially non-linearity and non-equilibrium dynamics, offer
both advantages and hazards for adaptive problem-solving. The major hazard is that the dynamics of CAS are
intrinsically hard to predict because of the non-linear emergent self-organisation [92]. This observation implies
that designing a useful Digital Ecosystem will be partly a matter of trial and error. The occurrence of multiple
basins of attraction in CAS suggests that even a system that functions well for a long period may suddenly at
some point transition to a less desirable state [52]. For example, in some types of system self-organising mass
extinctions might result from interactions among populations, leading to temporary unavailability of diverse
solutions [121]. This concern may be addressed by incorporating negative feedback or other mechanisms at the
global scale. The challenges in designing an effective Digital Ecosystem are mirrored by the system’s potential
strengths. Non-linear behaviour provides the opportunity for scalable organisation and the evolution of complex
hierarchical solutions, while rapid state transitions potentially allow the system to adapt to sudden environmental
changes with minimal loss of functionality [91].
A key question for designers of Digital Ecosystems is how the stability and diversity properties of biological
ecosystems map to performance measures in digital systems. For a Digital Ecosystem the ultimate performance
measure is user satisfaction, a system-specific property. However, assuming the motivation for engineering a
Digital Ecosystem is the development of scalable, adaptive solutions to complex dynamic problems, certain
generalisations can be made. Sustained diversity [52], is a key requirement for dynamic adaptation. In Digital
Ecosystems, diversity must be balanced against adaptive efficiency because maintaining large numbers of poorlyadapted solutions is costly. The exact form of this trade-off will be guided by the specific requirements of the
system in question. Stability [91], is likewise, a trade-off: we want the system to respond to environmental change
with rapid adaptation, but not to be so responsive that mass extinctions deplete diversity or sudden state changes
prevent control.
2.4 Computing of Digital Ecosystems
The value of creating analogies varies substantially depending on the behaviours or constructs being compared.
For example, both organisms and computers have mechanisms to ensure data integrity. In computer systems, that
integrity is absolute: data replication which introduces even the most minor change is considered to have failed,
and is supported by mechanisms such as the Message-Digest algorithm 5 [139]. Similarly, in biological systems
8
the genetic code is transcribed with a remarkable degree of fidelity due to elaborate evolved proof-reading and
correction systems; there is, approximately, only one unforced error per one hundred bases copied [104]. Despite
their similar function, the operational control mechanisms for error-reduction in biological versus computing
systems are radically different, making any parallel between the two misleading. Thus considerable finesse is
required when inventing and applying such analogies.
In the following paragraphs, we explore the analogies implicit between biological ecosystems and potential
Digital Ecosystems [21, 20]. We will consider Multi-Agent Systems to explore the references to agents and
migration; followed by evolutionary computing and Service-Oriented Architectures for the references to evolution
and self-organisation.
2.4.1 Multi-Agent Systems
A software agent is a piece of software that acts, for a user in a relationship of agency, autonomously in an
environment to meet its designed objectives [170]. A Multi-Agent System (MAS) is a system composed of several
software agents, collectively capable of reaching goals that are difficult to achieve by an individual agent or
monolithic system [170]. Conceptually, there is a strong parallel between the software agents of a MAS and the
agent-based models of a biological ecosystem [64], despite the lack of evolution and migration in a MAS. There
is an even stronger parallel to a variant of MASs, called mobile agent systems, in which the mobility also mirrors
the migration in biological ecosystems [128].
Agent
Station
Fig. 5 Mobile Agent System: Visualisation that shows mobile agents as programmes that can migrate from one host to
another in a network of heterogeneous computer systems and perform a task specified by its owner. On each host they visit,
mobile agents need special software called an agent station, which is responsible for executing the agents and providing a
safe execution environment [103].
The term mobile agent contains two separate and distinct concepts: mobility and agency [141]. Hence, mobile
agents are software agents capable of movement within a network [128]. The mobile agent paradigm treats
networks as multiple agent-friendly environments and the agents as programmatic entities that move from location
to location, performing tasks for users. On each host they visit, mobile agents need software which is responsible
for their execution in a safe environment [128].
Generally, there are three types of design for mobile agent systems [128]: (1) using a specialised operating
system, (2) as operating system services or extensions, or (3) as application software. The first approach has
the operating system providing the requirements of mobile agent systems directly [156]. The second approach
implements the mobile agent system requirements as operating system extensions, taking advantage of existing
features of the operating system [76]. Lastly, the third approach builds mobile agent systems as specialised
application software that runs on top of an operating system, to provide for the mobile agent functionality, with
such software being called an agent station [103]. In this last approach, each agent station hides the vendorspecific aspects of its host platform, and offers standardised services to visiting agents. Services include access
to local resources and applications; for example, web servers or web services, the local exchange of information
between agents via message passing, basic security services, and the creation of new agents [103]. Also, the third
approach is the most platform-agnostic, and is visualised in Figure 5.
9
2.4.2 Evolutionary Computing
For evolving software in Digital Ecosystems evolutionary computing is the logical field from which to start.
In BIC, one of the primary sources of inspiration from nature has been evolution [100]. Evolution has been
clearly identified as the source of many diverse and creative solutions to problems in nature [38, 55]. However,
it can also be useful as a problem-solving tool in artificial systems. Computer scientists and other theoreticians
realised that the selection and mutation mechanisms so effective in biological evolution could be abstracted for
implementation in a computational algorithm [100]. Evolutionary computing is now recognised as a sub-field
of artificial intelligence (more particularly computational intelligence) that involves combinatorial, continuous
optimisation, and mixed-integer optimisation problems [3].
Evolutionary algorithms are based upon several fundamental principles from biological evolution, including
reproduction, mutation, recombination (crossover), natural selection, and survival of the fittest. As in biological
systems, evolution occurs by the repeated application of the above operators [2]. An evolutionary algorithm
operates on a set of individuals, called a population. An individual, in the natural world, is an organism with
an associated fitness [90]. Candidate solutions to an optimisation problem play the role of individuals in a
population, and a cost function determines the environment within which the solutions live, analogous to the way
the environment selects for the fittest individuals. Candidate solutions to an optimisation problem play the role of
individuals in a population, and a cost function determines the environment by selecting for the fittest individuals.
The number of individuals varies between different implementations and may also vary through time during the
use of the algorithm. Each individual possesses some characteristics that are defined through its genotype, its
genetic composition. These characteristics may be passed on to descendants of that individual [2]. Processes of
mutation (small random changes) and crossover (generation of a new genotype by the combination of components
from two individuals) may occur, resulting in new individuals with genotypes different from the ancestors they will
come to replace. These processes iterate, modifying the characteristics of the population [2]. Which members of the
population are kept, or are used as parents for offspring, will often depend upon some external characteristic, called
the fitness (cost) function of the population. It is this that enables improvement to occur [2], and corresponds to
the fitness of an organism in the natural world [90]. Recombination and mutation create the necessary diversity
and thereby facilitate novelty, while selection acts as a force increasing quality. Changed pieces of information
resulting from recombination and mutation are randomly chosen. However, selection operators can be either
deterministic, or stochastic. In the latter case, individuals with a higher fitness have a higher chance to be
selected than individuals with a lower fitness [2].
There are different strands of what has become called evolutionary computing [2]. The first is genetic algorithms. A second strand, evolution strategies, focuses on continuous and mixed-integer types of problems. A
third strand, evolutionary programming, originally developed from machine intelligence motivations. These areas
developed separately for about fifteen years, but from the early nineties they are seen as different representatives
(dialects) of one technology, called evolutionary computing [47]. In the early nineties, another fourth stream
following the general ideas had emerged, called genetic programming [47]. Genetic programming [80] can be considered as a variant of genetic algorithms where individual genotypes are represented by executable programmes.
Specifically, solutions are represented as trees of expressions in an appropriate programming language, with the
aim of evolving the most effective programme for solving a particular problem [6].
Many important questions remain to be answered in understanding the performance of evolutionary algorithms. For example, current evolutionary algorithms for evolving programmes (genetic programming) suffer
from some weaknesses. First, while being moderately successful at evolving simple programmes, it is very difficult to scale them to evolve high-level software components [98]. Second, the estimated fitness of a programme
is normally given by a measure of how accurately it computes a given function, as represented by a set of input
and output pairs, and therefore there is only a limited guarantee that the evolved programme actually does the
intended computation [98]. These issues are particularly important when evolving high-level, complex, structured
software.
To evolve high-level software components in Digital Ecosystems, we will take advantage of the native method
of software advancement, human developers, by using evolutionary computing for combinatorial optimisation [124]
of available software services. This would involve treating developer-produced software services as the functional
building blocks, as the base unit in a genetic-algorithms-based process. Such an approach will require a modular
reusable paradigm to software development, such as SOAs, which are discussed in the following subsection.
2.4.3 Service-Oriented Architectures
Our approach to evolving high-level software applications requires a modular reusable paradigm to software development. SOAs are the current state-of-the-art approach, being the current iteration of interface/componentbased design from the 1990s, which was itself an iteration of event-oriented design from the 1980s, and before
then modular programming from the 1970s [25, 82]. Service-oriented computing promotes assembling application
10
components into a loosely coupled network of services, to create flexible, dynamic business processes and agile
applications that span organisations and computing platforms [125]. This is achieved through a SOA, an architectural style that guides all aspects of creating and using business processes throughout their life-cycle, packaged as
services. This includes defining and provisioning infrastructure that allows different applications to exchange data
and participate in business processes, loosely coupled from the operating systems and programming languages
underlying the applications [120]. Hence, a SOA represents a model in which functionality is decomposed into
distinct units (services), which can be distributed over a network, and can be combined and reused to create
business applications [125].
A SOA depends upon service-orientation as its fundamental design principle. In a SOA environment, independent services can be accessed without knowledge of their underlying platform implementation [120]. Services
reflect a service-oriented approach to programming that is based on composing applications by discovering and
invoking network-available services to accomplish some task. This approach is independent of specific programming languages or operating systems, because the services communicate with each other by passing data from one
service to another, or by co-ordinating an activity between two or more services [125]. So, the concepts of SOAs
are often seen as built upon, and the development of, the concepts of modular programming and distributed
computing [82].
SOAs allow for an information system architecture that enables the creation of applications that are built by
combining loosely coupled and interoperable services [120]. They typically implement functionality most people
would recognise as a service, such as filling out an online application for an account, or viewing an online bank
statement [82]. Services are intrinsically unassociated units of functionality, without calls to each other embedded
in them. Instead of services embedding calls to each other in their source code, protocols are defined which describe
how services can talk to each other, in a process known as orchestration, to meet new or existing business system
requirements [147]. This is allowing an increasing number of third-party software companies to offer software
services, such that SOA systems will come to consist of such third-party services combined with others created
in-house, which has the potential to spread costs over many users and uses, and promote standardisation both
in and across industries [30]. For example, the travel industry now has a well-defined, and documented, set of
both services and data, sufficient to allow any competent software engineer to create travel agency software using
entirely off-the-shelf software services [79, 27]. Other industries, such as the finance industry, are also making
significant progress in this direction [174].
Fig. 6 Service-Oriented Architectures: Abstract visualisations, with the first image showing the loosely joined services
as cuboids, and the service orchestration as a polyhedron; and the second image showing their high interoperability and
re-usability in forming applications, from the use of standardised interfaces and external service orchestration.
11
The vision of SOAs assembling application components from a loosely coupled network of services, that
can create dynamic business processes and agile applications that span organisations and computing platforms,
as shown in Figure 6. It will be made possible by creating compound solutions that use internal organisational
software assets, including enterprise information and legacy systems, and combining these solutions with external
components residing in remote networks [127]. The great promise of SOAs is that the marginal cost of creating
the n-th application is virtually zero, as all the software required already exists to satisfy the requirements of
other applications. Only their combination and orchestration are required to produce a new application [158, 110].
The key is that the interactions between the chunks are not specified within the chunks themselves. Instead, the
interaction of services (all of whom are hosted by unassociated peers) is specified by users in an ad-hoc way, with
the intent driven by newly emergent business requirements [94].
The pinnacle of SOA interoperability, is the exposing of services on the internet as web services [120]. A web
service is a specific type of service that is identified by a Uniform Resource Identifier, whose service description
and transport utilise open Internet standards. Interactions between web services typically occur as Simple Object
Access Protocol calls carrying eXtensible Markup Language data content. The interface descriptions of web
services are expressed using the Web Services Definition Language (WSDL) [126]. The Universal Description
Discovery and Integration (UDDI) standard defines a protocol for directory services that contain web service
descriptions. UDDI enables web service clients to locate candidate services and discover their details. Service
clients and service providers utilise these standards to perform the basic operations of SOAs [126]. Service
aggregators can then use the Business Process Execution Language (BPEL) to create new web services by
defining corresponding compositions of the interfaces and internal processes of existing services [126].
SOA services inter-operate based on a formal definition (or contract, e.g. WSDL) that is independent of the
underlying platform and programming language. Service descriptions are used to advertise the service capabilities, interface, behaviour, and quality [126]. The publication of such information about available services provides
the necessary means for discovery, selection, binding, and composition of services [126]. The expected behaviour
of a service during its execution is described by its behavioural description (for example, as a workflow process).
Also, included is a quality of service description, which publishes important functional and non-functional service
quality attributes, such as service metering and cost, performance metrics (response time, for instance), security
attributes, integrity (transactional), reliability, scalability, and availability [126]. Service clients (end-user organisations that use some service) and service aggregators (organisations that consolidate multiple services into a new,
single service offering) utilise service descriptions to achieve their objectives [126]. One of the most important and
continuing developments in SOAs is Semantic Web Services (SWS), which make use of semantic descriptions for
service discovery, so that a client can discover the services semantically [130, 24], i.e. using semantics to search
for available web services.
There are multiple standards available and still being developed for SOAs [164], most notably of recent
being REpresentational State Transfer (REST) [147]. The software industry now widely implements a thin
SOAP/WSDL/UDDI veneer atop existing applications or components that implement the web services paradigm
[127], but the choice of technologies will change with time. Therefore, the fundamentals of SOAs and its services
are best defined generically, because SOAs are technology agnostic and need not be tied to a specific technology
[125]. Within the current and future scope of the fundamentals of SOAs, there is clearly potential to evolve
complex high-level software applications from the modular services of SOAs, instead of the instruction level
evolution currently prevalent in genetic programming [81].
2.4.4 Distributed Evolutionary Computing
Having previously introduced evolutionary computing, and the possibility of it occurring within a distributed
environment, not unlike those found in mobile agent systems, leads us to consider a specialised form known as
distributed evolutionary computing. The motivation for using parallel or distributed evolutionary algorithms is
twofold: first, to improve the speed of evolutionary processes by conducting concurrent evaluations of individuals
in a population; second, to improve the problem-solving process, overcoming difficulties that face traditional
evolutionary algorithms, such as maintaining diversity to avoid premature convergence [114, 154]. The fact that
evolutionary computing manipulates a population of independent solutions actually makes it well suited for
parallel and distributed computation architectures [26]. There are several variants of distributed evolutionary
computing, leading some to propose a taxonomy for their classification [122], with there being two main forms
[26, 154]:
– multiple-population/coarse-grained migration/island models
– single-population/fine-grained diffusion/neighbourhood models
In the coarse-grained island models [95, 26], evolution occurs in multiple parallel sub-populations (islands),
each running a local evolutionary algorithm, evolving independently with occasional migrations of highly fit
12
individuals among sub-populations. The core parameters for the evolutionary algorithm of the island-models are
as follows [95]:
– number of the sub-populations: 2, 3, 4, more
– sub-population homogeneity
– size, crossover rate, mutation rate, migration interval
– topology of connectivity: ring, star, fully-connected, random
– static or dynamic connectivity
– migration mechanisms:
– isolated/synchronous/asynchronous
– how often migrations occur
– which individuals migrate
Fine-grained diffusion models [97, 154] assign one individual per processor. A local neighbourhood topology is
assumed, and individuals are allowed to mate only within their neighbourhood, called a deme2 . The demes overlap
by an amount that depends on their shape and size, and in this way create an implicit migration mechanism.
Each processor runs an identical evolutionary algorithm which selects parents from the local neighbourhood,
produces an offspring, and decides whether to replace the current individual with an offspring. However, even
with the advent of multi-processor computers, and more recently multi-core processors, which provide the ability
to execute multiple threads simultaneously [99], this approach would still prove impractical in supporting the
number of agents necessary to create a Digital Ecosystem. Therefore, we shall further consider the island models.
Island
1
P15
P51
Island
5
P14
P12
P13
P21
P25
P52
P24
P53
P23
P54
P45 P41 P42
Island
4
Island
2
P43
P35
P34
P31
P32
Island
3
Fig. 7 Island-Model of Distributed Evolutionary Computing [95, 26]: There are different probabilities of going from island
1 to island 2 , as there is of going from island 2 to island 1 . This mirrors the naturally inspired quality that although
two populations have the same physical separation, it may be easier to migrate in one direction than the other, i.e. fish
migration is easier downstream than upstream.
An example island-model [95, 26] is visualised in Figure 7, in which there are different probabilities of going
from island 1 to island 2 , as there is of going from island 2 to island 1 . This allows maximum flexibility
for the migration process, and mirrors the naturally inspired quality that although two populations have the
same physical separation, it may be easier to migrate in one direction than the other, i.e. fish migration is easier
downstream than upstream. The migration of the island models is like the notion of migration in nature, being
similar to the metapopulation models of theoretical ecology [93]. However, the islands in this approach all work
on the same exact problem, making it less analogous to biological ecosystems in which different locations can be
environmentally different [10]. We will take advantage of this property later when defining Ecosystem-Oriented
Architectures (EOAs) for Digital Ecosystems.
2.5 Digital Business Ecosystems
The questions we have raised are wide-ranging, and have motivated several interdisciplinary research teams,
including those involved in an EU Framework VI project called Digital Business Ecosystems (DBEs). The DBE
2 In biology a deme is a term for a local population of organisms of one species that actively interbreed with one another
and share a distinct gene pool [165].
13
Fig. 8 Business Ecosystem [116]: Conceptual visualisation [50] showing a Business Ecosystem of interacting SME users,
via the services they provide and consume. Creating a network of business ecosystems distributed over different geographical
regions, business domains, and industry sectors.
is a proposed methodology for economic and technological innovation. Specifically, the DBE is a software infrastructure for supporting large numbers of interacting business users and services [116]. The DBE aims to be a
next generation ICT that will extend the SOA concept with the automatic combining of available and applicable
services in a scalable architecture, to meet business user requests for applications that facilitate business processes. In essence, the DBE will be an internet-based environment in which businesses will be able to interact
with each other in very effective and efficient ways [117].
The synthesis of the concept of Digital Business Ecosystems emerged by adding [115] digital in front of
business ecosystem [111]. The term Digital Business Ecosystem was used earlier, but with a focus exclusively on
developing countries [112]. The generalisation of the term to refer to a new interpretation of what socio-economic
development catalysed by ICT means was new, emphasising the co-evolution between the business ecosystem and
its partial digital representation: the digital ecosystem. The term Digital Business Ecosystem came to represent
the combination of the two ecosystems [116].
The business ecosystem is an economic community supported by a foundation of interacting organisations
and individuals; i.e. the organisms of the business world. This economic community produces goods and services
of value to customers, who are themselves members of the ecosystem [111], as shown in Figure 8. A wealthy
ecosystem sees a balance between co-operation and competition in a dynamic free market. Regarding a particular
business ecosystem, two main different interpretations of its structure have been discussed in the literature. The
keystone model has a structure in which a business ecosystem is dominated by a large firm that is surrounded
by many small suppliers [74]. This model works well when the central firm is healthy, but represents a significant
weakness for the economy of the region when the dominant economic actor experiences difficulties [111]. This
model also matches the economic structure of the USA where there is a predominant number of large enterprises
at the centre of large value networks of suppliers [74]. However, the model for a business ecosystem developed in
Europe is less structured and more dynamic; it is composed mainly of SMEs, but can accommodate large firms
[143]. All actors complement one another, leading to a more dynamic division of labour, organised along onedimensional value chains and two-dimensional value networks [35]. This model is particularly well-adapted for
the service and knowledge industries, where it is easier for small firms to reinvent themselves than, for instance,
in the automotive industry which is dominated by large enterprises [116].
In the DBE, the digital ecosystem is the technical infrastructure, based on a peer-to-peer distributed software
technology that transports, finds, and connects services and information over Internet links enabling networked
transactions, and the distribution of all the digital objects present within the infrastructure [116]. Such organisms
14
of the digital world encompass any useful digital representations expressed by languages (formal or natural) that
can be interpreted and processed (by computer software and/or humans), e.g. software applications, services,
knowledge, taxonomies, folksonomies, ontologies, descriptions of skills, reputation and trust relationships, training
modules, contractual frameworks, laws [116]. So, the Digital Business Ecosystem is a biological metaphor that
highlights the interdependence of all actors in the business environment, who co-evolve their capabilities and roles
[111], and which has attempted to develop an isomorphic model between biological behaviour and the behaviour
of the digital ecosystem, leading to an evolutionary, self-organising, and self-optimising environment built upon
an underlying SOA [117].
The DBE aims to help local economic actors become active players in globalisation [45], valorising their local
culture and vocations, enabling them to interact and create value networks at the global level. Increasingly this
approach, dubbed glocalisation, is being considered a successful strategy of globalisation that preserves regional
growth and identity [140, 157, 77], and has been embraced by the mayors and decision-makers of thousands of
municipalities [57], because of the possible tension between globalisation and localisation when adopting ICTs
[28].
The DBE represents a business-to-business (B2B) interaction concept supported by a software platform (digital ecosystem) that is intended to have the desirable properties of biological ecosystems [44], and its researchers
also recognise the importance of SOAs in creating Digital Ecosystems [134, 117]. So, we will consider using the
concept of a business ecosystem as a potential user base for Digital Ecosystems.
3 Ecosystem-Oriented Architectures
We will now define the architectural principles of Digital Ecosystems. We will use our understanding of theoretical
biology from section 2.3, mimicking the processes and structures of life, evolution, and ecology of biological
ecosystems. We will achieve this by combining elements from mobile agents systems, distributed evolutionary
computing, and SOAs from section 2.4, to create a hybrid architecture which is the digital counterpart of biological
ecosystems.
We will refer to the agents of Digital Ecosystems as Agents, populations as Populations, and the habitats as
Habitats, to distinguish their new hybrid definitions from their original biological and computing definitions.
3.1 Agents
The Agents of the Digital Ecosystem are functionally analogous to the organisms of biological ecosystems, including the behaviour of migration and the ability to be evolved [10], and will be achieved through using a hybrid
of different technologies. The ability to migrate is provided by using the paradigm of agent mobility from mobile
agent systems [128], with the Habitats of the Digital Ecosystem provided by the facilities of agent stations from
mobile agent systems [103], i.e. a distributed network of locations to migrate to and from. The Habitats, and
the Habitat network will be discussed later. The ability of the Agents to be evolved is in two parts: first, by
using the interoperability of services from SOAs [120] to aggregate Agents; and second, the use of evolutionary
computing [47] for combinatorial optimisation [124] at the Habitats to evolve aggregations of Agents, that are
optimal compared to user requests for applications. The Agents will take advantage of the interoperability of
SOAs [120], by acting in a relationship of agency [170] to the user supplied SWSs, which will be SOA compliant
[126]. We can then evolve high-level software applications by using evolutionary computing for combinatorial
optimisation of the available Agents, or rather the services they represent, in a genetic-algorithms-based [58]
process. This makes an Agent, of the Digital Ecosystem, a lightweight entity consisting primarily of a pointer to
the SWS it represents, including the service’s executable component and semantic description. A software service
can be a software only service, e.g. data encryption, or provide a front-end to a real-world service, e.g. selling
books, as shown in Figure 9.
An organism within Digital Ecosystems is an Agent, or an Agent aggregation created using evolutionary
optimisation in response to a user request for an application. These Agents will migrate through the Habitat
network of the Digital Ecosystem, adapting to find niches where they are useful in fulfilling other user requests
for applications. The Agents will interact, evolve and adapt over time to the environment, thereby serving the
ever-changing requirements of the user base.
The executable component, of a SWS that an Agent represents, is equivalent to the DNA of an organism,
whose sequence encodes the genetic information of living organisms and has two primary functions [90]: the
holder of virtually all information in inheritance, and the controller of protein synthesis for the construction and
operation of its organism. Equivalently, the executable component is also the inheritable component from one
generation to the next, and defines the objects and behaviour of its service’s run-time instantiation.
15
User Base
SOA
Real
World
Service
Semantic
Web
Service
Digital Ecosystem
pointer
poi
Agent
nte
r
Agent
Fig. 9 Agent of the Digital Ecosystem: A lightweight entity consisting primarily of a pointer to the SWS it represents,
which is SOAs compliant and therefore includes an executable component and semantic description. A software service
can be a software only service, e.g. data encryption, or provide a front-end to a real-world service, e.g. selling books.
The genotype of an individual describes the genetic constitution (DNA) of an individual, independent of its
physical existence (the phenotype) [90]. Equivalently, the semantic description, of a SWS that an Agent represents, describes the functionality of the executable component. The phenotype of an individual arises from
the combination of an organism’s DNA and the environment [90]. Equivalently, the run-time instantiation, of
a service that an Agent represents, results from instantiating the executable component in the run-time environment. This differentiation between genotype and phenotype is fundamental for escaping local optima, and is
often lacking in artificial evolutionary systems [145], having instead a one-to-one genotype-phenotype mapping,
in which the phenotype is directly encoded in the genotype with no differentiation provided by instantiation
(development) [145]. Neutral genotype-phenotype mappings have this differentiation between the genotype and
phenotype [146], which more strongly parallels biological evolution [5]. We therefore expect the use of a neutral genotype-phenotype mapping to help Digital Ecosystems demonstrate behaviour more akin to biological
ecosystems.
3.1.1 Agent Aggregation
The executable component of a SWS, that an Agent represents via a pointer to the SWS, is equivalent to an
organism’s DNA and is the gene (functional unit) in the evolutionary process [90]. So, the Agents should be
aggregated as a sequence, like the sequencing of genes in DNA [90], such that an aggregation of Agents is a
sequence of Agents. It could be argued that the Agents should be aggregated as an unordered set, or, based on
service orchestration, into a tree or workflow, as shown in Figure 10. However, the aggregated structure of the
Agents should not be the orchestration structure of the collection of software services that the Agents represent,
not only because the service orchestration of the run-time instantiation is application domain-specific (e.g. trees
in supply chain management [86], workflows in the travel industry [12]), but because it would also move it
undesirably towards a one-to-one genotype-phenotype mapping [145].
set
sequence
tree
workflow
Fig. 10 Structure of Aggregated Agents: The executable component of a SWS, that an Agent represents via a pointer to
the SWS, is equivalent to an organism’s DNA and is the gene (functional unit) in the evolutionary process [90]. So, the
Agents should be aggregated as a sequence, like the sequencing of genes in DNA [90], such that an aggregation of Agents
is a sequence of Agents.. Instead of an unordered set, or, based on service orchestration, into a tree or workflow.
16
3.2 Habitats
The Habitats are the nodes of the Digital Ecosystem, and are functionally analogous to the habitats of a biological
ecosystem [90]. Their functionality is provided by using the agent stations from mobile agent systems [103]
(to provide a distributed environment in which Agent migration can occur), with evolutionary computing [47]
for the Agent interaction (instead of traditional agent interaction mechanisms [170]), and the island-model of
distributed evolutionary computing [95] for the connectivity between Habitats, as shown in Figure 11. There will
be a Habitat for each user, which the users will typically run locally, and through which they will submit requests
for applications. Supporting this functionality, Habitats have the following core functions:
– Provide a subset of the Agents and Agent-sequences available globally, relevant to the user that the Habitat
represents, and stored in what we will call an Agent-pool (for reasons that will be explained later).
– Accelerate, via the Agent-pool, the Populations instantiated to evolve optimal Agent-sequences in response
to user requests for applications.
– Manage the inter-Habitat connections for Agent migration.
– For service providers; manage the distribution of Agents (which represent their services) to other users of the
Digital Ecosystem, via the network of interconnected Habitats.
The collection of Agents at each Habitat (peer) will change over time, as the more successful Agents spread
throughout the Digital Ecosystem, and as the less successful Agents are deleted. Successive user requests over time
to their dedicated Habitats will make this process possible, because the continuous and varying user requests for
applications provide a dynamic evolutionary pressure on the Agents, which have to evolve to better satisfy those
requests. So, the Agents will recombine and evolve over time, constantly seeking to increase their effectiveness
for the user base. The Agent is the base unit of the evolutionary process in Digital Ecosystems, in the same way
that the gene is the base unit for evolution in biological ecosystems [10]. So, the collection of Agents at each
Habitat provides an Agent-pool, similar to a gene-pool, which is all the genes in a population [90]. Additionally,
it also stores Agent-sequences evolved from the Habitat’s Populations, and Agent-sequences that migrate to the
Habitat from other users’ Habitats, because they can potentially accelerate future Populations instantiated to
respond to user requests.
H
H
H
H
Agent Station
H
H
H
H
H
H
H
H
Genetic
Algorithm
H
H
H
H
H
H
Fig. 11 Habitat Network: Uses the agent stations from mobile agent systems [103] (to provide a distributed environment
in which Agent migration can occur), with evolutionary computing [47] for the Agent interaction (instead of traditional
agent interaction mechanisms [170]), and the island-model of distributed evolutionary computing [95] for the connectivity
between Habitats.
The landscape, in energy-centric biological ecosystems, defines the connectivity between habitats [10]. Connectivity of nodes in the digital world is generally not defined by geography or spatial proximity, but by information
or semantic proximity. For example, connectivity in a peer-to-peer network is based primarily on bandwidth
and information content, and not geography. The island-models of distributed evolutionary computing use an
information-centric model for the connectivity of nodes (islands) [95]. However, because it is generally defined for
one-time use (to evolve a solution to one problem and then stop) it usually has a fixed connectivity between the
nodes, and therefore a fixed topology [26]. So, supporting evolution in the Digital Ecosystem that has a dynamic
multi-objective selection pressure (fitness landscape [171] with many peaks) requires a re-configurable network
topology, such that Habitat connectivity can be dynamically adapted based on the observed migration paths of
17
the Agents between the users within the Habitat network. Therefore, based on the island-models of distributed
evolutionary computing [95], each connection between the Habitats is bi-directional and there is a probability
associated with moving in either direction across the connection, with the connection probabilities affecting the
rate of migration of the Agents. Additionally, the connection probabilities will be updated by the success or
failure of Agent migration using the concept of Hebbian learning [70]: the Habitats which do not successfully
exchange Agents will become less strongly connected, and the Habitats which do successfully exchange Agents
will achieve stronger connections. This leads to a topology that adapts over time, resulting in a network that
supports and resembles the connectivity of the user base. When we later consider an example user base, we will
further discuss a resulting topology.
When a new user joins the Digital Ecosystem, a Habitat will be created for them, and most importantly
connected to the correct cluster(s) in the Habitat network. A new user’s Habitat can be connected randomly to
the Habitat network, as it will dynamically reconnect based upon the user’s behaviour. User profiling can also be
used to help connect a new user’s Habitat to the optimal part of the network, finding a similar user or asking the
user to identify a similar user and then cloning their Habitat’s connections. Also, when a new Habitat is created,
its Agent-pool should be created by merging the Agent-pools of the Habitats to which it is initially connected.
3.2.1 Agent Migration
The Agents will migrate through the interconnected Habitats combining with one another in Populations to
meet user requests for applications. The migration path from the current Habitat is dependent on the migration
probabilities between the Habitats. The migration of an Agent within the Digital Ecosystem is initially triggered
by deployment to its user’s Habitat, for distribution to other users who will potentially make use of the service
the Agent represents. When a user deploys a service, its representative Agent must be generated and deployed
to their Habitat. It is then copied to the Agent-pool of the user’s Habitat, and from there the migration of the
Agent occurs, which involves migrating (copying) the agent probabilistically to all the connected Habitats. The
Agent is copied rather than moved, because the Agent may also be of use to the providing user. The copying of an
Agent to a connected Habitat depends on the associated migration probability. If the probability were one, then
it would definitely be sent. When migration occurs, depending on the probabilities associated with the Habitat
connections, an exact copy of the Agent is made at a connected Habitat. The copy of the Agent is identical until
the new Agent’s migration history is updated, which differentiates it from the original. The successful use of the
migrated Agent, in response to user requests for applications, will lead to further migration (distribution) and
therefore availability of the Agent to other users.
The connections joining the Habitats are reinforced by successful Agent and Agent-sequence migration.
The success of the migration, the migration feedback, leads to the reinforcing and creation of migration links
between the Habitats, just as the failure of migration leads to the weakening and negating of migration links
between the Habitats. The success of migration is determined by the usage of Agents at the Habitats to which
they migrate. When an Agent-sequence is found and used in responding to a user request, then the individual
Agent migration histories can be used to determine where they have come from and update the appropriate
connection probabilities. If the Agent-sequence was fully or partly evolved elsewhere, then where the sequence or
sub-sequences were created needs to be passed on to the connection probabilities, because the value in an Agentsequence is the unique ordering and combination it provides of the individual Agents contained within. So, it is
necessary to manage the feedback to the connection probabilities for migrating Agent-sequences, and not just
the individual Agents contained within the sequence, including the partial use of an Agent-sequence in a newly
evolved one. Specifically, the mechanism for migration feedback needs to know the Habitats where migrating
Agent-sequences were created, to create new connections or reinforce existing connections to these Habitats. The
global effect of the Agent migration and migration feedback on the Habitat network is the clustering of Habitats
around the communities present within the user base, and will be discussed later in more detail.
The escape range is the number of escape migrations available to an Agent upon the risk of death (deletion).
If an Agent migrates to a Habitat and is not used after several user requests, then it will have the opportunity
to migrate (move not copy) randomly to another connected Habitat. After this happens several times the Agent
will be deleted (die). The escape range will be dynamically responsive to the size of the Habitat cluster that the
Agent exists within. This creates a dynamic time-to-live [33] for the Agents, in which Agents that are used more
will live longer and distribute farther than those that are used less.
3.3 Populations
The Populations of the Digital Ecosystem are functionally equivalent to the evolving, self-organising populations
of a biological ecosystem, and are achieved through using evolutionary computing. A population in biological
ecosystems is all the members of a species that occupy a particular area at a given time [90]. Our Population
18
request
Population
Habitat
Agent
?
Population
(GA)
solution
user
(Genetic Algorithm)
Agent-pool
Fig. 12 User Request to the Digital Ecosystem (modified from [85]): A user will formulate queries to the Digital Ecosystem
by creating a request as a semantic description, like those being used and developed in SOAs [130], specifying an application
they desire and submitting it to their Habitat. A Population is then instantiated in the user’s Habitat in response to the
user’s request, seeded from the Agents available at their Habitat (Agent-pool).
is also all the members of a species that occupy a particular area at a given time, like an island from the islandmodels of distributed evolutionary computing [95]. The use of distributed evolutionary computing to accelerate
the Populations will be explained later.
The users will formulate queries to the Digital Ecosystem by creating a request as a semantic description,
like those being used and developed in SOAs [130], specifying an application they desire and submitting it to
their Habitat, instead of using the semantic descriptions to search directly for the web services. This description
enables the definition of a metric for evaluating the fitness of a composition of Agents, as a distance function
between the semantic description of the request and the Agents’ semantic descriptions. A Population is then
instantiated in the user’s Habitat in response to the user’s request, seeded from the Agents available at their
Habitat (i.e. its Agent-pool). This allows the evolutionary optimisation to be accelerated in the following three
ways: first, the Habitat network provides a subset of the Agents available globally, localised to the specific user it
represents; second, making use of Agent-sequences previously evolved in response to the user’s earlier requests;
and third, taking advantage of relevant Agent-sequences evolved elsewhere in response to similar requests by
other users. The Population then proceeds to evolve the optimal Agent-sequence(s) that fulfils the user request,
and as the Agents are the base unit for evolution, it searches the available Agent-sequence combination space. For
an evolved Agent-sequence that is executed (instantiated) by the user, it then migrates to other peers (Habitats)
becoming hosted where it is useful, to combine with other Agents in other Populations to assist in responding to
other user requests for applications
3.3.1 Evolution
Evolution in biological ecosystems leads to both great diversity and high specialisation of its organisms [10]. In
Digital Ecosystems the diversity of evolution will provide for the wide range of user needs and allow for quick
responses to the changing of these user needs, while the specialisation will simultaneously provide solutions which
are tailored to fulfil specific user requests. We will consider the issue of diversity in a later subsection, because it is
achieved through evolution in a distributed environment, which will be discussed later. In biological ecosystems,
evolutionary specialisation is localised to a population within its micro-habitat, which allows for the creation of
niches (high specialisation) [90]. So, a Population is instantiated in the user’s own Habitat, where the collection
of Agents is chosen for the user, and the micro-Habitat is provided by the user request. There is nothing to
preclude more than one Population being instantiated in a user’s Habitat at any one time, provided there are
computational resources sufficiently available.
A selection pressure is the sum aggregate of the forces acting upon a population, resulting in genetic change
through natural selection [90]. Those organisms best fit to survive the selection pressures operating upon them
will pass on their biological fitness to their progeny through the inheritance process [90]. The fitness of an
individual Agent-sequence within a Population is determined by a selection pressure, applied as a fitness function
[47] instantiated from the user request, and works primarily on comparing the semantic descriptions of the Agents
with the semantic description of the user request. The selection pressure selects for those Agent-sequences that
are fit and capable of surviving the environment to reproduce, and against those that do not have sufficient
fitness and therefore die before passing on their genes, thereby providing the direction for genetic change. In
biology fitness is a measure of an organism’s success in its environment [90], and its definition here will be further
explained in the next subsection.
19
Genes are the functional unit in biological evolution [90]; whereas here the functional unit is the Agent.
Therefore, the evolutionary process of a Population provides a combinatorial optimisation [124] of the Agents
available, when responding to a user request. So, it does not change or mutate the Agents themselves. In biology
a mutation is a permanent transmissible change (over the generations) in the genetic material (DNA) of an
individual, and recombination (e.g. crossover) is the formation within the offspring of alleles (gene combinations),
which are not present in the parents [90]. As in genetic algorithms [58], mutations will occur by switching Agents
in and out of the Agent-sequence structure, and recombination (crossover) will occur by performing a crossing
of two Agent-sequences.
As the Digital Ecosystem receives more and more sophisticated requests, so more and more complex applications are evolved and become available for use by the users. To achieve this evolution, specifically the
Agent-sequence recombination and optimisation, is a very significant challenge, because of the range of services
that must be catered for and the potentially huge number of factors that must be considered for creating an
applicable fitness function. First, to construct ever more complex software solutions, requires modularity, which
is provided by the paradigm of service interoperability from SOAs [120]. Second, two of the most important issues
are that of defining fitness and managing bloat, which we will discuss next. Finally, there is a huge body of work
and continuing research regarding theoretical approaches to evolutionary computing [47], including the extensive
use of genetic algorithms for practical real-world problem solving [46]. In defining Digital Ecosystems we should
make use of the current state-of-the-art, and future developments, in the areas of evolutionary computing [75]
and service interoperability [120].
3.3.2 Fitness
In biology fitness is a measure of how successful an organism is in its environment, i.e. its phenotype [90]. The
fitness of an Agent-sequence within a Population would also, ideally, be based upon its phenotype, the runtime instantiation, and nothing else. However, such an approach would be impractical, because it is currently
infeasible to execute all the Agent-sequences of a Population at every generation, and not least because of the
computational resources that would be required. The other concern is one of practicality, by which we mean that
it may not even be possible to perform a live execution for the executable components of an Agent-sequence;
for example, if they are for buying an item from an online retailer. These are well known issues in evolutionary
computing, which is why fitness functions are often defined as simulated input/output pairs to test functionality
[98]. In Digital Ecosystems we can use historical usage information, but this would be insufficient initially, because
such information would not be available at the time of an Agent’s deployment. However, because each Agent
also carries a semantic description, a specification of what it does, the fitness function can measure a complete
Agent-sequence’s collective semantic descriptions relative to the semantic description of a user request. So,
initially the fitness function should be based primarily on comparing the semantic descriptions of the Agentsequences to the semantic description of the user request, ever increasingly augmented with the growing usage
information available for the Agents. In biological terms the genotype will be used as the phenotype, combined
with any available past fitness of the phenotype; with the Agent’s semantic description (genotype) therefore acting
as a guarantee of its expected behaviour. So, for any newly deployed Agent a one-to-one genotype-phenotype
mapping [145] will initially exist, until sufficient usage information is available. While the use of such a mapping
is undesirable, it is temporary, and necessary to allow Digital Ecosystems to operate effectively.
We have already suggested that the primary driver of the evolutionary process should initially be the extent
by which an Agent-sequence can verifiably satisfy the specified requirements. This could be measured probabilistically, or using theorem-proving to validate the system, though automatic theorem proving is notoriously slow
[149, 144]. However, there will also be other pressures on the fitness. For example, one may seek the most parsimonious solution to a problem (one that provides exactly the specified features and no more), or the cheapest
solution, or one with a good reputation. Some aspects of fitness will be implicit in the evolutionary process (e.g.
Agents which are often used will gain more fitness) while others will require explicit measures (e.g. price, or user
satisfaction). One way to handle this multiplicity of fitness values (some qualitative) is to explicitly recognise
the multi-objective nature of the optimisation problem. In this way, we are seeking not the single best solution,
but a range of possible compromises that can be made most optimally. The set of solutions for which there are
no better compromises is called the Pareto-set, and evolutionary techniques have been adapted to solve such
problems with considerable success [163]. The main point is that selection has to be driven not by an absolute
value of fitness, but rather by a notion of what it means for one solution to be better than another. We say one
solution dominates another if it is better in at least one respect, and no worse in any of the others [53].
3.3.3 Bloat
If the repetition of Agents is allowed within evolving Agent-sequences, then the search space can become countably
infinite, because the nature of the problem to be solved may not allow us to determine what the length of a solution
20
is beforehand. Therefore, a variable length approach must be adopted, which is common in genetic programming
[80]. When variable length representations of solutions are used, a well-known phenomenon arises, called bloat,
in which the individuals of an evolving population tend to grow in size without gaining any additional advantage
[89]. The bloat phenomenon can cause early termination of an evolutionary process due to the exhaustion of
the available memory, and can also significantly reduce performance, because typically longer sequences have
higher fitness computation costs [133]. Bloat is not specific to genetic programming, and is inherent in search
techniques with discrete variable length representations [87]. It is a fundamental area of research within searchbased approaches such as genetic algorithms, genetic programming and other approaches not based on populations
such as simulated annealingwhenever non-crossover based recombination occurs (i.e. mutation), which is further
explained in [87]. However, considerable work on bloat has been done in connection with genetic programming [88,
6], and we believe that the genetic algorithms community generally, and the genetic-algorithms-based approach
of our Digital Ecosystems specifically, can benefit directly from this research. While bloat is a phenomenon which
was first observed in practice [80], theoretical analyses have been attempted [7]. One should take care with these
approaches as implementations will always deal with finite populations, while theoretical approaches often deal
with infinite populations [80], and this difference can be important. Yet, both theoretical and empirical approaches
are required to understand bloat. There are many factors contributing to bloat, and while the phenomenon may
appear simple, the reasons are not. There are several theories to explain why it occurs, and, as we shall discuss,
some measures that can be taken for its prevention.
There are several different qualitative theories which attempt to explain bloat, and they can be considered in
two groups. First, protection against crossover and bias removal (which can be considered jointly) and second,
the nature of programme search spaces [7]. First, near the end of a run a Population consists of mostly fit
individuals, and any crossover is likely to be detrimental to the fitness of the offspring. In any sequence of Agents
there may be Agents that do not contribute semantically to the complete functionality of the sequence if, for
example, their functionality was not requested by the user or if it is duplicated in the sequence; analogously to
genetic programming [7], we can call these redundant Agents bloat. The genotype can then be grown further
without affecting the phenotype if Agents with similar functionality are added; but, as the genotype grows larger,
crossover is more likely to transfer redundant Agents to the new off-springs (assuming uniform crossover). Second,
above a certain threshold size, the distribution of functionality does not vary with the size of the search space
[7]. Thus, if we randomly sample long and short Agent-sequences above a length threshold, they will likely have
the same functionality and fitness. So, as a search process progresses we are more likely to sample longer Agentsequences, as mutation results in more of them (all other things being equal) and this will give rise to the bloating
phenomenon.
Each of the stages of construction of a genetic algorithm (i.e. choice of fitness function, selection method and
genetic operator) can affect bloat. It has been shown that even small differences in the fitness function can cause
a difference: a single programme glitch in an otherwise flat fitness landscape (from the neutral theory of molecular
evolution [78]) is sufficient to significantly increase the average programme size of an infinite population [106].
If a fitness-proportional selection method is used, individuals with zero fitness will be discontinued as they have
zero probability of being selected as parents [15]. However, if tournament selection method is used, then there is
a finite chance that individuals with zero fitness will be selected to be parents [15]. Finally, the choice of genetic
operator affects the size of the programmes which are sampled; standard crossover on a flat landscape heavily
over samples the shorter programmes [129]. There are other factors that may affect bloat, for example, how the
population is initialised, or the choice of representation used, such as a neutral genotype-phenotype mapping,
which can actually alleviate bloat [108].
Bloat is a fact, whatever the reasons, happening in this type of optimisation and needs to be controlled if
the space is to be searched effectively. One solution is to apply a hard limit to the size of the sets that can be
sampled [89]: this enables the search algorithm to keep running without having out-of-memory run-time errors,
but poses questions on how to set this hard limit. An alternative but similar method is to apply a parsimony
pressure, where a term is added to the fitness function which chastises big sets in preference for smaller sets
[152]. In this approach, individuals larger than the average size are evaluated with a reduced probability, biasing
the search to smaller sets, while providing a dynamic limit which adapts to the average size of individuals in a
changing population [152].
3.4 The Digital Ecosystem
The Digital Ecosystem supports the automatic combining of numerous Agents (which represent services), by
their interaction in evolving Populations to meet user requests for applications, in a scalable architecture of
distributed interconnected Habitats. The sharing of Agents between Habitats ensures the system is scalable,
while maintaining a high evolutionary specialisation for each user. The network of interconnected Habitats is
equivalent to the abiotic environment of biological ecosystems [10]; combined with the Agents, the Populations,
21
migrating Agent
Habitat
network
application
(Agent-sequence)
Population
Habitat
Agent
Population
(GA)
(Genetic Algorithm)
Agent-pool
Fig. 13 Digital Ecosystem: A network of interconnected Habitats, combined with the Agents, the Populations, the Agent
migration for distributed evolutionary computing, and the environmental selection pressures provided by the user base,
then the union of the Habitats creates the Digital Ecosystem. Agents travel along the peer-to-peer connections; in every
node (Habitat) local optimisation is performed through an evolutionary algorithm, where the search space is determined
by the Agents present at the node.
the Agent migration for distributed evolutionary computing, and the environmental selection pressures provided
by the user base, then the union of the Habitats creates the Digital Ecosystem, which is summarised in Figure
13. The continuous and varying user requests for applications provide a dynamic evolutionary pressure on the
Agent sequences, which have to evolve to better fulfil those user requests, and without which there would be no
driving force to the evolutionary self-organisation of the Digital Ecosystem.
In the Digital Ecosystem, local and global optimisations concurrently operate to determine solutions to
satisfy different optimisation problems. The global optimisation here is not a decentralised super-peer based
control mechanism [136], but the completely distributed peer-to-peer network of the interconnected Habitats,
and therefore not susceptible to super-peer failure. This is because we are seeking the digital counterparts of
biological ecosystems, which are not centralised, but distributed. It provides a novel optimisation technique
inspired by biological ecosystems, working at two levels: a first optimisation, migration of Agents which are
distributed in a peer-to-peer network, operating continuously in time; this process feeds a second optimisation,
based on evolutionary combinatorial optimisation, operating locally on single peers and is aimed at finding
solutions that satisfy locally relevant constraints. So, the local search is improved through this twofold process
to yield better local optima faster, as the distributed optimisation provides prior sampling of the search space
through computations already performed in other peers with similar constraints. We will further elucidate this
two stage process in the remainder of this section, starting with the practical example described in the following
paragraph. This novel form of distributed evolutionary computing will be discussed further below, once we have
discussed a topology resulting from an example user base.
If we consider an example user base for the Digital Ecosystem, the use of SOAs in its definition means that
business-to-business (B2B) interaction scenarios [82] lend themselves to being a potential user base for Digital
Ecosystems. So, we can consider the business ecosystem of SME networks from DBEs [116], as a specific class
of examples for B2B interaction scenarios; and in which the SME users are requesting and providing software
services, represented as Agents in the Digital Ecosystem, to fulfil the needs of their business processes. SOAs
promise to provide potentially huge numbers of services that programmers can combine, via the standardised
interfaces, to create increasingly more sophisticated and distributed applications [126]. The Digital Ecosystem
22
extends this concept with the automatic combining of available and applicable services, represented by Agents,
in a scalable architecture, to meet user requests for applications. These Agents will recombine and evolve over
time, constantly seeking to improve their effectiveness for the user base. From the SME users’ point of view
the Digital Ecosystem provides a network infrastructure where connected enterprises can advertise and search
for services (real-world or software only), putting a particular emphasis on the composability of loosely coupled
services and their optimisation to local and regional, needs and conditions. To support these SME users the
Digital Ecosystem is satisfying the companies’ business requirements by finding the most suitable services or
combination of services (applications) available in the network. A composition of services is an Agent-sequence
in the Habitat network that can move from one peer (company) to another, being hosted only in those where it
is most useful in satisfying the SME users’ business needs.
To define the computing model of our ecosystem-oriented distributed evolutionary computing, we provide
a reference Unified Modelling Language (UML) class diagram in Figure 14 to complement the detailed explanations of the functionality of each class of objects. This package represents our ecosystem-oriented distributed
evolutionary computing, with Agents that can move between Habitats, and for which the optimal Agent-sequence
(or combination) is determined through evolutionary computing at the Populations of the Habitats.
Digital Ecosystem Package
Habitat
userProfile: UserProfile
agentPool : Agent[]
requests : request[]
populations : Population[]
migrationProbailities : Hashtable
Habitat(UserProfile)
migrateAgent(agents : Agent[])
receiveAgent(agents : Agent[])
updateEscapeRange(agents : Agent[], migrationProbailities : Hashtable) int
addToAgentPool(agents : Agent[])
evolveSolution(R : request, userProfile: UserProfile) :Population
migrationFeedback(agents : Agent[])
strengthenLink(habitat : Habitat)
weakenLink(habitat : Habitat)
createNewLink(habitat : Habitat)
populations *
Population
individuals: Agent[][]
fitnessFunction: FitnessFunction
mutationRate: double
Population(r :Request, agentPool :Agent[][])
evolve()
replicate()
crossover()
mutate()
weakWillPerish()
agentPool *
*
individuals
Agent
home : Habitat
migrationPath : Habitat[]
escapeRange: int
Agent(home : Habitat)
Origin() : Habitat
Fig. 14 Reference UML Class Diagram: This package represents the computing model of our ecosystem-oriented distributed evolutionary computing, with Agents (which represent simple algorithms) that can move between Habitats, for
which the optimal Agent-sequence is determined through evolutionary computing at the Populations in a scalable architecture of distributed interconnected Habitats.
23
3.4.1 Topology
The Digital Ecosystem allows for the connectivity in the Habitats to adapt to the connectivity within the user
base, with a cluster of Habitats representing a community within the user base. If a user is a member of more
than one community, the user’s Habitat will be in more than one cluster. This leads to a network topology that
will be discovered with time, and which reflects the connectivity within the user base. Similarities in requests by
different users will reinforce behavioural patterns, and lead to clustering of the Habitats within the ecosystem,
which can occur over geography, language, etc. This will form communities for more effective information sharing,
the creation of niches, and will improve the responsiveness of the system. The connections between the Habitats
will be self-managed, through the mechanism of Agent migration defined earlier. Essentially, successful Agent
migration will reinforce Habitat connections, thereby increasing the probability of future Agent migration along
these connections. If a successful multi-hop migration occurs, then a new link between the start and end Habitats
can be formed. Unsuccessful migrations will lead to connections (migration probabilities) decreasing, until finally
the connection is closed.
Business
Ecosystem
SME
Digital
Ecosystem
Habitat
Fig. 15 Digital Business Ecosystem: Business ecosystem, network of SMEs [116], using the Digital Ecosystem. As the
connections between Habitats are reconfigured depending on the connectivity of the user base, the Habitat clustering will
therefore be parallel to the business sector communities.
If we consider the business ecosystem - a network of SMEs from DBEs [116] - as an example user base,
such business networks are typically small-world networks [169, 173]. They have many strongly connected clusters (communities), called sub-networks (quasi-complete graphs), with a few connections between these clusters
(communities) [168]. Graphs with this topology have a very high clustering coefficient and small characteristic
path lengths [168]. As the connections between Habitats are reconfigured depending on the connectivity of the
user base, the Habitat clustering will therefore be parallel to the business sector communities, as shown in Figure
15. The communities will cluster over language, nationality, geography, etc. – all depending on the user base. So,
the Digital Ecosystem will take on a topology similar to that of the user base.
H
H
H
H
H
H
H
H
H
H
H
H
H
H
Community
(cluster)
Fig. 16 Habitat Clustering: Topology adapted to the small-world network of a business ecosystem of SMEs from DBEs
[116], having many strongly connected clusters (communities), called sub-networks (quasi-complete graphs), with a few
connections between these clusters (communities) [168]. Graphs with this topology have a very high clustering coefficient
and small characteristic path lengths [168].
24
Fragmentation of the Habitat network can occur, but only if dictated by the structure of the user base.
The issue of greater concern is when individual Habitats become totally disconnected, which could only occur
under certain conditions. One condition is that the Agents within the Agent-pool consistently fail to satisfy user
requests. Another condition is when the Agents and Agent-sequences they share are undesirable to the users
that are within the migration range of these Agents and Agent-sequences. These scenarios can arise because the
Habitat is located within the wrong cluster, in which case the user can be asked to join another cluster within
the Habitat network, assuming the user base is of sufficient size to provide a viable alternative.
3.4.2 Distributed Evolution
The Digital Ecosystem is a hybrid of MASs, more specifically of mobile agent systems, SOAs, and distributed
evolutionary computing, which leads to a novel form of evolutionary computation. The novelty arrises from the
creation of multiple evolving Populations responding to similar requests, whereas in the island-models of distributed evolutionary computing there are multiple evolving populations responding to only one request [95]. So,
in our Digital Ecosystem different requests are evaluated on separate islands (Populations), with their evolution
accelerated by the sharing of solutions between the evolving Populations (islands), because they are working
to solve similar requests (problems). This is shown in Figure 17, where the dashed yellow lines connecting the
evolving Populations indicate similarity in the requests being managed.
Habitat
Population
(GA)
Cluster
Fig. 17 Distributed Evolution in the Digital Ecosystem: Different requests are evaluated on separate islands (Populations),
with their evolution accelerated by the sharing of solutions between the evolving Populations (islands), because they are
working to solve similar requests (problems). The yellow lines connecting the evolving Populations indicate similarity in
the requests being managed.
If we again consider the business ecosystem of SMEs from DBEs [116] as an example user base, then in Figure
17 the four Habitats, in the left cluster, could be travel agencies, and the three with linked evolving Populations
are looking for similar package holidays. So, an optimal solution found and used in one Habitat will be migrated
to the other connected Habitats and integrate into any evolving Populations via the local Agent-pools. This will
help to optimise the search for similar package holidays at the Habitats of the other travel agencies. This also
works in a time-shifted manner, because an optimal solution is stored in the Agent-pool of the Habitats to which
it is migrated, being available to optimise a similar request placed later.
The distributed architecture of Digital Ecosystems favours the use of Pareto-sets for fitness determination,
because Pareto optimisation for multi-objective problems is usually most effective with spatial distribution of the
populations, as partial solutions (solutions to different niches) evolve in different parts of a distributed population
[160] (i.e. different Populations in different Habitats). By contrast, in a single population, individuals are always
interacting with each other, via crossover, which does not allow for this type of specialisation [2].
This approach requires the Digital Ecosystem to have a sufficiently large user base, so that there can be
communities within the user base, and therefore allow for similarity in the user requests. Assuming a user base
of hundreds of users, then there would be hundreds of Habitats, in which there will be potentially three or more
times the number of Populations at any one time. Then there will be thousands of Agents and Agent-sequences
(applications) available to meet the requests for applications from the users. In such a scenario, there would be a
sufficient number of users for the Digital Ecosystem to find similarity within their requests, and therefore apply
our novel form of distributed evolutionary computing.
25
3.4.3 Agent Life-Cycle
An Agent is created to represent a user’s service in the Digital Ecosystem, and its life-cycle begins with deployment
to its owner’s Habitat for distribution within the Habitat network. The Agent is then migrated to any Habitats
connected to the owner’s Habitat, to make it available in other Habitats where it could potentially be useful. The
Agent is then available to the local evolutionary optimisation, to be used in evolving the optimal Agent-sequence
in response to a user request. The optimal Agent-sequence is then registered at the Habitat, being stored in the
Habitat’s Agent-pool. If an Agent-sequence solution is then executed, an attempt is made to migrate (copy) it to
every other connected Habitat, success depending on the probability associated with the connection. The Agent
life-cycle is shown in Figure 18.
deploy Agent to
Agent-pool of Habitat
Agent migration
user request
evolve Agent Population
for solution (Agent-sequence)
execute
Agent-sequence
register solution at
Agent-pool of Habitat
Fig. 18 Agent Life-Cycle: Begins with deployment to its owner’s Habitat for distribution within the Habitat network. It
can then be used in evolving the optimal Agent-sequence in response to a user request. The optimal Agent-sequence is then
registered at the Habitat. If an Agent-sequence solution is then executed, an attempt is made to migrate (copy) it to every
other connected Habitat, success depending on the probability associated with the connection.
An Agent can also be deleted if after several successive user requests at a Habitat it remains unused; it will
have a small number of escape migrations, in which it is not copied, but is randomly moved to another connected
Habitat. If the Agent fails to find a niche before running out of escape migrations, then it will be deleted.
4 Simulation and Results
We simulated the Digital Ecosystem, based upon our Ecosystem-Oriented Architecture, and recorded key variables to determine whether it displayed behaviour typical of biological ecosystems, and so provide proof of concept.
We followed the Ecosystem-Oriented Architecture from the previous section, and used the business ecosystem of
SMEs from DBEs [116] as an example user base.
4.1 Agents: Semantic Descriptions
An Agent represents a user’s service, including the semantic description of the business process involved, and is
based on existing and emerging technologies for semantically capable SOAs [130], such as the Web Ontology Language - Service semantic markup for web services [101]. So, we can then make use of the ability to search for web
services semantically. Therefore, we simulated a service’s semantic description with an abstract representation
consisting of a set of numeric tuples, to simulate the properties of a semantic description. Each tuple representing
an attribute of the semantic description, one integer for the attribute identifier and one for the attribute value,
with both ranging between one and a hundred. Each simulated Agent had a semantic description, with between
three and six tuples, an example of which is shown in Figure 19.
4.2 User Base
Throughout the simulations we assumed a hundred users, which meant that at any time the number of users
joining the network equalled those leaving. The Habitats of the users were randomly connected at the start, to
simulate the users going online for the first time. The users then produced Agents (services) and requests for
26
A = {(1,25), (2,35), (3,55), (4,6), (5,37), (6,12)}
Fig. 19 Agent Semantic Descriptions: Each simulated Agent had a semantic description with an abstract representation
consisting of a set of between three and six numeric tuples; each tuple representing an attribute of the semantic description,
one integer for the attribute identifier and one for the attribute value, with both ranging between one and a hundred.
business applications. Initially, the users each deployed five Agents to their Habitats, for migration (distribution)
to any Habitats connected to theirs (i.e. their community within the business ecosystem). Users were simulated to
deploy a new Agent after the submission of three requests for business applications, and were chosen at random
to submit their requests. A simulated user request consisted of an abstract semantic description, as a list of sets
of numeric tuples to represent the properties of a desired business application. The use of the numeric tuples
made it comparable to the semantic descriptions of the services represented by the Agents; while the list of sets
(two level hierarchy) and a much longer length provided sufficient complexity to support the sophistication of
business applications. An example is shown in Figure 20.
R = [{(1,23),(2,45),(3,33),(4,6),(5,8),(6,16)}, {(1,84),(2,48),(3,53),(4,11),(5,16)}]
Fig. 20 User Request: A simulated user request consisted of an abstract semantic description, as a list of sets of numeric
tuples to represent the properties of a desired business application; each tuple representing an attribute of the semantic
description, one integer for the attribute identifier and one for the attribute value, with both ranging between one and a
hundred.
The user requests were handled by the Habitats instantiating evolving Populations, which used evolutionary
computing to find the optimal solution(s), Agent-sequence(s). It was assumed that the users made their requests
for business applications accurately, and always used the response (Agent-sequence) provided.
4.3 Populations: Evolution
Populations of Agents, [A1 , A1 , A2 , ...], were evolved to solve user requests, seeded with Agents and Agentsequences from the Agent-pool of the Habitats in which they were instantiated. A dynamic population size was
used to ensure exploration of the available combinatorial search space, which increased with the average length
of the Population’s Agent-sequences. The optimal combination of Agents (Agent-sequence) was evolved to the
user request R, by an artificial selection pressure created by a fitness function generated from the user request R.
An individual (Agent-sequence) of the Population consisted of a set of attributes, a1 , a2 , ..., and a user request
essentially consisted of a set of required attributes, r1 , r2 , .... So, the fitness function for evaluating an individual
Agent-sequence A, relative to a user request R, was
f itness(A, R) =
1+
P 1
r∈R |r
− a|
,
(1)
where a is the member of A such that the difference to the required attribute r was minimised. Equation 1 was
used to assign fitness values between 0.0 and 1.0 to each individual of the current generation of the population,
directly affecting their ability to replicate into the next generation. The evolutionary computing process was
encoded with a low mutation rate, a fixed selection pressure and a non-trapping fitness function (i.e. did not get
trapped at local optima). The type of selection used was fitness-proportional and non-elitist, fitness-proportional
meant that the fitter the individual the higher its probability of surviving to the next generation [15]. Non-elitist
meant that the best individual from one generation was not guaranteed to survive to the next generation; it had
a high probability of surviving into the next generation, but it was not guaranteed as it might have been mutated
[47]. So, individuals replicated proportionally to their fitness, i.e. the higher the fitness the more they replicated,
with their fitness values used as probabilities of their inclusion in future populations. Crossover (recombination)
was then applied to a randomly chosen 10% of the surviving population, a one-point crossover, by aligning two
parent individuals and picking a random point along their length, and at that point exchanging their tails to create
two offspring [47]. Mutations were then applied to a randomly chosen 10% of the surviving population; one point
mutation per chosen individual, which were randomly located (through use of uniformly random function to select
a point (Agent) along the Agent-sequence). These point mutations consisted of insertions, in which an Agent
was inserted into an Agent-sequence, replacements, in which an Agent was replaced in an Agent-sequence, and
deletions, in which an Agent was deleted from an Agent-sequence [90]. So, the remainder of the Population is not
subject to any kind of recombination, crossover or mutation. The issue of bloat was controlled by augmenting the
fitness function with a parsimony pressure [152] which biased the search to shorter Agent-sequences, evaluating
longer than average length Agent-sequences with a reduced fitness, and thereby providing a dynamic control
limit which adapted to the average length of the ever-changing evolving Agent Populations.
27
4.4 Semantic Filter
The simulation of the Digital Ecosystem complied with the Ecosystem-Oriented Architecture defined in the
previous section, but there was the possibility of model error in the business ecosystems of the user base (SMEs
from DBEs [116]), because while the abstract numerical definition for the simulated semantic descriptions, of
the services and requests the users provide, makes it widely applicable, it was unclear that it could accurately
represent business services. So we created a semantic filter to show the numerical semantic descriptions, of the
simulated services (Agents) and user requests, in a human readable form. The basic properties of any business
process are cost, quality, and time [39]; so this was followed in the semantic filter. It translated numerical semantic
descriptions for one community within the user base, showing it in the context of the travel industry, as shown
in Figure 21. The simulation still operated on the numerical representation for operational efficiency, but the
semantic filter essentially assigned meaning to the numbers. The output from the semantic filter, in Figure 21,
shows that the numerical semantic descriptions were a reasonable modelling assumption, abstracting sufficiently
rich textual descriptions of business services.
Agent’s semantic description:
{(1,25), (2,35), (3,55), (4,6), (5,37), (6,12)}
(with semantic filter):
{(Business, Airline), (Company, British Midland), (Quality, Economy), (Cost, 60),
(Depart, Edinburgh), (Arrive, London)}
user request:
[{(1,23), (2,45), (3,33), (4,6), (5,8), (6,16)}, {(1,84), (2,48), (3,53), (4,11), (7,16), (8,34)},
{(1,23), (2,45), (3,53), (4,6), (5,16)(6,53)}, {(1,86), (2,48), (3,33), (4,25), (7,55)(8,23)},
{(1,25), (2,52), (3,53), (4,5), (5,55), (6,37)}, {(1,86), (2,48), (3,43), (4,25), (7,37), (8,40)},
{(1,22), (2,77), (3,82), (4,9), (5,35), (6,8)}]
(with semantic filter):
[{(Business, Airline), (Company, Air France), (Quality, Economy), (Cost, 60), (Depart,
Edinburgh), (Arrive, Paris)}, {(Business, Hotel), (Company, Continental), (Quality, 3*),
(Cost, 110), (Location, Paris), (Nights, 3)}, {(Business, Airline), (Company, Air France),
(Quality, Economy),(Cost,60),(Depart, Paris), (Arrive, Monte Carlo)}, {(Business, Hotel),
(Company, Continental), (Quality, 2*), (Cost, 250), (Location, Monte Carlo), (Nights, 2)},
{(Business, Airline), (Company, KLM), (Quality, Economy), (Cost, 50), (Depart, Monte
Carlo), (Arrive, London)}, {(Business, Hotel), (Company, Continental), (Quality, 3*), (Cost,
250), (Location, London), (Nights, 4)}, {(Business, Airline), (Company, Air Espana), (Quality, First), (Cost, 90), (Depart, London), (Arrive, Edinburgh)}]
Fig. 21 Semantic Filter: Shows the numerical semantic descriptions, of the simulated services (Agents) and user requests,
in a human readable form. The semantic filter translated numerical semantic descriptions for one community within the
user base, showing it in the context of the travel industry. The simulation still operated on the numerical representation
for operational efficiency, but the semantic filter essentially assigned meaning to the numbers.
4.5 Ecological Succession
We then compared some of the Digital Ecosystem’s dynamics with those of biological ecosystems, to determine if
it had been imbued with the properties of biological ecosystems. A biological ecosystem develops from a simpler
to a more mature state, by a process of succession, where the genetic variation of the populations changes with
time [10]. So, it becomes increasingly more complex through this process of succession, driven by the evolution
of the populations within the ecosystem [34]. Equivalently, the Digital Ecosystem’s increasing complexity comes
from the Agent Populations being evolved to meet the dynamic selection pressures created by the user requests.
The formation of a mature ecosystem, ecological succession, is the slow, predictable, and orderly changes in
the composition and structure of an ecological community, for which there are defined stages in the increasing
complexity [10], as shown in Figure 22. Succession may be initiated either by the formation of a new, unoccupied
habitat (e.g., a lava flow or a severe landslide) or by some form of disturbance (e.g. fire, logging) of an existing
community. The former case is often called primary succession, and the latter secondary succession [10]. The
trajectory of ecological change can be influenced by site conditions, by the interactions of the species present,
and by more stochastic factors such as availability of colonists or seeds, or weather conditions at the time
28
Fig. 22 Ecological Succession (modified from [40]): The formation of a mature ecosystem is the slow, predictable, and
orderly changes in the composition and structure of an ecological community, for which there are defined stages in the
increasing complexity [10], as shown. So, it becomes increasingly more complex through this process of succession, driven
by the evolution of the populations within the ecosystem [34].
of disturbance. Some of these factors contribute to predictability of successional dynamics; others add more
probabilistic elements [59]. Trends in ecosystem and community properties of succession have been suggested,
but few appear to be general. For example, species diversity almost necessarily increases during early succession
upon the arrival of new species, but may decline in later succession as competition eliminates opportunistic
species and leads to dominance by locally superior competitors [34]. Net Primary Productivity3 , biomass, and
trophic level properties all show variable patterns over succession, depending on the particular system and site
[59]. Generally, communities in early succession will be dominated by fast-growing, well-dispersed species, but as
the succession proceeds these species will tend to be replaced by more competitive species [10].
We then considered existing theories of complexity for ecological succession and how it would apply to
Digital Ecosystems, seeking a high-level understanding that would apply equally to both biological and digital
ecosystems. As succession leads communities, of an ecosystem, to states of dynamic equilibrium 4 within the
environment [10], the complexity has to increase initially or there would be no ecosystem, and presumably this
increase eventually stops, because there must be a limit to how many species can be supported. The period in
between is more complicated. If we consider the neutral biodiversity theory [72], which basically states network
aspects of ecosystems are negligible, we would probably get a relatively smooth progression, because although
you would get occasional extinctions, they would be randomly isolated events whose frequency would eventually
balance arrivals, not self-organised crashes like in systems theory. In systems theory [48], when a new species
arrives in an ecological network, it can create a positive feedback loop that destabilises part of the network and
drives some species to extinction. Ecosystems are constantly being perturbed, so it is reasonable to assume that
a species that persists will probably be involved in a stabilising interaction with other species. So, the whole
ecological network evolves to resist invasion. That would lead to a spiky succession process, perhaps getting less
spiky over time.
So, which theory is more applicable to the Digital Ecosystem depends on the extent that a species in the
ecosystem acts independently, competing entities (smooth succession) [72] versus tightly co-adapted ecological
partners (spiky succession) [48]. Our Digital Ecosystem despite its relative complexity is quite simple compared
to biological ecosystems. It has the essential and fundamental processes, but no sophisticated social mechanisms.
Therefore, the smooth succession of the neutral biodiversity theory [72] was more probable.
3
Net Primary Productivity is the net flux of carbon from the atmosphere into green plants per unit time [90].
Dynamic Equilibrium is when opposing forces of a system are proceeding at the same rate, such that its state is
unchanging with time [10].
4
29
Complexity (%match to user request)
100
80
60
40
20
0
200
400
600
Time (user request events)
800
1000
Fig. 23 Graph of Succession in the Digital Ecosystem: The formation of a mature biological ecosystem, ecological succession, is a relatively slow process [10], and the simulated Digital Ecosystem acted similarly in reaching a mature state.
Still, at the end of the simulation run, the Agent-sequences had evolved and migrated over an average of only ten user
requests per Habitat, and collectively had already reached near 70% effectiveness for the user base.
As the increasing complexity of the Digital Ecosystem comes from its evolving Agent Populations responding
to user requests, the effectiveness of the evolved Agent-sequences (responses) can provide a measure of its complexity over time. So, in simulation we measured the effectiveness of its responses over a thousand user requests,
i.e. until it had reached a mature state like a biological ecosystem [10], and graphed a typical run in Figure 23.
The range and diversity of Agents at initial deployment were such that 70% fulfilment of user requests was possible, increasing to 100% fulfilment as more Agents were deployed. The Digital Ecosystem performed as expected,
adapting and improving over time, reaching a mature state as seen in the graph of Figure 23. The succession of
the Digital Ecosystem followed the smooth succession of the neutral biodiversity theory [72], shown by the tight
distribution and equal density of the points around the best fit curve of the graph in Figure 23. The variation in
the percentage responsiveness, over the successive user request events, came from the differential rates of adaption
at the Habitats. Still, by the end of the simulation run, the Agent-sequences had evolved and migrated over an
average of only ten user requests per Habitat, and collectively had already reached near 70% effectiveness for the
user base. The formation of a mature biological ecosystem, ecological succession, is a relatively slow process [10],
and the simulated Digital Ecosystem acted similarly in reaching a mature state.
4.6 Species Abundance
In ecology, relative abundance is a measure of the proportion of all organisms in a community belonging to a
particular species [11]. A relative abundance distribution provides the inequalities in population size within an
ecosystem and therefore an indicator of biodiversity, with the distribution of most biological ecosystems taking
a log-normal form [11]. So, for Digital Ecosystems this measures globally the abundance of different solutions
relative to one another.
A snapshot of the Agents (organisms) within the Digital Ecosystem, for a typical simulation run, was taken
after a thousand user requests, i.e. once it had reached a mature state. In biology a species is a series of populations
within which significant gene flow can and does occur, so groups of organisms showing a very similar genetic
makeup [90]. We therefore chose to define species within Digital Ecosystems similarly, as a grouping of genetically
similar digital organisms (based on their semantic descriptions), with no more than 10% variation within the
species group. Relative abundance was calculated for each species and grouped by frequency in Figure 24. In
contrast to expectations from biological ecosystems, relative abundance in the Digital Ecosystem did not conform
to the expected log-normal [11]. We suggest that the high frequency for the lowest relative abundance was caused
by the dynamically re-configurable topology of the Habitat network, which allowed species of small abundance
to survive as their respective Habitats were clustered by the Digital Ecosystem. Therefore, it also most likely
skewed the other frequencies of the relative abundance measure.
30
70
60
Frequency
50
40
30
20
10
0
4.4
4.3
4.2
4.1
4.0
3.9
3.8
3.7
3.6
3.5
3.4
3.3
3.2
3.1
3.0
2.9
2.8
2.7
2.6
2.5
2.4
2.3
Log of Relative Abundance
Fig. 24 Graph of Relative Abundance in the Digital Ecosystem: Relative abundance is a measure of the proportion of all
organisms in a community belonging to a particular species [11]. A relative abundance distribution provides the inequalities
in population size within an ecosystem and therefore an indicator of biodiversity, with the distribution of most biological
ecosystems taking a log-normal form [11]. However, the Digital Ecosystem did not conform to the expected log-normal.
4.7 Species-Area Relationship
In ecology the species-area relationship measures diversity relative to the spatial scale, showing the number of
species found in a defined area of a particular habitat or habitats of different areas [148], and is commonly found
to follow a power law in biological ecosystems [148]. For Digital Ecosystems this relationship represents how
similar solutions are to one another at different Habitat scales.
Again, a snapshot of the Agents (organisms) within the Digital Ecosystem, for a typical simulation run, was
taken once it had reached a mature state, after a thousand user requests. For this experiment, we assumed each
Habitat to have an area of one unit. Then, the number of species, at n randomly chosen Habitats, was measured,
Log of Number of Species
3
2.5
2
1.5
0
0.5
1
Log of Area
1.5
2
Fig. 25 Graph of Species-Area in the Digital Ecosystem: In ecology the species-area relationship measures diversity
relative to the spatial scale, showing the number of species found in a defined area of a particular habitat or habitats of
different areas [148], and is commonly found to follow a power law in biological ecosystems, which the Digital Ecosystem
also demonstrates.
31
where n ranged between one and a hundred. For each n, ten sets of measurements were taken at different random
sets of Habitats to calculate averaged results, and the log10 values of these results are depicted in the graph
of Figure 25. The distribution of species diversity over a spatial scale in the Digital Ecosystem demonstrates
behaviour similar to biological ecosystems, also following a power law [148]. However, diversity at fine spatial
scales appears to be lower than predicted by the line of best fit. This may be explained by higher specialisation
at some Habitats, making them more like micro-habitats in terms of a reduced species diversity [90].
The majority of the experimental results indicate that Digital Ecosystems behave like their biological counterparts, and suggest that incorporating ideas from theoretical ecology can contribute to useful self-organising
properties in Digital Ecosystems, which can assist in generating scalable solutions to complex dynamic problems.
5 Discussion
Creating the digital counterpart of biological ecosystems was not without apparent compromises; the temporary
one-to-one genotype-phenotype mapping for Agents, the information-centric dynamically re-configurable network
topology, and the species abundance result are inconsistent with biological ecosystems.
Ecosystem
Network
Biological Ecosystem
Network: EnergyCentric
Digital Ecosystem
Network: InformationCentric
Fig. 26 Hypothetical Abstract Ecosystem Definition: If there were an abstract ecosystem class in the UML, then the
Digital Ecosystem and biological ecosystem classes would both inherit from the abstract ecosystem class, but implement its
attributes differently. So, we would argue that the apparent compromises in mimicking biological ecosystems are actually
features unique to Digital Ecosystems.
We would argue that these differences are not compromises, but features unique to Digital Ecosystems. As
we discussed earlier, biomimicry, when done well, is not slavish imitation; it is inspiration using the principles
which nature has demonstrated to be successful design strategies [14]. Hypothetically, if there were an abstract
definition of an ecosystem, defined as an abstract ecosystem class, then the Digital Ecosystem and biological
ecosystem classes would both inherit from the abstract ecosystem class, but implement its attributes differently,
as shown in the Unified Modelling Language (UML) class diagram of Figure 26. So, we would argue that the
apparent compromises in mimicking biological ecosystems are actually features unique to Digital Ecosystems.
Service-oriented architectures promise to provide potentially huge numbers of services that programmers can
combine via standardised interfaces, to create increasingly sophisticated and distributed applications [126]. The
Digital Ecosystem extends this concept with the automatic combining of available and applicable services in a
scalable architecture to meet user requests for applications. This is made possible by a fundamental paradigm
shift, from a pull-oriented approach to a push-oriented approach. So, instead of the pull-oriented approach of
generating applications only upon request in SOAs [147], the Digital Ecosystem follows a push-oriented approach
of distributing and composing applications pre-emptively, as well as upon request. Although the use of SOAs in
the definition of Digital Ecosystems provides a predisposition to business [82], it does not preclude other more
general uses. The Ecosystem-Oriented Architecture definition of Digital Ecosystems is intended to be inclusive
and interoperable with other technologies, in the same way that the definition of SOAs is with grid computing and
other technologies [147]. For example, Habitats could be executed using a distributed processing arrangement,
such as grid computing [147], which would be possible because the Habitat network topology is information-centric
(instead of location-centric).
6 Conclusions
We have determined the fundamentals for a new class of system, created through combining understanding from
theoretical ecology [93], evolutionary theory [55], MASs [128], distributed evolutionary computing [95], and SOAs
[120]. So, the digital counterpart of biological ecosystems, having their properties of self-organisation, scalability
and sustainability [91]: being similarly complex systems that show emergent behaviour, since they are more than
the sum of their constituent parts. Therefore, we have created the first interpretation of Digital Ecosystems where
the word ecosystem is more than just a metaphor, which we have confirmed experimentally.
32
The Ecosystem-Oriented Architecture of Digital Ecosystems includes a novel form of distributed evolutionary
computing, an optimisation technique working at two levels: a first optimisation, migration of Agents which are
distributed in a peer-to-peer network, operating continuously in time; this process feeds a second optimisation,
based on evolutionary computing, operating locally on single peers and is aimed at finding solutions that satisfy
locally relevant constraints. So, the local search is improved through this twofold process to yield better local
optima faster, as the distributed optimisation provides prior sampling of the search space through computations already performed in other peers with similar constraints. We have also defined the interaction of Digital
Ecosystems with business ecosystems [111], specifically in supporting and enabling them to create DBEs.
The ever-increasing challenge of software complexity in creating progressively more sophisticated and distributed applications, makes the design and maintenance of efficient and flexible systems a growing challenge
[109, 155, 99], for which current software development techniques have hit a complexity wall [96]. In response we
have created Digital Ecosystems, the digital counterparts of biological ecosystems, possessing their properties of
self-organisation, scalability and sustainability [91]; Ecosystem-Oriented Architectures that overcome the challenge by automating the search for new algorithms in a scalable architecture, through the evolution of software
services in a distributed network.
7 Future Work
In creating Digital Ecosystems, the digital counterpart of biological ecosystems, we naturally asked their likeness
to the biological ecosystems from which they were inspired. Further to this, we could consider the applicability
of other aspects of ecosystems theory in understanding and analysing the dynamics of Digital Ecosystems. For
example, energy pyramids 5 of biological ecosystems, what is their equivalent in Digital Ecosystems? Given that
Digital Ecosystems are information-centric, whereas biological ecosystems are energy-centric [10], they would
undoubtedly be information pyramids, but further definition would naturally require more research.
While evolutionary theory [55] was well understood within computer science, under the auspices of evolutionary computing [47], ecosystems theory [10], until our efforts, was not. Similarly, while evolutionary theory is
well understood within linguistics [36] and economics [119], equally ecosystems theory is not [113]. So, using our
efforts as a case study, we could follow the same process to create Language Ecosystems and Economic Ecosystems. For example, there are many separate efforts within linguistics using evolution to model language change
[31], but there is no unifying framework, which has resulted from different linguists independently adopting
elements of evolutionary theory [31]. So, we could provide a wide-ranging and encompassing definition of Language Ecosystems, which would unify the many disparate efforts in linguistics aimed at understanding language
evolution.
Conceptualising ecosystems has been an inherent part of this work, which presents us with an opportunity
to formalise our current and future efforts to improve the cross-disciplinary knowledge transfer required [18].
In the creation of Digital Ecosystems we considered aspects of biological ecosystems, including Agent-Based
Modelling [64] and Complex Adaptive Systems (CAS) [91], and then constructed their counterparts in Digital
Ecosystems. After which we considered the possibility of a Generic Ecosystem definition, and without which
some of the counterparts we constructed appeared to be compromised, when they were actually the realisation
of generic abstract concepts in Digital Ecosystems. Most notably the network structure, which is energy-centric
in biological ecosystems [10], while information-centric in Digital Ecosystems. So, there is potential to create a
Generic Ecosystem definition, using a suitable modelling technique such as CAS [166], which would abstractly
define the key properties of an ecosystem, and would theoretically be applicable to any domain where the
modelling technique has been applied. Therefore, the Generic Ecosystem definition would provide a framework
for the application of ideas, concepts, and models from biological ecosystems to other classes of ecosystems,
including Digital Ecosystems, Language Ecosystems and Economic Ecosystems. A design pattern is a general
reusable solution to a commonly occurring problem in software design [56]. It is not a finished design that can
be transformed directly into code, but a description or template for how to solve a problem that can be used
in many different situations [56]. For example, object-oriented design patterns typically show relationships and
interactions between classes or objects, without specifying the final application classes or objects that are involved
[56]. Biological Design Patterns would extend this concept to catalogue common interactions between biological
structures using a pattern-oriented modelling approach [66], which when applied would endow software systems
with the desirable properties of biological systems, such as self-organisation, self-management, scalability and
sustainability.
An open-source simulation framework for Digital Ecosystems [84] was created by the Digital Business
Ecosystem (DBE) project [49], and is currently supported by the Open Philosophies for Associative Autopoietic
5 Energy pyramids show the dissipation of energy at trophic levels, positions that organisms occupy in a food chain, e.g.
producers or consumers [123].
33
Digital Ecosystems project [132] to assist further research into Digital Ecosystems, including the wider implications of interacting with social systems, such as business ecosystems of SMEs. In an old market-based economy,
made up of sellers and buyers, the parties exchange property [42]. While in a new network-based economy, made
up of servers and clients in a business ecosystem [111], the parties share access to services and experiences [42].
Digital Ecosystems are a platform for the network-based economy of business ecosystems, providing mechanisms
for the creation of DBEs. One such mechanism the Digital Ecosystem could provide to the network-based economy of business ecosystems [111], would be a futures market 6 for services. As each service (Agent) consists of an
executable component and a semantic description, the later acting as a guarantee of behaviour, and the evolving
Agent Populations only requiring the guarantees (semantic descriptions) to operate, the actual executable component of a service (Agent) is only required once an application (Agent-sequence) has been assembled. Therefore,
service (Agent) evolution could operate entirely on the semantic descriptions, with business users only needing to
supply the executable component of a service (Agent) once there is a demand, i.e. when the semantic description
of one of their services has been used in the construction of an application which meets the request of another
business user. Therefore, creating a futures market for evolving services within Digital Business Ecosystems.
A partial reference implementation [102] for our Digital Ecosystem, was created by the DBEs project [49], and
we expect that once completed will be deployed as part of the software platform intended for the regional deployment of their Digital Ecosystems [137, 132]. These Digital Ecosystems (distributed adaptive open socio-technical
systems, with properties of self-organisation, scalability and sustainability, inspired by natural ecosystems [132])
are emerging as a novel approach to the catalysis of sustainable regional development driven by SMEs [153, 132].
The community focused on the deployment of Digital Ecosystems, REgions for Digital Ecosystems Network (REDEN) [138], is supported by projects such as the Digital Ecosystems Network of regions for (4) DissEmination and
Knowledge Deployment (DEN4DEK) [137], a thematic network that aims to share experiences and disseminate
knowledge that will allow regions to plan an effective deployment of Digital Ecosystems at all levels (economic,
social, technical and political) to produce real impacts in the economic activities of European regions through
the improvement of SME business environments. So, the next major step in our research will be to collect real
world data, confirming that Digital Ecosystems operate effectively with business ecosystems in creating Digital
Business Ecosystems.
Acknowledgements The authors would like to thank for their encouragement and suggestions: Paolo Dini of the London School of Economics and Political Science, Thomas Heistracher and his group of the Salzburg Technical University,
Jonathan Rowe of the University of Birmingham, and Miguel Vidal of Sun Microsystems. The Digital Ecosystem model
was constructed through interacting with these people and others. This work was supported by the EU-funded Open
Philosophies for Associative Autopoietic Digital Ecosystems Network of Excellence (NoE), Contract No. FP6/IST-034824.
References
1. Anderson J (2004) Introduction to Flight. McGraw-Hill Professional, New York
2. Bäck T (1996) Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms. Oxford University Press, New York
3. Baeck T, Fogel D, Michalewicz Z (eds) (1997) Handbook of Evolutionary Computation. CRC Press, Washington
4. Balmford A, Bruner A, Cooper P, Costanza R, Farber S, Green R, Jenkins M, Jefferiss P, Jessamy V,
Madden J, Munro K, Myers N, Naeem S, Paavola J, Rayment M, Rosendo S, Roughgarden J, Trumper K,
Turner R (2002) Economic reasons for conserving wild nature. Science 297:950–953
5. Banzhaf W (1994) Genotype-phenotype-mapping and neutral variation–a case study in genetic programming. Parallel Problem Solving from Nature III 866:322–332
6. Banzhaf W (1998) Genetic Programming. Morgan Kaufmann Publishers, San Francisco
7. Banzhaf W, Langdon W (2002) Some considerations on the reason for bloat. Genetic Programming and
Evolvable Machines 3:81–91
8. Barthlott W, Neinhuis C (1997) Purity of the sacred lotus, or escape from contamination in biological
surfaces. Planta 202:1–8
9. BBC News (2009) Microsoft begins windows 7 push. URL http://news.bbc.co.uk/1/hi/technology/
7817190.stm
10. Begon M, Harper J, Townsend C (1996) Ecology: Individuals, Populations and Communities. Blackwell
Publishing, London
11. Bell G (2000) The distribution of abundance in neutral communities. American Naturalist 396:606–617
6 An auction market in which participants buy and sell commodities for an agreed price, that the sellers have yet to
produce [73].
34
12. Benatallah B, Dumas M, Sheng Q (2005) Facilitating the rapid development and scalable orchestration of
composite web services. Distributed and Parallel Databases 17:5–37
13. Bennett D (2006) Digital transformation in the entertainment industry - embracing the fully
digital ecosystem. Tech. rep., Accenture, URL http://www.accenture.com/NR/rdonlyres/
A58111E4-22E5-4DDD-B3DE-FB3741F0052F/0/EmbracingDigitalEco.pdf
14. Benyus J (2002) Biomimicry, Innovation Inspired by Nature. Harper Collins Publishers, New York
15. Blickle T, Thiele L (1996) A comparison of selection schemes used in evolutionary algorithms. Evolutionary
Computation 4:361–394
16. Bramly S (1994) Leonardo: The Artist and the Man. Penguin Books, London
17. Briscoe G (2009) Digital ecosystems. PhD thesis, Imperial College London
18. Briscoe G (2010) Complex adaptive digital ecosystems. In: ACM Management of Emergent Digital Ecosystems Conference
19. Briscoe G, De Wilde P (2006) Digital Ecosystems: Evolving service-oriented architectures. In: IEEE Bio
Inspired Models of Network, Information and Computing Systems Conference
20. Briscoe G, De Wilde P (2009) Computing of applied digital ecosystems. In: ACM Management of Emergent
Digital Ecosystems Conference
21. Briscoe G, De Wilde P (2010) The computing of digital ecosystems. International Journal of Organizational
and Collective Intelligence 1(4):1–17
22. Briscoe G, Sadedin S (2007) Natural science paradigms. In: Digital Business Ecosystems, European Commission, pp 48–55
23. Briscoe G, Sadedin S, Paperin G (2007) Biology of applied digital ecosystems. In: IEEE Digital Ecosystems
and Technologies Conference, pp 458–463
24. Cabral L, Domingue J, Motta E, Payne T, Hakimpour F (2004) Approaches to semantic web services: an
overview and comparisons. In: The Semantic Web: Research and Applications, Springer, Berlin Heidelberg,
pp 225–239
25. Canal E (2007) Using the ESB with e4: Applying new tendencies to CSC business integration architecture. Tech. rep., Computer Sciences Corporation, URL http://www.csc.com/aboutus/leadingedgeforum/
knowledgelibrary/uploads/Using%20the%20ESB%20with%20e4%20-%20ERCanal.pdf
26. Cantu-Paz E (1998) A survey of parallel genetic algorithms. Réseaux et systèmes répartis, Calculateurs
Parallèles 10:141–171
27. Cardoso J, Sheth A (2004) Introduction to semantic web services and web process composition. In: Cardoso
J, Sheth A (eds) Semantic Web Services and Web Process Composition, Springer, Berlin Heidelberg, pp
1–13
28. Castells M (2000) The Rise of The Network Society. Blackwell Publishing, Malden
29. Chambers L (2001) The practical handbook of genetic algorithms: applications. CRC Press, Washington
30. Chhatpar A (2008) Increase business agility through BRM systems and SOA: Best bets to increase ROI on
your enterprise applications. Tech. rep., IBM Devleoper Works, URL http://download.boulder.ibm.com/
ibmdl/pub/software/dw/architecture/ar-brmssoa/ar-brmssoa-pdf.pdf
31. Christiansen M, Kirby S (2003) Language Evolution. Oxford University Press, Oxford
32. Cliff D, Grand S (1999) The creatures global digital ecosystem. Artificial Life 5:77–93
33. Comer D (2005) Internetworking with TCP/IP: principles, protocols, and architecture. Prentice Hall, Upper
Saddle River
34. Connell J, Slatyer R (1977) Mechanisms of succession in natural communities and their role in community
stability and organization. The American Naturalist 111:1119–1144
35. Corallo A, Passiante G, Prencipe A (2007) The Digital Business Ecosystem. Edward Elgar Publishing,
Cheltenham
36. Croft W (2000) Explaining language change. Longman, Harlow
37. Curbera F, Duftler M, Khalaf R, Nagy W, Mukhi N, Weerawarana S (2002) Unraveling the web services
web: An introduction to SOAP, WSDL, and UDDI. IEEE Internet Computing 6:86–93
38. Darwin C (1859) On the Origin of Species by Means of Natural Selection. John Murray, London
39. Davenport T, Short J (1990) The new industrial engineering: Information technology and business process
redesign. Sloan Management Review 31:11–27
40. Davis O (2008) Secondary succession. Tech. rep., University of Arizona, URL http://www.geo.arizona.
edu/Antevs/nats104/00lect20.html
41. De Castro L (2006) Fundamentals of Natural Computing: Basic Concepts, Algorithms, And Applications.
CRC Press
42. Delcloque P, Bramoullé A (2001) DISSEMINATE, an initial implementation proposal: a new point of
departue in call for the ‘year 01’ ? ReCALL 13:277–292
43. Denning P, Metcalfe R (1997) Beyond Calculation: The Next Fifty Years of Computing. Springer, New York
44. Dini P, Nicolai A (2007) A scientific foundation for digital ecosystems. In: [117], pp 1–20
35
45. Dini P, Lombardo G, Mansell R, Razavi A, Moschoyiannis S, Krause P, Nicolai A, Rivera León L (2008)
Beyond interoperability to digital ecosystems: regional innovation and socio-economic development led by
SMEs. International Journal of Technological Learning, Innovation and Development 1:410–426
46. Ducheyne E, De Baets B, De Wulf R (2003) Is fitness inheritance useful for real-world applications. In:
Fonseca C (ed) Evolutionary Multi-criterion Optimization, Springer, Berlin Heidelberg, pp 31–42
47. Eiben A, Smith J (2003) Introduction to Evolutionary Computing. Springer, Berlin Heidelberg New York
48. Ellen R (1982) Environment, Subsistence, and System: The Ecology of Small-Scale Social Formations.
Cambridge University Press, Cambridge
49. English A (2008) Digital Business Ecosystems (DBE). URL http://www.digital-ecosystem.org/DBE_
Main/about
50. English A, Dory B (2007) The DBE and micro economics - the benefits of the DBE for SMEs. URL
http://www.digital-ecosystem.org/downloadfiles/intro_mov_dbe.swf
51. Fiorina C (2000) The digital ecosystem. URL http://www.hp.com/hpinfo/execteam/speeches/fiorina/
ceo_worldres_00.html
52. Folke C, Carpenter S, Walker B, Scheffer M, Elmqvist T, Gunderson L, Holling C (2004) Regime shifts, resilience, and biodiversity in ecosystem management. Annual Review of Ecology, Evolution, and Systematics
35:557–581
53. Fonseca C, Fleming P (1995) An overview of evolutionary algorithms in multiobjective optimization. Evolutionary Computation 3:1–16
54. Forbes N (2004) Imitation of Life: How Biology Is Inspiring Computing. MIT Press, Cambridge
55. Futuyma D (1998) Evolutionary Biology. Sinauer Associates, Sunderland
56. Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented
software. Pearson Education, Upper Saddle River
57. Glocal Forum, CERFE (2004) The glocalization manifesto. Tech. rep., The Glocal Forum,
URL http://www.glocalforum.org/mediagallery/mediaDownload.php?mm=/warehouse/documents/the_
glocalization_manifesto.pdf
58. Goldberg D (1989) Genetic algorithms in search, optimization, and machine learning. Addison-Wesley,
Reading
59. Gotelli N (1995) A primer of ecology. Sinauer Associates, Sunderland
60. Grand S, Cliff D (1998) Creatures: Entertainment software agents with artificial life. Autonomous Agents
and Multi-Agent Systems 1:39–57
61. Green D, Kirley M (2000) Adaptation, diversity and spatial patterns. International Journal of KnowledgeBased Intelligent Engineering Systems 4:184–190
62. Green D, Sadedin S (2005) Interactions matter- complexity in landscapes and ecosystems. Ecological Complexity 2:117–130
63. Green D, Newth D, Kirley M (2000) Connectivity and catastrophe - towards a general theory of evolution.
In: Bedau M (ed) International Conference on Artificial Life, MIT Press, Cambridge, pp 153–161
64. Green D, Klomp N, Rimmington G, Sadedin S (2006) Complexity in Landscape Ecology. Springer, Netherlands
65. Green D, Leishman T, Sadedin S (2006) Dual phase evolution: a mechanism for self-organization in complex
systems. In: Minai A, Braha D, Bar-Yam Y (eds) International Conference on Complex Systems
66. Grimm V, Revilla E, Berger U, Jeltsch F, Mooij W, Railsback S, Thulke H, Weiner J, Wiegand T, DeAngelis
D (2005) Pattern-oriented modeling of agent-based complex systems: Lessons from ecology. Science 310:987–
991
67. Hanski I (1999) Metapopulation Ecology. Oxford University Press, Oxford
68. Hanski I, Ovaskainen O (2003) Metapopulation theory for fragmented landscapes. Theoretical Population
Biology 64:119–127
69. Hastrich C (2007) Biomimicry: A tool for innovation. Tech. rep., The Biomimicry Institute, URL http:
//www.biomimicryinstitute.org/about-us/biomimicry-a-tool-for-innovation.html
70. Hebb D (1949) The Organization of Behavior. Lawrence Erlbaum Associates, Mahwah
71. Hollis M (1994) The Philosophy of Social Science: An Introduction. Cambridge University Press, Cambridge
72. Hubbell S (2001) The Unified Neutral Theory of Biodiversity and Biogeography. Princeton University Press,
Princeton
73. Hull J (2005) Fundamentals of Futures and Options Markets. Prentice Hall, Upper Saddle River
74. Iansiti M, Levien R (2004) The Keystone Advantage: What the New Dynamics of Business Ecosystems
Mean for Strategy, Innovation, and Sustainability. Harvard Business School Press, Boston
75. Jin Y (2005) A comprehensive survey of fitness approximation in evolutionary computation. Soft Computing
- A Fusion of Foundations, Methodologies and Applications 9:3–12
76. Johansen D, van Renesse R, Schneider F (1995) Operating system support for mobile agents. In: Workshop
on Hot Topics in Operating Systems, IEEE Press, Los Alamitos, pp 42–45
36
77. Khondker H (2004) Glocalization as globalization: Evolution of a sociological concept. Bangladesh e-Journal
of Sociology 1:1–9
78. Kimura M (1983) The neutral theory of molecular evolution. Cambridge University Press, Cambridge
79. Kotok A (2001) ebXML: The New Global Standard for Doing Business Over the Internet. New Riders,
Boston
80. Koza J (1992) Genetic Programming: On the Programming of Computers by Means of Natural Selection.
MIT Press, Cambridge
81. Koza J (1992) Overview of genetic programming. In: [80], pp 73–78
82. Krafzig D, Banke K, Slama D (2004) Enterprise SOA: Service-Oriented Architecture Best Practices. Prentice
Hall, Upper Saddle River
83. Kulkarni M, Kreutzer R (2006) Building your own digital ecosystem: a holistic approach to enterprise integration. Tech. rep., Syntel, URL http://www.syntelinc.com/uploadedFiles/Syntel_DigitalEcosystem.pdf
84. Kurz T (2008) EvE simulator. URL http://evesim.sourceforge.net/
85. Kurz T, Heistracher T (2007) Simulation of a self-optimising digital ecosystem. In: Digital Ecosystems and
Technologies Conference, IEEE Press, Los Alamitos, pp 165–170
86. Lambert D, Cooper M (2000) Issues in supply chain management. Industrial Marketing Management 29:65–
83
87. Langdon W (1998) The evolution of size in variable length representations. In: Simpson P (ed) International
Conference on Evolutionary Computation, IEEE Press, Los Alamitos, pp 633–638
88. Langdon W (1998) Genetic Programming and Data Structures: Genetic Programming + Data Structures
= Automatic Programming! Kluwer Publishers, Netherlands
89. Langdon W, Poli R (1997) Fitness causes bloat. In: Chawdhry P, Roy R, Pant R (eds) Soft Computing in
Engineering Design and Manufacturing, Springer, Berlin Heidelberg New York, pp 13–22
90. Lawrence E (2005) Henderson’s dictionary of biological terms. Pearson Education, Harlow
91. Levin S (1998) Ecosystems and the biosphere as complex adaptive systems. Ecosystems 1:431–436
92. Levin S (1999) Fragile dominion: complexity and the commons. Perseus Books Group, New York
93. Levins R (1969) Some demographic and genetic consequences of environmental heterogeneity for biological
control. Bulletin of the Entomological Society of America 15:237–240
94. Leymann F, Roller D, Schmidt M (2002) Web services and business process management. IBM Systems
Journal 41:198–211
95. Lin S, Punch III W, Goodman E (1994) Coarse-grain parallel genetic algorithms: categorization and new
approach. In: Symposium on Parallel and Distributed Processing, IEEE Press, Los Alamitos, pp 28–37
96. Lyytinen K, Yoo Y (2001) The next wave of nomadic computing: A research agenda for information systems
research. Sprouts: Working Papers on Information Systems 1:1–20
97. Manderick B, Spiessens P (1989) Fine-grained parallel genetic algorithms. In: Schaffer J (ed) International
Conference on Genetic Algorithms, Morgan Kaufmann Publishers, San Francisco, pp 428–433
98. Mantere T, Alander J (2005) Evolutionary software engineering, a review. Applied Soft Computing 5:315–
331
99. Markoff J (2007) Faster chips are leaving programmers in their dust. Tech. rep., New York Times, URL
http://www.nytimes.com/2007/12/17/technology/17chip.html
100. Marrow P (2000) Nature-inspired computing technology and applications. BT Technology Journal 18:13–23
101. Martin D, Paolucci M, McIlraith S, Burstein M, McDermott D, McGuinness D, Parsia B, Payne T, Sabou
M, Solanki M, Srinivasan N, Sycara K (2004) Bringing semantics to web services: The OWL-S approach. In:
Cardoso J, Sheth A (eds) Semantic Web Services and Web Process Composition, Springer, Berlin Heidelberg,
pp 6–9
102. Masuch C (2008) Evolutionary environment network. URL http://evenet.sourceforge.net/
103. McCabe F, Clark K (1994) April-agent process interaction language. In: Wooldridge M, Jennings N (eds)
Intelligent Agents: Workshop on Agent Theories, Architectures, and Languages, Springer, Berlin Heidelberg
New York, pp 324–340
104. McCulloch S, Kokoska R, Chilkova O, Welch C, Johansson E, Burgers P, Kunkel T (2004) Enzymatic
switching for efficient and accurate translesion DNA replication. Nucleic Acids Research 32:4665–4675
105. McIlraith S, Son C, Zeng H (2001) Semantic web services. IEEE Intelligent Systems 16:46–53
106. McPhee N, Poli R (2001) A schema theory analysis of the evolution of size in genetic programming with linear
representations. In: Miller J, Tomassini M, Lanzi P, Ryan C, Tettamanzi A, Langdon W (eds) European
Conference on Genetic Programming, Springer, Berlin Heidelberg, pp 108–125
107. Milanovic N, Malek M (2004) Current solutions for web service composition. IEEE Internet Computing
8:51–59
108. Miller J (2001) What bloat? cartesian genetic programming on boolean problems. In: Spector L (ed) Genetic
and Evolutionary Computation Conference, Morgan Kaufmann Publishers, San Francisco, pp 295–302
109. Miller S (2001) Aspect-oriented programming takes aim at software complexity. IEEE Computer 34:18–21
37
110. Modi G (2007) Service oriented architecture & web 2.0. Tech. rep., Guru Tegh Bahadur Institute of Technology, URL http://www.gsmodi.com/files/SOA_Web2_Report.pdf
111. Moore J (1996) The Death of Competition: Leadership and Strategy in the Age of Business Ecosystems.
Harvard Business School Press, Boston
112. Moore J (2003) Digital business ecosystems in developing countries: An introduction. Tech. rep., Berkman
Center for Internet and Society, Harvard Law School, URL http://cyber.law.harvard.edu/bold/devel03/
modules/moore.pdf
113. Mufwene S (2001) The Ecology of Language Evolution. Cambridge University Press, Cambridge
114. Muhlenbein H (1991) Evolution in time and space - the parallel genetic algorithm. Foundations of Genetic
Algorithms 1:316–337
115. Nachira F (2002) Towards a network of digital business ecosystems fostering the local development.
Tech. rep., Directorate General Information Society and Media, European Commission, URL http:
//www.digital-ecosystems.org/doc/discussionpaper.pdf
116. Nachira F, Dini P, Nicolai A (2007) A network of digital business ecosystems for europe: Roots, processes
and perspectives. In: [117], pp 1–20
117. Nachira F, Nicolai A, Dini P, Le Louarn M, Rivera León L (eds) (2007) Digital Business Ecosystems.
European Commission, Bruxelles. ISBN: 92-79-01817-5
118. Narayanan S, McIlraith S (2002) Simulation, verification and automated composition of web services. In:
International conference on World Wide Web, ACM Press, New York, pp 77–88
119. Nelson R, Winter S (1982) An Evolutionary Theory of Economic Change. Harvard University Press, Boston
120. Newcomer E, Lomow G (2005) Understanding SOA with web services. Addison-Wesley, Reading
121. Newman M (1997) A model of mass extinction. Journal of Theoretical Biology 189:235–252
122. Nowostawski M, Poli R (1999) Parallel genetic algorithm taxonomy. In: Jain L (ed) International Conference
on Knowledge-Based Intelligent Information Engineering Systems, IEEE Press, Los Alamitos, pp 88–92
123. Odum E (1968) Energy flow in ecosystems: A historical review. Integrative and Comparative Biology 8:11–18
124. Papadimitriou C, Steiglitz K (1998) Combinatorial Optimization: Algorithms and Complexity. Dover Publications, Mineola
125. Papazoglou M (2003) Service-oriented computing: concepts, characteristics and directions. In: Catarci T,
Mecella M, Mylopoulos J, Orlowska M (eds) International Conference on Web Information Systems Engineering, IEEE Press, Los Alamitos, pp 3–12
126. Papazoglou M, Georgakopoulos D (2003) Service-oriented computing. Communications of the ACM 46:25–
28
127. Papazoglou M, Traverso P, Dustdar S, Leymann F (2007) Service-oriented computing: State of the art and
research challenges. IEEE Computer 40:38–45
128. Pham V, Karmouch A (1998) Mobile software agents: an overview. IEEE Communications Magazine 36:26–
37
129. Poli R, McPhee N (2001) Exact schema theorems for GP with one-point and standard crossover operating
on linear structures and their application to the study of the evolution of size. In: Miller J (ed) European
conference on Genetic Programming, Springer, Berlin Heidelberg, pp 126–142
130. Rajasekaran P, Miller J, Verma K, Sheth A (2004) Enhancing web services description and discovery to
facilitate composition. In: Cardoso J, Sheth A (eds) Semantic Web Services and Web Process Composition,
Springer, Berlin Heidelberg, pp 55–68
131. Rao J, Su X (2004) A survey of automated web service composition methods. In: Cardoso J, Sheth A (eds)
Semantic Web Services and Web Process Composition, Springer, Berlin, pp 43–54
132. Rathbone N (2008) Open Philosophies for Associative Autopoietic Digital Ecosystems (OPAALS). URL
http://www.opaals.org/research.php
133. Ratle A, Sebag M (2001) Avoiding the bloat with probabilistic grammar-based genetic programming. In:
Collet P, Fonlupt C, Hao J, Lutton E, Schoenauer M (eds) International Conference on Artificial Evolution,
Springer, Berlin Heidelberg, pp 255–266
134. Razavi A, Moschoyiannis S, Krause P (2007) A coordination model for distributed transactions in digital
business ecosystems. Digital Ecosystems and Technologies Conference pp 159–164
135. Redmore A, Griffin M (1994) Advanced Level and Advanced Special Level Biology. Longman Group Limited,
London
136. Risson J, Moors T (2006) Survey of research towards robust peer-to-peer networks: Search methods. Computer Networks 50:3485–3521
137. Rivera León L (2009) Digital Ecosystems Network of Regions for Dissemination and Knowledge Deployment
(DEN4DEK). URL http://www.den4dek.org
138. Rivera León L (2009) Regions for Digital Ecosystems Network (REDEN). URL http://reden.opaals.org/
139. Rivest R (1992) The MD5 message-digest algorithm. Tech. rep., MIT, URL http://people.csail.mit.
edu/rivest/Rivest-MD5.txt
38
140. Robertson R (1994) Globalisation or glocalisation. Journal of International Communication 1:33–52
141. Rothermel K, Hohl F (1999) Mobile agents. In: Kent A, Williams J (eds) Encyclopedia for Computer Science
and Technology, vol 40, CRC Press, Washington, pp 155–176
142. Salmon M (1999) Introduction to the Philosophy of Science. Hackett Publishing, Indianapolis
143. Schmiemann M (2006) SMEs and entrepreneurship in the EU. Tech. rep., Statistical Office of the European
Communities (Eurostat), European Commission, URL http://epp.eurostat.ec.europa.eu/cache/ITY_
OFFPUB/KS-NP-06-024/EN/KS-NP-06-024-EN.PDF
144. Schumann J (2001) Automated Theorem Proving in Software Engineering. Springer, Berlin Heidelberg New
York
145. Shackleton M, Shipma R, Ebner M (2000) An investigation of redundant genotype-phenotype mappings and
their role in evolutionary search. In: Congress on Evolutionary Computation, IEEE Press, Los Alamitos, pp
493–500
146. Shipman R, Shackleton M, Harvey I (2000) The use of neutral genotype-phenotype mappings for improved
evolutionary search. BT Technology Journal 18:103–111
147. Singh M, Huhns M (2005) Service-Oriented Computing: Semantics, Processes, Agents. Wiley, Chichester
148. Sizling A, Storch D (2004) Power-law species-area relationships and self-similar species distributions within
finite areas. Ecology Letters 7:60–68
149. Slagle J (1974) Automated theorem-proving for theories with simplifiers, commutativity, and associativity.
Journal of the ACM 21:622–642
150. Solé R, Alonso D, McKane A (2002) Self-organized instability in complex ecosystems. Philosophical Transactions: Biological Sciences 357:667–681
151. Soraku-gun K (1995) An evolutionary approach to synthetic biology: Zen and the art of creating life. In:
Langton C (ed) Artificial Life: An Overview, MIT Press, Cambridge, pp 195–226
152. Soule T, Foster J (1998) Effects of code growth and parsimony pressure on populations in genetic programming. Evolutionary Computation 6:293–309
153. Stanley J, Briscoe G (2010) The ABC of digital business ecosystems. Communications Law - Journal of
Computer, Media and Telecommunications Law 15(1):12–25
154. Stender J (1993) Parallel Genetic Algorithms: Theory and Applications. IOS Press, Amsterdam
155. Sutter H (2005) The free lunch is over: A fundamental turn toward concurrency in software. Dr Dobb’s
Journal 30(3)
156. Svahnberg M (1998) Background analysis and design of an agent-based operating system. Master’s thesis,
University of Karlskrona/Ronneby, URL http://www.ide.hk-r.se/~nesse/ABOS/ABOS_thesis.pdf
157. Swyngedouw E (1992) The mammon quest. ‘Glocalisation’, interspatial competition and the monetary order:
the construction of new scales. In: Dunford M, Kafkalas G (eds) Cities and regions in the new Europe: The
Global-local Interplay and Spatial Development Strategies, Belhaven Press, London, pp 39–67
158. Tang Q (2004) Economics of web service provisioning: Optimal market structure and intermediary strategies.
PhD thesis, University of Florida
159. Tilman D, Kareiva P (1997) Spatial Ecology: The Role of Space in Population Dynamics and Interspecific
Interactions. Princeton University Press, Princeton
160. de Toro F, Ortega J, Fernandez J, Diaz A (2002) PSFGA: a parallel genetic algorithm for multiobjective
optimization. In: Vajda F, Podhorszki N (eds) Euromicro Workshop on Parallel, Distributed and Networkbased Processing, IEEE Press, Los Alamitos, pp 384–391
161. Valverde-Castillo S (2004) Software design as an adaptive walk. URL http://web.archive.org/web/
20041206173432/http://complex.upf.es/~sergi/
162. Vandenberghe M (2006) Digital ecosystem solution - the business factory. Tech. rep., XeWOW, URL http:
//themaddesigner.free.fr/XeWOW%20White%20Paper.pdf
163. Veldhuizen D, Lamont G (2000) Multiobjective evolutionary algorithms: Analyzing the state-of-the-art.
Evolutionary Computation 8:125–147
164. Violino B (2007) How to navigate a sea of SOA standards. URL http://www.cio.com/article/104007/
How_to_Navigate_a_Sea_of_SOA_Standards
165. de Visser J, Elena S (2007) The evolution of sex: empirical insights into the roles of epistasis and drift.
Nature Reviews Genetics 8:139–49
166. Waldrop M (1992) Complexity: The Emerging Science at the Edge of Order and Chaos. Simon & Schuster,
New York
167. Waterman M (1995) Introduction to Computational Biology: Maps, Sequences and Genomes. CRC Press,
Washington
168. Watts D, Strogatz S (1998) Collective dynamics of ‘small-world’ networks. Nature 393:440–442
169. White D, Houseman M (2002) The navigability of strong ties: Small worlds, tie strength, and network
topology. Complexity 8:72–81
170. Wooldridge M (2002) Introduction to MultiAgent Systems. Wiley, Chichester
39
171. Wright S (1932) The roles of mutation, inbreeding, crossbreeding and selection in evolution. In: Jones D
(ed) International Congress on Genetics, Brooklyn botanic garden, pp 356–366
172. Ximbiotix (2005) About the digital ecosystem. URL http://www.ximbiotix.com/desktop/
the-digital-ecosystem/about-the-digital-ecosystem.cfm
173. Yang X (2001) Chaos in small-world networks. Physical Review E 63:1–4
174. Zimmermann O, Milinski S, Craes M, Oellermann F (2004) Second generation web services-oriented architecture in production in the finance industry. In: Vlissides J, Schmidt D (eds) Conference on Object-Oriented
Programming, Systems, Languages, and Applications, ACM Press, New York, pp 283–289