Getting Started with CloudSim
I just decided to move my content from Wordpress to Medium. All the stuff are about CloudSim written while I was doing master’s degree. The goal of this article is to help you to get a better understanding of CloudSim toolkit and reduce your learning time :-)
What is CloudSim?
CloudSim is a library for cloud computing simulation in Java language. To understand how CloudSim works, you must have a basic knowledge of Java programming. CloudSim installation is not required, so you just unpack the package and add .jar file as a library into your project.
CloudSim Structure and Entities
Firstly, you need to know some essential entities in CloudSim. Each entity is represented as a class in Java. The description is briefed per below. For more details of all classes, please visit CloudSim 3.0 API
1. Datacenter
Datacenter is composed of a set of hosts and it is responsible for managing virtual machines (VMs) (e.g., VM provisioning). It behaves like an IaaS provider by receiving requests for VMs from brokers and creating the VMs in hosts.
2. DatacenterBroker
This class represents a broker acting on behalf of a user. It modifies two machanisms: a machanism for submitting VM provisioning requests to data centers and another one for submitting tasks to VMs. The CloudSim users have to extend this class for conducting experiments with their own policies.
3. Host
Host executes actions related to management of VMs (e.g., creation and destruction) and update task processing to VMs. A host has a defined policy for provisioning memory, processing elements, and bandwidth to virtual machines. A host is associated to a datacenter. It can host virtual machines.
4. VM
It represents a software implementation of a machine that executes applications called virtual machine (VM) which works like a physical machine. Each virtual machine divides the resources received from the host among tasks running on it.
5. Cloudlet
A cloudlet class is also known as a task. CloudSim represents the complexity of an application in terms of its computational requirements. This class is managed by the scheduling policy which is implemented in DatacenterBroker Class.