SAAS/ Cloud Simulation 1. Introduction: The advent of cloud computing service has changed the way business is functioning over the years. Many IT based companies have started using this technology in order to save time, money and resources. Cloud computing provides services in the form of software, platform and Infrastructure which are referred as: SaaS (software as a service): The Cloud Computing System provides software as a service as per the demands of the customer. The customer can access this software from anywhere in the world. Example of SaaS providers: Google, Amazon, Salesforce CRM [3]. PaaS (platform as a service): The Cloud Computing System provides platform as a service to develop various applications to the customer and the complete responsibility of maintaining the platform is taken care too. Microsoft .Net is an example of one platform. The PaaS model is placed in between the SaaS and IaaS models. Examples: Microsoft Azure [3]. IaaS (infrastructure as a service): The Cloud Computing System provides infrastructure like memory, security, CPU, server, disks as a service to its customers. The customer has to install all the other platforms that he wants upon this layer. Examples: Amazon AWS, Joyent, GoGrid [3]. For all these services you have to pay for only what you use. These services let the IT companies to stop focusing on the hardware and software related problems and focus mainly on their product development and other research activities [1]. 2. Need for Cloud Simulation: The demands of the consumers of cloud computing vary based on various factors like application usability, security, maintainability, size, environment etc. It is also difficult for the consumers to test the performance of their application because of the hypothetical and dynamic nature of the cloud. Hence, it is viable for them to test their application in a controlled environment before getting it into the cloud [1]. A reasonable solution to the above problem is to reproduce the cloud computing environment using cloud simulation technologies [1]. There are many readily available cloud simulation tools which can be used for replicating the actual cloud settings with a good success rate. Cloud simulation offers solace to consumers who are reluctant to deploy their system directly on the cloud without understanding the technical jargons. This will also help vendors who are offering SaaS to improve their efficiency. There are different simulation techniques available for different use. We explain some of the simulations below. 3. Grid Computing and Simulation: 3.1 Introduction: Grid computing is a distributed computing infrastructure used for computing large amounts of data, using a vast amount of resources. It combines multiple computers or administrative domains to solve a specific task. All the computers are connected by a conventional network interface, like Ethernet. The main feature of Grid computing is that it can facilitate commercial transactions or assemble volunteer computing. The management and scheduling of resources in grid computing environment is quite difficult and it requires sophisticated tools for analyzing and fine-tuning algorithms before applying them to the real systems [10]. The complexity of algorithms on the distributed systems of various resources can be effectively analyzed by Grid simulation techniques. Simulation is also used for examining very large hypothetical problems that may otherwise require many active users and resources [10]. A pictorial representation of the worldwide grid computing is given below [10]. 3.2 GridSim: GridSim[11] is a software toolkit or platform that allows users to model and simulate the characteristics of Grid resources with different configurations. GridSim helps customers to study the nuance of grids and analyze complex algorithms and methodologies in a controlled environment. Using GridSim, researchers are able to conduct repeatable experiments and studies which are not possible in a real time massive Grid Systems. 3.3 Features of GridSim: [need to paraphrase] The important features of GridSim are given below. It allows modeling of different resource characteristics and their failure properties; It enables simulation of workload traces taken from real supercomputers; It supports reservation-based or auction mechanisms for resource allocation; It allocates incoming jobs based on space-or time-shared mode; It has the ability to schedule compute- and/or data-intensive jobs; It has a background network traffic functionality based on a probabilistic distribution. This is useful for simulating data-intensive jobs over a public network where the network is congested. It provides clear and well-defined interfaces for implementing different resource allocation algorithms; and It allows modeling of several regional Grid Information Service (GIS) components. 3.4 GridSim Architecture: GridSim is a multi-layered architecture which enables new layers to be easily added and captures the replica of grid computing environment. The first layer in the architecture is managed by SimJava which enables communication between various grid components. The second layer forms the core elements of the GridSim and is mainly responsible for simulations in GridSim. The third and fourth layers deal with modeling and simulation of services specific to computational and Data Grids respectively. The components of the fifth layer “User code” help users in performing their own schedulers and resource allocations in order to examine their own algorithms. The architectural representation is given below. 4. Cloud Simulation: 4.1 Overview: As the grid simulation toolkits failed to isolate the multi-layer service differentiation among SaaS, PaaS and IaaS layers in the cloud computing environment, many cloud simulation tools have been proposed to overcome this issue. Big Companies like Yahoo and HP have established global Cloud computing testbed known as Open Cirrus with a federation of data centers in 10 different organizations. But in these kinds of testing environments it is hard to conduct repeatable experiments because the resource conditions will vary with time, very expensive to build and also limited accessibility only to its members of collaboration. [1] 4.2 CloudSim CloudSim is an extensible simulation toolkit which is described as a framework for modeling and simulation of both single and inter-networked (federation of clouds) clouds. Now HP and other leading organizations and also many universities around the world are using CloudSim for Cloud resource provisioning, energy-efficient management of data center resources, optimization of Cloud computing and for research activities.[1] 4.2a Uses of CloudSim: Usage of CloudSim reduces time and effort required to test cloud based applications. It allows the applications to be tested in different cloud environments and developers can implement this with less effort. Modeling and simulation of even large scale cloud computing environments. Support for simulation of network connections within the simulated elements. Since Cloud is a pay – as – you – use model, CloudSim provides a platform for modeling and simulation of economic entities for enabling real-time trading of services between customers and cloud providers. Availability of a Virtualization engine that leads to the creation and management of many independent co host applications.[1] 4.2b CloudSim Architecture: The following figure shows a multi-layered design of the CloudSim architecture and also its software framework. The very first layer in the layered CloudSim architecture is the User Code which makes entities like applications, number of users and their applications, virtual machines and others available to hosts. The next layer is the CloudSim which is made up of many fundamental classes (java).[1] 4.2c Implementation of CloudSim: These are some of the key components required for the implementation of the CloudSim: Cloudlet: The complexity of cloud based applications is measured in terms of their computational requirements by CloudSim. Cloudlet class models these application services. Furthermore, CloudletScheduler is used to implement the policies to determine the processing power share among many Cloudlets in a virtual machine.[1] Datacenter: This class is used to model the cloud based hardware or infrastructure services. Furthermore, the DatacenterCharateristics class is used to provide information regarding the data center resources.[1] DatacenterBroker: This class models a broker who is responsible for mediating negotiations between Cloud service provider and the customer. These negotiations are mainly driven by QoS requirements. The broker studies various cloud service providers and also negotiates for allocation of various resources and services as per the QoS requirements to provide the best for the customer.[1] Host: This class is used to model physical resources such as it is used to assign the policy to share the processing power, memory and bandwidth among various virtual machines.[1] Network Topology: This class gives information for inducing the network behavior in the simulation.[1] CloudCoordiantor and Sensor: CloudCoordinator is responsible for periodic monitoring of the internal state of data center resources. It also undertakes dynamic load - shredding decisions for which it uses the dynamic performance information. For monitoring performance parameters implementation of sensor is necessary.[1] VM: This class is used to model a virtual machine in the cloud which includes allocation of all the virtual machines on the hosts which is selected based upon the requirements for a VM deployment. This class is also responsible for allocation of processor cores among the VMs.[1] 5. Examples of SaaS Simulation: SaaS (Software as a service) is becoming increasingly popular as many companies are opting to deliver their services to their client through cloud. SaaS has become a dominant model to create and deliver various applications. So simulation plays a very important role. There are few organizations which are offering SaaS simulations: Dezineforce Dezineforce provide a simulation model known as HPC Simulation On-Demand (SaaS). Dezineforce HPC based simulation provides an easy and quick way to access HPC applications without the need to own, implement or manage the HPC infrastructure. So the organizations opting for this service need not worry about HPC deployments. This is best suitable if the organization has its members in many locations to justify local simulation resources. [4] Waveller Cloud: Waveller Cloud is an audio & noise simulation system that is delivered as “Software as a Service”. Running audio and noise simulations in the computing cloud allows easy scaling of the computation infrastructure. The frequency domain simulations take considerable amount of time but can utilize the dynamic resources allocation in Cloud Computing environment very well which leads to performance improvement in simulation turnaround times. This simulation system also allows easy collaboration and adoption to design process and reduced cost in systems and software administration. [5] SIMCAN simulation platform SIMCAN is a modular simulation platform which is used for modeling a wide range of HPC architectures. The main features of this simulation platform are flexibility to model different architectures easily and to scale these models by maintaining the good level of performance and accuracy. [6] 6. Future Work: Cloud simulation in the past one year has gained more visibility .Plenty of new projects, both academically and in industry have emerged . The latest cloudsim toolkit offers support for modeling and simulation of hot topics in cloud computing, green/power aware cloud computing and federated cloud computing. At the same time new features were added and major improvements were made in simulation core which allowed scalability and performance of simulations. As far as the future work is concerned, new pricing and provisioning policies are to be incorporated to the cloudsim. They are also providing support for practical and concrete network models which capture the message routing and latency behavior. References: 1. Rodrigo N. Calheiros, Rajiv Ranjan, Anton Beloglazov , César A. F. De Rose and Rajkumar Buyya, CloudSim: A Toolkit for Modeling and Simulation of http://www.buyya.com/papers/CloudSim2010.pdf , June 14 2010. Cloud Computing, 2. Rodrigo N. Calheiros, Rajiv Ranjan, Anton Beloglazov , César A. F. De Rose and Rajkumar Buyya, CloudSim: A Novel Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services, http://www.cloudiquity.com/2009/03/cloudsim-offers-cloudcomputing-simulation/ , March 14 2009. 3. Abhishek, What is the actual difference between IaaS, SaaS and PaaS inCloud Computing?, http://abhishekclf.wordpress.com/2010/09/28/what-is-the-actualdifference-between-iaas-saas-and-paas-in-cloud-computing/, September 28 2010. 4. Dezineforce – Empowering optimisation-made-easy.aspx designers, http://www.dezineforce.com/overview-and- 5. Waveller Cloud, http://www.waveller.com/Waveller_Cloud/. 6. Simcan Simulation Platform, http://simcan.sourceforge.net/ 7. Environments and Evaluation of Resource Provisioning Algorithms 8. http://en.wikipedia.org/wiki/Cloud_computing 9. http://www.computerweekly.com/galleries/241360-2/The-difference-between-Saas-Paasand-Iaas.htm 10. GridSim: A Grid Simulation Toolkit for Resource Modelling and Application Scheduling for Parallel and Distributed Computing, http://www.buyya.com/gridsim/ 11. GridSim Toolkit, http://www.cct.lsu.edu/~dsk/eScience2007Posters/sulistio.html