Comprehensive study of multi-resource cloud simulation tools

This paper aims to explore Cloud simulation tools comprehensively. Specifically, it is to propose which simulator will fit in one’s preferences since each simulator has its purpose. Gathering data from research papers along with the simulation processes of four cloud simulators provides a comprehensive approach for identifying the parameters in percentage, characteristics and important features of each cloud simulator. Utilizing cloud simulation tools during testing and modeling the real cloud datacenters provide a test environment which gives a repeatable and controllable environment promptly. The said tools offer the possibility to determine quickly whether the wise guess is true or false. Possibly, the stakeholder can map according to the algorithm used, and give various workloads, tasks, the number of hosts, and virtual machines. Also, the inexpensive way to study how the real cloud datacenters work brings more flexibility and scalability. Cloud simulation tools should be the primary instrument for any cloud computing testing, modeling, and technique.


Introduction
*Cloud computing continues to stand among the delivery models in the 21st century. During its milestone beginning in 2009, the name cloud computing made itself a tag name as 'cool and fancy' in the field of business and IT industry. It aims to bring every business into something called the hype of modern business. However, despite its discovery, it seems there are still many issues raised by researchers, CEO's of the companies, representatives of small and medium business enterprise, and different sectors' representatives. Is cloud computing necessary or does it only create more confusions? The concept of cloud computing is the separation of the computing components that turns into essential services. These services are accessible via cloud servers such as software application, operating system, and hardware. In recent days, cloud computing overtakes the traditional model called Distributed computing because of its capabilities. It is a new paradigm where services in computing, as well as networking resources, are delivered and accessed over the internet. Adopting cloud computing needs a thorough decision-making strategy. It is like putting up a business project that requires a detailed plan and feasibility study. It needs to seek a clear understanding of the firm perspective like the rise and fall during its implementation, the cost of the project and how long it will stand. Likewise, adopting and building the cloud computing requires such knowledge.
Cloud computing offers the following services model: Software as a service (SaaS), Platform as a service (PaaS) and Infrastructure as a service (IaaS). In SaaS, the server connects to thin-clients where they can access the software. The purpose is to reduce software maintenance. Similarly, SaaS provides access to the software running on the server. The PaaS as a platform works at the lower level than SaaS. It provides an abstract level where software is developed and deployed over cloud server. While the IaaS serves a foundation of cloud computing where the resources allocate the storage capacity, processing time, processing power, networking and other services of the cloud server. These services bring a new horizon for the researchers to discover new solutions to the problems, new opportunities, and ideas to explore. Moreover, despite the feedbacks of the masses, there are still standard data which proves that almost of the companies are promoting cloud computing.
According to the survey, out of 1060 IT experts asked about their adoption of cloud infrastructure, 42% of the respondents spoke to ventures with more than 1,000 representatives. The margin of error is 3.07% (Weins, 2016). Additionally, 19% of the European Union (EU) enterprises used cloud computing in 2014. 46% of those organizations used innovative cloud services on financial and accounting software applications, consumer relationship management or for computing power to operate online business requests. The data indicate that more researchers will go through and explore this area for various studies (Giannakouris and Smihily, 2014).
Understanding more about cloud computing takes a lot of effort and money because of its limitations. However, different simulation tools are used to fill the gap. Cloud simulation tools are the leading tools for studying the behavior of real cloud infrastructure. The cloud simulations bring novel solutions in observing cloud itself. It models the real cloud scenarios such as for the creation of datacenter, host, virtual machines and scheduling policies. Thus, it makes cloud modeling easy and gives precise results.
This paper aims to study cloud simulation tools comprehensively. The primary involvement of this paper is to propose which simulator will fit in one's preferences since each simulator has its purpose. Section 2 converses the related work and section 3 describes the comprehensive study of four cloud simulation tools. Section 4 presents the comparative analysis, and section 5 elaborates the conclusion of this study.

