Координація мікросервісів із використанням машин станів

Автор(и)

  • Олексій Віталійович Олецький Національний університет «Києво-Могилянська академія», Україна https://orcid.org/0000-0002-0553-5915
  • Віталій Олегович Моголівський Національний університет «Києво-Могилянська академія», Україна https://orcid.org/0009-0001-2654-7798

DOI:

https://doi.org/10.18523/2617-3808.2024.7.4-10

Ключові слова:

мікросервісна архітектура, машини станів, координація мікросервісів, подійно-орієнтований підхід, управління потоком виконання, моніторинг мікросервісів, візуалізація мікросервісів, тестування мікросервісів

Анотація

У статті розглянуто підхід до координації мікросервісів на основі використання машин станів як абстракції для управління розподіленим потоком виконання програми з мікросервісною архітектурою. Реалізовано прототип бібліотеки, загальну архітектуру і принципи роботи якого описано в статті.
У разі застосування описаного підходу полегшується та упорядковується робота з паралельними потоками виконання і довготривалими фоновими задачами. Крім того, покращується прозорість процесів, що полегшує їх моніторинг, візуалізацію, тестування і відлагодження. Для використання машин станів у мікросервісному середовищі реалізовано інтеграцію з брокером повідомлень і належне довготривале зберігання їхнього стану.

Біографії авторів

Олексій Віталійович Олецький, Національний університет «Києво-Могилянська академія»

кандидат технічних наук, доцент, доцент кафедри мультимедійних систем факультету інформатики Національного університету «Києво-Могилянська академія», oletsky@ukma.edu.ua

Віталій Олегович Моголівський, Національний університет «Києво-Могилянська академія»

студент Ph.D. програми «Комп’ютерні науки» факультету інформатики Національного університету «Києво-Могилянська академія», v.moholivskyi@ukma.edu.ua

Посилання

  1. Apache Kafka documentation. (n.d.). Apache Kafka. https://kafka.apache.org/documentation/.
  2. ArangoDB documentation. (n.d.). ArangoDB. https://docs.arangodb.com/stable/.
  3. Booch, G., Rumbaugh, J., & Jacobson, I. (2005). Unified modeling language user guide, the (2nd edition) (the addison-wesley object technology series) (2nd ed.). Addison-Wesley Professional.
  4. Harel, D. (1987). Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8 (3), 231–274. https://doi.org/10.1016/0167-6423(87)90035-9.
  5. Kurian, George Cheripurathu, & Kulkarni, Sanjeev. (2024). Integrating microservices and microfrontends: A comprehensive literature review on architecture, design patterns, and implementation challenges. Journal of Scientific Research and Technology, 1–12. https://doi.org/10.61808/jsrt115.
  6. Lewis, J., & Fowler, M. (2014, March 25). Microservices. martinfowler.com. https://martinfowler.com/articles/microservices.html.
  7. Loukides, M., & Swoyer, S. (2020, July 15). Microservices adoption in 2020. O’Reilly Media. https://www.oreilly.com/radar/microservicesadoption-in-2020/.
  8. Michelson, B. (2006). Event-Driven architecture overview. Patricia Seybold Group. https://doi.org/10.1571/bda2-2-06cc.
  9. Montelius, A. (2021). An exploratory study of micro frontends [Thesis, Linköpings universitet, Programvara och system]. http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-176963.
  10. Söylemez, M., Tekinerdogan, B., & Kolukısa Tarhan, A. (2022). Challenges and solution directions of microservice architectures: A systematic literature review. Applied Sciences, 12 (11), 5507. https://doi.org/10.3390/app12115507.
  11. State chart XML (SCXML): State machine notation for controlabstraction. (n.d.). W3C. https://www.w3.org/TR/scxml/.
  12. Viggiato, M., Terra, R., Rocha, H., Tulio Valente, M., & Figueiredo, E. (n. d.). Microservices in practice: A survey study. In VI workshop on software visualization, evolution and maintenance.
  13. XState documentation. (n.d.). XState — JavaScript State Machines and Statecharts. https://xstate.js.org/docs/.

##submission.downloads##

Опубліковано

2025-05-12