Modelo para Caracterização e Evolução de Sistemas com Arquitetura Baseada em Serviços

  • Thatiane de Oliveira Rosa Universidade de São Paulo / Instituto Federal do Tocantins http://orcid.org/0000-0002-3980-0051
  • Alfredo Goldman Universidade de São Paulo
  • Eduardo Martins Guerra Libera Università di Bolzano

Resumo


Construir uma boa arquitetura é fundamental para obter sucesso no processo de desenvolvimento de software . Porém, essa não é uma atividade trivial, pois envolve uma série de decisões de domínio do negócio, técnicas e de estrutura. Assim, com a finalidade de apoiar a construção de uma arquitetura mais adequada a um determinado contexto, constantemente surgem novas abordagens como microsserviços e monolitos modulares, que propõem decompor um software complexo em pequenas partes fracamente acopladas. Entretanto, ao analisar o estado da arte e da prática, percebe-se que existe um limite nebuloso na classificação dessas diferentes abordagens, especialmente as baseadas em serviços. Além de existir pouco suporte para caracterizar e direcionar arquiteturas baseadas em serviços. Diante disso, com base em pesquisas bibliográficas e estudos de caso, pretende-se desenvolver um modelo para caracterização e evolução da arquitetura de sistemas baseados em serviços, adotando diretrizes de microsserviços. Esse modelo apresenta dimensões que medem características estruturais da arquitetura relacionadas ao tamanho de módulos, compartilhamento de bases de dados e acoplamento entre serviços. Como contribuição final, esse modelo facilitará o mapeamento e medição de diferentes impactos gerados na arquitetura de software , a partir de incrementos e refatorações realizados. Assim como dará suporte a decisões arquiteturais que considerem diferentes atributos de qualidade para alcançar o equilíbrio entre independência e colaboração de serviços para um determinado sistema.
Palavras-chave: Arquitetura de software, Sistemas baseados em serviços, Microsserviços, Modelo para caracterização e evolução

Referências

M. Fowler and J. Lewis, “Microservices”, 2014. Disponível em: martinfowler.com/articles/microservices.html. Acessado: em 10 dez. 2019.

A. Balalaie, A. Heydarnoori, and P. Jamshidi, “Microservices architecture enables devops: Migration to a cloud-native architecture”, IEEE Software, vol. 33, no. 3, pp. 42–52, 2016.

D. Taibi, V. Lenarduzzi, and C. Pahl, “Architectural patterns for microservices: a systematic mapping study”, in 8th International Conference on Cloud Computing and Services Science (CLOSER 2018), pp. 221–232, 2018.

N. Ford, The State of Microservices Maturity – Survey Results. O’Reilly Media, 2018.

J. Soldani, D. A. Tamburri, and W. J. V. D. Heuvel, “The pains and gains of microservices: A Systematic grey literature review”, Journal of Systems and Software, vol. 146, pp. 215–232, 2018.

P. Di Francesco, P. Lago, and I. Malavolta, “Architecting with microservices: A systematic mapping study”, Journal of Systems and Software, vol. 150, pp. 77–97, 2019.

M. Fowler, “Monolith First”, 2015. Disponível em: martinfowler.com/bliki/MonolithFirst.html. Acessado em: 12 set. 2019.

S. Newman, Building Microservices: Designing Fine-Grained Systems. O’Reilly Media, 2015.

Y. Natis and R. Schulte, “Introduction to Service-Oriented Architecture”, tech. rep., Gartner Group, 2003.

innoQ, “Self-Contained Systems: Assembling Software From Independent Systems”, 2015. Disponível em: scs-architecture.org/index.html. Acessado em: 14 abr. 2020.

M. Richards, Software Architecture Patterns. O’Reilly Media, 2015.

Z. Mahmood, “The promise and limitations of service oriented architecture”, International Journal of Computers, vol. 1, no. 3, pp. 74–78, 2007.

N. Alshuqayran, N. Ali, and R. Evans, “A systematic mapping study in microservice architecture”, in 9th International Conference on Service-Oriented Computing and Applications (SOCA 2016), pp. 44–51, 2016.

C. Richardson, Microservices Patterns. Manning Publicatins Co., 2018.

