Файловая система для отображения элементов различных типов и из различных физических местоположений
Иллюстрации
Показать всеИзобретение относится к файловым системам, а именно к файловым системам для отображения элементов различных типов и из различных физических местоположений. Техническим результатом является возможность получения широкого охвата элементов, т.е. возможность представлять элементы из множества физических местоположений (например, различных накопителей на жестких магнитных дисках, различных компьютеров, различных сетевых местоположений и т.д.) таким образом, что для пользователя все элементы представляются как получаемые из одного местоположения. Для этого файловая система использует виртуальные папки, которые показывают пользователям обычные файлы и папки в различных представлениях, основанных на их метаданных, а не на действительной лежащей в их основе физической структуре файловой системы на диске. В виртуальных папках могут быть представлены нефайловые элементы. Другими словами, хранящиеся в памяти файлы располагаются в физическом запоминающем устройстве. Виртуальные папки могут включать в себя элементы, которые в данный момент не представлены в физическом запоминающем устройстве. Примерами нефайловых элементов являются сообщения, передаваемые по электронной почте, и контактная информация. 5 н. и 16 з.п. ф-лы, 40 ил.
Реферат
ОБЛАСТИ ТЕХНИКИ
Настоящее изобретение относится к файловым системам, а более конкретно к файловым системам для отображения элементов различных типов и из различных физических местоположений.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Существующие компьютерные файловые системы имеют ряд нежелательных ограничений. Одно из ограничений заключается в том, что пользователи, как правило, не имеют возможности управлять структурой, которая им демонстрируется. Другими словами, при организации папок пользователь должен выбрать структуру и эту структуру впоследствии трудно изменить. В качестве характерного примера в своей "музыкальной" папке пользователь возможно захочет организовать музыкальные файлы в формате исполнитель/альбом, при котором все папки альбомов по каждому исполнителю собраны в папку этого конкретного исполнителя, а все песни с конкретного альбома собраны в папку этого альбома. Однако формат исполнитель/альбом неудобен для проигрывания музыкальных записей одного направления (например, проигрывания двух джазовых песен двух различных исполнителей) или для проигрывания подборки альбомов различных исполнителей.
В качестве другого примера пользователь может иметь большое количество файлов, с трудом поддающихся организации. Некоторые пользователи вырабатывают жестко регламентированный подход к размещению файлов и тем самым создают для них строгие иерархии. Управление такими файлами по мере возрастания количества имеющихся документов становится все более и более сложным и трудоемким, делая также трудоемким поиск и извлечение данных. Эта проблема еще более обостряется в случаях, когда используются дополнительные файлы, имеющие другое место расположения, такие как файлы совместного использования и т.д.
Пользователям также приходится иметь дело с файлами, расположенными в разных местах, таких как различные устройства, другие персональные компьютеры или системы он-лайн. Например, пользователи могут выбрать прослушивание имеющихся у них в компьютере музыкальных записей (тех, которые доступны для музыкальной программы) или могут перейти в режим он-лайн и слушать музыкальные записи с Web-сайтов, однако при этом имеется строго определенная граница между этими двумя источниками. Музыкальные записи, поступающие из различных мест, организованы различным образом и не содержатся в одинаковом виде или в одном и том же месте. В качестве другого примера файлы, хранящиеся в корпоративных сетях, могут в силу своей сущности быть отделены от файлов, которые имеются у пользователя на текущем компьютере.
Пользователи также должны следить не только за тем, какие файловые данные сохраняются в памяти, но и за тем, где они сохраняются. Например, в случае музыкальных файлов пользователи вынуждены держать их копии в различных системах и предпринимать усилия для отслеживания того, какие музыкальные файлы где располагаются. Это может усложнить определение местоположения файлов даже в тех случаях, когда они располагаются локально.
Также в некоторых случаях бывает сложно найти и повторно обратиться к имеющимся у пользователя файлам. Для пользователей может оказаться сложным вспомнить, где и как они сохранили определенные файлы. Имея перед собой набор папок или даже группу похожих друг на друга файлов, пользователи часто затрудняются быстро найти тот файл, который они ищут. Для файлов же, хранящихся в труднодоступных для обнаружения местах, определить местонахождение файла еще гораздо более сложно. Кроме того, когда у пользователей в папке собирается достаточное количество файлов, становится все более сложно быстро провести разбор папки особенно в случае, если содержащиеся в ней элементы похожи друг на друга.
Также в некоторых случаях пользователям бывает сложно найти или повторно обратиться к файлам, хранящимся в сети. Предоставление файлов для совместного использования и их публикация часто трудноосуществимы, но поиск такого файла у другого лица, сделавшего его доступным, часто может оказаться даже еще более сложной задачей. Пользователям обычно приходится запоминать или фиксировать в виде карты различные сайты и имена, которые необходимы им для нахождения файлов в сети.
Пространства имен могут различаться между собой, что может вызвать у пользователя замешательство относительно того, что является "правильным". Это особенно верно в случае сети, где имеются различные соглашения и ограничения на использование имен. Например, в некоторых операционных системах для того, чтобы имена были видимы, может потребоваться, чтобы они были короткими и не включали в себя пробелы.
К тому же программы часто сохраняют файлы в своих собственных каталогах или других пространствах имен, что может затруднить для пользователей поиск обратного пути к этим файлам. Программы часто имеют назначаемые по умолчанию каталоги и места, где они сохраняют свои документы. Пользователь часто вынужден перерывать весь свой жесткий магнитный диск и строить предположения о том, где хранится файл.
К тому же связанные между собой элементы часто хранятся в различных местах. Связанные между собой файлы могут храниться в различных частях жесткого магнитного диска и т.д. Эта проблема встречается все чаще по мере того, как развиваются цифровые мультимедийные сервисы, имеющие разнообразные типы контента (содержимого) (например, изображения, музыкальные записи, видеоинформацию).
Настоящее изобретение имеет своей целью предложить систему и способ, которые устраняют вышеупомянутые и другие недостатки.
Более конкретно настоящее изобретение относится к файловой системе для отображения элементов различных типов из различных физических местоположений.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Предлагается файловая система для отображения элементов различного типа и из различных физических местоположений. Согласно одному аспекту изобретения возможно получение широкого охвата элементов. Другими словами, система способна представлять элементы из многочисленных физических местоположений (например, различных накопителей на жестких магнитных дисках, различных компьютеров, различных сетевых местоположений и т.д.) таким образом, что у пользователя создается впечатление, что все элементы расположены в одном месте. Например, все музыкальные файлы пользователя могут быть представлены ему на едином экранном изображении и он может манипулировать всеми этими файлами на одном представлении даже несмотря на то, что эти файлы могут физически храниться на различных накопителях на жестких магнитных дисках, в различных компьютерах или в различных сетевых местоположениях.
Согласно другому аспекту изобретения в способе, предназначенном для отображения элементов в компьютерной системе, оснащенной устройством отображения, используется область охвата. Этот способ предусматривает определение области охвата физических местоположений памяти, из которых должны извлекаться элементы, при этом область охвата включает в себя память данного компьютера и, по меньшей мере, одно другое физическое местоположение. После получения запроса и в ответ на этот запрос элементы извлекаются из физических местоположений, определенных в области охвата, и затем извлеченные по запросу элементы отображаются в некотором представлении на устройстве отображения. В одном варианте осуществления изобретения это, по меньшей мере, одно другое физическое местоположение элементов может представлять собой другой компьютер, сетевое местоположение или внешнее запоминающее устройство. В одном варианте осуществления изобретения упомянутое представление на устройстве изображения может быть переключено на представление физической папки, которое показывает физические местоположения, где физически хранятся эти элементы.
Согласно другому аспекту изобретения в виртуальных папках могут быть представлены нефайловые элементы. Другими словами, хранящиеся в памяти файлы располагаются в физическом запоминающем устройстве. Виртуальные папки могут включать в себя элементы, которые в данный момент не представлены в физическом запоминающем устройстве. Примерами нефайловых элементов являются сообщения, передаваемые по электронной почте, и контактная информация.
Согласно другому аспекту изобретения в компьютерной системе, оснащенной устройством отображения и памятью для хранения элементов, реализован способ для представления нефайловых элементов. Способ предусматривает создание базы данных, которая позволяет искать по запросу как нефайловые элементы, так и файловые элементы. После получения запроса происходит извлечение удовлетворяющих запросу как нефайловых элементов, так и файловых элементов, и затем элементы, удовлетворяющие запросу, представляются на устройстве отображения. В одном варианте осуществления изобретения предусмотрена реляционная база данных, которая включает в себя отобранную информацию о файловых элементах и которая может содержать определенные нефайловые элементы целиком.
Согласно другому аспекту изобретения элементы представляются пользователю в составе виртуальных папок. Виртуальные папки предъявляют элементы пользователю в различных представлениях, основанных на метаданных этих элементов, а не на действительной лежащей в их основе физической структуре файловой системы на диске. Таким образом, система способна брать свойство, хранящееся в базе данных, и представлять его в виде некоторого контейнера, который подобен папке. Поскольку пользователи уже знакомы с работой с папками, то благодаря представлению виртуальных папок в аналогичной манере пользователи могут более быстро адаптироваться к новой системе.
Согласно другому аспекту изобретения пользователи могут работать с виртуальными папками посредством прямого манипулирования. Другими словами, механизмы, предусмотренные для манипулирования виртуальными папками, аналогичны тем, что используются в настоящий момент для манипулирования общепринятыми физическими папками (например, механизмом "щелканья" и "перетаскивания", копирования, вставки и т.д.).
Согласно другому аспекту изобретения предусмотрены фильтры для манипулирования виртуальными папками. Фильтры являются инструментальными средствами для сужения набора элементов. В одном варианте осуществления изобретения производится динамическое генерирование фильтров на основе свойств отдельных элементов. Например, для набора элементов механизм фильтрации может проанализировать свойства и, если элементы в большинстве случаев имеют в качестве свойства "авторов", фильтр может выдать список авторов. После этого щелчок (кнопкой мыши) на конкретном авторе приводит к тому, что элементы, не имеющие этого автора, исчезают с экрана. Это позволяет пользователю сузить набор контентов (содержимое).
Согласно другому аспекту изобретения предусмотрены быстрые ссылки. В одном варианте осуществления изобретения быстрые ссылки представляют собой набор заранее определенных ссылок (например, расположенных на левой стороне изображения), на которых можно "щелкнуть" для генерации полезных представлений наборов элементов. Быстрые ссылки могут быть заранее определены программой или установлены пользователем. Например, щелчком на быстрой ссылке "все авторы" можно возвратить представление, разбитое на пачки по авторам. Быстрая ссылка "все документы" может возвратить простое представление всех документов из всех областей памяти. Пользователи также могут создавать свои собственные быстрые ссылки. Например, пользователь можно получить в результате фильтрации перечень всех документов, в которые вносились изменения в январе 2003 г., и затем сохранить его в качества быстрой ссылки.
Согласно другому аспекту изобретения предусмотрены библиотеки. Библиотеки состоят из больших групп удобных в использовании типов файлов, которые могут быть ассоциативно соединены вместе. Например, одну библиотеку могут составлять фотографии, другую - музыкальные записи, третью - документы. Библиотеки предусматривают инструментальные средства и операции, которые связаны с конкретными типами элементов. Например, в библиотеке фотоматериалов имеются инструментальные средства и фильтры, связанные с манипулированием фотографиями, такие как те, что предназначены для подготовки демонстраций слайдов и для совместного использования фотографий.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеперечисленные аспекты и многие из преимуществ данного изобретения поясняются в приведенном ниже подробном описании при рассмотрении его совместно с прилагаемыми чертежами, где:
ФИГ. 1 - структурная схема компьютерной системы общего назначения, пригодная для осуществления настоящего изобретения;
ФИГ. 2 - структурная схема системы виртуальной папки по настоящему изобретению;
ФИГ. 3 - блок-схема алгоритма, иллюстрирующего процедуру, посредством которой пользователь подает запрос, который возвращает ему выбранные файлы и папки;
ФИГ. 4 - блок-схема алгоритма, иллюстрирующего процедуру, посредством которой согласно либо запросу по умолчанию либо запросу от пользователя строятся и отображаются виртуальные папки.
ФИГ. 5 - древовидная схема структуры папки, соответствующей организации физических папок на жестком магнитном диске;
ФИГ. 6 - древовидная схема структуры виртуальной папки;
ФИГ. 7 - древовидная схема структуры виртуальной папки, изображенной на ФИГ. 6, в которой пачка клиентов дополнительно отфильтрована по контрактам и году;
ФИГ. 8 - древовидная схема структуры виртуальной папки, изображенной на ФИГ. 7, в которой пачка "контракты" из пачки "клиенты" дополнительно отфильтрована по году;
ФИГ. 9 - древовидная схема структуры виртуальной папки, изображенной на ФИГ. 6, в которой пачка "контракты" дополнительно отфильтрована по клиентам и году, из которых "клиенты" еще дополнительно отфильтрованы по году;
ФИГ. 10 - схема, иллюстрирующая экранное изображение, которое показывает пачки библиотеки документов;
ФИГ. 11 - схема, иллюстрирующая экранное изображение, которое показывает документы в пачке "Акционерная компания ABC" с ФИГ. 10;
ФИГ. 12 - схема, иллюстрирующая экранное изображение, на котором для документов, приведенных на ФИГ. 11, выбрана функция группирования в пачки;
ФИГ. 13 - схема, иллюстрирующая экранное изображение, на котором для функции группирования в пачки, приведенной на ФИГ. 12, выбран параметр "сгруппировать в пачки по автору";
ФИГ. 14 - схема, иллюстрирующая экранное изображение, на котором файлы, показанные на ФИГ. 13, сгруппированы в пачки по автору;
ФИГ. 15 - схема, иллюстрирующая экранное изображение, на котором для перегруппирования в пачки файлов, показанных на ФИГ. 14, выбрана функция группирования в пачки и дополнительно выбрана опция "сгруппировать в пачки по категории";
ФИГ. 16 - схема, иллюстрирующая экранное изображение, на котором файлы, показанные на ФИГ. 14, перегруппированы в пачки по категории;
ФИГ. 17 - схема, иллюстрирующая экранное изображение, на котором выбрана быстрая ссылка для показа физических папок;
ФИГ. 18 - схема, иллюстрирующая экранное изображение, на котором показаны физические папки, содержащие файлы из пачек - виртуальных папок, приведенных на ФИГ. 17;
ФИГ. 19 - блок-схема алгоритма, иллюстрирующего процедуру, посредством которой пользователь может напрямую манипулировать виртуальными папками;
ФИГ. 20 - схема, иллюстрирующая экранное изображение, на котором к пачкам, показанным на ФИГ. 10, добавлена пачка "Западное побережье";
ФИГ. 21 - схема, иллюстрирующая экранное изображение, на котором для копирования файлов из пачки "Акционерная компания ABC" в пачку "Западное побережье", показанных на ФИГ. 20, использовано прямое манипулирование;
ФИГ. 22 - блок-схема алгоритма, иллюстрирующего процедуру динамического генерирования системой новых параметров фильтрации;
ФИГ. 23 - блок-схема алгоритма, иллюстрирующего процедуру фильтрации системой элементов, основанную на выборе параметра фильтрации;
ФИГ. 24 - схема, иллюстрирующая экранное изображение, на котором пачки, приведенные на ФИГ. 10, отфильтрованы по параметру "AB";
ФИГ. 25 - схема, иллюстрирующая экранное изображение, на котором пачки, показанные на ФИГ. 10, отфильтрованы по параметру "ABC";
ФИГ. 26 - схема, иллюстрирующая экранное изображение, на котором для пачек, показанных на ФИГ. 10, выбран параметр фильтрации "2002 год";
ФИГ. 27 - схема, иллюстрирующая экранное изображение, на котором пачки, показанные на ФИГ. 10, отфильтрованы по параметру "2002 год", и осуществлен последующий выбор параметра фильтрации "месяц";
ФИГ. 28 - схема, иллюстрирующая экранное изображение, на котором представлен список для выбора месяца для фильтрации;
ФИГ. 29 - схема, иллюстрирующая экранное изображение, на котором пачки, приведенные на ФИГ. 10, дополнительно отфильтрованы по месяцу "январь" и далее показан параметр фильтрации "день";
ФИГ. 30 - блок-схема алгоритма, иллюстрирующего процедуру создания новой быстрой ссылки;
ФИГ. 31 - схема, иллюстрирующая экранное изображение при создании новой быстрой ссылки, названной "Работа, выполненная в январе" и основанной на фильтрации представления по ФИГ. 29;
ФИГ. 32 - схема, иллюстрирующая экранное изображение, на котором выбрана быстрая ссылка "Все авторы";
ФИГ. 33 - схема, иллюстрирующая экранное изображение, на котором представлен список всех авторов документов, показанных на ФИГ. 32;
ФИГ. 34 - схема, иллюстрирующая экранное изображение, на котором из списка, приведенного на ФИГ. 33, выбран "Автор 1" и показаны все документы Автора 1;
ФИГ. 35 - блок-схема алгоритма, иллюстрирующего процедуру создания новой библиотеки;
ФИГ. 36 - схема, иллюстрирующая экранное изображение, на котором показана некоторая коллекция различных имеющихся в распоряжении пользователя библиотек;
ФИГ. 37 - блок-схема алгоритма, иллюстрирующего процедуру для определения области охвата коллекции виртуальной папки;
ФИГ. 38 - блок-схема, иллюстрирующая различные источники, которые могут формировать область охвата коллекции виртуальной папки;
ФИГ. 39 - блок-схема алгоритма, иллюстрирующего процедуру для включения нефайловых элементов в коллекцию виртуальной папки;
ФИГ. 40 - схема, иллюстрирующая экранное изображение, на котором показаны различные нефайловые элементы, включенные в виртуальную папку.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Настоящее изобретение относится к виртуальным папкам. Виртуальные папки используют такие же пользовательские интерфейсы, как те, что применяются в настоящее время для файловых систем, или аналогичные им. Виртуальные папки предъявляют пользователям обычные файлы и папки (так же известные как каталоги) в различных представлениях, основанных на метаданных этих ресурсов, а не на действительной лежащей в их основе физической структуре файловой системы на диске. Создаются представления, не зависящие от места хранения ресурсов, что позволяет пользователям манипулировать своими файлами и папками, используя такие же средства управления, как те, что используются в настоящее время для управления файловыми системами. В общем же это означает, что пользователи могут организовывать и перегруппировывать свои файлы, основываясь на свойствах, внутренне присущих самим этим файлам, вместо того, чтобы управление файлами и их организация осуществлялись бы как обособленная часть файловой системы. Виртуальные папки могут представлять файлы или элементы из различных физических местоположений, таких как разнообразные дисководы на одном компьютере, на множестве компьютеров или сетевые местоположения, таким образом, что одно представление файлов или элементов может предъявлять файлы или элементы, находящиеся в различных физических местоположениях. В одном варианте осуществления изобретения для включения в представление различные элементы или файлы всего лишь должны быть подключены через сеть, поддерживающую Интернет-протокол IP.
Моделирование виртуальной папки также может быть использовано для традиционно нефайловых объектов. Применение этого моделирования заключается в том, чтобы для отображения традиционно нефайловых объектов иметь набор пользовательских интерфейсов, подобных файлам и папкам (то есть объектам и контейнерам). Одним примером таких нефайловых объектов могли бы быть сообщения, передаваемые по электронной почте, а другим - контактная информация из базы данных контактной информации. Таким образом, виртуальные папки предусматривают не зависящую от физических местоположений, основанную на метаданных систему представления, которая работает независимо от того, взяты ли отображаемые данные из файлов или из нефайловых объектов. В общем, эти аспекты допускают более высокую гибкость в том, что касается предоставления пользователям возможности манипулировать своими файлами и данными, используя при этом как общепринятые способы (метод "перетаскивания", двойной "щелчок" и т.д.), так и усиленные возможности широкой интеграции различных типов данных.
ФИГ. 1 и приводимое ниже пояснение имеют своей целью дать краткое общее описание подходящей вычислительной среды, в которой может быть реализовано настоящее изобретение. Хотя это и не является обязательным требованием, изобретение описано в общем контексте машиноисполняемых команд, таких как программные модули, исполняемые персональным компьютером. Обычно программные модули включают в себя подпрограммы, программы, символы, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Для специалистов в данной области техники должно быть понятно, что изобретение может быть применено и с другими конфигурациями компьютерных систем, включающих в себя портативные устройства, многопроцессорные системы, основанные на микропроцессорах, или программируемые бытовые электронные приборы, сетевые персональные компьютеры, мини-компьютеры, большие универсальные компьютеры и тому подобное. Изобретение также может быть применено в распределенных вычислительных средах, где задачи выполняются с помощью удаленных обрабатывающих данные устройств, которые соединены посредством коммуникационных сетей. В распределенной вычислительной среде программные модули могут быть расположены как на локальных, так и на удаленных запоминающих устройствах.
Согласно ФИГ. 1 иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде обыкновенного персонального компьютера 20, включающего в себя процессор 21, системную память 22 и системную шину 23, которая соединяет различные компоненты системы, включая системную память 22, с процессором 21. Системная шина 23 может относиться к любому из нескольких типов структур шины, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующие любую из множества архитектур шины. Системная память включает в себя постоянное запоминающее устройство (ПЗУ, ROM) 24 и оперативное запоминающее устройство (ОЗУ, RAM) 25. Базовая система ввода-вывода (BIOS) 26, содержащая в себе базовые процедуры, которые способствуют передаче информации между элементами внутри компьютера 20, также содержит в себе накопитель 27 на жестких магнитных дисках для считывания с жесткого магнитного диска 39 или записи на него, дисковод 28 для магнитного диска для считывания со съемного магнитного диска 29 или записи на него и дисковод 30 для оптического диска для считывания со съемного оптического диска 31, такого как CD-ROM или другие оптические носители информации, или записи на него. Накопитель 27 на жестком магнитном диске, дисковод 28 для магнитного диска и дисковод 30 для оптического диска соединены с системной шиной 23 посредством интерфейса 32 накопителя на жестких магнитных дисках, интерфейса 33 дисковода для магнитного диска и интерфейса 34 дисковода для оптического диска соответственно. Эти накопители и дисководы и соответствующие им машиночитаемые носители информации обеспечивают энергонезависимое хранение машиночитаемых команд, структур данных, программных модулей и других данных для персонального компьютера 20. Хотя в описанной здесь иллюстративной среде используются жесткий магнитный диск 39, съемный магнитный диск 29 и съемный оптический диск 31, специалистам в данной области техники должно быть ясно, что другие типы машиночитаемых носителей информации, способных хранить данные, доступ к которым осуществляется компьютером, такие как кассеты с магнитной лентой, карточки флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п., также могут быть использованы в этой иллюстративной операционной среде.
На жестком магнитной диске 39, магнитном диске 29, оптическом диске 31, в ПЗУ 24 или ОЗУ 25 может храниться некоторое количество программных модулей, включая операционную систему 35, одну или более прикладных программ 36, другие программные модули 37 и данные 38 программ.
Пользователь может осуществлять ввод команд и информации в компьютер 20 посредством устройств ввода, таких как клавиатура 40 и указательное устройство 42. Другие устройства ввода (на схеме не показаны) могут включать в себя микрофон, джойстик, игровую панель, параболическую спутниковую антенну, сканер и т.п. Часто эти и другие устройства ввода соединены с процессором 21 посредством интерфейса последовательного порта 46, подсоединенного к системной шине 23, но могут быть также соединены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Устройство отображения в виде монитора 47 также соединено с системной шиной 23 посредством интерфейса, такого как видеокарта или видеоадаптер 48. Один или более громкоговорителей 57 также могут быть соединены с системной шиной 23 посредством интерфейса, такого как аудиоадаптер 56. В дополнение к устройству отображения и громкоговорителям персональные компьютеры обычно включают в себя другие периферийные устройства вывода (на схеме не показаны), такие как принтеры.
Персональный компьютер может функционировать в сетевой среде, используя логические соединения с одним или более персональными компьютерами, таким как удаленный компьютер 49. Удаленный компьютер 49 может быть другим персональным компьютером, сервером, маршрутизатором, сетевым персональным компьютером (ПК, PC), одноранговым устройством или другим узлом общей сети и обычно содержит в себе многие или все элементы, описанные выше в отношении персонального компьютера 20. Логические соединения, изображенные на ФИГ. 1, включают в себя локальную сеть (LAN) 51 и глобальную сеть (WAN) 52. Такие сетевые среды часто используются в офисах, сетях масштаба предприятия, интрасетях и в сети Интернет.
При использовании в сетевой среде LAN персональный компьютер 20 соединен с локальной сетью 51 посредством сетевого интерфейса или адаптера 53. При использовании в сетевой среде WAN компьютер 20 обычно содержит модем 54 или другие средства для установления связи через глобальную сеть 53, такую как Интернет. Модем 54, который может быть внутренним или внешним, подсоединен к системной шине 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, показанные как относящиеся к персональному компьютеру 20, или их части могут храниться в удаленном запоминающем устройстве. Следует иметь в виду, что показанные сетевые соединения являются примерами и что могут использоваться и другие средства установления линии связи между компьютерами.
Настоящее изобретение в том виде, в каком оно реализовано в системе типа той, что проиллюстрирована на ФИГ. 1, использует виртуальные папки, которые позволяют пользователям более легко решать основные задачи, связанные с манипулированием файлами и навигацией по папкам (просмотром папок), и обеспечивать более высокий уровень возможностей по хранению информации, которые могут быть еще более усилены в новых характеристиках системы. Виртуальные папки предъявляют пользователям файлы и элементы в виде различных экранных представлений, основанных на метаданных этих файлов и элементов, а не действительной лежащей в их основе физической структуре файловой системы на диске.
ФИГ. 2 представляет собой структурную схему системы 200 виртуальной папки по настоящему изобретению. Как будет более подробно описано ниже, виртуальные папки позволяют пользователю сменить "опорную точку", определяющую то, как представлены данные на устройстве отображения. В качестве примера пользователь может получить представление своих музыкальных записей в виде простого списка всех песен, которые могут быть сгруппированы по альбомам. В качестве альтернативы пользователь может переключить представление на показ произведений только по жанрам, исполнителям или годам записи. Пользователь может в индивидуальном порядке создать представление, чтобы видеть только те объекты, что соответствуют требованиям задачи, которую в данный момент решает пользователь. Это обеспечивает улучшенный процесс просмотра информационных ресурсов, в котором отсутствует необходимость в дополнительной навигации по папкам (как вперед, так и назад). Те же выводы и возможности относятся к моделированию других типов данных, не хранящихся в виде файлов. Например, контактная информация может быть показана пользователю этим же способом с предоставлением ей функциональных возможностей хорошо знакомого интерфейса, равно как и более богатой инфраструктуры для манипулирования ею по сравнению с той, что предусматривается простой адресной книгой.
Как показано на ФИГ. 2, система 200 виртуальных папок включает в себя процессор 210 папок, реляционную базу данных 230, базу данных 232 описаний виртуальных папок, компонент 234 "Другие папки оболочки", компонент 236 "Обработчики папок" и компонент 240 "Браузер оболочки и представление". Процессор 210 папок включает в себя компонент 212 "Собственный код обработки", компонент 214 "Продуцент обработчиков", компонент 216 "Редактор свойств", компонент 218 "Синтаксический анализатор наборов строк", компонент 220 "Формирователь запросов", компонент 222 "Составитель перечня" и компонент 224 "Продуцент свойств".
Реляционная база данных 230 хранит свойства всех файлов системы. Она также хранит целиком некоторые элементы, такие как контактную информацию (то есть нефайловые элементы). В общем она хранит метаданные о типах файлов и элементов, которые она содержит. Реляционная база данных 230 принимает запросы на языке структурированных запросов SQL, поступающих из формирователя 220 запросов. Реляционная база данных 230 также посылает наборы строк на языке SQL в компонент 218 "Синтаксический анализатор наборов строк", при этом на каждый столбец элемента приходится по одной строке, где столбцы являются свойствами элемента.
База данных 232 описаний виртуальных папок включает в себя описания виртуальных папок. База данных 232 описаний виртуальный папок посылает в компонент 220 "Формирователь запросов" данные, включающие в себя список типов, подлежащих отображению в папке, начальный фильтр и места физического расположения, откуда будут показываться результаты (области охвата).
Что касается компонента 234 "Другие папки оболочки", то процессор 210 папок обращается к существующим папкам оболочки из многих типов элементов, включая все файлы, за обработчиками или свойствами. Компонент 234 "Другие папки оболочки" посылает свойства из других папок продуценту 224 свойств. Компонент "Другие папки оболочки" также посылает обработчики продуценту 214 обработчиков.
Компонент 236 "Обработчики папок" обеспечивает режим кода для элементов, которые существуют только в базе данных, как, например, контактная информация. Это то, что позволяет нефайловым элементам вести себя аналогично файлам. Компонент 236 "Обработчики папок" посылает обработчики продуценту 214 обработчиков.
Что касается компонента 212 "Собственный код обработки", то процессор 210 папок непосредственно реализует определенные обработчики, основанные на свойствах элементов. Компонент 212 "Собственный код обработки посылает обработчики компоненту 214 “продуценту обработчиков”. Для компонента 212 "Собственный код обработки" и компонента 236 "Обработчики папок" виртуальные папки, как и все пространства имен, должны предоставлять набор обработчиков (контекстных меню, пиктограмм, значков подсказок, …) для своих элементов. Для большинства этих случаев (подсказки, объекта данных, обработчика метода "перетаскивания", фонового контекстного меню …) виртуальная папка представляет общий (собственный) обработчик для всех типов, которые она содержит. Однако имеются и другие обработчики, которые должен предоставлять автор типа (контекстное меню на сам элемент, запись редактируемых свойств…). Также обработчик по умолчанию может быть отменен. Виртуальные папки многократно делают это для файлов и позволяют нефайловым элементам делать то же самое.
Компонент 214 “Продуцент обработчиков” получает таблицы идентификаторов и продуцирует режимы кода, которые обеспечивает контекстное меню, пиктограммы и т.д. В общем процессор 210 папок может использовать собственные обработчики, внешние обработчики или обратиться за получением обработчиков к другим папкам оболочки, как это описано выше в отношении компонента 212 "Собственный код обработки", компонента 234 "Другие папки оболочки" и компонента 236 "Обработчики папок". Компонент 214 "Продуцент обработчиков" посылает обработчики компоненту 240 “Браузер оболочки и представление” по запросу представления. Компонент 214 "Продуцент обработчиков" посылает обработчик свойства компоненту 216 “Редактор свойств”.
Компонент 216 “Редактор свойств” преобразует задуманные пользователем манипуляции, такие как вырезание, копирование и вставка, в права свойств на файл или элемент. Компонент 240 "Браузер оболочки и представление" посылает в компонент 216 “Редактор свойств” данные, содержащие прямые манипуляции (вырезание/копирование/вставка) или редактирование метаданных. В общем, поскольку виртуальные папки представляют собой способ организации данных, основанный на свойствах элемента, то операции типа перемещения и копирования (метод "перетаскивания") превращается в редактирование этих свойств. Например, перемещение документа в представлении, разбитом на пачки по авторам, от Автора 1 к Автору 2, означает изменение автора. Эту функцию выполняет компонент 216 "Редактор свойств".
Компонент 218 “Синтаксический анализатор” наборов строк берет наборы строк из базы данных и сохраняет в памяти все свойства элемента в виде оболочковой структуры таблицы идентификаторов. Набор строк получает поэлементное определение виртуальной папки и формирует строку на языке SQL, которая затем может быть выдана в базу данных. Компонент 218 "Синтаксический анализатор наборов строк" посылает таблицы идентификаторов в компонент 222 "Составителя перечня". Как было отмечено выше, компонент 218 "Синтаксический анализатор наборов строк" также получает данные из реляционной базы данных 230, включая наборы строк на языке SQL, в которых на каждый элемент приходится по одной строке, где столбцы являются свойствами элемента.
Компонент 220 "Формирователь запросов" формирует запросы на языке SQL. Компонент 220 "Формирователь запросов" получает данные из компонента 222 "Составитель перечня", в том числе новые фильтры, полученные при навигации. Компонент 220 "Формирователь запросов" также получает данные из базы данных 232 описаний виртуальных папок, включая список типов, подлежащих отображению в папке, начальный фильтр и места физического расположения, откуда будут показываться результаты (области охвата). Компонент 220 "Формирователь запросов" посылает запросы на языке SQL в реляционную базу данных 230.
В общем случае компонент 220 "Формирователь запросов" содержит набор строк (другими словами, таблицу). Это и есть результат выполнения запроса. Компонент 218 "Синтаксический анализатор наборов строк" берет каждую строку и, используя имена столбцов, трансформирует строку в таблицу идентификаторов. Таблица идентификаторов является хорошо известной структурой оболочки, которая используется для обращен