Nature-Inspired Coordination Models: Current Status and Future Trends

Coordination models and languages are meant to provide abstractions and mechanisms to harness the space of interaction as one of the foremost sources of complexity in computational systems. Nature-inspired computing aims at understanding the mechanisms and patterns of complex natural systems in order to bring their most desirable features to computational systems. Thus, the promise of nature-inspired coordination models is to prove themselves fundamental in the design of complex computational systems—such as intelligent, knowledge-intensive, pervasive, adaptive, and self-organising ones. In this paper, we survey the most relevant nature-inspired coordination models in the literature, focussing in particular on tuple-based models, and foresee the most interesting research trends in the field.


Why Nature-Inspired Models?
Many of the most characteristic human artefacts are not nature inspired: neither wheels nor computers, for instance, to quote some of the tools that mostly influenced the evolution of humankind, could be easily mapped upon any preexisting natural item. So, the first question to be answered here is why should we care at all about nature-inspired models when building artificial systems, and in particular computational systems, where natural inspiration seems so far and remote?
Nature-inspired computing provides a simple yet convincing answer: natural systems are good in dealing with complexity [1]. We are aware of many sorts of complex natural systems-such as physical, chemical, biochemical, biological, and ethological systems-featuring many properties that we would really like to bring to our computational systems-such as robustness, fault tolerance, selfrepair, and the like. These are the features of complex natural system that we would like to understand, capture, then bring to computational systems-and, in the very end, what makes computer scientists and engineers look for natural inspiration. For instance, a quick look to research activities in the field of nature-inspired computing reveals the two main properties that nature-inspired computational systems should feature: autonomy, at the component level, and selforganisation, at the system level [2].
In short, the main goals of nature-inspired computing could be roughly summarised as follows: (i) to devise out the sources of complexity in natural systems; (ii) to understand the mechanisms and patterns that natural systems exploit in order to successfully deal with issues such as openness, distribution, large scale, and unpredictability of environment; (iii) to map such mechanisms and patterns upon suitable computational equivalents; (iv) to make them work within computational systems, so as to provide them with the desirable features of natural systems.

Why Coordination Models?
Suitably expressive models, technologies, and methodologies are required to allow programmers and designers to dominate the complexity of today computational systems-such as intelligent, knowledgeintensive, pervasive, and self-organising systems. Systems of those sorts could be typically seen as (dynamic) ensembles of a large (possibly huge) number of distributed components, 2 ISRN Software Engineering heterogeneous in nature, structure, and behaviour, which are put together somehow so as to build up a coherent system behaviour. Roughly speaking, that "somehow" is typically one of the key issues in the engineering of complex systems-as well as the main concern of research on coordination models and languages [3][4][5][6][7][8].
In fact, most of the complexity in computational systems comes from interaction [9,10]-along with an essential part of their expressive power [11]. Given that coordination [6] has been defined as the science of managing the space of interaction [11], coordination models and languages [12] are meant to provide the basic abstractions and technologies for dealing with the intricacies of system interaction [13]. This is why, in spite of their origin in the context of closed and parallel systems [14,15], coordination models and languages should be expected to play a key role in the engineering of complex systems [16].
This holds in particular for tuple-based coordination models [17]-as discussed later in Section 3. Their intrinsic properties-as derived from their common ancestor linda [18]-along with the most recent developments and extensions, apparently make them suitable to work as the sources for the abstractions and mechanisms around which complex systems could be designed and built.

Why Nature-Inspired Coordination?
Ranging from physics to biology [19] and from economics to sociology and organisation sciences [20], modelling the dynamics of interaction is essential to understand the complexity of systems of any sort [10]-not just of computational ones. This might be seen as a possible reason why the issue of coordination did not emerge first in computational systems. For instance, in [21], Grassé noted that in termite societies The coordination of tasks and the regulation of constructions are not directly dependent from the workers, but from constructions themselves.
From the very beginning, then, the study of complex natural systems has been intertwined with the study of coordination. Further works on other social insects-such as ants [22]-show that coordination is a key issue in complex natural systems [10]. Many well-known examples of natural systems-and, more generally, of complex systemsseemingly rely on simple yet powerful coordination mechanisms for their key features-such as adaptiveness and selforganisation [23]. For instance, termites and ants construct very complex nests, whose building criteria are anything but trivial-such as inner temperature, humidity, and oxygen concentration, through a coordinated, robust, adaptive, and self-organised social activity.
Altogether, it definitely makes sense to focus on natureinspired coordination models as they have the potential to work as the core of complex nature-inspired computational systems. Accordingly, in this paper, we first survey the most interesting nature-inspired coordination language and models, focussing in particular on tuple-based models as the most prominent class of coordination models. Then, we attempt to point out the hottest research trends in the field and discuss their possible goals and future evolutions.

