A Framework for Modelling Variable Microservices as Software Product Lines
- 1.4k Downloads
Microservices architecture is a software development style that divides software into several small, independently deployable services. Every service can be invoked by standard protocols such as HTTP, so it can be used on a variety of platforms (e.g. mobile, web, desktop). The diversity of users of microservices-based software causes an increased variation in software requirements. In order to accommodate this variability, we propose a framework for microservices-based software based on the Software Product Line Engineering (SPLE) approach. We call this framework ABS Microservices Framework, as it relies on the Abstract Behavioral Specification (ABS) language development platform that readily supports SPLE. The framework created in this research has shown more flexibility to accommodate software variability than other microservices frameworks. Hence, the ABS Microservices Framework can support the software industry to distribute variable software of high quality and reliability.
KeywordsMicroservices Framework Software Product Line Engineering Abstract Behavioral Specification
This work was supported by Reliable Software Engineering (RSE) Laboratory, Faculty of Computer Science, Universitas Indonesia and funded by Universitas Indonesia under PITTA Grant number 395/UN2.R3.1/HKP.05.00/2017.
Radu’s contribution was supported by Landesoffensive für wissenschaftliche Exzellenz (LOEWE; initiative to increase research excellence in the state of Hessen, Germany) as part of the LOEWE Schwerpunkt CompuGene.
We thank the anonymous reviewers for their constructive comments, which helped us to improve the manuscript.
- 2.Clemson, T.: Testing strategies in a microservice architecture (2014)Google Scholar
- 4.Fowler, M., Lewis, J.: Microservices. ThoughtWorks (2014). http://martinfowler.com/articles/microservices.html. Accessed 17 Feb 2015
- 6.Hähnle, R., Helvensteijn, M., Johnsen, E.B., Lienhardt, M., Sangiorgi, D., Schaefer, I., Wong, P.Y.H.: HATS abstract behavioral specification: the architectural view. In: Beckert, B., Damiani, F., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2011. LNCS, vol. 7542, pp. 109–132. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35887-6_6 CrossRefGoogle Scholar
- 7.Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-25271-6_8 CrossRefGoogle Scholar
- 9.Liu, D., Zhu, H., Xu, C., Bayley, I., Lightfoot, D., Green, M., Marshall, P.: CIDE: an integrated development environment for microservices. In: 2016 IEEE International Conference on Services Computing (SCC), pp. 808–812 (2016)Google Scholar
- 10.Metzger, A., Pohl, K.: Software product line engineering and variability management: achievements and challenges. In: Proceedings of the on Future of Software Engineering, pp. 70–84. ACM (2014)Google Scholar
- 12.Richardson, C.: Pattern: Microservices architecture. Microservices. io.http://microservices.io/patterns/microservices.html. Accessed 17 February 2015 (2014)
- 13.Safina, L., Mazzara, M., Montesi, F., Rivera., V.: Data-driven workflows for microservices: genericity in Jolie. In: 2016 IEEE 30th International Conference on Advanced Information Networking and Applications (AINA), pp. 430–437 (2016)Google Scholar