Опосредованный доступ к элементам данных для изолированных приложений

Иллюстрации

Показать все

Изобретение относится к области доступа к данным в Интернет. Технический результат - обеспечение авторизованного доступа к данным хранилища данных изолированным приложением. Способ для опосредованного доступа к элементам данных для изолированных приложений, содержит этапы, на которых: предоставляют, в модуле-посреднике вычислительного устройства, интерфейсы прикладного программирования (API) изолированному приложению вычислительного устройства; принимают, в модуле-посреднике через один из упомянутых API, запрос от изолированного приложения в вычислительном устройстве на доступ к одному или более элементам данных источника элементов данных; проверяют, в вычислительном устройстве, к какому из этих одного или более элементов данных изолированное приложение авторизовано осуществлять доступ; и если изолированное приложение не авторизовано осуществлять доступ ни к одному из упомянутых одного или более элементов данных, тогда отклоняют запрос, иначе: формируют один или более объектов элементов хранилища данных, которые представляют те из упомянутых одного или более элементов данных, к которым изолированное приложение авторизовано осуществлять доступ; фильтруют сформированные один или более объектов элементов хранилища данных, которые представляют те из упомянутых одного или более элементов данных, к которым изолированное приложение авторизовано осуществлять доступ, причем данная фильтрация содержит удаление одного или более объектов элементов хранилища данных, которые соответствуют конкретному типу файлов, с тем, чтобы один или более отфильтрованных объектов элементов хранилища данных не включали в себя объекты элементов хранилища данных, которые соответствуют этому конкретному типу файлов; и возвращают эти один или более отфильтрованных объектов элементов хранилища данных изолированному приложению. 3 н. и 17 з.п. ф-лы, 5 ил., 11 табл.

Реферат

Уровень техники

[0001] Пользователи имеют доступ к широкому диапазону приложений из широкого множества различных источников. Например, пользователи традиционно получали приложение из "существующего в реальности" магазина на машиночитаемом носителе информации (таком как оптический диск) и затем устанавливали приложение на пользовательском домашнем вычислительном устройстве. Эти приложения были, как правило, предоставлены уважаемыми разработчиками и, таким образом, рассматривались как заслуживающие доверия.

[0002] Затем были разработаны последующие технологии, в которых пользователь осуществлял доступ к сети, чтобы находить и устанавливать приложение. Например, магазин приложений может быть сделан доступным для доступа через Интернет, чтобы находить и покупать приложения. В некоторых случаях магазин приложений может включать в себя множество приложений, которые могут происходить от множества различных разработчиков. Вследствие большого количества приложений, которые могут быть сделаны доступными, и расхождений между разработчиками, которые могут предоставлять их, функциональность приложений может иметь различающиеся степени доверия. Например, приложения могут иметь неполноценную функциональность, могут быть написаны злоумышленниками и т.п.

Сущность изобретения

[0003] Это краткое изложение сущности изобретения предусмотрено для того, чтобы в упрощенной форме представить подборку идей, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не имеет намерением ни идентифицировать ключевые признаки или важнейшие признаки заявляемого изобретения, ни использоваться так, чтобы ограничивать объем заявляемого изобретения.

[0004] В соответствии с одним или более аспектами, запрос принимается в модуле-посреднике (брокере) вычислительного устройства. Принятый запрос является запросом от изолированного приложения в вычислительном устройстве на доступ к одному или более элементам данных источника элементов данных. Выполняется проверка относительно того, к какому (при наличии таковых) из одного или более элементов данных источника элементов данных изолированное приложение авторизовано осуществлять доступ. Формируются один или более объектов элементов хранилища данных, которые представляют эти один или более элементов данных, к которым изолированное приложение авторизовано осуществлять доступ, и сформированные объекты элементов хранилища данных возвращаются изолированному приложению. Однако, если изолированное приложение не авторизовано, чтобы осуществлять доступ к одному из одного или более элементов, тогда принятый запрос отклоняется.

