[go: up one dir, main page]

RU2771444C1 - System and method for balancing connections between clients and servers - Google Patents

System and method for balancing connections between clients and servers Download PDF

Info

Publication number
RU2771444C1
RU2771444C1 RU2021113655A RU2021113655A RU2771444C1 RU 2771444 C1 RU2771444 C1 RU 2771444C1 RU 2021113655 A RU2021113655 A RU 2021113655A RU 2021113655 A RU2021113655 A RU 2021113655A RU 2771444 C1 RU2771444 C1 RU 2771444C1
Authority
RU
Russia
Prior art keywords
server
client
servers
information
list
Prior art date
Application number
RU2021113655A
Other languages
Russian (ru)
Inventor
Денис Олегович Влазнев
Евгений Владимирович Буштырев
Original Assignee
Акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество "Лаборатория Касперского" filed Critical Акционерное общество "Лаборатория Касперского"
Priority to RU2021113655A priority Critical patent/RU2771444C1/en
Application granted granted Critical
Publication of RU2771444C1 publication Critical patent/RU2771444C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

FIELD: computer technology.
SUBSTANCE: invention relates to the field of computer technology for controlling elements of a computer network. The expected result is achieved by collecting data about servers from the generated set of servers using a scanning server running with the corresponding server from the generated set of servers; collecting customer data from the generated set of clients using an agent working with the corresponding client from the generated set of clients; formation using the service detection tool of a list of available servers for each client based on the collected data, while the generated list of available servers is stable relative to changes in the collected data in a given range; selection using the server balancing tool from the list of available servers generated for the specified client based on the occurrence of the specified conditions; implementation of the conditions for connection balancing using the agent for connection between the specified client and the selected server.
EFFECT: increase in the performance of the client-server architecture by reducing the number of connections between clients and servers.
20 cl, 3 dwg

Description

Область техникиTechnical field

Изобретение относится к области управления компьютерными сетями, а более конкретно к системам и способам балансировки подключений между клиентами и серверами.The invention relates to the field of computer network management, and more specifically to systems and methods for balancing connections between clients and servers.

Уровень техникиState of the art

Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования упомянутых устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-сёрфинга до банковских переводов и ведения электронного документооборота).The rapid development of computer technology in the last decade, as well as the widespread use of various computing devices (personal computers, laptops, tablets, smartphones, etc.) have become a powerful incentive for the use of these devices in various fields of activity and for a huge number of tasks (from the Internet to surfing to bank transfers and electronic document management).

Всё это дало толчок к развитию технологий параллельных и распределённых вычислений, облачных технологий и т.д., когда ресурсоёмкие задачи лишь частично выполняются на клиентах, а большая часть работы зачастую выполняется на распределённых серверах, с которыми упомянутые клиенты устанавливают соединения. В качестве примеров можно привести удалённое решение сложных математических задач, работу с мультимедиа данными, разнообразные антивирусные проверки и даже рендеринг в компьютерных играх.All this gave impetus to the development of technologies for parallel and distributed computing, cloud technologies, etc., when resource-intensive tasks are only partially performed on clients, and most of the work is often performed on distributed servers, with which the mentioned clients establish connections. Examples include remote solving complex mathematical problems, working with multimedia data, various anti-virus checks, and even rendering in computer games.

Кроме требований к стабильности работы серверов при такой организации работы зачастую также предъявляются жёсткие требования к устойчивости соединения между клиентами и серверами, к эффективности обмена данными между клиентами и серверами и т.д. Реализация данных требований часто негативно сказывается на других характеристиках работы, например, объёме генерируемого сетевого трафика между клиентами и серверами и т.п.In addition to the requirements for the stability of the servers, this organization of work often also imposes strict requirements on the stability of the connection between clients and servers, on the efficiency of data exchange between clients and servers, etc. The implementation of these requirements often negatively affects other performance characteristics, for example, the amount of network traffic generated between clients and servers, etc.

Для обеспечения устойчивости соединений между клиентами и серверами реализуется подход, при котором клиент держит у себя список серверов, с которыми он может соединяться, и в случае обрыва соединения обеспечивает соединение со следующим сервером из списка, что позволяет выполнять поставленную задачу постоянно. To ensure the stability of connections between clients and servers, an approach is implemented in which the client keeps a list of servers with which it can connect, and in the event of a connection break, it provides a connection to the next server from the list, which allows you to perform the task all the time.

В целях выполнения автоматического переключения клиентов между серверами при потере соединения или в процессе балансировки нагрузки каждый клиент получает список серверов, доступных для подключения данному клиенту. Получив список доступных для подключения серверов, клиент периодически опрашивает каждый сервер из списка на предмет его сетевой доступности и запрашивает текущую загрузку и прочую служебную информацию. В случае если большому количеству клиентов доступно достаточно много серверов (например, 10 тысячам клиентов доступно 100 серверов), в сети возникает большой объем служебного трафика, генерируемого каждой парой клиент-сервер (например, для 10 тысяч клиентов и 100 серверов генерируется 1 миллион пар). В результате возможны инциденты, когда используемые на клиенте межсетевые экраны достигают установленного максимального количества соединений, и работа сети нарушается.In order to automatically switch clients between servers when a connection is lost or during load balancing, each client receives a list of servers available for connection to this client. Having received a list of servers available for connection, the client periodically polls each server from the list for its network availability and requests the current load and other service information. If a large number of clients have enough servers available (for example, 10 thousand clients have access to 100 servers), the network generates a large amount of service traffic generated by each client-server pair (for example, 1 million pairs are generated for 10 thousand clients and 100 servers) . As a result, incidents are possible when the firewalls used on the client reach the set maximum number of connections, and the network is disrupted.

В публикации US9680764B2 описывается технология балансировки нагрузки виртуальных машин, соединённых в закольцованную систему. Для балансировки используются агенты, подключённые к указанной системе виртуальных машин и получающие задачи по подключению от промежуточного устройства. Агенты определяют нагрузку на заданные виртуальные машины и определяют, к каким виртуальным машинам требуется осуществить соединение. Publication US9680764B2 describes a technology for load balancing virtual machines connected in a looped system. For balancing, agents are used that are connected to the specified system of virtual machines and receive connection tasks from an intermediate device. Agents determine the load on given virtual machines and determine which virtual machines to connect to.

Хотя описанная технология и справляется с задачей балансировки нагрузки на виртуальные машины (т.е. оптимизирует производительность клиент-серверных систем), она не справляется с задачами балансировки подключений между клиентами и серверами при большом количестве клиентов (проблема описана выше).Although the described technology copes with the task of load balancing on virtual machines (i.e., it optimizes the performance of client-server systems), it does not cope with the tasks of balancing connections between clients and servers with a large number of clients (the problem is described above).

Настоящее изобретение позволяет решать задачи балансировки подключений между клиентами и серверами для устранения описанных выше проблем.The present invention makes it possible to solve the problems of balancing connections between clients and servers in order to overcome the problems described above.

Раскрытие изобретенияDisclosure of invention

Изобретение предназначено для управления элементами компьютерной сети.The invention is intended to control the elements of a computer network.

Технический результат настоящего изобретения заключается в уменьшении сетевого трафика за счёт соединения между заданными клиентом и сервером.The technical result of the present invention is to reduce network traffic due to the connection between a given client and server.

Ещё один технический результат настоящего изобретения заключается в повышении производительности клиент-серверной архитектуры за счёт уменьшения количества соединений между клиентами и серверами.Another technical result of the present invention is to improve the performance of the client-server architecture by reducing the number of connections between clients and servers.

Данные результаты достигаются с помощью использования системы балансировки подключений между клиентами и серверами, которая содержит сервер сканирования, работающий на каждом сервере из сформированного набора серверов и предназначенный для сбора данных о сервере; агент, работающий на каждом клиенте из сформированного набора клиентов и предназначенный для: сбора данных об указанном клиенте; соединения между указанным клиентом и выбранным сервером; средство обнаружения сервисов, предназначенное для формирования списка доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне; средство балансировки, предназначенное для выбора сервера из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий для выполнения балансировки подключения.These results are achieved by using a system for balancing connections between clients and servers, which contains a scanning server running on each server from the generated set of servers and designed to collect data about the server; an agent that works on each client from the generated set of clients and is designed to: collect data about the specified client; connections between the specified client and the selected server; a service discovery means for generating a list of available servers for each client based on the collected data, wherein the generated list of available servers is stable against changes in the collected data within a predetermined range; a balancing tool designed to select a server from the list of available servers generated for the specified client based on the occurrence of specified conditions for balancing the connection.

