# Application of Neural Networks in Distribution of the Load in Cluster-Based Web Systems
## 1 Introduction  
The Internet is the primary medium that provides information; business services; telecommunication services; entertainment; and, during the COVID-19 pandemic, also other services, such as education and group meetings. To operate, internet services use servers based on web technologies.  
In the past, companies providing web services built and maintained their own server rooms. Cooperating servers that formed web clusters were used to maintain more demanding services. Nowadays, more sophisticated approaches are used, namely, cloud computing. It is a new computing paradigm, according to which companies rent computer system resources on demand, without direct active management of it. Cloud computing systems enable access to a shared pool of resources such as servers, storage, and applications [1; 2]. Organization of resources improves the performance, utilization of resources, and energy consumption management [3]. The popularity of the cloud attracts a variety of providers that offer a wide range of cloud-based services to users.  
Cloud system belonging to one company is physically divided into regions (server rooms) placed in different geographical locations. The regions themselves are also divided into availability zones--physically separated parts of the regions with independent infrastructure and resources [4]. Availability zones contain different resources, including servers with efficient processors.  
Quality of service (QoS) is the basis of cloud service and resource configuration management [5]. Load balancing mechanisms are implemented in order to reduce costs and increase quality of service. Such mechanisms are widely used in cluster-based systems. Effective distribution of load is still an open problem in cloud computing. New algorithms, methods, and architectures meeting clients' demands still need to be developed.  
In our previous work, we proposed many methods and solutions for load sharing and load distribution in cloud-based web systems [6; 7; 8; 9]. Most of the solutions use a neuro-fuzzyapproach to estimate the response time on different resources in the cloud. In this article, we present a new method of load distribution using artificial neurons and neural networks to estimate service times in the web system. The proposed method enables us to minimize the response time for every single HTTP request. While conducting the research, we tried many approaches including the application of a single artificial neuron, different structures of the neural networks, and different inputs for the networks. The experiments made it possible to choose an adequate solution for load distribution in the cloud. This enabled us to make a new design of load balancer designated for cluster-based web systems. The results obtained in the simulation experiments indicate that it is justified to continue the research in the environment of the real cloud computing system.  
The rest of the article is composed as follows. In Section 2, the related work is presented with the motivation and problem to solve. Section 3 introduces a description of load balancer construction. In Section 4, the testbed is given. Section 5 contains a description of different neural networks used in the load balancer and the results obtained. Section 6 includes conclusions and directions for further research.