Towards a Framework for Evaluating Technologies for Implementing Microservices Architectures
- 1 Department of Computer Engineering, National Advanced School of Engineering, Yaoundé, Cameroon
- 2 Department of Computer Engineering, National Advanced School of Engineering, Yaoundé, Cameroon
Abstract
Microservice architecture is an architectural style, which allows structuring software as a suite of fine-grained services, each running in its process and deployed independently. Knowing the strengths and limitations of this architectural style, the development team is responsible to select the appropriate technologies which guarantee the consistency between the implementation and the design. This study proposes an evaluation framework which consists of a set of evaluation criteria that are architectural patterns recognized by the community and covering all the implementation aspects of software; and an evaluation function which combines these criteria for a given technology to determine its compatibility score with the microservice style, while taking into account the specific requirements of the software under development. Applying this approach to Spring Boot and JAVA EE technologies, we found that Spring Boot scores 96.3% while JAVA EE scores 44.4%. These scores reflect the effort required to conform software with the principles of this development style.
- Dmitry, N. and Sneps-Sneppe, M. (2014) On Micro-Services Architecture. International Journal of Open Information Technologies, 2, 4 p.
- Richardson, C. (2019) Microservices Pattern: Microservice Architecture Pattern. http://microservices.io/patterns/microservices.html
- Herold, S. (2011) Architectural Compliance in Component-Based Systems: Foundations, Specification, and Checking of Architectural Rules. Ph.D. Thesis, Clausthal University of Technology, Clausthal-Zellerfeld, Germany.
- Weinreich, R., Miesbauer, C., Buchgeher, G. and Kriechbaum, T. (2012) Extracting and Facilitating Architecture in Service-Oriented Software Systems. 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture, Helsinki, Finland, 20-24 August 2012, 81-90. https://doi.org/10.1109/WICSA-ECSA.212.16
- Gampa, S., Yazhini, Senthilkumaran, U. and Narayanan, M. (2016) Methods for Evaluating Software Architecture-A Survey. International Journal of Pharmacy & Technology, 8, 25720-25733. https://www.researchgate.net/publication/316887447.
- Knodel, J. and Popescu, D. (2007) A Comparison of Static Architecture Compliance Checking Approaches. 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA’07), Mumbai, India, 6-9 January 2007, 12 p. https://doi.org/10.1109/WICSA.2007.1
- Weinreich, R. and Buchgeher, G. (2014) Automatic Reference Architecture Conformance Checking for SOA-Based Software Systems. 2014 IEEE/IFIP Conference on Software Architecture, Sydney, NSW, Australia, 7-11 April 2014, 95-104. https://doi.org/10.1109/WICSA.2014.22
- Stack Overflow Developer Survey 2020 (s. d.). Stack Overflow. https://insights.stackoverflow.com/survey/2020/?utm_source=social-share&utm_medium=social&utm_campaign=dev-survey-2020
- (2021) Java EE Usage Statistics. https://trends.builtwith.com/framework/Java-EE
- Craig, W. (2019) Spring in Action. 5 Edition, Manning Publications, Shelter Island, New York.
- (2020) Spring Cloud. https://spring.io/projects/spring-cloud
- (2010) Distributed Multitiered Softwares—The Java EE 5 Tutorial. https://docs.oracle.com/javaee/5/tutorial/doc/bnaay.html