Балансировка нагрузки через процессоры компьютера-сервера

Реферат

 

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

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

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

Поскольку Интернет представляет очень мощную систему, через которую распространяется информация, создан ряд обслуживающих систем, которые позволяют использовать Интернет для передачи информации от одного компьютера в другой. Примеры таких систем - это FTR, News, Gopher и всемирная "паутина" World Wide Web (WWW), называемая ниже как WWW.

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

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

Так как все больше и больше людей начинает пользоваться системами услуг в сети Интернет такими как, например, WWW, поэтому количество запросов на компьютеры-серверы увеличивается. Для того, чтобы справиться с этими запросами, начинают использовать параллельные компьютеры в качестве серверов, эти компьютеры включают несколько процессоров, которые обеспечивают выполнение услуг. За счет использования нескольких процессоров можно обрабатывать очень большие объемы запросов, поступающих на сервер. Примером такого параллельного компьютера являются машины IBM RISC System/6000 SP (IBM и RISC System/6000 зарегистрированы под товарными марками Корпорации IBM).

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

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

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

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

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

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

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

В предпочтительных вариантах сеть - это Интернет, система обслуживания - это система World Wide Web, а блоки информации - это страницы "паутины" Web. Однако очевидно, что изобретение может применяться для любой сети и системы обслуживания, в которой блоки информации передаются пользователем и которые включают отсылки к последующим блокам информации, которые может запросить пользователь и которые серверу потребуется обслуживать.

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

Согласно второму объекту настоящего изобретения предлагается способ работы компьютера-сервера, подключаемого к сети и содержащего ряд процессоров, выполненных с возможностью обслуживать один или более компьютеров-пользователей, подключенных к сети, обслуживание включает снабжение компьютера-пользователя блоками информации, а процессоры имеют доступ к запоминающему устройству, в котором хранятся данные для блоков информации. Способ включает шаги: (a) в ответ на запрос от компьютера-пользователя на конкретный блок информации из процессора используется этот процессор для выборки данных из запоминающего устройства, для того чтобы сформировать файл, представляющий запрошенный блок информации, причем файл включает отсылки к последующим блокам информации, которые могут быть запрошены пользователем; (b) использование средства определения нагрузки для периодического определения данных об активности для процессоров, с тем чтобы включить в запись распределения нагрузки, поддерживаемую (сохраняемую) для каждого из процессоров сервера; (c) для каждой отсылки к последующему блоку информации в файле, сформированном на шаге (a), на основе записи распределения нагрузки определяется, какой процессор должен обслуживать запрос от компьютера-пользователя на этот последующий блок информации, и включается адрес для этого процессора в файл, сформированный на шаге (a); и (d) пересылка файла в компьютер-пользователь.

Краткое описание чертежей Настоящее изобретение будет описано далее с помощью примера, относящегося только к предпочтительному варианту его осуществления, как показано на прилагаемых чертежах, на которых: фиг. 1 - блок-схема, иллюстрирующая сервер в соответствии с предпочтительным вариантом настоящего изобретения; фиг. 2 - последовательность выполнения операций (алгоритм), иллюстрирующая процессы, выполняемые в предпочтительном варианте процессором сервера при приеме запроса от пользователя; и фиг. 3 иллюстрирует, как запись распределения нагрузки используется для определения, какой процессор будет обслуживать последующие запросы на блоки информации.

Описание предпочтительного варианта В предпочтительном варианте настоящего изобретения мы будем рассматривать, систему WWW, позволяющую выполнять услуги по обмену данными по Интернет, и описывать механизм обеспечения вторичной балансировки нагрузки через ряд процессоров, совмещенных в параллельном сервере "паутины" Web.

