Orchestration of service-oriented applications with reactive programming techniques
DOI:
https://doi.org/10.15587/2706-5448.2024.310031Keywords:
service-oriented architecture (SOA), reactive programming, event loop, asynchronous requestsAbstract
The object of research is the modular approach to application development using SOA, as well as the comparison of synchronous and asynchronous request processing methodologies using a reactive programming architecture. SOA allows applications to be divided into independent components, ensuring easy integration and scalability in distributed computing environments. With SOA, it is possible to create a network of loosely coupled services, providing users with the flexibility to develop applications tailored to specific needs.
One of the main issues is thread blocking and system instability under heavy loads when using synchronous methods. The study compares synchronous and asynchronous request processing methodologies using WebFlux, and examines key components of SOA, such as service discovery mechanisms and interaction models, particularly orchestration and choreography.
The results show that asynchronous approaches, using a non-blocking, event-driven architecture, reduce the number of active threads, increase system resilience, and improve performance. This is because the proposed non-blocking, event-driven approach has several features, including reducing thread blocking and enhancing system stability under heavy loads. Synchronous methods, while straightforward, have drawbacks such as thread blocking and system instability under excessive loads.
As a result, there is a high efficiency in processing a large number of requests in real-time. Compared to similar known approaches, this provides advantages such as increased system resilience and efficient resource utilization, making this approach particularly useful for scalable application architectures in distributed computing environments.
References
- 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.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2024 Ihor Kasianchuk
This work is licensed under a Creative Commons Attribution 4.0 International License.
The consolidation and conditions for the transfer of copyright (identification of authorship) is carried out in the License Agreement. In particular, the authors reserve the right to the authorship of their manuscript and transfer the first publication of this work to the journal under the terms of the Creative Commons CC BY license. At the same time, they have the right to conclude on their own additional agreements concerning the non-exclusive distribution of the work in the form in which it was published by this journal, but provided that the link to the first publication of the article in this journal is preserved.