A Bees Life Algorithm for Cloud Computing Services Selection

A Bees Life Algorithm for Cloud Computing Services Selection

Salim Bitam (Mohamed Khider University – Biskra, Algeria), Mohamed Batouche (University Mentouri – Constantine, Algeria) and El-Ghazali Talbi (University of Lille 1, France)
DOI: 10.4018/978-1-4666-1830-5.ch003
OnDemand PDF Download:
No Current Special Offers


In recent years, the scientific community has begun to model and solve complex optimization problems using bio-inspired methods. Such problems cannot be solved exactly by traditional methods within a reasonable complexity in terms of computer capacities or computational times. However, bio-inspired methods provide near optimal solutions in realist conditions such as cost, capacity, and computational time. In this chapter, the authors propose a new population-based algorithm called the Bees Life Algorithm (BLA). It is applied to solve the cloud computing services selection with quality of service (QoS) requirements. It is considered as swarm-based algorithm, which closely imitates the life of the bee colony. It follows the two important behaviors in the nature of bees, reproduction and food foraging. Bees life algorithm can be applied to the combinatorial optimization problems as well as to the functional optimization problems. An experimental study has been conducted in order to demonstrate the performance and the efficiency of the proposal and its robustness. After comparisons with genetic algorithm (GA) as referential algorithm in this field, the obtained results showed the BLA performance and effectiveness. Finally, promising future research directions are examined to show the BLA usefulness for research in the cloud computing and computational intelligence areas.
Chapter Preview

1. Introduction

A new computing view called cloud computing has been emerged in these last few years. It is based on providing dynamically services using very large scalable and virtualized resources over the Internet. In order to provide those services, these resources can be divided in delivered applications, in computing hardware infrastructure and in computing platform located in different and remote datacenters. The datacenter hardware and software are known as cloud (Figure 1).

Figure 1.

Cloud computing structure


On the one hand, cloud computing allows users to run applications remotely from the cloud using a simple browser which are usually include information technology services referred as to Software-as-a-Service (SaaS) (Furht & Escalante, 2010). On the other hand, Infrastructure-as-a-Service (IaaS) refers to where the application is carried out via useful functions and services provided in the cloud. It is a set of virtualized computers with guaranteed processing power, sufficient storage and efficient performance in terms of latency and bandwidth for an Internet access in time. Between SaaS and IaaS, there are cloud platform services also known as Platform-as-a-Service (PaaS) deliver operating system, programming language and solution stack. It aims at improving the applications deployment cost and reducing its complexity.

It can be seen that the cloud resources use can be simplified by the services use which should be selected in the interest of the end-users. For example, Amazon Elastic Compute Cloud (EC2) (Amazon, 2011) is an IaaS cloud, and is the most well known cloud. Through the use of virtual machines EC2 clients create as many (virtual) machines they require and then host all their required services within the machines. EC2 clients are charged per CPU hour per virtual machine. It is even possible to create a cluster within EC2 by requesting EC2 to create multiple instances of a base virtual machine and then installing the required cluster software into each machine (Goscinski & Brock, 2010).

Moreover, Google App Engine (Google, 2011) is a PaaS cloud that provides a complete Web service hosting environment to clients. Unlike EC2, App Engine clients do not need to address hardware configurations or software installations. With App Engine, clients create their own services and the services are run on Google's servers. While easier to use than EC2, App Engine is very limited in what programming languages can be used to construct services. Hence, it is required of clients to know at least one of the languages before attempting to use App Engine. Finally, there is no explicit discovery service in App Engine. The only option for clients that use App Engine is the use of discovery services that are external to App Engine, such as Universal Discovery, Description, Integration approach (UDDI) (UDDI, 2011) (Goscinski & Brock, 2010).

In order to design and develop easy tools to select cloud services, it is advised to return to basic nature of the cloud. In this way, the center of the cloud computing model is the network (Smith, 2010). It serves as the linkage between the end-users consuming cloud services and the provider’s datacenters providing the cloud services. Through this network (Internet), cloud services are widely distributed to serve end-users using service-oriented applications (SOA). In other words, composite applications consist of a set of abstract cloud services known service classes are deployed. At service run time, a concrete cloud service called service instance or candidate is selected and invoked for each service class (Wang et al., 2011).

Complete Chapter List

Search this Book: