Система и способ балансировки подключений между клиентами и серверами

Изобретение относится к области вычислительной техники для управления элементами компьютерной сети. Технический результат настоящего изобретения заключается в повышении производительности клиент-серверной архитектуры за счёт уменьшения количества соединений между клиентами и серверами. Технический результат достигается за счет сбора с помощью сервера сканирования, работающего на соответствующем сервере из сформированного набора серверов, данных о серверах из сформированного набора серверов; сбора с помощью агента, работающего на соответствующем клиенте из сформированного набора клиентов, данных о клиентах из сформированного набора клиентов; формирования с помощью средства обнаружения сервисов списка доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне; выбора с помощью средства балансировки сервера из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий; осуществления с помощью агента соединения между указанным клиентом и выбранным сервером условий для выполнения балансировки подключения. 2 н. и 18 з.п. ф-лы, 3 ил.

 

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

Изобретение относится к области управления компьютерными сетями, а более конкретно к системам и способам балансировки подключений между клиентами и серверами.

Уровень техники

Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования упомянутых устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-сёрфинга до банковских переводов и ведения электронного документооборота).

Всё это дало толчок к развитию технологий параллельных и распределённых вычислений, облачных технологий и т.д., когда ресурсоёмкие задачи лишь частично выполняются на клиентах, а большая часть работы зачастую выполняется на распределённых серверах, с которыми упомянутые клиенты устанавливают соединения. В качестве примеров можно привести удалённое решение сложных математических задач, работу с мультимедиа данными, разнообразные антивирусные проверки и даже рендеринг в компьютерных играх.

Кроме требований к стабильности работы серверов при такой организации работы зачастую также предъявляются жёсткие требования к устойчивости соединения между клиентами и серверами, к эффективности обмена данными между клиентами и серверами и т.д. Реализация данных требований часто негативно сказывается на других характеристиках работы, например, объёме генерируемого сетевого трафика между клиентами и серверами и т.п.

Для обеспечения устойчивости соединений между клиентами и серверами реализуется подход, при котором клиент держит у себя список серверов, с которыми он может соединяться, и в случае обрыва соединения обеспечивает соединение со следующим сервером из списка, что позволяет выполнять поставленную задачу постоянно.

В целях выполнения автоматического переключения клиентов между серверами при потере соединения или в процессе балансировки нагрузки каждый клиент получает список серверов, доступных для подключения данному клиенту. Получив список доступных для подключения серверов, клиент периодически опрашивает каждый сервер из списка на предмет его сетевой доступности и запрашивает текущую загрузку и прочую служебную информацию. В случае если большому количеству клиентов доступно достаточно много серверов (например, 10 тысячам клиентов доступно 100 серверов), в сети возникает большой объем служебного трафика, генерируемого каждой парой клиент-сервер (например, для 10 тысяч клиентов и 100 серверов генерируется 1 миллион пар). В результате возможны инциденты, когда используемые на клиенте межсетевые экраны достигают установленного максимального количества соединений, и работа сети нарушается.

В публикации US9680764B2 описывается технология балансировки нагрузки виртуальных машин, соединённых в закольцованную систему. Для балансировки используются агенты, подключённые к указанной системе виртуальных машин и получающие задачи по подключению от промежуточного устройства. Агенты определяют нагрузку на заданные виртуальные машины и определяют, к каким виртуальным машинам требуется осуществить соединение.

Хотя описанная технология и справляется с задачей балансировки нагрузки на виртуальные машины (т.е. оптимизирует производительность клиент-серверных систем), она не справляется с задачами балансировки подключений между клиентами и серверами при большом количестве клиентов (проблема описана выше).

Настоящее изобретение позволяет решать задачи балансировки подключений между клиентами и серверами для устранения описанных выше проблем.

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

Изобретение предназначено для управления элементами компьютерной сети.

Технический результат настоящего изобретения заключается в уменьшении сетевого трафика за счёт соединения между заданными клиентом и сервером.

Ещё один технический результат настоящего изобретения заключается в повышении производительности клиент-серверной архитектуры за счёт уменьшения количества соединений между клиентами и серверами.

Данные результаты достигаются с помощью использования системы балансировки подключений между клиентами и серверами, которая содержит сервер сканирования, работающий на каждом сервере из сформированного набора серверов и предназначенный для сбора данных о сервере; агент, работающий на каждом клиенте из сформированного набора клиентов и предназначенный для: сбора данных об указанном клиенте; соединения между указанным клиентом и выбранным сервером; средство обнаружения сервисов, предназначенное для формирования списка доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне; средство балансировки, предназначенное для выбора сервера из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий для выполнения балансировки подключения.