В другом частном случае реализации системы в качестве данных о сервере выступают по меньшей мере: идентификатор сервера, в частности его BIOS ID; IP адрес сервера и порт подключения клиента к серверу; информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер; информация об установленном программном обеспечении, в том числе по меньшей мере: информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии; информация о версии антивирусных баз, используемых сервером сканирования; информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах; информация о расположении сервера в виртуальной инфраструктуре.In another particular case of the system implementation, the server data are at least: the server identifier, in particular its BIOS ID; Server IP address and client connection port to the server; information about the network availability of the server, in particular about the integrity and quality of the connection between the client and the server; information about the tags served, where the tags are predefined labels that characterize at least a server, a client-server pair; information about the installed software, including at least: information about the license of the scan server running on the server, in particular the presence and type of license; information about the version of the anti-virus databases used by the scanning server; information about the available computing resources of the server, in particular about the clients connected to the server; information about the location of the server in the virtual infrastructure.

Ещё в одном частном случае реализации системы в качестве данных о клиенте выступают по меньшей мере идентификатор клиента, в частности его BIOS ID; информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер; информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте; информация о требуемых клиенту вычислительных ресурсах; информация о расположении клиента в виртуальной инфраструктуре.In another particular case of system implementation, at least the client identifier, in particular, its BIOS ID, acts as client data; information about the network availability of the client, in particular about the integrity and quality of the connection between the client and the server; information about the tags being served, where the tags are predefined labels that characterize at least a client, a client-server pair; information about installed software, in particular, information about the version of anti-virus databases used by the agent running on the client; information about the computing resources required by the client; information about the location of the client in the virtual infrastructure.

В другом частном случае реализации системы в качестве сервера выступает виртуальная машина.In another particular case of system implementation, a virtual machine acts as a server.

Ещё в одном частном случае реализации системы формируют список доступных серверов в виде направленного кольцевого списка серверов.In another particular case, system implementations form a list of available servers in the form of a directed circular list of servers.

В другом частном случае реализации системы список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.In another particular implementation of the system, the list of available servers is ordered by the hash value of the server ID.

Ещё в одном частном случае реализации системы для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.In another particular case of the implementation of the system for reconnecting the client, servers are sequentially selected from the list of available servers, starting from the server whose hash value of the identifier is located immediately after the potential position of the hash sum of the agent identifier in the directed circular list of servers.

В другом частном случае реализации системы сформированные для клиентов списки доступных серверов суммарно содержат количество серверов меньше заданного порогового значения.In another particular case of system implementation, the lists of available servers generated for clients contain the total number of servers less than the specified threshold value.

Ещё в одном частном случае реализации системы в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере: обрыв соединения между клиентом и сервером; обнаружение сервера с помощью заданного алгоритма балансировки.In another particular case of the system implementation, at least the following conditions act as predetermined conditions for balancing the connection between the client and the server: disconnection between the client and the server; server discovery using the specified balancing algorithm.

В другом частном случае реализации системы в качестве алгоритма балансировки выступает обученная модель балансировки.In another particular case of system implementation, a trained balancing model acts as a balancing algorithm.

Данные результаты достигаются с помощью использования способа балансировки подключений между клиентами и серверами, при этом способ содержит этапы, которые реализуются с помощью средств из системы по п.1 и на которых: собирают с помощью сервера сканирования, работающего на соответствующем сервере из сформированного набора серверов, данные о серверах из сформированного набора серверов; собирают с помощью агента, работающего на соответствующем клиенте из сформированного набора клиентов, данные о клиентах из сформированного набора клиентов; формируют с помощью средства обнаружения сервисов список доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне; выбирают с помощью средства балансировки сервер из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий; осуществляют с помощью агента соединение между указанным клиентом и выбранным сервером условий для выполнения балансировки подключения.These results are achieved by using a method for balancing connections between clients and servers, while the method contains steps that are implemented using the tools from the system according to claim 1 and in which: they are collected using a scan server running on the corresponding server from the generated set of servers, data about servers from the generated set of servers; collecting, by means of an agent running on a corresponding client from the generated set of clients, data about the clients from the generated set of clients; using the service discovery tool, generating a list of available servers for each client based on the collected data, wherein the generated list of available servers is stable to changes in the collected data within a predetermined range; using the balancing tool, a server is selected from the list of available servers generated for the specified client based on the occurrence of specified conditions; using an agent to establish a connection between the specified client and the selected condition server to perform connection balancing.

В другом частном случае реализации способа в качестве данных о сервере выступают по меньшей мере: идентификатор сервера, в частности его BIOS ID; IP адрес сервера и порт подключения клиента к серверу; информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер; информация об установленном программном обеспечении, в том числе по меньшей мере: информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии; информация о версии антивирусных баз, используемых сервером сканирования; информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах; информация о расположении сервера в виртуальной инфраструктуре.In another particular case of the implementation of the method, the data about the server are at least: the server identifier, in particular its BIOS ID; Server IP address and client connection port to the server; information about the network availability of the server, in particular about the integrity and quality of the connection between the client and the server; information about the tags served, where the tags are predefined labels that characterize at least a server, a client-server pair; information about the installed software, including at least: information about the license of the scan server running on the server, in particular the presence and type of license; information about the version of the anti-virus databases used by the scanning server; information about the available computing resources of the server, in particular about the clients connected to the server; information about the location of the server in the virtual infrastructure.

Ещё в одном частном случае реализации способа в качестве данных о клиенте выступают по меньшей мере: идентификатор клиента, в частности его BIOS ID; информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер; информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте; информация о требуемых клиенту вычислительных ресурсах; информация о расположении клиента в виртуальной инфраструктуре..In another particular case of the implementation of the method, at least the following are used as client data: client identifier, in particular, its BIOS ID; information about the network availability of the client, in particular about the integrity and quality of the connection between the client and the server; information about the tags being served, where the tags are predefined labels that characterize at least a client, a client-server pair; information about installed software, in particular, information about the version of anti-virus databases used by the agent running on the client; information about the computing resources required by the client; information about the location of the client in the virtual infrastructure.

В другом частном случае реализации способа в качестве сервера выступает виртуальная машина.In another particular case of the implementation of the method, a virtual machine acts as a server.

Ещё в одном частном случае реализации способа формируют список доступных серверов в виде направленного кольцевого списка серверов.In another particular case of implementing the method, a list of available servers is formed in the form of a directed circular list of servers.

В другом частном случае реализации способа список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.In another particular case of the implementation of the method, the list of available servers is ordered by the value of the hash sum of the server identifier.

Ещё в одном частном случае реализации способа для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.In another particular case of implementing the method for reconnecting the client, servers are sequentially selected from the list of available servers, starting from the server whose identifier hash value is located immediately after the potential position of the agent identifier hash value in the directed circular list of servers.

В другом частном случае реализации способа формированные для клиентов списки доступных серверов суммарно содержат серверов меньше заданного порогового значения.In another particular case of the implementation of the method, the lists of available servers generated for clients contain servers in total that are less than a predetermined threshold value.

Ещё в одном частном случае реализации способа в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере: обрыв соединения между клиентом и сервером; обнаружение сервера с помощью заданного алгоритма балансировки.In another particular case of the implementation of the method, at least the following acts as predetermined conditions for balancing the connection between the client and the server: disconnection between the client and the server; server discovery using the specified balancing algorithm.

В другом частном случае реализации способа в качестве алгоритма балансировки выступает обученная модель балансировки.In another particular case of the implementation of the method, the trained balancing model acts as a balancing algorithm.

Краткое описание чертежейBrief description of the drawings

