Журнал: Том 30, № 3, 2025
Сторінки: 10 – 23
DOI: https://doi.org/10.62660/bcstu/3.2025.10
1 065 Переглядів

Фреймворк для порівняльного аналізу мережевих програмних бібліотек та його застосування до мережевих рішень C++

Єгор Грушевий, Костянтин Жереб
Отримано 07.04.2025
Доопрацьовано 10.08.2025
Прийнято 15.09.2025

Анотація

Об’єктивне порівняння мережевих бібліотек залишається актуальним завданням у програмній інженерії, адже відсутність уніфікованих підходів та залежність від специфіки застосунків часто ускладнюють виявлення важливих відмінностей у продуктивності та зручності використання. Метою дослідження було здійснення комплексного порівняння трьох мережевих бібліотек C++ (Boost.Asio, Boost.Beast та Poco.Net) на основі запропонованого універсального фреймворку. Методологія дослідження охоплювала розробку універсального порівняльного фреймворку, експериментальну реалізацію програмних прототипів, проведення навантажувального тестування для збору кількісних показників та здійснення структурованої якісної оцінки за рядом визначених критеріїв. Створений фреймворк включає збір як кількісних (пропускна здатність, затримка, споживання ресурсів), так і якісних показників (зручність інтерфейсу прикладного програмування, функціональність, стабільність, кросплатформність, складність розробки). Особлива увага приділялась поведінці в умовах однакового програмного середовища. З використанням кожної з досліджуваних бібліотек, у межах роботи реалізовано два клієнт-серверні прототипи: RESTful-сервіс ResourceMonitor і застосунок з потоковим передаванням даних GameOfLifeStreaming. Варіанти реалізації уніфіковано в структурі проєкту, що забезпечило мінімізацію відмінностей на рівні логіки та дозволило сфокусуватись на властивостях самих бібліотек. Boost.Asio продемонстрував переваги у задачах із високими вимогами до затримок і необхідністю низькорівневого контрою. Boost.Beast виявився достатньо ефективним вибором для HTTP-застосунків, але з обмеженим переліком підтримуваних протоколів. Poco.Net найефективніше використовував ресурси, не сильно деградував при великих навантаженнях, дозволяє працювати з найбільшою кількістю протоколів, але показав гірші показники затримок і пропускної здатності, а також потребував складнішої конфігурації. Практична цінність роботи полягає у можливості повторного використання фреймворку для порівняння інших мережевих бібліотек, інтеграції створених компонентів в інші розробки, а також у сформованих висновках щодо доцільності застосування кожної з бібліотек

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

