Инфраструктура активации приложений

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в облегчении интеграции приложений с операционной системой за счет реализации расширяемых функциональных возможностей, представленных точками расширения, которые могут перегружаться на приложения согласно контрактам. Компьютерно-реализуемый способ активации приложений, в котором предоставляют, посредством операционной системы, компонент активации приложений для обеспечения общего канала для активации приложений между разными приложениями и платформами среды выполнения вычислительного устройства; регистрируют, через компонент активации приложений, приложения для поддержки точек расширения, обеспечиваемых как интегрированные функциональные возможности операционной системы, которые могут обслуживаться приложениями через контракты, создаваемые между приложениями и операционной системой; и вызывают, через компонент активации приложений, приложение, выбранное из зарегистрированных приложений, для выполнения конкретного контракта для одной упомянутой точки расширения. 9 з.п. ф-лы, 5 ил.

Реферат

Предпосылки изобретения

[0001] Традиционно, приложения для конкретной вычислительной системы являются в значительной степени автономными. Хотя приложения пользуются преимуществом некоторых признаков операционной системы и могут запускаться операционной системой для осуществления конкретных заданий для пользователей, операционная система слабо управляет или вовсе не управляет тем, как приложения реализуют признаки или осуществляют задания. Кроме того, разные приложения, в особенности приложения, связанные с разными платформами среды выполнения, могут по отдельности управлять такими аспектами, как генерация, размещение и упорядочение окон, цветовые схемы, шрифты и т.д. Соответственно, традиционный, нескоординированный подход к реализации приложения создает несвязный “вид и ощущения” (“look and feel”), что может препятствовать пользователям в получении полностью положительного пользовательского восприятия в отношении операционной системы.

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

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

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

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

[0004] В чертежах для обозначения сходных признаков используются одинаковые ссылочные позиции.

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

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

[0007] Фиг. 3 - логическая блок-схема операций, которая описывает этапы примерного способа в соответствии с одним или более вариантами осуществления.

[0008] Фиг. 4 - логическая блок-схема операций, которая описывает этапы другого примерного способа в соответствии с одним или более вариантами осуществления.

[0009] Фиг. 5 иллюстрирует примерную вычислительную систему, которую можно использовать для реализации одного или более вариантов осуществления.

Подробное описание

Обзор

[0010] Традиционные, нескоординированные подходы к реализации приложений в вычислительной системе могут создавать несвязный “вид и ощущения”, что может препятствовать пользователям в получении полностью положительных ощущений пользователя в отношении операционной системы. Хотя приложения могут пользоваться преимуществом некоторых признаков операционной системы, операционная система может слабо управлять или вовсе не управлять тем, как приложения фактически реализуют признаки в традиционном подходе.

[0011] Здесь описаны подходы к активации приложений, которые облегчают интеграцию приложений с операционной системой. Операционная система (OS) может быть сконфигурирована таким образом, чтобы включать в себя различные точки расширения, которые могут использоваться через соответствующие контракты (например, спецификации, которые определяют реализацию функциональных возможностей, представленных точками расширения), которые формируются между OS и приложениями. Расширяемые аспекты определяются как интегрированные функциональные возможности, обеспечиваемые OS, и регулируются OS централизованным образом. Однако конкретные реализации расширяемых функциональных возможностей могут перегружаться на приложения согласно контрактам.

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

[0013] В нижеследующем рассмотрении, предусмотрен раздел под названием “операционная среда”, который описывает одну среду, в которой можно применять один или более вариантов осуществления. После этого раздел под названием “подходы к активации приложений” описывает детали примерной реализации в соответствии с одним или более вариантами осуществления. Далее, раздел под названием “примерные способы” описывает примерные способы в соответствии с одним или более вариантами осуществления. Наконец, раздел под названием “примерная система” описывает примерные вычислительные системы и устройства, которые можно использовать для реализации одного или более вариантов осуществления.

Операционная среда