[0005] В соответствии с одним или более аспектами, приложение вызывает интерфейс прикладного программирования (API) модуля-посредника, чтобы запрашивать доступ к одному или более элементам данных источника элементов данных. Приложение является изолированным приложением, которому ограничен любой доступ к источнику элементов данных, кроме доступа через модуль-посредник. По меньшей мере, один объект элемента хранилища данных принимается от модуля-посредника, каждый объект элемента хранилища данных содержит те из одного или более элементов данных, к которым изолированное приложение авторизовано осуществлять доступ.

Краткое описание чертежей

[0006] Подробное описание описывается со ссылкой на сопровождающие чертежи. На чертежах крайняя левая цифра(ы) ссылочного номера идентифицирует чертеж, на котором ссылочный номер появляется впервые. Использование одинаковых ссылочных номеров в различных примерах в описании и на чертежах может указывать аналогичные или идентичные элементы.

[0007] Фиг. 1 иллюстрирует примерную систему, реализующую технологии опосредованного доступа к элементам данных для изолированных приложений, обсуждаемые в данном документе.

[0008] Фиг. 2 иллюстрирует другую примерную систему, реализующую технологии опосредованного доступа к элементам данных для изолированных приложений, обсуждаемые в данном документе.

[0009] Фиг. 3 иллюстрирует поток данных опосредованного доступа к элементам данных для изолированных приложений в дополнительных подробностях в соответствии с одним или более вариантами осуществления.

[0010] Фиг. 4 иллюстрирует процедуру для реализации опосредованного доступа к элементам данных для изолированных приложений в соответствии с одним или более вариантами осуществления.

[0011] Фиг. 5 иллюстрирует процедуру для реализации опосредованного доступа к элементам данных для изолированных приложений в соответствии с одним или более вариантами осуществления.

Подробное описание изобретения

Обзор

[0012] Опосредованный доступ к элементам данных для изолированных приложений обсуждается в данном документе. Модуль-посредник расположен между изолированным приложением и одним или более источниками элементов данных (например, файловой системой, устройством, другим приложением). Чтобы осуществлять доступ к элементам данных из источника элементов данных, изолированное приложение запрашивает доступ к элементу данных, вызывая интерфейс прикладного программирования (API) модуля-посредника. Если изолированному приложению разрешен доступ к запрошенному элементу данных, тогда модуль-посредник осуществляет доступ к запрошенному элементу данных и возвращает изолированному приложению объект, который является представлением запрошенного элемента данных. Если изолированному приложению не разрешен доступ к запрошенному элементу данных, тогда посредник запрещает доступ к запрошенному элементу данных и не возвращает изолированному приложению объект, который является представлением запрошенного элемента данных. Модуль-посредник и API обсуждаются в дополнительных деталях ниже.

[0013] В последующем обсуждении сначала описывается примерная система, которая функционирует, чтобы выполнять технологии, описанные в данном документе. Затем описываются примерные процедуры, которые функционируют в примерной системе, а также в других системах. Аналогично, примерная система не ограничена выполнением примерных процедур.

Примерная система

[0014] Фиг. 1 иллюстрирует примерную систему 100, реализующую технологии опосредованного доступа к элементам данных для изолированных приложений, обсуждаемые в данном документе. Иллюстрированная система 100 включает в себя вычислительное устройство 102, которое может быть сконфигурировано множеством способов. Например, вычислительное устройство 102 может быть сконфигурировано как компьютер, который способен передавать данные по сети 104, такой как настольный компьютер, планшет или электронная записная книжка, мобильная станция, развлекательное оборудование, телевизионная приставка, соединенная с возможностью связи с устройством отображения, телевизор или другое устройство отображения, сотовый или другой беспроводной телефон, игровая консоль и т.д.

[0015] Вычислительное устройство 102 может варьироваться в диапазоне от мощных устройств с большими объемами памяти и мощными процессорами (например, персональные компьютеры, игровые консоли) до маломощных устройств с ограниченными ресурсами памяти и/или обработки (например, традиционные телевизионные приставки, карманные игровые консоли). Дополнительно, хотя показано одно вычислительное устройство 102, вычислительное устройство 102 может представлять множество различных устройств, таких как множество серверов, используемых организацией для выполнения операций, сочетание пульта дистанционного управления и телевизионной приставки, устройство захвата изображения (например, камера) и игровая консоль, сконфигурированная, чтобы захватывать жесты, и т.д.

