# An Intelligent Approach to Allocating Resources within an Agent-Based Cloud Computing Platform
## 5 Evaluation of the Proposed Model  
In order to evaluate and validate the model proposed in this article, a CC platform designed and developed by the BISITE research group ([[http://bsisite.usal.es](http://bsisite.usal.es)]([http://bsisite.usal.es](http://bsisite.usal.es)).) has been used. This CC platform was deployed in the HPC (High Performance Computing) environment, which offers numerous services and is composed of 15 machines that support virtualization in hardware with the use of Intel-VT technology and the KVM (Kernel-based Virtual Machine) virtualization system. MAS is implemented using the Python programming language because of its power, ease of maintenance and flexibility in handling data structures. In this regard, the data exchange format is based on JSON (JavaScript Object Notation). The web service layer has been implemented using the Tornado web development framework because of its ability to manage a large number of client connections. With regard to the distribution of the initial resources (see Figure 5), a Cloud service--the file storage service--is deployed in different virtual nodes (VM\({}_{1}\) and VM\({}_{2}\)), each one hosted by a different physical machine (PR\({}_{1}\) and PR\({}_{2}\), respectively). The result obtained with this deployment is that the service is highly available (deployed in two servers), and it is also deployed in two physical machines with different computational loads, something that happens in real environments, since the two physical machines host other virtual machines that correspond to other services of the CC platform. In other words, the physical server PR\({}_{1}\) has many available and unallocated resources, while PR\({}_{2}\) has no available resources and the machines it hosts have a high computational load. An amount of 10 to 40 threads were launched which, every 3 s, consulted specific methods of the service (_GetSize_ and _GetFolderContent_). The acceptable QoS level for the _GetSize_ function in this experiment remains at 1.5 s, while the threshold QoS level for _GetFolderContent_ is set at 0.5 s.  
The process starts once the _Service Supervisor_ detects a decrease in performance, at this time it directly executes the adaptation process. This type of adaptation occurs when the demand for the service is much greater; an increase in the computational load results in a more rampant increase in the load. The process for exchanging messages among agents during the adaptation of the infrastructure is shown in Figure 6. The specialized _Service Supervisor_ agent that initiates the service also sendsan alert (step 1, Figure 6) to the _Global Manager_ agent for each of the physical machines that host the service nodes. It should be noted that the GMA is a specialized agent using a CBR reasoning process [23; 44] in order to allocate resources at the macro level. After receiving the first alert, the agents forward the alert message to the rest of the GMA in the CC (step 2, Figure 6). The next process is carried out in parallel in each physical node of the CC system. Each GMA that has received an alert message requests the _LMA_ of the machine in which they are located to instantiate the state of the system (\(I_{FR}^{t}\)). The agent uses this information to determine if there are available resources to instantiate a new node associated with the service requesting resources. If the machine, in response to the instantiation, detects that the physical server does not have any available resources, it does not perform any action. This process is conducted in parallel for each of the machines that have available resources. This problem description is used to retrieve similar cases from the case memory. Each _GMA_ individually determines which resources can relinquish to the new node that has just been instantiated. This new provision of resources is itself the solution to the current problem, _S(P)_. The solution  
Figure 5: Evaluation of the case study—status during the initial period.