В другом частном случае реализации системы в качестве данных о сервере выступают по меньшей мере: идентификатор сервера, в частности его BIOS ID; IP адрес сервера и порт подключения клиента к серверу; информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер; информация об установленном программном обеспечении, в том числе по меньшей мере: информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии; информация о версии антивирусных баз, используемых сервером сканирования; информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах; информация о расположении сервера в виртуальной инфраструктуре.

Ещё в одном частном случае реализации системы в качестве данных о клиенте выступают по меньшей мере идентификатор клиента, в частности его BIOS ID; информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер; информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте; информация о требуемых клиенту вычислительных ресурсах; информация о расположении клиента в виртуальной инфраструктуре.

В другом частном случае реализации системы в качестве сервера выступает виртуальная машина.

Ещё в одном частном случае реализации системы формируют список доступных серверов в виде направленного кольцевого списка серверов.

В другом частном случае реализации системы список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.

Ещё в одном частном случае реализации системы для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.

В другом частном случае реализации системы сформированные для клиентов списки доступных серверов суммарно содержат количество серверов меньше заданного порогового значения.

Ещё в одном частном случае реализации системы в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере: обрыв соединения между клиентом и сервером; обнаружение сервера с помощью заданного алгоритма балансировки.

В другом частном случае реализации системы в качестве алгоритма балансировки выступает обученная модель балансировки.

Данные результаты достигаются с помощью использования способа балансировки подключений между клиентами и серверами, при этом способ содержит этапы, которые реализуются с помощью средств из системы по п.1 и на которых: собирают с помощью сервера сканирования, работающего на соответствующем сервере из сформированного набора серверов, данные о серверах из сформированного набора серверов; собирают с помощью агента, работающего на соответствующем клиенте из сформированного набора клиентов, данные о клиентах из сформированного набора клиентов; формируют с помощью средства обнаружения сервисов список доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне; выбирают с помощью средства балансировки сервер из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий; осуществляют с помощью агента соединение между указанным клиентом и выбранным сервером условий для выполнения балансировки подключения.

В другом частном случае реализации способа в качестве данных о сервере выступают по меньшей мере: идентификатор сервера, в частности его BIOS ID; IP адрес сервера и порт подключения клиента к серверу; информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер; информация об установленном программном обеспечении, в том числе по меньшей мере: информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии; информация о версии антивирусных баз, используемых сервером сканирования; информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах; информация о расположении сервера в виртуальной инфраструктуре.

Ещё в одном частном случае реализации способа в качестве данных о клиенте выступают по меньшей мере: идентификатор клиента, в частности его BIOS ID; информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером; информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер; информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте; информация о требуемых клиенту вычислительных ресурсах; информация о расположении клиента в виртуальной инфраструктуре..

В другом частном случае реализации способа в качестве сервера выступает виртуальная машина.

Ещё в одном частном случае реализации способа формируют список доступных серверов в виде направленного кольцевого списка серверов.

В другом частном случае реализации способа список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.

Ещё в одном частном случае реализации способа для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.

В другом частном случае реализации способа формированные для клиентов списки доступных серверов суммарно содержат серверов меньше заданного порогового значения.

Ещё в одном частном случае реализации способа в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере: обрыв соединения между клиентом и сервером; обнаружение сервера с помощью заданного алгоритма балансировки.

В другом частном случае реализации способа в качестве алгоритма балансировки выступает обученная модель балансировки.

Краткое описание чертежей

Фиг. 1 представляет структурную схему системы балансировки подключений между клиентами и серверами.

Фиг. 2 представляет структурную схему способа балансировки подключений между клиентами и серверами.

Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.

Описание вариантов осуществления изобретения

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведённая в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объёме приложенной формулы.

Введём ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.

Виртуальная машина (англ. virtual machine, VM) - виртуальная вычислительная система, которая состоит из виртуальных устройств обработки, хранения и передачи данных, и которая дополнительно может содержать программное обеспечение и пользовательские данные.

Частным случаем виртуальной машины является виртуальная машина для обеспечения безопасности (англ. security virtual machine, SVM) – виртуальная машина, обеспечивающая информационную безопасность передаваемых ей данных.