Remarkable Examples and Main Issues
As suggested previously, nature-inspired coordination models have a history behind them, yet. So, before discussing their potential and perspectives, it is worthwhile to shortly discuss the most remarkable examples in the field and to point out the basic issues of nature-inspired coordination.

Early Models of Nature-Inspired Coordination
2.1.1. Stigmergy. Nature-inspired models of coordination are grounded on studies on the behaviour of social insects, like ants or termites. In [21], Grassé introduced the notion of stigmergy as the fundamental coordination mechanism in termite societies, pointing out the role of environmental artefacts in their individual behaviour and overall organisation. The most widely known and studied example of stigmergic coordination in insect societies is probably that of ant colonies [24]. In short, pheromones are released in the environment by the ants that find food on their way back to the nest, thus building pheromone trails towards food that other ants are then stimulated to follow. There, pheromones could be seen as acting as environment markers for specific social activities, driving both the individual and the social behaviours of ants.
Nowadays, the term "stigmergy" generally refers to a set of nature-inspired coordination mechanisms mediated by the environment [25,26]. Once a notion of computational environment is defined [27][28][29], the reification of the actions of coordinated entities within the hosting environment works as the basis for stigmergy in software systems. So, digital pheromones [30] and other signs left and sensed in a shared environment can be exploited for the engineering of adaptive and self-organising computational systems based on stigmergy [31].

Chemical Coordination.
Besides insect societies, another early source of inspiration for coordination model was provided by chemistry. Chemical reactions, in fact, could be seen as (relatively) simple laws that regulate the evolution of quite complex physical phenomena, coordinating the behaviours of a huge amount of components, as well as the global evolution of complex systems of many sortssuch as biological organisms and meteorological systems, for instance.
Gamma [32] was the first and-for more than a decadethe most prominent example of a chemistry-inspired coordination model. There, coordination is conceived as the evolution of a space governed by chemical-like rules, globally working as a rewriting system [33]. A step further was taken by the CHAM (chemical abstract machine) model [34], whose states are interpreted as chemical solutions where floating molecules representing coordinated entities can interact according to some reaction rules, and where a notion of membrane was introduced in order to model locality of reaction execution.
However, despite their promises, neither Gamma nor CHAM was ever able to demonstrate their potential in the coordination of complex software systems. More recent examples of nature-inspired models proved to be more effective under many aspects-as discussed in the next subsection.

Recent Models of Nature-Inspired Coordination
More recently, new models of coordination were proposed, which are inspired by the way masses and particles in our universe move and selforganise according to environmental properties represented by gravitational and electromagnetic fields.
In the so-called field-based coordination models [35], computational force fields-generated either by the coordinated components or by the coordination middlewarepropagate across the environment and drive the actions and motion of the component themselves. For instance, Co-fields [36] exploit computational fields to coordinate collective intelligent behaviours, such as the many form of swarm intelligence [37].
In turn, TOTA [38,39] provides an interesting blend of stigmergy and field-based coordination, being first of all a stigmergic coordination model, whose middleware is adopted for supporting and implementing the Co-fields model [35]-for instance, local coordination abstractions provided by the TOTA middleware are used to build local Cofields computational fields.

Biochemical Coordination.
The "chemical nature" of Gamma coordination laws is indeed quite limited: while their structure reminds of chemical reaction, their behaviour is essentially that of a mere rewriting system, indeed far from resembling real chemical laws.
Instead, chemical tuple spaces [40] exploit the chemical metaphor up to its full extent, by capturing most of the essential properties of chemical processes. There, data, devices, and software agents are uniformly represented in the form of chemical reactants, and system behaviour is expressed by means of full-fledged chemical-like lawswhich are actually time dependent and stochastic-embedded within the coordination media. Chemical tuple spaces could be then exploited to implement probabilistic coordination laws, thus to promote stochastic behaviour in coordinated systems.
More generally, biochemical tuple spaces [41] enhance chemical tuple spaces by adding the topological dimension to coordination. Along with stochastic behaviour of coordination primitives, in fact, they introduce compartments and diffusion as first-class notions for coordination, along with a notion of neighbourhood. On the one hand, compartments make it possible to structure the coordination topology, by making local spaces available for the execution of chemical reactions. On the other hand, diffusion represents a basic mechanism for computational mobility within a structured environment, allowing for motion coordination.

