Оркестрація сервіс-орієнтованих застосунків з техніками реактивного програмування
DOI:
https://doi.org/10.15587/2706-5448.2024.310031Ключові слова:
сервіс-орієнтоване програмування (SOA), реактивне програмування, цикл подій, асинхронні запитиАнотація
Об'єктом дослідження є модульний підхід до побудови додатків з використанням SOA, а також порівняння синхронних та асинхронних методологій обробки запитів з використанням архітектури реактивного програмування. SOA дозволяє розділяти додатки на незалежні компоненти, що забезпечує їх легку інтеграцію та масштабованість у розподілених обчислювальних середовищах. Завдяки SOA можливо створити мережу слабо пов'язаних сервісів, що надає користувачам гнучкість у створенні додатків, адаптованих під конкретні потреби.
Однією з найбільших проблем є блокування потоків і нестабільність системи під великим навантаженням при використанні синхронних методів. У дослідженні порівнюються синхронні та асинхронні методології обробки запитів з використанням WebFlux, а також розглядаються ключові компоненти SOA, такі як механізми виявлення сервісів та моделі взаємодії, зокрема оркестрація та хореографія.
Отримано результати, які показують, що асинхронні підходи, використовуючи неблокуючу архітектуру, керовану подіями, зменшують кількість активних потоків, підвищують стійкість системи та покращують продуктивність. Це пов'язано з тим, що запропонований неблокуючий, подієво керований підхід має низку особливостей, включаючи зменшення блокування потоків і покращення стійкості системи під великим навантаженням. Синхронні методи, хоча і прості, мають недоліки, такі як блокування потоків і нестабільність системи під надмірними навантаженнями.
Завдяки цьому забезпечується висока ефективність обробки великої кількості запитів у реальному часі. У порівнянні з аналогічними відомими підходами це забезпечує такі переваги, як підвищена стійкість системи та ефективне використання ресурсів, що робить цей підхід особливо корисним для масштабованих архітектур додатків у розподілених обчислювальних середовищах.
Посилання
- Lewis, J., Fowler, M. (2017). Microservices: A definition of this new architectural term. Martin Fowler. Available at: https://martinfowler.com/articles/microservices.html
- Erl, T. (2005). Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall PTR.
- Peng, H., Shi, Z., Qiu, L. (2007). Matching Request Profile and Service Profile for Semantic Web Service Discovery. Available at: https://www.researchgate.net/publication/239813737_Matching_Request_Profile_and_Service_Profile_for_Semantic_Web_Service_Discovery
- Deakin, T., Cook, R. (2018). Service-Oriented Architecture and Web Services: Concepts, Technologies, and Tools. Journal of Systems and Software, 137, 116–130.
- Reactive Streams (2013). Reactive Streams Initiative. Available at: http://www.reactive-streams.org
- Hohpe, G., Woolf, B. (2003). Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley.
- Pardon, G., De Backer, R. (2011). Building Scalable Applications with Event-Driven Architecture. Proceedings of the International Conference on Software Engineering.
- Hohpe, G., Woolf, B. (2003). Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley, 736.
- Ministry of Finance of Ukraine (2024). Available at: https://mof.gov.ua/uk/
- Richards, M. (2006). Pro Java EE 5 Performance Management and Optimization.
##submission.downloads##
Опубліковано
Як цитувати
Номер
Розділ
Ліцензія
Авторське право (c) 2024 Ihor Kasianchuk
Ця робота ліцензується відповідно до Creative Commons Attribution 4.0 International License.
Закріплення та умови передачі авторських прав (ідентифікація авторства) здійснюється у Ліцензійному договорі. Зокрема, автори залишають за собою право на авторство свого рукопису та передають журналу право першої публікації цієї роботи на умовах ліцензії Creative Commons CC BY. При цьому вони мають право укладати самостійно додаткові угоди, що стосуються неексклюзивного поширення роботи у тому вигляді, в якому вона була опублікована цим журналом, але за умови збереження посилання на першу публікацію статті в цьому журналі.