PL EN


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

Porównanie wydajności aplikacji internetowych REST API opartych na szkieletach programistycznych JavaScript

Treść / Zawartość
Identyfikatory
Warianty tytułu
EN
REST API performance comparison of web applications based on JavaScript programming frameworks
Języki publikacji
PL
Abstrakty
PL
Celem pracy było porównanie dwóch technologii do tworzenia aplikacji serwerowych opartych na języku programowania JavaScript. Na potrzeby badań utworzono dwie aplikacje testowe: pierwszą zbudowano na podstawie szkieletu programistycznego Express, a druga została wykonana na bazie szkieletu Hapi. Część kliencką obu aplikacji przygotowano za pomocą biblioteki React. Część kliencka i serwerowa komunikowały się ze sobą za pośrednictwem REST API - uniwersalnego interfejsu HTTP. Aplikacja kliencka wysyłała żądania do aplikacji serwerowej, która następnie wykonywała podstawowe operacje na bazie MongoDB i zwracała rezultat. W ramach pracy opracowano eksperyment składający się z czterech scenariuszy. W każdym scenariuszu operowano na innym typie danych: łańcuchu znaków, tablicy, obiekcie oraz tablicy obiektów. W badaniach skoncentrowano się na aspekcie wydajnościowym - pomiarze czasów obsługi żądań podczas operacji GET, POST, PUT i DELETE. Badania przeprowadzono na dwóch komputerach, a pomiary wykonano dwoma sposobami: za pomocą prostego kodu wbudowanego w aplikacje testowe oraz za pomocą narzędzia Postman. Uzyskane wyniki, po ich uśrednieniu i przeanalizowaniu pozwoliły na sformułowanie wniosku, że szkielet Express okazał się wydajniejszy niż Hapi, ze względu na krótsze czasy obsługi żądań. Tylko w scenariuszu, w którym wykonywano operacje na dużych zbiorach danych, czasy obsługi żądań były na podobnym poziomie.
EN
The aim of the work was to compare two technologies for creating server applications based on the JavaScript pro-gramming language. For the purposes of the research, two test applications were created. The first one was built on the basis of the Express programming framework and the second one on the basis of the Hapi framework. The client part of both applications was prepared using the React library. The client and server parts communicated with each other by means of REST API – the universal HTTP interface. The client application sent requests to the server application which then performed basic operations on the MongoDB basis and returned the result. As part of the work, an experiment consisting of four scenarios was developed. In each scenario, a different type of data was taken into consideration: a string of characters, an array, an object and an array of objects. The research focused on the efficiency aspect – measuring the response time of requests during GET, POST, PUT and DELETE operations. The tests were performed on two computers and the measurements were made in two ways: using a single code embedded in test applications and using the Postman tool. The obtained results, after averaging and analyzing them allowed for the conclusion that the Express framework proved to be more efficient than Hapi due to the shorter response time of requests. Only in the scenario where operations with large datasets were performed was the response time of requests at a similar level.
Rocznik
Tom
Strony
121--125
Opis fizyczny
Bibliogr. 17 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] M. Pilar Salas-Zarate, G. Alor-Hernandez, R. Valencia-Garcia, L. Rodriguez-Mazahua, A. Rodriguez-Gonzalez, J. L. Lopez Cuadro, Analyzing best practices on Web development frameworks: The lift approach, Science of Computer Programming, Science of Computer Programming, 102, (2015) 1-19, https://doi.org/10.1016/j.scico.2014.12.004, [16.03.2021].
  • [2] Mozilla Developer Network, Wprowadzenie do Express/Node, https://developer.mozilla.org/pl/docs/Learn/Server-side/Express_Nodejs/Introduction, [16.03.2021].
  • [3] Offshore Web Developer, Hapi vs Express: Which NodeJS Frameworks is the Better?, http://www.offshorewebdeveloper.com/blog/hapi-vs-express/, [16.03.2021].
  • [4] Stackoverflow.com, https://insights.stackoverflow.com/survey/2020#technology, [27.03.2021].
  • [5] Github.com, https://github.com/showcases/web-application-frameworks, [27.03.2021].
  • [6] Stateofjs, https://2020.stateofjs.com/en-US/technologies/back-end-frameworks/, [27.03.2021].
  • [7] RapidAPI Blog, The Best NodeJS Frameworks for 2021, https://rapidapi.com/blog/best-nodejs-frameworks/, [25.03.2021].
  • [8] Frameworks built on Express, https://expressjs.com/, https://expressjs.com/en/resources/frameworks.html, [25.03.2021].
  • [9] S. Martin, Top 10 Node.js Frameworks For Web App Development in 2021, https://javascript.plainenglish.io/top-10-node-js-frameworks-for-web-app-development-in-2020-21-38e3ea2a57e5, [25.03.2021].
  • [10] Npm trends, https://www.npmtrends.com/express-vs-hapi, [27.03.2021].
  • [11] D. Swerski, Hapi vs. Express in 2019: Node.js framework comparison, https://raygun.com/blog/hapi-vs-express/, [26.10.2020].
  • [12] Raygun, Node.js performance vs Hapi, Express, Restify, Koa & More, https://raygun.com/blog/nodejs-vs-hapi-express-restify-koa/, [26.10.2020].
  • [13] B. Miłosierny, M. Dzieńkowski, The comparative analysis of web application frameworks in the Node.js ecosystem, Journal of Computer Science Institute, 18, (2021) 42-48, https://doi.org/10.35784/jcsi.2423, [30.03.2021].
  • [14] J. Brett, Getting Started with hapi.js, Packt Publishing, 2016.
  • [15] E. M. Hahn, Express in action. Writing, building, and testing Node.js applications, Manning Publications Co., 2016.
  • [16] M. Massé, REST API Design Rulebook, O’Reilly, 2012.
  • [17] Postman, https://www.postman.com/, [27.03.2021].
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-d0c3a541-ce93-4088-85f6-cd8786eeae1f
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ć.