Рассматривая сначала структуру WWW, следует указать, что она основана на Universal Resource locators (унифицированных указателях ресурсов) (УУР), которые можно рассматривать как описывающие конкретную страницу или файл в WWW. УУР обозначает машину-сервер (компьютер-сервер) и конкретный файл или страницу в этой машине. Например, связь может быть в "http:// www.ibm. com/example. html". "http:" указывает на то, что используют World Wide Web, "www. ibm. com" - это имя в Интернет (межсетевое имя) сервера Web в сети, из которой требуется запросить страницу, a "example.html" - это имя страницы, которую хотелось бы получить.

Компьютер пользователя использует программное обеспечение обычно называемое броузер (программа просмотра) для снабжения пользователя простым ГИП (графический интерфейс пользователя), позволяющим пользователю осуществлять "навигацию" по WWW к различным УУР. Иногда пользователь по имени определяет конкретный УУР, но чаще пользователь переходит с одного УУР в другой с помощью ссылок на странице (так называемые "гиперсвязи"). Таким образом, конкретное слово или символ на странице могут быть связаны с другим УУР, так что выбор этого слова или символа, например, щелчком мыши в соответствующем месте, приведет к тому, что компьютер-пользователь считает эту страницу из выбранного УУР и отобразит ее на экране. Эта новая страница может находиться на совершенно другом сервере, не на том, где первая страница. Слово или символ, которые устанавливают соответствие с другим УУР, иногда называют "горячей кнопкой" (или что-нибудь подобное). На одной странице может быть много горячих кнопок или гиперсвязей.

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

Страницы форматируются в соответствии со стандартным форматом, известным как HTML. Обычная страница Web включает какой-нибудь текст, встроенные изображения (графика) и ряд связей (отсылок) к другим страницам, на которых человек, рассматривающий страницу, может "щелкнуть" (мышью), если хочет получить больше информации по определенной теме. Изображения сами по себе являются "страницами" Web, которые броузер Web (программа просмотра) автоматически запрашивает из компьютера-сервера по желанию пользователя, когда загружается страница из компьютера-сервера. Эти изображения обычно запоминаются в сервере как отдельные графические файлы, например, в стандартном ".gif" или ". ipeg" формате. HTML текст содержит ссылки на эти графические файлы, которые побуждают пользователя выбрать из сервера также специальные файлы, что позволяет пользователю отображать на экране и текст HTML, и соответствующие изображения. Последующие связи (отсылки) с этой страницы могут быть либо на какую-нибудь другую страницу на том же сервере, с которого пришла базовая страница, либо на любом другом сервере Web в Интернет. В целях иллюстрации предпочтительного варианта настоящего изобретения будут рассмотрены графические файлы и последующие связи, которые находятся на том же сервере, что и базовая страница. Далее мы будем в обоих этих случаях говорить как о "ссылочных страницах Web".

Существует большое разнообразие коммерчески доступного для использования в компьютерах-пользователях программного обеспечения броузера Web, например, Web Explorer от IBM Corporation и Mosaic от NCSA. Все такие броузеры (программы просмотра) понимают HTML и другие стандартные форматы WWW и могут отображать или правильно выводить файлы в этих форматах. Аналогично, механизмы для навигации между различными УУР также понятны и используются такими программами. Дополнительную информацию о World Wide Web можно найти в "Spinning the Web" ("Вращение Паутины") Андре Форда (Andrew Ford) (International Thomason Publishing, Лондон, 1995) и "The World Wide Web Unkeashed") ("Высвобожденная всемирная паутина") Джона Десемба (John December) и Нейла Рендела (Neil Randall) (SAMS Publishing, США, Индианаполис, 1994).