[0014] Фиг. 1 иллюстрирует операционную среду в соответствии с одним или более вариантами осуществления, в целом, обозначенную позицией 100. Среда 100 включает в себя вычислительное устройство 102, имеющее один или более процессоров 104, один или более машиночитаемых носителей 106, операционную систему 108 и одно или более приложений 110, хранящихся на машиночитаемых носителях и исполняемых процессором(ами). Один или более процессоров 104 могут извлекать и исполнять инструкции компьютерной программы из приложений 110 для предоставления вычислительному устройству 102 широкого диапазона функциональных возможностей, в том числе, но без ограничения, офисную производительность, электронную почту, администрирование сред, печать, сетевое соединение, просмотр веб-страниц и т.д. Также могут быть включены различные данные и программные файлы, связанные с приложениями 110, примеры которых включают в себя офисные документы, мультимедийные файлы, сообщения электронной почты, файлы данных, веб-страницы, данные профиля и/или предпочтений пользователя и т.д. В общем случае, приложения и другие программные модули могут включать в себя локальные приложения, сетевые приложения, действующие через хост-устройство (например, сервер или одноранговое устройство), и/или распределенные приложения, действующие посредством взаимодействия между клиентом и сервером или других взаимодействий между множественными устройствами в сети (например, “в облаке”).

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

[0016] Машиночитаемые носители могут включать в себя, в порядке примера, но не ограничения, все формы энергозависимой и энергонезависимой памяти и/или носителей данных, которые обычно связаны с вычислительным устройством. Такие носители могут включать в себя ПЗУ, ОЗУ, флэш-память, жесткий диск, сменные носители и пр. Машиночитаемые носители могут включать в себя как “машиночитаемые носители данных”, так и “среды связи”, примеры которых можно найти в рассмотрении примерной вычислительной системы, показанной на фиг. 5.

[0017] Операционная система 108 также включает в себя точки 112 расширения, которые представляют расширяемые функциональные возможности, интегрированные с операционной системой 108. Другими словами, точки расширения обеспечивают расширяемые признаки операционной системы, которые могут быть реализованы разными приложениями 110, которые поддерживают отдельные точки расширения. OS задает набор функциональных возможностей для точек расширения и может перегружать реализацию на разные приложения. Точки 112 расширения могут быть сконфигурированы по-разному. В порядке примера, но не ограничения, точки расширения могут обеспечивать такие признаки, как поисковые запросы, совместное использование данных приложениями, ассоциации файлов, потоковая передача файлов, операции внешнего устройства, автовоспроизведение сред, запуск приложений, взаимодействия веб-сайтов, контроль состояния активации, обработка протокола, конфигурация сети, функциональные возможности конфигурации, зависящие от оборудования/устройства, связь между расширениями и т.д.

[0018] Функциональные возможности точек 112 расширения можно по-разному реализовать посредством различных приложений 110 для эффективного интегрирования некоторых аспектов приложений 110 с операционной системой 108. Таким образом, точки расширения представляют централизованные механизмы, которые разные приложения могут использовать и обслуживать для расширения и координации соответствующих признаков операционной системы через код, интерфейсы и конкретные возможности разных приложений. Спецификации, используемые для управления реализацией функциональных возможностей, представленных точками расширения, именуются здесь контрактами. Контракты могут создаваться между OS и приложениями в ответ на запрос использования расширенных признаков. В соответствии с контрактами, объекты или другие подходящие данные могут передаваться надлежащему приложению, которое поддерживает контракт/точку расширения, чтобы приложение могло выполнить контракт. Другими словами, приложение, которое передает на OS индикацию того, что оно поддерживает точку расширения, может активироваться OS для обработки контракта, связанного с точкой расширения.

[0019] Наподобие вышеописанного, по меньшей мере, некоторые из конкретных деталей и кода для расширяемых функциональных возможностей OS могут перегружаться на приложения, которые окончательно реализуют расширяемые функциональные возможности. Вообще говоря, точки расширения являются инвариантными к приложению и платформе. Соответственно, различные типы приложений/платформ можно использовать для реализации и обслуживания одних и тех же точек расширения. Реализация по различным типам приложений/платформ может происходить с использованием общего централизованного компонента, посредством которого OS может направлять разные приложения/платформы и предписывать, каким образом приложения/платформы обслуживают точки 112 расширения. Таким образом, хотя некоторые аспекты расширяемых функциональных возможностей перегружаются на обслуживающие приложения, OS сохраняет управление функциональными возможностями и может указывать приложениям, как осуществлять контракты для точек расширения, посредством централизованного компонента.

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

