Advertisement

A Framework for Modelling Variable Microservices as Software Product Lines

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10729)

Abstract

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.

Keywords

Microservices Framework Software Product Line Engineering Abstract Behavioral Specification 

Notes

Acknowledgements

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.

References

  1. 1.
    Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines. Springer, Heidelberg (2016).  https://doi.org/10.1007/978-3-642-37521-7 Google Scholar
  2. 2.
    Clemson, T.: Testing strategies in a microservice architecture (2014)Google Scholar
  3. 3.
    Czarnecki, K., Eisenecker, U.W., Czarnecki, K.: Generative Programming: Methods, Tools, and Applications, vol. 16. Addison Wesley Reading, Boston (2000)zbMATHGoogle Scholar
  4. 4.
    Fowler, M., Lewis, J.: Microservices. ThoughtWorks (2014). http://martinfowler.com/articles/microservices.html. Accessed 17 Feb 2015
  5. 5.
    Hähnle, R.: The abstract behavioral specification language: a tutorial introduction. In: Giachino, E., Hähnle, R., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2012. LNCS, vol. 7866, pp. 1–37. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-40615-7_1 CrossRefGoogle Scholar
  6. 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. 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
  8. 8.
    Kästner, C., Apel, S.: Feature-oriented software development. In: Lämmel, R., Saraiva, J., Visser, J. (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 346–382. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-35992-7_10 CrossRefGoogle Scholar
  9. 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. 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
  11. 11.
    Pohl, K., Böckle, G., Van Der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg (2005).  https://doi.org/10.1007/3-540-28901-1 CrossRefzbMATHGoogle Scholar
  12. 12.
    Richardson, C.: Pattern: Microservices architecture. Microservices. io.http://microservices.io/patterns/microservices.html. Accessed 17 February 2015 (2014)
  13. 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
  14. 14.
    Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-15579-6_6 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2018

Authors and Affiliations

  1. 1.Faculty of Computer ScienceUniversitas IndonesiaDepokIndonesia
  2. 2.Department of Computer ScienceTechnische Universität DarmstadtDarmstadtGermany

Personalised recommendations