способ и устройство для динамического связывания/динамического разрешения путевых имен
Классы МПК: | G06F1/00 Конструктивные элементы вычислительных машин и устройств для обработки данных, не отнесенные к группам 3/00 |
Автор(ы): | СТИР Дэвид Капперс (US), ДЬЮИ Брайан (US), НАГАР Раджив (US), ГОТЖ Вишал В. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2004-07-28 публикация патента:
27.02.2009 |
Изобретение относится к компьютерным системам. Техническим результатом является расширение функциональных возможностей. Динамическое связывание/динамическое разрешение путевых имен может быть выполнено посредством модуля идентификации переменной, работающего в режиме пользователя или ядра, и механизма путевых имен и структуры данных, работающих в режиме ядра. Модуль идентификации переменной идентифицирует переменную в путевом имени. Механизм путевых имен оценивает переменную посредством преобразования переменной в символьную строку, так что устанавливается путь к файлу объекта. Механизм путевых имен определяет диапазон потенциальных значений символьной строки для переменной посредством преобразования переменной в соответствующие значения, хранимые в структуре данных. Каждая переменная имеет хорошо определенный диапазон значений, потому что только доступные значения являются значениями, выбираемыми для хранения в структуре данных. Механизм для установления значений является расширяемым, так что пары переменная/значение могут быть реализованы в структуре данных в любое время. 3 н. и 17 з.п. ф-лы, 4 ил.
![способ и устройство для динамического связывания/динамического разрешения путевых имен, патент № 2348062](/images/patents/117/2348062/2348062.jpg)
![способ и устройство для динамического связывания/динамического разрешения путевых имен, патент № 2348062](/images/patents/117/2348062/2348062-2.jpg)
![способ и устройство для динамического связывания/динамического разрешения путевых имен, патент № 2348062](/images/patents/117/2348062/2348062-3.jpg)
![способ и устройство для динамического связывания/динамического разрешения путевых имен, патент № 2348062](/images/patents/117/2348062/2348062-4.jpg)
Формула изобретения
1. Реализованный компьютером способ для динамического разрешения имен в контексте пользователя, содержащий этапы: принимают путевое имя от запрашиваемого компонента, причем путевое имя включает в себя переменную, связанную с пользовательским контекстом; идентифицируют переменную в путевом имени, которая связана с пользовательским контекстом; преобразуют переменную, связанную с пользовательским контекстом, в значение; модифицируют путевое имя посредством включения значения в путевое имя; разрешают путевое имя в дескриптор объекта, связанный со значением; и возвращают дескриптор объекта запрашивающему компоненту для доступа к объекту.
2. Реализованный компьютером способ по п.1, в котором значение является связанным с текущим пользователем запрашиваемого компонента.
3. Реализованный компьютером способ по п.1, в котором значение является связанным с местоположением запрашивающего компонента внутри сети.
4. Реализованный компьютером способ по п.1, в котором значение является фактором в разрешении путевого имени в дескриптор объекта.
5. Реализованный компьютером способ по п.1, в котором переменная, связанная с пользовательским контекстом, включает в себя префикс, который показывает, что переменная связана с пользовательским контекстом.
6. Реализованный компьютером способ по п.1, в котором этап модифицирования путевого имени включает в себя замену переменной, связанной с пользовательским контекстом, значением.
7. Реализованный компьютером способ по п.1, в котором этап преобразования переменной включает в себя доступ обновляемого устройства хранения данных и преобразование переменной в значение, связанной с устройством хранения.
8. Реализованный компьютером способ по п.7, в котором устройство хранения данных включает в себя множество преобразований, в котором каждое преобразование связано с пользователем, причем, по меньшей мере, одно преобразование отличается от других преобразований для вовлечения отличающегося объекта нежели другие преобразования.
9. Считываемый компьютером носитель данных, имеющий выполняемые компьютером инструкции для динамического разрешения путевого имени в контексте пользователя, содержащий этапы: прием путевого имени от запрашивающего компонента, причем путевое имя включает в себя префикс и переменную, связанную с пользователем запрашивающего компонента; идентификация переменной в путевом имени, которая связана с пользовательским контекстом, причем переменная идентифицирована префиксом; преобразование переменной, связанной с пользовательским контекстом, в значение, которое вовлекает текущего пользователя запрашивающего компонента; модифицирование путевого имени посредством замены переменной, связанной с пользовательским контекстом, в значение; разрешение путевого имени в дескриптор объекта, связанный со значением; и возвращение дескриптора объекта запрашивающему компоненту для доступа к объекту.
10. Считываемый компьютером носитель данных по п.9, в котором значение вовлекает местоположение запрашивающего компонента в сети.
11. Считываемый компьютером носитель данных по п.9, в котором значение является фактором в разрешении путевого имени в дескриптор объекта.
12. Считываемый компьютером носитель данных по п.9, в котором этап преобразования переменной включает в себя доступ обновляемому устройству хранения данных и преобразование переменной в значение, связанной с устройством хранения.
13. Считываемый компьютером носитель данных по п.12, в котором устройство хранения данных включает в себя множество преобразований, в котором каждое преобразование связано с пользователем, причем, по меньшей мере, одно преобразование отличается от других преобразований для вовлечения отличающегося объекта нежели другие преобразования.
14. Система для динамического разрешения путевого имени в контексте пользователя, содержащая запрашивающий компонент, связанный с режимом пользователя, в котором запрашивающий компонент конфигурирован для отправки путевого имени, приема дескриптора объекта и получения объекта, связанного с дескриптором объекта, причем путевое имя включает в себя переменную, связанную с пользовательским контекстом; компонент идентификации переменной, связанный с режимом пользователя, причем компонент идентификации переменной сконфигурирован для идентификации переменной, связанной с пользовательским контекстом; компонент хранения данных, связанный с режимом ядра, причем компонент хранения данных включает в себя преобразования, которые преобразуют переменную, связанную с пользовательским контекстом, в значение; компонент механизма путевых имен, связанный с режимом ядра, причем компонент механизма путевых имен сконфигурирован для приема путевого имени от запрашивающего компонента, запроса оценки путевого имени от компонента идентификации переменной, приема идентифицированной переменной от компонента идентификации переменной, доступа компонента хранения данных для приема значения, связанного с идентифицированной переменной, получение модифицированного путевого имени, которое включает в себя значение, и возвращение дескриптора объекта к запрашивающему компоненту, который основан на модифицированном путевом имени, включающем значение.
15. Система по п.14, в которой значение является связанным с текущим пользователем запрашиваемого компонента.
16. Система по п.14, в которой значение является связанным с местоположением запрашивающего компонента в сети.
17. Система по п.14, в которой значение является фактором в разрешении путевого имени в дескриптор объекта.
18. Система по п.14, в которой переменная, связанная с пользовательским контекстом, включает в себя префикс, который показывает, что переменная связана с пользовательским контекстом.
19. Система по п.14, в которой модифицированное путевое имя имеет переменную, связанную с пользовательским контекстом, замененную значением.
20. Система по п.14, в которой компонент хранения данных включает в себя множество преобразований, в котором каждое преобразование связано с пользователем, причем, по меньшей мере, одно преобразование отличается от других преобразований для вовлечения отличающегося объекта нежели другие преобразования.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится к компьютерным системам, а более конкретно - к путевым именам, идентифицирующим местоположение ресурса, сохраненного в компьютерной системе.
Предшествующий уровень техники
В компьютерных операционных системах путевое имя является последовательностью из буквенно-цифровых символов, которая идентифицирует местоположение файла или директории (каталога). Самым простым типом путевого имени является имя самого файла. Операционная система ищет файл в текущей рабочей директории, когда путевое имя указано именем файла. Если файл находится в другой директории, то путь указывают так, чтобы операционная система могла определить местоположение файла. Процесс перевода путевых имен на язык операционной системы известен как разрешение путевых имен.
Одной из проблем в существующих системах является то, что путевые имена являются, по существу, статичными. На сегодняшний день нет механизма для компонентов путевого имени, которые настраиваются или оцениваются в контексте пользователя пути. Как только путевое имя создано, то некоторое путевое имя будет разрешено (назначено) одним и тем же данным независимо от того, какой пользователь зарегистрировался в системе, на какой машине имеет место разрешение путевого имени и т.п. Это ограничение беспокоит пользователей и проектировщиков компьютерной системы в течение некоторого времени.
Механизм динамического разрешения путевых имен до сих пор избегался специалистами в данной области техники.
Сущность изобретения
В соответствии с одним аспектом настоящего изобретения считываемый компьютером носитель, имеющий выполняемые компьютером компоненты, включает в себя структуру данных, включающую в себя преобразованные переменные/значения, и модуль разрешения путевых имен. Модуль разрешения путевых имен сконфигурирован для идентификации переменной в путевом имени, для извлечения из структуры данных значения, связанного с идентифицированной переменной, и для модификации путевого имени так, что переменная замещается значением из структуры данных.
В соответствии с другим аспектом настоящего изобретения считываемый компьютером носитель имеет выполняемые компьютером инструкции. Выполняемые компьютером инструкции включают в себя инструкции для: приема путевого имени, которое включает в себя переменную; разрешения путевого имени посредством преобразования переменной в соответствующее значение в структуре данных; возвращение управления объекту, указанному разрешенным путевым именем; и расширение структуры данных посредством добавления пар переменная/значение в структуру данных.
В соответствии с другим аспектом настоящего изобретения считываемый компьютером носитель является закодированным расширяемой структурой данных. Расширяемая структура данных включает в себя первое поле и второе поле. Первое поле включает в себя идентификационную информацию переменной, включенной в путевое имя. Второе поле включает в себя значение для переменной. Путевое имя включает в себя значение, которое указывает на объект.
В соответствии с еще одним аспектом настоящего изобретения реализованный компьютером способ включает в себя этапы: идентификацию переменной в путевом имени, предоставленном компонентом, запрашивающим доступ к объекту; преобразование переменной в соответствующее значение в структуре данных; модификацию путевого имени посредством замены переменной в путевом имени соответствующим значением так, чтобы разрешенное путевое имя указывало на объект; и возвращение к запрашивающему компоненту модифицированного путевого имени.
Краткое описание чертежей
Фиг. 1 иллюстрирует типичное компьютерное устройство, которое может быть использовано в одном типичном варианте осуществления настоящего изобретения.
Фиг. 2 иллюстрирует блок-схему, иллюстрирующую типичное окружение для реализации настоящего изобретения.
Фиг. 3 иллюстрирует последовательность операций примерного процесса разрешения путевого имени, выполненного в соответствии с настоящем изобретением.
Фиг. 4 иллюстрирует последовательность операций примерного процесса расширения структуры данных, выполненного в соответствии с настоящим изобретением.
Подробное описание предпочтительного варианта осуществления настоящего изобретения
Вкратце, настоящее изобретение относится к способу и системе для динамического связывания/динамического разрешения путевого имени. Разрешение путевого имени может быть выполнено модулем идентификации переменной, механизмом путевых имен и структурой данных. Во время запроса на доступ к объекту посредством путевого имени модуль идентификации переменной идентифицирует переменную в путевом имени. Механизм путевых имен оценивает переменную, ссылаясь на (обращаясь к) структуру данных, имеющую преобразования (соответствия) «переменная/значение». Структура данных может быть сохранена в контексте текущего пользователя. Механизм путевых имен модифицирует путевое имя посредством замены переменной в путевом имени соответствующими значениями из структуры данных и возвращает модифицированное путевое имя.
Изобретение описано ниже сначала со ссылкой на один пример иллюстративного компьютерного окружения, в котором варианты осуществления изобретения могут быть реализованы. Затем описан подробный пример одного из специфических вариантов выполнения изобретения. Альтернативные варианты выполнения также могут быть включены относительно некоторых деталей специфической реализации. Следует оценить, что варианты осуществления изобретения не ограничиваются теми, что описаны здесь.
Иллюстративное рабочее окружение
Со ссылками на Фиг. 1 описан пример системы для осуществления изобретения, включающей в себя компьютерное устройство, такое как компьютерное устройство 100. В самой основной конфигурации компьютерное устройство 100 типично включает в себя по меньшей мере один блок 102 обработки и системную память 104. В зависимости от точной конфигурации и типа компьютерного устройства системная память 104 может быть энергозависимой (такое как RAM, ОЗУ - оперативное запоминающее устройство), энергонезависимой (такое как ПЗУ - постоянное запоминающее устройство), внешняя (флэш-) память или некоторые их комбинации. Системная память 104 типично включает в себя операционную систему 105, один или более программных модулей 106 и может включать в себя программные данные 107. Операционная система 105 может также включать в себя модуль 120 разрешения путевого имени согласно настоящему изобретению. Эта основная конфигурация изображена на Фиг. 1 теми компонентами, что находятся внутри пунктирной линии 108.
Компьютерное устройство 100 может иметь дополнительные возможности или функции. Например, компьютерное устройство 100 может включать в себя дополнительные устройства хранения данных (съемные или не съемные), такие как, например, магнитные диски, оптические диски или магнитная лента. Такие дополнительные устройства хранения иллюстрируются на Фиг. 1 в виде сменного устройства 109 хранения и несменного устройства 110 хранения. Компьютерная среда хранения может включать в себя энергозависимую и энергонезависимую, сменную или несменную среду, реализованную любым способом или технологией для хранения информации, например, в виде считываемых компьютером инструкций, структур данных, программных модулей или других данных. Системная память 104, сменная память 109 или несменная память 110 - все они являются примерами компьютерной среды хранения. Компьютерная среда хранения включает в себя, но не ограничивается ими, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически перепрограммируемую постоянную память, внешнюю (флэш-) память или память по другой технологии, запоминающее устройство на компакт-диске (CD-ROM), универсальный цифровой диск (DVD) или другие оптические носители, магнитные кассеты, магнитную ленту, память на магнитных дисках или любые другие устройства хранения на магнитных дисках или любой другой носитель, который может быть использован для сохранения желаемой информации и к которому может быть осуществлен доступ компьютерным устройством 100. Любая другая компьютерная среда хранения может быть частью устройства 100. Компьютерное устройство 100 может иметь устройство(а) 112 ввода, такие как клавиатура, мышь, перо, голосовое устройство, сенсорное устройство и т.д. Устройство(а) 114 вывода, такие как дисплей, микрофон, принтер и т.д., тоже могут входить в состав. Эти устройства хорошо известны в области техники и нет необходимости подробно их здесь описывать.
Компьютерное устройство 100 может также содержать коммуникационные соединения 116, которые позволяют устройству обмениваться информацией с другими компьютерными устройствами 118, например по сети. Коммуникационное соединение 116 является одним из примеров коммуникационной среды. Коммуникационная среда может также быть воплощена в считываемых компьютером инструкциях, структурах данных, программных модулях или других данных в модулированном сигнале данных, таком как сигнал несущей или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, имеющий одну или более из своих характеристик, установленных или измененных таким способом, который относится к кодированию информационного сигнала. Например, и без ограничения, коммуникационная среда включает в себя проводную среду, такую как проводная сеть, или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасную и другие беспроводные среды. Термин «считываемая компьютером среда», используемая здесь, включает в себя и среду хранения, и коммуникационную среду.
Модуль разрешения структуры путевых имен
На Фиг. 2 диаграмма иллюстрирует примерное окружение для реализации настоящего изобретения. Примерный вариант осуществления окружения, показанный на Фиг. 2, является окружением 200 подсистемы путь/связь для файловой системы, которая включает в себя модуль разрешения 120 путевых имен согласно настоящему изобретению. Окружение включает в себя запрашивающий компонент 205, который может быть любым компонентом, который запрашивает доступ к объекту (например, объекту 212) посредством путевого имени 206. Например, запрашивающий компонент 205 может быть любым одним или более из следующих: внедренные пути или унифицированные указатели информационного ресурса (URL, УИР) в сообщениях электронной почты; и пути, имеющие переменные, включенные в сценарий.
В этом варианте осуществления путевое имя 206, используемое для ссылки на объект 212, включает в себя переменную. Например, одним примером такого путевого имени может быть «servershare@userphonelist.doc». В этом примере термин «пользователь» идентифицируется как переменная посредством использования символа «@». Могут быть также использованы другие символы.
Модуль разрешения 120 путевых имен включает в себя модуль 210 идентификации переменной, механизм 220 путевых имен и структуру 222 данных. В этом конкретном варианте выполнения модуль 210 идентификации переменной работает в режиме пользователя, и механизм 220 путевых имен и структура данных находятся в режиме ядра. Механизм 220 путевых имен реагирует на запрашивающий компонент 205 и запрашивает оценку значения от модуля 210 идентификации переменной. Альтернативно, запрашивающий компонент 205 обменивается непосредственно с модулем 210 идентификации переменной для запроса оценки значения.
Модуль 210 идентификации переменной идентифицирует переменную в путевом имени 206. В этом конкретном варианте выполнения переменные идентифицируются посредством расположения уникального префикса в путевом имени 206, символа «@» в этом примере. Уникальный префикс может быть любой комбинацией одного или более символов. Модуль 210 идентификации переменной возвращает идентифицированную переменную в механизм 220 путевых имен.
Механизм 220 путевых имен оценивает переменную, ссылаясь на структуру 222 данных. Структура 222 данных хранит несколько имен переменных, преобразованных в соответствующие значения. Значения могут быть строками символов, или могут быть ссылкой, указывающей на произвольный код, который приводит к строке. Механизм 220 путевых имен ищет переменные в структуре 222 данных. Соответствующее значение будет найдено в том случае, если значение хранится в структуре 222 данных, таким образом каждая переменная будет иметь хорошо определенный диапазон значений, потому что только доступные значения являются значениями, сохраненными в структуре данных. Если переменная не существует в структуре 222 данных, путевое имя идентифицируется как символьная строка, вместо того чтобы путевое имя включало в себя переменную. Это позволяет допустимым символам быть использованными в качестве префикса, который идентифицирует переменную. Альтернативно, недопустимые символы могут быть использованы для идентификации переменных, в таком случае, если переменная не существует в структуре 222 данных, может быть возвращена ошибка.
Если надлежащее значение существует в структуре 222 данных, это значение возвращается модулю 210 идентификации переменной. Модуль 210 идентификации переменной может затем видоизменить (модифицировать) путевое имя 206, обеспеченное посредством запрашивающего компонента 205, посредством замены переменной значением переменной. Таким образом, видоизмененное путевое имя указывает на объект 212. Идентификатор переменной может затем запрашивать, чтобы видоизмененное путевое имя было разрешено, в дескрипторе для объекта 212 и возвращает этот дескриптор к запрашивающему компоненту 205.
В одном варианте осуществления структура 222 данных может быть уникальной для каждого пользователя, так что каждый пользователь имеет разный набор преобразований «переменная/значение». Это позволяет преобразовывать текстуально-идентичное путевое имя (включающее переменную) в разные объекты на основании того, какой пользователь зарегистрирован в системе. Например, если переменная, такая как «@username» используется в динамическом путевом имени, эта переменная будет видоизменена на другое значение на основании того, какие пользователи зарегистрированы в системе. В другом примере переменная вида «@L-146» может относиться к местоположению офиса. Эта переменная может быть использована в путевом имени, которое идентифицирует принтер в этом офисе, но который назван на основании текущего арендатора офиса. Соответственно структура 222 данных может включать в себя таблицу, которая преобразует переменную местоположения офиса в имя пользователя текущего арендатора офиса. Многие другие альтернативные варианты выбора будут очевидны специалистам в данной области техники.
В этом варианте выполнения любое привилегированное приложение может записать значения и/или переменные в структуру 222 данных, таким образом делая этот механизм расширяемым. Альтернативно, структура 222 данных может быть фиксированного размера с ограниченным количеством переменных, так что значения не могут быть добавлены произвольно. Уникальные переменные могут быть описаны в структуре 222 данных, имеющей диапазон потенциальных значений, определенных требованиями файловой системы 200.
Значения, соответствующие переменной, могут быть описаны многими путями. Например, значения могут быть описаны пользователем или значения могут быть контекстно-зависимыми (например, переменные могут быть описаны состоянием операционной системы или окружения). Могут быть предусмотрены некоторые основные значения, которые широко используются, такие как значения, соответствующие переменной, описанной (определенной) как «пользователь».
Процесс динамического связывания/динамического разрешения путевых имен
На Фиг. 3 изображена логическая последовательность операций обзора примерного процесса разрешения путевых имен, выполняемая в соответствии с настоящим изобретением. Процесс начинается с этапа 300, где запрашивающий компонент запрашивает доступ к объекту, идентифицированному путевым именем. Процесс продолжается на этапе 310.
На этапе 310 переменная идентифицируется в путевом имени. Переменная может быть идентифицирована посредством разложения путевого имени на его составные компоненты и поиска уникального префикса символа, например, «@». Если переменная найдена, то процесс продолжается на этапе 320.
На этапе 320 выполняется поиск переменных в структуре данных, такой как таблица с преобразованиями «переменная/значение». На этапе 330 принятия решений принимается решение: найдена ли запись для переменной в структуре данных. Если переменная найдена в структуре данных, процесс продолжается на этапе 340. Если переменная не найдена в структуре данных, процесс продолжается на этапе 360, где переменная обрабатывается как символьная строка, не нуждающаяся в разрешении.
На этапе 340 значение, связанное с переменной, извлекается из структуры данных, и процесс продолжается на этапе 350. На этапе 350 переменная в путевом имени замещается соответствующим значением для формирования завершенного путевого имени, и процесс продолжается на этапе 360. На этапе 360 завершенное путевое имя возвращается к запрашиваемому компоненту. Процесс продолжается на этапе 370, где разрешение путевого имени завершается.
Процесс добавления пары переменная/значение в структуру данных
На Фиг. 3 изображена логическая последовательность операций обзора примерного процесса для расширения структуры данных, выполненная в соответствии с настоящим изобретением. Структура данных может быть расширена добавлением пары «переменная/значение».
Процесс начинается на этапе 400, где системный администратор решает включить больше переменных и/или соответствующих значений в структуру данных.
На этапе 400 принятия решений выполняется определение, поддерживает ли операционная система динамическое связывание/динамические путевые имена. Если операционная система поддерживает динамическое связывание/динамические путевые имена, то процесс продолжается на этапе 430. Если операционная система не поддерживает динамическое связывание/динамические путевые имена, то процесс продолжается на этапе 420. На этапе 420 выводится сообщение об ошибке, которое информирует системного администратора, что система не поддерживает динамическое связывание /динамические путевые имена, и процесс продолжается на этапе 460.
На этапе 430 системный администратор запрашивают для ввода пары переменная/значение. Процесс продолжается на этапе 440. На этапе 440 системный администратор вводит пару переменная/значение в систему. Процесс продолжается на этапе 450. На этапе 450 пара переменная/значение добавляется в структуру данных. Процесс заканчивается на этапе 460.
Очевидно, что добавление пары «переменная/значение» к структуре данных в соответствии с изобретением может быть также выполнено посредством сценария, например, при регистрации пользователя в начале сеанса. Вдобавок, могут быть установлены политики, которые включают в себя заранее определенные преобразования «переменная/значение». Аналогично, компоненты программного обеспечения, имеющие достаточно полномочий для изменения структуры данных в защищенном режиме, могут непосредственно обращаться и модифицировать преобразования переменная/значение в структуре данных. В таком случае могут быть созданы преобразования «переменная/значение», которые разрешаются в контексте конкретного пользователя, конкретного аппаратного обеспечения или программного обеспечения, в котором несколько компонентов выполняют или базируются на каком-то другом критерии.
Вышеприведенное описание, примеры и данные обеспечивают полное описание формирования и использования структуры изобретения. Так как многие варианты осуществления изобретения могут быть сделаны без отрыва от сущности и объема изобретения, изобретение определяется прилагаемой формулой изобретения.
Класс G06F1/00 Конструктивные элементы вычислительных машин и устройств для обработки данных, не отнесенные к группам 3/00