Mini Review ARTICLE
Alife in the Clouds: A Short Review of Applications of Artificial Life to Cloud Computing and Back
- 1Departamento de Arquitectura y Tecnología de Computadores, ETSIIT, Universidad de Granada, Granada, Spain
- 2CITIC, Universidad de Granada, Granada, Spain
- 3Department of Graduate Studies, Instituto Tecnológico de Tijuana, Tijuana, Mexico
Cloud computing is currently the prevailing mode of designing, creating, and deploying complex applications, and it has implied a paradigm shift in all three areas; even if it taps and extends previous concepts such as service oriented, concurrent, and distributed computing, this shift has to be eventually translated to the algorithmic and conceptual aspects of sciences such as artificial life. In this short paper, we will review how the world of cloud computing has intersected the artificial life field, and how it has been used as an inspiration for new models or the design and implementation of new and powerful algorithms; in the other direction, we will also examine how artificial life concepts such as self-organization have been applied to the field of cloud computing.
From its start less than 10 years ago, cloud computing (Qian et al., 2009; Armbrust et al., 2010; Sadiku et al., 2014) has become the dominant computing platform in the past two years. Even if initially it was a metaphor applied to virtualized resources of any kind that could be accessed in a pay-per-use basis, it has extended itself way beyond its initial and simple translation of data center concepts to create completely new software architectures and methodologies for developing, testing, and deploying large-scale applications. Several concepts account for the difference of cloud computing with respect to other, classical, methodologies.
• Infrastructure is fully automatized and described by software; there is no hard boundary between software and hardware, with hardware descriptions and applications that run on them developed at the same time.
• Applications are a loose collection of resources that interact asynchronously; they are independent of each other, and in many cases they have their own vendors or service providers. Some resources are ephemeral, appearing only when they are needed and vanishing afterward; some others are persistent, but all of them behave reactively, becoming active only after they receive information, and asynchronously, never waiting for a response to return but relying instead on promises or other programming language constructs to deliver results to the caller.
• As such a loose collection, cloud-native applications might become organic with parts of them changing continuously, in a process called continuous integration. This complex internal structure and evolution make them, in fact, complex systems that have to be analyzed and designed with that in mind.
On the other hand, artificial life (Wikipedia, 2017) includes the study of this kind of complex systems looking for similarities among them and living systems, ecosystems, or societies, in particular, what is called soft artificial life looks at living systems to create models and algorithms in engineering applications, from optimization to content generation; since these algorithms are generally inspired by natural phenomena they are usually called bio-inspired, although they can properly be called meta-heuristics in the sense that they describe a methodology for deciding which heuristics to apply to a particular problem. For instance, ant colony optimization algorithms are bio-inspired algorithms that started as algorithmic models of a biological phenomenon and were published in an artificial life conference (Deneubourg et al., 1991) and were eventually applied to, for instance, optimization of cloud tasks (Li et al., 2011). However, ant colony optimization algorithms eventually moved away from the mainstream alife community to become purely engineering-oriented methodologies, that is why they are not the focus of this mini-review.
The almost organic and decidedly complex nature of large-scale cloud deployments and the fact that they constitute a technosocial system (Vespignani, 2009; Merelo et al., 2016) hints at some relationship between both scientific and engineering fields; however, for the time being that has not been the case to a large extent, to the point that the recent ECAL 2017 conference (Knibbe et al., 2017) only has a passing reference to cloud systems.
That is the reason why we have decided to create this mini-review of how cloud computing has been applied in the alife/complex systems field, with an emphasis on those papers written in the last few years, when the cloud ecosystem has experimented a big diversity expansion, mainly due to the introduction of containers, isolated applications that act like lightweight virtual machines. We will do so in the next section.
2. First Steps toward Cloud as Complex Systems
One of the most straightforward ways of connecting old algorithms to new technologies is to simply run these algorithms using a straightforward translation of the old technologies. Cloud computing, for instance, offers the possibility of instantiating and using computing nodes at a cost that is a fraction of buying them, or even at no cost if you land an academic grant or your problem falls within the boundaries of the free tier cloud hosts offer. Using these nodes in the same way, we used computers in a data center or under our desktop, it is straightforward to port a parallel implementation of whatever algorithm to a cloud-based one; this presents some challenges and has in fact been addressed in several papers (Radenski et al., 2013; Leclerc et al., 2016); for instance (Medel et al., 2017) studies how to create models of complex systems using cloud resources (Gutierrez-Garcia and Sim 2010; Merelo-Guervós et al., 2011; Meri et al., 2013) presents a system that uses free cloud storage services as a device for interchanging individuals in an evolutionary algorithm; Kopp (2016) reviews technologies that are, in general, available for simulation, focusing on defense applications; however, simulation of adaptive behavior and agent-based systems form the basis of artificial life and it could be applied to it. Several other artificial life systems that use the cloud for storage are presented in a recent review (Taylor et al., 2016).
There are other ways of translating classical frameworks and algorithms, coming mainly from the fact that cloud computing is an extension of service computing, that is, offering application interfaces for a variety of services over the web. One of the possibilities that cloud computing offers is the virtualization of computing resources and offering them as a service. For instance, offering robot evolution as a service (Chen et al., 2010; Du et al., 2017) so that anyone can work with them without the need to set up their own infrastructure. These new implementations have their own scaling and scheduling issues that can be a challenge, but they are mostly a straightforward shift of x-as-a-framework-or-implementation to x-as-a-service. Besides, as shown in the paper mentioned above, offering artificial life frameworks as a service contributes to a reduction of costs, which is one of the first-order results of working in the cloud, but still it is only a short step away from service-oriented architectures.
One of the downsides of using the cloud is the need of a permanent connection with possibly a high bandwidth, since most of the computing is done elsewhere and not on user-owned devices. However, there is an interesting complex systems approach to this: the so-called edge computing (Shi et al., 2016) moves cloud resources close to the device or user consuming the service via technologies that allow them to access other services using peer to peer technologies, or using mesh networks or similar technologies to establish services that users of mainly mobile devices can access. Since these edge nodes are similar to a low-hanging cloud that surrounds the user, they also receive the denomination of fog computing (Luan et al., 2015). Fog computing is studied mainly in the context of the Internet of Things and refers to a computing and communication system architecture that relies on devices that do not belong either to the user or to companies; for instance, devices belonging to other users or to government that lend some capacity to the rest of the users. That is why fog computing with an emphasize collaborative or peer to peer protocols; this decentralized and user-centric architecture imply that the devices and computing nodes constituting this fog are, effectively, a complex adaptive system (CAS) (Yan and Ji-Hong, 2010; Roca et al., 2018). However, the scale and sheer number of devices used in fog computing exceed by orders of magnitude the one in actual cloud computing system for the time being, so that for the time being these concepts are still not being applied to them. It is just, however, a matter of time and scale when cloud systems will be considered self-organizing and exhibit emergent behavior. We will refer to this in the next section.
3. Complex Cloud Systems
The possibilities of cloud architectures to exhibit some form of soft artificial life were explored from early on, although mainly in blogs and trade conferences (Burela, 2009; Hakimi, 2010); this last one mentions the cloud as a complex adaptive system, with most of the features that these systems have such as adaptivity or resiliency. However, since cloud systems are in principle human-designed, that adaptivity and resiliency does not necessarily exist. Complex adaptive cloud systems would make use of the underlying physical (or virtual) characteristics of the cloud to implement complex systems, although baseline cloud systems have already been studied and modeled as CASs (Chen et al., 2013).
Using the underlying characteristics of cloud systems would contribute to adaptivity and environment sensitivity. Most cloud systems architectures are based on queues or event systems, which usually form the backbone of the whole cloud architecture and are used to deliver information as well as activate different modules in a way that scales well. This feature is leveraged in Bottone et al. (2016), which implements an ant-based system using the MQTT queue management framework to deposit virtual pheromones, which are then sniffed by agents in a stigmergic algorithm. Instead of simply implementing an array in one of the virtual nodes or a database that can be read from any client, this is a way that translates bio-inspired algorithms, which are inspired by natural phenomena such as anthill building, flocking, or evolution and are generally based on populations of individuals, to their closest equivalent in a virtual environment, creating cloud native complex adaptive systems.
This can be taken further; every module in a cloud system is not adaptive, performing whatever service it has been programmed to do via its description. But lately, some cloud systems are being built with self-* principles Drăgan et al. (2017) in mind; as services in the cloud acquire autonomy in what is called autonomic computing, that is, self-managed computing infrastructure, adaptation is not far away and services become adaptive, being able to self-organize and the whole system to self-heal, two agencies that make a cloud system acquire complex adaptive behavior, such as being able to reconfigure connections, spawn new copies or eliminate them, all in an autonomic way without needing to rely on a central authority, using peer to peer protocols such as the gossip protocol (Laredo et al., 2007), which has actually been used for evolutionary algorithms (Laredo et al., 2009) before cloud computing was even created; Briscoe and De Wilde (2007, 2011) talk about digital ecosystems in the context of service-based architectures, referring to distributed systems that evolve via agents mapped to nodes. This is a pioneering approach, which could form the basis of complex cloud systems. However, these approaches did not have a continuation when the whole plethora of cloud services started to become popular in the next years.
As can be observed by the dearth of references for complex adaptive cloud systems or cloud-native artificial life, as opposed to web-native artificial life (Taylor et al., 2016), we are still in the early stages of its development, with the cloud being used mainly as a resource for the straightforward porting of earlier monolithic, desktop systems. Some steps have been taken in the realization of the complex adaptive nature of systems and in the application of complex systems methods such as stigmergy or gossip protocols to cloud native applications, but it is still an early stage of development. The next few months or years will undoubtedly bring new and unexpected developments to this field that will provide benefits in both directions: insights in the study of cloud as socio-technical systems and new ways of implementing cloud-native artificial life forms.
We would expect these cloud-native artificial life forms to be adaptive, being able to inhabit different kinds of cloud environments, from containers to full-fledged virtual machines, autonomous, in the sense that they should be able to move from one environment to the next and with a certain measure of self-healing and self-monitoring, and finally, since cloud computing is free only to a certain extent, self-sustaining, probably through bitcoin mining to be able to pay their own expenses. To the extent that virus can be considered, in fact, artificial life organisms (Spafford, 1994), and in fact, many operate botnets for bitcoin mining (Plohmann and Gerhards-Padilla, 2012), this is not as far-fetched as it might seem. A good research program where artificial life meets the cloud might be the right tool to gather insights on them and use them for better purposes.
J-JM-G has researched the bibliography and written the general outline of the article. MG-V contributed to the abstract and introduction and overall review of the paper. PAC contributed to the state of the art and overall paper revision.
Conflict of Interest Statement
The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.
This work has been supported in part by the Spanish Ministry of Economía y Competitividad, project TIN2014-56494-C4-3-P (UGR-EPHEMECH).
Bottone, M., Palumbo, F., Primiero, G., Raimondi, F., and Stocker, R. (2016). “Implementing virtual pheromones in bdi robots using mqtt and jason (short paper),” in 2016 5th IEEE International Conference on Cloud Networking (Cloudnet), (Pisa: IEEE), 196–199.
Burela, D. (2009). Artificial Life in the Cloud, Using Windows Azure. Available from: https://davidburela.wordpress.com/2009/11/14/artificial-life-in-the-could-using-windows-azure/.
Chen, Q., Kang, H., Zhou, H., Sun, X., Shen, Y., Yang, S., et al. (2013). “Cloud: complex adaptive service system,” in Proceedings of the 2013 Fourth International Conference on System Science, Engineering Design and Manufacturing Informatization (icsem 2013), (Guiyang: IEEE Computer Society), 89–92. Available at: https://www.academia.edu/6175132/Cloud_CASS
Chen, Y., Du, Z., and García-Acosta, M. (2010). “Robot as a service in cloud computing,” in 2010 Fifth IEEE International Symposium on Service Oriented System Engineering (SOSE), (Guiyang: IEEE), 151–158.
Deneubourg, J.-L., Goss, S., Franks, N., Sendova-Franks, A., Detrain, C., and Chrétien, L. (1991). “The dynamics of collective sorting robot-like ants and ant-like robots,” in Proceedings of the First International Conference on Simulation of Adaptive Behavior on from Animals to Animats, Paris, 356–363.
Du, Z., He, L., Chen, Y., Xiao, Y., Gao, P., and Wang, T. (2017). Robot cloud: bridging the power of robotics and cloud computing. Future Gen. Comput. Syst. 74, 337–348. doi:10.1016/j.future.2016.01.002
Gutierrez-Garcia, J. O., and Sim, K. M. (2010). “Self-organizing agents for service composition in cloud computing,” in IEEE Second International Conference on Cloud Computing Technology and Science, 59–66.
Hakimi, A. (2010). The New World of Emergent Architecture and Complex Adaptive Systems. Available at: https://blogs.msdn.microsoft.com/zen/2010/08/10/the-new-world-of-emergent-architecture-and-complex-adaptive-systems/
Knibbe, C., Beslon, G., Parsons, D., Misevic, D., Rouzaud-Cornabas, J., Bredèche, N., et al. (eds) (2017). Proceedings of the 14th European Conference on Artificial Life 2017. MIT Press. Available at: http://cognet.mit.edu/journal/ecal2017
Kopp, C. (2016). ‘Cloud’ Computing in Simulation. Available at: https://figshare.com/articles/_Cloud_computing_in_simulation/4210617
Laredo, J. L. J., Castillo, P. A., Paechter, B., Mora, A. M., Alfaro-Cid, E., Esparcia-Alcázar, A. I., et al. (2007). Empirical Validation of a Gossiping Communication Mechanism for Parallel EAs, Vol. 4448 of Lecture Notes in Computer Science. Ayia Napa: Springer, 129–136.
Laredo, J. L. J., Fernandes, C., Mora, A., Castillo, P. A., Garcia-Sanchez, P., and Merelo, J. J. (2009). “Studying the cache size in a gossip-based evolutionary algorithm,” in Proceedings of the 3rd International Symposium on Intelligent Distributed Computing, Volume 237 of Studies in Computational Intelligence, eds G. Papadopoulos and C. Badica (Berlin, Heidelberg: Springer-Verlag), 131–140.
Leclerc, G., Auerbach, J. E., Iacca, G., and Floreano, D. (2016). “The seamless peer and cloud evolution framework,” in Proceedings of the 2016 on Genetic and Evolutionary Computation Conference, (ACM), 821–828.
Li, K., Xu, G., Zhao, G., Dong, Y., and Wang, D. (2011). “Cloud task scheduling based on load balancing ant colony optimization,” in Chinagrid Conference (ChinaGrid), 2011 Sixth Annual, (Dalian: IEEE), 3–9.
Medel, V., Arronategui, U., Bañares, J. Á, and Colom, J.-M. (2017). “Distributed simulation of complex and scalable systems: from models to the cloud,” in Economics of Grids, Clouds, Systems, and Services: 13th International Conference, GECON 2016, Athens, Greece, September 20–22, 2016, Revised Selected Papers, eds J. Á Bañares, K. Tserpes, and J. Altmann (Cham: Springer International Publishing), 304–318.
Merelo, J. J., de Las Cuevas, P., García-Sánchez, P., and García-Valdez, M. (2016). “The human in the loop: volunteer-based metacomputers as a socio-technical system,” in Proceedings of the Artificial Life Conference 2016, Complex Adaptive Systems, (Cambridge MA: The MIT Press), 648.
Meri, K., Arenas, M. G., Mora, A. M., Guerv’os, J. J. M., Castillo, P. A., García-Sánchez, P., et al. (2013). Cloud-based evolutionary algorithms: an algorithmic study. Nat. Comput. 12, 135–147. doi:10.1007/s11047-012-9358-1
Qian, L., Luo, Z., Du, Y., and Guo, L. (2009). “Cloud computing: an overview,” in Cloud Computing: First International Conference, CloudCom 2009, Beijing, China, December 1–4, 2009 (Berlin, Heidelberg: Springer), 626–631.
Radenski, A. (2013). ‘‘Using mapreduce streaming for distributed life simulation on the cloud,’’ in Proceedings of the Twelfth European Conference on the Synthesis and Simulation of Living Systems: Advances in Artificial Life, ECAL 2013, Vol. 4. eds P. Liò, O. Miglino, G. Nicosia, S. Nolfi, and M. Pavone (Sicily: MIT Press), 284–291. doi:10.7551/978-0-262-31709-2-ch043
Roca, D., Milito, R., Nemirovsky, M., and Valero, M. (2018). “Tackling IoT Ultra Large Scale Systems: fog computing in support of hierarchical emergent behaviors,” in Fog Computing in the Internet of Things, (Springer), 33–48.
Taylor, T., Auerbach, J. E., Bongard, J., Clune, J., Hickinbotham, S., Ofria, C., et al. (2016). WebAL comes of age: a review of the first 21 years of artificial life on the web. Artif. Life 22, 364–407. doi:10.1162/ARTL_a_00211
Wikipedia. (2017). Artificial Life – Wikipedia, The Free Encyclopedia. Available at: https://en.wikipedia.org/w/index.php?title=Artificial_life&oldid=799704336
Yan, C., and Ji-Hong, Q. (2010). “Application analysis of complex adaptive systems for wsn,” in 2010 International Conference on Computer Application and System Modeling (ICCASM), Vol. 7, (Taiyuan: IEEE), V7–V328.
Keywords: artificial life, cloud computing, distributed computing, complex systems, complex adaptive systems
Citation: Merelo-Guervós J-J, Castillo PA and García-Valdez M (2018) Alife in the Clouds: A Short Review of Applications of Artificial Life to Cloud Computing and Back. Front. Robot. AI 4:64. doi: 10.3389/frobt.2017.00064
Received: 19 September 2017; Accepted: 20 November 2017;
Published: 29 January 2018
Edited by:Joseph T. Lizier, University of Sydney, Australia
Reviewed by:Mario F. Pavone, Università degli Studi di Catania, Italy
Takashi Ikegami, The University of Tokyo, Japan
Copyright: © 2018 Merelo-Guervós, Castillo and García-Valdez. This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.
*Correspondence: Juan-Julián Merelo-Guervós, firstname.lastname@example.org