Система и способ для определения переключения при неоптимальности целевого объекта назад и приоритета целевого объекта для распределенной файловой системы

Иллюстрации

Показать все

Изобретение относится к области распределенных файловых систем. Техническим результатом является повышение эффективности доступа к файлам. Предоставляются система и способ для организации и сортировки целевых объектов, принятых в ответе на запрос указателей, и для реализации политики переключения при неоптимальности целевого объекта назад и приоритета целевого объекта в распределенной файловой системе. В одном варианте осуществления способ сортировки включает в себя принятие ответа на запрос указателей в форме списка целевых объектов, которые отсортированы в ограниченные множества. Наличие ответа на запрос указателей, отсортированного в ограниченные множества, предоставляет основу для реализации политики переключения при неоптимальности целевого объекта назад и приоритета целевого объекта. Компьютерная система может выбирать некоторый целевой объект из отсортированного списка целевых объектов, отсортированных согласно величине связанных с узлом сети затрат и/или приоритету целевого объекта. Затем компьютерная система может определять, ассоциирован ли установленный целевой объект с более предпочтительным целевым объектом при сравнении со всеми доступными целевыми объектами в отсортированном списке, и если нет, переключаться назад на более предпочтительный целевой объект. 3 н. и 13 з.п. ф-лы, 8 ил.

Реферат

Перекрестная ссылка на родственные заявки

По настоящей заявке испрашивается приоритет предварительной патентной заявки Соединенных штатов, серийный номер 60/615,411, поданной 1 октября 2004 и включенной сюда в ее полноте.

Область техники, к которой относится изобретение

Это изобретение относится, в общем, к компьютерным системам и, более конкретно, к улучшенной системе и способу для определения переключения при неоптимальности целевого объекта назад и приоритета целевого объекта для распределенной файловой системы.

Предшествующий уровень техники

Распределенная файловая система (Dfs) - это сетевой серверный компонент, который определяет местоположение данных в сети и управляет данными в сети. Dfs может использоваться для объединения файлов на различных компьютерах в единое пространство имен, таким образом позволяя пользователю строить единое, иерархическое представление многочисленных файловых серверов и совместно используемых ресурсов файловых серверов в сети. В контексте серверного компьютера или множества серверных компьютеров Dfs можно сравнить с файловой системой для жестких дисков в системе персонального компьютера. Например, аналогично роли файловых систем для предоставления единообразного именованного доступа к коллекциям секторов на дисках, Dfs может предоставлять соглашение единообразного именования и отображения для коллекций серверов, совместно используемых ресурсов и файлов. Таким образом, Dfs может организовывать файловые серверы и их совместно используемые ресурсы в логическую иерархию, которая позволяет большому предприятию администрировать и использовать его информационные ресурсы более эффективно.

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

В прошлом, при соглашении об универсальном именовании (UNC) от пользователя или приложения требовалось определять физический сервер и совместно используемый ресурс, чтобы осуществлять доступ к файловой информации. Например, пользователь или приложение должны были определить \\Server\Share\Path\Filename (\\Сервер\Совместно_используемый_ресурс\Путь\Имя_файла). Даже хотя соглашения UNC могут использоваться напрямую, UNC обычно отображается в букву диска, как например x:, которая в свою очередь может отображаться в \\Server\Share (\\Сервер\Совместно_используемый_ресурс). От этой точки пользователь должен был осуществлять навигацию за отображение перенаправленного диска к данным, к которым он или она желает осуществить доступ. Например, чтобы осуществлять навигацию к конкретному файлу, пользователю требовалась копия x:\Path\More_path\...\Filename (x:\Путь\Еще_путь\...\Имя_файла).

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

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

Более того, по мере того, как размер сети растет к уровню глобальной сети, несколько копий одного и того же файла или файлов могут размещаться в нескольких различных местоположениях внутри сети для помощи в уменьшении затрат (в терминах сетевого времени, сетевой нагрузки и т.д.), связанных с извлечением файла из сети. Например, пользователи большой сети, расположенной рядом с местоположением первого сервера, обычно будут использовать копию файла на сервере, ближайшем к ним (т.е. пользователи в Сиэтле могут находиться ближе всего к серверу, названному Redmond, который находится рядом с Сиэтлом). Аналогично, пользователи большой сети, расположенной рядом с местоположением второго сервера, обычно будут использовать копию файла на другом сервере, ближайшем к ним (т.е. пользователи в Таиланде могут находиться ближе всего к серверу, называемому Bangkok, расположенному в Бангкоке). Таким образом, величина связанных с узлом сети затрат (т.е. скалярное число, которое является псевдопроизвольным показателем некоторого количества сетевых параметров, включающих в себя расстояние между клиентом и сервером, степени отделения сервера и другие физические сетевые параметры) извлечения файла может минимизироваться посредством осуществления доступа к ближайшему серверу, имеющему запрашиваемый файл или файлы.

