Keywords

1 Introduction

During the last decades, the number of services and technologies available for networking applications has increasing significantly. These developments have shown a direct relationship with different aspects of human society like the economy, education, politics, and quality of life. Computational devices seem to be ubiquitous and are present in almost all aspect of our daily life. This trend is promoting a technological integration that has already gone beyond of what traditional networking paradigms can do regarding scalability, dynamic environments, heterogeneity and collaborative operation. As a result, these conditions impose several challenges for building the envisioned future networking technology and show the need to explore new engineering approaches.

The next generation of communication networks will be composed of ubiquitous and self-operating devices that will transform our immediate environment into an intelligent computational system. New technological developments like self-driving cars, wireless sensor networks, drones swarm, Internet of Things, Big Data, and Blockchain are promoting an integration process that will bring together all these technologies in a large-scale heterogeneous network. All these applications involve a set of autonomous components (with possibly conflicting goals) interacting asynchronously, in parallel, and peer-to-peer without a centralized controller; they should be easily accessible by users and operate with minimum human intervention.

Given those conditions, it is necessary that all computational devices can operate autonomously and collaborate with others to offer services through collective actions. Besides, the future communication networks will require high levels of self-organization for both, face challenges related to scalability, heterogeneity, and dynamic environments, and minimize centralized control and human intervention during the processes of planning, deployment, and optimization of the network. Indeed, these requirements cannot be faced using traditional approaches; they are not able to deal with scale, heterogeneity, and complexity of the future networking applications, making necessary to explore novel paradigms for designing and implementing communication systems that can operate under those conditions.

Accordingly, our aim in this paper is to introduce and overview the biologically and socially inspired computing used as technological solutions in networking and artificial systems. The principal idea is to show that it is possible to create analogies between living and artificial systems that enable us to inspire mimetic solutions (biological, social, economic or political) and translate those principles into engineering artifacts. Living systems show desirable properties like adaptation, robustness, self-organization, and learning, all of them required to handle the complexity of the future networking systems. In this regard, we can analyze biological and social phenomena as a source of inspiration for new technological developments; biologically inspired computing for achieving efficient and scalable networking under uncertain environments, and socially inspired computing for increasing the capacity of a system for solving problems through collective actions. In this work, we expect to provide a better comprehension of the opportunities offered by these models and encourage other researchers to explore these approaches as part of their future work.

The rest of the article is organized as follows: in Sect. 2 we present a historical review of the scientifical and technological development of communication systems. In Sect. 3 we summarize the most challenging issues of the next generation of communication networks from the perspective of biologically and socially inspired computing. Section 4 introduces a general method for developing these models; the main idea is to expose how to create a technological solution from properties and behaviors observed in living systems. Section 5 concludes the article.

2 Self-organizing Communication Networks: A Historical Review

In this Section, the need of using self-organization as control paradigm for the next generation of communication networks is discussed. First, we provided a historical review of the scientific paradigms used for studying and building communications systems. Second, we show complexity signs related to traffic, topologies and chaotic behaviors because of interactions among users, nodes, and applications. Third, a comparison of the current control and management paradigms used for designing, controlling, and developing artificial systems is presented. Finally, we depict some properties required for the future communications systems based on self-organizing properties.

2.1 Scientific Paradigms in Communications Networks Development

Traditionally, the scientific paradigm used for communications networks development has been reductionism. Engineers conceived communication systems as a hierarchical structure that allows offer services through protocols and distributed algorithms; each layer was studied individually, and a communication interface among them was used to provide functionalities during the network operation [21]. Devices, protocols, and applications were designed separately, and linear behavior in the whole system was expected. This idea arose from the first mathematical models used for planning and dimensioning communications systems, in which engineers used stochastic models and queue theory to compute the average traffic and assign resources according to the users demands [48, 90]. This approach played an essential role in traditional telephone networks in which there was only one service and the performance required for all users was the same. Thus, it was easy to combine the traffic flows and take advantage of their homogeneous features for analytical purposes. However, an increasing amount of networking technologies and also more complex software applications changed the linear behavior expected inside communications networks [25].