Фиг. 1 представляет структурную схему системы балансировки подключений между клиентами и серверами.

Структурная схема системы балансировки подключений между клиентами и серверами состоит из серверов 110, серверов сканирования 111, клиентов 120, агентов 121, средства обнаружения сервисов 130, средства балансировки 140, модели балансировки 141, средства переобучения 150.

В общем случае сервера 110 являются частью заранее сформированного набора серверов, из которого указанные сервера могут выбираться, представляющего собой базу данных, содержащую информацию об указанных серверах.

В общем случае клиенты 120 являются частью заранее сформированного набора клиентов, из которого указанные клиенты могут выбираться, представляющего собой базу данных, содержащую информацию об указанных клиентах.

Сервер сканирования 111, работающий на каждом сервере 110 из набора серверов, предназначен для сбора данных об указанном сервере 110 и передачи данных средству обнаружения сервисов 130.

В одном из вариантов реализации системы в качестве сервера 110 выступает виртуальная машина.

Например, на каждом из нескольких серверов 110 может работать несколько виртуальных машин, к которым и подключаются клиенты 120 (т.е. клиент 120 устанавливает соединение с сервером 110 и обменивается данными с виртуальной машиной, работающей на указанном сервере 110, причем соединение с сервером 110 может быть «прозрачным», т.е. клиент 120 работает с виртуальной машиной напрямую, а промежуточная работа с сервером 110 выполняется внешними сервисами).

Ещё в одном из вариантов реализации системы в качестве данных о сервере 110 выступают по меньшей мере:

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

• IP-адрес сервера 110 и порт подключения клиента 120 к серверу 110;

• информация о сетевой доступности сервера 110, в частности о целостности и качестве соединения между клиентом 120 и сервером 110;

• информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере:

• сервер 110,

• пару клиент 120 – сервер 110;

• информация об установленном на сервере 110 программном обеспечении, в том числе по меньшей мере:

• информация о лицензии сервера сканирования 111, работающего на сервере 110, в частности о наличии и типе лицензии;

• информация о версии антивирусных баз, используемых сервером сканирования 111;

• информация о доступных вычислительных ресурсах сервера 110, в частности о подключённых к серверу 110 клиентах 120;

• информация о расположении сервера 110 в виртуальной инфраструктуре.

В качестве идентификатора сервера 110 может выступать любая известная из уровня техники характеристика, однозначно идентифицирующая указанный сервер 110.

В качестве информации о сетевой доступности сервера 110 могут выступать данные, полученные такими утилитами, как ping и tracert, а именно:

• работает ли запрашиваемый сервер 110;

• процент потерянных сетевых пакетов, переданных от клиента 120 серверу 110;

• время, затрачиваемое на передачу сетевых пакетов от клиента 120 серверу 110 и обратно;

• маршрут следования данных от клиента 120 к серверу 110.

В качестве обслуживаемых тегов могут выступать данные (в том числе числа и строки), позволяющие группировать сервера 110 из набора доступных серверов и формировать списки доступных серверов для клиентов 120, выбирая сервера 110 из заданных групп.

Например, для клиентов 120 с обслуживаемым тегом ‘xyz’ заранее формируют (любым известным из уровня техники способом, например, силами аналитика или автоматически на основании характеристик, описывающих сервера 110 и клиенты 120 и позволяющих провести их кластеризацию) список доступных серверов из группы серверов с тем же тегом ‘xyz’. При этом теги могут формироваться аналитиками.

В качестве информации об установленном на сервере 110 программном обеспечении может выступать информация о лицензии сервера сканирования 111 (англ. software license - лицензия на программное обеспечение), работающего на сервере 110, при этом списки доступных серверов формируются в порядке уменьшения приоритета из серверов 110, на которых функционируют сервера сканирования 111 с коммерческой лицензией, с бесплатной лицензией и с отсутствием лицензии.

В одном из вариантов реализации системы описываемая клиент-серверная архитектура предназначена для распределённой проверки объектов (файлов, дампов памяти и т.д.), выявляемых на клиенте 120, как на указанном клиенте 120, так и на специализированном сервере 110. Т.е. используется для осуществления облачной антивирусной защиты. В этом случае как на клиенте 120, так и на сервере 110 функционируют антивирусные движки (англ. anti-malware engine), которые по запросу клиента 120 через агента 121 осуществляют анализ предоставляемых агентом 121 объектов.