Basic
Issues of Nature-Inspired Coordination. The aforementioned examples, even though they possibly do not cover the full variegated spectrum of nature-inspired coordination models [42], they are indeed representative enough to allow us to point out a couple of basic issues. Such issues, which implicitly define a minimal set of essential properties that a coordination model aimed at addressing complexity should anyway feature, are (i) the role of the environment in coordination and (ii) the stochastic behaviour of coordinated systems.

Environment.
In stigmergic coordination, environment plays a fundamental role: in termite societies, through nest constructions, and in ant colonies, by collecting pheromones, making their scent diffuse, and letting them decay and evaporate in the end. The role of the environment was well emphasised by Resnick in [43]: The hills are alive.
The environment is an active process that impacts the behaviour of the system, not just a passive communication channel between agents.
Correspondingly, environment is essential in natureinspired coordination and features some fundamental properties [44]: (i) it works as a mediator for component interactionthe components of a distributed system can communicate and coordinate indirectly through the environment; (ii) it is active-the environment features autonomous dynamics and affecting component coordination; (iii) it has a structure-the environment provides a notion of locality, of neighbourhood, and allows components of any sort to move through a topology of some sort.
Accordingly, any nature-inspired coordination model should provide some suitably expressive abstractions to model and build the environment and its dynamics.

Stochastic Behaviour.
Complex systems typically exhibit stochastic behaviours. Ants follow pheromone scent according to some (high) probability values; chemical reactions occur according to some probabilistic rates. The main point here is that such stochastic behaviours are essential to the overall system evolution. Thus, any model aimed at modelling and engineering complex computational systems should feature some probabilistic mechanisms-see for instance [45][46][47]-based on which stochastic behaviours could be designed and implemented [48].
While some coordination models intrinsically feature some don't know/don't care nondeterministic mechanisms, it should be noted that they are not expressive enough to capture all the properties of complex systems, such as biochemical and social systems [49]: for instance, if ants would choose whether to follow the pheromone trail or not just nondeterministically, with no probabilistic distribution, ant colonies would rapidly cease to exist as we know them. Correspondingly, full-fledged probabilistic mechanisms are required to really capture the dynamics of coordination in nature-inspired systems: coordination models should feature (possibly simple yet) expressive mechanisms to provide coordinated systems with stochastic behaviours [48].

Interaction and Coordination.
While a number of different notions of coordination have been introduced in the literature [50,51], harnessing the complexity of interaction [11] is surely a common goal of most of the approaches. As such, coordination is thus often defined as an independent dimension with respect to computation [11,18], dealing with interaction as an independent design dimension [52], which could be exploited as the source of collective social intelligence [37,53].
Also, many different definitions of coordination models have been proposed, such as: A coordination model is the glue that binds separate activities into an ensemble [18] A coordination model provides a framework in which the interaction of active and independent entities called agents can be expressed A coordination model should cover the issues of creation and destruction of agents, communication among agents, and spatial distribution of agents, as well as synchronization and distribution of their actions over time [12].
According to the simple metamodel proposed in [12], a coordination model defines: (i) the coordination entities-whose mutual interaction is ruled by the model, also called the coordinables; (ii) the coordination media-that is, the abstractions enabling and ruling agent interactions; (iii) the coordination laws-that is, the rules that govern the space of interaction-ruling the observable behaviour of coordinables and the computational behaviour of coordination media as well. [14] is the ancestor of all tuple-based coordination models [17], which represent the most prominent and widespread coordination models nowadays, with dozens of different implementations from both academia and industry-such as T Spaces [54,55], JavaSpaces [56], TuCSoN [57,58], and GigaSpaces [59]. There, coordinables synchronise, cooperate, and compete:

Why linda and Tuple-Based Models? linda
(i) based on tuples, representing information chunks, (ii) available in the tuple spaces, working as the coordination media, (iii) by associatively accessing, consuming, and producing tuples.
The same holds for any tuple-based coordination model: all the many extensions, variations, and revisions of linda differ under many aspects, but could all be described as featuring the previous abstractions and mechanisms at their core.
The point is that linda is definitely not a nature-inspired model [60]. So, the main issue to be clarified here, before we proceed, is why should tuple-based models work for natureinspired coordination?
An interesting survey of the technologies and platforms for tuple-based coordination can be found in [61], where the authors analyse the ability of tuple-based systems to adapt to the predictable and unpredictable changes in distributed environments and focus on several aspects related to adaptiveness. In the following, instead, we take into account the intrinsic features of tuple-based models that make them suitable, in principle, for nature-inspired coordination.

