ON THE ISSUE OF BUILDING THE ARCHITECTURE OF MODERN ENTERPRISE APPLICATIONS ON NODE.JS
Abstract
Abstract. The article reveals the issue of building the architecture of modern enterprise applications on Node.js. Node.js has been identified as an extremely powerful JavaScript-based platform built with the Google Chrome JavaScript V8 Engine, which is used to develop web applications with intensive I / O. It is emphasized that a program that runs on a server and is processed by a client browser using the Internet to access all resources of this program is usually easily divided into three parts: client, when a user interacts with the interface part of a web program; a server that is responsible for receiving client requests, performing necessary tasks and sending responses to clients, and a database that stores data for a web application. It is noted that Node.js uses a "single-threaded event loop" architecture to handle multiple concurrent clients. The Node.js processing model is based on the JavaScript event model along with the JavaScript callback mechanism. It is noted that parts of the Node.js architecture consist of queries that can be blocking (complex) or non-blocking (simple) depending on the tasks that the user wants to perform in the web application; Node.js server, which is a server platform that receives requests from users, processes them and returns responses to the appropriate users; an event queue that stores incoming customer requests and passes them one by one to the event loop; a thread pool consisting of all threads available to perform some tasks that may be required to execute client requests; an event loop that receives and processes requests indefinitely and then returns responses to the appropriate clients and the external resources needed to block client requests. Architecture of modern corporate applications on Node.js. is based on the use of two separate areas: "top-down" for the respective roles, which helps developers to combine and disconnect modules, and the direction of "divide and conquer" in accordance with the tasks performed, which helps developers to divide tasks into simpler modules, allowing to develop several modules at the same time. The developed architecture is designed to effectively structure the design of applications for better maintainability and extensibility over time.