PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Analiza porównawcza szkieletów do budowy aplikacji internetowych w ekosystemie Node.js

Treść / Zawartość
Identyfikatory
Warianty tytułu
EN
The comparative analysis of web applications frameworks in the Node.js ecosystem
Języki publikacji
PL
Abstrakty
PL
Przedmiotem badań była analiza porównawcza trzech szkieletów do budowy aplikacji internetowych działających w ekosystemie Node.js: Express (wersja 4.17.1), Hapi (wersja 20.0.1) oraz Koa (wersja 2.13.0). Przygotowano ekspe-ryment składający się z szeregu scenariuszy, podczas których dokonano pomiarów czasów odpowiedzi serwera na żądania przychodzące ze strony klienta. W ramach pracy zaimplementowano serwerowe aplikacje testowe obsługujące żądania HTTP (GET, POST, PUT, DELETE) realizujące typowe operacje na bazie danych. Aplikacje zawierały te same funkcjonalności i zostały zbudowane przy pomocy trzech testowanych szkieletów. W poszczególnych scenariuszach wysyłano od niezależnych klientów po 1000 żądań danego typu, dokonywano pomiarów czasów kolejnych odpowiedzi oraz obliczano ich średnie. Na podstawie uzyskanych wyników okazało się, że szkielety Hapi i Koa dla żądań typu GET, POST, PUT, DELETE, operujące na jednym obiekcie lub ciągu znaków Hello World! osiągnęły najlepsze, choć bardzo zbliżone czasy odpowiedzi. W przypadku żądania GET, przy większych obciążeniach zdecydowanie najlepszym okazał się szkielet Koa, uzyskując czasy odpowiedzi w przybliżeniu o 20% lepsze niż Express. Przy dużych obciążeniach zdecydowanie najgorzej wypadł szkielet Hapi osiągający ponad 2 razy dłuższe czasy odpowiedzi niż szkielet Koa.
EN
The subject of the research was the comparative analysis of three frameworks for building web applications, i.e. Ex-press (version 4.17.1), Hapi (version 20.0.1) and Koa (version 2.13.0), operating in the Node.js ecosystem. An experi-ment was prepared consisting of a number of scenarios, during which the server response times to incoming requests from the client were measured. As part of the work, server test applications handling HTTP requests (GET, POST, PUT, DELETE) performing typical data operations were implemented. The applications contained the same functionalities and were built using the three tested frameworks. In individual scenarios, 1,000 requests of a given type were sent from independent clients, the times of successive responses were measured and their averages were calculated. On the basis of the obtained results, Hapi and Koa frameworks for GET, POST, PUT, DELETE requests, operating on one object or a string Hello World! have achieved the best, although very similar, response times. In the case of the GET request, the Koa framework proved to be the best for higher loads, achieving response times approximately 20% better than the Express framework. For high loads, the Hapi framework achieved the worst results, reaching response times over 2 times longer than the Koa framework.
Rocznik
Tom
Strony
42--48
Opis fizyczny
Bibliogr. 19 poz., rys., tab.
Twórcy
  • Department of Computer Science, Lublin University of Technology, Nadbystrzycka 36B, 20-618 Lublin, Poland
  • Department of Computer Science, Lublin University of Technology, Nadbystrzycka 36B, 20-618 Lublin, Poland
Bibliografia
  • [1] A. Wójcik, M. Wolski, J. B. Smołka, Performance analysis of the Symfony framework for creating modern web application based on selected versions, Journal of Computer Sciences Institute 13 (2019) 293-297.
  • [2] Global companies using Node.js in production, https://www.tothenew.com/blog/how-are-10-global-companies-using-node-js-in-production/, [04.11.2020]
  • [3] G. A. Di Lucca, A. R. Fasolino, Testing web-based applications: The state of the art and future trends, Information and Software Technology 48 (2006) 1172-1186.
  • [4] M. Greiff, A. Johansson, Symfony vs Express: A Server-Side Framework Comparison, Dissertation 2019.
  • [5] K. Lei, Y. Ma, Z. Tan, Performance comparison and evaluation of web development technologies in PHP, Python and Node.js, IEEE Computer Society (2014) 661-668.
  • [6] I. K. Chaniotis, K. D. Kyriakou, N. D. Tselikas, Is Node.js a viable option for building modern web applications? A performance evaluation study, Computing 97 (10) (2015) 1023-1044.
  • [7] Rozpoczęcie pracy z Node.js, https://riptutorial.com/pl/node-js, [07.11.2020].
  • [8] R. T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, Doctoral dissertation, University of California, 2000.
  • [9] Wstęp do REST API, https://devszczepaniak.pl/wstep-do-rest-api/, [04.11.2020].
  • [10] Mastering REST, https://medium.com/@ahmetozlu93/
  • mastering-rest-architecture-rest-architecture-details-e47ec659f6bc, [04.11.2020].
  • [11] Postman, https://www.postman.com/, [04.11.2020].
  • [12] B. Mehta, RESTful Java Patterns and Best Practices, Packt Publishing, 2014.
  • [13] Perfy, https://www.npmjs.com/package/perfy, [04.11.2020].
  • [14] Dokumentacja Perfy, https://github.com/onury/perfy, [04.11.2020].
  • [15] Dokumentacja Express, https://expressjs.com/, [04.11.2020].
  • [16] Zestawienie szkieletów Node.js, https://www.simform.com/best-nodejs-frameworks/, [04.11.2020].
  • [17] Dokumentacja Hapi, https://hapi.dev/, [04.11.2020].
  • [18] Dokumentacja Koa, https://github.com/koajs/koa, [04.11.2020].
  • [19] JSONPlaceholder, https://jsonplaceholder.typicode.com/, [04.11.2020].
Uwagi
Opracowanie rekordu ze środków MNiSW, umowa Nr 461252 w ramach programu "Społeczna odpowiedzialność nauki" - moduł: Popularyzacja nauki i promocja sportu (2021).
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-90add391-6577-42e2-931a-10c262cf7d53
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.