Фиг. 1 представляет структурную схему системы балансировки подключений между клиентами и серверами. Fig. 1 is a block diagram of a system for balancing connections between clients and servers.

Фиг. 2 представляет структурную схему способа балансировки подключений между клиентами и серверами. Fig. 2 is a block diagram of a method for balancing connections between clients and servers.

Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер. Fig. 3 represents an example of a general purpose computer system, a personal computer or a server.

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.Although the invention may have various modifications and alternative forms, the characteristic features shown by way of example in the drawings will be described in detail. It should be understood, however, that the purpose of the description is not to limit the invention to a particular embodiment thereof. On the contrary, the purpose of the description is to cover all changes, modifications, included in the scope of this invention, as defined by the attached claims.

Описание вариантов осуществления изобретенияDescription of embodiments of the invention

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведённая в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объёме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, but may be embodied in various forms. The gist of the description is nothing but the specific details necessary to assist a person skilled in the art in a thorough understanding of the invention, and the present invention is defined within the scope of the appended claims.

Введём ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.Let us introduce a number of definitions and concepts that will be used in describing embodiments of the invention.

Виртуальная машина (англ. virtual machine, VM) - виртуальная вычислительная система, которая состоит из виртуальных устройств обработки, хранения и передачи данных, и которая дополнительно может содержать программное обеспечение и пользовательские данные. Virtual machine (eng. virtual machine, VM ) - a virtual computing system that consists of virtual devices for processing, storing and transmitting data, and which may additionally contain software and user data.

Частным случаем виртуальной машины является виртуальная машина для обеспечения безопасности (англ. security virtual machine, SVM) – виртуальная машина, обеспечивающая информационную безопасность передаваемых ей данных.A special case of a virtual machine is a security virtual machine (eng. security virtual machine, SVM ) - a virtual machine that ensures the information security of the data transmitted to it.

Фиг. 1 представляет структурную схему системы балансировки подключений между клиентами и серверами. Fig. 1 is a block diagram of a system for balancing connections between clients and servers.

Структурная схема системы балансировки подключений между клиентами и серверами состоит из серверов 110, серверов сканирования 111, клиентов 120, агентов 121, средства обнаружения сервисов 130, средства балансировки 140, модели балансировки 141, средства переобучения 150.The block diagram of the connection balancing system between clients and servers consists of servers 110 , scan servers 111 , clients 120 , agents 121 , service discovery 130 , balancing 140 , balancing model 141 , retraining 150 .

В общем случае сервера 110 являются частью заранее сформированного набора серверов, из которого указанные сервера могут выбираться, представляющего собой базу данных, содержащую информацию об указанных серверах.In general, servers 110 are part of a pre-configured set of servers from which said servers can be selected, which is a database containing information about said servers.

В общем случае клиенты 120 являются частью заранее сформированного набора клиентов, из которого указанные клиенты могут выбираться, представляющего собой базу данных, содержащую информацию об указанных клиентах.In general, clients 120 are part of a predefined set of clients from which said clients can be selected, which is a database containing information about said clients.

Сервер сканирования 111, работающий на каждом сервере 110 из набора серверов, предназначен для сбора данных об указанном сервере 110 и передачи данных средству обнаружения сервисов 130.The scan server 111 running on each server 110 of the set of servers is designed to collect data about the specified server 110 and pass the data to the service discoverer 130 .

В одном из вариантов реализации системы в качестве сервера 110 выступает виртуальная машина.In one implementation of the system, the server 110 is a virtual machine.

Например, на каждом из нескольких серверов 110 может работать несколько виртуальных машин, к которым и подключаются клиенты 120 (т.е. клиент 120 устанавливает соединение с сервером 110 и обменивается данными с виртуальной машиной, работающей на указанном сервере 110, причем соединение с сервером 110 может быть «прозрачным», т.е. клиент 120 работает с виртуальной машиной напрямую, а промежуточная работа с сервером 110 выполняется внешними сервисами).For example, each of several servers 110 can run several virtual machines to which clients 120 connect (i.e., client 120 establishes a connection with server 110 and communicates with a virtual machine running on the specified server 110 , and the connection with server 110 can be "transparent", i.e. the client 120 works directly with the virtual machine, and the intermediate work with the server 110 is performed by external services).

Ещё в одном из вариантов реализации системы в качестве данных о сервере 110 выступают по меньшей мере:In yet another implementation of the system, the data about the server 110 are at least:

• идентификатор сервера 110, в частности его BIOS ID;server identifier 110 , in particular its BIOS ID;

• IP-адрес сервера 110 и порт подключения клиента 120 к серверу 110;• IP-address of the server 110 and the connection port of the client 120 to the server 110 ;

• информация о сетевой доступности сервера 110, в частности о целостности и качестве соединения между клиентом 120 и сервером 110;• information about the network availability of the server 110 , in particular the integrity and quality of the connection between the client 120 and the server 110 ;

• информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере:• information about the tags served, where the tags are predefined labels that characterize at least:

• сервер 110, server 110 ,

• пару клиент 120 – сервер 110;• a pair of client 120 - server 110 ;

• информация об установленном на сервере 110 программном обеспечении, в том числе по меньшей мере:• information about the software installed on the server 110 , including at least:

• информация о лицензии сервера сканирования 111, работающего на сервере 110, в частности о наличии и типе лицензии;• information about the license of the scan server 111 operating on the server 110 , in particular the availability and type of license;

• информация о версии антивирусных баз, используемых сервером сканирования 111;• information about the version of the anti-virus databases used by the scan server 111 ;

• информация о доступных вычислительных ресурсах сервера 110, в частности о подключённых к серверу 110 клиентах 120;• information about the available computing resources of the server 110 , in particular about the clients 120 connected to the server 110 ;

• информация о расположении сервера 110 в виртуальной инфраструктуре.• information about the location of the server 110 in the virtual infrastructure.

В качестве идентификатора сервера 110 может выступать любая известная из уровня техники характеристика, однозначно идентифицирующая указанный сервер 110.The identifier of the server 110 can be any characteristic known from the prior art that uniquely identifies the specified server 110 .

В качестве информации о сетевой доступности сервера 110 могут выступать данные, полученные такими утилитами, как ping и tracert, а именно:The information about the network availability of the server 110 can be data received by utilities such as ping and tracert , namely:

• работает ли запрашиваемый сервер 110;• whether the requested server 110 is running;

• процент потерянных сетевых пакетов, переданных от клиента 120 серверу 110;• percentage of lost network packets transmitted from client 120 to server 110 ;

• время, затрачиваемое на передачу сетевых пакетов от клиента 120 серверу 110 и обратно;• the time taken to transfer network packets from the client 120 to the server 110 and vice versa;

• маршрут следования данных от клиента 120 к серверу 110.• the data path from the client 120 to the server 110 .

В качестве обслуживаемых тегов могут выступать данные (в том числе числа и строки), позволяющие группировать сервера 110 из набора доступных серверов и формировать списки доступных серверов для клиентов 120, выбирая сервера 110 из заданных групп.Served tags can be data (including numbers and strings) that allows you to group servers 110 from a set of available servers and generate lists of available servers for clients 120 by selecting servers 110 from predetermined groups.

Например, для клиентов 120 с обслуживаемым тегом ‘xyz’ заранее формируют (любым известным из уровня техники способом, например, силами аналитика или автоматически на основании характеристик, описывающих сервера 110 и клиенты 120 и позволяющих провести их кластеризацию) список доступных серверов из группы серверов с тем же тегом ‘xyz’. При этом теги могут формироваться аналитиками.For example, for clients 120 with a served tag 'xyz' , a list of available servers from a group of servers with the same 'xyz' tag. In this case, tags can be formed by analysts.

В качестве информации об установленном на сервере 110 программном обеспечении может выступать информация о лицензии сервера сканирования 111 (англ. software license - лицензия на программное обеспечение), работающего на сервере 110, при этом списки доступных серверов формируются в порядке уменьшения приоритета из серверов 110, на которых функционируют сервера сканирования 111 с коммерческой лицензией, с бесплатной лицензией и с отсутствием лицензии.Information about the license of the scan server 111 (eng. software license - software license) running on the server 110 can be used as information about the software installed on the server 110 , while the lists of available servers are formed in order of decreasing priority from the servers 110 , on which operate the scan servers 111 with a commercial license, with a free license and with no license.

