https://jjcit.org/paper/91 WEAVESIM: A SCALABLE AND REUSABLE CLOUD SIMULATION FRAMEWORK LEVERAGING ASPECT-ORIENTED PROGRAMMING 10.5455/jjcit.71-1579451674 Anas M. R. AlSobeh,Sawsan AlShattnawi,Amin Jarrah,Mahmoud M. Hammad Model-based aspect-oriented programming,Cloud simulation,CloudSim,Dynamic modeling,Cloud architecture 7 3713 1143 10-Feb-2020 16-Mar-2020 4-Apr-2020 Cloud computing service-oriented simulation frameworks are very important tools for modeling and simulating the dynamic behavior of cloud-based software systems. However, the existing service-oriented simulation frameworks lack the ability to measure and control the rapidly changing (adaptive) requirements that span over many modules in cloud-based software systems, such as security, logging, monitoring, …etc. To address these limitations, this paper presents an efficient framework for reducing the complexity of modeling and simulating the custom and dynamic behavior of cloud-based applications, called WeaveSim. WeaveSim utilizes the aspect-oriented programming (AOP) to encapsulate the complexity of developing the dynamic behavior of cloud-based applications by adding another abstract layer called Context-Aware Aspect Layer (CAAL). CAAL reduces the complexity of using CloudSim to simulate cloud-based software systems. Examples of cross-cutting concerns are data encryption, logging and monitoring. Since implementing a cross-cutting concern on a cloud-based simulator, such as CloudSim, requires modifications, from developers, to many core modules of that simulator. However, using WeaveSim, implementing cross-cutting concerns would be an easy task for developers, since they only need to reuse pre-defined joinpoints and pointcuts without modifying the underlying core modules of the simulator. We evaluated WeaveSim on an academically-scaled system. The results of our experimental evaluations show the benefit of WeaveSim in reducing the complexity of implementing cross-cutting concerns on cloud-based software systems. Hence, the reusability, scalability and maintainability of the cloud-based software systems are increased.