Expressiveness of the Model.
The first motivation lays in the expressiveness of tuple-based models. Since its inception [14], linda was conceived as a core coordination model, where most of the typical problems of concurrent systems could be (quite) easily faced and solved. Also, a remarkable amount of the fascination of the linda coordination language-mostly responsible of its early and widespread acknowledgement-derives from its apparent ability to provide few, simple primitives, based on which many complex coordination problems can be expressed and solved.
So, tuple-based languages are highly-expressive according to most of the possible acceptations of the term "expressiveness" [62][63][64]. Testing their expressiveness to model and engineer nature-inspired systems looks in principle mostly reasonable, if not obvious.

Extensibility of the Language.
Whatever its expressiveness, linda was initially conceived as a coordination model for closed parallel systems [15]. Almost inevitably, some of the relevant issues of today open concurrent systems cannot be easily addressed with linda for either theoretical or practical reasons-see for instance [65,66]. As a result, since its early days, linda has been awarded of an almost continuous flow of revisions and extensions-from new implementations [67] to new models [17], which, besides generating a plethora of tuple-based coordination models and languages, witness the extensibility of the basic tuple-based coordination model.
Extending tuple-based models toward nature-inspired coordination is apparently quite a sensible approach, which already produced an interesting stream of research results [16]. Among the many other, it is worth noticing that many of the examples already cited in Section 2 are in fact tuple based-such as digital pheromones [30] and the like [31], Cofields [36], TOTA [38,39], and chemical [40] and biochemical tuple spaces [41].

Environment-Based Coordination.
One of the most essential features of linda-as well as one of its main original motivations-is the generative communication. Generative communication simply means that tuples-the object of communication as well as the means for coordination-are generated by a coordinable-in the tuple space, by means of a coordination primitive-to have a life cycle which is independent of the life of the generating coordinable itself [14]. Besides temporal uncoupling properties, which are essential in a distributed setting, generative communication mandates for persistent coordination abstractions, independent of the coordinated entities. So, tuple spaces in tuple-based coordination models are provided as persistent coordination services [68] by the coordination middleware, shaping the computational environment around coordination entities [69]. As such, they can be interpreted as coordination artefacts [70], that is, environmental abstractions embodying coordinative behaviours which can exploited to support environment-based coordination [71].
Given the essential role that environment-based coordination plays in the context of nature-inspired models (Section 2.3), this is another reason why tuple-based models look fit to support nature-inspired coordination.

Beyond Nature-Inspired
Tuple-Based Models. So, while linda is not a nature-inspired model, many of its extensions actually are. Besides the already mentioned approachessuch as stigmergy [31], field-based [38], and chemical [40] and biochemical [41] coordination-, some further examples of nature-inspired tuple-based models are worth mentioning here-as examples of coordination models extending their reach beyond the mere scope of natural inspiration.

From Distributed Cognition to Cognitive Stigmergy.
The realisation that humans regularly use environmentally mediated signals to coordinate their activities [31] is among the main issues of distributed cognition [72]. In particular, the observation that work environments are typically rich of information associated to resources-such as labels, signs, visual alerts, and the like-which humans exploit in order to organise and coordinate their individual and social activities within a shared environment, is what led to the recognition of environment-mediated, stigmergic coordination as a typical phenomenon in human societies and organisations [31,44]. There, typically, modifications to the environment are often amenable of an interpretation in the context of a shared conventional system of signs, and the interacting entities feature cognitive abilities that could be used in the stigmergybased interaction and possibly affect its outcome.
The notion of cognitive stigmergy mostly derives from the previous considerations: when signals (e.g., pheromones) are read as signs and given a symbolic interpretation by intelligent agents being either human or software agents, stigmergic coordination becomes a multiple-level coordination between heterogeneous components. There, in fact, ordinary components perceive environment markers as mere signals and react accordingly, whereas intelligent components can read them as signs and behave according to their symbolic interpretation. So, cognitive stigmergy allows both reactive and intelligent components to fruitfully coexist within emergently coordinated activities, even though with different levels of understanding of the coordinating environment [73].
In terms of tuple-based coordination, cognitive stigmergy could be simply achieved by using tuple spaces as environmental abstractions, adopting a tuple language, providing the suitable symbolic level, and exploiting tuples as environment markers amenable of a two-level interpretation-as signals and as signs. In [44], a possible architecture based on the tuple-based TuCSoN middleware [57,58] is presented, where tuples are logic tuples [74,75] that reactive agents just perceive through standard linda primitives, whereas intelligent agents can also interpret them at symbolic level and act accordingly.

