Система и способ представления для пользователя взаимосвязанных элементов
Иллюстрации
Показать всеИзобретение относится к средствам отображения элементов, хранящихся в компьютере. Техническим результатом является обеспечение сред для отображения элементов с соответствующей контекстной информацией и взаимосвязанных с этими элементами задачами. В системе и способе обеспечивают представление для пользователя взаимосвязанных элементов универсального хранилища данных. Часть элементов содержит реляционную информацию, которая позволяет определять взаимозависимость между двумя или более из множества элементов. Оболочка представляет выбранный элемент пользователю и сконфигурирована для использования реляционной информации, для представления одного или больше элементов в хранилище данных, которые взаимосвязаны с выбранным элементом. 4 н. и 21 з.п. ф-лы, 12 ил.
Реферат
Область техники
Настоящее изобретение, в целом, относится к области компьютерного программного обеспечения. Более конкретно, настоящее изобретение относится к системе и способу, предназначенное для отображения для пользователя элементов, хранящихся в компьютере.
Предшествующий уровень техники
Обеспечение пользователей компьютеров возможностью быстро находить и отображать части информации, независимо от формата информации или места ее расположения, представляет собой проблему, которую в течение многих лет пытаются решить в компьютерной промышленности. В настоящее время эта проблема стоит более остро, чем когда-либо, поскольку все большее количество людей используют компьютеры в своей повседневной деятельности, и в компьютерах сохраняют все большее количество информации разного рода.
Традиционно, как в операционной системе WINDOWS® 98™, компании Microsoft Corporation, такая информация сохраняется в компьютере в информационном хранилище с использованием иерархической структуры, организованной в виде файлов информации или на носителе, в папках. Хотя этот способ организации информационного хранилища широко используют в течение многих лет, он имеет ограничения, связанные с тем, что некоторые данные расположены за пределами иерархии файлов, и при этом пользователи ограничены форматом и расположением при поиске требуемых элементов информации. Для решения этой проблемы производители компьютерного программного обеспечения в настоящее время работают над новыми схемами организации информационного хранилища, которые могли бы составить альтернативу традиционной иерархической файловой структуре.
Пример такого альтернативного информационного хранилища раскрыт в находящейся в совместной собственности, одновременно находящейся на рассмотрении заявке "SYSTEM AND METHODS FOR REPRESENTING UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM BUT INDEPENDENT OF PHYSICAL REPRESENTATION", заявка на американский патент номер (еще назначен) (регистрационный номер 7 патентного поверенного № MSFT-1748). Эта одновременно находящаяся на рассмотрении заявка была подана 21 августа 2003, и в ней описано информационное хранилище, которое объединяет записанные данные в единую базу данных. Эта база данных представляет собой одно место, где хранятся все данные; при этом существует только один способ представления данных в базе данных и только один способ запроса данных. Благодаря замене устаревшей файловой системы этой современной технологией базы данных, обеспечивается простота поиска в информационном хранилище, более высокая надежность, лучший доступ и более высокая устойчивость.
При наличии такого объединенного информационного хранилища возникает потребность обеспечения пользователей соответствующими инструментальными средствами и возможностями взаимодействия с сохраненными данными. Обычная операционная система, такая как WINDOWS® 2000™, компании Microsoft Corporation, содержит сервисную программу (утилиту) оболочки, которая обеспечивает для пользователя интерфейс просмотра различной информации о компьютере. Такая оболочка обычно включает в себя программу просмотра файловой системы, которая позволяет пользователю перемещаться по файловой системе и находить и открывать файлы и папки. Например, WINDOWS® EXPLORER™ компании Microsoft Corporation представляет собой сервисную программу просмотра файловой системы, включенную в операционную систему WINDOWS® 2000™.
Эта оболочка также дает пользователям возможность просматривать элементы, не являющиеся файлами, такие как принтеры или шрифты. Возможность навигации обеспечивается, благодаря тому, что типовая оболочка запрограммирована с определенными функциональными возможностями отображения таких специальных элементов, как если бы они были расположены в файловой системе. Например, в WINDOWS® 2000™ пользователь может открыть папку "Принтеры", расположенную в пункте "Панель управления" меню "Пуск". Поскольку принтеры являются элементами аппаратных средств, а не файлами, графическое представление принтеров выполняется с использованием специальной программы, предназначенной для отображения принтеров, как если бы они были файлами, постоянно находящимися в папке "Принтеры". Однако использование специальной (заказной) программы и специальных (сделанных на заказ) изображений представляет сложность для разработчиков программного обеспечения, может быть ненадежным и снижает устойчивость программы просмотра оболочки. Кроме того, когда эта специальная программа или специальные изображения находятся не на месте, предназначенном для данных такого типа, оболочка будет не способна отображать элементы этого типа. В соответствии с этим обычные оболочки ограничены по своим возможностям и гибкости при отображении некоторых элементов для пользователя.
Другое ограничение обычных программ просмотра - оболочек состоит в их ограниченной способности отображения взаимосвязанных элементов. Обычно программа просмотра - оболочка позволяет отображать элементы только в иерархической структуре, в которой они сохранены и организованы, в виде файлов, сохраненных в папках. Например, если пользователю требуется рассмотреть все файлы - изображения, сохраненные в компьютере, пользователь должен сначала поместить все такие файлы - изображения в одну папку. Поскольку оболочка имеет ограниченные возможности по определению взаимоотношения между элементами, пользователю трудно просматривать файлы в контексте их взаимосвязи.
Кроме того, обычные программы просмотра - оболочки ограничены по способности отображения наборов элементов в пределах контекстуально приспособленной (организованной) среды, которая сопоставляет взаимосоответствующую информацию и задачи с набором отображаемых элементов. Разработчики, благодаря использованию такого сопоставления, обеспечивают пользователей возможностью представления соответствующей информации и инструментальных средств, требуемых для навигации между элементами, улучшают возможность выполнения общих задач, ассоциированных с этими элементами. Известный уровень техники, однако, не позволяет разработчикам получить такой результат без использования специальных программ.
Пример представления файлов в расширенной среде с использованием специальной программы может быть представлен папкой "Мои рисунки", которая включена в операционную систему WINDOWS® XP™ компании Microsoft Corporation. Когда файлы изображения сохранены в папке "Мои рисунки", пользователь может просматривать изображения с различным размером, поворачивать их, рассматривать последовательность рисунков, печатать изображения или копировать изображения на компакт-диск. В оболочке в WINDOWS® XP™ используется специальная программа, предназначенная для включения этих задач, связанных с изображением, в отображение этой папки так, что для пользователя, при сохранении изображений в этой специальной папке, обеспечивается возможность простой навигации среди изображений и выполнения общих задач с файлами. Однако в этой среде отображаются только файлы, сохраненные в папке "Мои рисунки", и для обеспечения этих функциональных возможностей используется специальная программа. В то время как папка "Мои рисунки" представляет собой усовершенствование по сравнению с традиционным представлением элементов, возможности разработчиков все еще ограничены при определении таких сред с насыщенным содержанием, без использования специальных программ.
В соответствии с этим существует потребность в улучшенной оболочке, которая позволила бы отображать каждый элемент, находящийся в универсальном информационном хранилище, и кроме того, существует потребность в улучшенной оболочке, сконфигурированной для представления элементов в универсальном информационном хранилище в контексте возникновения их соотношений. Также существует потребность в улучшенных возможностях оболочки для разработчиков по созданию специальных сред, отображающих элементы с соответствующей контекстной информацией и взаимосвязанными с ними задачами, без необходимости использования специальных программ.
Сущность изобретения
Настоящее изобретение обеспечивает выполнение вышеуказанных задач и преодоление одного или больше недостатков известного уровня техники с помощью системы, сконфигурированной для представления для пользователя взаимосвязанных элементов, хранящихся в информационном хранилище. В одном аспекте настоящего изобретения предложена система, предназначенная для представления для пользователя взаимосвязанных элементов. В систему включено универсальное информационное хранилище, которое содержит множество элементов. По меньшей мере, часть элементов в информационном хранилище содержит реляционную (связанную, родственную) информацию. В оболочке реляционную информацию используют для представления взаимосвязанных элементов.
В другом аспекте настоящее изобретение предлагает способ, реализованный на компьютере, предназначенный для представления для пользователя взаимосвязанных элементов. С помощью этого способа обеспечивается доступ к данным в универсальном информационном хранилище, которое содержит элементы, включающие в себя информацию, позволяющую определить соотношения между элементами в информационном хранилище. Такая реляционная информация используется для определения взаимосвязи (соотношения) между элементами, и взаимосвязанные элементы отображаются для пользователя.
Краткое описание чертежей
Настоящее изобретение подробно описано ниже со ссылками на прилагаемые чертежи, на которых:
На фиг.1 показана блок-схема среды компьютерной системы, пригодной для использования при выполнении настоящего изобретения;
На фиг.2A показана блок-схема, иллюстрирующая компьютерную систему, разделенную на три группы компонентов: компонент аппаратных средств, компонент системы интерфейса аппаратных/программных средств и компонент прикладных программ;
на фиг.2B представлена традиционная древовидная иерархическая структура файлов, сгруппированных в папки, в директории (каталоге) в операционной системе на основе файлов;
на фиг.3 показана блок-схема, иллюстрирующая платформу хранилища, в соответствии с настоящим изобретением;
на фиг.4 представлена структурная взаимозависимость между элементами, папками элементов и категориями в различных вариантах выполнения настоящего изобретения;
на фиг.5 показана схема данных, содержащихся в одном элементе, в соответствии с вариантом выполнения настоящего изобретения;
на фиг.6 показана схема последовательности выполнения операций, изображающая способ представления для пользователя одного или больше элементов, в соответствии с одним вариантом выполнения настоящего изобретения;
на фиг.7 показана схема последовательности выполнения операций, изображающая способ представления одного или больше элементов для пользователя, в соответствии с одним вариантом выполнения настоящего изобретения;
на фиг.8 показана схема, изображающая иерархию схемы просмотра, в соответствии с вариантом выполнения настоящего изобретения;
на фиг.9 показана схема, изображающая иерархию схемы просмотра, включающая схему просмотра программы - "проводника", в соответствии с вариантом выполнения настоящего изобретения;
на фиг.10 показана схема последовательности выполнения операций, представляющая способ представления элементов для пользователя, в соответствии с вариантом выполнения настоящего изобретения; и
на фиг.11 показана схема последовательности выполнения операций, представляющая способ представления для пользователя взаимосвязанных элементов, в соответствии с вариантом выполнения настоящего изобретения.
Подробное описание изобретения
I. ВВЕДЕНИЕ
Объект настоящего изобретения описан со спецификой, необходимой для удовлетворения требований, предусмотренных патентным законодательством. Однако само описание не предназначено для ограничения объема данного патента. Скорее авторы настоящего изобретения предусматривают, что заявленный объект также может быть выполнен с использованием других способов, предусматривающих включение различных этапов или комбинации этапов, аналогичных описанным в данном документе, совместно с другими существующими или будущими технологиями. Кроме того, хотя термин "этап" может использоваться здесь для обозначения различных элементов используемых способов, этот термин не следует интерпретировать как предполагающий какой-либо конкретный порядок среди или между различными описанными здесь этапами, если только не и за исключением случая, когда порядок отдельных этапов будет явно описан.
Настоящее изобретение раскрывает усовершенствованные систему и способ отображения для пользователя элементов, хранящихся в компьютере. Ниже описан пример операционной среды для настоящего изобретения.
A. ПРИМЕР ОПЕРАЦИОННОЙ СРЕДЫ
Различные варианты выполнения настоящего изобретения могут быть выполнены на компьютере. Фиг.1 и приведенное ниже описание предназначены для представления короткого общего описания соответствующей компьютерной среды, в которой может быть выполнено настоящее изобретение. Хотя это не требуется, различные аспекты изобретения могут быть описаны в общем контексте выполняемых на компьютере инструкций, таких как программные модули, выполняемые компьютером, таком как рабочая станция - клиент или сервер. Обычно программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., которые выполняют определенные задачи или реализуют различные конкретные абстрактные типы данных. Кроме того, настоящее изобретение может быть использовано на практике с другими конфигурациями компьютерной системы, включая портативные устройства, многопроцессорные системы, микропроцессор на основе программируемых электронных устройств потребителя, сетевые ПК, микрокомпьютеры, главные компьютеры и т.п. Настоящее изобретение также можно использовать на практике в распределенных компьютерных средах, в которых задачи выполняют с использованием удаленных устройств обработки информации, соединенных через сеть передачи данных. В распределенной компьютерной среде программные модули могут быть расположены как на локальных, так и на удаленных устройствах хранения информации.
Как показано на фиг.1, пример компьютерной системы общего назначения включает в себя обычный персональный компьютер 20 или подобное устройство, включающее в себя блок 21 процессора, системное запоминающее устройство 22 и системную шину 23, которая подсоединяет различные компоненты системы, включая системное запоминающее устройство, к блоку 21 процессора. Системная шина 23 может представлять собой любую структуру из нескольких типов шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину с использованием любой из множества различных архитектур шины. Системное запоминающее устройство включает в себя постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. Базовая система 26 ввода-вывода (БИОС, BIOS), содержащая основные процедуры, которые обеспечивают возможность передачи информации между элементами в персональном компьютере 20, например, во время включения, записана в ПЗУ 24. Персональный компьютер 20, кроме того, может содержать привод 27 жесткого диска, предназначенный для считывания и записи информации на жесткий диск, не показан, привод 28 магнитного диска для считывания с или записи информации на съемный магнитный диск 29, и привод 30 оптического диска, предназначенный для считывания или записи информации на съемный оптический диск 31, такой как CD ROM (постоянное запоминающее устройство на компакт-диске) или другой оптический носитель. Привод 27 жесткого диска, привод 28 магнитного диска и привод 30 оптического диска соединены с системной шиной 23 с помощью интерфейса 32 привода жесткого диска, интерфейса 33 привода магнитного диска и интерфейса 34 привода оптического диска, соответственно. Приводы и ассоциированные с ними считываемые компьютером носители обеспечивают энергонезависимое хранилище считываемых компьютером инструкций, структур данных, программных модулей и других данных для персонального компьютера 20. Хотя в описанном здесь примере структуры используется жесткий диск, съемный магнитный диск 29 и съемный оптический диск 31, для специалистов в данной области техники понятно, что другие типы считываемых компьютером носителей, на которые можно записывать данные, доступ к которым обеспечивается с помощью компьютера, такие как магнитные кассеты, карты запоминающего устройства типа флэш, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п., также можно использовать в примере рабочей среды. Аналогично, в пример среды также можно включить множество типов устройств контроля, таких как тепловые датчики и системы безопасности или пожарной тревоги, и другие источники информации.
Множество программных модулей может быть записано на жесткий диск, магнитный диск 29, оптический диск 31, ПЗУ 24 или ОЗУ 25, включая операционную систему 35, одну или больше прикладных программ 36, других программных модулей 37 и программных данных 38. Пользователь может вводить команды и информацию в персональный компьютер 20 через устройства ввода, такие как клавиатура 40 и устройство 42 - указатель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой планшет, дополнительный диск, сканер или тому подобное. Эти и другие устройства ввода часто подключены к блоку 21 процессора через интерфейс 46 последовательного порта, который соединен с системной шиной, но могут быть соединены с помощью других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ, USB). Монитор 47 или устройство отображения другого типа также соединен с системной шиной 23 через интерфейс, такой как видеоадаптер 48. Кроме монитора 47, персональные компьютеры обычно включают в себя другие периферийные выходные устройства (не показаны), такие как громкоговорители и принтеры. Пример системы, показанной на фиг.1, также включает адаптер 55 с главным компьютером, шину 56 интерфейса малых вычислительных систем (ИМВС, SCSI) и внешнее устройство 62 хранения, подключенное к шине 56 SCSI.
Персональный компьютер 20 может работать в сетевой среде с использованием логических соединений с одним или больше удаленных компьютеров, таких как удаленный компьютер 49. Удаленный компьютер 49 может представлять собой другой персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой узел общей сети, и обычно включает в себя множество или все элементы, описанные выше в отношении персонального компьютера 20, хотя на фиг.1 изображено только запоминающее устройство 50. Логические соединения, представленные на фиг.1, включают в себя локальную сеть (LAN) 51 и глобальную сеть (WAN) 52. Такие сетевые среды являются общеупотребимыми в офисах, компьютерных сетях предприятия, сетях Интранет и Интернет.
При использовании в среде локальной сети ЛВС (LAN) персональный компьютер 20 соединен с LAN 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде глобальной вычислительной сети ГВС (WAN) персональный компьютер 20 обычно включает в себя модем 54 или другие средства установления связи через глобальную сеть 52, такую как Интернет. Модем 54, который может быть внутренним или внешним, соединен с системной шиной 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, изображенные как относящиеся к персональному компьютеру 20 или его частям, могут быть сохранены в удаленном устройстве хранения информации. Следует понимать, что показанные сетевые связи представляют собой только пример, и могут использоваться другие средства установления каналов передачи данных между компьютерами.
Как показано в блок-схеме на фиг.2A, компьютерная система 200 может быть приблизительно разделена на три группы компонентов: компонент 202 аппаратных средств, компонент 204 системы интерфейса аппаратных/программных средств и компонент 206 прикладных программ (также называемый "компонентом пользователя" или "программным компонентом" в некотором контексте приведенного здесь описания).
В различных вариантах выполнения компьютерной системы 200, как снова показано на фиг.1, компонент 202 аппаратных средств может содержать центральное процессорное устройство (ЦПУ) 21, запоминающее устройство (ПЗУ 24 и ОЗУ 25), базовую систему 26 входа-выхода (BIOS) и различные устройства ввода-вывода (I/O), такие как клавиатура 40, мышь 42, монитор 47 и/или принтер (не показан), помимо других элементов. Компонент 202 аппаратных средств содержит основную (базовую) физическую инфраструктуру компьютерной системы 200.
Компонент 206 прикладных программ содержит различные программы, включая, без ограничения компиляторы, системы баз данных, текстовые редакторы, программы для выполнения деловых операций, видеоигры и т. д. Прикладные программы обеспечивают средство, с помощью которого используются компьютерные ресурсы для решения задач, получают решения и обрабатывают данные для различных пользователей (машин, других компьютерных систем и/или конечных пользователей).
Компонент 204 системы интерфейса аппаратных/программных средств содержит операционную систему (и в некоторых вариантах выполнения может состоять исключительно из операционной системы), которая сама по себе в большинстве случаев содержит оболочку и ядро. "Операционная система" (ОС, OS) представляет собой специальную программу, которая действует как посредник между прикладными программами и аппаратными средствами компьютера. Компонент 204 системы интерфейса аппаратных/программных средств также может содержать администратор виртуальной машины (АВМ, VMM), общеязыковую исполняющую среду (ОЯИ, CLR) или ее функциональный эквивалент, виртуальную Java-машину (JVM) или ее функциональный эквивалент, или другие программные компоненты такого рода, используемые вместо или в добавление к операционной системе компьютерной системы. Назначение системы интерфейса аппаратных/программных средств состоит в создании среды, в которой пользователь может выполнять прикладные программы. Назначение любой системы интерфейса аппаратных/программных средств состоит в обеспечении удобства пользования компьютерной системой, а также в эффективном использовании компьютерных аппаратных средств.
Систему интерфейса аппаратных/программных средств обычно загружают в компьютерную систему при включении, и после этого она управляет всеми прикладными программами в компьютерной системе. Прикладные программы взаимодействуют с системой интерфейса аппаратных/программных средств путем запроса услуг через интерфейс программ приложения (ИПП, API). Некоторые программы приложения обеспечивают для конечных пользователей возможность взаимодействовать с системой интерфейса аппаратных/программных средств через интерфейс пользователя, такой как интерфейс общего языка или графический интерфейс пользователя (ГИП, GUI).
Система интерфейса аппаратных/программных средств традиционно выполняет множество услуг для прикладных программ. В многозадачной системе интерфейса аппаратных/программных средств, в которой множество программ могут выполняться одновременно, система интерфейса аппаратных/программных средств определяет, какие прикладные программы должны работать, в каком порядке, и сколько времени должно быть выделено для работы каждой прикладной программы перед переключением на другую прикладную программу. Система интерфейса аппаратных/программных средств также управляет совместным использованием внутренней памяти множеством прикладных программ и управляет вводом и выводом через подключенные аппаратные устройства, такие как жесткие диски, принтеры и порты коммутируемой линии передачи. Система интерфейса аппаратных/программных средств также передает сообщения в каждую прикладную программу (и, в некоторых случаях, конечному пользователю) о рабочем состоянии операций и о любых ошибках, которые могут возникнуть. Система интерфейса аппаратных/программных средств также может освобождать от излишней нагрузки средства управления выполнением пакетных заданий (например, печати) так, что инициирующая прикладная программа освобождается от этой работы и может возобновить другую обработку и/или другие операции. На компьютерах, которые позволяют обеспечить параллельную обработку информации, система интерфейса аппаратных/программных средств также управляет разделением программы так, что она работает на более чем одном процессоре одновременно.
Оболочка системы интерфейса аппаратных/программных средств (для простоты называемая здесь "оболочкой") представляет собой интерактивный интерфейс конечного пользователя с системой интерфейса аппаратных/программных средств. (Оболочка может также называться "интерпретатором команд" или в операционной системе "оболочкой операционной системы"). Оболочка представляет собой внешний уровень системы интерфейса аппаратных/программных средств, доступ к которому осуществляется непосредственно прикладными программами и/или конечными пользователями. "Оболочка - программа просмотра" обеспечивает интерфейс пользователя, позволяющий пользователю просматривать и взаимодействовать с интерфейсом аппаратных/программных средств. В отличие от оболочки ядро представляет собой самый внутренний уровень системы интерфейса аппаратных/программных средств, который взаимодействует непосредственно с аппаратными компонентами.
Хотя предусматривается, что различные варианты выполнения настоящего изобретения особенно хорошо приспособлены для компьютеризированных систем, ничто в данном документе не ограничивает настоящее изобретение такими вариантами выполнения. Напротив, используемый здесь термин "компьютерная система" предназначен для охвата любого и всех устройств, позволяющих сохранять и обрабатывать информацию и/или позволяющих использовать сохраненную информацию для управления поведением или выполнением самого устройства, независимо от того, являются ли такие устройства электронными, механическими, логическими или виртуальными по своей природе.
B. ТРАДИЦИОННЫЕ ХРАНИЛИЩА НА ОСНОВЕ ФАЙЛОВ
В большинстве современных компьютерных систем "файлы" представляют собой модули хранимой информации, которые могут включать в себя систему интерфейса аппаратных/программных средств, а также прикладные программы, наборы данных и т.д. Во всех современных системах интерфейса аппаратных/программных средств (Windows, Unix, Linux, Mac OS, системах виртуальной машины и т.д.) файлы являются основными дискретными (обладающими возможностью хранения и извлечения) модулями информации (например, данные, программы и т.д.), которыми можно манипулировать с помощью системы интерфейса аппаратных/программных средств. Группы файлов обычно организованы в "папки". В системе Microsoft Windows, Macintosh OS и в других системах интерфейса аппаратных/программных средств папка представляет собой набор файлов, которые могут быть извлечены, которые можно перемещать и которыми можно по-другому манипулировать, как одиночными блоками информации. Эти папки, в свою очередь, организованы в виде древовидной иерархической структуры, называемой "директорией" (каталогом) (более подробно описана ниже). В некоторых других системах интерфейса аппаратных/программных средств, таких как DOS, z/OS и большинстве операционных систем на основе Unix, термины "директория" и/или "папка" используются как взаимозаменяемые термины, и в ранних компьютерных системах Apple (например, Apple IIe) использовался термин "каталог" вместо термина "директория"; однако все эти используемые здесь термины считаются синонимами и взаимозаменяемыми терминами, и предполагается, что они содержат все другие эквивалентные термины и ссылки на иерархические структуры хранения информации, а также на их компоненты в виде папок и файлов.
Традиционно, директория (также известная как директория папок), представляет собой древовидную иерархическую структуру, в которой файлы сгруппированы в папки, и папка, в свою очередь, расположена в соответствии с относительным расположением узлов, которые содержат дерево директорий. Например, как показано на фиг.2B, основная папка 212 файловой системы на основе DOS (или "корневая директория") может содержать множество папок 214, каждая из которых может дополнительно содержать дополнительные папки (в качестве "подпапок" этой конкретной папки) 216, и каждая из них также может содержать дополнительные папки 218 и так до бесконечности. Каждая из этих папок может иметь один или более файлов 220, хотя на уровне системы интерфейса аппаратных/программных средств отдельные файлы в папке не имеют ничего общего с другими файлами, кроме их расположения в древовидной иерархии. Не удивительно, что такой подход организации файлов в виде иерархии папок опосредованно отражает физическую организацию типичной среды хранения, используемой для сохранения этих файлов (например, жесткие диски, гибкие диски, CD-ROM и т. д.).
В дополнение к вышеуказанному, каждая папка представляет собой контейнер для своих подпапок и файлов, то есть каждая папка содержит свои подпапки и файлы. Например, когда папку удаляют с помощью системы интерфейса аппаратных/программных средств, эти подпапки и файлы в этой папке также удаляют (которые, в случае каждой подпапки, дополнительно включают в себя свои собственные подпапки и файлы в виде рекурсивной последовательности). Аналогично, каждый файл обычно принадлежит только одной папке и, хотя файл может быть скопирован, и копия может быть расположена в другой папке, сама копия файла отличается от оригинала и представляет собой отличающийся и отдельный модуль, который не имеет непосредственной связи с оригиналом (например, изменение оригинального файла не отражается в копии файла на уровне системы интерфейса аппаратных/программных средств). В этом отношении файлы и папки, таким образом, являются характерно "физическими" по своей природе, поскольку папки обрабатывают как физические контейнеры, и файлы обрабатывают как дискретные и отдельные физические элементы, находящиеся внутри этих контейнеров.
II. УНИВЕРСАЛЬНОЕ ХРАНИЛИЩЕ ДАННЫХ
Платформа для хранения, используемая в настоящем изобретении, продлевает и расширяет платформу данных за пределы описанных выше существующих в настоящее время файловых систем и разработана для хранения всех типов данных. Хранилище данных, разработанное для хранения всех типов данных, можно назвать универсальным хранилищем данных. Пример универсального хранилища данных, пригодного для использования в настоящем изобретении, описан в находящейся в совместной собственности, одновременно находящейся на рассмотрении заявке "SYSTEM AND METHODS FOR REPRESENTING UNITS OF INFORMATION MANAGEABLE BY A HARDWARE/SOFTWARE INTERFACE SYSTEM BUT INDEPENDENT OF PHISICAL REPRESENTATION", заявка на американский патент номер (еще не назначен) (регистрационный номер патентного поверенного MSFT-1748), поданной 21 августа 2003 г., которая приведена здесь в качестве ссылки.
A. ОБЗОР
Как показано на фиг.3, платформа 300 хранения, в соответствии с настоящим изобретением, содержит универсальное хранилище 302 данных, выполненное на основе механизма 314 базы данных. В одном варианте выполнения механизм 314 базы данных содержит механизм реляционной базы данных с объектными реляционными расширениями. В одном варианте выполнения механизм 314 реляционной базы данных содержит механизм реляционной базы данных Microsoft SQL Server.
Универсальное хранилище 302 данных реализует модель 304 данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и безопасность данных. Конкретные типы данных описаны в схемах, таких как схема 340, и платформа 300 хранилища обеспечивает инструментальные средства 346 для разворачивания этих схем, а также для расширения этих схем, как более полно описано ниже.
Механизм 306 отслеживания изменений, реализованный в универсальном хранилище 302 данных, обеспечивает возможность отслеживания изменений в хранилище данных. Универсальное хранилище 302 данных также обеспечивает возможности 308 безопасности и возможности 310 повышения/понижения. Универсальное хранилище 302 данных также обеспечивает набор интерфейсов 312 программ приложений, предназначенных для обеспечения предоставления возможностей универсального хранилища 302 данных для других компонентов платформы хранения и прикладных программ (например, прикладных программ 350A, 350B и 350C), в которых используется платформа хранения.
Платформа хранения, в соответствии с настоящим изобретением, кроме того, содержит интерфейсы 322 программ приложения (API), которые позволяют прикладным программам, таким как прикладные программы 350A, 350B и 350C получать доступ ко всем приведенным выше возможностям платформы хранения и получать доступ к данным, описанным в схемах. Платформа API 322 хранения может быть использована прикладными программами в комбинации с другими API, такими как OLE (связывание и встраивание объектов) DB (база данных) API 324 и Microsoft Windows Win32 API 326.
Платформа 300 хранения, в соответствии с настоящим изобретением, может предоставлять различные услуги 328 для прикладных программ, включая услугу 330 синхронизации, которая позволяет облегчить совместное использование данных для пользователей или систем. Например, услуга 330 синхронизации может обеспечить возможность взаимодействия с другими хранилищами 340 данных, имеющими тот же формат, что и хранилище 302 данных, а также доступ к хранилищам 342 данных, имеющим другие форматы. Платформа 300 хранения также обеспечивает возможности файловой системы, которые позволяют обеспечить возможность взаимодействия универсального хранилища 302 данных с существующими файловыми системами, такими как файловая система 318 NTFS (файловая система Windows NT) операционной системы Windows.
В по меньшей мере некоторых вариантах выполнения платформа 320 хранения также обеспечивает дополнительные возможности для прикладных программ по обеспечению воздействия на данные и обеспечению взаимодействия с другими системами. Эти возможности могут быть выполнены в форме дополнительных услуг 328, таких как услуга 334 Info Agent и услуга 332 уведомления, а также в форме других служебных программ (утилит) 336.
В по меньшей мере некоторых вариантах выполнения платформа хранения выполнена в составе или в форме части единой системы интерфейса аппаратных/программных средств компьютерной системы. Например, и без ограничений, платформа хранения в соответствии с настоящим изобретением может быть выполнена в форме части единой операционной системы, администратора виртуальной машины (VMM), общеязыковой исполняющей среды (CLR) или ее функционального эквивалента, или в форме виртуальной Java-машины (JVM) или ее функционального эквивалента.
Благодаря организации общей системы хранения и схематизированных данных, платформа хранения в соответствии с настоящим изобретением обеспечивает более эффективную разработку прикладных программ для потребителей, специалистов в области анализа и обработки информации. Она предлагает богатое и широкое пространство для программирования, которое не только делает доступными возможности, присущими ее модели данных, но также охватывает и расширяет существующую файловую систему и способы доступа к базе данных.
B. МОДЕЛЬ ДАННЫХ
Универсальное хранилище 302 данных платформы 300 хранения, в соответствии с настоящим изобретением, реализует модель данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и безопасность данных, находящихся в хранилище. В модели данных, в соответствии с настоящим изобретением, фундаментальный (основной) модуль хранимой информации можно назвать элементом. Модель данных обеспечивает механизм декларирования элементов и расширений элемента и установления взаимосвязей между элементами, а также механизм организации элементов в папках и категориях.
В одном варианте выполнения настоящего изобретения модель данных основана на двух примитивных механизмах, Типы (Types) и Взаимозависимости (Relationships). Типы представл