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