Pervasive Ecosystems for Adaptive Services.
In the last years, the emergence of an ever-growing number of pervasive computing technologies-mostly caused by the easy accessibility of distributed network infrastructuresled to the definition of the notion of pervasive ecosystem [76]. A pervasive ecosystem is a distributed computational structure intertwined with an everyday environment and modelled after a real-life natural ecosystem-representing its natural inspiration. In the same way as in natural ecosystems, computational ecosystems have components and actors that abide by the laws of the system and act autonomously to achieve some goals.
The SAPERE model [77,78] deals with coordination within pervasive ecosystems [79,80]. There, heterogeneous components of any sorts are ruled by ecolaws, inspired by biochemical reaction laws. Each entity, whatever its structure, is uniformly represented in terms of Live Semantic Annotations (LSA), representing an up-to-date state of the entity itself, related to the specific context in which the information is produced and used. LSAs are sort of tuples, which are stored locally in every node of the infrastructure representing a virtual counterpart of the ecosystem. The abstraction where LSAs are reified is called LSA-space-a sort of tuple space, representing the context where entities live and act. To promote context awareness, the SAPERE model provides LSA-bonding, a mechanism allowing an LSA to link to other LSA in the same space, and SAPERE entities to inspect-via bonds-the state of their peers, of the overall context, and to act accordingly.
Coordination rules-the ecolaws-are instead in charge of managing the global behaviour of the whole system, by manipulating-deleting, updating, moving, and bonding-LSA in the system, in the way of chemical reactions. Like chemical reactions, ecolaws act following specific stochastic rates. Using the chemical approach, ecolaws can put into effect processes such as LSA diffusion, interaction, composition, and disposal.

Toward Self-Organising Coordination.
According to [2], the essential system behaviour in nature-inspired computational systems is represented by self-organisation. In short, self-organisation generally refers to the internal process leading to an increasing level of organisation-where organisation stands for relations between parts in term of structure and interactions, whereas self means that the driving force must be internal and distributed among components. For instance, [23] proposes the following definition of self-organisation.
Self-organisation is a process in which pattern at the global level of a system emerges solely from numerous interactions among the lowerlevel components of the system. Moreover, the rules specifying interactions among the system's 6 ISRN Software Engineering components are executed using only local information, without reference to the global pattern.
Also, the best-known models for nature-inspired coordination-such as stigmergy and field-based ones-are selforganising ones. Correspondingly, research on self-organising coordination [19,20,47,48] is meant at devising the fundamental features that a coordination model should feature in order to support self-organising system behaviours. In [48], self-organising coordination is defined as follows.
Self-organising coordination is the management of system interactions featuring self-organising properties, namely, where interactions are local, and global desired effects of coordination appear by emergence.
Most of the coordination models originated in the field of distributed systems-and in particular tuple-based onesfeature abstractions enacting coordination laws that are typically reactive, (mostly) deterministic, and global as well. Instead, complex systems featuring self- * properties typically exhibit coordination patterns appearing at the global level by emergence, from probabilistic, time-dependent coordination laws based on local criteria [48]. This is why a number of coordination models choose instead to either implicitly or explicitly recognise that full expressiveness requires addressing the issues of time dependency and stochastic behaviour.
Time dependency means that the laws of coordination should possibly be time dependent [81]-or, more generally, time aware. For instance, ReSpecT [82] generally addresses time dependency by capturing time events, providing timeaware coordination abstractions, and supporting the definition and enforcement of timed coordination policies [83]so, ReSpecT-programmed tuple centres can work as timedependent abstractions for the coordination of distributed processes [84].
Stochastic behaviour, too, was a concern for a number of tuple-based coordination models. stoklaim [85], for instance, adds distribution rates to coordination primitivesthus making it possible to model nondeterministic reallife phenomena such as failure rates and interarrival times. Also, Swarm-Linda [53] enhances linda implementation with swarm intelligence to achieve features such as scalability, adaptiveness, and fault tolerance-by modelling tuple templates as ants, which feature probabilistic behaviour when looking for matching tuples in a distributed setting. Finally, stopklaim [81] integrates a probabilistic version of lindaplinda [86]-with stoklaim, thus featuring a probabilistic and time-stochastic coordination model.
In the overall, however, while they provide some of the basic mechanisms to implement the typical features of selforganising coordinated systems, the aforementioned models either do not capture all the essential features of natureinspired coordination models, or fail to properly answer to the need of today complex software systems. This is why many of the novel research lines on nature-inspired coordination stretch existing tuple-based models to achieve the expressive power required to model and build complex self-organising natural systems [16]. Along this line, in the following section we describe some of the hottest trends in the field and provide some vision over the future evolution of the field.