During the last decades, integration of services and technologies available for networking applications have occurred. Nowadays is possible to find data transfer, online games, video, email, e-commerce, and browsing, working on the same network infrastructure [86]. Also, we can find different transmission technologies like wired connections, optical fiber, IEEE 802.11, WiMAX or Bluetooth, and the performance required for each application (bandwidth, delay, and errors handling) is different every case [85]. As a consequence, this increasing number of services and technologies changed the design principle on which engineers based the networking development: linearity. Communication networks do not have linear behaviors anymore, and it is necessary to see them as complex systems if we want to design algorithms and control mechanisms capable of operating in a dynamic environment with non-linear properties [39, 65].

Fig. 1.
figure 1

Control paradigms evolution in artificial systems [25]

2.2 Complexity Signs: Self-similar Traffic, Chaos and Scale-Free Topologies

Because of technologies and services integration, communications networks started showing complexity signs like self-similar traffic, chaotic behaviors and scale-free topologies. Although none of these properties were in the initial conceptual framework used by engineers for design and building communications systems, nowadays there is enough evidence to consider them as an inherent part of the communication networks. A brief overview of these complexity signs is exposed below.

Usually, traffic is modeled as a stochastic process that shows the amount of data moving across a network and establishes a measure to represent the demand that users imposed on the network resources. Both requests per time unit and the incoming packets have been modeled as sequences of independent random variables (call duration, packet lengths, file sizes, etc.) to make easier their analytical treatment [48]. However, the correlation among these variables persists through several time scales and has a significant impact on the network performance [25, 103]. It is important to mention that self-similarity is not a property of traffic sources; it arises as emergent behavior from interactions among users, applications, and networking protocols. Besides, traditional traffic models based on Poisson processes has proven not be suitable to describe traffic patterns in modern communications networks [3, 90].

Similarly, chaotic behaviors take place in dynamical systems that are high-sensitivity to initial conditions; small differences in the system states can produce a significant number of different outcomes. Chaos theory studies these behaviors and tries to deal with the apparent randomness present in strange attractors, feedback loops, and self-similarity. For example, in communications networks, this behavior appears through interactions between TCP protocol and the RED algorithm used for queue management [88]. Other examples are presented in [70] in which chaos appear in the profile of daily peak hour call arrival and daily call drop of a sub-urban local mobile switching center, or in [93] in which chaotic patterns serve as a mobility model for an ad hoc network. More examples can be found in [53, 106, 110].

Finally, the scale-free property is another complexity sign that suggests self-similarity patterns in terms of the network topology [11]. The structure of the network has nodes with more connections than others, and follows a power law distribution. This pattern was found in the late 1990s when a part of the World Wide Web was mapped in a moment of internet connection [58]. This phenomenon could be explained analyzing the evolution of communications networks in terms of their physical and logical topologies according to the preferential connectivity principle [69]. If a web page is created, is reasonable to assume that links to highly connected sites like Google, social networks, services companies, etc., will be added. Also, the physical topology of the internet is also defined by economic and technological requirements of the Internet Service Providers (ISP) [3].

2.3 Control Paradigms Evolution

All artificial systems, including communications networks, use management and control processes to regulate their behaviors. The management process consists in manipulate subsystems, parameter updates, and verify the system state. On the other hand, control is about feedback and run-time control according to variations in the environment. Both processes define the routines to maintain, operate, and adapt the system during operation time. Figure 1 shows a historical review of the current control paradigms for artificial systems [25].

Initially, communications networks were composed by a single device and some remote terminals. There was a single control process and all parameters required for the network operation, e.g., addresses, access privileges and resources were pre-configured by default. Changes in topology and applications were possible but required a complete manual configuration of the system [25]. Figure 1a presents an example of these control paradigm through a hierarchical architecture; the root shows the control process and the leaves the subsystems it can handle. For instance, traditional telephone networks and client/server applications are classic examples of this approach [90]. Even though there are others control schemes, centralized systems are still the preferred solution due to its simplicity and effectiveness; if only a few well-known subsystems have to be managed, there is no need for the high computational cost of distributed algorithms or possibly less deterministic self-organizing methods [29, 38].

The next paradigm is the distributed control [25, 102]. Distributed systems are composed of a set of independent nodes that works as a single coherent system. In this case, a logical abstraction is deployed as middleware in each device to hide the internal structure and the communication process for the application layer. Figure 1b shows a scheme for this paradigm. Although the control process works in a centralized way, it is possible to locate it dynamically inside any node to improve the fault tolerance and achieve a better use of the resources. Cellular networks, distributed databases [1], orchestration software [98], and multi-agent systems like JADE [12] are examples of this control paradigm. Distributed systems offer several advantages to operate and combine resources from different nodes. However, some issues like impossible synchronization and overhead for resource management show the limits of this approach [25, 71]. The need to maintain complete information about the system state and handle changes related to configuration and topology is an expensive computational task in highly dynamic environments [25].

