{"id":25777301,"url":"https://github.com/CharafeddineMechalikh/PureEdgeSim","last_synced_at":"2026-08-13T17:30:19.660Z","repository":{"id":35788138,"uuid":"163447483","full_name":"CharafeddineMechalikh/PureEdgeSim","owner":"CharafeddineMechalikh","description":"PureEdgeSim: A simulation framework for performance evaluation of cloud, fog, and pure edge computing environments.","archived":false,"fork":false,"pushed_at":"2025-03-19T19:34:54.000Z","size":59890,"stargazers_count":212,"open_issues_count":10,"forks_count":83,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-11T19:11:14.416Z","etag":null,"topics":["algorithm","cloud-computing","cloudsim","cloudsimplus","edge","edge-computing","fog","fog-computing","heterogeneity","mist-computing","mobility","modeling","orchestration","performance-evaluation","scheduling","simulation","simulation-framework","simulation-toolkit","tasks"],"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/CharafeddineMechalikh.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-28T20:36:26.000Z","updated_at":"2026-01-09T06:27:18.000Z","dependencies_parsed_at":"2025-03-19T20:36:54.378Z","dependency_job_id":null,"html_url":"https://github.com/CharafeddineMechalikh/PureEdgeSim","commit_stats":{"total_commits":303,"total_committers":4,"mean_commits":75.75,"dds":"0.49504950495049505","last_synced_commit":"12f75f8b0f0e4c9180b96a61d5134eb394248845"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/CharafeddineMechalikh/PureEdgeSim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharafeddineMechalikh%2FPureEdgeSim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharafeddineMechalikh%2FPureEdgeSim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharafeddineMechalikh%2FPureEdgeSim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharafeddineMechalikh%2FPureEdgeSim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CharafeddineMechalikh","download_url":"https://codeload.github.com/CharafeddineMechalikh/PureEdgeSim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharafeddineMechalikh%2FPureEdgeSim/sbom","scorecard":{"id":28612,"data":{"date":"2025-08-11","repo":{"name":"github.com/CharafeddineMechalikh/PureEdgeSim","commit":"03bfc2e4241d7e6a44e46aebd3b48c81d04603a7"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.yml:1","Warn: no topLevel permission defined: .github/workflows/test.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 1/27 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: PureEdgeSim/libs/jFuzzyLogic_v3.0.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/CharafeddineMechalikh/PureEdgeSim/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/CharafeddineMechalikh/PureEdgeSim/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/CharafeddineMechalikh/PureEdgeSim/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/CharafeddineMechalikh/PureEdgeSim/test.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/CharafeddineMechalikh/PureEdgeSim/test.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/CharafeddineMechalikh/PureEdgeSim/test.yml/master?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T18:30:39.790Z","repository_id":35788138,"created_at":"2025-08-14T18:30:39.790Z","updated_at":"2025-08-14T18:30:39.790Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36616506,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-06T04:43:03.162Z","status":"online","status_checked_at":"2026-08-13T02:00:06.325Z","response_time":111,"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":["algorithm","cloud-computing","cloudsim","cloudsimplus","edge","edge-computing","fog","fog-computing","heterogeneity","mist-computing","mobility","modeling","orchestration","performance-evaluation","scheduling","simulation","simulation-framework","simulation-toolkit","tasks"],"created_at":"2025-02-27T06:01:40.402Z","updated_at":"2026-08-13T17:30:19.654Z","avatar_url":"https://github.com/CharafeddineMechalikh.png","language":"Java","funding_links":[],"categories":["云计算","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196671093-21ba3438-719d-4dd4-ad79-bfddd1395663.png\" align=\"right\" /\u003e\n\n# PureEdgeSim\n\nPureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Build Status](https://app.travis-ci.com/CharafeddineMechalikh/PureEdgeSim.svg?token=qNkfvhf2yHSENsapmmtY\u0026branch=master)](https://app.travis-ci.com/CharafeddineMechalikh/PureEdgeSim) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/7bcee5c75c3741b5923e0158c6e79b37)](https://www.codacy.com/gh/CharafeddineMechalikh/PureEdgeSim/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=CharafeddineMechalikh/PureEdgeSim\u0026amp;utm_campaign=Badge_Grade) [![Maven Central](https://img.shields.io/maven-central/v/com.mechalikh/pureedgesim.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.mechalikh%22%20AND%20a:%22pureedgesim%22) [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/7bcee5c75c3741b5923e0158c6e79b37)](https://www.codacy.com/gh/CharafeddineMechalikh/PureEdgeSim/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=CharafeddineMechalikh/PureEdgeSim\u0026utm_campaign=Badge_Coverage)\n\n![image](https://user-images.githubusercontent.com/46229052/196698541-569de31b-0df8-470b-907c-02ba5eb5015f.png)\n\n## Please Cite It As (Kindly do not use the github link):\n\nMechalikh, C., Taktak, H., \u0026 Moussa, F. (2021). PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments. Computer Science and Information Systems, 18(1), 43-66.\n\nMechalikh, C., Safavifar, Z., \u0026 Golpayegani, F. (2025). Quality matters: A comprehensive comparative study of edge computing simulators. Simulation Modelling Practice and Theory, 138, 103042.\n\nBibtex:\n\n```js\n@article{mechalikh2021pureedgesim,\n  title={PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments},\n  author={Mechalikh, Charafeddine and Taktak, Hajer and Moussa, Faouzi},\n  journal={Computer Science and Information Systems},\n  volume={18}\n  number={1},\n  pages={43--66},\n  year={2021}\n}\n\n\n\n@article{mechalikh2025quality,\n  title={Quality matters: A comprehensive comparative study of edge computing simulators},\n  author={Mechalikh, Charafeddine and Safavifar, Zahra and Golpayegani, Fatemeh and others},\n  journal={Simulation Modelling Practice and Theory},\n  volume={138},\n  pages={103042},\n  year={2025},\n  publisher={Elsevier}\n}\n```\n\n## Version 5.1 Changelog (October 18th 2022)\n\n\u003cdetails\u003e\n\u003csummary\u003e\"Click to expand\"\u003c/summary\u003e\n\n*   Updated the energy model with the ability to set an initial battery level for generated devices, either programmatically or via the xml file. \n\n*   Now users can extend the simulation manager to change its behavior, and easily integrate it in the simulation.\n\n*   Users can now easily integrate a custom task class.\n\n*   All entities are now notified at the end of the simulation through onSimulationEnd() method.\n\n*   Failure Model: now tasks can fail due to insufficient resources: RAM, STORAGE, CPU Cores.\n\n*   Disabled some unnecessary network links events/loops for better performance.\n\n*   Now tasks can be scheduled in batches instead of being scheduled all at once at the beginning of the simulation (hence, decreasing the number of events and therefore, faster simulations and less memory usage).\n\n*   Removed unnecessary loops when orchestrating tasks (e.g., no need to browse through edge devices when the cloud only architecture is used, etc.) \n\n*   Overall version 5.1 can be 30 times faster and supports up to 8 times the number of tasks compared to previous version 5.0 (see figure below).\n\n*   Improved extensibility: Users can now easily incorporate a custom task class, custom simulation manager, as well as a custom topology creator.\n\n*   Now applications placement decisions are done after each failure (default behavior, can be changed by extending the DefaultSimulationManager and DefaultOrchestrator classes).\n\n*   Reduced duplication and improved code quality.\n\n*   Other fixes..\n\n\u003cp align=\"center\"\u003e\n  \u003cimg  width=\"500\" src=\"https://user-images.githubusercontent.com/46229052/196478109-29442658-19c1-498e-9c0e-593780e12f44.png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eA comparison of simulation duration between the previous version 5.0 and the latest version 5.1\u003c/p\u003e\n\n\u003c/details\u003e\n\n\u003cbr\u003e\u003c/br\u003e\n![image](https://user-images.githubusercontent.com/46229052/196704278-4d04778b-1a9e-46da-9ae2-18e6a7a1bae5.png)\n\u003ca id=\"overview\"\u003e\u003c/a\u003e\n\n\u003cimg width=\"20%\" src=\"https://user-images.githubusercontent.com/46229052/196671599-c2c33b14-be0b-4f7a-92b2-533978afb029.png\" align=\"right\" /\u003e\n\u003cp align=\"justify\"\u003e\nPureEdgeSim is a simulation framework that enables to study Internet of Things on a large scale, as a \ndistributed, dynamic, and highly heterogeneous infrastructure, as well as the applications \nthat run on these things. It features realistic infrastructure models, allowing research on the edge-to-cloud continuum to be conducted. It\nencompasses all layers of edge computing modeling and simulation.\nIt features a modular design in which each module addresses a particular aspect of the \nsimulation. The Datacenters Manager module, for example, is concerned with the creation \nof data centers, servers, as well as end devices and their heterogeneity. Their geo-distribution \nand mobility, however, are handled by the Location Manager module. Similarly, the \nNetwork Module is in charge of bandwidth allocation and data transfer. \u003c/p\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\u003cimg  width=\"300\" src=\"https://user-images.githubusercontent.com/46229052/196689838-65b94184-845f-4f3a-b749-a9833e595580.png\" align=\"left\"\u003e\n\u003cp align=\"justify\"\u003e\nPureEdgeSim brings together analytical and numerical modeling techniques. The \nnetwork, for example, is modeled by means of adjustable mathematical equations rather than \nat a low level. Such abstraction facilitates simulating thousands of edge devices and \nguarantees the evaluation of the simulation state at any moment. Finally, since PureEdgeSim \nis a discrete event simulator, the characteristics of the simulated environment, like network \ntraffic and resources’ utilization, will evolve over time, thereby enabling support for online \ndecision-making algorithms, a process that can be accomplished through the Workload \nOrchestrator module.\u003c/p\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\u003cp align=\"justify\"\u003e\nEach module provides a default implementation along with a set of adjustable settings to \nfacilitate prototyping and experimentation. Thus, researchers can effortlessly implement \ntheir approaches without having to waste time specifying low-level details. Another key \nfeature of PureEdgeSim is its extensibility, as it allows users to create and incorporate their \nown models without altering its codebase when the default models fail to satisfy their needs.\nIn discrete event simulators, the temporal complexity of the simulation is dependent on the \nnumber of events produced at runtime. To reduce simulation duration, PureEdgeSim allows \nfor balancing the precision of the simulation and its duration thanks to a set of dedicated \nparameters. How precise the simulation will rely on the user’s settings, particularly the \nupdate intervals. Thus, the simulation will be more precise and realistic the shorter these \nintervals are, but it will also last longer. You can read more in the \u003ca href=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/wiki\"\u003eWiKi\u003c/a\u003e\u003c/p\u003e.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg  width=\"500\" src=\"https://user-images.githubusercontent.com/46229052/196690369-54350b0f-5382-427a-8f12-c582f3f7f2b7.png\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eA simple representation of the simulation scenarios\u003c/p\u003e\n\n\u003cbr\u003e\u003c/br\u003e\n![image](https://user-images.githubusercontent.com/46229052/196704803-9a9f53b2-8255-4042-9c16-6c8470489791.png)\n\u003ca id=\"important\"\u003e\u003c/a\u003e\n\n\u003e* \u003cp align=\"justify\"\u003eThe development and maintenance of this project requires a considerable effort. Thus, any form of contribution is encouraged. \u003c/p\u003e\n\u003e* \u003cp align=\"justify\"\u003eIf you are willing to use the framework to implement your own project on top of it, creating a fork is a bad solution. You are not supposed to modify the code base to implement your project, but extend it by creating some subclasses. Unless you plan to redistribute your changes, you will end up with an incompatible and obsolete version of the framework. The project is constantly evolving and bug fixes are a priority. Your fork with personal changes will miss these updates and high performance improvements.\u003c/p\u003e\n\u003e* \u003cp align=\"justify\"\u003eIf you just came across this project and want to check it out later, don't forget to add a star :star: :wink:.\u003c/p\u003e\n\n\n\u003cbr\u003e\u003c/br\u003e\n![image](https://user-images.githubusercontent.com/46229052/196704930-a1ef92c7-b62e-42a2-8e82-b6ba8b949070.png)\n\u003ca id=\"exclusive-features\"\u003e\u003c/a\u003e\n\n\u003cp align=\"justify\"\u003e\nPureEdgeSim offers many exclusive features: \n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196670148-8f647e7f-ffe2-49ea-865b-2c37ca044cb2.png\" align=\"right\" /\u003e\n\n- Realistic modeling of edge computing scenarios (and its related computing paradigms).\n  - It supports devices heterogeneity (sensors, mobile devices, battery-powered..).\n  - It supports the heterogeneity of their means of communication (WiFi, 5G, 4G, Ethernet..).\n  - Realistic modeling of computing infrastructure (modeling computational tasks, infrastructure topology...).\n  - Realistic network model (Latency, bandwidth allocation, support for peer to peer communications, routing..).\n  - Realistic mobility model.\n  - Realistic energy model.\n- The support for online decision making (tasks orchestration, scheduling, etc.).\n- The study of QoS-aware architectures and topologies.\n- Efficiency and Scalability.\n  - PureEdgeSim supports the simulation of thousands of devices (even +30000 devices).\n  - PureEdgeSim supports scenarios with longer simualtion time (even +24 hours).\n- A wide collection of metrics\n  - Delays: execution time, waiting time, network time.\n  - CPU utilization.\n  - Network utilization: Average bandwidth, total traffic...\n  - Energy consumption: The energy consumption of computing nodes (Cloud, edge/fog servers,edge devices), the remaining energy of battery-powered devices, the energy consumption of WAN, MAN, and LAN networks, and the enrgy consumption of WiFi, Cellular (5G, 4G,..) and Ethernet.\n  - Task success rate and reason of failure (the rate of tasks failed due to the lack of resources, due to mobility, due to latency, or due to the death of edge devices when they run out of battery).\n  - and many others.\n- The visualization of the simulation environement (which helps to debug and understand the course of the simualtion, refer to the figure below).\n- Extensibility: Users can implement their scenarios and integrate their models without modifying PureEdgeSim codebase.\n- Versatiliy and Wide Applicability\n- Ease of use.\n- Reliability.\n- Correctness.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg  width=\"500\" src=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/blob/master/PureEdgeSim/files/real%20time.gif\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eThe live visualization of the simulated environement\u003c/p\u003e\n\n### Efficiency and Scalability \n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196665651-e27976b0-8908-4a75-ac54-dc838c7abf52.png\" align=\"right\" /\u003e\n\n\n\u003cp align=\"justify\"\u003e\nA system is said to be efficient when it can maintain a specified level of proficiency without utilizing an excessive amount of resources, i.e., execution time and memory. Determining the theoretical time complexity of the given simulation is not trivial because the execution time depends entirely on the user scenario (i.e., the devices and tasks count, the mobility model, the types of resources, etc.) and the number of events that occur during the simulation. Furthermore, some parameters strongly influence the number of simulations and, obviously, the number of runs also directly influences the execution time.\nTo demonstrate the scalability of PureEdgeSim, a few experiments were conducted on a single Intel Core i7-8550U.\n\u003c/p\u003e\n\u003cbr clear=\"left\"/\u003e\n\n\u003e  A 10-minute simulation scenario with 10000 devices (which generated 1131000 tasks) took 58 seconds. \n\u003e\n\u003e  A 24-hour simulation scenario with 200 devices (total of 3221280 generated tasks generated) took 51 seconds. \n\u003e\n\u003e  A 60-minute scenario with 100 devices took only 1 seconds.\n\n\u003cp align=\"justify\"\u003e\nOf course, this time is highly dependent on the complexity of the decision making algorithm itself and the number of generated events  (as more devices = more tasks = more events), which is why it took longer with 10,000 devices. That said, it is still faster than real-time and outperforms all CloudSim/ CloudSim plus based simulators that either struggle to start due to the large number of devices or run out of memory due to the large number of events generated.\u003c/p\u003e\n\u003cp align=\"justify\"\u003e\nIt is therefore easy to conclude that PureEdgeSim meets the “efficiency and scalability” criteria as it allows for simulated experiments involving hundreds if not thousands of devices and tasks and runs considerably faster than in wall-clock time. An important step to reduce the simulation duration and solve its dependency on the number of runs is to implement multi-threading to execute simulation runs in parallel, which is already supported by PureEdgeSim.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n![image](https://user-images.githubusercontent.com/46229052/196690925-1088b91a-f576-42d4-86ca-0c34f4be7d40.png#gh-dark-mode-only)\n\n![image](https://user-images.githubusercontent.com/46229052/196690607-821202ec-f8af-476c-9b2c-281525114d04.png#gh-light-mode-only)\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003ePureEdgeSim support for large-scale scenarios\u003c/p\u003e\n\n### Simulation Accuracy\n\n\u003cp align=\"justify\"\u003e\nAs mentioned previously, PureEdgeSim offers the most realistic network, energy, and mobility models as compared to existing solutions. However, since it is a DES, the time complexity of the simulation is dependent on the number of events generated at runtime. To decrease simulation time, PureEdgeSim provides fast and complete control over the simulation environment by its collection of parameters, allowing users to compromise between simulation precision and length. Hence, how accurate the simulation is will be influenced by the user’s settings, particularly the update intervals. The shorter these intervals, the more precise and realistic the simulation, but also the longer it takes. \n\u003c/p\u003e\n\n### Versatiliy and Wide Applicability\n\n\u003cp align=\"justify\"\u003e\nIf we classify edge computing and its related paradigms based on their placement in the IoT architecture, we will have three categories, each with specific properties. For example, paradigms of the perception layer like mist computing rely on resource-constrained devices, that can join or leave the network at any moment.\n\u003c/p\u003e\n\n![image](https://user-images.githubusercontent.com/46229052/196697530-fa0e8316-6f6e-4d0c-9024-6c8386a24324.png#gh-light-mode-only)\n![image](https://user-images.githubusercontent.com/46229052/196697387-e12d8836-e4bc-44d6-b629-742534d1a4ac.png#gh-dark-mode-only)\n\n\u003cp align=\"center\"\u003eThe computing paradigms supported by PureEdgeSim\u003c/p\u003e\n\n\u003cp align=\"justify\"\u003e\nAccordingly, the model must be versatile enough to support all kinds of resources and topologies. For this, PureEdgeSim dedicates a configuration file for each layer. The computing nodes, be they mobile devices, servers, or data centers, are all defined in these files. For instance,  this figure shows how a smartphone is modeled. As you can see, a set of attributes is also provided to specify the remaining characteristics, such as power consumption rates and mobility.\n\u003c/\u003e\n\n```xml\n\u003c?xml version=\"1.0\"?\u003e\n\u003cedge_devices\u003e\n\t\u003cdevice\u003e \u003c!-- this is a smartphone, for example --\u003e\n\t\t\u003cmobility\u003etrue\u003c/mobility\u003e\u003c!-- the device is mobile or fixed --\u003e \n\t\t\u003cconnectivity\u003e4g\u003c/connectivity\u003e\u003c!--the connectivity type 4g, ethernet, Wi-Fi--\u003e\n\t\t\u003cspeed\u003e1.4\u003c/speed\u003e\u003c!-- the speed of the device in meters per second : 1.4m/s = 5km/h, 0 = non mobile--\u003e\n\t\t\u003cminPauseDuration\u003e100\u003c/minPauseDuration\u003e\u003c!-- the minimum delay before moving to a new location--\u003e\n\t\t\u003cmaxPauseDuration\u003e400\u003c/maxPauseDuration\u003e\u003c!-- the maximum delay before moving to a new location--\u003e\n\t\t\u003cminMobilityDuration\u003e60\u003c/minMobilityDuration\u003e\u003c!-- the minimum delay before stopping--\u003e\n\t\t\u003cmaxMobilityDuration\u003e100\u003c/maxMobilityDuration\u003e\u003c!-- the maximum delay before stopping--\u003e\n\t\t\u003cbattery\u003etrue\u003c/battery\u003e \u003c!-- relies on battery? --\u003e\n\t\t\u003cpercentage\u003e30\u003c/percentage\u003e \u003c!-- percentage of this device type --\u003e\n\t\t\u003cbatteryCapacity\u003e18.75\u003c/batteryCapacity\u003e \u003c!-- battery capacity in Watt-Hour --\u003e\n\t\t\u003cidleConsumption\u003e0.078\u003c/idleConsumption\u003e\u003c!-- idle energy consumption/ \n\t\t\tsecond--\u003e\n\t\t\u003cmaxConsumption\u003e3.3\u003c/maxConsumption\u003e\u003c!-- max energy consumption/second, \n\t\t\twhen device cpu is use at 100%--\u003e\n\t\t\u003cisOrchestrator\u003efalse\u003c/isOrchestrator\u003e \u003c!-- whether it orchestrates tasks or not --\u003e\n\t\t\u003ccanGenerateTasks\u003etrue\u003c/canGenerateTasks\u003e \u003c!-- whether it generates data/tasks or not --\u003e\n\t\t\u003ccanProcessTasks\u003etrue\u003c/canProcessTasks\u003e \u003c!-- whether it can process data/tasks or not --\u003e\n\t\t\u003chosts\u003e\n\t\t\t\u003chost\u003e\n\t\t\t\t\u003ccore\u003e8\u003c/core\u003e \u003c!-- Number of CPU cores --\u003e\n\t\t\t\t\u003cmips\u003e25000\u003c/mips\u003e \u003c!-- Processing power in MIPS --\u003e\n\t\t\t\t\u003cram\u003e4096\u003c/ram\u003e \u003c!-- Ram capacity in MBytes --\u003e\n\t\t\t\t\u003cstorage\u003e128000\u003c/storage\u003e \u003c!-- Storage in MBytes --\u003e\n\t\t\t\t\u003cVMs\n\t\t\t\t\t\u003cVM\u003e\n\t\t\t\t\t\t\u003ccore\u003e8\u003c/core\u003e\n\t\t\t\t\t\t\u003cmips\u003e25000\u003c/mips\u003e\n\t\t\t\t\t\t\u003cram\u003e4096\u003c/ram\u003e\n\t\t\t\t\t\t\u003cstorage\u003e128000\u003c/storage\u003e \n\t\t\t\t\t\u003c/VM\u003e\n\t\t\t\t\u003c/VMs\u003e\n\t\t\t\u003c/host\u003e\n\t\t\u003c/hosts\u003e\n\t\u003c/device\u003e\n...\n\u003c/edge_devices\u003e\n```\n\n\u003cp align=\"center\"\u003eHow a smartphone can be modeled in PureEdgeSim\u003c/p\u003e\n\n### Ease of Use \n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196668625-54203eac-5472-4c0e-ade2-39bc1e6e5d21.png\" align=\"right\" /\u003e\n\n\u003cp align=\"justify\"\u003eSimulators can be used to determine which factors have the greatest impact on performance, by evaluating different configurations, for example, the number of generated entities, the types of resources, the network settings, etc. Dealing with all these parameters programmatically can be challenging. Software is said to be usable if it can be easily comprehended and run by any user. While the usability of PureEdgeSim may be limited by the fact that a lot of \u003ca href=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/wiki\"\u003especific foundational knowledge\u003c/a\u003e is required, from a technical standpoint, it is implemented as a simple application, with only a \u003ca href=\"#how-to-use\"\u003efew steps to follow to run the simulation\u003c/a\u003e.The provided Javadoc documentation and \u003ca href=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/tree/master/PureEdgeSim/examples\"\u003esimulation examples\u003c/a\u003e offer proper guidance to the user, and the console directly informs the user of any type of incorrect input. To save time and effort, each module comes with a default implementation (e.g., the Default Mobility Model, the Default Computing Node class, etc.). These off-the-shelf models also provide a highly customizable environment with a multitude of settings, so users can adjust their behavior without changing their original code. These parameters are preset, which also decreases the complexity of the tool.\u003c/p\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\n### Extensibility\n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196666860-fc166c82-21f8-48e3-80a6-342d4c3ae11b.png\" align=\"right\" /\u003e\n\n\u003cp align=\"justify\"\u003e\nAnother key feature of PureEdgeSim is its high extensibility. It provides code reusability and ensures adherence to software engineering guidelines and principles for improvements, accuracy, and extensibility. Although it uses its pre-built models by default, users can still create and incorporate their customized ones into their simulation scenarios if any of these default implementations do not meet their needs, all while not changing the PureEdgeSim code base. An example is provided below to show how custom models can be effortlessly integrated to the simulation.\n\u003c/p\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\n```js\n//Create a PureEdgeSim simulation\nSimulation sim = new Simulation();\n\n// To use your custom mobility model instead of the default one:\nsim.setCustomMobilityModel(YourCustomMobilityModel.class);\n\n// To change the tasks orchestrator:\nsim.setCustomEdgeOrchestrator(YourCustomOrchestrator.class);\n\t\t\n// To change the computing node class:\nsim.setCustomComputingNode(YourCustomComputingNode.class);\n\t\t\n// To change the tasks generator:\nsim.setCustomTaskGenerator(YourCustomTaskGenerator.class); \n\t\t\n// To change the network model\nsim.setCustomNetworkModel(YourCustomNetworkModel.class); \n\t\t\n// To change the simulation manager\nsim.setCustomSimulationManager(YourCustomSimulationManager.class); \n\n// To change the topology\nsim.setCustomTopologyCreator(YourCustomTopologyCreator.class); \n\t\t\n/* to use the default models you can simply delete or comment those lines */\n\n// Finally, you can launch the simulation\nsim.launchSimulation();\n```\n\n### Correctness\n\n\u003cp align=\"justify\"\u003e\nThe tool is said to be correct if it fully complies with the stated requirements, which can be verified by checking test cases. To verify PureEdgeSim’s correctness through unit and integration testing, several test cases have been implemented. Nevertheless, this alone does not provide an assessment of which portions of the code were tested and which were not, neither gives a percentage of the overall coverage of tests alongside the project source code. To evaluate the amount of code that the available unit tests cover, code coverage reports were added to the project with the help of the Java Code Coverage Library (JaCoCo). \nIt is important to clarify that the concern of such test cases is the technical feasibility of the scenarios and not the evaluation of the simulation outcome. It is simply a matter of testing whether the given results are logically reasonable and not of actually validating them. To validate the software, a case study was conducted using the simulator. \u003ca href=\"https://app.codacy.com/gh/CharafeddineMechalikh/PureEdgeSim/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=CharafeddineMechalikh/PureEdgeSim\u0026utm_campaign=Badge_Coverage\"\u003eAt least 90% of PureEdgeSim code is covered by those tests\u003c/a\u003e. This achievement was made possible by testing all the new features and also by the considerable decrease in code duplication since duplicating code brings neglect of testing. \u003c/p\u003e\n\n\u003cp align=\"justify\"\u003e\nIn conclusion, we can say that the proposed simulator performs as intended. Every function has finished without abortions and gave the expected output; All the input files were parsed successfully, and all the personalized models were integrated and verified with the predicted results. The plotting of the simulation results gave a reasonable graphical output. In terms of intended errors, such as incorrect inputs, proper error messages were displayed, and correct information was written into the log file. Moreover, the parameters can be modified, stored, and loaded without any error.\n\u003c/p\u003e\n\n### Reliability \n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196667682-5c506d9f-0b00-455b-b9d1-196f93d7ba76.png\" align=\"right\" /\u003e\n\n\u003cp align=\"justify\"\u003e\nReliability is the ability of a system to operate consistently under specified conditions while meeting all requirements. When it comes to the components of PureEdgeSim, reliability is ensured by extensive exception handling that catches any error occurring at runtime. Consequently, the errors will not cause the execution to stop (unless they are related to critical parameters without which the simulation cannot continue). While testing it, the proposed simulator never froze and satisfied all functional requirements. Furthermore, data reliability is high since the models are read-only and unmodifiable, meaning no data loss is to be feared. The only files that can be modified are the output files and the configuration files, which can be restored easily to the default values. In addition, PureEdgeSim uses two continuous integration services: Travis  and AppVeyor, that automate tests and builds execution on Linux and Windows virtual machines, respectively. PureEdgeSim’s users will benefit from such services as any test or build failure will be communicated promptly, thus, ensuring greater reliability. \n\u003c/p\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\n\u003cbr\u003e\u003c/br\u003e\n![image](https://user-images.githubusercontent.com/46229052/196705113-434c90dc-3c38-40cd-af52-d5ed43774e19.png)\n\u003ca id=\"how-to-use\"\u003e\u003c/a\u003e\n\n\u003cp align=\"justify\"\u003e\nThere are several ways to use PureEdgeSim; however, it is strongly advisable to run PureEdgeSim via a Java development environment, like Eclipse IDE. A set of predefined examples is provided under the \u003ca href=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/tree/master/PureEdgeSim/examples\"\u003e“/examples“\u003c/a\u003e directory, which should allow anyone to become familiar with PureEdgeSim.\n\u003c/p\u003e\n\n### Using an IDE\n\n\u003cp align=\"justify\"\u003e\nThe simplest and recommended method to run this project is to use an IDE like Eclipse, IntelliJ IDEA, or NetBeans. The required steps to get started with the project are listed below:\n\u003c/p\u003e\n\n\u003cbr clear=\"left\"/\u003e\n\n1. Downloading and extracting the project source code archive from the project repository : This can be done using the web browser or the command line `git clone https://github.com/CharafeddineMechalikh/PureEdgeSim.git`.\n2. \u003cp align=\"justify\"\u003eImporting the project to the IDE:\u003c/P\u003e\n  - \u003cp align=\"justify\"\u003eIn NetBeans, simply select the \"Open project\" option and chose the project directory.\u003c/P\u003e\n  - \u003cp align=\"justify\"\u003eIn Eclipse or IntelliJ IDEA, the project must be imported by selecting the location where it was extracted or cloned.\u003c/p\u003e\n3. \u003cp align=\"justify\"\u003eThe imported project consists of ten packages: the main application package, the above-mentioned modules, and the examples package. The main application and the modules are the simulator source code that normally should not be modified. The examples, however, are where the users can start.\u003c/p\u003e\n4. \u003cp align=\"justify\"\u003eIt is necessary to convert the project into a Maven project in order to download all the required libraries.\u003c/p\u003e\n5. \u003cp align=\"justify\"\u003eOnce all the necessary libraries are downloaded, users can start with the most basic examples by running any of the classes located in the \u003ca href=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/tree/master/PureEdgeSim/examples\"\u003e“examples“\u003c/a\u003e package.\u003c/p\u003e\n6. \u003cp align=\"justify\"\u003eTo build a new simulation scenario, the simplest way is to create another class in this package.\u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg  width=\"500\" src=\"https://github.com/CharafeddineMechalikh/PureEdgeSim/blob/master/PureEdgeSim/files/importingproject.gif\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eImporting PureEdgeSim project (click to zoom)\u003c/p\u003e\n\n### Adding PureEdgeSim as a Dependency\n\nIt is possible to use PureEdgeSim as a dependency in a Maven project, by inserting the dependency  below into the pom.xml file:\n```xml\n\u003cdependency\u003e\n\t\u003cgroupId\u003ecom.mechalikh\u003c/groupId\u003e\n\t\u003cartifactId\u003epureedgesim\u003c/artifactId\u003e\n\t\u003cversion\u003e5.1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\nOr on Gradle :\n\n```groovy\ndependencies {\n implementation 'com.mechalikh:pureedgesim:5.1.0'\n}\n````\n\n### Via Command Line\n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196673345-3f36346b-af6a-4925-b1af-613017521508.png\" align=\"right\" /\u003e\n\nAssuming that git  and maven  are already installed, PureEdgeSim can be run from the command line as follows:\n1. First, the project source code must be downloaded by cloning the repository via the command `git clone https://github.com/CharafeddineMechalikh/PureEdgeSim.git`.\n2. Now that the project is cloned, it can be built using Maven by executing the  `mvn clean install ` command in the directory where it was cloned.\n3. Now, the examples can be executed on Windows, Linux, or Mac operating systems, using the command  `mvn exec:java -Dexec.mainClass=\"package.Class_Name\" `. For instance, to execute “Example1”, the command is  `mvn exec:java -Dexec.mainClass=\"examples.Example1\" `\n\n\n\u003cbr\u003e\u003c/br\u003e\n![image](https://user-images.githubusercontent.com/46229052/196705277-26862b5e-5e17-4e22-b973-d1628368b598.png)\n\u003ca id=\"related-work\"\u003e\u003c/a\u003e\n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196673852-b25feb52-2f7e-4486-b10d-b7c3cd79cead.png\" align=\"right\" /\u003e\n\u003cp align=\"justify\"\u003e\nHere are some works that are based on PureEdgeSim to give an idea about its wider applicability and the possibilities it offers. Feel free to edit the readme file and add yours!\n\u003c/p\u003e\n\n### Rienforcement and Deep Learning Scenarios\n\n1.    \u003cp align=\"justify\"\u003eMechalikh, C., Taktak, H., \u0026 Moussa, F. (2020, April). A fuzzy decision tree based tasks orchestration algorithm for edge computing environments. In International Conference on Advanced Information Networking and Applications (pp. 193-203). Springer, Cham. \u003ca href=\"https://github.com/CharafeddineMechalikh/FDT_based_workload_orchestration\"\u003eThe algorithm can be found here\u003c/a\u003e.\u003c/p\u003e\n2.    \u003cp align=\"justify\"\u003eSafavifar, Z., Ghanadbashi, S., \u0026 Golpayegani, F. (2021, November). Adaptive Workload Orchestration in Pure Edge Computing: A Reinforcement-Learning Model. In 2021 IEEE 33rd International Conference on Tools with Artificial Intelligence (ICTAI) (pp. 856-860). IEEE.\u003c/p\u003e\n3.    \u003cp align=\"justify\"\u003eNeelakantam, G., Onthoni, D. D., \u0026 Sahoo, P. K. (2020). Reinforcement learning based passengers assistance system for crowded public transportation in fog enabled smart city. Electronics, 9(9), 1501.\u003c/p\u003e\n4.    \u003cp align=\"justify\"\u003eIftikhar, S., Golec, M., Chowdhury, D., Gill, S. S., \u0026 Uhlig, S. (2022). FogDLearner: A Deep Learning-based Cardiac Health Diagnosis Framework using Fog Computing. In Australasian Computer Science Week 2022 (pp. 136-144).\u003c/p\u003e\n\n### Satellite Edge Computing\n\n5.    \u003cp align=\"justify\"\u003eWei, J., Cao, S., Pan, S., Han, J., Yan, L., \u0026 Zhang, L. (2020, June). SatEdgeSim: A toolkit for modeling and simulation of performance evaluation in satellite edge computing environments. In 2020 12th International Conference on Communication Software and Networks (ICCSN) (pp. 307-313). IEEE.\u003c/p\u003e\n6.    \u003cp align=\"justify\"\u003eQin, J., Guo, X., Ma, X., Li, X., \u0026 Yang, J. (2022). Application and Performance Evaluation of Resource Pool Architecture in Satellite Edge Computing. Aerospace, 9(8), 451.\u003c/p\u003e\n\n### Data Caching\n\n7.    \u003cp align=\"justify\"\u003eMechalikh, C., Taktak, H., \u0026 Moussa, F. (2019, July). Towards a scalable and QoS-aware load balancing platform for edge computing environments. In 2019 International Conference on High Performance Computing \u0026 Simulation (HPCS) (pp. 684-691). IEEE.\u003c/p\u003e\n8.    \u003cp align=\"justify\"\u003eEpifâneo, L., Correia, C., \u0026 Rodrigues, L. (2021, November). Cathode: A Consistency-Aware Data Placement Algorithm for the Edge. In 2021 IEEE 20th International Symposium on Network Computing and Applications (NCA) (pp. 1-10). IEEE.\u003c/p\u003e\n\n### Task Scheduling and Security\n\n9.    Tiburski, R. T. (2021). Task scheduling and security for edge devices in internet of things applications.\n\n### Self-Organized Architectures\n\n10.    \u003cp align=\"justify\"\u003eMechalikh, C., Taktak, H., \u0026 Moussa, F. (2019, June). A scalable and adaptive tasks orchestration platform for IoT. In 2019 15th International Wireless Communications \u0026 Mobile Computing Conference (IWCMC) (pp. 1557-1563). IEEE.\u003c/p\u003e\n11.    \u003cp align=\"justify\"\u003eMordacchini, M., Ferrucci, L., Carlini, E., Kavalionak, H., Coppola, M., \u0026 Dazzi, P. (2021, September). Self-organizing Energy-Minimization Placement of QoE-Constrained Services at the Edge. In International Conference on the Economics of Grids, Clouds, Systems, and Services (pp. 133-142). Springer, Cham.\u003c/p\u003e\n\n### Software-Defined Networking\n\n12.    \u003cp align=\"justify\"\u003eOkwuibe, J., Haavisto, J., Kovacevic, I., Harjula, E., Ahmad, I., Islam, J., \u0026 Ylianttila, M. (2021). SDN-Enabled Resource Orchestration for Industrial IoT in Collaborative Edge-Cloud Networks. IEEE Access, 9, 115839-115854.\u003c/p\u003e\n\n### Latency-Aware Application Placement\n\n13.    \u003cp align=\"justify\"\u003eKhosroabadi, F., Fotouhi-Ghazvini, F., \u0026 Fotouhi, H. (2021). SCATTER: service placement in real-time fog-assisted IoT networks. Journal of Sensor and Actuator Networks, 10(2), 26.\u003c/p\u003e\n14.    \u003cp align=\"justify\"\u003eFerrucci, L., Mordacchini, M., Coppola, M., Carlini, E., Kavalionak, H., \u0026 Dazzi, P. (2020, June). Latency preserving self-optimizing placement at the edge. In Proceedings of the 1st Workshop on Flexible Resource and Application Management on the Edge (pp. 3-8).\u003c/p\u003e\n\n### Energy-Aware Application Placement\n\n15.    \u003cp align=\"justify\"\u003eKavalionak, H., Coppola, M., \u0026 Dazzi, P. Self-organizing Energy-Minimization Placement of QoE-Constrained Services at the Edge. In Economics of Grids, Clouds, Systems, and Services: 18th International Conference, GECON 2021, Virtual Event, September 21–23, 2021, Proceedings (p. 133). Springer Nature.\u003c/p\u003e\n16.    \u003cp align=\"justify\"\u003eMordacchini, M., Ferrucci, L., Carlini, E., Kavalionak, H., Coppola, M., \u0026 Dazzi, P. (2022). Energy and QoE aware Placement of Applications and Data at the Edge.\u003c/p\u003e\n\n### Other Use Cases\n\n17.    \u003cp align=\"justify\"\u003eKaneko, Y., Yokoyama, Y., Monma, N., Terashima, Y., Teramoto, K., Kishimoto, T., \u0026 Saito, T. (2020, September). A Microservice-Based Industrial Control System Architecture Using Cloud and MEC. In International Conference on Edge Computing (pp. 18-32). Springer, Cham.\u003c/p\u003e\n18.    \u003cp align=\"justify\"\u003eJavaid, H., Saleem, S., Wajid, B., \u0026 Khan, U. G. (2021, May). Diagnose a Disease: A Fog Assisted Disease Diagnosis Framework with Bidirectional LSTM. In 2021 International Conference on Digital Futures and Transformative Technologies (ICoDT2) (pp. 1-6). IEEE.\u003c/p\u003e\n\n\u003cbr\u003e\u003c/br\u003e\n![image](https://user-images.githubusercontent.com/46229052/196705340-8324e7b4-6b71-40e5-86b9-6cc148a17bc1.png)\n\u003ca id=\"license\"\u003e\u003c/a\u003e\n\nThis project is licensed under [GNU GPLv3](http://www.gnu.org/licenses/gpl-3.0).\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e:arrow_up:\u003c/a\u003e\u003c/p\u003e\n\n\u003cimg width= \"20%\" src=\"https://user-images.githubusercontent.com/46229052/196670788-1b7ff2fc-4958-4645-8254-0ea516e035bc.png\" align=\"left\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCharafeddineMechalikh%2FPureEdgeSim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCharafeddineMechalikh%2FPureEdgeSim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCharafeddineMechalikh%2FPureEdgeSim/lists"}