[0016] Вычислительное устройство 102 может также включать в себя средство (например, программное обеспечение), которое инструктирует аппаратуре вычислительного устройства 102 выполнять операции, например, конфигурирует процессоры, функциональные блоки и т.д. Например, вычислительное устройство 102 может включать в себя машиночитаемый носитель, который может быть сконфигурирован, чтобы хранить инструкции, которые инструктируют вычислительному устройству, а более конкретно, аппаратным средствам вычислительного устройства 102, выполнять операции. Таким образом, инструкции функционируют, чтобы конфигурировать аппаратные средства для выполнения операций и, таким образом, приводят в результате к преобразованию аппаратных средств для выполнения операций. Инструкции могут быть предоставлены посредством машиночитаемого носителя вычислительному устройству 102 через множество различных конфигураций.

[0017] Одна такая конфигурация машиночитаемого носителя является несущей средой сигнала и, таким образом, сконфигурирована, чтобы передавать инструкции (например, как несущую волну) аппаратным средствам вычислительного устройства 102, как например, через сеть 104. Машиночитаемый носитель может также быть сконфигурирован как машиночитаемый носитель информации, и, таким образом, не является несущей средой сигнала. Примеры машиночитаемого носителя информации включают в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), оптические диски (например, DVD или CD), флэш-память, запоминающее устройство на жестком диске и другие запоминающие устройства, которые могут использовать, магнитные, оптические и другие технологии для хранения инструкций и других данных.

[0018] Сеть 104 может предполагать множество различных конфигураций. Например, сеть 104 может включать в себя Интернет, глобальную вычислительную сеть (WAN), локальную вычислительную сеть (LAN), персональную вычислительную сеть (PAN), беспроводную сеть, телефонную сеть общего пользования, интрасеть, их комбинации и т.д. Дополнительно, хотя показана одна сеть 104, сеть 104 может быть сконфигурирована, чтобы включать в себя несколько сетей.

[0019] Вычислительное устройство 102 проиллюстрировано как включающее в себя модуль 106 управления элементами данных. Модуль 106 управления элементами данных представляет функциональность, чтобы управлять доступом к одному или более источникам 108 и/или 110 элементов данных. Модуль 106 управления элементами данных может быть реализован множеством способов, таким как автономное приложение, как часть операционной системы вычислительного устройства 102 и т.д.

[0020] Источник 108 элементов данных применяет технологии для организации и хранения множества различных типов элементов 112 данных. Элемент данных ссылается на данные или контент, которые могут быть запрошены приложением. Например, элемент данных может быть файлом, папкой или каталогом, унифицированным идентификатором ресурса (URI), унифицированным указателем ресурса (URL) или другой ссылкой, сжатыми файлами или коллекциями файлов (например, zip-файлами или cab-файлами), файлом, поддерживаемым (или контентом, поддерживаемым другим образом) другим приложением, и т.д. Источник 108 элементов данных может быть реализован множеством различных способов, применяющих различные технологии для организации и хранения элементов данных. Например, источник 108 элементов данных может быть файловой системой на вычислительном устройстве 102, системой хранения на вычислительном устройстве 102, другим приложением, работающем на вычислительном устройстве 102 (например, которое само управляет организацией и хранением элементов данных), базами данных и т.д. Аналогично, источник 110 элементов данных может быть реализован множеством различных способов, применяющих различные технологии для организации и хранения элементов 114 данных, к которым вычислительное устройство 102 может осуществлять доступ по сети 104. Источник 110 элементов данных может быть, например, поставщиком услуг (например, реализованным с помощью одного или более вычислительных устройств, сконфигурированных тем же и/или другими способами, что и вычислительное устройство 102), файловой системой поставщика услуг, системой хранения поставщика услуг, другим приложением, работающим у поставщика услуг, сервером мультимедиа и т.д.