В случае, когда описываемая клиент-серверная архитектура используется для облачной антивирусной защиты (см. выше), список доступных серверов формируют (любым известным из уровня техники способом, например, силами аналитика или автоматически на основании характеристик, описывающих сервера 110 и клиенты 120) из серверов 110, на которых антивирусные базы, используемые сервером сканирования 111, имеют версию такую же, как и антивирусные базы, используемые агентом 121, функционирующем на клиенте 120.

Ещё в одном примере список доступных серверов формируют из серверов 110, на которых антивирусные базы обновлялись не позднее или не раньше заданного временного диапазона, чем антивирусные базы, используемые агентом 121, функционирующем на клиенте 120.

Например, антивирусные базы на сервере 110 не должны быть более чем на 8 часов старше антивирусных баз на клиенте 120.

В качестве информации о вычислительных ресурсах сервера 110 может выступать по меньшей мере:

• загрузка сервера 110 (к примеру, процент использования процессора или объёма оперативной памяти);

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

• некоторый комплексный весовой коэффициент, вычисляемый на основании различных параметров, характеризующих работу сервера 110.

В качестве информации о расположении сервера 110 в виртуальной инфраструктуре выступает иерархическая структура, описывающая расположение указанного сервера 110 в иерархии [сервер управления виртуальной структурой] – [датацентр] – [кластер] – [хост (гипервизор)] – [виртуальная машина].

Агент 121, работающий на каждом клиенте 120 из сформированного набора клиентов предназначен для:

• сбора данных об указанном клиенте 120 и передачи собранных данных средству обнаружения сервисов 130;

• соединения между указанным клиентом 120 и выбранным сервером 110 по запросу средства балансировки 140.

В одном из вариантов реализации системы в качестве данных о клиенте 120 выступают по меньшей мере:

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

• информация о сетевой доступности клиента 120, в частности о целостности и качестве соединения между клиентом 120 и сервером 110;

• информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере:

• клиент 120,

• пару клиент 120 – сервер 110;

• информация об установленном на клиенте 120 программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом 121, работающим на клиенте 120;

• информация о требуемых клиенту 120 вычислительных ресурсах;

• информация о расположении клиента 120 в виртуальной инфраструктуре.

В качестве идентификатора клиента 120 может выступать любая известная из уровня техники характеристика, однозначно идентифицирующая указанный клиент 120.

В качестве информации о сетевой доступности клиента 120 могут выступать данных, полученные такими утилитами, как ping и tracert, а именно:

• процент потерянных сетевых пакетов, переданных от клиента 120 серверу 110;

• время, затрачиваемое на передачу сетевых пакетов от клиента 120 серверу 110 и обратно;

• маршрут следования данных от клиента 120 к серверу 110.

В качестве обслуживаемых тегов могут выступать данные (в том числе числа и строки), характеризующие группу серверов 110 и позволяющие выбрать указанную группу серверов 110 из набора доступных серверов и сформировать списки доступных серверов для клиента 120.

В случае, когда описываемая клиент-серверная архитектура используется для облачной антивирусной защиты (см. выше) список доступных серверов формируют из серверов 110, на которых антивирусные базы, используемые сервером сканирования 111, имеют версию такую же, как и антивирусные базы, используемые агентом 121, функционирующем на клиенте 120.

Ещё в одном примере список доступных серверов формируют из серверов 110, на которых антивирусные базы обновлялись не позднее или не раньше заданного временного диапазона, чем антивирусные базы, используемые агентом 121, функционирующем на клиенте 120.

Например, антивирусные базы на сервере 110 не должны быть более чем на 8 часов старше антивирусных баз на клиенте 120.

В качестве информации о требуемых клиенту 120 вычислительных ресурсах может выступать по меньшей мере:

• объём данных, требующих обработки;

• максимальное время, необходимое для обработки указанных данных.

В качестве информации о расположении клиента 120 в виртуальной инфраструктуре выступает иерархическая структура, описывающая расположение указанного клиента 120 в иерархии [сервер управления виртуальной структурой] – [датацентр] – [кластер] – [клиент].

Средство обнаружения сервисов 130 (англ. virtual infrastructure integration server, VIIS, или англ. discovery service), предназначено для формирования списка доступных серверов для каждого клиента 120 на основании собранных серверами сканирования 111 и агентами 121 данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне.

Стабильность списка доступных серверов для заданного клиента 120 к изменению собранных данных заключается по меньшей мере в следующем:

