Cloud Computing and Software Agents: Towards Cloud Intelligent Services Domenico Talia ICAR-CNR & University of Calabria Rende, Italy talia@deis.unical.it Abstract — Cloud computing systems provide large-scale run on a parallel or distributed computer to achieve the needed infrastructures for high-performance computing that are high performance for solving large complex problems keeping “elastic” since they are able to adapt to user and application execution time low. needs. Clouds are used through a service-oriented interface that implements the *-as-a-service paradigm to offer Cloud services Although several differences exist between Cloud on demand. This paper discusses Cloud computing models and computing and multi-agent systems, they are two distributed architectures, their use in parallel and distributed applications, computing models, therefore several common problems can be and examines analogies, differences and potential synergies identified and several benefits can be obtained by the integrated between Cloud computing and multi-agent systems. This analysis use of Cloud computing systems and multi-agents. The is lead having in mind the goal of implementing high- research activities in the area of Cloud computing are mainly performance complex systems and intelligent applications by focused on the efficient use of the computing infrastructure, using of Cloud systems and software agents. The convergence of service delivery, data storage, scalable virtualization interests between multi-agent systems that need reliable techniques, and energy efficiency. In summary, we can say that distributed infrastructures and Cloud computing systems that in Cloud computing the main focus of research is on the need intelligent software with dynamic, flexible, and autonomous efficient use of the infrastructure at reduced costs. On the behavior can result in new systems and applications. contrary, research activities in the area of agents are more focused on the intelligent aspects of agents and on their use for Keywords - Cloud computing; multi-agent systems; service oriented computing; developing complex applications. Here the main problems are related to issues such as complex system simulation, adaptive I. INTRODUCTION systems, software-intensive applications, distributed computational intelligence, and collective learning. Cloud computing provide elastic services, high performance and scalable data storage to a large and everyday Despite these differences, Cloud computing and multi- increasing number of users [1]. Cloud computing enlarged the agent systems share several common issues and research topics arena of distributed computing systems by providing advanced in both areas have several overlaps that need to be investigated. Internet services that complement and complete functionalities In particular, Cloud computing can offer a very powerful, of distributed computing provided by the Web, Grid computing reliable, predictable and scalable computing infrastructure for and peer-to-peer networks. In fact, Cloud computing systems the execution of multi-agent systems implementing complex provide large-scale infrastructures for high-performance agent-based applications such when modeling and simulation computing that are dynamically adapt to user and application of complex systems must be provided. On the other side, needs. software agents can be used as basic components for implementing intelligence in Cloud computing systems making Today Clouds are mainly used for handling highly them more adaptive, flexible, and autonomic in resource intensive computing workloads and for providing very large management, service provisioning and in running large-scale data storage facilities. Both these goals are combined with the applications. third goal of potentially reducing management and use costs. At the same time, multi-agent systems (MAS) represent For these reasons and for others that we discuss later, this another distributed computing paradigm based on multiple paper investigates research work in the two areas and point out interacting agents that are capable of intelligent behavior. potential synergies that deserve to be analyzed. The paper Multi-agent systems are often used to solve problems by using discusses Cloud computing models and architectures, their use a decentralized approach where several agents contribute to the in parallel and distributed applications, and examines solution by cooperating one each other. One key feature of analogies, differences and potential synergies between Cloud software agents is the intelligence that can be embodied into computing and multi-agent systems. Analysis is led having in them according to some collective artificial intelligence mind the goal of implementing high-performance complex approach that needs cooperation among several agents that can systems and intelligent applications by using both Cloud computing systems and software agents. Section II introduces include operating systems and/or applications. The Cloud computing concepts and reviews some research user does not manage or control the hardware Cloud activities. Section III discusses multi-agent systems and some infrastructure but has control over operating research topics that are related to Cloud computing. Section IV environments, storage, deployed applications, and presents some ideas on using intelligent software agents to possibly select networking components. Examples for improve the performance and functionality of Clouds, whereas commercial Cloud infrastructures are Amazon EC2 Section V discusses how Cloud computing platforms can be and Rackspace. used for the efficient execution of MAS. Section VI concludes the paper. • Platform as a Service (PaaS). The functionality provided to the user is to deploy onto the Cloud II. CLOUD COMPUTING infrastructure consumer-created applications using programming languages, compilers and toolkits A. A definitition supported by the provider (e.g., Java, .Net). The Since the Cloud computing paradigm has been conceived consumer does not manage or control the underlying several definitions have been given. Some of them focus on on- cloud infrastructure, network, servers, operating demand dynamic provisioning of processing and storage systems, or storage, but the consumer can control the resources, others emphasize the service-oriented interface and deployed applications and possibly the application the exploitation of virtualization techniques. The National hosting environment configurations. Institute of Standards and Technology (NIST) have given a complete reference definition [2]. NIST defined Clouds as • Software as a Service (SaaS). The capability provided follows: “Cloud computing is a pay-per-use model for enabling to the consumer is to use the provider’s applications available, convenient, on-demand network access to a shared running on a Cloud infrastructure and accessible from pool of configurable computing resources (e.g., networks, various client devices through a thin client interface servers, storage, applications, services) that can be rapidly such as a Web browser (e.g., web-based email). The provisioned and released with minimal management effort or consumer does not manage or control the underlying service provider interaction.” Moreover, according to NIST: cloud infrastructure, network, servers, operating “Cloud model promotes availability and is comprised of five systems, storage, or even individual application key characteristics, three delivery models, and four deployment capabilities, with the possible exception of limited models.” user-specific application configuration settings The key characteristics of Clouds are: On-demand self- B. Cloud Deployment models service, ubiquitous network access, location independent About five years ago, when the first Cloud infrastructure resource pooling, rapid elasticity, and pay per use. Fig. 1 has been deployed by Amazon, the online bookseller company summarizes the main aspects of Cloud computing system both that took the decision to start a new business selling computing from the technical side and the business side [3]. resources to companies and private users, the only deployment model was the Public Cloud one. It is a pay-per-use IaaS Cloud infrastructure that is owned by an organization selling Cloud services to the general public or to enterprises. Thus, it is public because it can be rent by anyone for developing and/or running any kind of applications. To use Amazon services, users must provide a credit card account and can spend from few cents to thousands or millions of dollars depending on the number of used resources and the usage time. After this early Cloud version, other deployment models different from Public Clouds have been designed and implemented (see Fig. 2): • Private Cloud. The Cloud infrastructure is owned or leased by a single organization and is operated only for that organization. No public access to it is permitted. This model can be used in case of strict data privacy and/or security requirements. Figure 1. Main aspetcs of Clouds (from [3]). • Community Cloud. The Cloud infrastructure is shared by a limited number of organizations and supports a The delivery models of Clouds are very important because specific community that has shared concerns (e.g., they define three different types of Cloud computing systems: goals, security requirements, policy, and compliance • Infrastructure as a Service (IaaS). The capability issues). provided to the user is to rent computing, storage, • Hybrid Cloud. This fourth class of Cloud networks, and other computing resources where the infrastructure is a composition of two or more Clouds user is able to deploy and run software, which can (private, community, or public) that although they are unique entities, are combined together by standardized III. AGENT COMPUTING or proprietary technology that enables data and An agent is a computational entity that acts on behalf of application portability (e.g., Cloud federation). another entity (or entities) to perform a task or achieve a given goal. Agent systems are self-contained software programs embodying domain knowledge and having ability to behave „ Private clouds with a specific degree of independence to carry out actions 9 enterprise owned or leased needed to achieve specified goals. They are designed to „ Community clouds operate in a dynamically changing environment. 9 shared infrastructure for specific community Agents typically include a set of features. The main „ Public clouds features of agents include the following: 9 Sold to the public, mega‐scale infrastructure • Autonomy: the capacity to act autonomously to some „ Hybrid clouds degree on behalf of users or other programs also by 9 composition of two or more cloud modifying the way in which they achieve their objectives. Figure 2. Deployment models for Clouds. • Pro-activity: the capacity to pursue their own individual set goals, including by making decisions as Cloud computing is the most recent results of the advancement result of internal decisions. of several computer technologies both from the hardware side, • Re-activity: the capacity to react to external events and such as virtualization and multi-core architectures, and from stimuli and consequently adapt their behavior and the software side like cluster computing, Grid computing, Web make decisions to carry out their tasks. services, service-oriented architectures, autonomic computing, • Communication and Cooperation: the capacity to and large-scale data storage. In particular, virtualization in interact and communicate with other agents (in Cloud computing is the key element that separates system multiple agent systems), to exchange information, functionality and implementation from physical resources. By receive instructions and give responses and cooperate exploiting virtualization techniques, a Cloud infrastructure can be partitioned in several parallel virtual machines, dynamically to fulfill their own goals. configured according to the user requirements and devoted to • Negotiation: the capability to carry out organized run independent applications concurrently. Virtualization conversations to achieve a degree of cooperation with separates applications from hardware and users from other other agents. users giving them the feeling that a large-scale computing • Learning: the ability to improve performance and infrastructure is devoted to their applications by meeting a decision making over time when interacting with the given quality of service (QoS). Virtualization is also used to external environment. isolate applications avoiding that if one fails that other can fail too. Finally, virtualization is a way to improve security and Although a single agent can act and run to perform a given privacy of concurrent applications running on the same Cloud. task, the agent paradigm was conceived as a distributed computing model where a set of agents interact one another by C. Example of Cloud systems exchanging information and cooperating to perform complex As we can infer from the previous descriptions, the Cloud tasks where interaction, intelligence, adaptation and computing paradigm represents an advancement of the existing dynamicity are key issues to be handled. computing services available over the Internet. In particular, This means that even if we can define an agent in isolation, Cloud infrastructures adopted the Web services paradigm for the agent paradigm can find its complete exploitation if we delivering new capabilities beyond the Web capability. consider agents as entities acting in a collection of agents, Several companies set up large Cloud facilities and built therefore implementing the so called multi-agent system programming environments where developers can program paradigm. In fact, it is rather difficult to imagine that an agent applications as Cloud software services. Just to mention some will exist and operate only as a stand-alone entity and will example, Amazon on his EC2 and S3 Cloud platforms never interact with other agents (real or artificial) in its implemented Elastic BeanStalk, Microsoft implemented .Net environment. Also information agents, or personal agents, technology on Azure, Google provides the AppEngine, and which are mainly supposed to work as stand alone entities in VMware has Cloud Foundry. solving problems, will certainly improve their behavior and On the other side, the research community developed open achieved results if cooperate with other agents to receive source software that can be deployed and configured on information, to delegate task execution or to exchange servers, computer farms or data centers for implementing knowledge that improve the agent role and contribution. private, public, community or hybrid Cloud infrastructures or According to these considerations, the social dimension of for inter-Cloud computing facilities. Examples of these systems agents is one of its essential features. are OpenNebula, Eucaliptus, OpenQRM, Puppet, and As stated by Sycara [4], the characteristics of MASs are OpenStack. These open source software projects are also that working to systems and services that allow Cloud-to-Cloud • each agent has incomplete information or capabilities interoperability and federation. for solving a problem and, thus, has a limited viewpoint on the global task to be done; dynamically configured to run large-scale MAS-based • there is no system global control; software at unprecedented scale. • data are decentralized; and • computation is asynchronous. IV. CLOUDS USING AGENTS These features are typical of decentralized computing Cloud computing is a novel technology that has been paradigms. In fact, being a distributed computing paradigm, designed and implemented in the past five years, mainly due to multi-agent systems share several characteristics with other industry that was looking to a large-scale scalable computing distributed paradigms like actors (which we can consider as infrastructure for implementing and selling service-oriented their progenitors), concurrent objects, peer-to-peer networks, commercial solutions. Whereas much of the current effort on Grid computing, sensor networks, autonomic computing, and Cloud computing was devoted to the production of Cloud Cloud computing. At the same time, it is worth to notice that infrastructures and technologies for supporting virtualization agents possess some properties, as discussed before, that and data centers, little attention has been devoted to introduce differentiate them from other distributed computing models. innovative methods for users and developers to discover, request, assemble and use Cloud computing resources. Commonalities and differences among these distributed Autonomous and flexible agents and MASs are suitable tools computing models can be exploited for the integrated use of for negotiating user access, automating the resource and service some of the technologies that are based on them. For example, discovery, and composition, trading, and harnessing of Cloud decentralized applications based on multi-agent systems can resources. be developed on Grid systems or on peer-to-peer networks. At the same time, applications based on sensor networks can use A new discipline, called agent-based Cloud computing use distributed intelligence techniques by means of a multi- must be set for providing agent-based solutions founded on the agent system with learning and pro-activity features. design and development of software agents for improving In the past years several agent programming environments Cloud resources and service management and discovery, SLA supporting specific agent architectures and providing libraries negotiation, and service composition. Autonomous agents can of interaction protocols like Jason, 3APL, JACK, Claim, make Clouds smarter in the interaction with users and more efficient in allocating processing and storage to applications. SyMPA, JADE, Cougaar, Jadex, and ZEUS have been developed. Moreover, software engineering methodologies In large-scale data centers, agents can search, filter, query like Gaia, Tropos, and AUML have been designed to analyze and update the massive volumes of data that are stored. We can and design agent-based systems. Efforts have been done to envision a scenario where Cloud agents working on our and standardize some features or facilities of agent systems, such operating systems behalf, to provide intelligent data access as has been done with FIPA and KQML for inter-agent services, monitoring services, processor-to-application communication. These environments, toolkits and assignment strategies, and energy-efficient use of Cloud methodologies are enabling technologies for implementing computing infrastructures. MAS applications on traditional computing systems. However Research activities must be carried out to implement they can be more interesting if they will be available of effective agent-based solutions for Cloud computing. This distributed computing infrastructures like Grid, Cloud or P2P work should be done towards the three different *-as-a-Service networks for supporting the development of large-scale MAS delivery classes. In IaaS infrastructures, agents can be used to applications achieving high performance and scalability. help the intelligent provisioning of basic resources to user However, despite the potential common space where agent applications, whereas in Paas infrastructures, agent can play a technology and Cloud computing infrastructures can be role in the efficient deployment and execution of programming effectively used to produce innovative models, techniques, environments that developers use for application systems and applications, till today only a few research implementation. Finally, in SaaS Cloud infrastructures, agents activities that make use of both these technologies are can be programmed to optimize the use of applications performed. In the literature a very limited number of papers provided as services and the management of the underlying can be found on agents and Cloud integration [5, 6, 7, 8]. hardware/software infrastructure taking care of its efficient In the next two sections, we discuss two main approaches utilization and, at the same time, for maintaining the declared QoS. for the integrated use of agents and Cloud systems. The first one is based on the principle that agent flexibility, intelligence, In Clouds, there also is the need to design and implement pro-activity, and autonomy can be used in Cloud computing techniques and methodologies that adapt to the dynamic platforms to produce new advanced Cloud solutions and behaviors of Cloud computing environments. Autonomic services that offer new functionalities and intelligent services techniques may help providers and users to reach this goal. that todays are not yet available in current Cloud computing Multi-agent systems that are able to handle with changing infrastructures. configurations, heterogeneity, and volatility, can provide a The second one is centered on the idea that Cloud promising approach for addressing this requirement. Last but infrastructures can offer an ideal platform where run MAS- not least, security and trust are two very critical issues in Cloud based systems, simulations and applications because of its computing as data and software are stored, accessed and run on machines that are not owned or directly managed by owners of large amount of processing and storage resources that can be data and software. Agent-based models and algorithms for trust learning. Since Clouds are elastic, they can expand and shrink and security in Cloud infrastructures could be very useful. based on demand of users or applications. This property is very useful for the scalable execution of MAS applications and In summary, if agent-based solutions will be introduced in simulation that are able to adapt to the available resources. the software infrastructure of Clouds we will have: In summary, agent can find in Cloud computing • Intelligent and flexible Cloud services, infrastructures the appropriate platform where to run and • Autonomous and pro-active services, access large data. This opportunity must be exploited for implementing efficient MASs and, from a more general point • Autonomic Clouds. of view, for advancing the way to design and implement a new generation of large-scale software agents. V. AGENTS USING CLOUDS Complex agent-based applications or large-scale VI. CONCLUSIONS simulations based on MASs often require high-performance The marriage between Clouds and Agents can be computing systems and large data storage devices. Therefore, convenient for both parties. We discussed in the paper how this Cloud infrastructures can offer an ideal platform where to run can be done and which scientific areas and issues must be MAS-based systems simulations and applications because of involved to carry out research work that will produce its large amount of processing and memory resources that can intelligent Cloud services and high-performance multi-agent be dynamically configured for executing large agent-based systems on Clouds. The convergence of interests between software at unprecedented scale. multi-agent systems that need reliable distributed Agent-based applications can rely on Cloud computing infrastructures and Cloud computing systems that need infrastructures to access and use vast amounts of processors intelligent software with dynamic, flexible, and autonomous and data. So this approach would allow to offload the compute- behavior will result in new systems and applications. Both intensive agents to the appropriate subsets of processes and research communities must be aware of this opportunity and storage elements in a Cloud. The entire MAS application can should put in place the joint research activities needed to reach run on a Cloud infrastructure or only the most compute- that goal. intensive part of it can be hosted in the Cloud, whereas the light REFERENCES part can run on a local server or simply on the client PC. In this [1] M. Armbrust, et al., “A view of cloud computing,” Communications way agents can become more efficient and, at the same time, of the ACM, vol. 53, no. 4, pp. 50-58, April 2010. lighter and smarter. This can be obtained because, by using [2] www.nist.gov/itl/cloud, June 2011. powerful Cloud facilities, agents can improve their intelligence [3] Cloud Computing Expert Group, “The Future of Cloud Computing,” and accurateness by running more sophisticated algorithms. In Report from European Commission, January 2010. fact, the amount of storage and processing power of a Cloud- [4] K. P. Sycara, “Multiagent systems,” AI Magazine, vol. 19, no. 2, enabled MAS is larger than in other computing environments, pp.79-92, 1998. making it more powerful. [5] B. K.-M. Sim, “Towards complex negotiation for cloud economy,” Proc. GPC 2010, Springer, LNCS 6104, pp. 395-406, 2010 Cloud-enabled agents can coupling agents and large-scale [6] R. Aversa, B. Di Martino M. Rak S. Venticinque, “Cloud agency: A dynamic distributed computing platforms bringing big new mobile agent based cloud system,” Proc. Int. Conference on Complex, opportunities to the agent computing area and expanding Intelligent and Software Intensive Systems, Krakow, Poland, pp. 132- agent’s knowledge beyond the possibilities offered by 137, February 2010 traditional computing platforms. [7] B.-Q. Cao, B. Li, Q.-M. Xia, “A service-oriented Qos-assured and multi-agent cloud computing architecture,” Proc. CloudCom 2009, Virtualization mechanisms offered by Cloud computing can LNCS 5931, pp. 644-649, 2009. be exploited for efficient composition of parallel machines [8] I. Lopez-Rodriquez, M. Hernandez-Tejera, “Software Agents as Cloud where to execute large scale concurrent agents with real-time Computing Services,” Proc. 9th Int. Conference on Practical constraints or needing high performance for achieving results Applications of Agents and Multiagent Systems - PAAMS 2011, in reasonable time. Springer, Salamanca, Spain, pp. 271-276, 2011. Agents implemented in Cloud systems can adapt to available virtual machines by using the basic properties of agents such as autonomy, pro-activity, negotiation and