[0021] Приложение 116 является одной или более программами, скриптами или другими наборами инструкций, которые работают на вычислительном устройстве 102. Приложение 116 может предполагать множество различных конфигураций, таких как развлекательное приложение (например, игра или аудио/видео проигрыватель), утилитарное приложение (например, текстовый редактор или веб-браузер), справочное приложение (например, словарь или энциклопедия) и т.п. Приложение 116 называется изолированным приложением вследствие того, что приложение 116 выполняется способом, в котором способность приложения 116 осуществлять доступ к ресурсам (например, подключенному к сети компьютеру, Интернету, модулям, устройствам, памяти, другим приложениям) вычислительного устройства 102 ограничена. Операционная система (и/или другое программное обеспечение, микропрограммное обеспечение и/или аппаратные средства) вычислительного устройства 102 предоставляют возможность приложению 116 осуществлять доступ к памяти и другим ресурсам вычислительного устройства 102, которые были назначены или иначе сделаны доступными приложению 116, но предотвращает доступ приложения 116 к другой памяти, ресурсам, и/или приложениям, работающим на вычислительном устройстве 102. Это защищает другие приложения, работающие на вычислительном устройстве от влияния приложения 116, а также защищает приложение 116 от влияния других приложений, работающих на вычислительном устройстве 102, таким образом, изолируя приложение 116 от приложений на вычислительном устройстве 102. Как часть изоляции, операционная система (и/или другое программное обеспечение, микропрограммное обеспечение и/или аппаратные средства) вычислительного устройства 102 также предотвращает доступ приложения 116 к источнику 108 элементов данных и/или источнику 110 элементов данных, кроме как через модуль 106 управления элементами данных, как обсуждается более подробно ниже.

[0022] В одном или более вариантах осуществления приложение 116 выполняется ограниченным образом посредством выполнения приложения 116 в изолированной программной среде. Хотя одно приложение 116 иллюстрировано в вычислительном устройстве 102, следует отметить, что несколько приложений могут выполняться в вычислительном устройстве 102 одновременно (каждое приложение выполняется в своей собственной изолированной программной среде).

[0023] Модуль 106 управления элементами данных дополнительно иллюстрирован как включающий в себя модуль-посредник 120 и модуль-сортировщик 122. Модуль-посредник 120 представляет функциональность модуля 106 управления элементами данных, чтобы управлять доступом приложения 116 к источнику 108 и/или 110 элементов данных. Модуль-посредник 120, например, может действовать как промежуточное звено, чтобы находить элементы 112 и/или 114 данных, запрошенные приложением 116, и предоставлять найденные элементы 112 и/или 114 данных обратно приложению 116. Приложение 116 может осуществлять доступ к элементам 112 и/или 114 данных через модуль-посредник 120, но вследствие того, что оно является изолированным приложением, в ином случае ему ограничен доступ к источнику 108 и/или 110 элементов данных (а также к элементам 112 и/или 114 в этих источниках элементов данных). Дополнительно, элементы 112 и/или 114 данных могут быть предоставлены приложению 116, и приложение 116 не должно знать о том, откуда элементы 112 и/или 114 данных были получены, например, приложение 116 может не знать пространства имен, используемого источником 108 и/или 110 элементов данных. Это позволяет приложению обрабатывать элементы данных из различных источников данных одинаковым образом, а не специальным для каждого вида источника элементов данных.

[0024] Дополнительно, модуль-посредник 120 может в необязательном порядке применять модуль-сортировщик 122, чтобы предоставлять альтернативный способ улучшения доступа к источнику 108 и/или 110 элементов данных. Модуль-сортировщик 122 предоставляет надежный способ, чтобы предоставлять возможность приложению (например, которое не имеет программного доступа к источнику 108 и/или 110 элементов данных через модуль-посредник 120) осуществлять доступ к источнику 108 и/или 110 элементов данных (а также к элементам 112 и/или 114 данных в этих источниках элементов данных).

[0025] В целом, любые из функций, описанных в данном документе, могут быть реализованы с помощью программного обеспечения, микропрограммного обеспечения (firmware), аппаратных средств (например, схемы с фиксированной логикой), ручной обработки или комбинации этих реализаций. Термины "модуль" и "функциональность", когда используются в данном документе, как правило, представляют аппаратные средства, программное обеспечение, микропрограммное обеспечение, или их комбинации. В случае программной реализации, модуль, функциональность или логика представляют инструкции и аппаратные средства, которые выполняют указанные операции посредством аппаратных средств, например, одного или более процессоров и/или функциональных блоков.