• один и тот же клиент 120 всегда получает один и тот же список доступных серверов из подходящих для указанного клиента 120 серверов 110 за исключением случаев, когда некоторые сервера 110 из указанного списка не отвечают (отключены, перегружены и т.д.), при выполнении которых формируемый список доступных серверов дополняется новыми серверами 110 из подходящих для указанного клиента 120 серверов 110;

• изменения некоторых данных, получаемых от клиента 120 или серверов 11 (например, установленное программное обеспечение, загрузка серверов 110 и т.д.) не влияет на формируемый для указанного клиента 120 список доступных серверов, хотя и влияет на выбор средством балансировки 140 сервера 110 из сформированного списка доступных серверов для соединения клиента 120 с выбранным сервером 110.

В одном из вариантов реализации с помощью средства обнаружения сервисов 130 формируют список серверов в виде направленного кольцевого списка серверов. При этом список доступных серверов формируют из серверов 110, с которыми возможно установить соединение (сервера 110 отвечают на запросы) и которые способны выполнять клиентские задачи (сервер 110 имеет свободные вычислительные ресурсы для выполнения клиентских задач).

Ещё в одном из вариантов реализации системы список доступных серверов с помощью средства обнаружения сервисов 130 упорядочивают по значению хэш-суммы идентификатора сервера 110.

Ещё в одном из вариантов реализации системы для переподключения клиента 120 последовательно выбирают сервера 110 из списка доступных серверов, начиная с сервера 110, значение хэш-суммы идентификатора которого располагается непосредственно после позиции значения хэш-суммы идентификатора клиента 120 (также может использоваться хэш-сумма идентификатора агента 121, поскольку в клиент-серверной архитектуре функционирует связка клиент 120 + агент 121 и сервер 110 + сервер сканирования 111) в направленном кольцевом списке серверов.

Ещё в одном из вариантов реализации системы списки доступных серверов, сформированные для клиентов 120, суммарно содержат количество серверов 110 меньше заданного порогового значения.

Ещё в одном из вариантов реализации системы списки доступных серверов формируют таким образом, чтобы сервера 110, доступные из набора доступных серверов, были равномерно распределены по формируемым спискам.

Данная задача достигается за счёт использования системы хэширования: формирование стабильного списка серверов 110 для клиента 120 осуществляется на основании направленного кольцевого списка доступных серверов, упорядоченного по хэш-сумме идентификатора сервера 110 (также может использоваться идентификатор сервера сканирования 111, идентификатор виртуальной машины, на которой работает указанный сервер сканирования 111, и т.д.) и хэш-сумме идентификатора клиента 120 (также может использоваться идентификатор агента 121).

Для каждого клиента 120 берётся заданное количество серверов 110 из кольцевого списка доступных серверов, начиная с первого сервера 110, хэш-сумма идентификатора которого равна или больше хэш-суммы идентификатора клиента 120.

Ещё в одном из вариантов реализации системы формируемые списки доступных серверов для каждого клиента 120 не сохраняются на диск, что позволяет повысить скорость выдачи указанных списков клиентам 120 при экономии ресурсов жёсткого диска (или подсистемы, выполняющей функции персистентного хранилища).

Ещё в одном из вариантов реализации системы клиенты 120 могут обмениваться между собой списками доступных серверов в обход средства обнаружения сервисов 130, снижая таким образом объём служебного трафика между клиентами 120 и средством обнаружения сервисов 130, который может быть перегружен запросами.

В частности, обмениваться списками доступных серверов могут клиенты 120, обладающие схожими характеристиками, в качестве которых может выступать:

• информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере:

• клиент 120,

• пару клиент 120 – сервер 110;

• информация о расположении клиентов 120 в одной виртуальной инфраструктуре.

Ещё в одном из вариантов реализации системы формирование списка доступных серверов для клиентов 120 выполняется периодически через заданный диапазон времени (например, каждые 5 минут).

Средство балансировки 140 предназначено для выбора сервера 110 из сформированного средством обнаружения сервисов 130 для указанного клиента 120 списка доступных серверов на основании наступления заданных условий.

В одном из вариантов реализации системы в качестве заданных условий для выполнения балансировки подключения между клиентом 120 и сервером 110 выступает по меньшей мере:

• обрыв соединения между клиентом 120 и сервером 110;

• обнаружение более оптимального сервера 110 с помощью заданного алгоритма балансировки.

В одном из вариантов реализации системы оптимальность сервера 110 определяется по меньшей мере его:

• загрузкой (используемыми вычислительными ресурсами на момент соединения с сервером);

• временем соединения с сервером;

• скоростью обмена данными между клиентом и сервером;

• стабильностью соединения между клиентом и сервером (в том числе средним временем между соседними обрывами соединения между клиентом и сервером).

В качестве алгоритма балансировки для обнаружения более оптимального сервера 110 под заданную задачу клиента 120 может использоваться любой известный из уровня техники алгоритм балансировки серверов, например, в качестве такого алгоритма может использоваться технология децентрализованного распределения агентов между сканирующими серверами, описанная в публикации US10496819.

Ещё в одном из вариантов реализации системы в качестве алгоритма балансировки выступает обученная модель балансировки 141.

Ещё в одном из вариантов реализации указанная система дополнительно содержит средство переобучения 150, предназначенное для переобучения модели балансировки 141 по результатам выполнения задач клиентов 120 на серверах 110.

В одном из вариантов реализации системы переобучение модели балансировки 141 выполняется таким образом, чтобы при схожих задачах клиентов 120, которые выполняли на серверах 110 по меньшей мере:

• сетевой трафик между клиентами 120 и серверами 110 был ниже, чем при использовании непереобученной модели балансировки 141;

• производительность клиент-серверной архитектуры была выше, чем при использовании непереобученной модели балансировки 141 (при этом производительность может измеряться любым известным из уровня техники способом, в том числе путём оценки затрачиваемых вычислительных ресурсов).

Ещё в одном из вариантов реализации системы балансировки подключений между клиентами 120 и серверами 110 выполняется периодически через заданный диапазон времени (например, каждые 15 секунд).

Таким образом, при использовании описанной выше технологии удаётся

• уменьшить объём сетевого трафика между клиентами 120 и серверами 110 за счёт уменьшения количества серверов 110, из которых формируются списки доступных серверов для каждого клиента 120 и, соответственно, за счёт снижения объёма служебного сетевого трафика, генерируемого при сборе данных об указанных серверах 110.

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

• избежать нарушения в работе межсетевых экранов, функционирующих на клиентах 120, за счёт уменьшения установленных соединений клиентов 120 с серверами 110.

• повысить отзывчивость описываемой клиент-серверной архитектуры за счёт осуществления стабильного соединения клиентов 120 с серверами 110;

• повысить производительность клиент-серверной архитектуры за счёт выбора наименее нагруженных серверов 120 для каждого из клиентов 120.

В данном случае под отзывчивостью клиент-серверной архитектуры понимается время реакции между событиями на сервере и ответом на клиенте и наоборот. Чем меньше время реакции, тем выше отзывчивость клиент-серверной архитектуры.

Описанная выше технология позволяет в том числе уменьшить количество соединений между клиентами 120 и серверами 110 за счёт более стабильной работы клиентов 120 с уже выбранными серверами 110, поскольку позволяет снизить их перегрузку и как следствие падение производительности или даже отказ в работе.

Фиг. 2 представляет структурную схему способа балансировки подключений между клиентами и серверами.

Структурная схема способа балансировки подключений между клиентами и серверами содержит этап 210, на котором собирают данные о серверах, этап 220, на котором собирают данные о клиентах, этап 230, на котором формируют список доступных серверов, этап 240, на котором осуществляют балансировку подключений, этап 241, на котором выбирают сервера, этап 242, на котором осуществляют соединение между клиентами и серверами, на этапе 250 переобучают модель балансировки.

Более подробно описание приведённых ниже этапов раскрыто в описании Фиг. 1.

На этапе 210 собирают с помощью сервера сканирования 111, работающего на соответствующем сервере из сформированного набора серверов 110, данные о серверах 110 из сформированного набора серверов.

На этапе 220 собирают с помощью агента 121, работающего на соответствующем клиенте из сформированного набора клиентов, данные о клиентах 120 из сформированного набора клиентов.

На этапе 230 формируют с помощью средства обнаружения сервисов 130 список доступных серверов для каждого клиента 120 на основании собранных на этапах 210, 220 данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне.

На этапе 240 осуществляют для каждого клиента 120 балансировку подключения между указанным клиентом 120 и сервером 110, для чего:

• на этапе 241 выбирают с помощью средства балансировки 140 сервер 110 из сформированного для указанного клиента 120 списка доступных серверов на основании наступления заданных условий;

• на этапе 242 осуществляют с помощью агента 121 соединение между указанным клиентом 120 и выбранным сервером 110.