Finally, we have self-organizing systems [38, 39]. In this approach, the management and control process is completely distributed, i.e., each sub-system has its own control process. The functionalities and the system structure arise as emergent behaviors from interactions among elements. Similarly, the goals of the system should not be designed, programmed, or controlled by default; the components should interact with each other until they reach the expected configuration. Self-organizing control is flexible, adaptive, robust, and scalable, it does not need perfect coordination and can operate in dynamic environments [47]. Since each component is autonomous, it is necessary to develop additional mechanisms to promote cooperation, coordination, and synchronization among the system components. It is important to mention that self-organization is not a human invention; it is a natural principle that has been used for designing, building, and controlling artificial systems, and face limitations of centralized and distributed approaches [25]. Examples of this control paradigm can be found in Smart Grids [77], communication networks [64], transportation systems [18], and logistical processes [42].

Although self-organization increase scalability, also causes less deterministic behaviors. The system predictability is reduced due to self-organized control. Nevertheless, this is not a real disadvantage in a dynamic system with non-linear properties in which an approximate solution can be very useful. Additionally, we are in a transition process from distributed to self-organizing systems due to changes in the network architectures, new computational technologies and the need to build large-scale communication systems [85, 86]. To sum up, Table 1 describes the relationship between resources and control according to the different paradigms presented above.

Table 1. Control vs resources: a comparison for artificial systems.

2.4 Current Self-organizing Communications Networks

The increasing use of mobile devices, pervasive computing, wireless sensor networks (WSNs), and cloud computing establish new requirements for future communications systems (See Sect. 3). New applications like self-driving cars [28], drones swarm [116], Internet of Things [59], Big Data and Blockchain [30] are promoting a technological integration that will bring together all these applications in a large scale heterogeneous network. As a result, the future networking applications will require high levels of self-organization for both, face challenges related to scalability, heterogeneity, and dynamic environments, and minimize centralized control and human intervention during the processes of planning, deployment, and optimization of the network. These challenges may be faced through a set of networking functionalities based on self-organizing properties [85,86,87]:

  • Self-configuration: in this context, configuration refers to how the network is set up. Nodes and applications should configure and reconfigure themselves automatically under any predictable or unpredictable condition with minimum human intervention. Self-configuration expects to reduce the effects of networking dynamics to users.

  • Self-deployment: preparation, installation, authentication, and verification of every new network node. It includes all procedures to bring a new node or applications into operation. Also, self-deployment try to find strategies to improve both coverage and resource management in networking tasks.

  • Self-optimization: it refers to the use of measurements and performance indicators to optimize the local parameters according to global objectives. It is a process in which the network settings are autonomously and continuously adapted to the network environment regarding topology, resources, and users.

  • Self-healing: execution of routines that keep the network in the steady state and prevent problems from arising. These methods can change configuration and operational parameters of the overall system to compensate failures.

3 Networking Challenges

Indeed, the majority of the requirements for the next generation of communication networks cannot be faced using traditional approaches [27, 38, 86]. In this Section, we present some of those challenges and their possible relationship with biological and social phenomena. It is important to mention that this Section is not a full reference of challenges in networking but could be seen a list we can address through biologically and socially inspired computing.

3.1 Scalability

One of the most desirable properties in communication networks is the capacity to increase the network size and be able to receive new nodes and applications without affecting the quality of the services [73]. This property, known as scalability, is one of the leading challenges in protocols design, and it is a requirement for building large-scale communication systems. Scalability can be measured regarding applications, users, physical resources, and the network ability to react properly to unexpected conditions [71]. For example, wireless sensor networks usually need to collect data from several hundred sensors, and during this process the capacity of the network can be easily exceeded, causing loss of packets, low network reliability, and routing problems [113].

Furthermore, the decision process required to operate a large-scale network is too fast, too frequent and too complex for being handled by human operators. As a result, network components need to self-organize by themselves across different scales of time and space to adapt their behavior to any variation in the network size [38, 82]. Fortunately, there are many biological and social systems with self-organization mechanisms we can learn from to inspire the design of scalable systems [105]. For instance, data dissemination based on epidemic spreading [27], routing protocols based on Ant Colony Optimization (ACO) [24], and trust and reputation models for controlling free-riders may help to face challenges related to large-scale networking [68].