[0026] Фиг. 2 иллюстрирует примерную систему 200, реализующую технологии опосредованного доступа к элементам данных для изолированных приложений, обсуждаемые в данном документе. Система 200, как иллюстрировано, может быть реализована частично посредством модуля 106 управления элементами данных вычислительного устройства 102 на фиг. 1, чтобы выполнять технологии управления элементами данных. Например, модуль 106 управления элементами данных может быть встроен как часть операционной системы, приложение, которое выполняется вместе с операционной системой, автономное приложение и т.д. Независимо от того, куда встроен, модуль 106 управления элементами данных может применять технологии, чтобы управлять элементами данных, доступными вычислительному устройству локально и/или удаленно (например, через сеть 104 на фиг. 1).

[0027] Система 200, которая иллюстрируется, включает в себя приложение 202 (которое может быть, например, приложением 116 на фиг. 1), источником 204 элементов данных (который может быть, например, источником 108 или 110 элементов данных на фиг. 1) и элементом 206 данных (который может быть, например, элементом 112 или 114 данных на фиг. 1). В этом примере приложение 202 связывается с модулем-посредником 120 через один или более интерфейсов прикладного программирования (API) 210, предоставленных приложению 202 модулем-посредником 120, для доступа к источнику 204 элемента данных. Хотя одно приложение 202 и один источник 204 элемента данных иллюстрированы на фиг. 2, следует отметить, что система 200 может включать в себя любое число приложений 202, осуществляющих доступ к любому числу источников 204 элементов данных.

[0028] Приложение 202 может быть авторизовано осуществлять доступ к конкретным источникам элементов данных и/или конкретным местоположениям элементов данных. Эта авторизация может быть выполнена в различные моменты времени и различными способами, хотя типично выполняется прежде, чем приложение 202 запрашивает доступ к элементу 206 данных. В одном или более вариантах осуществления эта авторизация выполняется, когда приложение 202 загружается или устанавливается на вычислительном устройстве, реализующем систему 200. Например, как часть процесса загрузки или установки, пользователь может быть уведомлен о конкретных источниках элементов данных и/или конкретных местоположениях элементов данных, к которым приложение 202 желает получить доступ, и пользователь может обеспечивать ввод (например, выбор конкретной кнопки или другой части пользовательского интерфейса (UI)) относительно того, авторизовано ли приложение 202 осуществлять доступ к этим конкретным источникам элементов данных и/или конкретным местоположениям элементов данных. Альтернативно, эта авторизация может быть выполнена в другие моменты времени, например, когда приложение 202 модифицируется или обновляется, во время последующей конфигурации приложения 202 пользователем системы 200 и т.д. Независимо от того, как выполняется, система 200 поддерживает хранилище 208 авторизации, которое включает в себя запись о том, к каким источникам элементов данных и/или местоположениям элементов данных приложение 202 авторизовано осуществлять доступ. Хранилище 208 авторизации доступно модулю-посреднику 120, предоставляя возможность получать и использовать посредством модуля-посредника 120 запись о том, к каким источникам элементов данных и/или местоположениям элементов данных приложение 202 авторизовано получать доступ.

[0029] Приложение 202 может быть авторизовано осуществлять доступ к какому-либо из множества различных источников 204 элементов данных, поддерживаемых модулем-посредником 120. Например, источники элементов данных, к которым приложение 202 может быть авторизовано осуществлять доступ, могут быть файловой системой, одним или более конкретными приложениями, работающими на вычислительном устройстве, одной или более конкретными системами хранения, реализованными поставщиком услуг, и т.д.

[0030] Приложение 202 может также быть авторизовано осуществлять доступ к какому-либо из множества различных местоположений элементов данных. Различные типы местоположений элементов данных могут быть определены для различных источников элементов данных. Например, для источника элементов данных, которым является файловая система, местоположения элементов данных могут быть определены как папки или библиотеки (например, библиотека документов, библиотека музыки, библиотека видео, библиотека изображений). Библиотека ссылается на совокупность одного или более местоположений (например, папок или каталогов на одном или более устройствах), и местоположения, включенные в библиотеку, могут необязательно быть модифицированы пользователем системы 200. В качестве другого примера, для источника элементов данных, которым является приложение, местоположениями элементов данных могут быть группировки или другие совокупности элементов данных, которые определены приложением.