Trends in Nature-Inspired Coordination
Nature-inspired systems represent one of the most prominent topics in the research on coordination models and technologies, nowadays [16]. This is why several promising trends in the field have emerged in the last years, which are likely to lead to relevant results in the next decade.

Expressing the Full Dynamics of Natural Systems.
Capturing just some of the principles and mechanisms of natural systems does not ensure to catch their essence, whatever this might be. Extracting patterns for coordination [87] or self-organisation [88] is a fundamental step towards the understanding of the basic mechanisms underlying selforganising coordination; however, misinterpreted patterns obviously lead to unsatisfactory results. For instance, mapping pheromones over tuples for tuple-based stigmergic coordination may not be enough to capture the behaviour of ant-based systems-if not coupled with suitable scent diffusion and decay mechanisms for tuples, as well as with some stochastic behaviour for ant motion [53]. Instead, fundamental properties such as adaptiveness of systems can be achieved by fully capturing the pheromone-environmentant scenario, as discussed in [61] for SwarmLinda [53].
Correspondingly, a fundamental trend in nature-inspired coordination is understanding and capturing all the mechanisms and patterns that altogether determine the features of natural systems we are interested in. As already mentioned in this paper, this is exactly what happens in the case of chemical coordination models. On one hand, the original modelsnamely, Gamma and CHAM-exploit the raw schema of computation as a chemical reaction, but are not expressive enough to fully reproduce any nontrivial chemical system. In fact, for example, notions such as reaction rate, concentration, and probabilistic execution are required to reproduce even the simplest model of real chemical reactions: given that neither Gamma nor CHAM provide for such notions, they are not expressive enough to fully match the behaviour of real chemical systems. Instead, (bio)chemical tuple spaces, as defined in [40,41], fully exploit the chemical metaphor by providing time-dependent and stochastic chemical laws; as a result, they are perfectly capable of fully reproducing the dynamics of a real chemical reaction and also of putting it to use in the coordination of complex adaptive pervasive systems [89]. This is also why probabilistic extensions to classical coordination models are going to be more and more relevant, following already existing examples such as the aforementioned stoklaim [85,90]-a stochastic extension of the klaim model for mobile coordination [91]-as well as the many probabilistic extensions of linda [92]-among which plinda [86] and Probabilistic klaim [93]. Formally, this will also require probabilistic formal models for the specification of the semantics of probabilistic coordination models, possibly by combining already existing approaches-such as [45,46,49,90]-with newly developed ones.

Blending Patterns and Metaphors.
According to [94], "there are many possible nature-inspired metaphors that can be adopted, and choosing one may require a careful analysis of the pros and cons of the different metaphors. " There, the source of inspirations are classified according to four possible sorts-physical, chemical, biological, and social-and the general features of each one are discussed and compared. Among the drawn conclusions, what is relevant here is the fact that there are apparently no single general purpose solutions addressing all the potential issues of nature-inspired computing-not a single source of inspiration could help facing all the problems and providing all the desired properties.
Along this line, mixing abstractions and mechanisms coming from different conceptual sources is apparently a conspicuous approach when trying to go beyond toylike "paper-oriented" case studies. This is for instance the approach taken by the Co-fields model [36], where the physical inspiration of force fields-used as computational fields to coordinate collective spatial motion-is combined with stigmergic notions such as diffusion and decay-based on the TOTA middleware used for the implementation of Cofields [35].
More notably, this is also the motivation behind the SAPERE coordination model for pervasive service ecosystems [77,78]. SAPERE exploits (i) the chemical metaphor for driving the evolution of coordination abstractions, where ecolaws are conceived as chemical-like laws; (ii) biochemical abstractions for topology and diffusion; (iii) the notion of ecosystem-typical of social systemsin order to model the overall system structure and dynamics.
Altogether, the main point here is to be able to blend all the diverse metaphors and mechanisms in a coherent conceptual and technical framework satisfying also the basic software engineering principle of conceptual integrity. While the fact that the examples discussed previously actually achieve such a result could be debatable, it is anyway unclear, yet, which principles should drive such a blending in general.
On the other hand, one should notice that the coexistence of diverse layers, abiding by different sorts of principles and laws, is what could be actually observed in many interesting natural systems. An insect colony, roughly speaking, is a social system when observed at its top level, but has also an obvious "organism" layer, when observed at the "insectlevel, " along with some biochemical, chemical, and physical layers under them. More generally, "diverse hierarchies play a role in modelling and simulation for computational biology" [95], so hierarchical/layered models, where different layers obey to different sorts of laws, represent a functional example of how different metaphors and mechanism could be successfully mixed up and work together in a complex system.