В одном из вариантов реализации системы описываемая клиент-серверная архитектура предназначена для распределённой проверки объектов (файлов, дампов памяти и т.д.), выявляемых на клиенте 120, как на указанном клиенте 120, так и на специализированном сервере 110. Т.е. используется для осуществления облачной антивирусной защиты. В этом случае как на клиенте 120, так и на сервере 110 функционируют антивирусные движки (англ. anti-malware engine), которые по запросу клиента 120 через агента 121 осуществляют анализ предоставляемых агентом 121 объектов.In one of the embodiments of the system, the described client-server architecture is intended for distributed verification of objects (files, memory dumps, etc.) detected on the client 120 , both on the specified client 120 and on a specialized server 110 . Those. used to implement cloud-based antivirus protection. In this case, both on the client 120 and on the server 110 , anti-malware engines operate, which, at the request of the client 120 through the agent 121 , analyze the objects provided by the agent 121 .

В случае, когда описываемая клиент-серверная архитектура используется для облачной антивирусной защиты (см. выше), список доступных серверов формируют (любым известным из уровня техники способом, например, силами аналитика или автоматически на основании характеристик, описывающих сервера 110 и клиенты 120) из серверов 110, на которых антивирусные базы, используемые сервером сканирования 111, имеют версию такую же, как и антивирусные базы, используемые агентом 121, функционирующем на клиенте 120.In the case when the described client-server architecture is used for cloud-based anti-virus protection (see above), the list of available servers is formed (by any method known from the prior art, for example, by an analyst or automatically based on characteristics describing servers 110 and clients 120 ) from servers 110 , on which the anti-virus databases used by the scan server 111 have the same version as the anti-virus databases used by the agent 121 operating on the client 120 .

Ещё в одном примере список доступных серверов формируют из серверов 110, на которых антивирусные базы обновлялись не позднее или не раньше заданного временного диапазона, чем антивирусные базы, используемые агентом 121, функционирующем на клиенте 120. In another example, the list of available servers is formed from servers 110 , on which the anti-virus databases were updated no later than or no earlier than the specified time range than the anti-virus databases used by the agent 121 operating on the client 120 .

Например, антивирусные базы на сервере 110 не должны быть более чем на 8 часов старше антивирусных баз на клиенте 120.For example, anti-virus databases on server 110 should not be more than 8 hours older than anti-virus databases on client 120 .

В качестве информации о вычислительных ресурсах сервера 110 может выступать по меньшей мере:As information about the computing resources of the server 110 may be at least:

• загрузка сервера 110 (к примеру, процент использования процессора или объёма оперативной памяти);• the load on the server 110 (eg percentage of CPU or RAM used);

• производительность сервера 110;server performance 110 ;

• некоторый комплексный весовой коэффициент, вычисляемый на основании различных параметров, характеризующих работу сервера 110.• some complex weight coefficient calculated on the basis of various parameters characterizing the operation of the server 110 .

В качестве информации о расположении сервера 110 в виртуальной инфраструктуре выступает иерархическая структура, описывающая расположение указанного сервера 110 в иерархии [сервер управления виртуальной структурой] – [датацентр] – [кластер] – [хост (гипервизор)] – [виртуальная машина].The information about the location of the server 110 in the virtual infrastructure is a hierarchical structure that describes the location of the specified server 110 in the hierarchy [virtual infrastructure management server] - [data center] - [cluster] - [host (hypervisor)] - [virtual machine] .

Агент 121, работающий на каждом клиенте 120 из сформированного набора клиентов предназначен для:Agent 121 running on each client 120 from the generated set of clients is designed to:

• сбора данных об указанном клиенте 120 и передачи собранных данных средству обнаружения сервисов 130;• collecting data about the specified client 120 and passing the collected data to the service discoverer 130 ;

• соединения между указанным клиентом 120 и выбранным сервером 110 по запросу средства балансировки 140.• connections between a specified client 120 and a selected server 110 at the request of a balancer 140 .

В одном из вариантов реализации системы в качестве данных о клиенте 120 выступают по меньшей мере:In one implementation of the system, the customer data 120 is at least:

• идентификатор клиента 120, в частности его BIOS ID;client identifier 120 , in particular its BIOS ID;

• информация о сетевой доступности клиента 120, в частности о целостности и качестве соединения между клиентом 120 и сервером 110;• information about the network availability of the client 120 , in particular the integrity and quality of the connection between the client 120 and the server 110 ;

• информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере:• information about the tags served, where the tags are predefined labels that characterize at least:

• клиент 120, client 120 ,

• пару клиент 120 – сервер 110;• a pair of client 120 - server 110 ;

• информация об установленном на клиенте 120 программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом 121, работающим на клиенте 120;• information about the software installed on the client 120 , in particular information about the version of the anti-virus databases used by the agent 121 operating on the client 120 ;

• информация о требуемых клиенту 120 вычислительных ресурсах;• information about the computing resources required by the client;

• информация о расположении клиента 120 в виртуальной инфраструктуре.• information about the location of the client 120 in the virtual infrastructure.

В качестве идентификатора клиента 120 может выступать любая известная из уровня техники характеристика, однозначно идентифицирующая указанный клиент 120.The identifier of the client 120 can be any characteristic known from the prior art that uniquely identifies the specified client 120 .

В качестве информации о сетевой доступности клиента 120 могут выступать данных, полученные такими утилитами, как ping и tracert, а именно:The network reachability information of the client 120 can be data received by utilities such as ping and tracert , namely:

• процент потерянных сетевых пакетов, переданных от клиента 120 серверу 110;• percentage of lost network packets transmitted from client 120 to server 110 ;

• время, затрачиваемое на передачу сетевых пакетов от клиента 120 серверу 110 и обратно;• the time taken to transfer network packets from the client 120 to the server 110 and vice versa;

• маршрут следования данных от клиента 120 к серверу 110.• the data path from the client 120 to the server 110 .

В качестве обслуживаемых тегов могут выступать данные (в том числе числа и строки), характеризующие группу серверов 110 и позволяющие выбрать указанную группу серверов 110 из набора доступных серверов и сформировать списки доступных серверов для клиента 120.Served tags can be data (including numbers and strings) that characterizes a group of servers 110 and allows you to select a specified group of servers 110 from a set of available servers and generate lists of available servers for the client 120 .

В случае, когда описываемая клиент-серверная архитектура используется для облачной антивирусной защиты (см. выше) список доступных серверов формируют из серверов 110, на которых антивирусные базы, используемые сервером сканирования 111, имеют версию такую же, как и антивирусные базы, используемые агентом 121, функционирующем на клиенте 120.In the case when the described client-server architecture is used for cloud-based anti-virus protection (see above), the list of available servers is formed from servers 110 , on which the anti-virus databases used by the scan server 111 have the same version as the anti-virus databases used by the agent 121 , running on client 120 .

Ещё в одном примере список доступных серверов формируют из серверов 110, на которых антивирусные базы обновлялись не позднее или не раньше заданного временного диапазона, чем антивирусные базы, используемые агентом 121, функционирующем на клиенте 120. In another example, the list of available servers is formed from servers 110 , on which the anti-virus databases were updated no later than or no earlier than the specified time range than the anti-virus databases used by the agent 121 operating on the client 120 .

Например, антивирусные базы на сервере 110 не должны быть более чем на 8 часов старше антивирусных баз на клиенте 120.For example, anti-virus databases on server 110 should not be more than 8 hours older than anti-virus databases on client 120 .

В качестве информации о требуемых клиенту 120 вычислительных ресурсах может выступать по меньшей мере:As information about the computing resources required by the client 120 , at least:

• объём данных, требующих обработки;• the amount of data to be processed;

• максимальное время, необходимое для обработки указанных данных.• the maximum time required to process the specified data.

