Глава 11 7 страницаЧтобы уяснить степень различия современной Всемирной паутины от ее первоначального замысла, представим, что в своем предложении Бернерс-Ли сформулировал требование об ограничении информации, мотивируя его необходимостью уберечь детей от доступа к порнографическим материалам. Как бы на это отреагировало руководство CERN? Без разговоров отклонило бы. То, как меняются задачи заинтересованных лиц, мы обсудим в разделе 13.5 применительно к архитектурно-экономическому циклу Всемирной паутины. 1 © 1996, Donna Сох, Robert Patternson; производство Национального центра но применению суперкомпьютеров (National Center for Supcrcomputing Applications), Упипсрситст шт. Иллинойс, Урба- на-Шамиейн. Перепечатывается с разрешения.
13.3. Архитектурное решение Архитектурной основой Всемирной паутины, принятой сначала CERN, а затем и консорциумом W3C, стало сочетание модели «клиент-сервер» и библиотеки (libWWW), скрывающей все зависимости по аппаратному обеспечению, операционным системам и протоколам. На рис. 13.3 приводится схема взаимодействия производителей и потребителей контента посредством соответствующих серверов и клиентов. Производитель размещает на машине, исполняющей роль сервера, описание информации на языке HTML. Обмен информацией с клиентом осуществляется сервером по протоколу передачи гипертекста (hypertext transfer protocol, HTTP). Программное обеспечение сервера и клиента основывается на libWWW, что позволяет маскировать детали протокола и зависимости от платформ. Одним из элементов, расположенных на стороне клиента, является браузер, который отвечает за понятное для потребителя информации отображение HTML.
Ниже мы намерены более подробно поговорить о библиотеке libWWW и архитектуре «клиент-сервер», которые, однажды составив основу первоначальной версии WWW, сохраняют это качество по сей день. В разделе 13.4 мы проанализируем изменения в архитектуре Всемирной паутины и в соответствующем программном обеспечении, происшедшие в ответ на революцию электронной коммерции. Реализация первоначальных требований: libWWW Как мы уже говорили, libWWW представляет собой библиотеку программного обеспечения для создания приложений, предназначенных для работы на сторо- нах клиента и сервера. Реализованная в ней функциональность — подключение к удаленным хостам, интерпретация потоков данных HTML и пр. — универсальна для большинства таких приложений. libWWW — это компактная, переносимая библиотека, которая встраивается в различные веб-приложения: клиенты, серверы, базы данных и веб-пауки. Она состоит из пяти уровней, изображенных на рис. 13.4.
Из общих утилит формируется уровень переносимости, служащий основой для всех остальных элементов системы. На этом уровне находятся базовые стандартные блоки — в том числе средства сетевого управления и управления строками, а также типы данных (в частности, классы-контейнеры). Службы этого уровня обеспечивают независимость всех вышележащих уровней от конкретной платформы; таким образом, задача по перенесению на новую аппаратную или программную платформу практически полностью сводится к однократному (для каждой платформы) перенесению данного обслуживающего уровня. На уровне ядра содержится «скелет» функциональности веб-приложения: средства доступа к сети, управления данными, синтаксического анализа, регистрации и т. д. Сам по себе этот уровень не выполняет никаких действий. Он лишь предоставляет стандартный интерфейс веб-приложения, при том что фактическая функциональность последнего обеспечивается сменными модулями и вызываемыми функциями, которые это приложение регистрирует. Сменные модули (plug-ins), регистрируемые в период прогона, реализуют на практике все функции уровня ядра — они ответственны за отправку и обработку данных. Как правило, они обеспечивают поддержку протоколов, осуществляют траиспортпые функции ни.ч- кого уровня и интерпретируют форматы данных. Сменные модули можно заменять в динамическом режиме, что упрощает задачу введения новой функциональности и даже позволяет вносить коррективы н характер неб-ириложеннй. Вызываемые функции (call-out functions) — это еще одно средство, нрн номо- щи которого приложения могут выходить за рамки функциональности, предоставляемой уровнем ядра. Они являют собой произвольные прикладные функции, которые вызываются перед пли после подами запросов модулям протоколов. Каков характер отношений между общими утилитами и ядром? Общие утилиты, предоставляющие независимые от конкретной платформы функции, подходят для любых сетевых приложений. Те абстракции, которые предоставляет уровень ядра, напротив, специально предназначены для конструирования вебприложений. Уровень потоков предусматривает абстракцию потока данных, передаваемых между приложением и сетью. На уровне доступа содержатся модули отдельных сетевых протоколов. Стандартный набор, который первоначально поддерживала библиотека libWWW, состоит из следующих протоколов: IITTP — базовый протокол WWW; NNTP (network news transport protocol, сетевой протокол передачи новостей) — протокол передачи сообщений в сети Usenet; WAIS (wide area information server, глобальный информационный сервер) — сетевая информационно-поисковая система; FTP (file transfer protocol, протокол передачи файлов), TELNET, rlogin, Gopher, локальная файловая система и TN3270. Многие из них в настоящее время утра- тили былое значение, однако есть и нововведения — к списку прибавился протокол HTTPS (HTTP secure, протокол защищенной передачи гипертекста). Введение новых модулей протоколов не представляет сложности, поскольку они строятся на абстракциях нижележащих уровней. Верхний уровень, содержащий модули веб-приложения, фактически предоставляет функциональный набор для их написания; универсальные модули кэширования, регистрации информации, прокси-серверов (в целях преобразования протоколов) и шлюзов (для взаимодействия с защитными брандмауэрами), модули ведения журнала истории и т. д. Выводы из опыта применения libWWW На сегодняшний день, исходя из опыта конструирования самой библиотеки libWWW и множества основанных на ней приложений, уже можно делать некоторые выводы. При их формулировании учтены попытки разработчиков удовлетворить перечисленные в разделе 13.2 требования заинтересованных лиц: гетерогенность инструментальных средств для WWW, поддержка удаленного доступа в масштабе многочисленных сетей, децентрализация и т. д. Самой трудной задачей оказалось удовлетворение неожиданно возникшего требования о графическом оформлении. Таким образом, способность веб-приложений к росту стимулировала принятие в рамках libWWW новых решений и обусловила принятие ряда умозаключений. ♦ Необходимы формализованные интерфейсы прикладного программирования (application programming interfaces, APIs). Имеются в виду интерфейсы* которые представляют функциональность библиотеки libWWW сконструированным на ее основе программам. Поскольку libWWW должна была содействовать разработке приложении на различных платформах и языках, зависимость спецификаций таких интерфейсов от конкретного языка не допускалась. ♦ Функциональность и представляющие ее интерфейсы прикладного программирования должны быть многоуровневыми. Разные приложения обращаются к разным ступеням абстракции обслуживания, организовать которые проще всего посредством уровней. ♦ Библиотека должна поддерживать динамический, расширяемый набор характеристик. Все эти характеристики должны быть заменяемыми, в гом числе в период прогона. ♦ Встраиваемые в програлшное обеспечение процессы должны быть многопоточными. Веб-приложения должны предусматривать возможность одновременного выполнения нескольких функций. Связано это, в частности, с тем. что операции загрузки крупных файлов по медленному каналу связи занимают довольно много времени. Отсюда необходимость в одновременном поддержании нескольких потоков управления. Следовательно, функциональность, раскрываемая интерфейсами прикладного программирования, должна быть защищенной в такой степени, которая требуется для ее применения в многопоточной среде. Как оказалось, поддержка библиотекой libWWW решения перечисленных задач реализована не так полно, как это можно было бы сделать. К примеру, ядро libWWW принимает ряд допущений о важнейших службах, что закрывает возможность динамической замены отдельных характеристик. Кроме того, поскольку библиотека libWWW не рассчитана на какую-либо конкретную платформу, опираться на однопоточную модель она не может. По этой причине в ней реализованы псевдопотоки, предоставляющие лишь часть необходимой функциональности. Наконец, большинство современных веб-приложений не поддерживают динамическое конфигурирование характеристик; для того чтобы зарегистрировать новые службы, их необходимо перезапустить. Ранний вариант архитектуры «клиент-сервер», реализованный при помощи libWWW На рис. 13.5 изображено представление размещения типичной клиент-серверной модели Всемирной паутины, построенной с участием libWWW. Там же показано представление декомпозиции на модули HTTP-клиента и серверных компонентов представления размещения. На этой схеме четко прослеживаются некоторые особенности libWWW. Во-первых, далеко не все элементы модели «клиент-сервер» строятся на ее основе. К примеру, от нее никак не зависит пользовательский интерфейс. Во-вторых, имена диспетчеров не обнаруживают точного соответствия с именами уровней. В то время как диспетчеры доступа, протоколов и потоков четко связаны с уровнями доступа и потоков, диспетчер кэширования обращается к службам прикладного уровня. Диспетчеры потоков в рамках пары «клиент- сервер» управляют низкоуровневой передачей данных и тем самым обеспечивают для остальных элементов системы прозрачность информационного обмена. Диспетчер пользовательского интерфейса ответствен за «облик и дух» пользовательского интерфейса клиента. С другой стороны, пользуясь расширяемостью набора ресурсов, доступных системе \YW\V, другой ллсмент — диснетчср представлений — можетделегировать полномочия по отображению информации внешним программам (просмотра). Так происходит с ресурсами, которые известны системе, но которые диспетчер пользовательского интерфейса нс поддерживает напрямую. В частности, большинство веб-браузеров делегируют внешней программе обязанности по отображению файлов PostScript и.pdf. Такое решение возникло как компромисс между стремлением к интеграции пользовательского интерфейса (способной стабилизировать его представление и, следовательно, повысить практичность), с одной стороны, и расширяемостыо — с другой.
Рис. 13.5. Представление размещения клиент-серверной модели Всемирной паутины, а также представление декомпозиции на модули клиента HTTP и серверных компонентов Диспетчер пользовательского интерфейса забирает запрос на поиск информации, поданный пользователем в виде URL, а затем передает эти данные диспетчеру доступа. Диспетчер доступа проводит проверку иа наличие запрошенного URL в кэше и интерпретирует историческую навигацию (например, «Назад»). Если файл присутствует в кэше, он извлекается из диспетчера кэширования и передается диспетчеру представлений для отображения пользовательским интерфейсом или внешней программой просмотра. В случае отсутствия файла в кэше диспетчер протоколов определяет тип запроса и запускает для его обслуживания соответствующий стек протоколов. С помощью последнего клиентский диспетчер протоколов передает запрос на сервер. Получив от сервера ответ, выраженный в форме документа, диспетчер потоков передает его диспетчеру представлений, который, в свою очередь, обеспечивает его отображение. При попытке установления соответствия типа документа внешним программам просмотра диспетчер представлений обращается за помощью к конфигурационному файлу управления статическим представлением (mimerc, mailcap и т. д.). В обязанности HTTP-сервера входит обеспечение прозрачного доступа к файловой системе — благо именно она является источником документов, которые передаются в WWW. HTTP-сервер управляет доступом либо напрямую (для известных типов ресурсов), либо через посредника, называемого общим шлюзовым интерфейсом (common gateway interface, CGI). CGI обрабатывает те типы ресурсов, с которыми не может справиться сервер, а также рассматриваемые ниже расширения функциональности сервера. До появления этих расширений в WWW- серверах реализовывалось подмножество определенных HTTP-запросов, которые предусматривали поиск документов и связанной с ними метаинформации, а также исполнение программ, размещенных на стороне сервера, средствами CGI. Получив запрос, диспетчер потоков на стороне сервера определяет его тип и при помощи распознавателя путей устанавливает путь к указанному URL. Для проверки полномочий доступа, которыми обладает запрашивающий клиент, IITTP- сервер обращается к таблице доступа. Если речь идет об обращении к защищенным данным, сервер может запустить сеанс парольной аутентификации клиента. Затем, приняв допущение об аутентификации, сервер обращается к файловой системе (расположенной за его границами) и записывает запрошенную информацию в выходной поток. Для исполнения программы средствами CGI ей предоставляется процесс (новый или освобожденный в результате опроса), после чего выходные данные исполняемой программы фиксируются диспетчером потоков сервера, и он, в свою очередь, передает их клиенту. Как бы то ни было, CGI — это одно из основных средств, обеспечивающих расширяемость сервера; иначе говоря, оно удовлетворяет важнейшему требованию, определяющему развитие веб-приложений. Важность CGI как аспекта вебприложений позволяет нам остановиться на этой теме чуть подробнее. Общий шлюзовой интерфейс (CGI) Информация, которую сервер возвращает клиенту, по большей части является статической; изменениям она подвержена только в рамках собственной файловой системы. Сценарии CGI, напротив, подразумевают возможность возврата динамической, индивидуальной для каждого запроса информации. Исторически сложившаяся роль CGI заключается в расширении функциональности сервера по части ввода информации, поиска и щелчков на изображениях. Впрочем, чаще всего CGI используется для создания виртуальных документов (virtual documents) — документов, которые синтезируются динамически в ответ на запросы пользователей. К примеру, если пользователь ищет в Интернете конкретную информацию, поисковая система генерирует ответ па каждый поисковый запрос; сценарий CGI создает из ответа новый HTML-документ и возвращает сто пользователю. Сценарии CGI сохранили гибкость, характерную для ранних, основанных на библиотеке libWWW вариантов архитектуры. На рис. 13.5 CGI изображен как внешний по отношению к HTTP-серверу элемент. Сценарии C.GI пишутся на разных языках — как компилируемых (С. C++, Fortran), так и интерпретируемых (Perl, Visual Basic. AppleScript и т. д.). Сценарии CGI позволяют разработчикам произвольным образом расширять функциональность сервера — в частности, производить информацию, возвращаемую сервером пользователю. С другой стороны, поскольку в сценариях CGI может содержаться любая функциональность С, Perl и других языков, в системе защиты машины, на которой они устанавливаются, образуется серьезная брешь. К примеру, с помощью сценария (исполняемого как отдельный от сервера процесс) на хосте от имени удаленного пользователя можно запустить любую команду. Эта угроза, которую демонстрируют исполняемые на стороне сервера сценарии (в том числе CGI), заставила выставить к Всемирной паутине новое требование, касающееся повышения безопасности. Механизм реализации этого требования с помощью HTTPS описывается в следующем разделе. Вероятно, наиболее важным результатом введения в архитектуру веб-техно- лопш CGI явилась возможность «размещать» (put) в сети информацию — в дополнение к стандартной для сервера операции ее «получения» (get). Впрочем, это требование, выдвинутое еще к первоначальному проекту WWW, так и не удалось реализовать в полной мере. CGI позволяет пользователям размещать информацию только посредством специализированных механизмов — например, вносить записи в базу данных путем заполнения формы. С помощью технологии CGI — в основном за счет обеспечения возможностей обработки сервером произвольных ресурсов и (ограниченного) размещения пользователями данных — удалось решить множество проблем, присущих первоначальному проекту libWWW. С другой стороны, у CGI есть несколько существенных недостатков. Один из них связан с безопасностью, другой — с переносимостью. Сценарии CGI, написанные на Visual Basic, AppleScript и С Shell, работают в средах Windows, Macintosh и UNIX соответственно. Переносить эти сценарии с одной платформы на другую довольно сложно.
Реализация первоначальных задач по качеству Реализация первоначально сформулированных для Всемирной паутины задач по качеству — удаленному доступу, способности к взаимодействию, расширяемости и масштабируемости — расписана в табл. 13.2. 13.4. Еще одна итерация архитектурноэкономического цикла: эволюция вариантов веб-архитектуры систем электронной коммерции Невероятный успех Всемирной паутины возбудил к ней серьезный интерес со стороны бизнес-сообщества, которое впоследствии через посредство архитектурно-экономического цикла оказало на ее архитектуру беспрецедентное воздействие. Коммерческие требования в архитектуре Всемирной паутины вскоре стали превалирующими. Большинство инновационных разработок в области веб-приложений было выполнено с подачи веб-сайтов В2В и В2С. Согласно первоначальной концепции, Всемирная паутина должна была стать коллекцией документов, основанной на гипертексте. С точки зрения электронной коммерции WWW является коллекцией данных. Эти две концепции отчасти находятся в противоречии друг с другом. К примеру, сложности вызывает задача «проталкивания» информации пользователю. Общеупотребительная методика обновления данных предусматривает их регулярную перезагрузку; однако сами по себе изменения, происходящие с данными, не приводят к обновлению экрана. Другая проблема связана с кнопками «Назад» в различных браузерах — в определенных обстоятельствах их употребление приводит к выводу на экран устаревших данных. Требования, которые в настоящее время выдвигают игроки электронной коммерции, отличаются от приведенных в разделе 13.2 первоначальных требований как по существу, так и по жесткости. ♦ Высокая производительность. Популярные веб-сайты ежедневно фиксируют десятки миллионов обращений, и пользователи рассчитывают на максимально возможное сокращение задержек. Покупатели не намерены терпеть отказы в ответ на свои запросы. ♦ Высокая готовность. Сайты электронной коммерции должны быть работоспособны 24 часа в сутки, 7 дней в неделю. Поскольку они никогда не закрываются, периоды простоя необходимо строго ограничивать — желательно, чтобы они не превышали нескольких минут в год. ♦ Масштабируемость. Вместе с ростом популярности веб-сайтов должна расти и их обрабатывающая способность — без этого невозможна обработка более серьезных объемов данных и поддержание приемлемого уровня обслуживания клиентов. ♦ Безопасность. Пользователи должны быть уверены в том, что секретную информацию, которую они отправляют через Сеть, никто ие перехватит. Операторы веб-сайтов» в свою очередь, должны быть гарантированы от атак на свои системы (конкретнее — от похищения и модификации данных, отправки огромного количества запросов, приводящей к неготовности данных, порче данных и т. д.). ♦ Модифицируемость. Веб-сайты электронной коммерции постоянно (иногда — ежедневно) претерпевают обновления, в связи с чем возникает потребность в удобстве изменения размещаемой на них информации. Архитектурное решение перечисленных требований лежит в плоскости системной, а не просто программной, архитектуры. Дело в том, что подобного рода системы по большей части состоят из коммерческих компонентов. В эту категорию, естественно, входят веб-серверы и веб-клиенты; кроме того, это базы данных, серверы безопасности, серверы приложений, прокси-серверы, серверы транзакций и т. д. Эталонная архитектура современной системы электронной коммерции изображена на рис. 13.6. Функция взаимодействия программы просмотра с пользователем, как правило, осуществляется веб-браузером (кроме того, это может быть киоск, устаревшая система или какое-либо другое устройство с подключением к Сети). Функция бизнес-правил и бизнес-приложений обычно реализуется серверами приложений и транзакций. Уровень служб обработки данных в большинстве случаев воплощается в современной базе данных, хотя не исключаются и другие варианты — соединения с устаревшими системами и подключение к устаревшим базам данных. Изображенную схему часто называют n-звенной архитектурой (причем в данном случае п = 3). Звено (tier) представляет собой элемент функциональности, на который можно отвести отдельную физическую машину.
Типичная реализация архитектуры системы электронной коммерции включает некоторое количество звеньев (каждое из которых представляет собой связную группу программного обеспечения, как правило, состоящую из специализированных коммерческих компонентов), а также аппаратное обеспечение. Подобная конфигурация изображена на рис. 13.7, который, кроме того, иллюстрирует распределение программ между аппаратными блоками.
Надписи на рис. 13.7, повторяющие приведенные на рис. 13.6 функциональные элементы, в очередной раз свидетельствуют о том, что любая отдельная функция эталонной архитектуры может соответствовать нескольким звеньям архитектуры системы электронной коммерции. Веб-браузеры (клиенты) и веб-серверы с рис. 13.5 предстают здесь в виде элементарных компонентов. Таким образом, налицо тенденция перехода к компонентным системам, в которых снижается значимость внутренней компонентной структуры. Изображенные на рис. 13.7 элементы мы намерены обсудить ниже в контексте атрибутов качества, реализации которых они способствуют. Браузеры ради модифицируемости Запросы на получение информации конечные пользователи, как правило, инициируют при помощи веб-браузера. Поддержка модифицируемости пользовательского интерфейса в современных веб-браузерах осуществляется весьма многообразно, причем наиболее очевидный способ не претерпел никаких изменений с момента появления Всемирной паутины, — пользовательский интерфейс, который отображает браузер, не «вшивается», а специфицируется средствами HTML. По крайней мере, так было раньше. Сегодня технологий создания сложных пользовательских интерфейсов стало гораздо больше. XML, Flash, ActiveX, Java- апнлеты — это лишь некоторые средства, расширяющие стандартную палитру неб-инструментов (состоящую из графики и горячих точек) и способствующие отображению средствами браузеров полностью программируемых интерактивных интерфейсов. HTTPS ради безопасности Поданный пользователем запрос необходимо передать па целевой веб-сайт. Передача обычно осуществляется средствами HTTP, однако если речь идет о секретной информации, вроде номеров кредитных карт и идентификационных номеров, применяется протокол HTTPS (HTTP Secure). В HTTPS в качестве нодпротоко- ла HTTP применяется протокол защищенных сокетов (Secure Sockets Layer, SSL) от компании Netscape. Для отправки зашифрованных запросов на службы ТСР/ IP он использует порт 443 (стандартный порт HTTP — 80). Шифрование данных в рамках SSL производится с помощью 128-бптной пары открытого/секретного ключей — этот уровень шифрования при обмене небольшими пакетами коммерческой информации в рамках коротких транзакций считается достаточным. Прокси-серверы ради производительности Иногда запросы от браузеров проходят через прокси-сервер — элемент, ориентированный на повышение производительности веб-системы. Эти серверы кэшируют веб-страницы, к которым пользователи обращаются чаще всего, в результате чего необходимость в обращении к веб-сайту для их получения отпадает. (Кэши реализуют «многоэкземплярную» тактику.) За счет того, что они, как правило, максимально приближены к пользователям и зачастую даже находятся с ними в одной сети, вычислительные и коммуникационные издержки резко снижаются. В некоторых компаниях прокси-серверы ограничивают доступ сотрудников к тем или иным веб-сайтам. В таком случае прокси-сервер функционально сближается с брандмауэром. Маршрутизаторы и брандмауэры ради безопасности Запросы, отправляемые браузером (ив некоторых случаях обрабатываемые прокси-сервером), прибывают на маршрутизатор, расположенный в сети предприятия электронной коммерции. Иногда эта сеть защищается брандмауэром, а в некоторых случаях маршрутизатор перенаправляет HTTP-запросы на автономный брандмауэр. Маршрутизаторы часто проводят трансляцию сетевых адресов (network address translation, NAT) — иначе говоря, преобразуют IP-адреса из внешне видимых во внутренние. IP-адреса для любого возвращаемого с веб-сервера трафика, напротив, транслируются из внутренних во внешне видимые. NAT — это один из инструментов методики выравнивания нагрузки, к рассмотрению которой мы вернемся чуть позже. Брандмауэр предотвращает несанкционированные информационные потоки и попытки доступа извне, осуществляя, таким образом, тактику «ограничения доступа». Брандмауэры подразделяются на несколько типов, из которых наи- большим распространением пользуются фильтры пакетов (packet filters) и прикладные посредники (application proxies). Фильтры пакетов исследуют заголовки всех входящих пакетов TCP и IP, и в случае обнаружения злонамеренного поведения (например, попытки подключения через несанкционированный порт или отправки файлов неразрешенных типов) пакет отклоняется. В контексте передачи данных в WWW фильтры пакетов хороши тем, что исследуют каждый пакет в отдельности и не делают попыток фиксировать историю предыдущих сеансов связи. Брандмауэры типа «прикладной посредник», как и предполагает их название, ориентированы на конкретное применение. Как правило, они интерпретируют прикладные протоколы и поэтому при фильтрации трафика опираются на известные модели поведения. К примеру, прикладной посредник может отказать в приеме HTTP-отклика, если перед этим на соответствующий узел не был отправлен HTTP-запрос. Брандмауэры такого типа работают значительно медленнее фильтров пакетов; связано это с тем, что, во-первых, они сохраняют историческую информацию значительного объема, а во-вторых, механизм обработки в них значительно сложнее. Выравнивание нагрузки ради производительности, масштабируемости и готовности Компоненты, обеспечивающие выравнивание нагрузки, а следовательно, производительность, масштабируемость и готовность, в обязательном порядке присутствуют на всех уважающих себя веб-сайтах электронной коммерции. Функция блока выравнивания нагрузки заключается в распределении «нагрузки» — входящих запросов HTTP и HTTPS — между участниками пула компьютеров с программным обеспечением веб-сервера. (Как мы говорили в главе 5, выравнивание нагрузки соответствует тактике «внедрения физического параллелизма»). Блок выравнивания нагрузки может перенаправить запрос на другой компьютер самостоятельно (и прозрачно) или отослать веб-клиенту ответ с соответствующей инструкцией. Несмотря на то что перенаправление проходит незаметно для конечного пользователя, фактически оно приводит к дополнительному круговому обращению. При выборе компьютера для перенаправления трафика блок выравнивания нагрузки основывается на алгоритме кругового обслуживания или на знании вычислительных и нагрузочных характеристик подключенных компьютеров. Поскольку исполняемая блоком выравнивания нагрузки роль посредника распространяется на пул компьютеров, введение в этот пул дополнительных машин не требует модификации внешних интерфейсов. Таким образом, блок выравнивания нагрузки обеспечивает масштабируемость производительности — точнее говоря, гот тип этой характеристики, который называют горизонтальным масштабированием (он подразумевает введение дополнительных экземпляров данного ресурса).
|