Academia.eduAcademia.edu

Digital Ecosystems: Ecosystem-Oriented Architectures

2011, Natural Computing

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 (EOA) where the word ecosystem is more than just a metaphor.

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