Технологии разработки распределенных приложений для социальных сетей (часть 3, окончание)

Программные агенты сбора статистической информации функционируют в контейнерах web-сервера и сервера БД для сбора статистических данных о нагрузке функционального и обеспечивающего ПО. К таким данным можно отнести количество запросов, максимальное и минимальное время обработки запроса, количество транзакций, длина транзакции, количество доступных/используемых соединений и т. д. Все собранные данные передаются в асинхронном режиме по информационной магистрали главному агенту.

Программные агенты передачи управляющих воздействий также функционируют в контейнерах web-сервера и сервера БД, но имеют другое предназначение – передача компонентам функционального и обеспечивающего ПО управляющих указаний, касающихся режима их функционирования. В качестве примера к таким указаниям можно отнести: изменение количества обрабатываемых запросов каждым компонентом, изменение количества соединений, адреса компонентов, на которые будет идти физическая переадресация запроса. Кроме того, сюда же можно отнести характеристики режимов функционирования обеспечивающего ПО, относящиеся к аппаратной реализации (количество доступной памяти, квота выделяемого процессорного времени, объем swop-файла и др.). Управляющие программные агенты также подключены к информационной магистрали и получают от главного агента небходимые указания в асинхронном режиме. Главный агент обрабатывает статистические данные, получаемые от программных агентов сбора статистики, формирует управляющие воздействия и передает их по информационной магистрали агентам управления.

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

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

Принцип работы распределенного приложения заключается в том, что пользовательские запросы поступают на «прокси-сервер № 1», программный агент собирает статистику и отсылает ее по информационной магистрали главному программному агенту. В зависимости от указаний, полученных «прокси-сервером № 1» от агента управления, пользовательский запрос будет переадресован тому или иному web-серверу.

Запрос поступает на web-сервер, где проходит последовательную обработку слоями архитектуры функционального ПО. С каждого из таких слоев агентом сбора данных собирается статистика. Кроме того, на режим функционирования web-сервера влияет также агент управления, который регулирует нагрузку. Статистические данные собираются также с web-сервера в целом и передаются через информационную магистраль главному программному агенту.

Модифицированная инфраструктура приложения

Рис. 4. Модифицированная инфраструктура приложения

Web-сервер осуществляет запрос на получение необходимых данных для обработки пользовательского запроса на «прокси-сервер № 2». Web-сервер не имеет данных о количестве и составе серверов БД, таким образом, можно достаточно гибко модифицировать архитектуру приложения.

«Прокси-сервер № 2» передает запрос web-сервера на получения данных определенному серверу БД; выбор соответствующего сервера ему подсказывает программный агент управления, который получает указания от главного программного агента.

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

Таким образом, в данную инфраструктуру можно гибко включать новые web-сервера и сервера БД, при этом не нужно менять остальные слои и компоненты инфраструктуры, достаточно добавить новые сервера в конфигурацию главного агента, который потом осуществит перерасчет нагрузки и выдаст новые указания агентам управления.

При выходе из строя web-сервера или сервера БД главный агент также пересчитает нагрузку на оставшиеся компоненты и передаст указания соответствующим программным агентам, которые повлияют на прокси-сервера, web-сервера и БД. К примеру при выходе из строя двух серверов приложения из пяти и одного сервера БД из пяти нагрузка на web-сервера в среднем возрастет на 40%, а на сервера БД на 20%. Однако, агенты управления могут распорядиться аппаратными средствами и принять соответствующие меры – допустим увеличить количество памяти, используемой компонентом или увеличить квоту процессорного времени. В таком случае нагрузка на остальные компоненты еще больше уменьшиться.

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

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.