Когда пользователь желает извлечь файл из Dfs, клиентский компьютер, с которого пользователь запрашивает файл, определяет, как приступить к извлечению запрашиваемого файла. Клиентский компьютер может выдать запрос указателей, чтобы получить одно или более местоположений для запрошенного файла или файлов. Указатель может быть относительным путем между запрашивающим клиентским компьютером и серверным компьютером, в котором запрошенный файл или файлы могут быть найдены. Клиентский компьютер может запросить файл или файлы, о которых известно, что они недоступны локально, и может осуществляться определение того, сколько различных местоположений могут предоставить копию запрошенного файла. Обычно, могут иметься сотни или даже тысячи целевых объектов (т.е. относительного пути к файлу), показывающих местоположения, которые могут предоставлять запрошенный файл. Как таковой, ответ на запрос указателей, который возвращается клиентским компьютерам в ответ на запрос указателей, обычно включает в себя список целевых объектов, соответствующих серверам и/или совместно используемым ресурсам, имеющим запрошенный файл.

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

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

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

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

Сущность изобретения

Кратко, настоящее изобретение предоставляет систему и способ для организации и сортировки целевых объектов, принятых в ответе на запрос указателей, и для определения переключения при неоптимальности целевого объекта назад и приоритета целевого объекта для переключения при неоптимальности назад в распределенной файловой системе. В одном варианте осуществления способ сортировки может включать в себя запрос от клиентского компьютера, множества местоположений (т.е. целевых объектов) файлов, директорий, совместно используемых ресурсов и т.д., расположенных на одном или более компьютерах в сети компьютеров. Затем, компьютер, такой как Dfs-сервер, может возвращать список целевых объектов клиентскому компьютеру, где список целевых объектов включает в себя множество указателей, в котором каждый указатель соответствует местоположению запрошенного файла или директории в сети компьютеров. Более того, список целевых объектов может сортироваться, базируясь на оценке величины связанных с узлом сети затрат, ассоциированной с каждым соответствующим целевым объектом.

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

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

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

Другие преимущества станут видны из последующего подробного описания при рассмотрении его совместно с чертежами, на которых:

Перечень чертежей

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

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

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

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

Фиг.5 - блок-схема последовательности операций, в общем представляющая этапы, предпринимаемые в одном варианте осуществления для компоновки ответа на запрос указателями, базируясь на приоритете целевого объекта, в соответствии с аспектом этого изобретения;

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

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

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

Подробное описание

Иллюстративная операционная среда

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

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

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

Со ссылкой на фиг.1, иллюстративная система для реализации этого изобретения включает в себя вычислительное устройство общего назначения в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в ограничительном смысле, обрабатывающее устройство 120, системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включая системную память, с обрабатывающим устройством 120. Системная шина 121 может относиться к любому из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, с использованием любой из многообразия архитектур шин. В качестве примера, но не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), расширенную ISA (EISA) шину, локальную шину ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединения периферийных компонентов (PCI), также известную как шина расширения.

Компьютер 110 обычно включает в себя многообразие машиночитаемых носителей. Машиночитаемые носители могут являться любыми доступными носителями, к которым компьютер 110 может осуществлять доступ, и включают в себя как энергозависимые, так и энергонезависимые носители, и как съемные, так и несъемные носители. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные носители данных и среды передачи данных. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но не в ограничительном смысле, RAM, ROM, EEPROM, флэш-память или память другой технологии, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое дисковое хранилище, магнитные кассеты, магнитную ленту, магнитное дисковое хранилище или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения желаемой информации и к которому компьютер 110 может осуществлять доступ. Среды передачи данных обычно реализуют машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущее колебание, или другом транспортном механизме и включают в себя любые среды доставки информации. Термин "модулированный информационный сигнал" означает сигнал, одна или более характеристик которого установлены или изменены таким образом, чтобы кодировать информацию в этом сигнале. В качестве примера, но не ограничения, среды передачи данных включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых из вышеперечисленных сред и носителей должны также охватываться понятием ”машиночитаемый носитель”.