В качестве информации о расположении клиента 120 в виртуальной инфраструктуре выступает иерархическая структура, описывающая расположение указанного клиента 120 в иерархии [сервер управления виртуальной структурой] – [датацентр] – [кластер] – [клиент].As information about the location of the client 120 in the virtual infrastructure, there is a hierarchical structure that describes the location of the specified client 120 in the hierarchy [virtual structure management server] - [data center] - [cluster] - [client] .

Средство обнаружения сервисов 130 (англ. virtual infrastructure integration server, VIIS, или англ. discovery service), предназначено для формирования списка доступных серверов для каждого клиента 120 на основании собранных серверами сканирования 111 и агентами 121 данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне.The service discovery tool 130 (virtual infrastructure integration server, VIS, or discovery service) is designed to generate a list of available servers for each client 120 based on the data collected by the scan servers 111 and agents 121 , while the generated list of available servers is stable to change the collected data in a given range.

Стабильность списка доступных серверов для заданного клиента 120 к изменению собранных данных заключается по меньшей мере в следующем:The stability of the list of available servers for a given client 120 to changes in the collected data is at least as follows:

• один и тот же клиент 120 всегда получает один и тот же список доступных серверов из подходящих для указанного клиента 120 серверов 110 за исключением случаев, когда некоторые сервера 110 из указанного списка не отвечают (отключены, перегружены и т.д.), при выполнении которых формируемый список доступных серверов дополняется новыми серверами 110 из подходящих для указанного клиента 120 серверов 110;• the same client 120 always receives the same list of available servers from servers 110 suitable for the specified client 120 , except in cases where some servers 110 from the specified list do not respond (disconnected, overloaded, etc.), when executing which the generated list of available servers is supplemented with new servers 110 from servers 110 suitable for the specified client 120 ;

• изменения некоторых данных, получаемых от клиента 120 или серверов 11 (например, установленное программное обеспечение, загрузка серверов 110 и т.д.) не влияет на формируемый для указанного клиента 120 список доступных серверов, хотя и влияет на выбор средством балансировки 140 сервера 110 из сформированного списка доступных серверов для соединения клиента 120 с выбранным сервером 110.• changes in some data received from the client 120 or servers 11 (for example, installed software, loading of servers 110 , etc.) does not affect the list of available servers generated for the specified client 120 , although it does affect the selection by the balancing tool 140 of the server 110 from the generated list of available servers to connect the client 120 with the selected server 110 .

В одном из вариантов реализации с помощью средства обнаружения сервисов 130 формируют список серверов в виде направленного кольцевого списка серверов. При этом список доступных серверов формируют из серверов 110, с которыми возможно установить соединение (сервера 110 отвечают на запросы) и которые способны выполнять клиентские задачи (сервер 110 имеет свободные вычислительные ресурсы для выполнения клиентских задач).In one implementation, the service discoverer 130 generates a list of servers in the form of a directed circular list of servers. In this case, the list of available servers is formed from servers 110 with which it is possible to establish a connection (servers 110 respond to requests) and which are capable of performing client tasks (server 110 has free computing resources to perform client tasks).

Ещё в одном из вариантов реализации системы список доступных серверов с помощью средства обнаружения сервисов 130 упорядочивают по значению хэш-суммы идентификатора сервера 110.In another implementation of the system, the list of available servers is ordered by the service discoverer 130 by the hash value of the server identifier 110 .

Ещё в одном из вариантов реализации системы для переподключения клиента 120 последовательно выбирают сервера 110 из списка доступных серверов, начиная с сервера 110, значение хэш-суммы идентификатора которого располагается непосредственно после позиции значения хэш-суммы идентификатора клиента 120 (также может использоваться хэш-сумма идентификатора агента 121, поскольку в клиент-серверной архитектуре функционирует связка клиент 120 + агент 121 и сервер 110 + сервер сканирования 111) в направленном кольцевом списке серверов.In yet another implementation of the system for reconnecting client 120 , server 110 is sequentially selected from the list of available servers, starting with server 110 whose hash value of the identifier is located immediately after the position of the hash sum of the client identifier 120 (the hash sum of the identifier can also be used agent 121 , since in the client-server architecture there is a bunch of client 120 + agent 121 and server 110 + scan server 111 ) in a directed circular list of servers.

Ещё в одном из вариантов реализации системы списки доступных серверов, сформированные для клиентов 120, суммарно содержат количество серверов 110 меньше заданного порогового значения.In yet another embodiment of the system, the lists of available servers generated for clients 120 have a total number of servers 110 that is less than a predetermined threshold value.

Ещё в одном из вариантов реализации системы списки доступных серверов формируют таким образом, чтобы сервера 110, доступные из набора доступных серверов, были равномерно распределены по формируемым спискам.In yet another implementation of the system, the lists of available servers are formed in such a way that the servers 110 available from the set of available servers are evenly distributed among the generated lists.

Данная задача достигается за счёт использования системы хэширования: формирование стабильного списка серверов 110 для клиента 120 осуществляется на основании направленного кольцевого списка доступных серверов, упорядоченного по хэш-сумме идентификатора сервера 110 (также может использоваться идентификатор сервера сканирования 111, идентификатор виртуальной машины, на которой работает указанный сервер сканирования 111, и т.д.) и хэш-сумме идентификатора клиента 120 (также может использоваться идентификатор агента 121).This task is achieved through the use of a hashing system: the formation of a stable list of servers 110 for the client 120 is based on a directed ring list of available servers, ordered by the hash sum of the server identifier 110 (the scan server identifier 111 can also be used, the identifier of the virtual machine on which the the specified scan server 111 , etc.) and the hash sum of the client ID 120 (the agent ID 121 can also be used).

Для каждого клиента 120 берётся заданное количество серверов 110 из кольцевого списка доступных серверов, начиная с первого сервера 110, хэш-сумма идентификатора которого равна или больше хэш-суммы идентификатора клиента 120.For each client 120 , a given number of servers 110 are taken from a circular list of available servers, starting with the first server 110 whose hash sum of the ID is equal to or greater than the hash sum of the client ID 120 .

Ещё в одном из вариантов реализации системы формируемые списки доступных серверов для каждого клиента 120 не сохраняются на диск, что позволяет повысить скорость выдачи указанных списков клиентам 120 при экономии ресурсов жёсткого диска (или подсистемы, выполняющей функции персистентного хранилища).In another implementation of the system, the generated lists of available servers for each client 120 are not saved to disk, which allows you to increase the speed of issuing these lists to clients 120 while saving hard disk resources (or a subsystem that performs the functions of persistent storage).

Ещё в одном из вариантов реализации системы клиенты 120 могут обмениваться между собой списками доступных серверов в обход средства обнаружения сервисов 130, снижая таким образом объём служебного трафика между клиентами 120 и средством обнаружения сервисов 130, который может быть перегружен запросами.In yet another implementation of the system, clients 120 can exchange lists of available servers among themselves, bypassing the service discoverer 130 , thus reducing the amount of overhead traffic between clients 120 and the service discoverer 130 , which can be overloaded with requests.

В частности, обмениваться списками доступных серверов могут клиенты 120, обладающие схожими характеристиками, в качестве которых может выступать:In particular, clients 120 with similar characteristics can exchange lists of available servers, which can be:

• информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере:• information about the tags served, where the tags are predefined labels that characterize at least:

• клиент 120, client 120 ,

• пару клиент 120 – сервер 110;• a pair of client 120 - server 110 ;

• информация о расположении клиентов 120 в одной виртуальной инфраструктуре.• information about the location of the clients 120 in one virtual infrastructure.

Ещё в одном из вариантов реализации системы формирование списка доступных серверов для клиентов 120 выполняется периодически через заданный диапазон времени (например, каждые 5 минут).In another implementation of the system, the list of available servers for clients 120 is generated periodically after a predetermined time range (for example, every 5 minutes).

Средство балансировки 140 предназначено для выбора сервера 110 из сформированного средством обнаружения сервисов 130 для указанного клиента 120 списка доступных серверов на основании наступления заданных условий.The balancing tool 140 is designed to select the server 110 from the list of available servers generated by the service discovery tool 130 for the specified client 120 based on the occurrence of specified conditions.