3.2 Dynamic Nature

Unlike traditional communication networks in which infrastructure and applications were static, the future networking schemes will be highly dynamic regarding devices, users, resources, and operating conditions [64, 86]. For example, the network topology may change according to different mobility patterns, and applications will need different levels of performance concerning bandwidth, delay, and errors handling [16]. Also, cognitive radio allows to configure the spectrum dynamically through overlapping spectrum bands, and users may decide what will be their role in the network due to the absence of centralized control [120]. Additionally, the increasing autonomy in the network components may cause unexpected behaviors, turning into a difficult task to predict the temporal evolution of the system. Under these conditions, self-organizing protocols are essential to improve adaptation, robustness, and face challenges related to highly dynamic environments [25, 38].

3.3 Need for Infrastructure-Less and Autonomous Operation

The current levels of heterogeneity in communication systems in terms of users, devices and services become centralized control an impractical solution [25, 86]. Moreover, there is another trend towards automation in which networking applications require to operate with minimum human intervention. For example, drone swarm [116], delay tolerant networks [35], sensor networks [113] and cognitive radio [64], demand networking protocols that can operate without a centralized control, recover from failures, and deal with highly dynamic environments. In order to address these needs, networking protocols could be equipped with self-organizing mechanisms observed in biological and social systems to develop autonomous applications and decrease the level of centralized control required for the network operation [27, 50].

3.4 Heterogeneous Architectures

Future communications networks require integrating several technologies through internet-based platforms. Given the diverse range of networking components and the numerous interactions among them, it is reasonable to expect complex global behaviors. The next generation of networking applications will be composed of WSNs, ad hoc networks, wireless fidelity networks, VANETs, etc., all of them working on a large-scale communication system [85, 86]. For instance, one of the emerging and challenging future networking architectures is the Internet of things (IoT) [112]. This paradigm includes the pervasive presence of network devices that through wireless connections can communicate among them, and transform our immediate environment into an intelligent large-scale computational system. Also, Wireless Mesh Networks and WiMAX are expected to be composed of heterogeneous devices and protocols [64].

Heterogeneity needs to be understood, modeled and managed regarding technologies, users, and applications if we want to take advantage of large-scale heterogeneous networks [27]. Therefore, we can analyze living systems with high levels of heterogeneity and use them to inspire technological solutions. For example, biological and social phenomena show stable behaviors through the cooperation of a heterogeneous set of subsystems, e.g., nervous system, immune system and normative social systems. This functionality is called homeostasis and can be used for designing computational mechanisms to face challenges related to heterogeneity [22].

3.5 Solving Problems Through Collective Actions

A standard requirement in self-organizing communication networks is to produce coordination, cooperation, and synchronization among the network components to achieve individual and collective goals. This process can be understood as a requirement to solve problems through collective actions, in which accomplishment of tasks depends on interaction and interoperation of unreliable and conflicting components [78]. Likewise, due to the absence of a centralized control, the network is instead relying on self-organization mechanisms to produce the system functionalities. These models are useful for resource provisioning in grid computing [79], cooperation in mobile clouds [34], platooning in vehicular networks [4] and coordination in drone swarms [116].

Collective actions are necessary to construct new levels of social organization; multicellular organisms, social insects, and human society use it to take advantage of skills and knowledge of others to achieve collective benefits [72]. Although this is a common phenomenon in living systems, it is important to mention that human society has more complex collective actions patterns than other species and we can use them as a source of inspiration for engineering developments. For example, computational justice models could be used for appropriation and distribution of resources in mobile clouds and ad hoc networks [79], cooperation models for controlling free-riders and promote collaborative work among network components [68]. Also, collective behaviors from biological systems like firefly synchronization and swarm intelligence could improve routing and network optimization [27, 38].

3.6 Appropriation and Distribution of Resources