Системная память 130 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 131 и оперативное запоминающее устройство (RAM) 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают переносить информацию между элементами внутри компьютера 110, как, например, в течение запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые являются непосредственно доступными для обрабатывающего устройства 120 и/или в настоящем обрабатываются этим устройством. В качестве примера, но не ограничения, фиг.1 показывает операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных. Только в качестве примера, фиг. 1 показывает накопитель 141 на жестких дисках, который считывает с несъемных, энергонезависимых магнитных носителей или записывает на них, магнитный 151 дисковод, который считывает со съемного, энергонезависимого магнитного диска 152 или записывает на него, и оптический 155 дисковод, который считывает со съемного, энергонезависимого оптического диска 156, такого как CD ROM или другой оптический носитель, или записывает на него. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в иллюстративной операционной среде, включают в себя, но не в ограничительном смысле, кассеты магнитной ленты, платы флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM, и подобное. Накопитель 141 на жестких дисках обычно подсоединяется к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, и магнитный дисковод 151 и оптический дисковод 155 обычно подсоединяются к системной шине 121 с помощью интерфейса съемной памяти, такого как интерфейс 150.

Накопители и дисководы и их соответствующие компьютерные носители данных, обсужденные выше и показанные на фиг.1, предоставляют хранилище машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестких дисках показан как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и данные 147 программ. Отметим, что эти компоненты могут быть либо такими же, либо отличающимися от операционной системы 134, прикладных программ 135, других программных модулей 136 и данных 137 программ. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ здесь даны другие ссылочные позиции, чтобы показать, что, по меньшей мере, они являются другими копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как планшет, или электронный цифровой преобразователь 164, микрофон 163, клавиатура 162 и координатно-указательное устройство 161, обычно называемое как мышь, шаровой манипулятор или сенсорная панель. Другие устройства ввода, не показанные на фиг.1, могут включать в себя джойстик, игровую приставку, спутниковую параболическую антенну, сканер или другие устройства, включающие в себя устройство, которое содержит биометрический датчик, датчик состояния окружающей среды, датчик положения или другой тип датчика. Эти и другие устройства ввода часто подсоединяются к обрабатывающему устройству 120 через интерфейс 160 пользовательского ввода, который соединен с системной шиной, но могут подсоединяться с помощью других структур интерфейсов и шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой тип устройства отображения также подсоединяется к системной шине 121 через некоторый интерфейс, такой как видеоинтерфейс 190. Монитор 191 также может объединяться с панелью сенсорного экрана или подобным. Отметим, что монитор и/или панель сенсорного экрана могут физически подсоединяться к корпусу, в котором заключено вычислительное устройство 110, как, например, в персональном компьютере планшетного типа. В дополнение, компьютеры, такие как вычислительное устройство 110, также могут включать в себя другие периферийные устройства вывода, такие как громкоговорители 195 и принтер 196, которые могут подсоединяться через периферийный интерфейс 194 вывода, или подобное.

Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может являться персональным компьютером, сервером, маршрутизатором, сетевым PC, одноранговым устройством или другим общим сетевым узлом, и обычно включает в себя многие или все из элементов, описанных выше в отношении компьютера 110, хотя на фиг.1 было показано только запоминающее устройство 181. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но также могут включать в себя другие сети. Такие сетевые среды являются обычным явлением в офисах, компьютерных сетях масштаба предприятия, внутренних сетях и сети Интернет. При использовании в сетевой среде LAN, компьютер 110 подсоединяется к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN, компьютер 110 обычно включает в себя модем 172 или другое средство для установления связи через WAN 173, такую как сеть Интернет. Модем 172, который может быть внутренним или внешним, может подсоединяться к системной шине 121 через интерфейс 160 пользовательского ввода или другой подходящий механизм. В сетевой среде программные модули, изображенные по отношению к компьютеру 110, или их части, могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, фиг.1 показывает удаленные прикладные программы 185 как постоянно находящиеся в запоминающем устройстве 181. Следует принять во внимание, что показанные сетевые соединения являются иллюстративными, и могут использоваться другие средства установления линии связи между компьютерами.

Сортировка ответа на запрос указателей

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

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

На фиг.2 показана блок-схема, в общем представляющая иллюстративную архитектуру распределенной вычислительной среды для реализации переключения при неоптимальности целевого объекта назад и приоритета целевого объекта в соответствии с аспектом этого изобретения. Обычно, клиентский компьютер 205, который может быть аналогичным персональному компьютеру 110 по фиг.1, может быть в рабочем состоянии подсоединен к первой сети 250, которая может быть частью внутренней сети предприятия или частью сети Интернет. Клиентский компьютер 205 может быть частью Dfs или может включать в себя Dfs клиента 270, который может предоставлять прямой доступ к файлам, расположенным где-либо в Dfs. Сеть также может быть в рабочем состоянии соединена с другими компьютерами, такими как серверный компьютер m1 210, сервер 220 Active Directory(Активного каталога) и сервер 230 корня Dfs. Сервер 220 Active Directory может использоваться, чтобы хранить информацию Dfs, включая информацию ссылочных указателей Dfs. Однако в различных вариантах осуществления эта информация может храниться любым машиночитаемым носителем, доступным для сети 250.