Literature survey
Cloud computing aims to step up in the level which enables users to use applications and other services on rent. Accordingly, each of the services plays a significant role in computing, business, and IT industry. The cloud simulation tools model these services. The CloudSim simplified the processes of the real cloud. It is a tool for modeling and simulation of an extensible cloud. The CloudSim itself has an architecture resemblance to what exists in real cloud computing architecture. The lowest level consists of SimJava, which is responsible for the simulation frameworks such as queuing, processing of the events and the creation of system components like Datacenters, Broker, Host, Virtual machines (Vm), and other services. Next is the GridSim, which is responsible for the support of multiple Grid infrastructures like network devices, data sets, workload traces and information services. Then, there is layer located in the CloudSim which owns the major functionalities of the architecture by extending and coding it wisely. Moreover, the topmost layer is the user-code which is responsible for revealing the configuration for hosts, applications, virtual machines, users, application types, and Broker scheduling policy (Buyya et al., 2009). Thus, it models both the system and behavior of clouds. Also, it reveals the visual part of the system through which most of the users interact primarily in implementing policies and at the same time it provides an efficient way to distribute virtual machines within the network of the cloud. Besides, CloudSim modeling critically enhances the quality of service of an application under fluctuating resource and pattern of service request (Calheiros et al., 2010;Shaikh and Sasikumar, 2013). The CloudSim is also deployed and has shown how it works in NetBeans (Amipara, 2015). The comprehensive utilization of CloudSim gives basic classes and elements. The user can modify the case-specific activities according to their configurations. In particular, the user can change different intangible provisioning classes such as Vm Allocation Policy, Bandwidth Provisioner, Vm Scheduler, Cloudlet Scheduler, Power Vm Allocation Policy, and Memory Provisioner. Therefore, these classes can be modified as indicated by particular requirements for any application or research by defining the Abstract classes (Humane and Varshapriya, 2015). In contrast, CloudSim version 1.0 has identified some problems. First, the creations of some VMs are not possible due to the saturation resource in Datacenters and the Cloudlets assigned to this virtual machine may lose. Second, there is no link between datacenters. The relationship between datacenters is necessary. It will prompt to communicate and exchange any services and information on the load for a possible load balancing policy. Therefore, the CloudSim has introduced a new approach in extending its features. Also, the use of ring topology between datacenters is helpful. Likewise, Virtual machine creations within one or more datacenters are attainable through specified Broker policy (Belalem and Limam, 2011). Similarly, the CloudSim offers limited support to use resources due to the bottleneck, so the researcher introduced Cloud2sim as one among the variants (Kathiravelu and Veiga, 2014).
The cloud computing services have mainly segregated when it comes to infrastructure, platform, and software. The cloud service providers ensure the delivery to the customers. The payment will vary according to their request on per usage basis. Likewise, providers will do the management and update parts of the services availed by the client. Although it gives more advantages to the client to study how much money incurred per usage, this scenario is hard to meet in the real cloud. This reason made it for cloud simulators modeled purposely. The research concluded that no cloud simulation tool is better than each other because each of them has its advantages and disadvantages. Moreover, it varies according to the simulation requirements of the user (Kumar and Anjandeep, 2014).
In spite the popularity of cloud computing but still, most companies cannot avoid the bottlenecks. During giving up physical possession, reliability and security additional problems may still exist like the failure of monoculture, cloud provider trustworthiness, and staying in control (Schill, 2013). Then, FlexCloud introduced as a novel simulator that can test the performance of VMs within the premises of the datacenters. This cloud simulation tool is known as flexible and scalable in simulating resource scheduling in the cloud datacenters (Xu et al., 2015). Through the various algorithms present in FlexCloud, it can also simulate VM provisioning requests and performance assessment. It focuses on Infrastructure as a service (IaaS). Through its user-friendly interface, it is possible to repeat and customize the configurations. The VM migration is also possible to model. The FlexCloud has the capability to reduce the computing time and memory intake because it can handle largescale simulations. The unified feature of FlexCloud does make it support most of the public cloud providers by achieving energy-saving scheduling and balancing of workload (Ettikyala and Devi, 2015).
Today, the Cloud computing rapidly expanded its clients who have constrained the Cloud service provider to open more Datacenters for facilitating their administrations effectively. This growing demand has increased the energy consumption of most Cloud Datacenters. This high-power consumption will increase the effective cost and cut the limit of the income of most Cloud service providers. It also affects the surroundings by the emitted carbon. To make Cloud computing an ecofriendly, Green computing is the alternative way because it produces the solution for energy-efficient (Doraya, 2015). Additionally, due to some incapacity of most simulators, GreenCloud is developed. It supports Cloud communication because of its nature as a packet network simulator. The various communication and computing resources such as a server, router, switches and other links will collect energy consumption. It evaluates workload distributions.
Through which the power consumption will dramatically cut by consolidating workload with Datacenter virtualization. The various power management layouts such as voltage scaling and high-powered shut down for computing and network components can prove through the results during simulations acquired in different tiers (Kliazovich et al., 2010). However, GreenCloud simulator escalates time of simulation, and it requires a larger amount of memory, which makes it ideally suited for small Datacenters. Moreover, GreenCloud still has intricate patterns of power consumption, even as it provides a standard set of policy (Ettikyala and Devi, 2015).
According to recent surveys, more than fifty percent (50%) of the organizations and companies, mainly medium and large size have already migrated to the Cloud computing. Indeed, even nowadays the resources provided as pay-per-use is widely accepted in IT industry but still, cloud computing faces various challenges. These challenges are automated provisioning services, VM migration, consolidating servers, managing energy consumption, analytics on traffic data, security of data, and software infrastructures which need sufficient volume of research to become stable. The implementation of the research in real Cloud faces difficulties due to the expensive costs during the setting up of a cloud environment. The iCanCloud simulator is SimCan based, which can put on to specific hardware. The iCanCloud can determine the trade-off between costs incurred versus the rate of the performance during simulations. This advantage may give an idea to the stakeholder about the amount costs during the process. The pay-per-use model of this simulator makes it more perspectivewise during implementation. It also handles parallel setup execution over machines. The iCanCloud claims that two biggest features are still in development (power consumption and parallel experiments) and CloudSim already would have had a comprehensive set of different extensions, which vastly enhance its use. Additionally, the development and deployment of iCanCloud are also due to the features' constraints of the CloudSim and GrenCloud during simulation process (Suryateja, 2016).

