SP2Mic: Uma ferramenta para geração de código de microsserviços a partir de stored procedures

  • Ingrid G. T. Coutinho UECE
  • Paulo Henrique M. Maia UECE

Resumo


As regras de negócios implementadas em stored procedures são frequentemente encontradas em sistemas legados. Muitas empresas estão migrando seus sistemas para o estilo arquitetural de microsserviços para obter sistemas mais flexíveis e escaláveis. Essa migração tem sido explorada e abordada de várias formas; no entanto, poucas tratam de sistemas cujas regras de negócios estão implementadas em artefatos de banco de dados, particularmente stored procedures (SPs). A necessidade de migração dessas regras para um sistema mais moderno esbarra em barreiras tecnológicas e é altamente dependente de humanos. Portanto, este trabalho apresenta a ferramenta SP2Mic, que realiza, de forma semiautomática, a geração de código de microsserviços por meio da carga e processamento das stored procedures e interação com o usuário especialista no sistema responsáveis pela interpretação das regras das SPs. A ferramenta possui três módulos principais: carga e processamento das stored procedures, análise das stored procedures e geração do código dos microsserviços. A ferramenta foi utilizada em um sistema real de grande porte, que possui 1.517 SPs. Foi classificada como boa na avaliação de usabilidade realizada por 15 usuários respondendo ao System Usability Scale e teve uma ótima avaliação a partir do relato e entrevistas com especialistas no sistema.

Referências

Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. 2016. Microservices architecture enables devops: Migration to a cloud-native architecture. IEEE Software 33, 3 (2016), 42–52.

Luciano Baresi, Martin Garriga, and Alan De Renzis. 2017. Microservices identification through interface analysis. In Service-Oriented and Cloud Computing: 6th IFIP WG 2.14 European Conference, ESOCC 2017, Oslo, Norway, September 27-29, 2017, Proceedings 6. Springer, 19–33.

Antonio Bucchiarone, Nicola Dragoni, Schahram Dustdar, Stephan T Larsen, and Manuel Mazzara. 2018. From monolithic to microservices: An experience report from the banking domain. IEEE Software 35, 3 (2018), 50–55.

Luiz Carvalho, Alessandro Garcia, Thelma Elita Colanzi, Wesley KG Assunção, Juliana Alves Pereira, Baldoino Fonseca, Márcio Ribeiro, Maria Julia de Lima, and Carlos Lucena. 2020. On the performance and adoption of search-based microservice identification with tomicroservices. In 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 569–580.

Luiz Carvalho, Alessandro F. Garcia, Thelma Elita Colanzi, Wesley Klewerton Guez Assunção, Maria Julia de Lima, Baldoino Fonseca dos Santos Neto, Márcio Ribeiro, and Carlos J. P. Lucena. 2020. Search-based many-criteria identification of microservices from legacy systems. Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion (2020).

Hossein Chegini and Aniket Mahanti. 2019. A Framework of Automation on Context-Aware Internet of Things (IoT) Systems. In Proceedings of the 12th IEEE/ACM International Conference on Utility and Cloud Computing Companion (Auckland, New Zealand) (UCC ’19 Companion). Association for Computing Machinery, New York, NY, USA, 157–162. DOI: 10.1145/3368235.3368848

Paolo Di Francesco, Ivano Malavolta, and Patricia Lago. 2017. Research on architecting microservices: Trends, focus, and potential for industrial adoption. In 2017 IEEE International Conference on Software Architecture (ICSA). IEEE, 21–30.

Andrei Furda, Colin Fidge, Olaf Zimmermann, Wayne Kelly, and Alistair Barros. 2018. Migrating Enterprise Legacy Source Code to Microservices: On Multitenancy, Statefulness, and Data Consistency. IEEE Software 35, 3 (2018), 63–72. DOI: 10.1109/MS.2017.440134612

Marx Haron Gomes Barbosa and Paulo Henrique M. Maia. 2020. Towards Identifying Microservice Candidates from Business Rules Implemented in Stored Procedures. In 2020 IEEE International Conference on Software Architecture Companion (ICSA-C). 41–48. DOI: 10.1109/ICSA-C50368.2020.00015

Anup K Kalia, Jin Xiao, Chen Lin, Saurabh Sinha, John Rofrano, Maja Vukovic, and Debasish Banerjee. 2020. Mono2micro: an ai-based toolchain for evolving monolithic enterprise applications to a microservice architecture. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 1606–1610.

Alex Kaplunovich. 2019. ToLambda: Automatic Path to Serverless Architectures. In Proceedings of the 3rd InternationalWorkshop on Refactoring (Montreal, Quebec, Canada) (IWOR ’19). IEEE Press, 1–8. DOI: 10.1109/IWoR.2019.00008

Ravi Khadka, Belfrit V Batlajery, AmirMSaeidi, Slinger Jansen, and Jurriaan Hage. 2014. How do professionals perceive legacy systems and software modernization?. In Proceedings of the 36th International Conference on Software Engineering. 36–47.

Holger Knoche and Wilhelm Hasselbring. 2018. Using microservices for legacy software modernization. IEEE Software 35, 3 (2018), 44–49. DOI: 10.1109/MS.2018.2141035

Alessandra Levcovitz, Ricardo Terra, and Marco Tulio Valente. 2016. Towards a technique for extracting microservices from monolithic enterprise systems. arXiv preprint arXiv:1605.03175 (2016).

Bo Liu, Jingliu Xiong, Qiurong Ren, Shmuel Tyszberowicz, and Zheng Yang. 2022. Log2MS: a framework for automated refactoring monolith into microservices using execution logs. In 2022 IEEE International Conference onWeb Services (ICWS). 391–396. DOI: 10.1109/ICWS55610.2022.00065

Sam Newman. 2021. Building microservices. O’Reilly Media, Inc.

Khaled Sellami, Mohamed Aymen Saied, and Ali Ouni. 2022. A Hierarchical DBSCAN Method for Extracting Microservices from Monolithic Applications. In Proceedings of the 26th International Conference on Evaluation and Assessment in Software Engineering (Gothenburg, Sweden) (EASE ’22). Association for Computing Machinery, New York, NY, USA, 201–210. DOI: 10.1145/3530019.3530040

Daniele Wolfart, Wesley K. G. AssunÇão, Ivonei F. da Silva, Diogo C. P. Domingos, Ederson Schmeing, Guilherme L. Donin Villaca, and Diogo do N. Paza. 2021. Modernizing Legacy Systems with Microservices: A Roadmap. In Evaluation and Assessment in Software Engineering (Trondheim, Norway) (EASE 2021). Association for Computing Machinery, New York, NY, USA, 149–159. DOI: 10.1145/3463274.3463334
Publicado
30/09/2024
COUTINHO, Ingrid G. T.; MAIA, Paulo Henrique M.. SP2Mic: Uma ferramenta para geração de código de microsserviços a partir de stored procedures. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 38. , 2024, Curitiba/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 787-793. DOI: https://doi.org/10.5753/sbes.2024.3655.