В предпочтительном варианте настоящего изобретения метод балансировки нагрузки применяется при использовании параллельного сервера, чтобы при этом несколько процессоров сервера имели одно и то же имя в Интернет. Например, со ссылкой на фиг. 1, параллельный сервер 10 Web, www.idm.com, может обслуживаться процессорами 20, 30, 40, названными, скажем, www1. idm.com, www2. idm. com и www3.idm.com. Программа балансировки нагрузки устанавливает, что запрос в www.idm.corm должен быть отправлен в один из процессоров, который образует часть этого параллельного сервера Web. Подходящий метод балансировки нагрузки обсуждается в опубликованной европейской патентной заявке ЕР-А-0648038, в которой описан метод динамического балансирования нагрузки, при котором нагрузка на параллельном сервере должна быть сбалансирована через различные процессоры (или компьютеры), образующие сервер. Когда программа в компьютере-пользователе 50 дает указание на подключение к процессору параллельного сервера 10, он (компьютер-пользователь) связывается с системой 60 обработки данных, часто называемой сервером имен, для получения сетевого адреса для желательного (выбранного) сервера. Согласно методу, описанному в EP-A-0648038, логика 70 принятия решения обеспечивает периодическое исследование процессоров или компьютеров в параллельном сервере 10 и на основе нескольких конфигуративных критериев отбирает один из этих процессоров. Конфигуративные критерии могут выбираться так, чтобы логикой 70 принятия решения выбирался такой процессор, который во время применения критериев оказался наименее сильно нагруженным. Адрес этого процессора затем связывается с родовым именем сервера в средстве 80 выборки блока, доступном для сервера 60 имен, так что каждый раз программа-пользователь запрашивает машинный адрес, используя родовое имя сервера. В ответ она получает адрес процессора в параллельном сервере 10, который был выбран логикой 70 принятия решения в последний раз. Следовательно, если www.idm.com - это родовое имя, то в ответ на запрос от пользователя 50 в сервер 60 имен на адрес в Internet www.idm. com, пользователь получит адрес в Интернет одного из трех процессоров 20, 30, 40. Более подробные сведения об этом методе можно получить в ЕР-А-0648038.

Традиционно последующая связь (отсылка), которая обращается назад к тому же серверу (часто называемому "узел Web"), где находится и базовая страница, будет ссылаться на то же самое имя в Интернет, что и имя базовой страницы. Например, на странице http://www.idm.com/first_page.html последующая связь (отсылка) может быть к http://www. idm.com/second_page. html. Поскольку компьютер-пользователь уже спрашивал у сервера 60 имен адрес в Интернет родового имени, www.idm.corn, обычно он сразу использует опять тот же адрес в Интернет. Следовательно, последующий запрос будет направлен в тот же процессор, который обслуживал первоначальный запрос. Поскольку сервер 60 имен не "консультируется" повторно для принятия решения о родовом имени www.idm. com, то и не применяется никакой метод балансирования нагрузки, используемый в сервере имен. В результате, исполнительный процессор, который обслуживал первоначальный запрос, "заполняется" запросами по последующим связям и это приводит к ранее упомянутому эффекту "подсушивания".

Компьютер-пользователь может быть выполнен таким, что он всегда будет "консультироваться" с сервером 60 имен по последующим запросам. Однако при попытке увеличить эффективность серверов имен они имеют тенденцию размещать в кэш-памяти подробности последних запросов имен. Обычно пользователь не связывается напрямую с сервером 60 имен. Вместо этого он как правило связывается со своим локальным сервером имен, который связывается с серией других серверов имен до тех пор, пока, наконец, запрос не будет передан в сервер 60 имен, именно этот сервер имен имеет "власть" над параллельным сервером 10 Web. Адрес в Интернет (межсетевой адрес), решение о котором было принято сервером 60 имен, затем передается назад через все эти серверы имен, каждый из которых может по выбору отправить в кэш конкретный адрес в Интернет, который был установлен для www.idm.com. Следовательно, если компьютер-пользователь выполнен так, что каждый раз ему нужно связываться с www. idm. com, тогда он взаимодействует с сервером имен, он по-прежнему стремится получить адрес, ранее установленный сервером 60 имен, поскольку, например, локальный сервер имен может решить, что он уже знает адрес в Интернет для этого имени и, следовательно, нет необходимости передавать запрос дальше. Таким образом, понятно, что несмотря на то, что метод балансировки нагрузки на сервере 60 имен полезен для первого запроса пользователя об адресе сервера, для любых последующих отсылок к тому же родовому имени сервера этот метод бесполезен.