[0031] Модуль-посредник 120 включает в себя модуль 212 доступа к элементам данных, который представляет функциональность модуля-посредника 120, чтобы отвечать на запросы от приложения 202 для осуществления доступа к элементам данных. Множество API 210 поддерживают различные интерфейсы, которые могут быть вызваны приложением 202 для всевозможных различных типов доступа к элементам данных. Например, множество API 210 включают в себя интерфейсы, предоставляющие возможность чтения элементов данных, записи элементов данных, создания элементов данных, удаления элементов данных, модификации элементов данных, копирования элементов данных, перемещения элементов данных, переименования элементов данных, извлечения свойств элементов данных и т.д. Одни и те же интерфейсы могут быть использованы для различных источников элементов данных, абстрагируя источники элементов данных от приложения 202. Например, API, задействованные для извлечения или нумерования элементов данных, могут быть применены к нескольким источникам элементов данных, поддерживаемым модулем-посредником 120, к источникам элементов данных, поддерживаемым модулем-посредником 120, к которым приложение 202 авторизовано осуществлять доступ, и т.д. В качестве другого примера, приложение 202 не должно указывать источник элементов данных, когда вызывает API для записи или переименования элемента данных (например, источник элементов данных может быть идентифицирован в или характерен для объекта элемента хранилища данных, как обсуждается более подробно ниже).

[0032] Альтернативно, может быть включен параметр интерфейса, идентифицирующий конкретный источник элементов данных для запроса. Например, множество API 210 могут включать в себя интерфейс чтения элемента данных, используемый как для источника файловой системы, так и для источника системы хранения поставщика услуг, с параметром интерфейса считывания элемента данных, указывающим, для какого из двух источников приложение 202 запрашивает считывание элементов данных. В других альтернативах различные интерфейсы могут быть использованы для различных источников элементов данных. Например, множество API 210 могут включать в себя интерфейс чтения элемента данных файловой системы, чтобы читать элементы данных из источника файловой системы, и интерфейс чтения элемента данных поставщика услуг, чтобы читать элементы данных из источника системы хранения поставщика услуг.

[0033] Приложение 202 вызывает один или более API 210, запрашивая доступ к одному или более элементам данных (например, сохраненных посредством) источника элементов данных. При приеме запроса модуль 212 доступа к элементам данных проверяет запись об источниках элементов данных и/или местоположениях элементов данных, к которым приложение 202 авторизовано осуществлять доступ, и определяет на основе этой записи, авторизовано ли приложение 202 осуществлять доступ к запрошенному элементу или элементам данных. Если приложение 202 не авторизовано осуществлять доступ к какому-либо из запрошенных одного или более элементов данных (приложение не авторизовано осуществлять доступ ни к одному из одного или более элементов данных), тогда модуль 212 доступа к элементам данных не предоставляет запрошенный доступ. Например, если приложение 202 запрашивает доступ к файлу в библиотеке изображений, но авторизовано осуществлять доступ только к файлам в библиотеке музыки, тогда модуль 212 доступа к элементам данных не предоставляет запрошенный доступ. Модуль 212 доступа к элементам данных может необязательно возвращать указание (например, как результирующее значение, ассоциированное с API 210, вызванным приложением 202, чтобы запрашивать доступ к одному или более элементам данных), что запрошенный доступ запрещен.

[0034] Однако, если приложение 202 авторизовано, чтобы осуществлять доступ к некоторым из запрошенного одного или более элементов данных, тогда модуль 212 доступа к элементам данных получает и разрешает доступ к тем из одного или более элементов данных, к которым приложение 202 авторизовано осуществлять доступ. Способ, которым запрошенный один или более элементов данных получаются модулем-посредником 120, может изменяться на основе конкретного источника 108 элемента данных, и модуль-посредник 120 конфигурируется с помощью (или может получать) указания о том, как осуществлять доступ к источнику 108 элементов данных. Модуль 212 доступа к элементам данных формирует объект элемента хранилища данных, представляющий каждый элемент данных, к которому приложение 202 авторизовано осуществлять доступ. Этот объект элемента хранилища данных включает в себя различную информацию, ассоциированную с элементом данных, и в необязательном порядке включает в себя данные и/или содержимое элемента данных. Модуль 212 доступа к элементам данных возвращает этот сформированный объект элемента хранилища данных приложению 202.

