Developing an Elastic Cloud Computing Application through Multi-Agent Systems

Developing an Elastic Cloud Computing Application through Multi-Agent Systems

Ali Reza Honarvar (Department of Computer Engineering, Islamic Azad University, Safashahr Branch, Safashahr, Fars, Iran)
Copyright: © 2013 |Pages: 7
DOI: 10.4018/ijcac.2013010106
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

the integration of a multi-agent environment and a cloud platform is to the best of our knowledge a new concept in terms of elastic application to run on cloud platforms. Currently in literature can be found some works focused on merging cloud computing and multi-agent systems (MAS). These works focused on the using of clouds in MAS because MASs often require high-performance computing systems and large data storage devices, or using agents on cloud i.e. Providing agent-based solutions founded on the design and development of software agents for improving Cloud resources and service management and discovery. Scalability is an important issue in the successful deployment of cloud computing software since performance requirements can change over time. Therefore, it is often expected that the software can be scaled up or down to ensure the desired performance at minimal costs. In this paper a framework was proposed which can be used as a foundation for developing an application that uses resources elastically on the cloud. This framework which provides elastic resource provision to applications is based on the MAS.
Article Preview

1. Introduction

According to the National Institute of Standards and Technology (NIST), Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics. Theses necessary characteristics are as follows:

  • On-demand self-service: A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.

  • Broad network access: Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).

  • Resource pooling: The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, and network bandwidth.

  • Rapid elasticity: Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.

  • Measured service: Cloud systems automatically control and optimize resource use by leveraging a metering capability1 at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

Therefore all research activities in cloud computing should be performed considering these five key features. In this paper a framework was proposed which provides an opportunity to cloud computing applications to use resources elastically and optimally based on the goals of cloud customers and providers. For these purposes, agents are used as basic components of cloud applications. An agent is a computational entity that acts on behalf of 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 with a specific degree of independence to carry out actions needed to achieve specified goals. They are designed to operate in a dynamically changing environment. Agents typically include a set of features. The main features of agents include the following:

  • Autonomy: The capacity to act autonomously to some degree on behalf of users or other programs also by modifying the way in which they achieve their objectives.

  • Pro-activity: The capacity to pursue their own individual set goals, including by making decisions as result of internal decisions.

  • Re-activity: The capacity to react to external events and stimuli and consequently adapt their behavior and make decisions to carry out their tasks.

  • Communication and Cooperation: The capacity to interact and communicate with other agents (in multiple agent systems), to exchange information, receive instructions and give responses and cooperate to fulfill their own goals.

  • Negotiation: The capability to carry out organized conversations to achieve a degree of cooperation with other agents.

  • Learning: The ability to improve performance and decision making over time when interacting with the external environment.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 7: 4 Issues (2017)
Volume 6: 4 Issues (2016)
Volume 5: 4 Issues (2015)
Volume 4: 4 Issues (2014)
Volume 3: 4 Issues (2013)
Volume 2: 4 Issues (2012)
Volume 1: 4 Issues (2011)
View Complete Journal Contents Listing