В одном из вариантов реализации системы в качестве заданных условий для выполнения балансировки подключения между клиентом 120 и сервером 110 выступает по меньшей мере:In one embodiment of the system, the predetermined conditions for balancing the connection between client 120 and server 110 are at least

• обрыв соединения между клиентом 120 и сервером 110;• broken connection between client 120 and server 110 ;

• обнаружение более оптимального сервера 110 с помощью заданного алгоритма балансировки.• discovery of a more optimal server 110 using a predetermined balancing algorithm.

В одном из вариантов реализации системы оптимальность сервера 110 определяется по меньшей мере его:In one implementation of the system, the optimality of the server 110 is determined by at least its:

• загрузкой (используемыми вычислительными ресурсами на момент соединения с сервером);• loading (used computing resources at the moment of connection with the server);

• временем соединения с сервером;• connection time with the server;

• скоростью обмена данными между клиентом и сервером;• speed of data exchange between the client and the server;

• стабильностью соединения между клиентом и сервером (в том числе средним временем между соседними обрывами соединения между клиентом и сервером).• stability of the connection between the client and the server (including the average time between adjacent breaks in the connection between the client and the server).

В качестве алгоритма балансировки для обнаружения более оптимального сервера 110 под заданную задачу клиента 120 может использоваться любой известный из уровня техники алгоритм балансировки серверов, например, в качестве такого алгоритма может использоваться технология децентрализованного распределения агентов между сканирующими серверами, описанная в публикации US10496819. As a balancing algorithm for finding a more optimal server 110 for a given task of the client 120 , any server balancing algorithm known from the prior art can be used, for example, the technology of decentralized distribution of agents between scanning servers described in publication US10496819 can be used as such an algorithm.

Ещё в одном из вариантов реализации системы в качестве алгоритма балансировки выступает обученная модель балансировки 141.In another version of the system implementation, the trained balancing model 141 acts as a balancing algorithm.

Ещё в одном из вариантов реализации указанная система дополнительно содержит средство переобучения 150, предназначенное для переобучения модели балансировки 141 по результатам выполнения задач клиентов 120 на серверах 110.In yet another embodiment, said system further comprises a retraining tool 150 designed to retrain the balancing model 141 based on the results of client tasks 120 running on servers 110 .

В одном из вариантов реализации системы переобучение модели балансировки 141 выполняется таким образом, чтобы при схожих задачах клиентов 120, которые выполняли на серверах 110 по меньшей мере:In one of the implementations of the system, the retraining of the balancing model 141 is performed in such a way that, for similar tasks, the clients 120 that performed on the servers 110 at least:

• сетевой трафик между клиентами 120 и серверами 110 был ниже, чем при использовании непереобученной модели балансировки 141;• network traffic between clients 120 and servers 110 was lower than using the non-overtrained balancing model 141 ;

• производительность клиент-серверной архитектуры была выше, чем при использовании непереобученной модели балансировки 141 (при этом производительность может измеряться любым известным из уровня техники способом, в том числе путём оценки затрачиваемых вычислительных ресурсов).• the performance of the client-server architecture was higher than when using the non-overtrained balancing model 141 (in this case, the performance can be measured by any method known from the prior art, including by evaluating the computational resources expended).

Ещё в одном из вариантов реализации системы балансировки подключений между клиентами 120 и серверами 110 выполняется периодически через заданный диапазон времени (например, каждые 15 секунд).In yet another implementation of the system, connection balancing between clients 120 and servers 110 is performed periodically over a predetermined time range (eg, every 15 seconds).

Таким образом, при использовании описанной выше технологии удаётся Thus, when using the technology described above, it is possible to

• уменьшить объём сетевого трафика между клиентами 120 и серверами 110 за счёт уменьшения количества серверов 110, из которых формируются списки доступных серверов для каждого клиента 120 и, соответственно, за счёт снижения объёма служебного сетевого трафика, генерируемого при сборе данных об указанных серверах 110.• reduce the amount of network traffic between clients 120 and servers 110 by reducing the number of servers 110 , from which lists of available servers are formed for each client 120 and, accordingly, by reducing the amount of service network traffic generated when collecting data about these servers 110 .

В том числе описанная выше технология позволяет:The technology described above allows:

• избежать нарушения в работе межсетевых экранов, функционирующих на клиентах 120, за счёт уменьшения установленных соединений клиентов 120 с серверами 110.• Avoid disrupting firewalls running on clients 120 by reducing established connections from clients 120 to servers 110 .

• повысить отзывчивость описываемой клиент-серверной архитектуры за счёт осуществления стабильного соединения клиентов 120 с серверами 110;• increase the responsiveness of the described client-server architecture by providing a stable connection between clients 120 and servers 110 ;

• повысить производительность клиент-серверной архитектуры за счёт выбора наименее нагруженных серверов 120 для каждого из клиентов 120.• increase the performance of the client-server architecture by selecting the least loaded servers 120 for each of the clients 120 .

В данном случае под отзывчивостью клиент-серверной архитектуры понимается время реакции между событиями на сервере и ответом на клиенте и наоборот. Чем меньше время реакции, тем выше отзывчивость клиент-серверной архитектуры. In this case, the responsiveness of the client-server architecture refers to the reaction time between events on the server and the response on the client, and vice versa. The shorter the response time, the higher the responsiveness of the client-server architecture.

Описанная выше технология позволяет в том числе уменьшить количество соединений между клиентами 120 и серверами 110 за счёт более стабильной работы клиентов 120 с уже выбранными серверами 110, поскольку позволяет снизить их перегрузку и как следствие падение производительности или даже отказ в работе.The technology described above makes it possible, among other things, to reduce the number of connections between clients 120 and servers 110 due to more stable operation of clients 120 with already selected servers 110 , since it reduces their overload and, as a result, a drop in performance or even failure.

Фиг. 2 представляет структурную схему способа балансировки подключений между клиентами и серверами. Fig. 2 is a block diagram of a method for balancing connections between clients and servers.

Структурная схема способа балансировки подключений между клиентами и серверами содержит этап 210, на котором собирают данные о серверах, этап 220, на котором собирают данные о клиентах, этап 230, на котором формируют список доступных серверов, этап 240, на котором осуществляют балансировку подключений, этап 241, на котором выбирают сервера, этап 242, на котором осуществляют соединение между клиентами и серверами, на этапе 250 переобучают модель балансировки. The block diagram of the method for balancing connections between clients and servers includes step 210 , which collects data about servers, step 220 , which collects data about clients, step 230 , which generates a list of available servers, step 240 , which performs connection balancing, step 241 where the servers are selected, step 242 where the connection between clients and servers is made, at step 250 the balancing model is retrained.

Более подробно описание приведённых ниже этапов раскрыто в описании Фиг. 1.A more detailed description of the steps below is disclosed in the description of FIG. 1 .

На этапе 210 собирают с помощью сервера сканирования 111, работающего на соответствующем сервере из сформированного набора серверов 110, данные о серверах 110 из сформированного набора серверов.At step 210 , data about servers 110 from the generated set of servers is collected using the scan server 111 running on the corresponding server from the generated set of servers 110 .

На этапе 220 собирают с помощью агента 121, работающего на соответствующем клиенте из сформированного набора клиентов, данные о клиентах 120 из сформированного набора клиентов.At step 220 , data about clients 120 from the generated set of clients is collected using the agent 121 running on the corresponding client from the generated set of clients.

На этапе 230 формируют с помощью средства обнаружения сервисов 130 список доступных серверов для каждого клиента 120 на основании собранных на этапах 210, 220 данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне.At step 230 , a list of available servers for each client 120 is formed using the service discoverer 130 based on the data collected at steps 210 , 220 , while the generated list of available servers is stable to changes in the collected data in a given range.

На этапе 240 осуществляют для каждого клиента 120 балансировку подключения между указанным клиентом 120 и сервером 110, для чего:At step 240 , for each client 120 , the connection is balanced between the specified client 120 and server 110 , for which:

• на этапе 241 выбирают с помощью средства балансировки 140 сервер 110 из сформированного для указанного клиента 120 списка доступных серверов на основании наступления заданных условий;• at step 241 , using the balancing tool 140 , the server 110 is selected from the list of available servers generated for the specified client 120 based on the occurrence of specified conditions;