На этапе 250 с помощью средства переобучения 150 переобучают модель балансировки 141 по результатам выполнения задач клиентами 120 на серверах 110.

Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.

Персональный компьютер 20 в свою очередь содержит жёсткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жёсткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жёсткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.

Настоящее описание раскрывает реализацию системы, которая использует жёсткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединён к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединён к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащён другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удалёнными компьютерами 49. Удалённый компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключён к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключён к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

В заключение следует отметить, что приведённые в описании сведения являются примерами, которые не ограничивают объём настоящего изобретения, определённого формулой.

1. Система балансировки подключений между клиентами и серверами, которая содержит:

а) сервер сканирования, работающий на каждом сервере из сформированного набора серверов и предназначенный для сбора данных о сервере;

б) агент, работающий на каждом клиенте из сформированного набора клиентов и предназначенный для:

сбора данных об указанном клиенте;

соединения между указанным клиентом и выбранным сервером;

в) средство обнаружения сервисов, предназначенное для формирования списка доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне;

г) средство балансировки, предназначенное для выбора сервера из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий для выполнения балансировки подключения.

2. Система по п.1, в которой в качестве данных о сервере выступают по меньшей мере:

идентификатор сервера, в частности его BIOS ID;

IP адрес сервера и порт подключения клиента к серверу;

информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером;

информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер;

информация об установленном программном обеспечении, в том числе по меньшей мере:

информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии;

информация о версии антивирусных баз, используемых сервером сканирования;

информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах;

информация о расположении сервера в виртуальной инфраструктуре.

3. Система по п.1, в которой в качестве данных о клиенте выступают по меньшей мере:

идентификатор клиента, в частности его BIOS ID;

информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером;

информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер;

информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте;

информация о требуемых клиенту вычислительных ресурсах;

информация о расположении клиента в виртуальной инфраструктуре.

4. Система по п.1, в которой в качестве сервера выступает виртуальная машина.

5. Система по п.1, в которой формируют список доступных серверов в виде направленного кольцевого списка серверов.

6. Система по п.5, в которой список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.

7. Система по п.6, в которой для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.

8. Система по п.1, в которой сформированные для клиентов списки доступных серверов суммарно содержат количество серверов меньше заданного порогового значения.

9. Система по п.1, в которой в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере:

обрыв соединения между клиентом и сервером;

обнаружение сервера с помощью заданного алгоритма балансировки.

10. Система по п.9, в которой в качестве алгоритма балансировки выступает обученная модель балансировки.

11. Способ балансировки подключений между клиентами и серверами, при этом способ содержит этапы, которые реализуются с помощью средств из системы по п.1 и на которых:

а) собирают с помощью сервера сканирования, работающего на соответствующем сервере из сформированного набора серверов, данные о серверах из сформированного набора серверов;

б) собирают с помощью агента, работающего на соответствующем клиенте из сформированного набора клиентов, данные о клиентах из сформированного набора клиентов;

в) формируют с помощью средства обнаружения сервисов список доступных серверов для каждого клиента на основании собранных данных, при этом сформированный список доступных серверов является стабильным к изменению собранных данных в заданном диапазоне;

г) выбирают с помощью средства балансировки сервер из сформированного для указанного клиента списка доступных серверов на основании наступления заданных условий;

д) осуществляют с помощью агента соединение между указанным клиентом и выбранным сервером условий для выполнения балансировки подключения.

12. Способ по п.11, по которому в качестве данных о сервере выступают по меньшей мере:

идентификатор сервера, в частности его BIOS ID;

IP адрес сервера и порт подключения клиента к серверу;

информация о сетевой доступности сервера, в частности о целостности и качестве соединения между клиентом и сервером;

информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере сервер, пару клиент-сервер;

информация об установленном программном обеспечении, в том числе по меньшей мере:

информация о лицензии сервера сканирования, работающего на сервере, в частности о наличии и типе лицензии;

информация о версии антивирусных баз, используемых сервером сканирования.

информация о доступных вычислительных ресурсах сервера, в частности о подключённых к серверу клиентах;

информация о расположении сервера в виртуальной инфраструктуре.

13. Способ по п.11, по которому в качестве данных о клиенте выступают по меньшей мере:

идентификатор клиента, в частности его BIOS ID;

информация о сетевой доступности клиента, в частности о целостности и качестве соединения между клиентом и сервером;