В свою очередь, Dfs-сервер 230 также может быть в рабочем состоянии соединен с другой сетью 280, которая также может являться другой внутренней сетью предприятия или другой частью сети Интернет. Сеть 280 может быть в рабочем состоянии подсоединена к сети 250 через маршрутизатор 260, как это обычно в любой компьютерной сети. Сервер 230 корня Dfs может быть в рабочем состоянии подсоединен к совместно используемому ресурсу корня Dfs 240, который может включать в себя один или более ссылочных указателей. Например, ссылка //r1/s1/l1 может предоставлять указатель на файл или директорию, расположенную в //m1/s1. Подобным образом, ссылка //r1/s1/l2 может предоставлять указатель на файл или директорию, расположенную в //m2/s1. Более того, ссылка может предоставлять указатель на множество компьютеров, серверов, совместно используемых ресурсов и/или директорий. Таким образом, много компьютеров, включая сюда серверный компьютер m2 215, могут быть подключены с возможностью передачи данных к клиентскому компьютеру 205 через огромное число сетей и компьютеров.

Клиентский компьютер 205 может запрашивать и извлекать файлы и/или директории по существу из любого серверного местоположения в сети 250 или сетях 250 и 280. Однако для клиентского компьютера 205 может быть не выполнимо поддерживать информацию обо всех компьютерах, которые могут быть подсоединены к сети 250. В общем, запрос может быть запросом на файл или директорию. Таким образом, хотя любой файл (и/или директории и тому подобное, что подразумевается запросом и извлечением файла всюду в оставшейся части этого раскрытия) может извлекаться из любого компьютера в сети 250, местоположение запрошенного файла клиентскому компьютеру 205 обычно предоставляется из другого источника. Таким образом, серверный компьютер 230 Dfs может быть выполнен с возможностью поддерживать информацию о многих компьютерах, подсоединенных к сетям 250 и 280, так что, когда клиентский компьютер 205 запрашивает файл, который не является локально доступным, серверный компьютер 230 Dfs может предоставить список целевых объектов, причем каждый целевой объект соответствует некоторому пути к запрошенному файлу.

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

Как только список целевых объектов может быть отсортирован серверным компьютером 230 Dfs (или другими специализированными компьютерными системами, выполненными с возможностью предоставлять и сортировать целевые объекты в ответ на запрос указателей), он может быть возвращен клиентскому компьютеру 205. Затем клиентский компьютер 205 может итеративно начать пытаться установить связь с каждым целевым объектом (в порядке сортировки) до тех пор, пока с некоторым целевым объектом связь не сможет быть установлена. Файл может располагаться в целевом объекте, соответствующем серверному компьютеру m1 210 в совместно используемом ресурсе s1 212, или просто //m1/s1. Совместно используемый ресурс s1 212 может быть ассоциирован с файловым сервером 211 на серверном компьютере m1 210, и, таким образом, может указываться серверным компьютером 230 Dfs.

Подобным образом, запрошенный файл может располагаться на серверном компьютере m2 215 в совместно используемом ресурсе s2 217. Совместно используемый ресурс s2 212 также может быть ассоциирован с файловым сервером 216 на серверном компьютере m2 215, и, таким образом, также может указываться серверным компьютером 230 Dfs. Однако так как серверный компьютер 215 может быть в рабочем состоянии соединен через сеть 280, путь, который может указываться клиентскому компьютеру, может быть более сложным, так как коммуникационное соединение может устанавливаться через сервер 230 корня Dfs. Посредством использования Dfs в архитектуре по фиг.2, файлы из любого местоположения в сети могут извлекаться через некоторый указатель, предоставленный клиентскому компьютеру 205 серверным компьютером 230 Dfs.

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

Когда клиентскому компьютеру 205 может потребоваться конкретный файл, который не доступен локально в клиентском компьютере 205, на клиентском компьютере 205 может инициироваться запрос файла при использовании Dfs-клиента 270. В различных вариантах осуществления Dfs-клиент также может постоянно находиться на сервере 220 Active Directory и может использоваться, чтобы определять местоположение сервера 230 корня Dfs. На этапе 308 серверный компьютер 230 Dfs может предоставлять клиентскому компьютеру 205 ответ на запрос указателей, который может включать в себя список целевых объектов, соответствующих удаленным серверным компьютерам, доступным через Dfs. Список целевых объектов может сортироваться согласно различным параметрам, таким как величина связанных с узлом сети затрат (способ для этого описывается ниже по отношению к фиг. 4), ассоциированный приоритет (способ для этого описывается ниже по отношению к фиг.5) и/или осведомленность об узле сети (описано в общем ниже).

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

Как только клиентский компьютер 205 может принять ответ на запрос указателей, клиентский компьютер 205 может начать пытаться установить сеанс св