Semantic Coordination.
While tuple-based models and technologies are manifesting their potential in the coordination of complex computational systems [16], there are at the same time showing their limits in the context of open and knowledge-intensive scenarios, where coordination policies typically need to deal with heterogeneous knowledge sources, partially-specified information, and uncertainty. In fact, as observed in [96], associative access to tuples in standard tuple-based models is based on a tuple-matching mechanism that is purely syntactic. Correspondingly, in most tuple-based models, coordination occurs in a merely syntactic fashion: no semantics is associated to the information exchanged via tuples, so no coordination policies can be in principle based on the interpretation of the information exchanged.
Instead, many complex software systems nowadays need to deal with large, even huge amounts of data, information, and knowledge. In particular, intelligent distributed systems operating within knowledge intensive environments, as well as complex sociotechnical systems, typically require automatic understanding and manipulation of knowledge chunks of many sorts. This is why current research on tuple-based models is focussing on ontology languages to semantically describe information in tuple spaces-so to allow coordinables and coordination laws to talk about the domain of discourse in a semantically well-founded way. In fact, the generative nature of tuples makes it easy to associate semantics to tuples and tuple spaces, add a space for shared ontologies, and suitably extend the matching mechanism.
As a result, many relevant approaches-altogether known as semantic tuple space computing-aim at augmenting tuple spaces with semantics, as discussed in [97]. For instance, Triple Space Computing (TSC) [98] extends the tuplebased model with Semantic Web technology and relies on RDF to couple tuple-based coordination with the Semantic Web: there, in fact, tuples are triples of the form subject predicate object-as typical of the RDF approach. Similarly to many other semantically enhanced tuple-based coordination models-such as Conceptual Spaces (CSpaces) [99], Semantic Web Spaces [100], and sTuples [101], semantic tuple centres [96,102], and description spaces [103]-, TSC aims at overcoming the limitations of standard tuple spaces at least in two ways. On one hand, it sets coordinated components free of the hassles of a rigid definition of communication syntax at design time, by charging the coordination abstractions of the burden of semantic interpretation. On the other hand, it promotes richer and more expressive forms of communication and-mostly-coordination, where coordination policies can also be based on semantic criteria.
In [1], the author observes that "nature might provide the most direct inspiration of all by letting us build devices that affect direct information processing. " Integrating semantic coordination within nature-inspired systems is then quite a regular step in the research on tuple-based models-in particular because many (if not most) complex systems nowadays need to operate within knowledge-intensive environments [16]. For instance, the already mentioned SAPERE model features LSA as semantically well-founded abstractions, and ecolaws work in principle on the basis of semantic interpretation of the items in the LSA spaces [78][79][80].

ISRN Software Engineering
A more radical approach is instead represented by Molecules of Knowledge (MoK), a tuple-based nature-inspired coordination model integrating the basic principles and mechanisms of semantic coordination and self-organisation. MoK focusses on knowledge management [104,105], exploiting the full power of the biochemical metaphor to achieve knowledge self-organisation within knowledge-intensive environments. There, knowledge sources produce atoms of knowledge in biochemical compartments, which then diffuse and aggregate in molecules by means of biochemical reactions, acting locally within and between such spaces. Knowledge consumer's workspaces are mapped into such compartments, which reify information-oriented user actions in terms of enzymes influencing atoms aggregation and molecule diffusion-for instance, making potentially-relevant knowledge atoms and molecules autonomously move toward the interested users.