информация об обслуживаемых тегах, где в качестве тегов выступают заранее заданные метки, характеризующие по меньшей мере клиент, пару клиент-сервер;

информация об установленном программном обеспечении, в частности информация о версии антивирусных баз, используемых агентом, работающим на клиенте;

информация о требуемых клиенту вычислительных ресурсах;

информация о расположении клиента в виртуальной инфраструктуре.

14. Способ по п.11, по которому в качестве сервера выступает виртуальная машина.

15. Способ по п.1, по которому формируют список доступных серверов в виде направленного кольцевого списка серверов.

16. Способ по п.15, по которому список доступных серверов упорядочивают по значению хэш-суммы идентификатора сервера.

17. Способ по п.16, по которому для переподключения клиента последовательно выбирают сервера из списка доступных серверов, начиная с сервера, значение хэш-суммы идентификатора которого располагается непосредственно после потенциальной позиции значения хэш-суммы идентификатора агента в направленном кольцевом списке серверов.

18. Способ по п.11, по которому сформированные для клиентов списки доступных серверов суммарно содержат серверов меньше заданного порогового значения.

19. Способ по п.11, по которому в качестве заданных условий для выполнения балансировки подключения между клиентом и сервером выступает по меньшей мере:

обрыв соединения между клиентом и сервером;

обнаружение сервера с помощью заданного алгоритма балансировки.

20. Способ по п.19, по которому в качестве алгоритма балансировки выступает обученная модель балансировки.



 

Похожие патенты:

Изобретение относится к области вычислительной техники, в частности к системам потоковой обработки данных с IoT устройств. Технический результат изобретения состоит в оптимизации использования технических ресурсов обслуживающих серверов путем высвобождения малоиспользуемых и нагружения новых ресурсов при росте нагрузки.

Изобретение относится к средствам управления базами данных, реализованными в облачном вычислительном окружении. Техническим результатом является обеспечение возможности надежно обнаруживать неактивность в пользовательских рабочих нагрузках.

Изобретение относится к средствам управления базами данных, реализованными в облачном вычислительном окружении. Техническим результатом является обеспечение возможности надежно обнаруживать неактивность в пользовательских рабочих нагрузках.

Изобретение относится к области вычислительной техники. Технический результат заключается в увеличении сроков эксплуатации аппаратуры ЖАТ и обеспечении максимальной и равномерной выработки ресурса аппаратуры по мере ее эксплуатации.

Изобретение относится к способу и системе управления программными контейнерами. Технический результат заключается в управлении выделением количества вычислительных ресурсов программному контейнеру.

Предложенное изобретение относится к области компьютерных технологий. Технический результат, достигаемый при использовании предложенного изобретения, заключается в обеспечении оптимального покрытия типов решаемых задач с помощью минимального количества вычислителей за счет, в том числе, устранения дублирования вычислителей в составе вычислительного комплекса, что обеспечивает формирование вычислительного комплекса оптимальной полноты.

Предложенное изобретение относится к области компьютерных технологий. Технический результат, достигаемый при использовании предложенного изобретения, заключается в обеспечении оптимального покрытия типов решаемых задач с помощью минимального количества вычислителей за счет, в том числе, устранения дублирования вычислителей в составе вычислительного комплекса, что обеспечивает формирование вычислительного комплекса оптимальной полноты.

Изобретение относится к области распределенной обработки данных и, в частности, к способу и серверу для планирования операций ввода/вывода (I/O) с целью их обработки. Техническим результатом является повышение точности планирования операций ввода/вывода, которые должны обрабатываться накопителем, входящим в состав распределенной компьютерной системы.

Изобретение относится к области распределенной обработки данных и, в частности, к способу и серверу для планирования операций ввода/вывода (I/O) с целью их обработки. Техническим результатом является повышение точности планирования операций ввода/вывода, которые должны обрабатываться накопителем, входящим в состав распределенной компьютерной системы.

Изобретение относится к области вычислительной техники и может быть использовано для арбитража в многопроцессорных системах обработки информации для распараллеливания потока заявок. Техническим результатом является обеспечение возможности анализа параметров входной задачи и параметров каналов обработки задач.

Изобретение относится к способам контроля расхода энергии в транспортном средстве. Техническим результатом является снижение расхода энергии транспортным средством на конкретном участке пути, а также обеспечение возможности контроля расхода энергии транспортным средством и повышение точности предоставления информации о расходе энергии транспортным средством.
Наверх