[0021] Компонент 114 активации приложений представляет общий централизованный компонент, который может экспонироваться операционной системой и применяться для направления приложений 110 в отношении точек 112 расширения и соответствующих контрактов. В частности, компонент 114 активации приложений может экспонироваться для регистрации приложений для обслуживания точек расширения, выбора из зарегистрированных приложений и/или вызова приложений для выполнения контрактов (например, конкретных вызовов расширяемых функциональных возможностей OS). Компонент 114 активации приложений также позволяет OS сохранять управление реализациями точек 112 расширения посредством различных приложений 110. Компонент 114 активации приложений может быть сконфигурирован для поддержки многих разных видов приложений и/или разных платформ 118 среды выполнения вычислительного устройства 102, которые обеспечивают окружения исполнения для соответствующих приложений. Примеры платформ 118 среды выполнения для вычислительного устройства 102 включают в себя, среди прочих, среду выполнения JAVA™ (JRE), Adobe™ Flash™, инфраструктуру Microsoft™ .NET, и Microsoft Silverlight™. Поддерживаемые приложения могут исполняться на любой подходящей платформе 118 среды выполнения, которая сконфигурирована для взаимодействия с OS и/или компонентом 114 активации приложений. Когда платформа среды выполнения установлена для обеспечения взаимодействия с OS и/или компонентом 114 активации приложений, платформа среды выполнения готова к использованию как для существующих точек расширения, так и для будущих обновлений для точек расширения, без необходимости в дальнейших ревизиях среды выполнения для поддержки новых обновлений.

[0022] В, по меньшей мере, некоторых вариантах осуществления, компонент 114 активации приложений реализует объектно-ориентированный подход для осуществления связи с приложениями и направления их в отношении контрактов и точек 112 расширения и/или для иного управления точками расширения, обеспеченными как часть операционной системы 108. Например, в случае применения объектно-ориентированного подхода, компонент 114 активации приложений может обеспечивать или иначе использовать объекты 116 контракта для активации и направления приложений 110 для выполнения контрактов. Объектно-ориентированный подход можно использовать вместо традиционных строковых параметров командной строки, которые громоздки, труднообновляемы и обеспечивают сравнительно жесткие и упрощенные команды по сравнению с более функционально богатыми объектами, доступными в объектно-ориентированном подходе. Например, более функционально богатые объекты могут обеспечивать возможности, недоступные при использовании параметров командной строки, например, среди прочих, обеспечение двусторонней связи, получение данных из внешних процессов и обеспечение посреднических объектов между приложениями для доступа к совместно используемым данным.

[0023] Объекты 116 контракта можно конструировать согласно ожидаемому и согласованному протоколу связи, который поддерживается совместимыми приложениями. Протокол связи сконфигурирован для обеспечения инвариантного, независимого от вычислительного языка способа связи между разными сущностями и средами, которые могут внутренне использовать разные вычислительные языки, протоколы и методы. Совместимые приложения способны понимать общий формат, применяемый для объектов, и, если применимо, переводить объекты в зависящие от приложения форматы, пригодные для конкретной платформы/среды. Один пример подходящего протокола, который можно применять в некоторых вариантах осуществления, представляет собой модель компонентных объектов (COM) Microsoft™. Однако любой подходящий протокол, обеспечивающий инвариантную, независимую от языка связь между разными сущностями и/или средами, можно использовать для реализации описанной здесь инфраструктуры активации приложений.

[0024] Объекты 116 контракта (или другие эквивалентные объекты, данные и/или сообщения) могут передаваться непосредственно приложениям 110 и/или, в ряде случаев, через соответствующие платформы 118 среды выполнения, соответствующие приложениям, вызванным для обслуживания соответствующего контракта. Объект 116 контракта может быть сконфигурирован для передачи любой подходящей информации, касающейся контракта, на принимающее приложение. В общем случае, информация, передаваемая через объекты 116 контракта (или иначе), сконфигурирована так, чтобы активировать назначенное приложение и дать возможность приложению обслуживать соответствующий контракт в соответствии с указаниями со стороны OS. Согласно фиг. 1, объект 116 контракта может включать в себя ID 120 контракта для идентификации контракта принимающему приложению, детали 122 контракта, описывающие контуры и/или конкретные данные для контракта, и настройки 124 активации, используемые для управления тем, как принимающее приложение активирует и/или осуществляет обработку для обработки контракта. Дополнительные детали, касающиеся этих и других аспектов подходов к активации приложений, описаны в связи со следующими чертежами.