One advantage offered by the next generation of communication networks is the opportunity to share resources among nodes, users, and services, through the combination of wireless technologies, mobile devices and the network capacity to operate as a self-organizing system. For example, a mobile cloud allows to exploit distributed resources inside a network if they are wirelessly connected; energy, storage, communication interfaces and software applications can be exchanged, moved, augmented and combined in novel ways [34]. Also, grid and cloud computing provided an infrastructure based on common pool resources to support on-demand computing applications [79]. As a consequence, optimal mechanisms for resources appropriation and distribution are required [81, 84]. This process may be in a stochastic or deterministic manner, and the network components need to self-organize themselves to achieve a distributed resources operation. In this regard, several challenges related to how to carry out a sustainable cooperation process in environments composed of potentially selfish components arise. One solution could use electronic institutions and social capital as a way to increase the capacity of the network to use collective actions. Applications of this approach can be found in Smart Grids [80], VANET’s [37] and Multi-agent systems [76].

3.7 Security and Privacy

Since the networks become a flexible, attackers can get sensitive information analyzing the messages embedded in communications channels and relay nodes [85]. Also, according to mobility patterns the network topology may change in dynamical and unpredictable ways changing routing tables and increasing the risks of exposing crucial private information [86]. As a result, there are several security challenges such as a denial of service, black hole, resource consumption, location disclosure, wormhole, and interference [64]. For instance, the future internet of things will transfer a significant amount of private information through wireless channels, and security protocols need to defend malicious attacks to provide a relatively secure network environment [85]. One solution could use game theory to address situations where multiple players with contradictory goals or incentives compete among them. Many biological and social systems have inspired solutions to deal with security and privacy issues. For example, artificial immune systems for anomaly and misbehavior detection and trust and reputations models to control free-riders and selfish behaviors [27].

One purpose of this work is to introduce and overview the biologically and socially inspired models used as technological solutions in networking and artificial systems. The main idea is to show how an abstract analysis of living systems (biological, social, economic or political) can be made to develop computational models that may provide a suitable conceptual framework for technological developments. According to this purpose, this Section is organized as follows: first, we present a general method for developing computational models inspired by biological and social phenomena. Second, we try to classify them and present some selected examples to motivate their applications in the current networking developments. Finally, we depict the need for both biologically and socially inspired computing in the next generation of communications systems.

3.8 A General Methodology

The modeling approach presented below should not be seen as a general principle, but it may work as a guideline to design algorithms and protocols for artificial systems. It is important to mention that the proposed steps are not new and have been used by many researchers during the last years [8, 27, 31]. However, we try to take the essential parts of the approaches presented by Dressler for biologically inspired networking [27], Pitt for socially inspired computing [50], and Gershenson for designing and controlling of self-organizing systems [38]. Our aim is to show the necessary steps for developing biologically and socially inspired models, and also present how they may have a remarkable impact on technological developments. Figure 2 presents the steps included in this methodology. It starts with a required system functionality, i.e. what the system should do, and enables the designer to produce a protocol or an algorithm that fulfills those requirements. Also, it is not necessary to follow this steps in order; according to the designer needs, it is possible to return to an early step to make any necessary adjustment.

Fig. 2.
figure 2

A modeling approach for socially and biologically inspired computing

4 Biological and Social Computing Inspiring Self-organizing Networks Design

Identification of Analogies Between Living and Artificial Systems. In the first step, an analogy between living and technological systems must be made to identify similar patterns that help to understand and propose new computational solutions [27, 50]. Analogies are the tools of the comprehension; people understand new concepts by relating them to what they already knew [107]. If we chose the right analogy, the model reaches a level of abstraction that allows people foreign to the problem get a better understanding through a well-known vocabulary. Also, create analogies among different systems will enable us to inspire mimetic solutions (biological, social, economic or political) and translate those principles into engineering artifacts. However, analogies could have a limitation regarding expressiveness; using a specific description to represent a problem, may limit its comprehension if the analogy is not good enough. Therefore, you can not use every analogy you know, it is necessary to master the selection process to get access to new interpretation tools.

Representation. In this step, a pre-formal representation that relates the observed biological or social phenomenon with a technological problem is developed. The designer should always remember the distinction between the model and the modeled; there are many representations of a system, and it is not possible to say one is better than another independently of a context [38, 50]. Similarly, the initial representation can be made in natural language or through any tool that allows us to describe variables, abstraction levels, granularity and interactions among components.

Although there is a wide diversity of systems, we can use a general method for developing an initial representation [38]. First, we need to divide the systems into components and identify their internal goals. Second, since the number of components may increase the complexity of the model, we should group them according to their dynamic, and analyze the most important based on the problem requirements. Finally, the designer should consider at least two abstraction levels to capture emergent properties and possible collectives behaviors. Nevertheless, if the initial description has just few elements, probably the system is predictable, and we could get a better understanding using traditional approaches [39].