Для решения этой проблемы в предпочтительном варианте изобретения параллельный сервер Web обладает способностью видоизменять содержимое страниц Web в сервере, когда они обрабатываются, и он использует эту способность для видоизменения имени процессоров, к которым относятся последующие отсылки. Рассмотрим, например, фиг. 1, поскольку www1.ibm.com, www2. ibm.com и www3. ibm.com - все являются серверами в параллельном сервере Web www.ibm.com, последующая связь (отсылка), которая будет иным образом (по-другому) обращаться к www.ibm.com, может быть изменена так, чтобы она относилась к конкретному процессору, например, www1.ibm.com. Это приведет к тому, что запрос на последующую страницу пойдет в конкретный процессор в параллельном сервере Web и, что является очевидным, это может применяться для всех отсылочных страниц Web независимо от того, являются ли они графическими изображениями, включенными в текущую отображаемую на экране страницу Web, или они являются последующими связями (отсылками) к другим страницам Web, к которым пользователь может получить доступ из отображаемой на экране страницы Web.

Используя метод предпочтительного варианта осуществления изобретения для установления точных имен процессоров (например, www1.ibm.com) вместо родового имени для параллельного сервера (www.ibm. com) в целом, можно осуществлять некоторое управление нагрузкой, которая в ближайшее время должна будет загрузить различные процессоры сервера. Это управление позволяет уменьшить вероятность "подсушивания".

Теперь со ссылкой на фиг. 1 будет более подробно описана система в соответствии с предпочтительным вариантом осуществления изобретения. На фиг. 1 показаны функциональные элементы процессора 30, требующиеся для осуществления предпочтительного варианта. Предпочтительно, чтобы все другие процессоры 20, 40 сервера 10, которые обеспечивают выполнение услуг системой Web, содержали бы такие же элементы, но они не показаны на фигуре в целях упрощения блок-схемы. В отличие от предпочтительного варианта в другом варианте системы один или несколько функциональных элементов, отличных от средства считывания блока, могут содержаться в конкретном одном процессоре из множества процессоров или в полностью независимом процессоре, предназначенном для выполнения функции этих элементов. Следовательно, процессор может быть предназначен для выполнения функции средства принятия решения и каждая страница Web, выбранная с помощью средства выборки блока, может быть отправлена в этот процессор для обработки ее с помощью средства принятия решения.

Если после консультирования с сервером 60 имен компьютер-пользователь 50 получает для процессора 30 адрес в Интернет, тогда будет установлено непосредственное взаимодействие его с процессором 30 при запросе пользователя на страницу Web. Средство 80 выборки блока будет иметь доступ к данным в запоминающем устройстве 120, для того, чтобы сформировать файл, представляющий страницу Web, запрошенную пользователем 50. В этом файле для любой отсылочной страницы Web будет использоваться средство 90 принятия решения для определения, какой конкретный процессор должен быть выбран для обработки последующих запросов на эту страницу Web, а идентификатор для этого процессора (например www1.ibm.com) будет содержаться в файле в соответствующем месте.

Как уже ранее более подробно обсуждалось, при определении, какой процессор будет обрабатывать последующий запрос, средство 90 принятия решения обращается к записи распределения нагрузки, содержащей информацию о нагрузках на всех процессорах сервера. Средство 100 определения нагрузки выполнено так, чтобы периодически оценивать активность процессора 30 и давать эту информацию для включения ее в запись распределения нагрузки. Как только средство принятия решения определило, какие процессоры будут обрабатывать любые отсылочные страницы Web, и эта информация была включена в файл, сформированный средством выборки блока, тогда файл передается в средство 110 доставки для пересылки в броузер 130 компьютера-пользователя 50. Броузер 130 затем будет формировать страницу Web из файла для представления ее пользователю компьютера-пользователя 50 и будет пересылать запросы на отсылочные страницы Web непосредственно в процессоры, идентифицированные в файле.

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