• на этапе 242 осуществляют с помощью агента 121 соединение между указанным клиентом 120 и выбранным сервером 110.• at step 242 , a connection is made by the agent 121 between the specified client 120 and the selected server 110 .

На этапе 250 с помощью средства переобучения 150 переобучают модель балансировки 141 по результатам выполнения задач клиентами 120 на серверах 110.At step 250 , the retraining tool 150 retrains the balancing model 141 based on the results of tasks performed by clients 120 on servers 110 .

Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Fig. 3 shows an example of a general purpose computer system, a personal computer or a server 20 ', comprising a central processing unit 21 ', system memory 22 ', and a system bus 23 ', which contains various system components including memory associated with the central processing unit 21 '. The system bus 23 is implemented as any bus structure known in the art, in turn comprising a bus memory or bus memory controller, a peripheral bus, and a local bus capable of interfacing with any other bus architecture. The system memory contains read only memory (ROM) 24 , random access memory (RAM) 25 . The main input/output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between the elements of a personal computer 20 , for example, at the time of booting the operating system using ROM 24 .

Персональный компьютер 20 в свою очередь содержит жёсткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жёсткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жёсткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20. The personal computer 20 , in turn, contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29 and an optical drive 30 for reading and writing to removable optical disks 31 , such as CD-ROM, DVD -ROM and other optical storage media. The hard disk 27 , the magnetic disk drive 28 , the optical drive 30 are connected to the system bus 23 via the hard disk interface 32 , the magnetic disk interface 33 , and the optical drive interface 34 , respectively. Drives and related computer storage media are non-volatile means of storing computer instructions, data structures, program modules, and other personal computer data 20 .

Настоящее описание раскрывает реализацию системы, которая использует жёсткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27 , a removable magnetic disk 29 and a removable optical disk 31 , but it should be understood that other types of computer storage media 56 that are capable of storing data in a computer-readable form (solid-state drives, flash memory cards, digital disks, random access memory (RAM), etc.), which are connected to the system bus 23 through the controller 55 .

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединён к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединён к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащён другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.The computer 20 has a file system 36 that stores the recorded operating system 35 as well as additional software applications 37 , other program modules 38 and program data 39 . The user has the ability to enter commands and information into the personal computer 20 through input devices (keyboard 40 , mouse 42 ). Other input devices (not shown) may be used: microphone, joystick, game console, scanner, etc. Such input devices are normally connected to the computer system 20 via a serial port 46 , which in turn is connected to the system bus, but may be connected in other ways, such as through a parallel port, game port, or universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48 '. In addition to the monitor 47 , the personal computer may be equipped with other peripheral output devices (not shown), such as speakers, a printer, etc.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удалёнными компьютерами 49. Удалённый компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы. The personal computer 20 is capable of operating in a networked environment using a network connection to another or more remote computers 49 . The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the nature of the personal computer 20 shown in FIG. 3. Other devices may also be present in the computer network, for example, routers, network stations, peer-to-peer devices, or other network nodes.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключён к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключён к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.The network connections may form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local network 50 via a network adapter or network interface 51 . When using networks, personal computer 20 may use a modem 54 or other means to communicate with a wide area network, such as the Internet. The modem 54 , which is an internal or external device, is connected to the system bus 23 via the serial port 46 . It should be clarified that the network connections are only indicative and are not required to represent the exact network configuration, i.e. in fact, there are other ways to establish a connection by technical means of communication from one computer to another.

В заключение следует отметить, что приведённые в описании сведения являются примерами, которые не ограничивают объём настоящего изобретения, определённого формулой.In conclusion, it should be noted that the information given in the description are examples that do not limit the scope of the present invention defined by the formula.

Claims (65)