Modelling. In science and engineering, models should be as simple as possible and predict as much as possible; they should provide a better understanding of problems and not complicate them unnecessary [38, 56, 95]. Also, the quality of the model is related to the analogies we chose to describe the system; if the model becomes impractical, the selected representation should be carefully revised [107]. This stage should not be driven by implementation issues because of its primary goal is to achieve a clear understanding of the problem through a formal analysis of biological and social phenomena.

Furthermore, this stage should specify a control paradigm that ensures the expected behavior of the system. Since we are interested in self-organizing properties, the control mechanisms need to be internal and distributed. Given these conditions, several approaches like actions languages, modal logic, game theory and agent-based modeling have been extensively used to model complex systems and may help during this process. Finally, the expected result of this stage is a formal characterization that will enables us to translate biological and social principles into computational protocols [50].

Application. This step aims both to translate the current model into computational routines, and tune its parameters through different test scenarios. This process should be made from general to particular. Usually, little details take time to develop, and sometimes we will require an ideal scenario to test the central concepts involved in the model (for example through simulation techniques) [38, 56]. Particular details can influence the system behavior, and they should not be included meanwhile their mechanisms and effects are not understood. According to the application results, modeling and representation stages should be improved.

Moreover, to get algorithms or protocols with acceptable computational tractability, probably we need some degree of simplification in the concepts involved in the model. However, it is a good practice to get as transparent as possible an idea of what is going to be simplified; any simplification that needs to be done should be carried out carefully with the purpose of not to dismiss essential parts of the model [50]. In an ideal scenario, application stage should not be constrained by considerations of computational tractability.

Performance Evaluation. The purpose of this step is to measure and compare the performance of resulting algorithms or protocols with the performance of previous results. This is an essential part of the method because allow integrating our results with the current scientifical and engineering developments. Also, if the system has multiple designers, they should agree on the expected functionality of the system [27, 38]. According to the performance evaluation, the efforts to improve the model should continue as long as possible and even return to an early step to do any necessary adjustment.

Table 2. Categorization of biologically inspired models

4.1 Classification and Categorizations

The majority of the proposed solutions for self-organizing networks are based on biologically inspired computing, which have successfully solved problems related to routing, synchronization, security, and coordination [27]. However, there is a new kind of socially inspired computing coming up; human society has many self-organizing mechanisms that we can learn from to enhance the capacity of artificial systems to solve problems through collective actions [50, 78, 82]. Not only these models are useful to face the tension between individual and collective rationality, but also they help to answer questions like: are the cooperation processes sustainable? Is the resources distribution efficient and fair? Can a set of rules evolve autonomously in an artificial system? Socially inspired computing tries to answer these question through a formal analysis of social phenomena. It is important to mention that neither all socially and biologically inspired models are related to self-organizing properties, nor all self-organizing behaviors arise from living systems. However, this work focus on computing models with distributed and internal control related to social and biological systems. An overview of these models is presented in the following subsections.

Biologically Inspired Computing. Biological systems exhibit a wide range of desirable characteristics, such as evolution, adaptation, fault tolerance and self-organizing behaviors. These properties are difficult to produce using traditional approaches, and make necessary to consider new methods [26]. Thus, the purpose of biologically inspired computing is design algorithms and protocols based on biological behaviors that allow artificial systems to face challenges related to optimization, collective behavior, pattern recognition and uncertain environments [15, 57]. Classical examples of these models can be found in swarm intelligence, firefly synchronization and evolutionary algorithms [27, 75]. Table 2 shows a summary of biologically inspired models successfully used in networking.

Furthermore, if we analyze living organisms, three different levels of organization are found: Phylogeny (P), Ontogeny (O), and Epigenesis (E) [97]. First, Phylogeny is related to the temporal evolution of the genetic program. This process is fundamentally non-deterministic and gives rise to the emergence of new organisms through recombination and mutation of the genetic code. Second, Ontogeny is related to the development of a single individual from its genetic material. Finally, Epigenesis is concerned about the learning process in which an organism can integrate information from the outside world through interactions with the environment. The distinction among these categories cannot be easily drawn and may be subject to discussion.

