Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java
Modern software application development imposes standards regarding high performance, scalability, and minimal system latency. Multi-threading asynchronous programming is one of the standard solutions proposed by the industry for achieving such objectives. However, the recent introduction of the rea...
Saved in:
| Main Authors: | , |
|---|---|
| Format: | Article |
| Language: | English |
| Published: |
MDPI AG
2024-12-01
|
| Series: | Applied Sciences |
| Subjects: | |
| Online Access: | https://www.mdpi.com/2076-3417/14/24/12062 |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| _version_ | 1850239806990188544 |
|---|---|
| author | Andrei Zbarcea Cătălin Tudose |
| author_facet | Andrei Zbarcea Cătălin Tudose |
| author_sort | Andrei Zbarcea |
| collection | DOAJ |
| description | Modern software application development imposes standards regarding high performance, scalability, and minimal system latency. Multi-threading asynchronous programming is one of the standard solutions proposed by the industry for achieving such objectives. However, the recent introduction of the reactive programming interface in Java presents a potential alternative approach for addressing such challenges, promising performance improvements while minimizing resource utilization. The research examines the migration process from the asynchronous paradigm to the reactive paradigm, highlighting the implications, benefits, and challenges resulting from this transition. To this end, the architecture, technologies, and design of a support application are presented, outlining the practical aspects of this experimental process while closely monitoring the phased migration. The results are examined in terms of functional equivalence, testing, and comparative analysis of response times, resource utilization, and throughput, as well as the cases where the reactive paradigm proves to be a solution worth considering. Across multiple scenarios, the reactive paradigm demonstrated advantages such as up to 12% reduction in memory usage, 56% faster 90th percentile response times, and a 33% increase in throughput under high-concurrency conditions. However, the results also reveal cases, such as data-intensive scenarios, where asynchronous programming outperforms reactive approaches. Additionally, possible directions for further research and development are presented. This paper not only investigates the design and implementation process but also sets a foundation for future research and innovation in dependable systems, collaborative technologies, sustainable solutions, and distributed system architecture. |
| format | Article |
| id | doaj-art-112c0ac31ebc4ef8a34f94a97e2b6359 |
| institution | OA Journals |
| issn | 2076-3417 |
| language | English |
| publishDate | 2024-12-01 |
| publisher | MDPI AG |
| record_format | Article |
| series | Applied Sciences |
| spelling | doaj-art-112c0ac31ebc4ef8a34f94a97e2b63592025-08-20T02:01:03ZengMDPI AGApplied Sciences2076-34172024-12-0114241206210.3390/app142412062Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in JavaAndrei Zbarcea0Cătălin Tudose1Faculty of Automatic Control and Computers, National University of Science and Technology POLITEHNICA Bucharest, 060042 Bucharest, RomaniaFaculty of Automatic Control and Computers, National University of Science and Technology POLITEHNICA Bucharest, 060042 Bucharest, RomaniaModern software application development imposes standards regarding high performance, scalability, and minimal system latency. Multi-threading asynchronous programming is one of the standard solutions proposed by the industry for achieving such objectives. However, the recent introduction of the reactive programming interface in Java presents a potential alternative approach for addressing such challenges, promising performance improvements while minimizing resource utilization. The research examines the migration process from the asynchronous paradigm to the reactive paradigm, highlighting the implications, benefits, and challenges resulting from this transition. To this end, the architecture, technologies, and design of a support application are presented, outlining the practical aspects of this experimental process while closely monitoring the phased migration. The results are examined in terms of functional equivalence, testing, and comparative analysis of response times, resource utilization, and throughput, as well as the cases where the reactive paradigm proves to be a solution worth considering. Across multiple scenarios, the reactive paradigm demonstrated advantages such as up to 12% reduction in memory usage, 56% faster 90th percentile response times, and a 33% increase in throughput under high-concurrency conditions. However, the results also reveal cases, such as data-intensive scenarios, where asynchronous programming outperforms reactive approaches. Additionally, possible directions for further research and development are presented. This paper not only investigates the design and implementation process but also sets a foundation for future research and innovation in dependable systems, collaborative technologies, sustainable solutions, and distributed system architecture.https://www.mdpi.com/2076-3417/14/24/12062Javaasynchronous programmingmulti-threadingreactive programmingmigration from asynchronous to reactive |
| spellingShingle | Andrei Zbarcea Cătălin Tudose Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java Applied Sciences Java asynchronous programming multi-threading reactive programming migration from asynchronous to reactive |
| title | Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java |
| title_full | Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java |
| title_fullStr | Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java |
| title_full_unstemmed | Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java |
| title_short | Migrating from Developing Asynchronous Multi-Threading Programs to Reactive Programs in Java |
| title_sort | migrating from developing asynchronous multi threading programs to reactive programs in java |
| topic | Java asynchronous programming multi-threading reactive programming migration from asynchronous to reactive |
| url | https://www.mdpi.com/2076-3417/14/24/12062 |
| work_keys_str_mv | AT andreizbarcea migratingfromdevelopingasynchronousmultithreadingprogramstoreactiveprogramsinjava AT catalintudose migratingfromdevelopingasynchronousmultithreadingprogramstoreactiveprogramsinjava |