What is Cloud Sim?

CloudSim is a Simulation Tool or framework for implementing the Cloud Computing Environment.The CloudSim toolkit enables the simulation and experimentation of Cloud Computing systems. CloudSim library written in java, contains classes for creating the components such as Datacenters, Hosts, Virtual Machines, applications, users etc.

These components are used to simulate the new strategies in Cloud Computing domain. These components can be used to implement the variousScheduling Algorithms, Allocation Policies and Load Balancing Techniques. With the simulation results we can evaluate the efficiency of the newly implemented policies or strategies in Cloud environment. The CloudSim basic classes can be extended and one can add new scenarios for utilization. CloudSim requires that one should write a Java program using its components to compose the desired scenario.

The basic components in Cloudsim which will create the Cloud computing environment are:

1. Datacenter : Datacenter, first component should be created, with an VmAllocation policy. The Hosts, and VMs are created inside the Datacenter only. The resource provisioning is performed based on the allocation policies.

2. DatacenterBroker : A broker, communicates between the user and the datacenter. The VM and Cloudlet requests given by the user are submitted to broker. The Broker will send the requests to datacenter. And also collects the result from the datacenter and sends it to the user.

3. Host:The Host class is used to simulate a physical machine. It manages the VMs allocated in it.

4. Vm:The Vm class is used to simulate the Virtual Machine which runs inside the Host and executes the applications or tasks.

5. Cloudlet: The applications or tasks to be executed in Vm are simulated using Cloudlet class. The Class contains the basic application characteristics and runs inside the Vm.

6. VmAllocationPolicySimple:It is the policy defined for allocating the Host for each Vm in the datacenter.

7. VmScheduler and CloudletScheduler :It is the scheduling policy that defines the scheduling order of Vms and Cloudletsrespectively.