POE model can be used in the context of engineering to classify biologically inspired models and identify possibles directions for future research [15]. We can understand the POE model as follows: Phylogeny involves evolution, Ontogeny involves development and Epigenesis involves learning. In this regard, evolutionary computing can be seen as a simplified artificial counterpart of Phylogeny in nature. Multicellular automata, self-replicating and self-healing software are based on ontogeny properties. For example, when a program can produce a copy of its code or regenerate parts of itself to compensate failures. Finally, artificial neural network and artificial immune systems can be seen as examples of epigenetic processes. In Table 2 a classification of the biologically inspired models according to POE model is presented.

Socially Inspired Computing. Pitt, Jones, and Artikis introduced social inspired computing as a way to create mechanisms that allow artificial systems to solve problems through collective action [50]. Even though this is not the first attempt to use social models in computer science [8, 44], from the author’s knowledge is the first proposal that presents a systematic method to develop them. These models are useful in systems formed by a set of co-dependent components in which there is a tension between individual and collective rationality [54, 78]. In such systems, the achievement of individual and collective goals depends on possible unreliable and conflicting components, interacting in the absence of centralized control or other orchestration forms.

Table 3. Categorization of socially inspired models

Although biological processes are the foundation of social systems, they are not the core of sociability. Despite the fact that both living organisms and societies can be considered as meta-systems, the difference between them is the level of autonomy in their components; while the units of an organism have little or no independence, those of social systems have a maximum level of autonomy. As a result, new kinds of self-organizing phenomenon appear, and it is valuable to make a difference between biologically and socially inspired computing. On the other hand, human society has more complex social patterns than other species; cooperation, institutions, symbolic language and justice could be useful to inspire computational mechanisms that allows translating these principles into technological artifacts [44, 82]. In Table 3 a summary of socially inspired models successfully used in ad hoc networks, smart grids, and multi-agent systems is presented.

Fig. 3.
figure 3

Biologically and socially inspired computing for artificial systems

4.2 The Need for Biological and Social Self-organizing Approaches

The design and development of communication networks, as well as all self-organizing artificial systems, call for a careful examination of biological and social concepts. In this section, we present the relationship between the networking challenges presented in Sect. 3 and the biologically and socially inspired models that we may use to deal with them. Although both biological and social inspired models exhibit self-organizing patterns, in each case their goals are different. Biologically inspired computing try to achieve efficient and scalable networking under uncertain environments, and socially inspired computing is useful for solving problems through collective behaviors. Therefore, the combination of these two approaches allows us to develop communication networks not only enough robust and adaptive to be able to operate in highly dynamic environments, but also with the capacity to use collective actions for solving complex problems. In Fig. 3 the relationship between the biologically and socially inspired models and the networking challenges presented in Sect. 3 is shown.

In general terms, a self-organizing network is a dynamic system of many agents (which may represent nodes, services, applications, users) working in parallel, always acting and reacting to what the other agents are doing. The control process is highly dispersed and decentralized, and any expected behavior in the network need to arise from competition, cooperation or coordination among network components [108]. Biological and social systems have dealt with similar situations for thousands of years, and we can learn from them to develop new types of computational solutions. Although biologically inspired computing has been successfully used during the last years, at this moment it is necessary to design technological artifacts able to solve problems through collective actions. Therefore, socially inspired computing turns into an opportunity for the next generation of artificial systems, giving us a route to include these properties in the future engineering developments.

5 Conclusions

In this article, we have shown that is possible to use biologically and socially inspired computing for building communications systems. We argue that an abstract analysis of biological and social phenomena can be made to create a conceptual framework for developing a new kind of networking technology. Biologically inspired computing can be used for achieving efficient and scalable networking under uncertain conditions, and socially inspired computing for solving problems through collective actions. The combination of these two approaches enables us to develop communication networks not only enough robust and adaptive to operate in highly dynamic environments but also with the capacity to use collective behaviors for solving complex problems.

Furthermore, we showed the challenges of the next generation of communication networks from the perspective of biologically and socially inspired computing; we introduced a general method for developing these models and presented an overview in Tables 2 and 3. Also, we argue that the expected features of the next generation of communications networks become centralized control an impractical solution, and as a result, self-organization will take an essential role in the future networking developments.

Despite the considerable amount of ongoing advances on biologically and socially inspired computing, the research community is still quite young. There are many challenges that we need to face if we want to integrate these models with the emerging networking architectures. We expect this review will provide a better comprehension of the opportunities for biologically and socially inspired computing inside technological developments and encourage other researchers to explore these approaches as part of their future work.