{"id":34361274,"url":"https://github.com/cloudsimplus/cloudsimplus-automation","last_synced_at":"2025-12-18T05:02:46.175Z","repository":{"id":16325267,"uuid":"19074497","full_name":"cloudsimplus/cloudsimplus-automation","owner":"cloudsimplus","description":"A Java 17+ tool for Human-Readable Scenario Specification and Automated Creation of Simulations on CloudSim and CloudSim Plus 🌥⚙️📄👨‍💻","archived":false,"fork":false,"pushed_at":"2025-04-08T16:48:29.000Z","size":856,"stargazers_count":34,"open_issues_count":3,"forks_count":20,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-28T10:11:27.741Z","etag":null,"topics":["automation","cloudsim","cloudsim-plus","java","simulation","simulation-scenario","yaml"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudsimplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-04-23T15:17:56.000Z","updated_at":"2025-04-08T16:48:36.000Z","dependencies_parsed_at":"2022-08-18T21:52:33.073Z","dependency_job_id":"a9ec7229-b465-491a-9c43-637ab4935769","html_url":"https://github.com/cloudsimplus/cloudsimplus-automation","commit_stats":null,"previous_names":["manoelcampos/cloudsim-plus-automation","manoelcampos/cloudsimplus-automation"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/cloudsimplus/cloudsimplus-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsimplus%2Fcloudsimplus-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsimplus%2Fcloudsimplus-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsimplus%2Fcloudsimplus-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsimplus%2Fcloudsimplus-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudsimplus","download_url":"https://codeload.github.com/cloudsimplus/cloudsimplus-automation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudsimplus%2Fcloudsimplus-automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27791592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-18T02:00:09.725Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cloudsim","cloudsim-plus","java","simulation","simulation-scenario","yaml"],"created_at":"2025-12-18T05:02:44.960Z","updated_at":"2025-12-18T05:02:46.162Z","avatar_url":"https://github.com/cloudsimplus.png","language":"Java","readme":"# CloudSim Plus Automation: Human-Readable Scenario Specification Tool for Automated Creation of Simulations on CloudSim and CloudSim Plus \u003ca href=\"https://buymeacoff.ee/manoelcampos\" target=\"_blank\"\u003e\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 30px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" \u003e\u003c/a\u003e\n\n[![Build Status](https://github.com/cloudsimplus/cloudsimplus-automation/actions/workflows/maven.yml/badge.svg)](https://github.com/manoelcampos/cloudsimplus-automation/actions/workflows/maven.yml) [![Maven Central](https://img.shields.io/maven-central/v/org.cloudsimplus/cloudsimplus-automation.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=cloudsimplus-automation\u0026namespace=org.cloudsimplus) [![Javadocs](https://www.javadoc.io/badge/org.cloudsimplus/cloudsimplus-automation.svg)](https://www.javadoc.io/doc/org.cloudsimplus/cloudsimplus-automation) [![GPL licensed](https://img.shields.io/badge/license-GPL-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)\n\n## 1. Introduction\n\n**CloudSim Plus Automation** is a Java 17+ command line tool based on [CloudSim Plus](https://cloudsimplus.org) \n(and some [CloudReports](https://github.com/thiagotts/CloudReports) classes) \nwhich is able to read specifications of CloudSim Plus simulation scenarios from a YAML file, \na very human-readable data format. \nSimulation scenarios can be written inside a YAML file and CloudSim Plus Automation reads these simulation scenarios, creates and runs them on CloudSim Plus.  \n\nThe tool releases researchers from writing Java code just to run simulation scenarios. \nThis way, the attention can be focused on the problem to be solved, such as the creation of new algorithms for load balancing, \nnew virtual machine scheduling policies, VM placement, resource provisioning, workload prediction, server consolidation, \nenergy efficiency, cost reduction and so on. \n\nA snippet of an YAML file used to automate the creation of CloudSim Plus simulation scenarios is presented below. \nCheck a complete example in some files such as the [CloudEnvironment1.yml](CloudEnvironment1.yml).\n\n```yml\ndatacenters:\n  - !datacenter\n    amount: 1\n    vmAllocationPolicy: Simple\n    hosts:\n      - !host\n        amount: 8\n        ram: 1000000\n        bw: 100000\n        storage: 40000\n        pes: 4\n        mips: 50000\n        vmScheduler: TimeShared\n        ramProvisioner: Simple\n        bwProvisioner: Simple\n        peProvisioner: Simple\ncustomers:\n  - !customer\n    amount: 4\n    vms:\n      - !vm\n        amount: 4\n        size: 500\n        pes: 2\n        mips: 1000\n        ram: 2000\n        bw: 1000\n        cloudletScheduler: SpaceShared\n    cloudlets:\n      - !cloudlet\n        amount: 8\n        pes: 2\n        length: 1000\n        fileSize: 50\n        outputSize: 70\n        utilizationModelCpu: Full\n        utilizationModelRam: Full\n        utilizationModelBw: Full\n      - !cloudlet\n        amount: 8\n        pes: 2\n        length: 2000\n        fileSize: 50\n        outputSize: 70\n        utilizationModelCpu: Full\n        utilizationModelRam: Full\n        utilizationModelBw: Full\n```\n\nThis work contributes to:\n\n- avoid programming on the creation of CloudSim Plus simulation environments;\n- reduce learning curve on creation of CloudSim Plus simulation scenarios;\n- facilitate and automate CloudSim Plus simulation environments creation;\n- use a human-readable file format to specify cloud simulation scenarios and speed up such a simulation process phase;\n- allow reuse, extension and sharing of simulations scenarios.\n\n## 2. Build the Project\n\nIn order to build the jar file to run the tool, you need JDK 17+ installed.\nYou can use any IDE of your choice or open a terminal at the project root directory and type one of the following commands:\n\non Linux/macOS\n\n```bash\n./mvnw clean install\n```\n\non Windows\n\n```bash\nmvnw.cmd clean install\n```\n\n## 3. Using the tool at the command line \n\nYou can simply download the [jar file from the latest release](https://github.com/cloudsimplus/cloudsimplus-automation/releases/latest) and run it in a terminal\nby issuing the following command (check the correct version number of the jar file):\n\n```bash\njava -jar cloudsimplus-automation-8.0.0-with-dependencies.jar PathToSimulationScenario.yml\n```\n\nExecute the tool without any parameter to see the usage help.\n\n## 4. Using the tool as a maven dependency into your own project\n\nYou can build your own applications on top of CloudSim Plus Automation to automate the creation cloud computing simulations.\nThis way, your applications will be able to read simulation scenarios from YAML files, build and execute them on CloudSim Plus.\nJust add CloudSim Plus Automation as a Maven dependency into your own project and start coding. \n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.cloudsimplus\u003c/groupId\u003e\n    \u003cartifactId\u003ecloudsimplus-automation\u003c/artifactId\u003e\n    \u003c!-- Set a specific version or use the latest one --\u003e\n    \u003cversion\u003eLATEST\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nYou can programmatically load a YAML file containing simulation scenarios using some code such as the example below.\nThe complete example project is available [here](example).\n\n```java\ntry {\n    //Loads a YAML file containing 1 or more simulation scenarios.\n    final var reader = new YamlCloudScenarioReader(\"PATH TO YOUR YAML FILE\");\n    //Gets the list or parsed scenarios.\n    final var yamlCloudScenariosList = reader.getScenarios();\n    //For each existing scenario, creates and runs it in CloudSim Plus, printing results.\n    for (YamlCloudScenario scenario : yamlCloudScenariosList) {\n        new CloudSimulation(scenario).run();\n    }\n} catch (FileNotFoundException | YamlException e) {\n    System.err.println(\"Error loading the simulation scenario from the YAML file: \"+e.getMessage());\n}\n```\n\n## 5. Published Paper\n\nFor more information, read the paper published on the [Springer Lecture Notes in Computer Science Volume 8662](https://doi.org/10.1007/978-3-319-11167-4_34). Realize the paper is related to an older version of the tool, which is compatible with CloudSim 3. \nThe YAML structure has changed since there too, making it simpler and matching the name of entries with CloudSim and CloudSim Plus classes (such as VmAllocationPolicy, VmScheduler, CloudletScheduler). See the last section for more information.\n\n**If you are using this work for publishing a paper, please cite our paper above.**\n\n## 6. Notice\n\nIf you are looking for the **CloudSim Automation**, \nwhich is the version compatible with [CloudSim 4](https://github.com/Cloudslab/cloudsim), \nit is available at [cloudsim-version](https://github.com/cloudsimplus/cloudsimplus-automation/tree/cloudsim-version) branch. \nHowever, that version is not supported anymore.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudsimplus%2Fcloudsimplus-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudsimplus%2Fcloudsimplus-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudsimplus%2Fcloudsimplus-automation/lists"}