Затем средство 90 принятия решения в каждом процессоре, 20, 30, 40 использует эту запись распределения нагрузки для динамического видоизменения межсетевых (в Интернет) имен последующих связей и отсылочных изображений на страницах Web, которые впоследствии обслуживаются. Профиль (программы) периодически обновляется с частотой, которая устанавливается организующей программой сервера Web. Эффект от такого видоизменения содержимого (файла) состоит в том, что процессор, который оказывается более занятым, будет иметь пропорционально меньшее число последующих запросов, направляемых к нему, и таким образом, не возрастает серьезно нагрузка на процессор и этим предотвращается переход его в "подсушенное" состояние. По мере того как процессор будет восстанавливаться, в него будет направляться большее число запросов и, таким образом, будет продолжаться цикл наблюдения (отслеживания) и подстройки нагрузки.

Теперь со ссылкой на фиг. 2 будет описан процесс, осуществляемый процессором в соответствии с предпочтительным вариантом при приеме запроса из компьютера-пользователя. На шаге 200 процессор ожидает запрос от пользователя. На шаге 210 принимается запрос 205 из броузера компьютера-пользователя. Затем, на шаге 220, процессор определяет, какая страница Web запрашивалась, а далее средство 80 выборки блока извлекает эту страницу из базы данных 120 и формирует файл (шаг 230). Далее, на шаге 240 идентифицируются любые ссылки на другие страницы Web в этом файле и средство 90 принятия решения использует самую последнюю запись 270 распределения нагрузки для того, чтобы определить для каждой из этих страниц Web, какой процессор должен обслуживать запрос на эту страницу Web. Следовательно, если следующая страница Web называется "second_ page.html", а средство принятия решения определяет, что запрос должен будет обслуживаться процессором 20, тогда ссылка в файле будет изменена на "http://www1.ibm.com/second_page. html".

Когда эти последующие гиперсвязи полностью "рассмотрены" средством принятия решения, тогда файл передается на шаге 250 в броузер пользователя. Далее, в предпочтительных вариантах процессор выполняется так, чтобы повторно оценивать на шаге 260, насколько он занят, обновляя при этом запись распределения нагрузки на основе этой оценки. Когда это сделано, процессор возвращается на шаг 200, где он ожидает следующий запрос от пользователя.

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

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

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

На фиг. 3 для каждого процессора показана диаграмма нагрузки на процессоре в процентном соотношении к максимальной нагрузке. Обычно максимальная нагрузка определяется точкой, при которой процессор не в состоянии обеспечить приемлемое время ответа, она обычно определяется организующей программой. Очевидно, что существуют и другие способы, с помощью которых может быть сделана оценка нагрузки. Из фиг. 3 видно, что процессор 2 значительно в большей степени нагружен, чем следующий процессор 3, а процессор 1 нагружен в наименьшей степени. Если, например, имеется девять последующих страниц Web первого типа, тогда средство принятия решения может использовать для каждого процессора диаграммы нагрузки, выраженной в процентном отношении, для того чтобы определить, сколько из этих девяти страниц Web должно обслуживаться каждым процессором.

Как показано на фиг. 3, для каждого процессора не используемая нагрузка разделяется на блоки равного размера так, чтобы в целом получилось девять блоков. Подходящий способ балансировки нагрузки через процессоры состоит в том, чтобы установить "обязанность" для конкретного процессора обслуживать последующие запросы на страницы Web, число которых (запросов) равно числу блоков этого процессора, соответствующих не используемой нагрузке. Следовательно, в примере, показанном на фиг. 3, пяти страницам Web будет приписан адрес процессора 1, одной страницы Web приписан адрес процессора 2, а адрес процессора 3 будет приписан трем страницам Web.

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

Формула изобретения

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

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

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

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