Интерфейс программирования для компьютерной платформы
Иллюстрации
Показать всеИзобретение относится к интерфейсу прикладного программирования для сетевой платформы, на которой разработчики могут создавать веб-приложения и веб-службы. Техническим результатом изобретения является повышение эффективности рабочих характеристик интерфейса программирования. Технический результат достигается благодаря тому, что интерфейс программирования включает в себя различные функциональные возможности, а именно первую группу услуг, относящихся к повторно используемым элементам управления пользовательского интерфейса, вторую группу услуг, относящихся к диалогам пользовательского интерфейса и мастерам пользовательского интерфейса, третью группу услуг, относящуюся к расширению функциональных возможностей пользовательского интерфейса, и четвертую группу услуг, относящуюся к расширению функциональных возможностей рабочего стола пользовательского интерфейса. 2 н. и 9 з.п. ф-лы, 16 ил.
Реферат
Область техники
Настоящее изобретение относится к программному обеспечению и к разработке такого программного обеспечения. В частности, настоящее изобретение относится к интерфейсу программирования, который облегчает использование программной платформы прикладными программами и аппаратными средствами компьютера.
Краткое описание прилагаемых компакт-дисков
К данному описанию изобретения прилагается комплект из трех компакт-дисков, на которых хранится набор инструментальных средств для разработки программного обеспечения (НРПО) для операционной системы Microsoft® Windows® под кодовым названием «Longhorn». НРПО содержит документацию для операционной системы Microsoft® Windows® под кодовым названием «Longhorn». К данному описанию изобретения также прилагается второй экземпляр каждого из данных трех компакт-дисков.
Первый компакт-диск комплекта из трех компакт-дисков (КД) (КД 1 из 3) включает в себя папку файлов с именем «lhsdk», которая была создана 22 октября 2003 г.; размер ее составляет 586 Мбайт, она содержит 9692 подпапок и содержит 44 292 подфайла. Второй компакт-диск комплекта из трех компакт-дисков (КД 2 из 3) включает в себя папку файлов с именем «ns», которая была создана 22 октября 2003 г.; размер ее составляет 605 Мбайт, она содержит 12628 подпапок и она содержит 44934 подфайла. Третий компакт-диск комплекта из трех компакт-дисков (КД 3 из 3) включает в себя папку файлов с именем «ns», которая была создана 22 октября 2003 г.; размер ее составляет 575 Мбайт, она содержит 9881 подпапку и она содержит 43630 подфайлов. Файлы на каждом из данных трех компакт-дисков могут исполняться на вычислительном устройстве, работающем в операционной системе Windows® (например, персональный компьютер компании IBM или эквивалентный ему), которое исполняет операционную систему с торговой маркой Windows® (например, Windows® NT, Windows® 98, Windows® 2000, Windows® XP и т.д.). Файлы на каждом компакт-диске данного комплекта из трех компакт-дисков, таким образом, включаются этим в качестве ссылки.
Каждый компакт-диск комплекта из трех компакт-дисков сам по себе представляет собой компакт-диск с однократной записью, и он соответствует стандарту ISO 9660. Содержимое каждого компакт-диска комплекта из трех компакт-дисков находится в соответствии с американским стандартным кодом для обмена информацией (АСКОИ, ASCII).
Предшествующий уровень техники
Раньше программное обеспечение компьютеров можно было классифицировать как программное обеспечение «операционных систем», или «прикладное» программное обеспечение. В общих чертах, прикладная программа представляет собой программное обеспечение, предназначенное для выполнения конкретной задачи для пользователя компьютера, такой как решение математического уравнения или поддержка обработки текста. Операционная система представляет собой программное обеспечение, которое координирует и управляет аппаратными средствами компьютера. Целью операционной системы является обеспечение доступности ресурсов компьютера для программиста прикладных программ, в то же самое время скрывая сложность, необходимую для фактического управления аппаратными средствами.
Операционная система делает ресурсы доступными посредством функций, которые вместе известны как интерфейс прикладного программирования, или ИПП (API). Термин ИПП также используется с ссылкой на единственную одну из данных функций. Функции обычно группируются на основе того, какой ресурс или службу они предоставляют программисту прикладных программ. Прикладное программное обеспечение запрашивает ресурсы посредством вызова отдельных функций ИПП. Функции ИПП также служат в качестве средства, посредством которого сообщения и информация, предоставляемые операционной системой, передаются обратно прикладному программному обеспечению.
В дополнение к изменениям в аппаратных средствах другим фактором, стимулирующим эволюцию программного обеспечения операционных систем, было желание упростить и ускорить разработку прикладного программного обеспечения. Разработка прикладного программного обеспечения может представлять собой приводящую в уныние задачу, иногда требующую годы времени работы разработчика для создания сложной программы с миллионами строк кода. Для популярной операционной системы, такой как различные версии операционной системы Microsoft Windows®, разработчики прикладного программного обеспечения пишут тысячи различных прикладных программ каждый год, которые используют операционную систему. Требуется согласованная и удобная база операционной системы для поддержки такого большого количества разработчиков разнообразных прикладных программ.
Часто разработку прикладного программного обеспечения можно упростить выполнением операционной системы более сложной. Т.е. если функция может использоваться несколькими различными прикладными программами, то может быть лучшим решением написать ее один раз для включения в операционную систему, чем требуя того, чтобы множество разработчиков программного обеспечения писали ее множество раз для включения во множество различных прикладных программ. Таким образом, если операционная система поддерживает широкий диапазон общих функциональных возможностей, требуемых рядом прикладных программ, то можно достичь существенной экономии расходов и времени на разработку прикладного программного обеспечения.
Независимо от того, где проводится граница между операционной системой и прикладным программным обеспечением, ясно, что для полезной операционной системы ИПП между операционной системой и аппаратными средствами компьютера и прикладным программным обеспечением также важен, как и эффективная внутренняя работа самой операционной системы.
В течение последних нескольких лет всеобщее принятие Интернета и сетевой технологии в целом изменило общую картину для разработчиков программного обеспечения компьютеров. Традиционно, усилия разработчиков программного обеспечения были обращены на разработку прикладных программ для автономных настольных компьютеров, или компьютеров на базе локальной сети (ЛС), которые были соединены с ограниченным количеством других компьютеров при помощи локальной сети (ЛС). Такие прикладные программы обычно упоминались как «упакованные в термоусадочную пленку» продукты, так как программное обеспечение предлагалось и продавалось в упаковке из термоусадочной пленки. Прикладные программы использовали хорошо определенный ИПП для доступа к лежащей в основе операционной системе компьютера.
Так как Интернет эволюционировал и приобрел широко распространенное признание, индустрия начала признавать мощность хостирующих прикладных программ на различных сайтах во Всемирной паутине (или просто Сети). В сетевом мире клиенты с любого узла могут представить запросы на серверные прикладные программы, хостированные в различных местоположениях сети, и получить обратно ответы за доли секунды. Эти прикладные программы Сети (веб-приложения), однако, обычно разрабатывались с использованием той же платформы операционной системы, что первоначально была разработана для автономных вычислительных машин или компьютеров в локальной сети. К сожалению, в некоторых случаях данные прикладные программы не переходят адекватно в распределенный режим вычислений. Лежащая в основе платформа просто не была построена с целью поддержки неограниченного количества соединенных между собой компьютеров.
Для того чтобы обеспечить переход к распределенной вычислительной среде, вводимой Интернетом, корпорация Microsoft разработала сетевую программную платформу, известную как «.NET» Framework (читается как «Dot Net»). Microsoft®.NET представляет собой программное обеспечение для осуществления связи людей, информации, систем и устройств. Платформа позволяет разработчикам создавать веб-службы, которые исполняются в Интернете. Данный динамический переход сопровождался набором функций ИПП для .NET™ Framework корпорации Microsoft.
Так как использование .NET™ Framework становится все более распространенным, были определены пути повышения эффективности и/или рабочих характеристик платформы. Изобретатели разработали уникальный набор функций интерфейса программирования, делающий возможным такую повышенную эффективность и/или рабочие характеристики.
Сущность изобретения
В данной заявке описывается интерфейс программирования для компьютерной платформы.
В соответствии с некоторыми аспектами интерфейс программирования может включать в себя одну или несколько из следующих групп служб: первая группа служб, относящаяся к повторно используемым элементам управления пользовательского интерфейса, вторая группа служб, относящаяся к диалогам пользовательского интерфейса и мастерам пользовательского интерфейса, третья группа служб, относящаяся к расширению функциональных возможностей пользовательского интерфейса, и четвертая группа служб, относящаяся к расширению функциональных возможностей “рабочего стола” пользовательского интерфейса.
Краткое описание чертежей
Одинаковые позиции используются на чертежах для ссылки на аналогичные признаки.
На фиг.1 представлена сетевая архитектура, в которой клиенты получают доступ к веб-службам через Интернет, используя обычные протоколы.
На фиг.2 представлена блок-схема архитектуры программного обеспечения для сетевой платформы, которая включает в себя интерфейс прикладного программирования (ИПП).
На фиг.3 представлена блок-схема уникальных пространств имен, поддерживаемых ИПП, а также классы функций различных функций ИПП.
На фиг.4 представлена блок-схема примерного компьютера, который может исполнять всю или часть архитектуры программного обеспечения.
На фиг.5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 и 16 представлены различные примерные осуществления интерфейса программирования.
Подробное описание
Настоящее описание относится к интерфейсу программирования, такому как интерфейс прикладного программирования (ИПП), для сетевой платформы, на которой разработчики могут создавать веб-приложения и веб-службы. Более конкретно, описывается примерный ИПП для операционных систем, которые используют сетевую платформу, такую как .NET™ Framework, созданную корпорацией Microsoft. .NET™ Framework представляет собой программную платформу для веб-служб и веб-прикладных программ (веб-приложений, выполняемых в распределенной вычислительной среде. Она представляет следующее поколение обработки данных в Интернет, используя открытые стандарты передачи данных для передачи данных между слабосвязанными веб-службами, которые работают совместно для выполнения конкретной задачи.
В описанных осуществлениях сетевая платформа использует расширяемый язык разметки (РЯР, XML), открытый стандарт для описания данных. РЯР управляется консорциумом «Всемирной паутины» (КВП, W3C). РЯР используется для определения элементов данных на веб-странице и документах типа «бизнес-бизнес». РЯР использует такую же структуру тегов, что и язык разметки гипертекста (ЯРГТ, HTML); однако, тогда как ЯРГТ определяет, как элементы отображаются, РЯР определяет, что данные элементы содержат. ЯРГТ использует предварительно определенные теги, а РЯР делает возможным определение тегов разработчиком страницы. Таким образом, фактически, можно определить любые элементы данных, позволяя веб-страницам функционировать как записи баз данных. Посредством использования РЯР и других открытых протоколов, таких как простой протокол доступа к объектам (ППДО, SOAP), сетевая платформа делает возможным интеграцию широкого спектра услуг, которые могут быть адаптированы к потребностям пользователя. Хотя варианты выполнения, описанные в настоящей заявке, описываются в отношении РЯР и других открытых стандартов, они не требуются для работы заявляемого изобретения. Другие в равной степени пригодные технологии достаточны для выполнения изобретений, описанных в настоящей заявке.
Используемый в настоящей заявке признак “интерфейс прикладного программирования” или ИПП (API)) включает в себя традиционные интерфейсы, которые используют вызовы метода или функции, а также удаленные вызовы (например, прокси-объект, фиктивное отношение) и вызовы ППДО/РЯР.
Примерная сетевая среда
На фиг.1 представлена сетевая среда 100, в которой может быть реализована сетевая платформа, такая как .NET™ Framework. Сетевая среда 100 включает в себя представительные веб-службы 102(1), … 102(N), которые предоставляют службы, к которым можно получить доступ по сети 104 (например, Интернет). Веб-службы, обозначаемые в целом позицией 102, представляют собой программируемые прикладные компоненты, которые являются повторно используемыми и взаимодействуют программным путем по сети 104, обычно при помощи веб-протоколов промышленного стандарта, таких как РЯР, ППДО, протокол передачи информации в Интернет приложений (ПБП, WAP), протокол передачи гипертекста (ППГТ, HТTP) и простой протокол электронной почты (ППЭП, SMTP), хотя также могут использоваться другие средства взаимодействия с веб-службами по сети, такие как удаленный вызов процедуры (УВП, RPC) или технология типа брокера объектных запросов. Веб-служба может быть самоописываемой и часто определяется на языке форматов и упорядочения сообщений.
Веб-службы 102 являются доступными непосредственно для других служб (как представлено линией 106 передачи данных) или прикладной программы, такой как веб-прикладная программа 110 (как представленная линиями 112 и 114 передачи данных). Каждая веб-служба 102 изображается как включающая в себя один или несколько серверов, которые исполняют программное обеспечение для обработки запросов на конкретные службы. Такие службы часто поддерживают базы данных, в которых хранится информация для предоставления в ответ запросчикам. Веб-службы могут конфигурироваться для выполнения любой одной из многочисленных других служб. Примеры веб-служб включают в себя верификацию регистрационного имени, уведомление, хранение базы данных, котировки акций, каталоги местоположения, отображение, музыка, электронный бумажник, календарь/планировщик, списки телефонов, новости и информация, игры, продажа и покупка билетов и т.д. Веб-службы могут объединяться друг с другом и с другими прикладными программами для построения интеллектуальных интерактивных практических разработок.
Сетевая среда 100 также включает в себя представительные (примерные) клиентские устройства 120 (1), 120 (2), 120 (3), 120 (4) … 120 (М), которые используют веб-службы 102 (как представлено линией 122 передачи данных), и/или веб-прикладную программу 110 (как представлено линиями 124, 126 и 128 передачи данных). Клиенты могут передавать данные друг другу, используя также стандартные протоколы, как представлено примерной линией 130 передачи данных РЯР между клиентами 120 (3) и 120 (4).
Клиентские устройства, обозначенные в целом позицией 120, могут быть выполнены многими различными путями. Примеры возможных осуществлений клиента включают в себя, без ограничения, портативные компьютеры, стационарные компьютеры, планшетные персональные компьютеры, телевизоры/телевизионные приставки, беспроводные устройства связи, персональные цифровые помощники, игровые консоли, принтеры, фотокопировальные устройства и другие интеллектуальные устройства.
Веб-приложение 110 представляет собой прикладную программу, предназначенную для выполнения на сетевой платформе, и может использовать веб-службы 102 при обработке и обслуживании запросов от клиентов 120. Веб-приложение 110 состоит из одной или нескольких прикладных программ 130, которые выполняются поверх инфраструктуры 132 программирования, которые исполняются на одном или нескольких серверах 134 или других компьютерных системах. Отметьте, что часть веб-приложение 110 может фактически постоянно находиться на одном или нескольких клиентах 120. Альтернативно, веб-приложение 110 может координироваться с другим программным обеспечением на клиентах 120 для фактического выполнения своих задач.
Инфраструктура 132 программирования представляет собой структуру, которая поддерживает прикладные программы и службы, разработанные разработчиками прикладных программ. Она позволяет производить многоязыковую разработку и “бесшовную” (гладкую) интеграцию посредством поддержки многочисленных языков. Она поддерживает открытые протоколы, такие как SOAP, и инкапсулирует лежащую в основе операционную систему и службы объектной модели. Инфраструктура обеспечивает надежную и безопасную среду исполнения программ для многочисленных языков программирования и предлагает безопасные, интегрированные библиотеки классов.
Инфраструктура 132 представляет собой многоуровневую архитектуру, которая включает в себя уровень 142 интерфейса прикладного программирования (ИПП, API), уровень 144 единой среды выполнения программ на различных языках (CLR) и уровень 146 операционной системы/служб. Данная многоуровневая архитектура делает возможным производить обновление и модификацию различных уровней без воздействия на другие части инфраструктуры. Общая языковая спецификация (ОЯС, CLS) 140 позволяет разработчикам различных языков писать код, который может обращаться к лежащим в основе функциональным возможностям библиотеки. Спецификация 140 функционирует в качестве контракта между разработчиками языка и разработчиками библиотеки, который может использоваться для того, чтобы содействовать функциональной совместимости языков. Придерживаясь ОЯС, библиотеки, написанные на одном языке, могут быть непосредственно доступны кодовым модулям, написанным на других языках, достигая “бесшовной” интеграции между модулями программ, написанными на одном языке, и модулями программ, написанными на другом языке. Одно примерное подробное осуществление ОЯС описывается в стандарте Европейской Ассоциации производителей компьютеров (ЕАПК), созданном участниками технического комитета ТС39/TG3 ЕАПК. Авторы предлагают посетить веб-сайт ЕАПК по адресу www.ecma.ch.
Уровень 142 API представляет группы функций, которые прикладные программы 130 могут вызвать для доступа к ресурсам и службам, предоставляемым уровнем 146. Раскрывая функции API для сетевой платформы, разработчики прикладных программ могут создавать веб-прикладные программы для распределенных вычислительных систем, которые обеспечивают полное использование сетевых ресурсов и других веб-служб без необходимости понимания обеспечения межсетевого обмена, как данные сетевые ресурсы фактически работают или делаются доступными. Кроме того, веб-прикладные программы могут быть написаны на любом количестве языков программирования и транслироваться в промежуточный язык, поддерживаемый единой средой выполнения программ 144, и включаться как часть общей языковой спецификации 140. Таким образом, уровень 142 API может предоставить методы для широкого и разнотипного многообразия прикладных программ.
Кроме того, инфраструктура 132 может конфигурироваться для поддержки вызовов API, размещаемых удаленными прикладными программами, исполняющимися удаленно от серверов 134, которые хостируют эту инфраструктуру. Примерные прикладные программы 148 (1) и 148 (2), постоянно находящиеся на клиентах 120 (3) и 120 (М) соответственно, могут использовать функции API, выполняя вызовы прямо, или косвенно, к уровню 142 API по сети 104.
Инфраструктура также может выполняться на клиентах. Клиент 120 (3) представляет ситуацию, когда инфраструктура 150 выполняется на клиенте. Данная инфраструктура может быть идентична инфраструктуре 132 на основе сервера или модифицироваться под потребности клиента. Альтернативно, инфраструктура на основе клиента может концентрироваться в том случае, когда клиент представляет собой устройство с ограниченной или специализированной функцией, такое как сотовый телефон, персональный цифровой помощник, карманный компьютер или другое устройство передачи данных/вычислительное устройство.
Инфраструктура программирования разработчиков
На фиг.2 более подробно представлена инфраструктура 132 программирования. Уровень 140 общей языковой спецификации (CLS) поддерживает прикладные программы, написанные на многочисленных языках 130 (1), 130 (2), 130 (3), 130 (4) … 130 (K). Такие языки прикладных программ включают в себя Visual Basic, С++, C#, Кобол, Jscript, Perl, Eiffel, Python и т.д. Общая языковая спецификация 140 определяет поднабор особенностей или правил об особенностях, которые, если ими руководствоваться, позволяют устанавливать связь между различными языками. Например, некоторые языки не поддерживают данный тип (например, тип «int*»), который иным образом может поддерживаться единой средой 144 выполнения программ. В этом случае общая языковая спецификация 140 не включает в себя данный тип. С другой стороны, типы, которые поддерживаются всеми или большинством языков (например, тип «int[]»), включаются в общую языковую спецификацию 140, так что разработчики библиотек свободно используют его, и гарантируется, что языки смогут его обработать. Данная возможность связи приводит к “бесшовной” интеграции между модулями программ, написанными на одном языке, и модулями программ, написанными на другом языке. Так как различные языки особенно хорошо подходят к конкретным задачам, “бесшовная” интеграция между языками позволяет разработчику выбрать определенный язык для конкретного модуля программы с возможностью использовать данный модуль программы с модулями, написанными на других языках. Единая среда 144 выполнения программ позволяет получить “бесшовную” многоязыковую разработку, с межъязыковым наследованием, и обеспечивает надежную и безопасную среду исполнения программ для многочисленных языков программирования. Для дополнительной информации по общей языковой спецификации 140 и единой среде 144 выполнения программ внимание обращается на совместно рассматриваемые заявки, названные «Method and System for Compiling Multiple Languages», поданную 6/21/2000 (номер 09/598105), и «Unified Data Type System and Method», поданную 7/10/2000 (номер 09/613289), которые включаются в качестве ссылки.
Инфраструктура 132 инкапсулирует операционную систему 146(1) (например, операционные системы под торговой маркой Windows®) и службы 146(2) объектной модели (например, компонентная объектная модель (КОМ) или распределенная КОМ). Операционная система 146(1) обеспечивает обычные функции, такие как управление файлами, уведомление, обработка событий, пользовательские интерфейсы (например, управление окнами, меню, диалоги и т.д.), безопасность, аутентификация, верификация, процессы и потоки, управление памятью и т.д. Службы 146(2) объектной модели обеспечивают сопряжение с другими объектами для выполнения различных задач. Вызовы, сделанные на уровень 142 ИПП (API), передаются на уровень 144 общеязыковой исполняющей среды для локального исполнения операционной системой 146(1) и/или службами 146(2) объектной модели.
ИПП 142 группирует функции ИПП в многочисленные пространства имен. Пространства имен, по существу, определяют коллекцию классов, интерфейсов, делегатов, перечислений и структур, которые вместе называются «типами», которые обеспечивают специфический набор относящихся функциональных возможностей. Класс представляет данные с распределением в управляемой куче, которые имеют семантику присваивания ссылки. Делегат представляет собой объектно-ориентированный указатель на функцию. Перечисление представляет собой особый вид размерного типа, который представляет именованные константы. Структура представляет данные со статическим распределением, которые имеют семантику присваивания значения. Интерфейс определяет контракт, который другие типы могут выполнять.
Посредством использования пространств имен разработчик может организовать набор типов в иерархическое пространство имен. Разработчик может создать многочисленные группы из набора типов, причем каждая группа содержит по меньшей мере один тип, который раскрывает (имеет) логически связанные функциональные возможности. В примерном осуществлении ИПП 142 организуется для включения трех корневых пространств имен. Необходимо отметить, что, хотя только три корневые пространства имен изображены на фиг.2, дополнительные корневые пространства имен также могут быть включены в ИПП 142. Тремя корневыми пространствами имен, изображенными в ИПП 142, являются: первое пространство 200 имен для подсистемы представления (которое включает в себя пространство 202 имен для оболочки пользовательского интерфейса), второе пространство 204 имен для веб-служб и третье пространство 206 имен для файловой системы. Каждой группе затем может быть присвоено имя. Например, типам в пространстве 200 имен подсистемы представления может быть присвоено имя «Windows», и типам в пространстве 206 имен файловой системы могут быть присвоены имена «Storage». Именованные группы могут быть организованы под единственным «глобальным корневым» пространством имен для ИПП системного уровня, таким как общее пространство имен System. Посредством выбора и присоединения идентификатора верхнего уровня ссылку на типы в каждой группе легко можно выполнить посредством иерархического имени, которое включает в себя выбранный идентификатор верхнего уровня, который присоединен к имени группы, содержащей тип. Например, на типы в пространстве 206 имен файловой системы можно ссылаться с использованием иерархического имени «System.Storage». Таким образом, индивидуальные пространства 200, 204 и 206 имен становятся главными ответвлениями пространства имен System и могут иметь обозначение, в которых к индивидуальным пространствам имен присоединяются указатель, такой как префикс «System.».
Пространство 200 имен подсистемы представления относится к программированию и разработке контента. Оно предоставляет типы, которые позволяют создавать прикладные программы, документы, медиа-представления и другой контент. Например, пространство 200 имен подсистемы представления обеспечивает модель программирования, которая позволяет разработчикам получать услуги из операционной системы 146 (1) и/или службы 146 (2) объектной модели.
Пространство 202 имен оболочки имеет отношение к функциональным возможностям пользовательского интерфейса. Оно предоставляет типы, которые позволяют разработчикам внедрять функциональные возможности пользовательского интерфейса в их прикладные программы и дополнительно позволяет разработчикам расширять функциональные возможности пользовательского интерфейса.
Пространство 204 имен веб-служб относится к инфраструктуре, позволяющей создавать разнообразные прикладные программы, например, прикладные программы такие же простые, как прикладные программы диалогового взаимодействия пользователей, которые работают между двумя одноранговыми узлами в интрасети, и/или такие же сложные, как масштабируемая веб-служба для миллионов пользователей. Описанная инфраструктура выгодно является сильно изменяемой в том, что необходимо использовать только те части, которые соответствуют сложности конкретного решения. Инфраструктура обеспечивает основу для создания основанных на сообщениях прикладных программ различного масштаба и сложности. Инфраструктура или структура обеспечивает ИПП для базового обмена сообщениями, безопасного обмена сообщениями, надежного обмена сообщениями и обмена сообщениями транзакций. В описанном ниже варианте выполнения ассоциированные ИПП были разложены на иерархию пространств имен таким образом, который был тщательно создан для согласования полезности, используемости, расширяемости и управляемости версиями.
Пространство 206 имен файловой системы относится к хранению. Оно предоставляет типы, которые делают возможным выполнять хранение и извлечение информации.
В дополнении в инфраструктуре 132 инструментальные средства 210 программирования предусмотрены для того, чтобы содействовать разработчику при построении веб-служб и/или веб-приложений. Одним из примеров инструментальных средств 210 программирования является Visual Studio™, многоязыковый набор инструментальных средств программирования, предлагаемый корпорацией Microsoft.
Корневые пространства имен ИПП
На фиг.3 подробно изображено пространство 200 имен подсистемы представления. В одном варианте выполнения пространства имен идентифицируются в соответствии с соглашением об иерархических именах, в котором строки имен соединяются точками. Например, пространство 200 имен подсистемы представления идентифицируется корневым именем «System.Windows». Внутри пространства имен «System.Windows» существует другое пространство имен для оболочки, определенное как «System.Windows.Explorer», которое дополнительно идентифицирует другое пространство имен для элементов управления, известных как «System.Windows.Explorer.Controls». С учетом данного соглашения об именах нижеследующее предоставляет общий обзор пространства 200 имен подсистемы представления, хотя с одинаковым эффектом могут использоваться другие соглашения об именах.
Пространство 202 имен Shell («System.Windows.Explorer») включает в себя классы и ИПП (API), которые поддерживают функциональные возможности пользовательского интерфейса, позволяющие конечным пользователям выполнять исследование и навигацию к набору конечных точек, таких как элементы в системах хранения, файлы в местоположениях протокола передачи файлов (ППФ, FTP) или местоположениях распределенного авторинга и контроля версий (РАКВ, DAV), апплеты панели управления в панелях управления, прикладные программы и т.д. Данная навигация может включать в себя открытие одной или нескольких папок, а также открытие папок внутри папок. Пространство 202 имен Shell позволяет разработчикам внедрять такие функциональные возможности в свои прикладные программы и дополнительно позволяет разработчикам расширять эти функциональные возможности исследования и навигации. В версиях операционной системы Windows® данный пользовательский интерфейс обычно упоминается как «Explorer» (Проводник).
В некоторых вариантах выполнения система хранения, у которой функциональные возможности пользовательского интерфейса пространства 202 имен оболочки позволяют пользователям выполнять исследование и навигацию, представляет собой активную платформу хранения для организации, поиска и совместного использования всех видов информации. Данная платформа определяет модель данных с широкими возможностями, надстраивает верхнюю часть реляционного механизма хранения, поддерживает гибкую модель программирования и обеспечивает набор служб передачи данных для контроля, управления и манипулирования данными. Данные могут быть основаны на файлах или быть нефайловыми данными, и данные обычно упоминаются как «элемент». Файловая система расширяет функциональные возможности, обычно предусматриваемые файловыми системами, так как она также имеет дело с элементами, которые представляют собой нефайловые данные, такие как персональные контакты, календари событий и сообщения электронной почты. Одним примером такой файловой системы является файловая система «WinFS».
Универсальное хранилище данных системы хранения, у которого функциональные возможности пользовательского интерфейса пространства 202 имен оболочки позволяют пользователям выполнять исследование и навигацию, реализует модель данных, которая поддерживает организацию, поиск, совместное использование, синхронизацию и безопасность данных, которые постоянно находятся в хранилище. Основная единица информации хранения в данном хранилище данных упоминается как “элемент”. Модель данных обеспечивает механизм для объявления (описания) элементов и расширений элементов, для установления зависимостей между элементами и для организации элементов в папки и категории.
Элемент представляет собой единицу хранимой информации, которая, в отличие от простого файла, представляет собой объект, имеющий базовый набор свойств, которые, как правило, поддерживаются по всем объектам, открытым системой хранения пользователю или прикладной программе. Элементы также имеют свойства и зависимости, которые, как правило, поддерживаются по всем типам элементов, включая признаки, которые позволяют вводить новые свойства и зависимости. Эти данные свойств и зависимостей также могут упоминаться как метаданные, ассоциированные с элементом. Как подробно описано ниже, метаданные могут храниться в соответствии со схемой декорирования (оформления) элемента. Данная схема декорирования элемента может указывать соответствующий способ, которым следует представлять элемент пользователю.
Элементы представляют собой объекты для общих операций, таких как копирование, удаление, перемещение, открытие, печать, резервирование, восстановление, дублирование и т.д. Элементы представляют собой единицы, которые могут храниться и извлекаться, и все формы хранимой информации, манипулируемой платформой хранения, существуют в виде элементов, свойств элементов или зависимостей (соотношений) между элементами, каждая из которых подробно описывается в данной заявке ниже. Элементы предназначены для представления реальных и легко понимаемых единиц данных, таких как Contacts (контакты), People (люди), Services (службы), Locations (местоположения), Documents (документы) (всех различных видов) и т.д.
Элементы представляют собой отдельные (автономные) объекты; таким образом, если элемент удаляется, то также удаляются все свойства элемента. Аналогично, при извлечении элемента, тем, что принимают, является элемент и все его свойства, содержащиеся в метаданных элемента. Некоторые варианты выполнения могут делать возможным выполнение запроса поднабора свойств при извлечении определенного элемента; однако, для многих таких вариантов выполнения по умолчанию предоставляется элемент со всеми его непосредственными и наследованными свойствами при извлечении. Кроме того, свойства элементов также могут быть расширены добавлением новых свойств к существующим свойствам данного типа элемента. Эти «расширения» представляют собой, соответственно, истинные свойства элемента, и подтипы данного типа элемента могут автоматически включать в себя свойства расширения. Расширения также могут упоминаться как метаданные, ассоциированные с файлом.
Группы элементов могут быть организованы в специальные элементы, называемые Папки элементов (которые не следует путать с папками файлов). В отличие от большинства файловых систем, однако, элемент может принадлежать к более чем одной Папке элементов, так что, когда к элементу производится доступ в одной Папке элементов и он исправляется, то к данному исправленному элементу затем можно произвести доступ непосредственно из другой Папки элементов. По существу, хотя доступ к элементу может происходить из разных Папок элементов, тем, к чему производится доступ, является, фактически, один и тот же элемент. Однако Папка элементов необязательно имеет все свои элементы членов или может просто совместно владеть элементами во взаимодействии с другими Папками элементов, так что удаление Папки элементов необязательно приводит к удалению элемента.
Группы элементов также могут быть организованы в Категории. Категории концептуально отличаются от Папок элементов тем, что, хотя Папки элементов могут содержать элементы, которые не являются взаимосвязанными (т.е. без общей описанной характеристики), каждый элемент в Категории имеет общий тип, свойство или значение («общность»), который описывается для данной Категории, и именно данная общность образует базу для ее взаимосвязи с другими элементами и среди других элементов в Категории. Кроме того, хотя членство элементов в конкретной Папке не является обязательным, на основании любого конкретного аспекта данного элемента, для некоторых вариантов осуществления все элементы, имеющие общность, безусловно относящуюся к Категории, могут автоматически становиться членом Категории на системном уровне интерфейса аппаратных средств/программного обеспечения. Концептуально Категории также могут рассматриваться в качестве виртуальных Папок элементов, членство которых основывается на результатах конкретного запроса (такого как в контексте базы данных), и элементы, которые удовлетворяют условиям данного запроса (определенного общностью Категории), составляют, таким образом, членство в Категории.
В противоположность файлам, папкам и каталогам элементы, Папки элементов и Категории настоящего изобретения не являются типично «физическими» по х