[0025] Описав примерную операционную среду, рассмотрим примерные подходы к активации приложений в соответствии с одним или более вариантами осуществления.

Подходы к активации приложений

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

[0027] Дополнительные детали, касающиеся подходов к активации приложений, описаны в связи с примерным операционным сценарием, изображенным на фиг. 2, который в целом обозначен позицией 200. В частности, на фиг. 2 представлены некоторые иллюстративные детали, касающиеся компонента 114 активации приложений, который может экспонироваться OS для обработки активации приложений. Согласно фиг. 2, операционная система 108 может принимать запрос 202. Запрос 202 может быть получен от субъекта (например, приложения, устройства, пользователя или компонента), желающего использовать функциональные возможности, обеспечиваемые точкой расширения. Другими словами, запрос представляет собой запрос доступа к расширяемым функциональным возможностям. В этом примере, операционная система 108 включает в себя компонент 114 активации приложений, сконфигурированный для обработки запроса 202 и иного управления расширяемыми функциональными возможностями, предоставляемыми через OS. Конечно, компонент 114 активации приложений можно альтернативно обеспечить как компонент, отдельный от OS, как упомянуто ранее.

[0028] В ответ на запрос 202, компонент 114 активации приложений может быть сконфигурирован для выбора приложения для обслуживания запроса. В одном подходе, запрос может указывать конкретное применение для реализации расширяемых функциональных возможностей. Дополнительно или альтернативно, совместимое приложение можно выбирать из группы приложений, которые поддерживают расширяемые функциональные возможности. Например, приложения могут регистрироваться в OS или иначе извещать ее об отдельных точках расширения, поддерживаемых и обслуживаемых приложениями. Соответственно, OS может поддерживать, осуществлять доступ или иначе использовать манифест, базу данных, таблицу или другую подходящую структуру данных, сконфигурированную для сопоставления приложений с разными точками расширения. На основании этого сопоставления, OS способна перечислять все приложения, указавшие способность к обслуживанию конкретной точки расширения, соответствующей запросу 202. В, по меньшей мере, некоторых вариантах осуществления, список возможных приложений для обслуживания запроса может экспонироваться запрашивающей стороне для выбора. В другом подходе, компонент 114 активации приложений может быть сконфигурирован для самостоятельного выбора приложения (например, без помощи явного выбора запрашивающей стороной) с использованием списка предпочтений, стандартных вариантов выбора, рейтингов, обратной связи с сообществом и/или других подходящих критериев выбора. В общем случае, любые подходящие подходы и/или эвристики, включая комбинации вышеприведенных примеров, можно применять для определения того, какое приложение активировать в соответствии с запросом 202.

[0029] В любом случае, компонент 114 активации приложений идентифицирует и/или выбирает приложение для обслуживания запроса 202. Согласно фиг. 2, приложение может реализовываться или не реализовываться посредством соответствующей платформы 118 среды выполнения. Компонент 114 активации приложений может действовать для активации выбранного приложения для выполнения запроса. В частности, запрос 202 предписывает компоненту 114 активации приложений инициировать контракт с приложением для реализации расширяемых функциональных возможностей. Например, компонент 114 активации приложений может создавать объект 116 контракта (или множественные объекты контракта) для связи с выбранным приложением. Один или более объектов 116 контракта передаются компонентом 114 активации приложений надлежащему приложению 110 и обеспечивают различную информацию, которая используется приложением для выполнения контракта. Эта информация включает в себя ID 120 контракта, детали 122 контракта для конкретного контракта и настройки 124 активации для управления осуществлением контракта, которые можно обеспечить как отдельные объекты и/или посредством единичного объекта контракта.

