Site icon Персональный блог

Балансировка загрузки Web-сервисов с помощью мобильных агентов (начало)

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

Рис.1. Структура распределенных веб-сервисов

Для реализации надежных и высокопроизводительных серверов применяют распределенные веб-серверы. Такие веб-серверы представляют собой набор (N-ное количество серверов) веб-серверов. Это продублированы ресурсы для одновременного предоставления услуг многим пользователям. Входящие запросы могут быть распределены между серверами согласно определенных стратегий распределения загрузки, следовательно эти запросы могут быть обработаны в определенных временных рамках (время отклика). Распределенные веб-сервера (рис. 1) могут быть организованы различными способами:

Распределенные веб-серверы могут легко расширяться, и имеют высокую степень масштабности. Количество серверов может быть увеличено добавлением нового сервера в локальную сеть.

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

Рис.2. Клиентский подход балансировки загрузки

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

Рис. 3. Подход, основанный на DNS

К примеру, браузер Netscape Navigator применяет клиентский подход для доступа к своим сайтам. Когда пользователь заходит на главную страницу Netscape, браузер случайным образом выбирает один сервер и направляет ему запрос пользователя. Однако случайный выбор не всегда может гарантировать балансировку нагрузки всех серверов и доступность выбранного сервера. Интеллектуальный метод выбора сервера может быть реализован с помощью Java апплетов, запущенных на стороне клиента для определения состояния серверов и задержек сети. В таком случае может быть выбран сервер, который наиболее подходит, и запрос пользователя будет направлен именно ему. Недостаток такого метода заключается в большой временной задержке, вызванной определением состояний серверов.

Подход с использованием DNS – это принятие решения на стороне сервера DNS, который обрабатывает запросы по трансляции имен (рис. 3). Чтобы превратить имя, клиент отправляет запрос на DNS-сервер для преобразования имени веб-сервиса на адрес веб-сервера. Он, согласно со стратегией балансировки, выбирает адрес сервера, и отправляет его клиенту. Простейшая стратегия – RoundRobin, а более сложных на включает мониторинг загрузки, учет административных особенностей сети и т.д.

Exit mobile version