A Model-Driven Approach for Solving the Software Component Allocation Problem
Abstract
:1. Introduction
- A new MDE-based methodology for solving CAPs. The methodology is centered around the use of newly introduced meta-models and models for defining CAPs and representing their solutions.
- A toolset comprising several Python scripts for reading the CAP models and generating optimal allocations. CAPs can be solved using the toolset assuming single-objective or multi-objective cost functions.
2. Background on Model Transformation
3. Related Work
4. Component Allocation Problem
5. Methodology
5.1. Framework
5.2. Meta-Models
5.3. Model Validation
5.4. Model Transformation
5.5. Optimization
Algorithm 1: Solver for MOCAP. |
5.6. Visualization
6. Results and Discussion
7. Conclusions and Future Work
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Conflicts of Interest
Appendix A
References
- Akdur, D.; Garousi, V.; Demirörs, O. A survey on modeling and model-driven engineering practices in the embedded software industry. J. Syst. Archit. 2018, 91, 62–82. [Google Scholar] [CrossRef] [Green Version]
- Boussaïd, I.; Siarry, P.; Ahmed-Nacer, M. A survey on search-based model-driven engineering. Autom. Softw. Eng. 2017, 24, 233–294. [Google Scholar] [CrossRef]
- Rodrigues da Silva, A. Model-driven engineering: A survey supported by the unified conceptual model. Comput. Lang. Syst. Struct. 2015, 43, 139–155. [Google Scholar] [CrossRef] [Green Version]
- de Araújo Silva, E.; Valentin, E.; Carvalho, J.R.H.; da Silva Barreto, R. A survey of Model Driven Engineering in robotics. J. Comput. Lang. 2021, 62, 101021. [Google Scholar] [CrossRef]
- Li, S.; Zhang, H.; Jia, Z.; Zhong, C.; Zhang, C.; Shan, Z.; Shen, J.; Babar, M.A. Understanding and addressing quality attributes of microservices architecture: A Systematic literature review. Inf. Softw. Technol. 2021, 131, 106449. [Google Scholar] [CrossRef]
- Niknejad, N.; Ismail, W.; Ghani, I.; Nazari, B.; Bahari, M.; Hussin, A.R.B.C. Understanding Service-Oriented Architecture (SOA): A systematic literature review and directions for further investigation. Inf. Syst. 2020, 91, 101491. [Google Scholar] [CrossRef]
- Tseng, F.H.; Jheng, Y.M.; Chou, L.D.; Chao, H.C.; Leung, V.C. Link-Aware Virtual Machine Placement for Cloud Services based on Service-Oriented Architecture. IEEE Trans. Cloud Comput. 2020, 8, 989–1002. [Google Scholar] [CrossRef]
- Eclipse Modeling Framework (EMF). Available online: https://www.eclipse.org/modeling/emf/ (accessed on 15 November 2021).
- Steinberg, D.; Budinsky, F.; Paternostro, M.; Merks, E. EMF: Eclipse Modeling Framework; Addison-Wesley Professional: Boston, MA, USA, 2008; Chapter 5. [Google Scholar]
- OMG’s MetaObject Facility. Available online: http://www.omg.org/mof/ (accessed on 15 November 2021).
- MDA. Available online: http://www.omg.org/mda/ (accessed on 15 November 2021).
- ATL. Available online: https://www.eclipse.org/atl/ (accessed on 15 November 2021).
- Jouault, F.; Allilaire, F.; Bézivin, J.; Kurtev, I. ATL: A model transformation tool. Sci. Comput. Program. 2008, 72, 31–39. [Google Scholar] [CrossRef]
- Eclipse Modeling Project. Available online: https://eclipse.org/modeling/ (accessed on 15 November 2021).
- QVT. Available online: http://www.omg.org/spec/QVT/ (accessed on 15 November 2021).
- Švogor, I.; Crnković, I.; Vrček, N. An Extended Model for Multi-Criteria Software Component Allocation on a Heterogeneous Embedded Platform. J. Comput. Inf. Technol. 2013, 21, 211–222. [Google Scholar] [CrossRef]
- Saaty, R.W. The Analytic Hierarchy Process—What it is and how it is used. Math. Model. 1987, 9, 161–176. [Google Scholar] [CrossRef] [Green Version]
- Švogor, I.; Carlson, J. SCALL: Software Component Allocator for Heterogeneous Embedded Systems. In Proceedings of the European Conference on Software Architecture Workshops, New York, NY, USA, 7 September 2015; Association for Computing Machinery: New York, NY, USA, 2015; pp. 66:1–66:5. [Google Scholar]
- Al-Azzoni, I.; Iqbal, S. Meta-Heuristics for Solving the Software Component Allocation Problem. IEEE Access 2020, 8, 153067–153076. [Google Scholar] [CrossRef]
- Malek, S.; Medvidović, N.; Mikic-Rakic, M. An Extensible Framework for Improving a Distributed Software System’s Deployment Architecture. IEEE Trans. Softw. Eng. 2012, 38, 73–100. [Google Scholar] [CrossRef]
- Koziolek, A.; Koziolek, H.; Reussner, R.H. PerOpteryx: Automated application of tactics in multi-objective software architecture optimization. In Proceedings of the International Conference on the Quality of Software Architectures and the International Symposium on Architecting Critical Systems, New York, NY, USA, 20–24 June 2011; pp. 33–42. [Google Scholar]
- Deb, K.; Agrawal, S.; Pratap, A.; Meyarivan, T. A Fast Elitist Non-dominated Sorting Genetic Algorithm for Multi-objective Optimisation: NSGA-II. In Proceedings of the International Conference on Parallel Problem Solving from Nature, Leiden, The Netherlands, 5–9 September 2020; Springer: Berlin/Heidelberg, Germany, 2000; pp. 849–858. [Google Scholar] [CrossRef]
- Becker, S.; Koziolek, H.; Reussner, R. The Palladio Component Model for Model-Driven Performance Prediction. J. Syst. Softw. 2009, 82, 3–22. [Google Scholar] [CrossRef]
- Franks, G.; Omari, T.; Woodside, C.M.; Das, O.; Derisavi, S. Enhanced Modeling and Solution of Layered Queueing Networks. IEEE Trans. Softw. Eng. 2009, 35, 148–161. [Google Scholar] [CrossRef]
- Koziolek, A.; Ardagna, D.; Mirandola, R. Hybrid multi-attribute QoS optimization in component based software systems. J. Syst. Softw. 2013, 86, 2542–2558. [Google Scholar] [CrossRef]
- Aleti, A.; Björnander, S.; Grunske, L.; Meedeniya, I. ArcheOpterix: An extendable tool for architecture optimization of AADL models. In Proceedings of the Workshop on Model-Based Methodologies for Pervasive and Embedded Software, Vancouver, BC, Canada, 16 May 2009; IEEE Computer Society: Piscataway, NJ, USA, 2009; pp. 61–71. [Google Scholar] [CrossRef]
- OSATE (Open Source AADL Tool Environment). Available online: https://osate.org (accessed on 15 November 2021).
- Feiler, P.; Gluch, D.; Hudak, J. The Architecture Analysis and Design Language (AADL): An Introduction; Technical Report CMU/SEI-2006-TN-011; Software Engineering Institute, Carnegie Mellon University: Pittsburgh, PA, USA, 2006. [Google Scholar]
- Aleti, A.; Grunske, L.; Meedeniya, I.; Moser, I. Let the Ants Deploy Your Software—An ACO Based Deployment Optimisation Strategy. In Proceedings of the International Conference on Automated Software Engineering, Auckland, New Zealand, 16–20 November 2009; IEEE Computer Society: Piscataway, NJ, USA, 2009; pp. 505–509. [Google Scholar] [CrossRef]
- Li, R.; Etemaadi, R.; Emmerich, M.T.M.; Chaudron, M.R.V. An evolutionary multiobjective optimization approach to component-based software architecture design. In Proceedings of the Congress of Evolutionary Computation; IEEE: Piscataway, NJ, USA; pp. 432–439.
- Wichmann, A.; Maschotta, R.; Bedini, F.; Zimmermann, A. Model-Driven Development of UML-Based Domain-Specific Languages for System Architecture Variants. In Proceedings of the International Systems Conference (SysCon), Orlando, FL, USA, 8–11 April 2019; IEEE: Piscataway, NJ, USA, 2019; pp. 1–8. [Google Scholar] [CrossRef]
- Pohlmann, U.; Hüwe, M. Model-driven allocation engineering: Specifying and solving constraints based on the example of automotive systems. Autom. Softw. Eng. 2019, 26, 315–378. [Google Scholar] [CrossRef]
- PyEcore. Available online: https://pyecore.readthedocs.io/en/latest/ (accessed on 15 November 2021).
- ATL/User Guide. Available online: https://wiki.eclipse.org/ATL/User_Guide_-_The_ATL_Language#Helpers (accessed on 15 November 2021).
- Das, I.; Dennis, J.E. Normal-Boundary Intersection: A New Method for Generating the Pareto Surface in Nonlinear Multicriteria Optimization Problems. SIAM J. Optim. 1998, 8, 631–657. [Google Scholar] [CrossRef] [Green Version]
- Component Allocation Problem GitHub Project. Available online: https://github.com/ialazzon/ComponentAllocationProblem (accessed on 15 November 2021).
- Blank, J.; Deb, K. Pymoo: Multi-Objective Optimization in Python. IEEE Access 2020, 8, 89497–89509. [Google Scholar] [CrossRef]
- Deb, K.; Pratap, A.; Agarwal, S.; Meyarivan, T. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evol. Comput. 2002, 6, 182–197. [Google Scholar] [CrossRef] [Green Version]
- Švogor, I.; Crnković, I.; Vrček, N. An extensible framework for software configuration optimization on heterogeneous computing systems: Time and energy case study. Inf. Softw. Technol. 2019, 105, 30–42. [Google Scholar] [CrossRef]
- Petrović, N.; Tosic, M. SMADA-Fog: Semantic model driven approach to deployment and adaptivity in fog computing. Simul. Model. Pract. Theory 2020, 101, 102033. [Google Scholar] [CrossRef]
- Petrović, N.; Koničanin, S.; Milić, D.; Suljović, S.; Panić, S. GPU-enabled Framework for Modelling, Simulation and Planning of Mobile Networks in Smart Cities. In Proceedings of the Zooming Innovation in Consumer Technologies Conference, Novi Sad, Serbia, 26–27 May 2020; pp. 280–285. [Google Scholar] [CrossRef]
Allocation | Assignment of Component | Feasible? | Non-Dominated? | f(w)(x) | f(x) | ||
---|---|---|---|---|---|---|---|
x(i) | 1 | 2 | 3 | ||||
1 | 1 | 1 | 1 | No | No | 19.75 | (18, 25) |
2 | 1 | 1 | 2 | No | No | 21 | (21, 21) |
3 | 1 | 2 | 1 | Yes | No | 24.25 | (19, 40) |
4 | 1 | 2 | 2 | Yes | No | 25.5 | (22, 36) |
5 | 2 | 1 | 1 | Yes | Yes | 16.5 | (17, 15) |
6 | 2 | 1 | 2 | Yes | Yes | 17.75 | (20, 11) |
7 | 2 | 2 | 1 | Yes | No | 21 | (18, 30) |
8 | 2 | 2 | 2 | No | No | 22.25 | (21, 26) |
Rule | Source Model Element | Target Model Element(s) |
---|---|---|
Main | AllocationProblem | AllocationProblem, Resources |
Component | Component | Component |
Unit | CompUnit | Unit, ResourceAvailabilities |
TradeOffWeight | TradeOffVector | TradeOffWeights |
ResourceConsumption | ResConsumption | ResourceConsumptions |
AllocationConstraint | AllocationConstraint | AllocationConstraint |
AntiAllocationConstraint | AntiAllocationConstraint | AntiAllocationConstraint |
Our Framework | GA | ACO | |
---|---|---|---|
System0 | 141.01 | 141.01 | 141.01 |
System1 | 176.62 | 176.62 | 176.62 |
System2 | 159.78 | 159.78 | 159.78 |
System3 | 186.16 | 186.16 | 186.16 |
System4 | 196.31 | 196.31 | 196.31 |
System5 | 108.10 | 122.09 | 108.27 |
System6 | 143.84 | 160.31 | 147.25 |
System7 | 202.28 | 285.57 | 273.38 |
System8 | 245.24 | 325.29 | 342.62 |
System9 | 263.38 | 452.82 | 452.66 |
Our Framework | GA | ACO | ||||
---|---|---|---|---|---|---|
Mean | SD | Mean | SD | Mean | SD | |
System0 | 20.94 | 3.51 | 158.71 | 5.79 | 6949.38 | 190.36 |
System1 | 33.72 | 2.57 | 1092.26 | 88.62 | 7196.58 | 196.00 |
System2 | 35.25 | 4.10 | 1278.01 | 164.76 | 6820.97 | 201.67 |
System3 | 23.95 | 2.67 | 2962.68 | 307.75 | 6832.64 | 366.73 |
System4 | 21.72 | 2.33 | 7999.42 | 874.65 | 7137.78 | 364.83 |
System5 | 27.49 | 4.20 | 216.13 | 10.28 | 13,539.28 | 162.85 |
System6 | 27.93 | 2.70 | 213.58 | 16.48 | 13,740.06 | 279.69 |
System7 | 66.45 | 3.81 | 937.94 | 76.35 | 80,872.42 | 1598.87 |
System8 | 73.39 | 17.29 | 2133.85 | 240.11 | 84,292.41 | 2502.88 |
System9 | 165.63 | 14.09 | 1883.04 | 186.61 | 401,164.30 | 2986.01 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Al-Azzoni, I.; Blank, J.; Petrović, N. A Model-Driven Approach for Solving the Software Component Allocation Problem. Algorithms 2021, 14, 354. https://doi.org/10.3390/a14120354
Al-Azzoni I, Blank J, Petrović N. A Model-Driven Approach for Solving the Software Component Allocation Problem. Algorithms. 2021; 14(12):354. https://doi.org/10.3390/a14120354
Chicago/Turabian StyleAl-Azzoni, Issam, Julian Blank, and Nenad Petrović. 2021. "A Model-Driven Approach for Solving the Software Component Allocation Problem" Algorithms 14, no. 12: 354. https://doi.org/10.3390/a14120354
APA StyleAl-Azzoni, I., Blank, J., & Petrović, N. (2021). A Model-Driven Approach for Solving the Software Component Allocation Problem. Algorithms, 14(12), 354. https://doi.org/10.3390/a14120354