[0030] В частности, ID 120 контракта используется для передачи приложению конкретного контракта, подлежащего осуществлению. Как и точки 112 расширения, разные контракты могут быть связаны с разными функциональными возможностями, например поисковыми запросами, совместным использованием данных приложениями, потоковой передачей файлов, операциями внешнего устройства, запуском приложений, взаимодействий веб-сайтов, контролем состояния активации и т.д.

[0031] Приложение может использовать ID 120 контракта, чтобы различать различные типы контрактов и понимать, как интерпретировать и обрабатывать остальную информацию, поступающую через объект 116 контракта. Таким образом, приложение может манипулировать, переводить и/или иначе обрабатывать объект 116 контракта по-разному в зависимости от конкретного контракта, который соответствует объекту 116 контракта, указанному посредством ID контракта. Например, идентичные аргументы, передаваемые с объектами контракта, можно интерпретировать и манипулировать ими по-разному в зависимости от ID контракта. В, по меньшей мере, некоторых вариантах осуществления контракты могут быть организованы в классы, соответствующие различным типам контрактов. В этом случае, ID контракта также можно использовать для передачи класса контракта, соответствующего контракту.

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

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

[0034] Например, настройки 124 активации могут включать в себя параметры создания окна, назначенные для управления созданием окна для приложения. Параметры создания окна, передаваемые с объектом контракта, можно использовать для обеспечения непрерывности вида и ощущения по пользовательским интерфейсам, применяемым OS и другими приложениями. Таким образом, окна для разных приложений могут быть скоординированными и появляться иммерсивно как часть пользовательского интерфейса для OS, или же OS выбирает размещение, порядок и организацию окон. Параметры создания окна могут быть сконфигурированы для управления хронированием создания окна приложения, размещением окна в выбранном месте экрана и/или визуальными аспектами, например цветами, шрифтами, графикой и т.д. Дополнительно, параметры создания окна можно использовать для указания разновидности создаваемого окна из разных доступных опций. Опции для типов окон могут включать в себя, среди прочих, полноразмерное/самостоятельное окно, внедренное или подчиненное окно, расположенное в UI другого приложения, окно для вывода на внешнее устройство, невидимое окно (например, фоновый процесс) или минимодовое окно. Таким образом, параметры создания окна обеспечивают управление, зависящее от контракта, над UI для указания создания надлежащей разновидности окна, которое запускается в правильном месте и имеет вид и ощущения, скоординированный с OS и/или другими приложениями.

[0035] В одном подходе, настройки 124 активации направляются на платформу 118 среды выполнения, которая принимает и использует настройки для активации соответствующего приложения в надлежащем состоянии, которое задано параметрами создания окна и/или другими настройками. Другая информация, включенная в объект контракта, например ID контракта и детали контракта, передаются самому коду приложения, который осуществляет фактическое выполнение контракта. В этом подходе, платформа 118 среды выполнения участвует в активации приложений, в основном для обработки заданий, связанных с инициализацией приложения. Платформа 118 среды выполнения может осуществлять эти задания, не располагая информацией об особенностях контракта или точках расширения, обеспечиваемых OS. Поскольку платформа 118 среды выполнения не располагает информацией о точках расширения, инфраструктура допускает разработку и добавление новых точек расширения, преимуществами которых могут пользоваться приложения, не внося изменений в платформу 118 среды выполнения. Соответственно, новые расширения могут устанавливаться и использоваться без модификаций различных платформ 118 среды выполнения, которые могут использоваться устройством. Среда выполнения просто действует для обработки инициализации приложения на основании объекта контракта и передает большинство реализации расширения самому коду приложения.

[0036] Таким образом, для активации приложения, компонент 114 активации приложений передает объект 116 контракта на точку 204 входа, которая назначена приложением. Связь может осуществляться непосредственно с приложением или через платформу 118 среды выполнения в качестве посредника для приложений, реализованных в конкретной среде выполнения. Точки 204 входа приложений для различных точек расширения/контрактов могут назначаться, когда приложения регистрируются в OS или иначе извещают ее для указания поддержки отдельных точек расширения/контрактов. Точки 204 входа обеспечивают точку контакта для соответствующих приложений, через которую компонент 114 активации приложений может взаимодействовать, вызывать и/или активировать приложения.