Highscalability, “One Team At Uber Is Moving From Microservices To Macroservices”, 2020. Disponível em: highscalability.com/blog/2020/4/8/one-team-at-uber-is-moving-from-microservices-to-macroservic.html. Acessado em: 21 mai. 2020.

InfoQ, “To Microservices and Back Again”, 2020. Disponível em: www.infoq.com/news/2020/04/microservices-back-again/. Acessado: em 24 jun. 2020.

I. Nadareishvili, R. Mitra, M. McLarty, and M. Amundsen, Microservice Architecture: Aligning Principles, parctices, and culture. O’Reilly Media, 2016.

C. Paul, R. Kazman, and M. Klein, Evaluating software architectures: methods and case studies. Addison-Wesley, 2002.

H. Cervantes and R. Kazman, Designing Software Architectures: A practical Approach. Addison-Wesley, 2016.

D. Garlan, “Software architecture: a travelogue”, in Future of Software Engineering (FOSE 2014), pp. 29–39, 2014.

K. Westeinde, “Deconstructing the Monolith: Designing Software that Maximizes Developer Productivity”, 2019. Disponível em: engineering.shopify.com/blogs/engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity. Acessado em: 15 dez. 2019.

E. Wolff, “Self-contained Systems: A Different Approach to Microservices”, 2016. Disponível em: www.innoq.com/en/articles/2016/11/self-contained-systems-different-microservices/#self-containedsystems. Acessado em: 14 abr. 2020.

M. Perepletchikov, C. Ryan, K. Frampton, and Z. Tari, “Coupling metrics for predicting maintainability in service-oriented designs”, in Australian Software Engineering Conference (ASWEC’07), pp. 329–338, 2007.

C. Pahl and P. Jamshidi, “Microservices: A systematic mapping study”, in 6th International Conference on Cloud Computing and Services Science (CLOSER 2016), pp. 137–146, 2016.

F. Neal, R. Parsons, and P. Kua, Building Evolutionary Architectures: Support Constant Change. O’Reilly Media, 2017.

A. de Moura Del Esposte, “A Scalable Microservice-based Open Source Platform for Smart Cities”, Master’s thesis, Universidade de São Paulo, 2018.

T. D. O. Rosa, A. Goldman, and E. M. Guerra, “How ’micro’ are your services?”, in IEEE International Conference on Software Architecture Companion (ICSA-C 2020), pp. 75–78, 2020.

R. C. Martin, Clean Architecture: A Craftsmans Guide to Software Structure and Design. Prentice Hall, 2018.

C. Richardson and F. Smith, Microservices From Design to Deployment. Nginx Inc, 2016.

B. Shim, S. Choue, S. Kim, and S. Park, “A Design Quality Model for Service-Oriented Architecture”, in 15th Asia-Pacific Software Engineering Conference, pp. 403–410, 2008.

D. Rud and A. Schmietendorf, “Product metrics for service-oriented infrastructures”, IWSM/MetriKon, pp. 161–174, 2006.

G. Granchelli, M. Cardarelli, P. D. Francesco, I. Malavolta, L. Iovino, and A. D. Salle, “Towards recovering the software architecture of microservice-based systems”, in IEEE International Conference on Software Architecture Workshops (ICSAW 2017), pp. 46–53, 2017.

T. Engel, M. Langermeier, B. Bauer, and A. Hofmann, “Evaluation of microservice architectures: A metric and tool-based approach”, in Information Systems in the Big Data Era, pp. 74–89, 2018.

J. Bogner, S. Wagner, and A. Zimmermann, “Towards a practical maintainability quality model for serviceand microservice-based systems”, in 11th European Conference on Software Architecture (ECSA 2017), pp. 195–198, 2017.
Publicado
19/10/2020
ROSA, Thatiane de Oliveira; GOLDMAN, Alfredo; GUERRA, Eduardo Martins. Modelo para Caracterização e Evolução de Sistemas com Arquitetura Baseada em Serviços. In: WORKSHOP DE TESES E DISSERTAÇÕES (WTDSOFT) - CONGRESSO BRASILEIRO DE SOFTWARE: TEORIA E PRÁTICA (CBSOFT), 11. , 2020, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 38-46. DOI: https://doi.org/10.5753/cbsoft_estendido.2020.14607.