Система и способ для представления элементов пользователю с использованием контекстного представления
Иллюстрации
Показать всеИзобретение относится к системе и способу для представления элементов пользователю с использованием контекстного представления. Техническим результатом является расширение функциональных возможностей за счет создания настроенных сред. Компьютерная система, которая включает в себя ЗУ данных, причем, по меньшей мере, часть элементов в ЗУ данных включают в себя одну или более записей полей, проводник и браузер оболочки, сконфигурированный для доступа к проводнику. Проводник взаимодействует с памятью данных, выбирает элементы, имеющие одну или более желательных записей полей, и отображает выбранные элементы в соответствии со схемой отображения проводника. Прикладная программа может выбирать элементы из ЗУ данных и может взаимодействовать с браузером оболочки для представления выбранных элементов. 7 н. и 37 з.п. ф-лы, 13 ил.
Реферат
Область техники
Настоящее изобретение относится к области компьютерного программного обеспечения. Более конкретно, настоящее изобретение относится к системе и способу для отображения элементов информации, сохраненных на компьютере пользователя.
Предшествующий уровень техники
Обеспечение пользователей компьютеров возможностью быстро находить и отображать части информации, независимо от формата или местоположения информации, является проблемой, которую компьютерная индустрия решает в течение многих лет. В настоящее время эта проблема стала еще более насущной, чем когда-либо, ввиду увеличения количества людей, использующих компьютеры в их повседневных процедурах, и ввиду продолжающейся диверсификации типов информации, сохраняемой на компьютере.
Традиционно, как в случае Windows®TM компании Microsoft Corporation, эта сохраненная информация содержится в памяти данных на компьютере как организованная иерархическим способом в виде файлов информации или носителей, сохраненных в папках. Хотя этот способ хранения данных широко использовался в течение многих лет, он ограничен тем, что некоторые данные находятся вне иерархии файлов, и пользователи ограничены требованиями по форматированию и определению местоположения при поиске желательных частей информации. Соответственно, поставщики компьютерного программного обеспечения в настоящее время работают над методами хранения данных, альтернативными традиционной иерархии файлов.
Пример такого альтернативного метода хранения раскрыт в совместно поданной заявке на «Способы и систему для хранения блоков информации, управляемой системой интерфейса аппаратных и программных средств, независимо от физического представления» (номер заявки еще не присвоен) (номер дела поверенного MSFT-1748). Эта совместно поданная заявка от 21 августа 2003 раскрывает память данных, которая объединяет хранение данных в одной базе данных. Эта база данных является единственным местом, где хранятся все данные; при этом имеется только один способ представления данных для базы данных и только один способ запроса на получение данных. Замена устаревших файловых систем этой современной технологией баз данных предоставляет запоминающее устройство, которое обеспечивает более эффективный поиск, является более надежным, более доступным и более гибким.
При реализации этого унифицированного запоминающего устройства возникает потребность в обеспечении пользователей соответствующими инструментальными средствами и возможностями для взаимодействия с сохраненными данными. Обычные операционные системы, такие как WINDOWS® 2000TM компании Microsoft Corporation, включают в себя утилиту оболочки, которая обеспечивает пользовательский интерфейс для просмотра различной информации о компьютере. Оболочка в типовом случае включает в себя браузер файловой системы, который позволяет пользователю перемещаться по файловой системе и определять местоположение и открывать файлы и папки. Например, WINDOWS® EXPLORERTM компании Microsoft Corporation, является утилитой браузера файловой системы, включенной в WINDOWS® 2000TM.
Оболочка также позволяет пользователю просматривать нефайловые элементы, такие как принтеры или шрифты. Такая навигация возможна потому, что типовая оболочка программируется с конкретными функциональными возможностями, чтобы отображать эти специальные элементы так, как если бы они находились в файловой системе. Например, в WINDOWS® 2000TM пользователь может открыть папку «Принтеры», расположенную в опции «Установки» меню запуска. Поскольку принтеры являются частью аппаратных средств, а не файлами, это графическое представление принтеров выполняется за счет использования настроенного кода, направленного на отображение принтеров, как если бы они были файлами, находящимися в папке «Принтеры». Однако использование настроенного кода и настроенных исключительных ситуаций для графики вызывает сложности при разработке, может оказаться ненадежным и снижает способность к восстановлению для браузера оболочки. Кроме того, если настроенного кода и настроенных исключительных ситуаций для графики не имеется для конкретного типа данных, то оболочка окажется неспособной для отображения элементов данного типа. Соответственно, традиционные оболочки ограничены по своим возможностям и гибкости при отображении конкретных элементов пользователю.
Другим ограничением традиционных браузеров оболочек является ограниченная способность в отображении элементов реляционным способом. В типовом случае браузер оболочки функционирует для отображения элементов иерархическим способом, в соответствии с которым они сохранены (организованы) в файлах, сохраненных в папках. Например, если пользователю желательно просмотреть все файлы изображений, сохраненные в компьютере, пользователь должен сначала поместить все такие файлы изображений в одну и ту же папку. Поскольку оболочка имеет ограниченные ресурсы для определения соотношений между элементами, то пользователю затруднительно просматривать файлы в реляционно-ориентированном контексте.
Кроме того, традиционные браузеры оболочки ограничены по своим возможностям отображения набора элементов в контекстно-настроенной среде, которая объединяет в пары соответствующую информацию и задачи с набором отображаемых элементов. Разработчики за счет обеспечения формирования таких пар могут представить пользователям соответствующую информацию и инструментальные средства, необходимые для перемещения по элементам, при обеспечении выполнения обычных задач, связанных с элементами. Однако предшествующий уровень техники не позволяет разработчикам обеспечивать такие реализации без использования настроенного кода.
Примером файлов, представляемых в усовершенствованной среде за счет использования настроенного кода, является папка «Мои рисунки», которая включена в операционную систему WINDOWS® ХРTM компании Microsoft Corporation. Когда файлы изображений сохранены в папке «Мои рисунки», пользователь может просматривать изображения различных размеров, поворачивать их, просматривать показ слайдов, печать изображений или копировать изображения на компакт-диск. Оболочка в WINDOWS® ХРTM использует настроенный код для встраивания этих связанных с изображениями задач в отображение этой папки, так что пользователь, при выборе сохранения рисунков в этой конкретной папке, сможет легко перемещаться по рисункам и выполнять общие задачи в отношении этих файлов. Однако только файлы, сохраненные в папке «Мои рисунки», отображаются в этой среде, и настроенный код используется для создания этих функциональных возможностей. Хотя папка «Мои рисунки» является усовершенствованием по сравнению с традиционным представлением элементов, разработчики по-прежнему имеют ограниченные возможности в определении таких сред, характеризуемых обогащенным содержанием, без использования настроенного кода.
Соответственно, имеется потребность в усовершенствованной оболочке, которая обеспечивает отображение каждого элемента в универсальном хранилище данных, и, кроме того, имеется потребность в усовершенствованной оболочке, которая конфигурируется для представления элементов в универсальном хранилище данных в реляционно-ориентированном контексте. Также имеется потребность в усовершенствованных функциональных возможностях в оболочке для разработчиков, чтобы создавать настроенные среды, которые отображают элементы с соответствующей контекстной информацией и связанными задачами, не требуя настроенного кода.
Сущность изобретения
Настоящее изобретение удовлетворяет приведенные выше потребности и преодолевает один или более недостатков предшествующего уровня техники за счет обеспечения системы, позволяющей представить пользователю элементы, сохраненные в ЗУ данных, с контекстным представлением. В одном аспекте настоящего изобретения предложена компьютерная система, которая включает в себя ЗУ данных. По меньшей мере, часть элементов в ЗУ данных включают в себя одну или более записей полей. Кроме того, в систему включена программа анализа (проводник), которая взаимодействует с памятью данных, выбирает элементы, имеющие одну или более желательных записей полей, и отображает выбранные элементы в соответствии со схемой отображения программы анализа.
Другой аспект настоящего изобретения включает в себя реализуемый компьютером способ для представления пользователю элементов, сохраненных в ЗУ данных, с контекстным представлением. Выбирается желательная запись поля, соответствующая записи поля, связанной с, по меньшей мере, одним элементом в ЗУ данных. Определяется схема отображения программы анализа. Способ обеспечивает доступ к ЗУ данных для выбора одного или более элементов, включающих в себя желательную запись поля, и отображает один или более выбранных элементов в соответствии со схемой отображения программы анализа.
Еще один аспект настоящего изобретения предусматривает программу анализа для представления множества элементов. Программа анализа включает компонент выбора записи поля, который выбирает желательную запись поля. Компонент выбора записи поля обращается к ЗУ данных для выбора одного или более элементов, имеющих желательную запись поля, и компонент представления отображения представляет выбранные элементы пользователю.
Еще один аспект настоящего изобретения предусматривает прикладную программу для представления элементов пользователю. Программа включает в себя модуль выбора элементов, конфигурированный для обращения к ЗУ данных и выбора элементов, имеющих желательную запись поля. Программа также включает в себя компонент взаимодействия оболочки, конфигурированный для взаимодействия с браузером оболочки для представления выбранных элементов в соответствии со схемой отображения программы анализа.
Еще один аспект настоящего изобретения предусматривает реализуемый компьютером способ для установления программы анализа (проводника) для представления элементов с использованием контекстного представления. Способ включает в себя выбор желательной записи поля, соответствующей записи поля, связанной с, по меньшей мере, одним элементом в ЗУ данных. Определяются атрибуты программы анализа, и один или более элементов, связанных с желательной записью поля, представляются пользователю с помощью схемы отображения, включающей в себя атрибуты программы анализа.
Краткое описание чертежей
Настоящее изобретение описано ниже более подробно со ссылками на чертежи, на которых показано следующее.
Фиг.1 - блок-схема среды вычислительной системы, подходящей для реализации настоящего изобретения;
Фиг.2А - блок-схема, иллюстрирующая компьютерную систему, разделенную на три группы компонентов: компонент аппаратных средств, компонент системы сопряжения (интерфейса) между аппаратными средствами и программным обеспечением;
Фиг.2В - традиционная древовидная иерархическая структура для файлов, сгруппированных в папки в директории в операционной системе, основанной на файлах;
Фиг.3 - блок-схема, иллюстрирующая платформу хранения в соответствии с настоящим изобретением;
Фиг.4 - структурное соотношение между элементами, папками элементов и категориями в различных вариантах осуществления настоящего изобретения;
Фиг.5 - диаграмма данных, содержащихся в элементе, в соответствии с вариантом осуществления настоящего изобретения;
Фиг.6 - блок-схема способа представления одного или более элементов пользователю в соответствии с вариантом осуществления настоящего изобретения;
Фиг.7 - блок-схема способа представления одного или более элементов пользователю в соответствии с вариантом осуществления настоящего изобретения;
Фиг.8 - схема, показывающая иерархию схемы просмотра, в соответствии с вариантом осуществления настоящего изобретения;
Фиг.9 - схема, показывающая иерархию схемы просмотра, включающую в себя схему просмотра программы анализа (проводника), в соответствии с вариантом осуществления настоящего изобретения;
Фиг.10 - блок-схема способа представления элементов пользователю в соответствии с вариантом осуществления настоящего изобретения;
Фиг.11 - блок-схема способа представления связанных элементов пользователю в соответствии с вариантом осуществления настоящего изобретения.
Детальное описание изобретения
1. Введение
Сущность настоящего изобретения описана с учетом необходимости удовлетворения обязательных требований. Однако само описание не предназначено для ограничения объема патента. Напротив, изобретатели имели в виду, что заявленная сущность изобретения может быть реализована различными путями для включения различных этапов или комбинаций этапов, подобных указанным в настоящем документе, во взаимосвязи с другими существующими или перспективными методами. Кроме того, хотя термин «этап» может использоваться здесь для ассоциирования с другими элементами используемых способов, этот термин не должен интерпретироваться как означающий конкретный порядок среди или между другими различными раскрытыми этапами, если только порядок индивидуальных этапов не выражен в явном виде.
Настоящее изобретение обеспечивает усовершенствованную систему и способ для отображения пользователю элементов, сохраненных на компьютере. Приведенная для примера операционная среда для настоящего изобретения описана ниже.
А. Примерная операционная среда
Различные варианты осуществления настоящего изобретения могут выполняться на компьютере. Фиг.1 и последующее описание предназначены для обеспечения краткого обобщенного описания подходящей вычислительной среды, в которой может быть реализовано изобретение. Хотя не обязательно, однако различные аспекты изобретения могут быть описаны в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые компьютером, таким как клиентская рабочая станция или сервер. В общем случае программные модули включают в себя стандартные программы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют некоторые абстрактные типы данных. Кроме того, изобретение может быть реализовано с использованием других конфигураций компьютерных систем, включая персональные компьютеры, мультипроцессорные системы, микропроцессорные системы или программируемые приборы бытовой электроники, сетевые ПК, миникомпьютеры, универсальные компьютеры и т.п. Изобретение также может быть реализовано в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны коммуникационной сетью или другой средой передачи данных. В распределенной вычислительной среде программные модули и другие данные могут размещаться как в локальных, так и удаленных устройствах памяти.
Как показано на фиг.1, приведенная для примера универсальная вычислительная система включает в себя обычный персональный компьютера 20 или подобное средство и содержит блок 21 обработки, системную память 22 и системную шину 23, которая связывает различные системные компоненты, включая системную память, с блоком 21 обработки. Системная шина 23 может быть любой из различных типов шинных структур, включая шину памяти или контроллер памяти, шину периферийных устройств, локальную шину, использующую любую из разнообразных шинных архитектур. Системная память включает в себя постоянную память (ROM, ПЗУ) 24 и оперативную память (RAM, ОЗУ) 25. Базовая система ввода/вывода (BIOS) 26, содержащая базовые подпрограммы, которые способствуют переносу информации между элементами в персональном компьютере 20, например, при запуске, в типовом случае сохранена в ПЗУ 24. Персональный компьютер 20 может также содержать дисковод 27 жестких дисков для считывания с жесткого диска (не показан) и записи на него, дисковод 28 магнитных дисков для считывания со съемного энергонезависимого магнитного диска 29 и записи на него, и дисковод 30 оптических дисков для считывания со съемного энергонезависимого оптического диска 31 или записи на оптический диск, такой как, например, ПЗУ на компакт-диске (CD-ROM) или иные оптические носители записи. Дисковод 27 жестких дисков, дисковод 28 магнитных дисков и дисковод 30 оптических дисков соединены с системной шиной 23 посредством интерфейса 32 дисковода жестких дисков, интерфейса 33 магнитных дисков и интерфейса 34 оптических дисков. Дисководы и связанные с ними машиночитаемые носители обеспечивают энергонезависимое хранение машиночитаемых команд, структур данных, программных модулей и других данных для персонального компьютера 20. Хотя в описываемой примерной среде используются жесткий диск, съемный магнитный диск 29 и съемный оптический диск 31, специалистам в данной области техники должно быть понятно, что в приведенной для примера операционной среде могут использоваться другие типы машиночитаемых носителей записи для хранения данных, к которым может иметь доступ компьютер, таких как кассеты на магнитных лентах, карты флэш-памяти, цифровые видеодиски, DVD, картриджи Бернулли, ОЗУ, ПЗУ и т.п. Аналогичным образом, данная примерная среда может включать в себя множество типов контрольных устройств, таких как датчики температуры, охранные системы и системы пожарной сигнализации, и другие источники информации.
Ряд программных модулей может быть сохранен на жестком диске 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, хотя на фиг.10 показано только устройство 50 памяти. Логические соединения, показанные на фиг.1, включают в себя локальную сеть (LAN) 51 и глобальную сеть (сеть широкого охвата - WAN) 52. Такие сетевые среды являются общеизвестными в офисах, компьютерных сетях предприятий, интранетах и в Интернет.
При использовании в сетевой среде локальной сети (LAN) персональный компьютер 20 соединяется с локальной сетью 51 через сетевой интерфейс или адаптер 53. При использовании в сетевой среде глобальной сети (WAN) персональный компьютер 20 в типовом случае включает в себя модем 54 или иное средство для установления связи в глобальной сети 52, такой как Интернет. Модем 54, который может быть внутренним или внешним, соединен с системной шиной 23 через интерфейс 46 последовательного порта. Следует иметь в виду, что показанные сетевые соединения приведены для примера и что могут быть использованы и другие средства установления канала связи между компьютерами.
Как показано на фиг.2А, компьютерная система 200 может быть грубо разделена на группы компонентов: компонент 202 аппаратных средств, компонент 204 системы интерфейса программных/аппаратных средств и компонент 206 прикладных программ (также упоминаемый в определенных контекстах как «пользовательский компонент» или «компонент программного обеспечения»).
В различных вариантах осуществления компьютерной системы 200, согласно фиг.1, компонент 202 аппаратных средств может содержать центральный процессорный блок (CPU) 21, память (как ПЗУ 24, так и ОЗУ 25), базовую систему ввода/вывода (BIOS) и различные устройства ввода/вывода, такие как клавиатура 40, мышь 42, монитор 47, и/или принтер (не показан), в числе других средств. Компонент 202 аппаратных средств содержит базовую физическую инфраструктуру для компьютерной системы 200.
Компонент 206 прикладных программ содержит различные программы, включая, без ограничения указанным, компиляторы, системы баз данных, текстовые процессоры, бизнес-программы, видеоигры и т.д. Прикладные программы обеспечивают средство, посредством которого компьютерные ресурсы используются для решения проблем, обеспечения решений, обработки данных для различных пользователей (машин, других компьютерных систем и/или конечных пользователей).
Компонент 204 системы интерфейса программных/аппаратных средств содержит (и в некоторых вариантах осуществления может только состоять из указанного) операционную систему, которая в большинстве случаев содержит оболочку и ядро. Операционная система (ОС) является специальной программой, которая действует как посредник между прикладной программой и компьютерными аппаратными средствами. Компонент 204 системы интерфейса программных/аппаратных средств может также содержать администратора виртуальной машины (VMM), рабочую среду общего языка (CLR) или ее функциональный эквивалент, виртуальную машину Java (JVM) или ее функциональный эквивалент или другие программные компоненты вместо или в дополнение к операционной системе в компьютерной системе. Назначением системы интерфейса между программными/аппаратными средствами является обеспечение среды, в которой пользователь может выполнять прикладные программы. Целью любой системы интерфейса программных/аппаратных средств является обеспечение удобства использования компьютерной системы, а также использования компьютерных аппаратных средств эффективным способом.
Система интерфейса программных/аппаратных средств обычно загружается в компьютерную систему при запуске и затем управляет всеми прикладными программами в компьютерной системе. Прикладные программы взаимодействуют с системой интерфейса программных/ аппаратных средств путем запроса сервисов через интерфейс программирования приложений (API). Некоторые прикладные программы позволяют конечному пользователю взаимодействовать с системой интерфейса программных/аппаратных средств через пользовательский интерфейс, такой как интерфейс языка команд или графический пользовательский интерфейс (GUI).
Система интерфейса программных/аппаратных средств традиционно выполняет множество сервисов для приложений. В многозадачной системе интерфейса программных/аппаратных средств, где множество программ могут исполняться в одно и то же время, система интерфейса программных/аппаратных средств определяет, какие приложения должны исполняться в каком порядке и сколько времени должно быть отведено для каждого приложения, прежде чем переключиться на другое приложение. Система интерфейса программных/аппаратных средств также управляет совместным использованием внутренней памяти множеством приложений и обрабатывает вводы и выводы на/с присоединенных аппаратных средств, таких как жесткие диски, принтеры и порты с набором номера. Система интерфейса программных/аппаратных средств также посылает сообщение в каждое приложение (и в некоторых случаях к конечному пользователю) относительно статуса операций и ошибок, которые могут произойти. Система интерфейса программных/аппаратных средств также может сбрасывать управление пакетными заданиями (например, печать), так что инициирующее приложение освобождается от этой работы и может возобновить другую обработку и/или операции. На компьютерах, которые могут обеспечивать параллельную обработку, система интерфейса программных/аппаратных средств также управляет разделением программы, так что она выполняется более чем на одном процессоре одновременно. Оболочка системы интерфейса программных/аппаратных средств (упоминаемая здесь просто как «оболочка») представляет собой интерактивный пользовательский интерфейс с системой интерфейса программных/аппаратных средств. (Оболочка также может упоминаться как «интерпретатор команд» или, в операционной системе, как «оболочка операционной системы»). Оболочка является внешним уровнем системы интерфейса программных/аппаратных средств, который непосредственно доступен для прикладных программ и/или конечных пользователей. «Браузер оболочки» обеспечивает пользовательский интерфейс, позволяющий пользователю просматривать и взаимодействовать с интерфейсом программных/аппаратных средств. В противоположность оболочке ядро является самым внутренним уровнем системы интерфейса программных/аппаратных средств, который непосредственно взаимодействует с компонентами аппаратных средств.
Хотя представляется, что многие варианты осуществления настоящего изобретения особенно пригодны для компьютеризованных систем, однако настоящее изобретение не ограничивается такими вариантами осуществления. Напротив, используемый здесь термин «компьютерная система» охватывает любые и все устройства, которые могут сохранять и обрабатывать информации и/или могут использовать сохраненную информацию для управления поведением или исполнением самого устройства, независимо от того, являются ли такие устройства электронными, механическими, логическими или виртуальными.
В. Традиционное файловое запоминающее устройство
В большинстве компьютерных систем в настоящее время «файлы» являются блоками сохраняемой информации, которая может включать в себя систему интерфейса программных/аппаратных средств, а также прикладные программы, наборы данных и т.д. Во всех современных системах интерфейса программных/аппаратных средств (Windows, Unix, Linux, Mac OS, системы виртуальных машин и т.д.) файлы являются базовыми дискретными (сохраняемыми и извлекаемыми) блоками информации (например, данных, программ и т.д.), которыми может манипулировать система интерфейса программных/аппаратных средств. Группы файлов обычно организованы в «папки». В Microsoft Windows, Macintosh OS и других системах интерфейса программных/аппаратных средств папка представляет собой совокупность файлов, которая может быть извлечена, перемещена и иным образом обработана как единый блок информации. Эти папки, в свою очередь, организованы в древовидной иерархической структуре, называемой «директорией» (более подробно описано ниже). В некоторых других системах интерфейса программных/аппаратных средств, таких как DOS, z/OS и большинстве основанных на Unix операционных системах, термины «директория» и/или «папка» являются взаимозаменяемыми, и ранние компьютерные системы Apple (например, Apple IIe) использовали термин «каталог» вместо директории. Однако, как использовано в настоящем описании, все эти термины трактуются как синонимичные и взаимозаменяемые и подразумеваются включающими в себя все другие эквивалентные термины и ссылки на иерархические структуры запоминания информации и их компоненты в виде папок и файлов.
Традиционно директория (также определяемая как директория папок) является древовидной иерархической структурой, в которой файлы сгруппированы в папки, а папки, в свою очередь, упорядочены в соответствии с относительными узловыми местоположениями, которые образуют дерево директории. Например, как показано на фиг.2В, базовая папка (или «корневая директория») 212 файловой системы DOS может содержать множество папок 214, каждая из которых может иметь дополнительные папки (такие как «подпапки» такой конкретной папки) 216, а каждая из них также может содержать дополнительные папки 218 до бесконечности. Каждая из этих папок может иметь один или более файлов 220, хотя на уровне системы интерфейса программных/аппаратных средств индивидуальные файлы в папке не имеют ничего общего, кроме их местоположения в древовидной иерархии. Не удивительно, что этот метод организации файлов в иерархиях папок косвенным образом отражает физическую организацию носителей для хранения информации, используемых для хранения таких файлов (например, жестких дисков, дискет, CD-ROM и т.д.).
В дополнение к указанному выше каждая папка является контейнером для ее подпапок и ее файлов, то есть каждая папка является владельцем ее подпапок и файлов. Например, если папка удаляется системой интерфейса программных/аппаратных средств, то подпапки и файлы также удаляются (что в случае каждой из подпапок далее включает ее собственные подпапки и файлы рекурсивным образом). Аналогичным образом каждый файл в общем случае принадлежит только одной папке, хотя файл может быть скопирован, и копия может находиться в другой папке, копия файла сама является отдельным отличающимся блоком, который не имеет непосредственной связи с оригиналом (например, изменения в оригинальном файле не отражаются на копию файла на уровне системы интерфейса программных/аппаратных средств). В этом отношении файлы и папки являются по своим характеристикам «физическими» по природе, так как с папками обращаются как с физическими контейнерами, и с файлами обращаются как с дискретными и отдельными физическими элементами внутри этих контейнеров.
II. Универсальное хранилище данных
Платформа хранения, используемая настоящим изобретением, продолжает и расширяет платформу данных за пределы типов существующих файловых систем, описанных выше, и предназначается для хранения всех типов данных. ЗУ данных, предназначенное для хранения всех типов данных, может определяться как универсальное хранилище данных. Пример универсального хранилища данных, подходящего для использования с настоящим изобретением, описан в совместно поданной заявке того же заявителя на «Систему и способы представления блоков информации, управляемых системой интерфейса аппаратных/программных средств, независимо от физического представления» (номер заявки еще не присвоен) (номер дела поверенного MSFT-1724) от 21 августа 2003, включенной в настоящее описание посредством ссылки.
А. Обзор платформы хранения
На фиг.3 показана платформа 300 хранения в соответствии с настоящим изобретением, содержащая универсальное хранилище (ЗУ) 302 данных, реализованное на механизме 314 базы данных. В одном варианте осуществления механизм 314 базы данных содержит механизм реляционной базы данных с реляционными расширениями объектов. В одном варианте осуществления механизм 314 реляционной базы данных образован механизмом реляционной базы данных на сервере Microsoft SQL.
Универсальное ЗУ 302 данных реализует модель 304 данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и защиту данных. Конкретные типы данных описаны в схемах, таких как схемы 360, и платформа 300 хранения обеспечивает инструментальные средства 346 для разработки этих схем, а также для расширения этих схем, как описано более подробно ниже.
Механизм 306 отслеживания изменений, реализованный в универсальном ЗУ 302 данных, обеспечивает возможность отслеживания изменений в хранилище данных. Универсальное ЗУ 302 данных также обеспечивает средства 308 защиты и средства 310 продвижения/отзыва. Универсальное ЗУ 302 данных также обеспечивает набор интерфейсов 312 программирования приложений для показа возможностей универсального ЗУ 302 данных другим компонентам платформы хранения и прикладным программам (например, прикладным программам 350А, 350В и 350С), которые используют платформу хранения.
Платформа хранения согласно настоящему изобретению также содержит интерфейс программирования приложений (API) 322, который обеспечивает возможность прикладным программам, таким как прикладные программы 350А, 350В и 350С, получать доступ ко всем вышеуказанным средствам платформы хранения и к данным, описанным в схемах. API 322 платформы хранения может быть использован прикладными программами в комбинации с другими API, такими как OLE DB API 324 и Microsoft Windows Win32 API 326.
Платформа 300 хранения согласно настоящему изобретению может обеспечивать различные сервисы 328 для прикладных программ, включая сервис 330 синхронизации, который облегчает совместное использование данных пользователями или системами. Например, сервис 330 синхронизации может обеспечить взаимодействие с другими ЗУ 340 данных, имеющими такой же формат, что и ЗУ 302 данных, а также получение доступа к ЗУ 342 данных, имеющих другие форматы. Платформа 300 хранения также обеспечивает возможности файловой системы, что обеспечивает взаимодействие универсального ЗУ 302 данных с существующими файловыми системами, такими как файловая система 318 Windows NTFS.
По меньшей мере, в некоторых вариантах осуществления платформа 300 хранения может также обеспечивать прикладные программы с дополнительными возможностями для воздействия на данные и для взаимодействия с другими системами. Эти возможности могут быть воплощены в форме дополнительных сервисов 328, таких как сервис 334 Info Agent (информационный агент) и сервис 332 уведомления, а также как другие утилиты 336.
По меньшей мере, в некоторых вариантах осуществления платформа хранения воплощена в системе интерфейса аппаратных/программных средств компьютерной системы или образует ее составную часть. Например, без ограничений указанным, платформа хранения согласно настоящему изобретению может быть воплощена в составе операционной системы, администратора виртуальной машины (VMM), рабочей среды общего языка (CLR) или ее функционального эквивалента, или виртуальную машину Java (JVM) или ее функционального эквивалента.
За счет своей обобщенной организации хранения и систематизированных данных платформа хранения согласно настоящему изобретению обеспечивает более эффективную разработку приложений для клиентов, специалистов информационных технологий и предприятий. Она обеспечивает обогащенную и расширяемую область поверхности программирования, которая позволяет реализовать не только возможности, заложенные в ее модели данных, но и охватывает и расширяет существующие методы доступа к файловым системам и базам данных.
В. Модель данных
Универсальное ЗУ 302 данных платформы 300 хранения согласно настоящему изобретению реализует модель данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и защиту данных, находящихся в ЗУ. В модели данных согласно настоящему изобретению фундаментальный блок сохраняемой информации может определяться как элемент. Модель данных обеспечивает механизм для декларирования элементов и расширений элементов и для установления соотношений между элементами и для организации элементов в папки и в категории.
В одном варианте осуществления изобретения модель данных основывается на двух примитивных механизмах Типов и Соотношений. Типы представляют собой структуры, которые обеспечивают формат, который управляет формой экземпляра Типа. Формат выражается как упорядоченный набор Свойств. Свойство является именем для значения или набора значений заданного Типа. Например, тип USPostal Address (почтовый адрес в США) может иметь такие свойства, как Улица, Город, Почтовый индекс, Штат. Свойства могут быть обязательными или факультативными.
Соотношения могут декларироваться и представлять отображение между наборами экземпляров двух типов. Например, может иметься Соотношение, декларированное между Типом «Персона» и Типом «Местоположение», называемое как «ПроживаетВ», которое определяет, какие люди проживают в каких конкретно местоположениях. Соотношение имеет имя, две конечные точки, а именно конечную точку источника и конечную точку цели. Соотношения могу