(Received: 10-Feb-2020, Revised: 16-Mar-2020 , Accepted: 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.

[1] T. Grance and P. Mell, "The NIST Definition of Cloud Computing," NIST Special Publication, pp. 800–145, 2011.

[2] H. T. Dinh et al., "A Survey of Mobile Cloud Computing: Architecture, Applications and Approaches," Wireless Communications and Mobile Computing, vol. 13, no. 18, pp. 1587–1611, 2013.

[3] R. Buyya, R. Ranjan and R. N. Calheiros, "Modeling and Simulation of Scalable Cloud Computing Environments and the CloudSim Toolkit: Challenges and Opportunities," Proc. of IEEE International Conference on High Performance Computing & Simulation (HPCS’09), pp. 1–11, 2009.

[4] R. N. Calheiros et al., "CloudSim: A Novel Framework for Modeling and Simulation of Cloud Computing Infrastructures and Services," arXiv preprint arXiv:0903.2525, 2009.

[5] H. Mei and X.-Z. Liu, "Internetware: An Emerging Software Paradigm for Internet Computing," Journal of Computer Science and Technology, vol. 26, no. 4, p. 588. DOI: 10 . 1007 /s11390 - 011 - 1159 - y, [Online], Available: http : //jcst.ict.ac.cn/EN/abstract/article_1768.shtml.

[6] M. C. Silva Filho et al., "CloudSim Plus: A Cloud Computing Simulation Framework Pursuing Software Engineering Principles for Improved Modularity, Extensibility and Correctness," IFIP/IEEE Symposium on Integrated Network and Service Management (IM), IEEE, pp. 400– 406, 2017.

[7] G. Kiczales et al. "Aspect-oriented Programming," Proc. of European Conference on Object-oriented Programming, Springer, pp. 220–242, 1997.

[8] R. S. Pressman, Software Engineering: A Practitioner’s Approach, Palgrave Macmillan, 2005.

[9] S. K. Sood, "A Combined Approach to Ensure Data Security in Cloud Computing," Journal of Network and Computer Applications, vol. 35, no. 6, pp. 1831–1838, 2012.

[10] R. Kumar and G. Sahoo, "Cloud Computing Simulation Using CloudSim," arXiv Preprint arXiv:1403.3253, 2014.

[11] P. Humane and J. N. Varshapriya, "Simulation of Cloud Infrastructure Using CloudSim Simulator: A Practical Approach for Researchers," Proc. of IEEE International Conference on Smart Technologies and Management for Computing, Communication, Controls, Energy and Materials (ICSTM), pp. 207–211, 2015.

[12] R. Buyya and M. Murshed, "GridSim: A Toolkit for the Modeling and Simulation of Distributed Resource Management and Scheduling for Grid Computing," Concurrency and Computation: Practice and Experience, vol. 14, no. 13-15, pp. 1175–1220, 2002.

[13] R. Lakshminarayanan and R. Ramalingam. "Usage of Cloud Computing Simulators and Future Systems for Computational Research," arXiv preprint arXiv:1605.00085, 2016.

[14] F. Fakhfakh, H. Hadj Kacem and A. Hadj Kacem, "Simulation Tools for Cloud Computing: A Survey and Comparative Study," Proc. of the 16th IEEE International Conference on Computer and Information Science (ICIS), pp. 221–226, 2017.

[15] P. Kathiravelu and L. Veiga, "Concurrent and Distributed CloudSim Simulations," Proc. of the 22nd IEEE International Symposium on Modelling, Analysis & Simulation of Computer and Telecommunication Systems (MASCOTS), pp. 490–493, 2014.

[16] R. N Calheiros et al., "CloudSim: A Toolkit for Modeling and Simulation of Cloud Computing Environments and Evaluation of Resource Provisioning Algorithms," Software: Practice and Experience, vol. 41, no. 1, pp. 23–50, 2011.

[17] J. Byrne et al., "A Review of Cloud Computing Simulation Platforms and Related Environments," CLOSER, pp. 651–663, 2017.

[18] B. Wickremasinghe and R. Buyya, "CloudAnalyst: A CloudSim-based Tool for Modelling and Analysis of Large Scale Cloud Computing Environments," MEDC Project Report, vol. 22, no. 6, pp. 433–659, 2009.

[19] F. Fakhfakh, H. Hadj Kacem and A. Hadj Kacem, "CloudSim4DWf: A CloudSim Extension for Simulating Dynamic Workflows in a Cloud Environment," Proc. of the 15th IEEE International Conference on Software Engineering Research, Management and Applications (SERA), pp. 195–202, 2017.

[20] M. Bux and U. Leser, "Dynamic CloudSim: Simulating Heterogeneity in Computational Clouds," Future Generation Computer Systems, vol. 46, pp. 85–99, 2015.

[21] D. Kliazovich, P. Bouvry and S. U. Khan, "GreenCloud: A Packet-level Simulator of Energy-aware Cloud Computing Data Centers," The Journal of Supercomputing, vol. 62, no. 3, pp. 1263-1283, 2012.

[22] A. W.Malik, K. Bilal, K. Aziz, D. Kliazovich, N. Ghani, S. U. Khan and R. Buyya, "Cloudnetsim++: A Toolkit for Data Center Simulations in Omnet++," Proc. of the 11th IEEE Annual High Capacity Optical Networks and Emerging/Enabling Technologies (Photonics for Energy), pp. 104-108, 2014.

[23] J. Byrne, S. Svorobej, K. M. Giannoutakis, D. Tzovaras, P. J. Byrne, P. O. Östberg and T. Lynn, "A Review of Cloud Computing Simulation Platforms and Related Environments," CLOSER, pp. 651-663, April 2017.

[24] B. Fateh et al., "Secure Inverted Index Based Search over Encrypted Cloud Data with User Access Rights Management," Journal of Computer Science and Technology, vol. 34, no. 1, p. 133. DOI: 10.1007/s11390-019-1903-2,[Online],Available: http://jcst.ict.ac.cn/EN/abstract/article_2500, 2019.

[25] A. M. R. AlSobeh, R. Hammad and A.-K. Al-Tamimi, "A Modular Cloud-based Ontology Framework for Context-aware EHR Services," International Journal of Computer Applications in Technology, vol. 60, no .4, pp. 339–350, 2019.

[26] A. M. R. Alsobeh, A. A.-R. Magableh and E. M. AlSukhni, "Runtime Reusable Weaving Model for Cloud Services Using Aspect-Oriented Programming: The Security-related Aspect," International Journal of Web Services Research (IJWSR), vol. 15, no. 1, pp. 71–88, 2018.

[27] A. A.-R. Magableh and A. M. R. AlSobeh, "Securing Software Development Stages Using Aspect- Orientation Concepts," International Journal of Software Engineering & Applications (IJSEA), vol. 9, no. 6, 2018.

[28] E. Kessler Piveta et al., "An Empirical Study of Aspect-oriented Metrics," Science of Computer Programming, vol. 78, no. 1, pp. 117–144, 2012.

[29] S. Ciraci and P. van den Broek, "Evolvability as a Quality Attribute of Software Architectures," The International ERCIM Workshop on Software Evolution, pp. 6–7, 2006.

[30] A. M. R. AlSobeh and S. W. Clyde, "Transaction-aware Aspects with TransJ: An Initial Empirical Study to Demonstrate Improvement in Reusability," ICSEA, p. 59, 2016.

[31] H. Ossher and P. Tarr. "Multi-dimensional Separation of Concerns and the Hyperspace Approach," Software Architectures and Component Technology, Springer, pp. 293–323, 2002.

[32] E. Figueiredo et al., "On the Maintainability of Aspect-oriented Software: A Concern-oriented Measurement Framework," Proc. of the 12th IEEE European Conference on Software Maintenance and Reengineering (CSMR), pp. 183–192, 2008.

[33] R. E. Lopez-Herrejon and S. Apel, "Measuring and Characterizing Cross-cutting in Aspect-based Programs: Basic Metrics and Case Studies," Proc. of International Conference on Fundamental Approaches to Software Engineering, Springer, pp. 423–437, 2007.

[34] E. Alemneh, "Current States of Aspect Oriented Programming Metrics," International Journal of Science and Research, vol. 3, no. 1, pp. 142–146, 2014.

[35] S. Apel, D. Batory and M. Rosenmüller, "On the Structure of Cross-cutting Concerns: Using Aspects or Collaborations," Proc. of GPCE Workshop on Aspect-Oriented Product Line Engineering (AOPLE), 2006.

[36] S. Garg, K. S. Kahlon and P. K. Bansal, "Testability Analysis of Aspect Oriented Software," International Journal of Computer Theory and Engineering, vol. 2, no. 1, pp. 119–124, 2010.

[37] G. Kiczales et al., "Getting Started with AspectJ," Communications of the ACM, vol. 44, no. 10, pp. 59–65, 2001.

[38] R. Akiladevi, "Aspect-Oriented Refactoring for Software Maintenance," International Journal of Emerging Trends & Technology in Computer Science (IJETTCS), vol. 2, pp. 79–84, 2013.

[39] L. Badri, M. Badri and F. Toure, "An Empirical Analysis of Lack of Cohesion Metrics for Predicting Testability of Classes," International Journal of Software Engineering and Its Applications, vol. 5, no. 2, pp. 69–85, 2011.

[40] A. Przybyłek, "An Empirical Study on the Impact of AspectJ on Software Evolvability," Empirical Software Engineering, vol. 23, no. 4, 2018.

[41] C. Driver and S. Clarke, "Distributed Systems Development: Can We Enhance Evolution by Using AspectJ?," Proc. of International Conference on Object-oriented Information Systems, Springer, pp. 368–382, 2003.

[42] I. Fleming, "Defining Software Quality Characteristics to Facilitate Software Quality Control and Software Process Improvement," Software Quality Assurance, Elsevier, pp. 47–61, 2016.

[43] F. E. Ritter, G. D. Baxter and E. F. Churchill, "User-centered Systems Design: A Brief History," Foundations for Designing User-centered Systems, Springer, pp. 33–54, 2014.

[44] K. Z. Ne Win, "Measuring and Evaluating Sustainability and Design Stability Software Qualities for Long-living Aspect-oriented Applications," Proc. of the 10th International Conference on ASEAN Community Knowledge Networks for the Economy, Society, Culture and Environmental Stability, Republic of the Union of Myanmar, pp. 8–12, 2014.

[45] M. Schalk, Response Time Measurement System and Method, US Patent 8,990,779, Mar. 2015.