Further Trends.
Other potential trends may be foreseen, although based more on some visions of the things to come rather than on some visible direction in the literature.

Understanding Core Mechanisms.
The measure of the expressiveness of languages is a particularly interesting problem in the field of coordination models, where a reference framework as widely understood and accepted as the Turing machine for sequential languages does not exist, yet [106]and consequently, it is subject to research and explorations [107,108]. As far as tuple-based models are concerned, several reference frameworks have been exploited in order to assess the expressive power of the basic linda language [63] and to compare it to its extensions [64] as well as to other coordination models [109].
In this context, one of the main research concern is to understand the basic elements of the expressiveness of the coordination language. In fact, linda is a glaring example of a minimal set of coordination primitives capable of expressing a wide range of coordination behaviours: mapping sets of primitives onto classes of coordination systems and understanding the minimal set required to build each class of coordination systems are then quite relevant research topics. In particular, understanding the minimal set of coordination primitives required to build complex stochastic behaviours would be important in the design of nature-inspired coordination languages.
For instance, uniform coordination primitives-that is, linda-like coordination primitives returning tuples matching a template with a uniform distribution [110]-seemingly capture the full-fledged dynamics of real chemical systems within the coordination abstractions. Also, probabilistic extensions like plinda [86] and stopklaim [81] apparently provide most of the required linguistic mechanisms for injecting stochastic behaviour in coordination systems. However, suitable formal frameworks making it possible to measure the expressiveness of probabilistic coordination languages will be required in order to find out the essential linguistic mechanisms are actually required to build the whole range of nature-inspired coordinated systems.

Predicting Complex Behaviours.
The problem of predicting the behaviour of complex systems is hard: interaction typically makes complex systems unpredictable in principle [11]. Complex computational systems are often unpredictable even for the engineers designing them; nonetheless, understanding their possible evolution over time is typically required, for instance in order to match some application requirements. Being generally unpredictable does not mean, for a computational system, being completely unpredictable: while predicting all the states that a system evolution will pass through could be unfeasible, properties like the reachability of a required state (possibly, associated to some probability value) or the avoidance of undesired ones may be instead within the reach of available techniques such as model checking and data mining [111,112].
Coordination models and technologies are typically in charge of harnessing the complexity of articulated computational systems [13]: in particular, coordination abstractions are often used at the core of complex systems [113]. Also, coordination abstractions are typically well defined and computationally predictable: while this does not make coordinated complex system generally predictable, it makes it possible in principle to make them partially predictable, based on the predictability of the core coordinative behaviour.
A promising research line could then focus on suitablyformalised coordination abstractions-along with a suitably defined engineering methodology [114]-that could in principle ensure the predictability of given system properties within generally unpredictable coordinated systems-such as complex nature-inspired systems.

Coordination for Simulation.
Simulation of complex systems is a multidisciplinary issue, ranging from physics to biology, from economics to social sciences, and so on: no complex system of any sort can be studied nowadays without the support of suitable simulation tools. In fields like biology, for instance, experiments done in silico-that is, simulating on a computer-are nowadays at least as relevant as those in vitro and in vivo.
Given the prominence of the interaction issues of complex systems, coordination models and technologies have the potential to work as the core of nontrivial simulation frameworks. In particular, self-organising nature-inspired coordination models are seemingly well suited for the simulation of complex systems, being capable to capture in principle even the most articulated stochastic behaviours. So, it is not difficult to envision future research scenarios where coordination middleware plays a central role in the development of rich simulation frameworks [115].

Conclusion
It might be debatable whether the emergence of natureinspired coordination models and technologies actually represents a change of paradigm in the modelling and engineering of complex software systems [116]. Nonetheless, it is a fact that nature-inspired models of coordination, starting from early chemical and stigmergic approaches, have recently evolved to become potentially the core of complex computational systems-such as pervasive, knowledge-intensive, intelligent, and self- * systems. In this paper, we surveyed some of the most remarkable examples in the literature, devise their main issues, and point out the most promising trends, focussing in particular on tuple-based coordination models.
In the overall, nature-inspired models of coordination have a long history behind them and a huge potential for development which is currently under exploration. In the near future, we may reasonably expect that many research activities will be aimed at designing nature-inspired coordination models and technologies that could work as the sources of the fundamental abstractions and mechanisms required in the engineering of complex nature-inspired computational systems.