1. Система балансировки подключений между клиентами и серверами, которая содержит:1. System for balancing connections between clients and servers, which contains: а) сервер сканирования, работающий на каждом сервере из сформированного набора серверов и предназначенный для сбора данных о сервере;a) a scanning server running on each server from the generated set of servers and designed to collect data about the server; б) агент, работающий на каждом клиенте из сформированного набора клиентов и предназначенный для:b) an agent working on each client from the formed set of clients and intended for: сбора данных об указанном клиенте;collecting data about the specified client; соединения между указанным клиентом и выбранным сервером;connections between the specified client and the selected server; в) средство обнаружения сервисов, предназначенное для формирования списка доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне;c) a service discovery means for generating a list of available servers for each client based on the collected data, while the generated list of available servers is stable to changes in the collected data in a given range; г) средство балансировки, предназначенное для выбора сервера из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий для выполнения балансировки подключения.d) a balancing tool designed to select a server from the list of available servers generated for the specified client based on the occurrence of specified conditions for balancing the connection. 2. Система по п.1, в которой в качестве данных о сервере выступают по меньшей мере:2. The system of claim 1, wherein the server data is at least: идентификатор сервера, в частности его BIOS ID;server identifier, in particular its BIOS ID; IP адрес сервера и порт подключения клиента к серверу;Server IP address and client connection port to the server; информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером;information about the network availability of the server, in particular about the integrity and quality of the connection between the client and the server; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер;information about the tags served, where the tags are predefined labels that characterize at least a server, a client-server pair; информация об установленном программном обеспечении, в том числе по меньшей мере:information about installed software, including at least: информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии;information about the license of the scan server running on the server, in particular about the availability and type of license; информация о версии антивирусных баз, используемых сервером сканирования;information about the version of the anti-virus databases used by the scanning server; информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах;information about the available computing resources of the server, in particular about the clients connected to the server; информация о расположении сервера в виртуальной инфраструктуре.information about the location of the server in the virtual infrastructure. 3. Система по п.1, в которой в качестве данных о клиенте выступают по меньшей мере:3. The system according to claim 1, in which at least: идентификатор клиента, в частности его BIOS ID;client identifier, in particular its BIOS ID; информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером;information about the network availability of the client, in particular about the integrity and quality of the connection between the client and the server; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер;information about the tags being served, where the tags are predefined labels that characterize at least a client, a client-server pair; информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте;information about installed software, in particular, information about the version of anti-virus databases used by the agent running on the client; информация о требуемых клиенту вычислительных ресурсах;information about the computing resources required by the client; информация о расположении клиента в виртуальной инфраструктуре.information about the location of the client in the virtual infrastructure. 4. Система по п.1, в которой в качестве сервера выступает виртуальная машина.4. The system of claim 1, wherein the server is a virtual machine. 5. Система по п.1, в которой формируют список доступных серверов в виде направленного кольцевого списка серверов.5. The system according to claim 1, which generates a list of available servers in the form of a directed circular list of servers. 6. Система по п.5, в которой список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.6. The system of claim 5, wherein the list of available servers is ordered by the hash value of the server identifier. 7. Система по п.6, в которой для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.7. The system of claim 6, wherein the server is sequentially selected from a list of available servers to reconnect the client, starting with the server whose id hash value is located immediately after the potential position of the agent id hash value in the directed circular list of servers. 8. Система по п.1, в которой сформированные для клиентов списки доступных серверов суммарно содержат количество серверов меньше заданного порогового значения.8. The system according to claim 1, in which the lists of available servers generated for clients contain a total number of servers less than a predetermined threshold value. 9. Система по п.1, в которой в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере:9. The system of claim 1, wherein the predetermined conditions for balancing the connection between the client and the server are at least: обрыв соединения между клиентом и сервером;disconnection between client and server; обнаружение сервера с помощью заданного алгоритма балансировки.server discovery using the specified balancing algorithm. 10. Система по п.9, в которой в качестве алгоритма балансировки выступает обученная модель балансировки.10. The system according to claim 9, in which the trained balancing model acts as a balancing algorithm. 11. Способ балансировки подключений между клиентами и серверами, при этом способ содержит этапы, которые реализуются с помощью средств из системы по п.1 и на которых:11. A method for balancing connections between clients and servers, wherein the method comprises steps that are implemented using tools from the system according to claim 1 and in which: а) собирают с помощью сервера сканирования, работающего на соответствующем сервере из сформированного набора серверов, данные о серверах из сформированного набора серверов;a) collecting, by means of a scanning server running on a corresponding server from the formed set of servers, data about the servers from the formed set of servers; б) собирают с помощью агента, работающего на соответствующем клиенте из сформированного набора клиентов, данные о клиентах из сформированного набора клиентов;b) collect, with the help of an agent working on the corresponding client from the generated set of clients, data about clients from the generated set of clients; в) формируют с помощью средства обнаружения сервисов список доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне;c) using the service discovery tool, a list of available servers for each client is formed based on the collected data, while the generated list of available servers is stable to changes in the collected data in a given range; г) выбирают с помощью средства балансировки сервер из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий;d) using the balancing tool, a server is selected from the list of available servers generated for the specified client based on the occurrence of specified conditions; д) осуществляют с помощью агента соединение между указанным клиентом и выбранным сервером условий для выполнения балансировки подключения.e) use an agent to establish a connection between the specified client and the selected condition server to perform connection balancing. 12. Способ по п.11, по которому в качестве данных о сервере выступают по меньшей мере:12. The method of claim 11, wherein the server data is at least: идентификатор сервера, в частности его BIOS ID;server identifier, in particular its BIOS ID; IP адрес сервера и порт подключения клиента к серверу;Server IP address and client connection port to the server; информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером;information about the network availability of the server, in particular about the integrity and quality of the connection between the client and the server; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер;information about the tags served, where the tags are predefined labels that characterize at least a server, a client-server pair; информация об установленном программном обеспечении, в том числе по меньшей мере:information about installed software, including at least: информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии;information about the license of the scan server running on the server, in particular about the availability and type of license; информация о версии антивирусных баз, используемых сервером сканирования.information about the version of the anti-virus databases used by the scan server. информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах;information about the available computing resources of the server, in particular about the clients connected to the server; информация о расположении сервера в виртуальной инфраструктуре.information about the location of the server in the virtual infrastructure. 13. Способ по п.11, по которому в качестве данных о клиенте выступают по меньшей мере:13. The method according to claim 11, according to which at least: идентификатор клиента, в частности его BIOS ID;client identifier, in particular its BIOS ID; информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером;information about the network availability of the client, in particular about the integrity and quality of the connection between the client and the server; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер;information about the tags served, where the tags are predefined labels that characterize at least a client, a client-server pair; информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте;information about installed software, in particular, information about the version of anti-virus databases used by the agent running on the client; информация о требуемых клиенту вычислительных ресурсах;information about the computing resources required by the client; информация о расположении клиента в виртуальной инфраструктуре.information about the location of the client in the virtual infrastructure. 14. Способ по п.11, по которому в качестве сервера выступает виртуальная машина.14. The method of claim 11, wherein the server is a virtual machine. 15. Способ по п.1, по которому формируют список доступных серверов в виде направленного кольцевого списка серверов.15. The method according to claim 1, according to which the list of available servers is formed in the form of a directed circular list of servers. 16. Способ по п.15, по которому список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.16. The method of claim 15, wherein the list of available servers is ordered by the hash value of the server identifier. 17. Способ по п.16, по которому для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.17. The method of claim 16, wherein servers are sequentially selected from a list of available servers to reconnect the client, starting with the server whose id hash value is located immediately after the potential position of the agent id hash value in the directed circular list of servers. 18. Способ по п.11, по которому сформированные для клиентов списки доступных серверов суммарно содержат серверов меньше заданного порогового значения.18. The method according to claim 11, according to which the lists of available servers generated for clients contain servers in total that are less than a predetermined threshold value. 19. Способ по п.11, по которому в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере:19. The method of claim 11, wherein the predetermined conditions for balancing the connection between the client and the server are at least: обрыв соединения между клиентом и сервером;disconnection between client and server; обнаружение сервера с помощью заданного алгоритма балансировки.server discovery using a given balancing algorithm. 20. Способ по п.19, по которому в качестве алгоритма балансировки выступает обученная модель балансировки.20. The method according to claim 19, wherein the trained balancing model acts as the balancing algorithm.
RU2021113655A 2021-05-13 2021-05-13 System and method for balancing connections between clients and servers RU2771444C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2021113655A RU2771444C1 (en) 2021-05-13 2021-05-13 System and method for balancing connections between clients and servers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2021113655A RU2771444C1 (en) 2021-05-13 2021-05-13 System and method for balancing connections between clients and servers

Publications (1)

Publication Number Publication Date
RU2771444C1 true RU2771444C1 (en) 2022-05-04

Family

ID=81459029

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2021113655A RU2771444C1 (en) 2021-05-13 2021-05-13 System and method for balancing connections between clients and servers

Country Status (1)

Country Link
RU (1) RU2771444C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2818490C1 (en) * 2023-12-28 2024-05-02 Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") Method and system for distributing system resources for processing user requests

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050022203A1 (en) * 1998-07-15 2005-01-27 Radware Ltd. Load balancing
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
US20080120433A1 (en) * 1999-12-02 2008-05-22 Cisco Technology, Inc. Method and apparatus for redirecting network traffic
US20120131093A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Connection distribution for load balancing in a distributed database
RU2703188C1 (en) * 2017-10-05 2019-10-15 НФВаре, Инц Load distribution method for a multi-core system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050022203A1 (en) * 1998-07-15 2005-01-27 Radware Ltd. Load balancing
US20080120433A1 (en) * 1999-12-02 2008-05-22 Cisco Technology, Inc. Method and apparatus for redirecting network traffic
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
US20120131093A1 (en) * 2010-11-22 2012-05-24 International Business Machines Corporation Connection distribution for load balancing in a distributed database
RU2703188C1 (en) * 2017-10-05 2019-10-15 НФВаре, Инц Load distribution method for a multi-core system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2818490C1 (en) * 2023-12-28 2024-05-02 Общество с ограниченной ответственностью "Облачные технологии" (ООО "Облачные технологии") Method and system for distributing system resources for processing user requests

Similar Documents

Publication Publication Date Title
US10257224B2 (en) Method and apparatus for providing forensic visibility into systems and networks
RU2494453C2 (en) Method for distributed performance of computer security tasks
US11930039B1 (en) Metric space modeling of network communication
US8479048B2 (en) Root cause analysis method, apparatus, and program for IT apparatuses from which event information is not obtained
US8966495B2 (en) Dynamic virtual machine consolidation
RU2568282C2 (en) System and method for ensuring fault tolerance of antivirus protection realised in virtual environment
CN102724208B (en) For controlling the system and method for the access to Internet resources
EP3667532A1 (en) Methods for detecting and mitigating malicious network activity based on dynamic application context and devices thereof
RU2710860C1 (en) Method for limiting the scope of automatic selection of a virtual protection machine
US12355726B2 (en) Systems and methods for providing enhanced security in edge computing environments
CN117076133B (en) Cloud game platform heterogeneous resource allocation method, computer device and storage medium
WO2018137710A1 (en) Method and system for search control
US20230362131A1 (en) Systems and methods for monitoring and securing networks using a shared buffer
Jermyn et al. Improving readiness for enterprise migration to the cloud
RU2771444C1 (en) System and method for balancing connections between clients and servers
RU2628919C1 (en) System and method of detecting harmful files on distributed system of virtual machines
CN111510431A (en) A pan-terminal access management and control platform, client and management and control method
US12474950B2 (en) Automatic reconfiguration of network interface driver on network sensor host
US11283823B1 (en) Systems and methods for dynamic zone protection of networks
Belguith et al. SMART: Shared Memory based SDN Architecture to Resist DDoS ATtacks.
RU2724801C1 (en) Method of balancing load on virtual protection machines, provided that selection area of virtual protection machines
CN118713931A (en) A method, system and device for identifying access rights based on network security
CN119324925A (en) Traffic distribution method, device, equipment and medium based on application node grouping
CN120768559A (en) A cryptographic resource scheduling method and system based on weighted hashing
CN119030878A (en) Cross-domain virtual network mapping method, device, computer equipment and storage medium