[0037] Точка входа может соответствовать конкретному методу, средству управления, форме, веб-странице и/или другому подходящему компоненту приложения (или среде выполнения), сконструированному для обработки объекта 116 контракта и/или соответствующего контракта. Точка 204 входа понимает формат объекта 116 контракта и может осуществлять перевод объекта в конкретную форму приложения. Например, точка 204 входа может быть сконфигурирована для обработки объектов, сообщений и/или других данных, которые передаются в соответствии с инвариантным, независимым от вычислительного языка протоколом, применяемым компонентом 114 активации приложений. В частности, единичный метод приложения, который действует на объекте контракта, может быть указан как общая точка входа для приложения. Она действует как воронка, через которую различная информация, переносимая объектами 116 контракта, передается приложению. Метод указывает приложению начать участвовать в точке расширения для выполнения контракта. Таким образом, одна общая точка входа может назначаться для приложения, которое способно осуществлять операции в отношении объектно-ориентированных компонентов, которые затем передаются приложению.

[0038] Когда объект 116 контракта принимается через точку входа, объект 116 контракта предписывает точке входа активировать приложение и инициировать обработку приложением для выполнения соответствующего контракта. Обработка происходит под управлением OS и наподобие того, как указывает объект 116 контракта через детали 122 контракта и/или настройки 124 активации.

[0039] После обработки, приложение может формировать ответ 206, возвращаемый компоненту 114 активации приложений. Ответ отражает результаты выполнения контракта приложением, включающие в себя, по меньшей мере, индикацию того, успешно ли выполнен контракт. Детали этих и других аспектов подходов к активации приложений описаны в связи со следующими примерными способами.

Примерные способы

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

[0041] Фиг. 3 изображает примерный способ, в котором операционная система может активировать приложение для осуществления контракта, связанного с точкой расширения операционной системы. В, по меньшей мере, некоторых вариантах осуществления способ можно реализовать посредством надлежащим образом сконфигурированного вычислительного устройства, например иллюстративного вычислительного устройства 102, показанного на фиг. 1, которое включает в себя или иначе использует компонент 114 активации приложений.

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

[0043] Регистрация может происходить через компонент 114 активации приложений, который экспонируется операционной системой для обеспечения общего канала для активации приложений между разными приложениями и платформами среды выполнения. В частности, компонент 114 активации приложений может назначать идентификаторы приложений (AppID) и поддерживать манифест регистраций для разных приложений. Манифест сконфигурирован для согласования AppID с конкретными точками расширения по отдельности. Таким образом, манифест сопоставляет точки расширения с разными зарегистрированными приложениями, таким образом указывая, что эти приложения могут обслуживать эти точки расширения.

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

[0045] в частности, на этапе 304 осуществляется передача объекта(ов) контракта приложению. Объект контракта идентифицирует контракт и обеспечивает информацию, достаточную для того, чтобы приложение могло выполнить контракт. Например, объект 116 контракта может передаваться через точку входа соответствующей платформы 118 среды выполнения, которая обрабатывает инициализацию приложения 110 на основании объекта. Затем платформа среды выполнения устанавливает надлежащую среду выполнения, инициализирует приложение и передает приложению большинство деталей для реализации расширения. При этом применяется разветвленный подход, который отделяет реализацию контракта и конкретный код от платформы среды выполнения. Платформа среды выполнения обрабатывает инициализацию, а приложение обрабатывает реализацию с использованием соответствующей информации, обеспеченной как часть объекта 116 контракта. Таким образом, платформе среды выполнения не требуется знать конкретные детали точек расширения, контрактов или реализации. Таким образом платформа 118 среды выполнения поддерживает инфраструктуру активации приложений, но не требует параллельного обновления при создании дополнений или модификаций точек расширения. Кроме того, разработчики могут создавать точки расширения для инфраструктуры без учета обновления платформ среды выполнения.

[0046] С другой стороны, некоторые приложения могут быть сконструированы для самостоятельной обработки инициализации и/или могут быть записаны в аппаратном собственном коде, который не опирается на платформу среды выполнения. В этом случае, объект 116 контракта может передаваться непосредственно точке входа в самом приложении. В этом подходе, приложение может