СИСТЕМА И СПОСОБ ДЛЯ ПРЕДСТАВЛЕНИЯ ЭЛЕМЕНТОВ, СОХРАНЕННЫХ НА КОМПЬЮТЕРЕ
SYSTEM AND METHOD FOR PRESENTING ELEMENTS STORED ON COMPUTER

Область техники
Настоящее изобретение относится к области компьютерного программного обеспечения. Более конкретно, настоящее изобретение относится к системе и способу для отображения пользователю элементов информации, сохраненных на компьютере.
Предшествующий уровень техники
Обеспечение пользователей компьютеров возможностью быстро находить и отображать части информации, независимо от формата или местоположения информации, является проблемой, которую компьютерная индустрия решает в течение многих лет. В настоящее время эта проблема стала еще более насущной, чем когда-либо, ввиду увеличения количества людей, использующих компьютеры в их повседневных процедурах, и ввиду продолжающейся диверсификации типов информации, сохраняемой на компьютере.
TM
Традиционно, как в случае WINDOWS98 компании Microsoft Corporation, эта сохраненная информация содержится в памяти данных на компьютере как организованная иерархическим способом в виде файлов информации или носителей, сохраненных в папках. Хотя этот способ хранения данных широко использовался в течение многих лет, он ограничен тем, что некоторые данные находятся вне иерархии файлов, и пользователи ограничены требованиями по форматированию и определению местоположения при поиске желательных частей информации. Соответственно, поставщики компьютерного программного обеспечения в настоящее время работают над методами хранения данных, альтернативными традиционной иерархии файлов.
Пример такого альтернативного метода хранения раскрыт в совместно поданной заявке на «Систему и способы для хранения блоков информации, управляемой системой интерфейса аппаратных/программных средств, независимо от физического представления» (номер заявки еще не присвоен) (номер дела поверенного MSFT-1748). Эта совместно поданная заявка от 21 августа 2003 раскрывает память данных, которая объединяет хранение в одной базе данных. Эта база данных является единственным местом, где хранятся все данные; при этом имеется только один способ представления данных для базы данных и только один способ запроса на получение данных. За счет замены устаревших файловых систем этой современной технологией баз данных запоминающее устройство обеспечит более эффективный поиск, станет более надежным, более доступным и более гибким.
TM
TM
ТМ
При реализации этого унифицированного запоминающего устройства возникает потребность в обеспечении пользователей соответствующими инструментальными средствами и возможностями для взаимодействия с сохраненными данными. Обычные операционные системы, такие как WINDOWS2000 компании Microsoft Corporation, включают в себя утилиту оболочки, которая обеспечивает пользовательский интерфейс для просмотра различной информации о компьютере. Оболочка в типовом случае включает в себя браузер файловой системы, который позволяет пользователю перемещаться по файловой системе и определять местоположение и открывать файлы и папки. Например, WINDOWSEXPLORER компании Microsoft Corporation является утилитой браузера файловой системы, включенной в WINDOWS2000.
TM
Оболочка также позволяет пользователю просматривать нефайловые элементы, такие как принтеры или шрифты. Такая навигация возможна потому, что типовая оболочка программируется с конкретными функциональными возможностями, чтобы отображать эти специальные элементы так, как если бы они находились в файловой системе. Например, в WINDOWS2000 пользователь может открыть папку «Принтеры», расположенную в опции «Установки» меню запуска. Поскольку принтеры являются частью аппаратных средств, а не файлами, это графическое представление принтеров выполняется за счет использования настроенного кода, направленного на отображение принтеров, как если бы они были файлами, находящимися в папке «Принтеры». Однако использование настроенного кода и настроенных исключительных ситуаций для графики вызывает сложности при разработке, может оказаться ненадежным и снижает способность к восстановлению для браузера оболочки. Кроме того, если настроенного кода и настроенных исключительных ситуаций для графики не имеется для конкретного типа данных, то оболочка окажется неспособной для отображения элементов данного типа. Соответственно, традиционные оболочки ограничены по своим возможностям и гибкости при отображении конкретных элементов пользователю.
Другим ограничением традиционных браузеров оболочек является ограниченная способность в отображении элементов реляционным способом. В типовом случае браузер оболочки функционирует для отображения элементов иерархическим способом, в соответствии с которым они сохранены (организованы) в файлах, сохраненных в папках. Например, если пользователю желательно просмотреть все файлы изображений, сохраненные в компьютере, пользователь должен сначала поместить все такие файлы изображений в одну и ту же папку. Поскольку оболочка имеет ограниченные ресурсы для определения соотношений между элементами, то пользователю затруднительно просматривать файлы в реляционно-ориентированном контексте.
Кроме того, традиционные браузеры оболочки ограничены по своим возможностям отображения набора элементов в контекстно-настроенной среде, которая объединяет в пары соответствующую информацию и задачи с набором отображаемых элементов. Разработчики за счет обеспечения формирования таких пар могут представить пользователям соответствующую информацию и инструментальные средства, необходимые для перемещения по элементам, при обеспечении выполнения обычных задач, связанных с элементами. Однако предшествующий уровень техники не позволяет разработчикам обеспечивать такие реализации без использования настроенного кода.
TM
TM
Примером файлов, представляемых в усовершенствованной среде за счет использования настроенного кода, является папка «Мои рисунки», которая включена в операционную систему WINDOWSХР компании Microsoft Corporation. Если файлы изображений сохранены в папке «Мои рисунки», пользователь может просматривать изображения различных размеров, поворачивать их, просматривать показ слайдов, печать изображений или копировать изображения на компакт-диск. Оболочка в WINDOWSХР использует настроенный код для встраивания этих связанных с изображениями задач в отображение этой папки, так что пользователь, при выборе сохранения рисунков в этой конкретной папке, сможет легко перемещаться по рисункам и выполнять общие задачи в отношении этих файлов. Однако только файлы, сохраненные в папке «Мои рисунки», отображаются в этой среде, и настроенный код используется для создания этих функциональных возможностей. Хотя папка «Мои рисунки» является усовершенствованием по сравнению с традиционным представлением элементов, разработчики по-прежнему имеют ограниченные возможности в определении таких сред, характеризуемых обогащенным содержанием, без использования настроенного кода.
Соответственно, имеется потребность в усовершенствованной оболочке, которая обеспечивает отображение каждого элемента в универсальном хранилище данных, и, кроме того, имеется потребность в усовершенствованной оболочке, которая конфигурируется для представления элементов в универсальном хранилище данных в реляционно-ориентированном контексте. Также имеется потребность в усовершенствованных функциональных возможностях в оболочке для разработчиков, чтобы создавать настроенные среды, которые отображают элементы с соответствующей контекстной информацией и связанными задачами, не требуя настроенного кода.
Сущность изобретения
Настоящее изобретение удовлетворяет приведенные выше потребности и преодолевает один или более недостатков предшествующего уровня техники за счет обеспечения системы, конфигурированной для представления пользователю элементов, сохраненных в ЗУ данных. В одном аспекте настоящего изобретения предложена компьютерная система, которая включает в себя универсальное ЗУ данных, содержащее множество элементов. Часть элементов могут содержать метаданные, сохраненные в соответствии со схемой декорирования элемента. Предусмотрена оболочка, которая представляет элементы с соответствующими метаданными с использованием представления декорирования элемента и элементы без метаданных с использованием установленного по умолчанию представления отображения.
Другой аспект настоящего изобретения включает в себя реализуемый компьютером способ для представления элементов пользователю. Способ предусматривает обращение в универсальное ЗУ данных в ответ на пользовательский ввод, запрашивающий представление одного или более элементов. Способ представляет запрошенные элементы; причем элементы с соответствующими метаданными представляются с использованием схемы декорирования элемента, а элементы без метаданных представляются с использованием установленного по умолчанию представления отображения.
Еще один аспект настоящего изобретения предусматривает оболочку для представления множества элементов пользователю. Оболочка включает в себя компонент взаимодействия с ЗУ данных, который извлекает данные из ЗУ данных. Используется компонент представления отображения, который представляет запрашиваемые элементы в соответствии с представлением декорирования элемента или установленного по умолчанию представления отображения.
Краткое описание чертежей
Настоящее изобретение описано ниже более подробно со ссылками на чертежи, на которых показано следующее.
Фиг.1 - блок-схема среды вычислительной системы, подходящей для реализации настоящего изобретения;
Фиг.2А - блок-схема, иллюстрирующая компьютерную систему, разделенную на три группы компонентов: компонент аппаратных средств, компонент системы сопряжения (интерфейса) аппаратных средств и программного обеспечения;
Фиг.2В - традиционная древовидная иерархическая структура для файлов, сгруппированных в папки в директории в операционной системе, основанной на файлах;
Фиг.3 - блок-схема, иллюстрирующая платформу хранения в соответствии с настоящим изобретением;
Фиг.4 - структурное соотношение между элементами, папками элементов и категориями в различных вариантах осуществления настоящего изобретения;
Фиг.5 - диаграмма данных, содержащихся в элементе, в соответствии с вариантом осуществления настоящего изобретения;
Фиг.6 - блок-схема способа представления одного или более элементов пользователю в соответствии с вариантом осуществления настоящего изобретения;
Фиг.7 - блок-схема способа представления одного или более элементов пользователю в соответствии с вариантом осуществления настоящего изобретения;
Фиг.8 - схема, показывающая иерархию схемы представления в соответствии с вариантом осуществления настоящего изобретения;
Фиг.9 - схема, показывающая иерархию схемы представления, включающую в себя схему представления программы анализа (проводника), в соответствии с вариантом осуществления настоящего изобретения;
Фиг.10 - блок-схема способа представления элементов пользователю в соответствии с вариантом осуществления настоящего изобретения;
Фиг.11 - блок-схема способа представления связанных элементов пользователю в соответствии с вариантом осуществления настоящего изобретения.
Фиг.12 - блок-схема способа представления связанных элементов в соответствии с настоящим изобретением.
Детальное описание изобретения
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 последовательного порта. В сетевой среде программные модули, отображенные относительно персонального компьютера 20, или его частей, могут быть сохранены в удаленном ЗУ. Следует иметь в виду, что показанные сетевые соединения приведены для примера, и что могут быть использованы и другие средства установления канала связи между компьютерами.
Как показано на фиг.2А, компьютерная система 200 может быть грубо разделена на три группы компонентов: компонент 202 аппаратных средств, компонент 204 системы интерфейса программных/аппаратных средств и компонент 206 прикладных программ (также упоминаемый в определенных контекстах как «пользовательский компонент» или «компонент программного обеспечения»).
В различных вариантах осуществления компьютерной системы 200 согласно фиг.1 компонент 202 аппаратных средств может содержать центральный процессорный блок (CPU) 21, память (как ПЗУ 24, так и ОЗУ 25), базовую систему ввода/вывода (BIOS) 26 и различные устройства ввода/вывода, такие как клавиатура 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 данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и защиту данных. Конкретные типы данных описаны в схемах, таких как схемы 340, и платформа 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.
По меньшей мере, в некоторых вариантах осуществления платформа 320 хранения может также обеспечивать прикладные программы с дополнительными возможностями для воздействия на данные и для взаимодействия с другими системами. Эти возможности могут быть воплощены в форме дополнительных сервисов 328, таких как сервис 334 Info Agent (информационный агент) и сервис 332 уведомления, а также как другие утилиты 336.
По меньшей мере, в некоторых вариантах осуществления платформа 320 хранения воплощена в системе интерфейса аппаратных/программных средств компьютерной системы или образует ее составную часть. Например, без ограничений указанным, платформа хранения согласно настоящему изобретению может быть воплощена в составе операционной системы, администратора виртуальной машины (VMM), рабочей среды общего языка (CLR) или ее функционального эквивалента, или виртуальной машины Java (JVM) или ее функционального эквивалента.
За счет обобщенной организации хранения и систематизированных данных, платформа хранения согласно настоящему изобретению обеспечивает более эффективную разработку приложений для клиентов, специалистов информационных технологий и предприятий. Она обеспечивает обогащенную и расширяемую область поверхности программирования, которая позволяет реализовать не только возможности, заложенные в ее модели данных, но и охватывает и расширяет существующие методы доступа к файловым системам и базам данных.
В. Модель данных
Универсальное ЗУ 302 данных платформы 300 хранения согласно настоящему изобретению реализует модель данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и защиту данных, находящихся в ЗУ. В модели данных согласно настоящему изобретению фундаментальный блок сохраняемой информации может определяться как элемент. Модель данных обеспечивает механизм для декларирования элементов и расширений элементов и для установления соотношений между элементами и для организации элементов в папки и в категории.
В одном варианте осуществления изобретения модель данных основывается на двух примитивных механизмах Типов и Соотношений. Типы представляют собой структуры, которые обеспечивают формат, который управляет формой экземпляра Типа. Формат выражается как упорядоченный набор Свойств. Свойство является именем для значения или набора значений заданного Типа. Например, тип US Postal Address (почтовый адрес в США) может иметь такие свойства, как Улица, Город, Почтовый индекс, Штат. Свойства могут быть обязательными или факультативными.
Соотношения могут декларироваться и представлять отображение между наборами экземпляров двух типов. Например, может иметься Соотношение, декларированное между Типом «Персона» и Типом «Местоположение», называемое как «ПроживаетВ», которое определяет, какие люди проживают в каких конкретно местоположениях. Соотношение имеет имя, две конечные точки, а именно конечную точку источника и конечную точку цели. Соотношения могут также иметь упорядоченный набор свойств. Конечные точки «Источник» и «Цель» имеют Имя и Тип. Например, Соотношение «ПроживаетВ» имеет Источник «Обитатель» Типа «Персона» и Цель, определяемую как «Жилище» Типа «Местоположение», а также дополнительно имеет свойства «ДатаНачала» и «ДатаОкончания», указывающие период времени, в течение которого жилец проживал в жилище. Заметим, что Персона может проживать во множестве жилищ в заданном промежутке времени, и жилище может иметь множество жильцов, так что наиболее вероятным местом для размещения информации «ДатыНачала» и «ДатыОкончания» является собственно соотношение.
Соотношения определяют отображение между экземплярами, которое ограничено типами, заданными как типы конечных точек. Например, соотношение «ПроживаетВ» не может быть соотношением, в котором Жильцом является Автомобиль, так как Автомобиль не является Персоной.
1. Элемент
Как отмечено выше, фундаментальный элемент информации хранения в универсальном ЗУ данных в соответствии с настоящим изобретением может определяться как элемент. Элемент является элементом информации хранения, который в отличие от простого файла является объектом, имеющим базовый набор свойств, которые совместно поддерживаются по всем объектам, представляемым конечному пользователю или прикладной программе платформой хранения. Специалистам в данной области техники понятно, что универсальность универсального ЗУ данных стала возможной, в частности, благодаря тому, что каждый элемент в ЗУ данных содержит данные, указывающие эти базовые свойства, сохраненные в соответствии со схемой данных, которая постоянна для каждого элемента.
Универсальная схема данных обеспечивает универсальное основание, которое устанавливает концептуальную базу для создания и организации элементов и свойств. Универсальная схема данных определяет некоторые специальные типы элементов и свойств, и свойства этих специальных фундаментальных типов, из которых далее могут быть выведены подтипы. Использование этой универсальной схемы данных позволяет программисту концептуально различать элементы (и их соответствующие типы) от свойств (и их соответствующих типов). Кроме того, универсальная схема данных устанавливает фундаментальный набор свойств, которыми могут обладать все элементы, так как все элементы (и соответствующие им Типы элементов) выводятся из этого функционального элемента в универсальной схеме данных (и соответствующего ему Типа элемента). За счет сохранения каждого элемента в соответствии с этой универсальной схемой данных браузер оболочки имеет возможность интерпретировать и представлять пользователю каждый элемент в ЗУ данных вместе с его базовыми свойствами. Пример универсальной схемы данных, подходящей для использования с настоящим изобретением, описан в совместно поданной патентной заявке США того же заявителя на «Систему и способы для хранения блоков информации, управляемой системой интерфейса аппаратных/ программных средств, независимо от физического представления» (номер заявки еще не присвоен) (номер дела поверенного MSFT-1748) от 21 августа 2003, которая включена в настоящее описание посредством ссылки.
Элементы также имеют свойства и соотношения, которые совместно поддерживаются по всем типам элементов, включая свойства, которые позволяют вводить новые свойства и соотношения. Специалистам в данной области техники понятно, что на эти данные свойств и соотношений можно ссылаться как на метаданные, связанные с элементом. Как описано ниже, метаданные могут быть сохранены в соответствии со схемой декорирования элемента. Эта схема декорирования элемента может указывать соответствующий способ для представления элемента пользователю.
Элементы являются объектами для обычных операций, таких как копирование, удаление, перемещение, открытие, печать, резервирование, восстановление, дублирование и т.д. Элементы являются блоками, которые могут быть сохранены и извлечены, и все формы сохраняемой информации, которой манипулирует платформа хранения, существуют как элементы, свойства элементов или соотношения между элементами. Каждая из этих категорий описана более подробно ниже.
Элементы предназначены для представления реальных и хорошо понятных блоков данных, таких как Контакты, Люди, Сервисы, Местоположения, Документы (всевозможных сортов) и т.д.
Элементы являются автономными объектами, таким образом, при удалении элемента все свойства элемента также удаляются. Аналогичным образом, при извлечении объекта, то, что принимается, представляет собой элемент и все его свойства, содержащиеся в метаданных элемента. Некоторые варианты осуществления настоящего изобретения могут позволять запрашивать поднабор свойств при извлечении конкретного элемента; однако по умолчанию для многих вариантов осуществления предусматривается, что элемент при извлечении обеспечивается со всеми его непосредственными и унаследованными свойствами. Кроме того, свойства элементов могут также расширяться за счет добавления новых свойств к существующим свойствам данного типа элемента. Такие «расширения» становятся затем истинными свойствами элемента, и подтипы данного типа элемента могут автоматически включать свойства расширений. Расширения могут также определяться как метаданные, связанные с файлом.
2. Папки и категории элементов
Группы элементов могут быть организованы в специальные элементы, называемые Папками элементов (которые не следует путать с папками файлов). Однако в отличие от большинства файловых систем, элемент может принадлежать более чем к одной Папке элементов, так что когда обращаются к элементу в одной Папке элементов и пересматривают его, к этому пересмотренному элементу можно обращаться непосредственно из другой папки элементов. По существу, хотя доступ к объекту может происходить из различных Папок элементов, то, к чему обращаются в текущий момент, в действительности является одним и тем же элементом. Однако Папка элементов не обязательно владеет всеми своими элементами-участниками, она может просто совместно владеть элементами во взаимосвязи с другими папками, так что удаление Папки элементов не обязательно приводит к удалению элемента.
Элементы также могут принадлежать к Категориям на основе общих описанных характеристик, таких как (а) Тип (или Типы) элемента, (b) конкретное непосредственное или унаследованное свойство (или свойства) и (с) конкретное значение (или значения), соответствующие свойству элемента. Например, элемент, содержащий конкретные свойства для информации персонального контакта, может автоматически принадлежать к Категории «Контакт», и любой элемент, имеющий свойства информации контакта, аналогичным образом будут автоматически принадлежать этой Категории. Аналогично, любой элемент, имеющий свойство местоположения со значением «Город Нью-Йорк», может автоматически принадлежать к Категории «Город Нью-Йорк».
Категории концептуально отличаются от Папок элементов в том, что в то время как элемент «Папки» может содержать элементы, которые не взаимосвязаны (т.е. без общей описанной характеристики), каждый элемент в Категории имеет общий тип, свойство или значение («общность), которая описана для этой Категории, и именно эта общность образует базу для ее отношения с другими элементами и между ними в Категории. Кроме того, в то время как членство элемента в конкретной Папке не является обязательным на основе конкретного аспекта данного элемента, для некоторых вариантов осуществления все элементы, имеющие общность, отнесенные по категории к данной Категории, могут автоматически стать членом Категории на уровне системы интерфейса аппаратных/программных средств. Концептуально, Категории могут также быть представлены как Папки виртуальных элементов, членство которых основано на результатах конкретного запроса (такого как в контексте базы данных), и элементы, которые удовлетворяют условиям этого запроса (определенного общностями Категории), должны, следовательно, образовывать членство Категории.
На фиг.4 показано структурное соотношение между элементами, Папками элементов и Категориями в различных вариантах осуществления изобретения. Множество элементов 402, 404, 406, 408, 410, 412, 414, 416, 418 и 420 являются членами различных Папок 422, 424, 426, 428 и 430 элементов. Некоторые элементы принадлежат более чем одной Папке элементов, например элемент 402 принадлежит к Папкам 422 и 424 элементов. Некоторые элементы, например элементы 402, 404, 406, 408, 410 и 412, являются также членами одной или более Категорий 432, 434 и 436, в то время как другие элементы, такие как 414, 416, 418 и 420, могут не принадлежать ни к одной Категории (хотя это весьма маловероятно в некоторых вариантах осуществления, где обладание любым свойством автоматически подразумевает членство в Категории, и, следовательно, элемент должен не иметь ни одного свойства, чтобы не быть членом никакой из категорий в таком варианте осуществления). В противоположность иерархической структуре папок, как Категории, так и Папки элементов имеют структуры, похожие на направленные графы, как показано. В любом случае элементы, Папки элементов и Категории имеют элементы (хотя и различные Типы элементов).
В противоположность файлам, папкам и директориям, элементы, Папки элементов и Категории согласно настоящему изобретению не являются характеристически «физическими» по своей природе, поскольку они не имеют концептуальных эквивалентов физическим контейнерам, и поэтому элементы могут существовать более чем в одном местоположении. Возможность для элемента существовать более чем в одном местоположении Папки элементов, а также организация их в Категории обеспечивает усовершенствованную и обогащенную степень возможностей манипулирования данными и структурирования хранения на уровне интерфейса аппаратных/программных средств, превышающую то, что доступно в настоящее время в уровне техники.
3. Отношения
Элементы также могут содержать реляционную информацию, которая позволяет определить отношения между двумя и более элементами. Отношения являются бинарными отношениями, где один элемент обозначен как источник, а другой элемент - как цель. Элемент источник и элемент цель связаны отношением. Отношения могут классифицироваться на отношения Вмещения и отношения Ссылки. Отношения вмещения контролируют время жизни элементов цели, в то время как отношения ссылки не обеспечивают семантики управления временем жизни.
Типы отношения Вмещения далее классифицируются на отношения Владения и Внедрения. Отношение владения контролирует время жизни цели посредством механизма отсчета ссылок. Отношения владения не содержат своих целей, но контролируют время жизни целей. Когда все отношения владения для элемента удалены, элемент удаляется. Отношения внедрения обеспечивают возможность моделирования составных элементов и могут быть представлены как отношения исключительного владения. Элемент может быть целью одного или более отношений владения, но элемент может быть целью точно одного отношения внедрения. Элемент, который является целью отношения внедрения, не может быть целью любых других отношений владения или внедрения. Внедренные отношения содержат свои цели и управляют временем жизни целей. Специалистам в данной области техники понятно, что одна цель может быть максимум в одном внедренном отношении, в то время как одна цель может быть во множестве отношений владения.
Отношения ссылки не контролируют время жизни элемента цели. Они могут быть обособленными - элемент цели может не существовать. Отношения ссылки могут быть использованы для моделирования ссылок на элементы где угодно в глобальном пространстве имен элементов (т.е. включая удаленные ЗУ данных).
Выборка элемента не означает автоматической выборки его отношений. Приложения или оболочка должны в явном виде запрашивать отношения элемента. Кроме того, модифицирование отношения не модифицирует элемент источника или цели; аналогичным образом, добавление отношения не влияет на элемент источника/цели. Отношения между двумя элементами могут декларироваться и сохраняться с элементом или оболочкой или приложением, через использование реляционной информации могут определять два элемента, которые связаны.
Отношение ссылки не управляет временем жизни элемента, на который оно ссылается. Более того, отношения ссылки не гарантируют существование цели и не гарантируют тип цели, как определено в декларации отношения. Это означает, что отношения ссылки могут быть обособленными. Также отношение ссылки может ссылаться на элементы в других ЗУ данных. Отношения ссылки могут представляться как принцип, сходный со связями (ссылками) на web-страницах.
По меньшей мере, в одном варианте осуществления платформа хранения согласно настоящему изобретению поддерживает упорядочение отношений. Упорядочение реализуется посредством свойства, именованного как «Порядок». На поле «Порядок» не накладывается ограничение уникальности. Порядок отношений с тем же самым значением свойства «порядок» не гарантирован, однако гарантируется, что они могут быть упорядочены после отношений с более низким значением поля «порядок» и перед отношениями с более высоким значением поля «порядок». Следует отметить, что свойство «Порядок» не находится в определении базового отношения. Напротив, это является внутренним свойством, которое сохраняется как часть отношения между источником и целью.
Как упомянуто выше, элемент может быть членом Папки элементов. В терминах Отношений элемент может иметь отношение с Папкой элементов. В различных вариантах осуществления настоящего изобретения некоторые отношения представлены Отношениями, существующими между элементами.
4. Расширяемость
Согласно фиг.3 платформа хранения обеспечена начальным набором схем 340, как описано выше. Кроме того, однако, по меньшей мере, в некоторых вариантах осуществления платформа хранения позволяет клиентам, включая независимых поставщиков программного обеспечения (ISV), создавать новые схемы 344.
С. Механизм базы данных
Как описано выше, ЗУ данных реализовано на механизме (процессоре) базы данных. В одном варианте осуществления процессор базы данных образован процессором реляционной базы данных, который реализует язык запросов SQL, таким как механизм на Microsoft SQL Server, с объектными реляционными расширениями. Однако понятно, что могут использоваться и другие механизмы базы данных. Реально, в дополнение к реализации концептуальной модели данных платформы хранения на механизме реляционной базы данных, она может быть реализована на других типах баз данных, например объектно-ориентированных и XML-базах данных.
III. Представление элементов пользователю
Элементы в универсальном ЗУ данных представляются пользователю посредством браузера оболочки. Такие браузеры хорошо известны в технике, как описано выше; браузер оболочки обеспечивает пользовательский интерфейс, позволяющий пользователю просматривать и взаимодействовать с интерфейсом аппаратных/программных средств.
А. Установленное по умолчанию представление отображения
Как отмечено выше, каждый элемент в универсальном ЗУ данных сохранен в соответствии с универсальной схемой данных. Эта схема содержит механизм для описания элементов, называемых ассоциациями типов. Каждая ассоциация типа имеет базовое представление в оболочке; путем сохранения элемента в соответствии с ассоциацией типа оболочка может отображать элемент для, по меньшей мере, базового или установленного по умолчанию представления отображения.
Ассоциация типа является свойством, связанным с элементом; при помещении данных в универсальное ЗУ данных одно или более свойств, связанных с данными, должны быть декларированы, чтобы определить, данными какого типа они являются. Эти свойства могут быть включены в качестве метаданных, связанных с данными. Оболочка имеет набор связей, установленных по умолчанию, которые представляют наиболее базовые и минимальные свойства, которые могут быть декларированы для элемента.
На фиг.5 представлен элемент 500. Элемент 500 сохранен в соответствии с универсальной схемой данных и включает в себя набор данных 502 элемента и набор метаданных 504, включающих декларации свойств. Данные 502 элемента могут быть любым набором данных, предназначенных для включения в ЗУ данных. Например, данные 502 элемента могут быть связаны с документом текстовой обработки. Метаданные 504 деклараций свойств включают, по меньшей мере, декларацию базового типа для элемента 500. Например, связь типа по умолчанию может быть типом «Документ», и метаданные 504 могут быть установлены так, что элемент 500 является элементом типа Документ. Поскольку оболочка включает в себя установленный по умолчанию вид отображения для каждой связи установленного по умолчанию типа, оболочка может отображать элемент 500 в соответствии с установленным по умолчанию видом отображения для типа Документ. Установленный по умолчанию вид отображения для типов Документы может, например, включать пиктограмму, используемую только с элементами типа Документ. Путем представления элемента текстовой обработки этой пиктограммой пользователь может быстро распознать, что элемент 500 является документом. Специалистам в данной области техники должно быть понятно, что для настоящего изобретения приемлемы любые разнообразные установленные по умолчанию связи типов и установленные по умолчанию атрибуты отображения.
В. Представление декорирования элемента
Помимо деклараций свойств, метаданные, связанные с элементом, могут включать в себя данные, указывающие на то, каким образом оболочка будет декорировать (расширять) представление элемента. Декорирование в данном случае можно представить себе как «подсказку» относительно того, как представить элемент пользователю. Эти метаданные могут быть сохранены в соответствии со схемой декорирования элемента. Схема декорирования элемента определяет представление декорирования элемента, которое оболочка может использовать, чтобы представить элемент. Например, данные декорирования элемента могут описывать наиболее важные декларированные свойства для элемента. Эти свойства «высокой значимости» могут быть наиболее желательными для представления в оболочке.
Элемент 500 может факультативно включать в себя данные 506 декорирования элемента, сохраненные в соответствии со схемой декорирования элемента. Для представления элемента 500 данные 506 декорирования элемента могут указывать набор полей представления, подходящих для представления элемента 500. Поля представления являются проекциями декларированных свойств, и общие поля представления могут включать в себя «заголовок», «автор», «дата создания» или «последняя редакция». Оболочка включает в себя набор стандартных полей представления, и независимые поставщики программного обеспечения (ISV) могут определять поля представления, которые подходят для представления их данных. При разработке новых типов элементов ISV могут либо отображать свойства элемента, которые они определяют, на поля представления оболочки, или они могут обеспечивать свои собственные поля представления.
Например, данные 502 элемента могут содержать данные песни. Набор декларированных свойств 506 может включать в себя такие свойства, как заголовок песни, автор, дата записи, альбом, продолжительность песни и другие декларации, подходящие для такого элемента, представляющего собой песню. Данные 506 декорирования элемента могут указывать на то, что поля представления «Заголовок», «Исполнитель» и «Альбом» должны отображаться пользователю при представлении элемента 500 в оболочке.
Данные 506 декорирования элемента могут описывать более точные элементы декорирования относительно данных 502 элемента, таких как текст, представляемый с декларируемым свойством. Например, одна из деклараций 504 свойств может указывать на значение битовой скорости для описания качества записи. Это свойство может быть сохранено как целочисленная БИТОВАЯ СКОРОСТЬ. Данные 506 декорирования элемента могут потребовать, чтобы битовая скорость отображалась, а также могут декорировать (расширять) это поле в виде «[БИТОВАЯ СКОРОСТЬ] килобайт в секунду». В этом способе поле битовой скорости соответственно декорировано, так что пользователь может легко понять смысл значения битовой скорости в поле представления.
Специалистам в данной области техники должно быть понятно, что данные 506 декорирования элемента и соответствующее им представление декорирования элемента могут требовать многообразие атрибутов представления. Декорирования элементов могут представлять любой аспект отображения, поддерживаемый оболочкой. Некоторыми общими другими декорированиями элементов являются, например, форматирование данных, установленный по умолчанию порядок сортировки, установленный по умолчанию размер пиктограммы. Дополнительно, данные 506 декорирования элементов могут описывать стандартный элемент управления для использования в отображении заданного элемента. Например, поле Рейтинг может использовать контроль рейтингов, который представляет рейтинг ряда звезд. Данные 506 декорирования элементов могут описывать задачи или команды для использования с элементом. Специалистам в данной области техники должно быть понятно, что термины «задача» и «операция» описывают некоторое действие, которое должно предприниматься по отношению к элементу, причем эти термины являются взаимозаменяемыми. Например, «правка» или «предварительный просмотр» могут являться соответствующими задачами/операциями, связанными с элементом. Оболочка может быть конфигурирована для запуска приложения для поддержки этих задач после сделанного пользователем выбора для выполнения действия по отношению к этому элементу.
Специалистам в данной области техники должно быть понятно, что декорирования элемента будут изменяться и расширяться с течением времени. Изобретение предусматривает, что когда реализуются новые декорирования элементов, новые элементы могут использовать эти декорирования, в то время как старые элементы будут продолжать отображаться надлежащим образом путем использования прежних атрибутов отображения, обеспечиваемых оболочкой.
Фиг.6 отображает блок-схему способа 600 для представления элементов пользователю в соответствии с изобретением. На этапе 602 процедура 600 обращается к универсальному ЗУ данных в ответ на запрос представить один или более элементов пользователю. На этапе 604 процедура рассматривает один или более элементов, выбранных для представления. Элементы, содержащие метаданные, сохраненные в соответствии со схемой декорирования элементов, представляются пользователю в соответствии с представлением декорирования элемента, как указано на этапе 606. Элементы, которые не содержат таких метаданных, представляются в соответствии с установленным по умолчанию представлением отображения, как указано на этапе 608. Специалистам в данной области техники должно быть понятно, что, как описано выше, эти схемы и представляемые виды могут включать в себя различные атрибуты отображений, которые могут быть использованы в представлении каждого элемента в ЗУ данных.
С. Представление оболочки
Как описано выше, представление декорирования элемента достаточно для полного представления данного элемента или однородного набора элементов, состоящего из элементов, имеющих сходные представления декорирования элементов. Для отображения элементов с различными схемами декорирования элементов оболочка обеспечивает схемы представления оболочки, которые представляют элементы в соответствии с представлением декорирования оболочки. Схема представления оболочки позволяет оболочке или ISV декларировать подходящие представления для заданных наборов гетерогенных данных.
Элементы, выбранные для отображения в представлении декорирования оболочки, могут включать в себя общую характеристику. Специалистам в данной области техники должно быть понятно, что широкое многообразие общих характеристик может быть приемлемым для представления декорирования оболочки. Например, схема представления оболочки может определить представление «рисунок», используемое для отображения общих и соответствующих полей и метаданных для всех известных типов рисунков (например, .TIF, .JPEG, .BMP, .TIFF и т.д.). Схема представления оболочки переопределяет конфликтующие атрибуты отображения для заданного представления декорирования элемента и представляет каждый вид рисунка в соответствии со схемой представления оболочки. В качестве другого примера, оболочка может обеспечить представление оболочки «Документ», которое оптимизировано относительно соответствующих столбцов и метаданных для элементов, формируемых типовыми приложениями продукций, таких как документы текстовой обработки, таблицы, базы данных, даже если декорирования элементов для каждого из этих элементов могут существенно изменяться относительно друг друга. Такое представление имеет значение за счет обеспечения общих свойств по всем из этих документов. Специалистам в данной области техники должно быть понятно, что когда инсталлируются более поздние типы документов, представление оболочки будет иметь возможность представлять эти новые элементы в соответствии с согласованным представлением оболочки, даже если данный новый тип и не учитывался, когда представление было впервые создано.
В дополнение к формированию полей представления соответственно заданному набору неоднородных элементов, схема представления оболочки может определять дополнительные атрибуты отображения. Например, состояние представления, включая свойства пиктограмм, размер панели предварительного просмотра, установленный по умолчанию порядок сортировки могут быть определены схемой представления оболочки. Схема представления также содержит декорирования свойств, такие как форматирование данных, для применения к различным столбцам (графам).
В случаях конфликтов схемы представления оболочки и схемы декорирования элементов схема представления оболочки действует для переопределения. В случаях, когда элемент отображения пропущен в схеме представления оболочки, представление оболочки будет возвращаться к представлению декорирования элемента для соответствующего отображения. Таким способом представление оболочки может «собрать» соответствующее представление, если данные отображения не были первоначально предусмотрены. Дополнительно, в одном варианте осуществления настоящего изобретения представление оболочки может сослаться на представления декорирования элемента для обеспечения не конфликтующего элемента декорирования. Например, представление оболочки может использовать метаданные «высокой значимости» из набора элементов, из которых они состоят, для формирования соответствующего набора столбцов и метаданные для отображения элементов.
Специалистам в данной области техники должно быть понятно, что схемы представления оболочки могут обеспечить широкое многообразие атрибутов отображения, и что для ISV может быть желательным обеспечить такие представления оболочек. Атрибуты отображения могут включать, без ограничения указанным, размер панели предварительного просмотра, метаданные для отображения на панели предварительного просмотра, настроенные элементы управления, а также задачи и команды, соответствующие представляемым элементам.
На фиг.7 показана блок-схема способа 700 представления элементов пользователю в соответствии с настоящим изобретением. На этапе 702 способ 700 предусматривает доступ к ЗУ данных в ответ на запрос для представления одного или боле элементов пользователю. На этапе 704 определяется, имеет ли каждый выбранный для представления элемент одну и ту же схему декорирования. Если все элементы имеют общую схему, то элементы представляются в соответствии с этой схемой, как показано на этапе 706. Если представляемые элементы включают в себя элементы, имеющие различные схемы отображения, или не имеют схем отображения элементов, то на этапе 708 набор элементов представляется согласно представлению декорирования оболочки. Как описано выше, такое представление оболочки может быть подходящим для представления неоднородных наборов элементов. На этапе 710 добавляется факультативная операция представления одного или более выбранных элементов с элементами отображения из представления декорирования элемента. Когда эти элементы отображения не вступают в конфликт с представлением декорирования оболочки, они могут усилить представление элементов оболочкой.
На фиг.8 показан пример диаграммы иерархии 800 схем представлений. Нижний уровень иерархии является схемой 802 представления элемента. Схема 802 представления элемента обеспечивает базовое отображение, необходимое для показа элемента, или, если не обеспечена никакая схема представления, то обеспечивает отображение по умолчанию. Схемы, находящиеся выше схемы 802 представления элемента, могут обращаться к ее элементам отображения, если необходимо.
Схема 804 представления оболочки находится над схемой 802 представления элемента. Как описано выше, схема представления оболочки может быть использована для отображения набора элементов с различным представлениями элементов. Схема отображения оболочки определяет задачи 806, характеристики 808 панели предварительного просмотра, столбцы 810 и декорирования 812, которые используются для отображения элементов в соответствии с представлением 804 оболочки. Представление оболочки может обращаться к схеме 802 представления элемента для использования с представлением 804 оболочки. Дополнительно, в представлении оболочки могут находиться пользовательские настройки 814 представления. Эти настройки характеризуют желательный для пользователя формат представления для элементов оболочки. Специалистам в данной области техники должно быть понятно, что любое число атрибутов отображения может быть определено в схеме отображения, и что пользователю может быть предоставлено множество опций и элементов управления в отношении настроек отображения.
D. Представление отображения проводника
Оболочка также может быть конфигурирована для представления элементов в соответствии с представлением отображения проводника. «Проводник» может относиться к приложению сохранения и может обеспечиваться оболочкой или поставщиками программного обеспечения (ISV). В одном варианте осуществления проводник может создаваться для обеспечения целостного опыта, который помогает пользователям обращаться с большим набором элементов. Например, проводник может позволить пользователю просматривать, запрашивать, осуществлять навигацию, запуск задач, организовывать выбранные элементы в ЗУ данных. Термин «проводник» должен обозначать не только местоположение, где находятся отображаемые элементы, и в связи с этим взаимозаменяемым образом с «проводником» могут быть использованы такие термины, как «центр действий», «визуализатор» и «библиотека» для описания приложения сохранения в соответствии с настоящим изобретением.
Фиг.9 показывает приведенную для примера иерархию 900 схем проводника. Нижним уровнем иерархии является схема 902 представления элемента. Схема 902 представления элемента обеспечивает базовое отображение, требуемое для представления элемента, и схема 904 представления проводника может полагаться на него или обращаться к его элементам отображения, если это необходимо.
Схема представления проводника включает в себя схему 906 представления оболочки и декорирования 908 проводника. Декорирования 908 проводника обеспечивают декорирование проводника в целом и обеспечивают элементы отображения, такие как отдельные цвета и элементы маркировки. Такие декорирования 908 проводника существуют среди различных представлений, которые обеспечивает проводник. Специалистам в данной области техники должно быть понятно, что широкое многообразие атрибутов отображения может соответствовать декорированиям 908 проводника. Например, запросы данных или задачи/операции, связанные с элементами проводника, могут быть подходящими для отображения с использованием проводника. Отображаемые задачи предпочтительно будут связываться с приложением, способным выполнить задачу.
Схема представления проводника может факультативно включать в себя схему 906 представления оболочки или множество схем представления оболочки. Схема 906 представления оболочки может быть конфигурирована для обеспечения представления оболочки для поднабора элементов проводника. Например, проводник может конфигурироваться для отображения элементов песен для пользователя. Первая схема представления оболочки может быть включена для обеспечения отображения альбомов, и вторая схема представления оболочки может быть включена для обеспечения отображения дорожек песен. Таким способом оба типа элементов будут иметь соответствующие представления в рамках проводника. Как описано выше, использование представлений оболочки связано с представлением набора элементов, что, факультативно, может совместно использовать общие характеристики.
Проводник может также основываться на представлениях оболочки, включенных в оболочку. Если элементы, выбранные для представления в рамках проводника, не поддерживаются представлениями оболочки, включаемыми проводником, оболочка может обеспечить соответствующее представление оболочки для использования проводником. Аналогичным образом, как описано выше, проводник также может обращаться к представлению отображения элемента или установленному по умолчанию представлению элемента, обеспечиваемому оболочкой. Эта функциональность гарантирует, что любой элемент, который может быть отображен оболочкой, также может быть отображен в рамках проводника. Проводник может быть конфигурирован таким образом, чтобы полагаться на схемы отображения, обеспечиваемые оболочкой, или основываться на них, например, чтобы обеспечить отображение непредвиденных данных.
На фиг.10 представлен способ 1000 для представления элементов на экранном отображении, обеспечиваемом проводником, в соответствии с настоящим изобретением. На этапе 1002 способ 1000 предусматривает обращение к ЗУ данных и на этапе 1004 выбор элементов для отображения проводником. Выбор элементов проводника может основываться на учете деклараций элементов, также называемых записями полей. Как описано выше, элементы в ЗУ данных могут содержать информацию свойств. Эта информация декларируется, когда элемент помещается в ЗУ данных, и может обновляться в течение времени существования элемента. Такие декларации могут представлять собой рассмотренные записи полей, соответствующие набору полей свойств. Например, записи в поле свойства «автор» могут содержать информацию авторства для данного элемента.
Может быть желательным представлять элементы, совместно использующие одну или более записей полей. Например, может быть желательно, чтобы проводник включил каждый элемент, созданный конкретным лицом. Путем рассмотрения записей для поля «автор» проводник может выбрать такие элементы проводника, которые созданы данным конкретным лицом, из ЗУ данных. Специалистам в данной области техники должно быть понятно, что механизм таких запросов в базы данных хорошо известен.
На этапе 1006 осуществляется определение того, включает ли проводник представление оболочки, которое пригодно для представления элемента проводника. Если такого подходящего представления оболочки не найдено в проводнике, то способ 1008 использует представление, содержащееся в оболочке, как указано на этапе 1008. Если надлежащее представление оболочки включено в проводник, то способ 1000 на этапе 1010 использует это представление оболочки для отображения элемента. На этапе 1012 выполняется факультативный этап использования элементов декорирования из схемы отображения элемента. Как описано выше, проводник может использовать неконфликтные декорирования из схемы представления элемента для улучшения представления элемента. На этапе 1014 элемент проводника представляется пользователю в соответствии с представлениями оболочки и элементов. Свойства декорирования проводника представляются на этапе 1016. Эти свойства могут представлять широкое разнообразие атрибутов отображения и могут включать запросы данных или задачи, связанные с элементами проводника.
Е. Разработка проводника
Проводники могут быть созданы для широкого разнообразия типов элементов. В одном варианте осуществления изобретения проводники могут определяться с минимальным программированием или вообще без него. Путем обеспечения возможности создания проводников ориентированным на данные способом можно повысить простоту разработки при обеспечении согласованных проводников по внешнему представлению и восприятию.
В некоторых вариантах осуществления проводники могут допускать ограничения по тем типам (включая расширения элементов и расширения файлов) элементов, которые они могут представлять, или проводники могут допускать использование всех типов. Также проводники могут осуществлять выбор типов элементов с конкретным набором расширений элементов. Например, Проводник Элемента «Легальный» может отображать все элементы с присоединением расширения «LegalItemExtension» (Расширение Элемента «Легальный»). Проводники могут осуществить выбор, разрешающий элементы определенного типа и любое расширение файла, которое отображается на такой тип. Например, Проводник Элемента «Музыка» может показать все расширения музыкальных файлов, такие как mp3 или wma. Кроме того, проводники могут осуществить выбор, разрешающий только элементы определенного набора расширений файла. Если проводник ограничен определенным набором типов, то элементы других типов не могут быть сохранены или просмотрены в данном проводнике. Проводники могут переопределить связи типов для типов, которые они допускают, и проводники могут осуществить выбор, селективно отменяющий переопределения, или могут осуществить выбор, отменяющий добавление новых команд. Кроме того, проводники могут принимать решения, следует ли им разрешить конечным пользователям переопределять связи типов в проводнике.
С учетом описанного выше, специалистам в данной области техники должно быть понятно, что за счет обеспечения ориентированных на данные методов разработки для создания проводника для использования в среде, основанной на типах элементов, проводники могут быть определены декларативным способом и без использования заказного (настроенного) кода.
Фиг.11 отображает способ 1100 для представления элементов в соответствии со схемой отображения проводника. На этапе 1102 способ 1100 предусматривает выбор желательной записи поля. Как описано выше, эта желательная запись поля может соответствовать декларированному свойству, связанному с элементом. Например, проводник «Фотоальбом» может иметь желательную запись поля, требующую включения элементов, содержащих данные изображений.
На этапе 1104 определяется схема отображения проводника. Эта схема отображения может включать в себя схему представления оболочки и декорирования проводника. Декорирования проводника обеспечивают декорирование проводника в целом и обеспечивают элементы отображения, такие как отдельные цвета и элементы маркировки. Эти декорирования проводника существуют среди различных представлений, которые обеспечивает проводник. Широкое разнообразие атрибутов отображения может соответствовать декорированиям проводника. Например, запросы данных или задачи/операции, связанные с элементами проводника, могут быть подходящими для отображения с использованием проводника. Отображаемые задачи предпочтительно должны быть связаны с приложением, способным выполнить задачу. Схема представления проводника может включать в себя схему представления оболочки или множество схем представления оболочки. Схема представления оболочки может конфигурироваться для обеспечения представления оболочки для поднабора элементов проводника.
На этапе 1106 способ 1100 предусматривает обращение к ЗУ данных для выбора элементов проводника. Элементы проводника связаны с желательной записью поля. Специалистам в данной области техники должно быть понятно, что выбор таких элементов в базе данных хорошо известен в технике. Кроме того, специалистам в данной области техники должно быть понятно, что разработчики могут создать проводники, конфигурированные для такого взаимодействия. Разработка проводников, имеющих возможность доступа к ЗУ данным, предусматривается настоящим изобретением.
На этапе 1108 элементы проводника отображаются в соответствии со схемой отображения проводника. Схема отображения проводника описана выше, и это отображение может также включать в себя взаимодействие с браузером оболочки. Например, оболочка может обеспечивать одно или более представлений оболочки. Кроме того, элементы декорирования элементов из схемы декорирования элементов могут быть использованы для улучшения представления элементов проводника.
Специалистам в данной области техники должно быть понятно, что приложение хранения проводника может рассматриваться как приложение и/или расширение браузера оболочки. Следовательно, приведенное выше описание соответствует обеим характеристикам изобретения. В качестве приложения программа проводника может включать в себя модуль взаимодействия оболочки, который конфигурирован для взаимодействия с браузером оболочки. Такое взаимодействие позволяет программе осуществлять информационный обмен с оболочкой и позволяет программному обеспечению работать вместе с представлением элементов. Модуль взаимодействия оболочки может способствовать доступу к ЗУ данным и может обеспечивать атрибуты отображения. Такое взаимодействие между приложением и оболочкой хорошо известно в технике.
F. Представление связанных элементов
Настоящее изобретение может также отображать связанные элементы в ЗУ данных пользователю. Как описано выше, элементы в ЗУ данных могут включать в себя элементы, имеющие одно или более декларированных свойств. Элемент может иметь декларированные взаимосвязи, которые объясняют другие элементы в ЗУ данных, которые совместно используют взаимосвязь. Например, элемент, содержащий адрес электронной почты, может декларировать взаимосвязь с элементом, содержащим другую контактную информацию, для владельца адреса электронной почты. Оболочка может использовать эту декларированную взаимосвязь для представления другой контактной информации по запросу пользователя. Оболочка также может определять взаимосвязи путем рассмотрения декларированных свойств элемента. Например, набор документов может быть связан, если они совместно используют одно и то же свойство; элементы с расширением «LegalItemExtension» (Расширение Элемента «Легальный») могут быть связаны, если общее значение сохранено как часть расширения. Такая взаимосвязь может быть определена запросом данных, как хорошо известно в технике.
Фиг.12 иллюстрирует способ 1200 для представления связанных элементов в соответствии с настоящим изобретением. На этапе 1202 способ 1200 предусматривает доступ к ЗУ данных, и на этапе 1204 определяются взаимосвязи между элементами в ЗУ данных. Как описано выше, такое определение использует декларированные свойства, включенные для элемента. Это определение может осуществляться в ответ на пользовательский ввод. Например, элемент, имеющий набор декларированных характеристик элемента, может быть отображен для пользователя. Характеристика элемента и реляционная информация может быть отображена вместе с элементом. Пользователь может выбрать одну из характеристик и ввести запрос для просмотра других элементов, совместно использующих эту характеристику элемента. На этапе 1206 способ 1200 представляет связанные элементы пользователю. Такое представление может включать в себя схемы отображения, известные в технике.
Альтернативные варианты и реализации настоящего изобретения будут очевидны для специалистов в данной области техники на основе изучения описания вместе с чертежами. Соответственно, объем изобретения определяется формулой изобретения, а не изложенным выше описанием.