Використані джерела

  1. Amirkhanov, B., Amirkhanova, G., Kunelbayev, M., Adilzhanova, S., & Tokhtassyn, M. (2025). Evaluating HTTP, MQTT over TCP and MQTT over WEBSOCKET for digital twin applications: A comparative analysis on latency, stability, and integration. International Journal of Innovative Research and Scientific Studies, 8(1), 679-694. doi: 10.53894/ijirss.v8i1.4414.
  2. Anzt, H., Chen, Y.-C., Cojean, T., Dongarra, J., Flegar, G., Nayak, P., Quintana-Ortí, E.S., Tsai, Y.M., & Wang, W. (2019). Towards continuous benchmarking: An automated performance evaluation framework for high performance software. In PASC 2019: Proceedings of the platform for advanced scientific computing conference (article number 9). New York: Association for Computing Machinery. doi: 10.1145/3324989.3325719.
  3. Ardarve, J., Finne, R., Hrustic, A., & Svennungsson, J. (2019). Enforcing privacy requirements on oblivious network agents - a software solution of a type system generated from COPPA. (Bachelor’s thesis, Chalmers University Of Technology, Gothenburg, Sweden).
  4. Baddi, Y., Sebbar, A., Zkik, K., Maleh, Y., Bensalah, F., & Boulmalf, M. (2023). MSDN-IoT multicast group communication in IoT based on software defined networking. Journal of Reliable Intelligent Environments, 10, 93-104. doi: 10.1007/s40860-023-00203-x.
  5. Butynets, D. (2023). Performance assessment of the different approaches to implementing network servers using C++ language. (Bachelor’s thesis, Ukrainian Ctholic University, Lviv, Ukraine).
  6. Che, M., & Tuo, M. (2016). Server program analysis based on HTTP protocol. MATEC Web of Conferences, 63, article number 05023. doi: 10.1051/matecconf/20166305023.
  7. Dawood, K.A., Zaidan, A.A., Sharif, K.Y., Ghani, A.A., Zulzalil, H., & Zaidan, B.B. (2023). Novel multi-perspective usability evaluation framework for selection of open source software based on BWM and group VIKOR techniques. International Journal of Information Technology & Decision Making, 22(1), 187-277. doi: 10.1142/ s0219622021500139.
  8. De La Mora, F.L., & Nadi, S. (2018). An empirical study of metric-based comparisons of software libraries. In Proceedings of the 14th international conference on predictive models and data analytics in software engineering (pp. 22-31). New York: Association for Computing Machinery. doi: 10.1145/3273934.3273937.
  9. Denisova, E., Tiribilli, E., Luschi, A., Francia, P., Manetti, L., Bocchi, L., & Iadanza, E. (2024). Enabling reliable usability assessment and comparative analysis of medical software: A comprehensive framework for multimodal biomedical imaging platforms. Health and Technology, 14, 671-682. doi: 10.1007/s12553-024-00859-2.
  10. El-Hajj, R., & Nadi, S. (2020). LibComp: An IntelliJ plugin for comparing Java libraries. In Proceedings of the 28th ACM joint meeting on European software engineering conference and symposium on the foundations of software engineering (pp. 1591-1595). New York: Association for Computing Machinery. doi: 10.1145/3368089.3417922.
  11. Kadusic, E., Zivic, N., Hadzajlic, N., & Ruland, C. (2022). The transitional phase of Boost. Asio and POCO C++ networking libraries towards IPv6 and IoT networking security. In 2022 IEEE international conference on smart internet of things (SmartIoT) (pp. 80-85). Suzhou: IEEE. doi: 10.1109/smartiot55134.2022.00022.
  12. Kayum, S.N., Alsalim, H., Tonellot, T., & Momin, A. (2020). A fault tolerant implementation for a massively parallel seismic framework. In 2020 IEEE high performance extreme computing conference (HPEC) (pp. 1-8). Waltham: IEEE. doi: 10.1109/hpec43674.2020.9286143.
  13. Loja, A., & Maita, T. (2024). Comparative evaluation of performance efficiency in terms of temporal behavior and resource utilization, according to the ISO/IEC 25,010 model, in a web application developed with Angular, React.js, and Vue.js. In G.F. Olmedo Cifuentes, D.G. Arcos Avilés & H.V. Lara Padilla (Eds.), Emerging research in intelligent systems. CIT 2023. Lecture notes in networks and systems (pp. 293-308). Cham: Springer. doi: 10.1007/978-3-031-52255-0_21.
  14. Lu, F., Fang, T., Zhang, Z., Li, S., Chen, J., An, H., & Han, W. (2019). Improving the performance of MongoDB with RDMA. In IEEE international conference on high performance computing and communications (HPCC) (pp. 1004-1010). Zhangjiajie: IEEE. doi: 10.1109/hpcc/smartcity/dss.2019.00144.
  15. Mitrović, D., Ivanović, M., Vidaković, M., & Budimac, Z. (2015). A scalable distributed architecture for Web-Based software agents. In M. Núñez, N. Nguyen, D. Camacho & B. Trawiński (Eds.), Computational collective intelligence. Lecture notes in computer science (pp. 67-76). Cham: Springer. doi: 10.1007/978-3-319-24069-5_7.
  16. Nechaieva, T., Teslenko, O., Trokhaniak, V., & Makarevych, S. (2025). Modeling energy balances of a community under increased energy independence and greenhouse gas reduction. Machinery & Energetics, 16(1), 104-116. doi: 10.31548/machinery/1.2025.104.
  17. Pasichnyk, Y. (2022). Performance analysis of synchronous and asynchronous parallel network server implementations using the C++ language. (Bachelor’s thesis, Ukrainian Ctholic University, Lviv, Ukraine).
  18. Petty, M.D., Kim, J., Park, S., & Lee, S. (2015). A methodology for quantitative assessment of the features and capabilities of software frameworks for model composition. International Journal of Modeling, Simulation, and Scientific Computing, 7(1), article number 1541002. doi: 10.1142/s1793962315410020.
  19. Pflugfelder, C. (2022). Asynchronous programs on loT devices. (Bachelor’s thesis, Institute for Formal Methods of Computer Science, Stuttgart, Germany).
  20. Sai, P.C., Karthik, K., Prasad, K.B., Pranav, C.V.S., & Divya, K.V. (2024). Real-time task manager: A Python-based approach using Psutil and Tkinter. In 2024 8th international conference on computational system and information technology for sustainable solutions (CSITSS) (pp. 1-6). Bengaluru: IEEE. doi: 10.1109/csitss64042.2024.10816758.
  21. Samoydiuk, А., & Ostapchuk, О. (2024). Optimizing high-load systems with asynchronous programming techniques. In Modeling, control and information technologies: Proceedings of VII international scientific and practical conference (pp. 130-131). Rivne: National University Of Water And Environmental Engineering. doi: 10.31713/mcit.2024.036.
  22. Turchyn, O. (2025). Introduction of neural network technologies to optimise control of suckerrod pump installation. Machinery & Energetics, 16(1), 32-42. doi: 10.31548/machinery/1.2025.32.

ЦИТУВАТИ

Hrushevyy, Ye., & Zhereb, K. (2025). Framework for the comparative analysis of networking software libraries and its application to C++ networking solutions. Bulletin of Cherkasy State Technological University, 30(3), 10-23. https://doi.org/10.62660/bcstu/3.2025.10