[0035] Альтернативно, вместо использования ранее полученной авторизации для доступа к элементу или элементам данных, модуль-посредник 120 может применять модуль-сортировщик 122, чтобы получать доступ к одному или более элементам данных, которые запрошены приложением 202. При приеме запроса доступа к одному или более элементам данных модуль-посредник 120 может реализовывать модуль-сортировщик 122, чтобы формировать пользовательский интерфейс, который запускает модуль 220 UI сортировщика. Модуль 220 UI сортировщика представляет UI, спрашивающий пользователя о том, авторизует ли пользователь доступ к одному или более элементам данных, позволяя пользователю осуществлять навигацию или иначе находить один или более элементов данных, и т.д. Могут быть приняты пользовательские входные данные, указывающие, авторизует ли пользователь приложение 202 для доступа к одному или более элементам данных. Если пользователь авторизует приложение 202, чтобы осуществлять доступ к одному или более элементам данных, тогда модуль-сортировщик 122 получает один или более элементов данных и возвращает полученный один или более элементов данных модулю 212 доступа к элементам данных для формирования представления 112 объекта элемента хранилища данных. Альтернативно, вместо получения модулем-сортировщиком 122 одного или более элементов данных модуль-сортировщик 122 может возвращать указание модулю 212 доступа к элементам данных, чтобы модуль 212 получил один или более элементов данных, как обсуждалось выше.

[0036] Модуль 212 доступа к элементам данных возвращает объекты элементов хранилища данных приложению 202. Объект элемента хранилища данных представляет элемент данных. Объект элемента хранилища данных является абстракцией или представлением элемента данных. Доступ посредством приложения 202 (например, чтение, запись, изменение и т.д.) к элементу данных, представленному посредством объекта элемента хранилища данных, выполняется через модуль-посредник 120 и/или сам объект элемента хранилища данных. Объект элемента хранилища данных может принимать всевозможные различные формы. В одном или более вариантах осуществления объект элемента хранилища данных является объектом, сформированным модулем-посредником 120 и предоставленным приложению 202. Модуль-посредник 120 возвращает такой объект элемента хранилища данных приложению 202, предоставляя идентификатор или другое указание объекта элемента хранилища данных приложению 202. Различные способы или операции объекта элемента хранилища данных могут быть задействованы приложением 202, чтобы получать информацию, касающуюся элемента данных, предоставленного посредством объекта элемента хранилища данных, и/или выполнять различные операции над элементом данных, представленным посредством объекта элемента хранилища данных. Альтернативно, объект элемента хранилища данных может быть структурой данных, которая может включать в себя различную информацию, относящуюся к элементу данных, представленному посредством объекта элемента хранилища данных, и/или различные способы или операции, которые могут быть задействованы приложением 202, чтобы выполнять различные операции над объектом элемента хранилища данных. Модуль-посредник 120 возвращает такой объект элемента хранилища данных, предоставляя структуру данных приложению 202.

[0037] В одном или более вариантах осуществления объект элемента хранилища данных включает в себя часть свойств, часть эскиза, часть содержимого и часть операций. Часть свойств объекта элемента хранилища данных включает в себя различные свойства или атрибуты элемента данных. Любое множество различных свойств или атрибутов, поддерживаемых источником 204 элементов данных для элементов данных, может быть включено в часть свойств объекта элемента хранилища данных. Например, часть свойств объекта элемента хранилища данных может включать в себя наименование элемента данных, размер (например, в байтах) элемента данных, тип элемента данных (например, тип изображения, музыкальный тип и т.д.) и т.д.

[0038] Часть эскиза объекта элемента хранилища данных включает в себя визуальное представление элемента данных. Этот эскиз может быть изображением или последовательностью изображений (например, видео). Эскиз может быть, например, частью элемента данных (например, одной страницей документа или частью изображения), уменьшенной по масштабу версией элемента данных (например, меньшей по масштабу версией изображения), значком, представляющим тип элемента данных и т.д.