Cloud simulation tools
The simulator is a prototype that imitates the operation of a real-world process or any system over a period. The process is called simulation. The Cloud Simulation provides an environment to study the real scenario of the modeled system, in which stakeholder will obtain the behavior of some entity or phenomenon.

CloudSim
CloudSim is a tool or non-volatile resource for modeling and simulation of the Cloud scenario. It is a Java-based toolkit that will ensure the creations of the following: (1) Datacenter or many hosts of computers for remote storage, processing or distribution of large amounts of data, (2) Host or Virtual servers, and (3) Virtual Machines Scheduler. The CloudSim evolves from different versions starting from the latest version down to old version are CloudSim 4.0, CloudSim 3.0.3, CloudSim 3.0.2, CloudSim 3.0.1, CloudSim 3.0, CloudSim 2.1, CloudSim 1.0. The CloudSim has a major bottleneck of lack of graphical user interface and report-wise, so several variants have developed such as iFogSim, CloudSimEx, WorkflowSim, Cloud2Sim, SimpleWorklow, DynamicCloudSim, RealCloudSim, CloudReports, CloudAuction, CloudMIG Xpress and CloudAnalyst. These variants have their specific tasks (Ashalatha, 2016). Thus, it is easy for the researcher to pick up one of these variants and implement Cloud scenarios. Fig. 1 shows the simulation process between each of the parameters. The datacenter models the hardware infrastructure. In CloudSim, a datacenter is a class form of codes where the creation of the host is possible. The Host is a node of physical machines that can manage virtual machines and instantiate virtual machine scheduler. The Virtual machine scheduler allocates the process in every virtual machine according to the scheduling policy. Fig. 2 shows the creation of Datacenter (Datacenter_0) along with a Host (Host #0) two Cloudlets namely Cloudlet_0 and Cloudlet_1 running inside Vm_0 and Vm_1 respectively. Both Cloudlets have different MIPS running in two virtual machines.
The two Cloudlets have the same finishing time of the task. The time varies depending on the requested VM performance. Table 1 demonstrates the distinct upgrades of each of the versions beginning from CloudSim version 3.0 up to version 4.0. The two checks [] suggest the New features.

FlexCloud
A Java-based cloud computing simulator claims to be a flexible and scalable simulator. The FlexCloud simply gives simple steps in the execution of the resource scheduling, simulates the process on how to initialize the cloud datacenter, allocates the virtual machine request, and provides performance evaluation for various scheduling algorithms. Also, it has a user-friendly graphical user interface in which user can configure small and large scale simulations by allocating the time and memory depending on the request services. Thus, is suitable for evaluating the Cloud Computing Infrastructure as a Service. The following are the essential features and advantages of FlexCloud:  Built on the Java platform which runs on a single computer with JVM  It focuses on IaaS where pattern design is flexible and extendable;  It has a feature to add new scheduling algorithms;  It has a user-friendly interface and configurations can be customized to simulate various conditions;  The evaluation of the performance of the different scheduling algorithms produces simple diagrams.  The computing time and memory consumption to support large-scale simulations have more benefits compared to CloudSim (Xu et al., 2015);  The best software tool presented in Beijing Tongtech Software Innovation Contest. Fig. 3 shows the simulation process of FlexCloud. This picture gives five distinct scenarios: (1) Client resource request during the initial stage then (2) Client can choose and allocate the suitable resource (3) Feedback to the user (4) Scheduling task (5) Update and Optimization. All these steps can be done by the client and within the FlexCloud Scheduler Center.    Fig. 6 shows the summary results in a diagram form. It displays the values of indices in y-axis and algorithm names in the x-axis. The red corresponds to the Online Random Algorithm. While the blue represents, Online Round-Robin Algorithm and the green is for LS algorithm. It shows the load stability for different algorithms. The figure also proves that under this simulator, the LS algorithm can overcome other two algorithms.

GreenCloud
GreenCloud is a classy simulator which focuses on cloud communications regarding the packet to packet simulation for energy-aware on the Datacenter. It is a sophisticated modeling simulator for energy used by the Datacenter, such as computing servers, network switches, and communication links.  Focus on energy awareness in every network devices  It simulates Cloud networks  It can do the following: CPU simulation, memory simulation, storage simulation and networking resources simulation.  The prototype energies are self-regulating for each type of resources  It supports the virtualization and virtual machine migration  The allocation of network-aware resource  The complete implementation TCP/IP protocols  It is an open-source and user-friendly interface. Fig. 7 shows the three layers of network namely Core, Aggregation and Access. The Core is the central part of a system where the datacenter locates. The Core provides various services to the customers when they connect to the Access network. The Aggregation is a network of combining (aggregating) multiple network connections in parallel. The purpose is to increase throughput for every single connection. When the links fail, it helps to identify the redundancy quickly. On the other hand, the Access is a network which connects the individual customer to their direct service provider. GreenCloud provides energy model on every switch or any device plugged into each network. Fig. 8 shows the simulation of the three tier Datacenter architecture along with the creation of switches namely Core, Aggregation and accessing 144 servers. The main parts of the simulation are building topology, creating Cloud users, showing simulation parameters, displaying simulation reports and making graphs. The current simulation has a datacenter capacity of 576057600 MIPS. Fig. 9 shows the data summary of simulation. The pie graph shows the total energy consumed which is 301.9 W*h. Each layer has consumed different energies. The Green represents the Server energy has consumed 138.6 W*h (46%). The aqua blue labeled as Switch energy (aggregation) has consumed 102.8 W*h (34%). The Yellow infers as the Switch energy (core) has consumed 51.4 W*h (17%), and the Red infers that the Switch Energy (access) consumed 9.1 W*h (3%).

iCanCloud
iCanCloud is a simulation framework based on OMNeT++ and INET frameworks. Thus, both structures are required to execute and develop new components for the said simulator. The forecast of trade-offs between amount incurred and the rate of the performance during simulation is the primary purpose of the iCanCloud. Furthermore, it shows the trade-offs of a particular set of running applications to the users. In detailed, a given performance will produce how much cost during simulation. Additionally, iCanCloud can be used by a variety of users, from inexperienced users to developers of large computing applications. Even though each user overlapped on several features provided by the Cloud but all of them have the same objective such as improving the trade-off between cost and performance which are the difficult task iCanCloud tries to lessen. Thus, this simulation platform claims to be a scalable, flexible, fast and easy-to-use tool, which let users, obtain results quickly to help them in taking a decision for paying a corresponding budget of machines. The most noteworthy features of the iCanCloud simulation tools include the following:  Simulation of both existing and non-existing cloud computing design structures.  The hypervisor module is versatile, and it provides easy steps for incorporating and studying of Cloud brokering policies both new and existent.  The custom-made VM is helpful to execute unicore/multi-core environment.  It supports an extensive variety of requirements for memory systems, which comprise the copies for the local memory system, system remote storage (NFS), and parallel system storage, such as system parallel file and RAID systems.  The GUI is comprehensible. It simplifies the simulation and customizable to huge thin models.  The GUI is valuable for handling storage of the preset VMs. It is intended for the storage of preset Cloud systems, managing a repository of preconfigured tests, sending tests from the GUI, and producing graphical reports.  It offers a POSIX-based API and an improved MPI library for application modeling and simulation. It traces the physical requests; it utilizes a state graph, and through processing platform, it instantly designs the latest applications.
 In the repository of the iCanCloud, it can add new modules to intensify the service of the processing environment (Castane et al., 2011).  Fig. 10 shows the different layers of iCanCloud. The Virtual machines repository, Application repository, Cloud Hypervisor, and Cloud System. Each of the layers has different sub-tasks. The VMs repository is responsible for user-defined instances, and it models existing VMs which is the Amazon. The underlying system's API contains a set of system calls which is capable to directly communicate to the hardware models like storage system, CPU system, memory system, and network system. The Application repository has components of phobos, User-defined application, and map-reduce. These are predefined applications configured by the user. The Cloud hypervisor or sometimes called Cloud Broker which is responsible for handling jobs, scheduling policies and cost policies. The Cloud system represents the architecture of cloud and the deployment of VMs. Fig. 11 shows the configuration process. Starting from the user interface will do the following steps: generate Cloud model definition, generate user configuration, initializing the phase, the creation of specified cloud models, execute the simulation, load users/jobs and lastly create a report. Fig. 12 shows the creation of Cloud A with SmallCluster Datacenter and the user's CPU has allocated to 1000. Moreover, the different results are displayed such as Aggregated Energy (I) of each node, the Power (W) of each node and lastly Energy versus Power. Table 2 shows the comparison of Cloud simulation tools. The values of the parameters vary according to the following: Available/Yes/Supported, Limited/Work in progress and none if not supported. The seconds and minutes are the time taken by the simulator during the simulation process. During simulations of the following simulators, the CloudSim, FlexCloud, and iCanCloud got seconds except for GreenCloud. Among eighteen parameters, the four simulators are fully-supported in Operating System and Purpose. All the four simulators are open-source. Both CloudSim and FlexCloud, the implementations are through Java while the implementation of both iCanCloud and GreenCloud are in C++. The iCanCloud supports only parallel experiments, but regarding power consumption models it is still working in progress.   Table 3 shows the equivalent values in numbers (1, 0.5, and 0). The Cloud simulation tools that have the values Available/Yes/Supported/Seconds have assigned a value of 1 while the Cloud simulation tools that have the values Limited/Work in progress/Minutes have assigned a value of 0.5. Moreover, the Cloud simulation tools that have the values none available have assigned a value of 0. According to the table, seven parameters are the values having 1 in each of the Cloud simulation tools. These parameters are namely Availability, Programming language, Simulator type, Platform, Advantages, Operating system support, and Purpose. The FlexCloud, GreenCloud, and iCanCloud garnered a total of 13.5 points while only CloudSim garnered a total of 11 pts. This table predicts which simulator has more composition of parameters.

Comparative analysis
As the computation results, Fig. 13 shows the composition of parameters present in each Cloud simulation tools in percentage. The three simulators accumulated the percentage of 67.5, GreenCloud, FlexCloud, and iCanCloud. The CloudSim accumulated 55 percent.

Conclusion
The study and evaluation of real Cloud framework are not feasible. Numerous factors are affecting why real Cloud is not always possible to implement for study. These are high infrastructure cost regarding procurement, high energy cost during implementation, limited accessibility of Cloud resources in geographical location, Cloud service provider will prohibit the data accessibility for study because of data privacy and confidentiality, infrastructure failure during implementation and repetitive implementation is more likely not possible. In any case, to make it feasible, the Cloud simulation tools are now filling these gaps. This paper has tried to discuss the four standard and modern tools to model and study the real Cloud. The paper has also described the simulation models, features, and simulation results of each of the simulation tools. In this paper, simulation tools have been discussed to provide clarity and definition, especially in the specific areas. In particular, it has deliberately shown that the Cloud simulation tools processes and architectures are much similar to the real Cloud infrastructures.
In conclusion, the principal source for the modeling of real Cloud through the Cloud simulation tools should be one of the main philosophies. Way back in the past, this has not been the principal source in studying and evaluating real Cloud infrastructure. Cloud Simulation tools should be the primary instruments for any Cloud testing and modeling. Just identify the requirements needed for simulations and then the user can choose among the four simulation tools according to their desired outputs. Through these simulation tools, improvement Cloud scenarios are possible because most of these tools are extendable, scalable, flexible, fast, open source, user-friendly, and result-oriented.