[0039] Часть содержимого объекта элемента хранилища данных включает в себя содержимое элемента данных или указание того, как получить содержимое элемента данных. Например, если элемент данных является изображением, тогда часть содержимого может включать в себя данные самого изображения, или ссылку (например, унифицированный указатель ресурса (URL) или путь) туда, где данные изображения сохранены. Элемент данных может быть данными, которые передаются потоком приложению 202 (например, музыкальный файл или видеофайл), и указанием о том, как получить содержимое элемента данных, может включать в себя указание (например, ссылку) данных, которые должны быть переданы в потоке. Часть содержимого может также включать в себя некоторые операции над элементами данных, такие как операции чтения и записи в элемент данных.

[0040] Часть операций объекта элемента хранилища данных включает в себя один или более методов или операций, которые могут быть выполнены над элементом данных. Различные другие операции могут быть выполнены над элементом данных, предоставляющие всевозможный различный доступ к элементу данных. Конкретные операции могут изменяться на основе, по меньшей мере, частично, типа элемента данных. Например, операции могут включат в себя операции переименования элемента данных, удаления элемента данных и т.д. Для элемента данных, которым является папка файловой системы, операции могут также включать в себя подсчет файлов в папке, сортировку файлов в папке, удаление файлов в папке, добавление новых файлов в папку, переименование папки или файла в папке и т.д.

[0041] Независимо от формы объекта элемента хранилища данных, различные операции могут быть выполнены над объектом элемента хранилища данных, и объект элемента хранилища данных включает в себя содержимое элемента данных или указание на то, как получить содержимое элемента данных. Таким образом, объект элемента хранилища данных может также рассматриваться как содержащий один или более элементов данных. Например, объект элемента хранилища данных для папки может содержать один или более элементов данных, представляющих файлы в этой папке.

[0042] Хотя объект элемента хранилища данных обсуждается в данном документе, следует отметить, что могут поддерживаться различные типы объектов элементов хранилища данных. Различные типы объектов элементов хранилища данных могут включать в себя различные свойства, операции и т.д., относящиеся к этому типу элемента хранилища данных. Например, могут быть использованы объекты файлов хранилища и объекты папок хранилища. Объекты файлов хранилища включают в себя свойства и операции, специфичные для файлов (например, операция переименования файла), а объекты папок хранилища включают в себя свойства и операции, специфичные для папок (например, операция подсчета, чтобы подсчитывать файлы в папке). В качестве другого примера, могут быть использованы объекты устройств и объекты сетевых узлов, где объекты устройств включают в себя свойства и операции, специфичные для устройств, а объекты сетевых узлов включают в себя свойства и операции, специфичные для сетевых узлов.

[0043] Один или более объектов элементов хранилища данных, возвращенных приложению 202, может сохраняться приложением 202. Например, приложение 202 может использовать список недавно использованных элементов данных (MRU), предоставляя возможность легко идентифицировать один или более элементов данных, недавно использованных приложением 202. В одном или более вариантах осуществления модуль-посредник 120 управляет сохраненным хранилищем объектов элементов хранилища данных. Модуль-посредник 120 типично поддерживает сохраненный список доступа для каждого изолированного приложения, хотя множество изолированных приложений могут необязательно совместно использовать сохраненный список доступа. Сохраненный список доступа - это список сохраненных объектов элементов хранилища данных, и приложение 202 может вызывать API 210, чтобы извлекать и использовать сохраненные объекты элементов хранилища данных в сохраненном списке доступа. Модуль-посредник 120 может предоставлять маркеры или другие идентификаторы сохраненных объектов элементов хранилища данных приложению 202, когда сохраненный элемент хранилища данных добавляется в сохраненный список доступа, и приложение 202 может использовать такие маркеры или другие идентификаторы, чтобы впоследствии извлекать сохраненный объект элемента хранилища данных из сохраненного списка доступа. Модуль-посредник 120 может также поддерживать множество списков сохраненных объектов элементов хранилища данных для приложения 202, таких как MRU-список и отдельный сохраненный список доступа (например, предоставляя возможность приложению 202 сохранять объекты элементов хранилища данных, когда оно желает, независимо от того, насколько давно элементы данных были использованы). Модуль-посредник 120 может необязате