МЕТОДИКИ ЗАПУСКА СЛУЖБ
METHODS OF LAUNCHING SERVICES

Предшествующий уровень техники
Службы могут конфигурироваться для предоставления широкого спектра функциональных возможностей, которые могут быть интересны пользователю. Например, службы могут использоваться для предоставления указаний к нужному ресторану, для поиска определения для конкретного слова, для нахождения прогноза погоды для излюбленного места отдыха и так далее. Однако традиционные методики, которые использовались для доступа к этим службам, часто были громоздкими и затрудняли взаимодействие с пользователем. Поэтому пользователи часто выбирали отказ от взаимодействия со службами, что также имело неблагоприятные финансовые последствия для поставщиков услуг.
Сущность изобретения
Описываются методики запуска служб. По меньшей мере в одной реализации вычислительное устройство принимает выделенный фрагмент текста, который с помощью приложения отображается в интерфейсе пользователя. Обнаруживается выбор одной из множества служб, которые отображаются в интерфейсе пользователя. В ответ на обнаружение выделенный фрагмент текста предоставляется выбранной службе без дополнительного вмешательства пользователя для инициирования работы выбранной службы с использованием выделенного фрагмента текста.
В реализации один или несколько машиночитаемых носителей включают в себя команды, которые являются исполняемыми для определения на основе речевого ввода, какие из множества служб должны принимать текст, который с помощью приложения отображается в интерфейсе пользователя. Команды также являются исполняемыми для предоставления текста в определенную службу без вмешательства пользователя.
Данное изложение сущности изобретения предоставляется, чтобы представить набор идей в упрощенном виде, которые дополнительно описываются ниже в подробном описании. Данное изложение сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения и также не предназначено для использования в ограничении объема заявленного изобретения.
Краткое описание чертежей
Во всех чертежах используются одинаковые номера для ссылки на схожие признаки.
Фиг.1 иллюстрирует систему, в которой различные принципы, описанные в этом документе, могут применяться в соответствии с одним или несколькими вариантами осуществления.
Фиг.2 иллюстрирует систему, обладающую многоуровневой сервисной платформой в соответствии с одним или несколькими вариантами осуществления.
Фиг.3 иллюстрирует примерную систему, обладающую многоуровневой сервисной платформой в соответствии с одним или несколькими вариантами осуществления.
Фиг.4 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.5 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.6 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.7 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.8 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.9 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.10 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.11 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.12 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.13 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.14 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.15 иллюстрирует интерфейс пользователя в соответствии с одним или несколькими вариантами осуществления.
Фиг.16 - логическая блок-схема, которая описывает этапы в способе в соответствии с одним или несколькими вариантами осуществления.
Фиг.17 - логическая блок-схема, которая описывает этапы в способе в соответствии с одним или несколькими вариантами осуществления.
Фиг.18 - логическая блок-схема, которая описывает этапы в способе в соответствии с одним или несколькими вариантами осуществления.
Фиг.19 иллюстрирует примерную систему, которая может использоваться для реализации одного или нескольких вариантов осуществления.
Подробное описание
Обзор
Хотя службы могут использоваться для предоставления широкого спектра функциональных возможностей, как описывалось ранее, традиционные методики, используемые для запуска взаимодействия со службами, были громоздкими. Например, пользователь может наблюдать вывод текста из приложения, например адрес ресторана, принятый в электронном письме и просмотренный с использованием приложения электронной почты. Если пользователю нужны указания дороги к ресторану, пользователь может взаимодействовать с картографической службой. Однако, чтобы получить эти указания, пользователь выделяет текст в электронном письме, который содержит адрес, и копирует текст, например путем нажатия правой кнопкой мыши для отображения меню, содержащего команду копирования, или с использованием комбинации клавиш «ctrl-c».
После копирования пользователь обычно открывает обозреватель (браузер) и переходит на Web-сайт, который предоставляет Web-службу, обладающую картографическими функциональными возможностями, например, чтобы предоставить пошаговые указания. Попав на Web-сайт, пользователь затем может вставить текст (или перепечатать его в другом примере), а потом нажать «enter» для получения нужных указаний. Таким образом, как показано в этом примере, пользователь традиционно вручную переключал контекст (например, из приложения электронной почты в приложение обозревателя), что может быть мешающим, а также вовлекался в длинный и часто громоздкий процесс для взаимодействия со службой.
Описываются методики запуска служб. В реализации выбор службы используется для предоставления текста службе, чтобы инициировать работу службы с использованием текста. Следуя предыдущему примеру, пользователь может выделить текст в электронном письме, который содержит адрес ресторана. Затем пользователь может нажать «горячую» клавишу и произнести, нажать или прикоснуться к представлению нужной службы, которая в этом примере является названием картографической службы. Выделенный текст затем предоставляется службе, чтобы сформировать указания без дополнительного взаимодействия с пользователем. Таким образом, пользователь может «выделить и спросить», чтобы инициировать работу службы. В реализации также могут использоваться функциональные возможности предварительного просмотра, так что результат работы службы с использованием текста отображается без переключения контекста, дополнительное обсуждение которых может быть обнаружено в отношении следующих разделов.
В обсуждении, которое следует, предоставляется раздел, озаглавленный «Рабочая среда», и он описывает одну среду, в которой могут применяться один или несколько вариантов осуществления. После этого предоставляется раздел, озаглавленный «Примерная многоуровневая сервисная платформа», и он описывает многоуровневую платформу в соответствии с одним или несколькими вариантами осуществления. Многоуровневая структура включает в себя, по меньшей мере в некоторых вариантах осуществления, уровень глобальной интеграции, который предназначен для интеграции служб с приложениями прежних версий, а также уровень интеграции общего элемента управления и уровень специальной интеграции. Уровень интеграции общего элемента управления может использоваться для предоставления общего элемента управления, который может использоваться между приложениями, чтобы интегрировать не только службы, о которых знают приложения, но и службы, о которых приложения не осведомлены. Уровень специальной интеграции может использоваться различными приложениями для индивидуальной настройки интерфейсов пользователя, которые предназначены для интеграции различных предложенных служб.
Далее раздел, озаглавленный «Пример реализации», описывает примерную реализацию многоуровневой сервисной платформы. После этого разделы, озаглавленные «Уровень глобальной интеграции - Пример интерфейса пользователя», «Уровень интеграции общего элемента управления - Пример интерфейса пользователя» и «Уровень специальной интеграции - Пример интерфейса пользователя», предоставляют соответственно примеры интерфейсов пользователя в соответствии с одним или несколькими вариантами осуществления. Далее раздел, озаглавленный «Примерные процедуры», описывает примерные процедуры в соответствии с одним или несколькими вариантами осуществления. В конечном счете раздел, озаглавленный “Примерная система», описывает примерную систему, которая может использоваться для реализации одного или нескольких вариантов осуществления.
Операционная среда
Фиг.1 иллюстрирует операционную среду в соответствии с одним или несколькими вариантами осуществления, в целом по ссылке 100. Среда 100 включает в себя вычислительное устройство 102, имеющее один или несколько процессоров 104, один или несколько машиночитаемых носителей 106 и одно или несколько приложений 108, которые находятся на машиночитаемых носителях и которые исполняются процессором (процессорами). Приложения 108 могут включать в себя любой подходящий тип приложения, например, в качестве примера, а не ограничения, приложения обозревателя, приложения для чтения, приложения электронной почты, приложения обмена мгновенными сообщениями и ряд других приложений. Машиночитаемые носители в качестве примера, а не ограничения, могут включать в себя различные формы энергозависимого и энергонезависимого запоминающего устройства и/или носителей информации, которые обычно ассоциируются с вычислительным устройством. Такие носители могут включать в себя ROM, RAM, флэш-память, жесткий диск, съемные носители и т.п. Один характерный пример вычислительного устройства показан и описан ниже на фиг.19.
К тому же вычислительное устройство 102 включает в себя сервисную платформу 110. В реализации сервисная платформа может объединять службы, такие как Web-службы (например, службы, доступные по сети 112 с одного или нескольких Web-сайтов 114) и/или локальные службы, среди ряда приложений, таких как упомянутые выше и другие. По меньшей мере в некоторых вариантах осуществления службы могут объединяться с приложениями прежних версий, которые «не осведомлены» о таких службах, а также с приложениями, которые знают о таких службах, как станет очевидно ниже. Как указано на фигуре, сервисная платформа 110 находится в виде машиночитаемых команд или кода, который находится на машиночитаемых носителях 106.
Сервисная платформа 110 может конфигурироваться различными способами. Например, как проиллюстрировано на фиг.1, сервисная платформа 110 иллюстрируется как включающая в себя модуль 116 запуска служб, который соответствует функциональным возможностям для инициирования работы службы. Например, модуль 116 запуска служб может составлять часть операционной системы, которая включает в себя функциональные возможности копирования, например «буфер обмена», который доступен с помощью комбинации горячих клавиш «CTRL C». Используя эти функциональные возможности, модуль 116 запуска служб может принимать текст, который выводился одним или несколькими приложениями 108. Также предполагается ряд других примеров выделения текста, например «перетащить и оставить» («drag and drop») и так далее. Более того, хотя этот пример описывал использование функциональных возможностей, встроенных в операционную систему для копирования текста, также предполагаются другие примеры, например посредством конфигурации модуля 116 запуска служб в качестве «автономного» модуля, интеграция с одним или несколькими приложениями 108, и так далее.
Модуль 116 запуска служб также соответствует функциональным возможностям для выбора конкретной службы, которая должна выполнять работу с использованием выделенного текста. Выбор службы может выполняться различными способами. Например, модуль 116 запуска служб может использовать методики распознавания речи и поэтому принимать речевой ввод. Методики распознавания речи могут встраиваться в модуль 116 запуска служб, в операционную систему, выполняемую на вычислительном устройстве 102, существовать в виде автономного модуля и так далее. Модуль 116 запуска служб также может принимать сенсорный ввод, традиционный ввод с мыши/клавиатуры и так далее для выбора конкретной службы.
Модуль 116 запуска служб дополнительно соответствует методикам для инициирования работы выбранной службы с использованием выделенного текста. Например, как только выбирается конкретная служба, модуль 116 запуска служб может предоставить выделенный текст (например, из «буфера обмена») конкретной службе без дополнительного взаимодействия с пользователем, например, без необходимости для пользователя вручную «вставлять» текст в службу после выбора службы. Таким образом, модуль 116 запуска служб может предоставлять эффективный доступ к службам, дополнительное обсуждение которого может быть обнаружено в отношении следующих разделов.
Вычислительное устройство 102 может быть реализовано в виде любого подходящего вычислительного устройства, например, в качестве примера, а не ограничения, настольного компьютера, портативного компьютера, карманного компьютера, такого как персональный цифровой помощник (PDA), сотового телефона и т.п.
Как правило, любые функции, описанные в этом документе, могут быть реализованы с использованием программного обеспечения, микропрограммного обеспечения (например, неизменяемая логическая схема), ручной обработки или сочетания этих реализаций. Термины «модуль», «функциональные возможности» и «логика» при использовании в этом документе обычно представляют программное обеспечение, микропрограммное обеспечение или сочетание программного обеспечения и микропрограммного обеспечения. В случае программной реализации модуль, функциональные возможности или логика представляют программный код, который выполняет заданные задачи при исполнении в процессоре (например, центральном процессоре или процессорах). Программный код может храниться на одном или нескольких машиночитаемых запоминающих устройствах, например, машиночитаемых носителях 106. Признаки методик запуска служб, описанные ниже, являются платформо-независимыми, то есть методики могут быть реализованы на различных промышленных вычислительных платформах, имеющих различные процессоры.
Примерная многоуровневая сервисная платформа
Фиг.2 иллюстрирует систему, обладающую многоуровневой сервисной платформой в соответствии с одним или несколькими вариантами осуществления, в целом по ссылке 200. В этом примере система 200 включает в себя несколько разных приложений 202, 204, 206, 208 и 210. Приложения могут содержать ряд приложений, примеры которых предоставляются выше и ниже. К тому же в этом примере система 200 включает в себя несколько разных уровней платформы, которые предназначены для интеграции служб, Web-служб и/или локальных служб, между различными приложениями, например приложениями 202-210. В этом конкретном примере несколько разных уровней включают в себя уровень 212 глобальной интеграции, уровень 214 интеграции общего элемента управления и уровень 216 специальной интеграции.
В проиллюстрированном и описанном варианте осуществления уровень 212 глобальной интеграции предназначен для предоставления возможности приложениям, которые не «знают о службах», все же разрешать пользователю обращаться и использовать такие службы из приложений. С этой целью по меньшей мере в некоторых вариантах осуществления уровень глобальной интеграции предоставляет общий интерфейс пользователя, который отображает одну или несколько служб, которые доступны и которые могут быть вызваны из приложения. В этом варианте осуществления функциональные возможности уровня глобальной интеграции поддерживаются операционной системой, работающей на локальном клиентском устройстве.
Когда пользователь хочет выяснить, какие службы доступны из приложения, которое не знает о службах, пользователь может выполнять конкретное действие, например использование ярлыка на рабочем столе операционной системы (например, нажатие комбинации горячих клавиш), которое обнаруживается операционной системой. В ответ на обнаружение действия пользователя операционная система может осуществить вызов API к хранилищу локальных служб, чтобы принять перечень служб, которые доступны. Затем операционная система может представить общий интерфейс пользователя, который перечисляет доступные пользователю службы.
В одном или нескольких вариантах осуществления, как только пользователю представлен общий интерфейс пользователя, пользователь может выполнить некоторое количество разных действий. Например, в некоторых вариантах осуществления пользователь может навести курсор на описание или значок конкретной службы и получить предварительный просмотр той службы. С другой стороны или дополнительно, пользователь может нажать на описание или значок конкретной службы и затем перейти к функциональным возможностям той службы. Дополнительно пользователь может предоставить речевой ввод путем произнесения названия или другого идентификатора, который подходит для выбора конкретной службы из множества служб. Переход к функциональным возможностям конкретной службы может включать в себя локальный переход или переход, основанный на интернет-технологии. В одном или нескольких вариантах осуществления переход может включать в себя отправку данных, например выбранных пользователем, в службу для обработки службой.
Таким образом, в этом варианте осуществления общий интерфейс пользователя, который предоставляется операционной системой, осведомлен о конкретных вызовах API, которые используются для представления доступных служб и предоставления возможности пользователям выбирать одну или несколько из этих служб. Таким образом, приложения, которые не «знают о службах», по-прежнему могут использоваться в качестве отправного пункта для доступа пользователя к службам.
В проиллюстрированном и описанном варианте осуществления уровень 214 интеграции общего элемента управления предоставляет элемент управления, который может вмещаться одним или несколькими приложениями. Элемент управления может позволить приложениям собирать те службы, которые приложения исходно поддерживают, а также предоставить средство, с помощью которого службы, которые исходно не поддерживаются приложениями, могут все же предлагаться пользователю.
Когда пользователь хочет выяснить, какие службы доступны из приложения, пользователь может выполнить конкретное действие, такое как совершение конкретного выбора, например выделение текста или выбор файла. В ответ на обнаружение действия пользователя вмещаемый элемент управления может осуществить вызов API к хранилищу локальных служб, чтобы принять перечень служб, которые доступны. Затем элемент управления может представить интерфейс пользователя, который перечисляет доступные пользователю службы. Эти службы могут включать в себя службы, которые исходно предлагаются приложением, а также службы, которые предлагаются другими поставщиками услуг либо локально, либо удаленно.
В одном или нескольких вариантах осуществления, как только пользователю представлен интерфейс пользователя, пользователь может выполнить некоторое количество разных действий. Например, пользователь может выбрать одну из служб с использованием речи, например путем произнесения идентификатора (например, названия и/или действия, выполняемого службой, например «показать это на карте» для картографической службы) конкретной службы для выбора службы, настроенного идентификатора, введенного ранее пользователем для выбора пользователя, и так далее.
В некоторых вариантах осуществления пользователь может запросить «предварительный просмотр» конкретной службы, например, посредством речевого ввода (например, «предварительный просмотр карты»), может «навести» курсор на описание или значок конкретной службы, и так далее. С другой стороны или дополнительно, пользователь затем может выбрать (например нажать) описание или значок конкретной службы и перейти к функциональным возможностям той службы. Переход к функциональным возможностям конкретной службы может включать в себя локальный переход или переход, основанный на интернет-технологии.
Таким образом, в этом варианте осуществления элемент управления осведомлен о конкретных вызовах API, которые используются для представления доступных служб и предоставления возможности пользователям выбирать одну или несколько служб. Таким образом, приложения могут использовать элемент управления как для исходного предложения служб, так и для предоставления служб, предложенных другими поставщиками услуг. К тому же, поскольку элемент управления может вмещаться разными приложениями, общее взаимодействие с пользователем может обеспечиваться в различных приложениях.
В одном или нескольких вариантах осуществления уровень 216 специальной интеграции предоставляет набор API, который может использоваться приложениями, которые знают о API, для приема списка предлагаемых служб, а затем создания собственного интерфейса пользователя и взаимодействия с пользователем, посредством которых пользователь может использовать предложенные службы.
Описав общее понятие многоуровневой сервисной платформы, рассмотрим теперь пример реализации, который описывает один характерный пример многоуровневой сервисной платформы. Нужно учитывать и понимать, что и нижеследующее описание предоставляет лишь один пример и не должно использоваться для ограничения применения заявленного предмета изобретения определенной реализацией. Соответственно, другие реализации могут использоваться без отклонения от сущности и объема заявленного изобретения.
Пример реализации
Фиг.3 иллюстрирует примерную систему, обладающую многоуровневой сервисной платформой в соответствии с одним или несколькими вариантами осуществления, в целом по ссылке 300. В этом примере система 300 включает в себя приложения в виде Web-обозревателя 302, приложения 304 для чтения, приложения 306 электронной почты, приложения 308 обмена мгновенными сообщениями и одного или нескольких так называемых приложений 310 прежних версий. Применительно к этому документу приложение прежних версий может рассматриваться в качестве приложения, которое не знает по меньшей мере о некоторых службах, к которым может обращаться пользователь при использовании приложения. Проиллюстрированные приложения предоставляются для примера и не предназначены для ограничения применения заявленного изобретения. Соответственно, могут использоваться другие приложения без отклонения от сущности и объема заявленного изобретения.
В этом конкретном примере уровень глобальной интеграции включает в себя меню 312 системных служб и компонент 314 управления службами, а уровень интеграции общего элемента управления включает в себя общее контекстное меню 316. Дополнительно в одном или нескольких вариантах осуществления уровень специальной интеграции включает в себя компонент 318 распознавания данных, прикладной программный интерфейс или API 320, хранилище 322 служб, компонент 324 предварительного просмотра и компонент 326 выполнения.
В одном или нескольких вариантах осуществления меню 312 системных служб на уровне глобальной интеграции может вызываться пользователем при использовании одного или нескольких приложений и с контекстом, предоставленным приложением (приложениями). На практике приложения, которые не «знают о службах», могут использоваться для вызова меню системных служб. В одном или нескольких вариантах осуществления меню системных служб поддерживается операционной системой клиентского устройства и может вызываться различными способами. Например, выделенный фрагмент текста, показанный приложением, может вызвать вывод меню 312 системных служб в виде всплывающего меню рядом с выделенным текстом.
В другом примере по меньшей мере в некоторых вариантах осуществления пользователь может обратиться к меню системных служб путем нажатия конкретной комбинации горячих клавиш. При обнаружении операционной системой комбинация горячих клавиш приводит к вызову API, чтобы прикладной программный интерфейс 320 принял список доступных служб. Доступные службы могут быть службами, которые предлагаются локально, и/или службами, которые предлагаются удаленными поставщиками услуг. Меню 312 системных служб затем представляет интерфейс пользователя, который перечисляет доступные службы, к которым может обратиться пользователь. В одном или нескольких вариантах осуществления интерфейс пользователя, представленный меню 312 системных служб, является общим для ряда приложений, соответственно предлагая комплексное, единообразное взаимодействие с пользователем.
Как только службы перечислены для пользователя посредством интерфейса пользователя, представленного меню 312 системных служб, пользователь может выбрать конкретную службу, например путем произнесения идентификатора службы (например, показанного названия в меню, ранее сохраненного пользовательского идентификатора и так далее), путем использования устройства управления курсором для выбора службы, и так далее. В одном или нескольких вариантах осуществления пользователь может получить предварительный просмотр службы посредством компонента 324 предварительного просмотра, путем выполнения некоторого действия по отношению к показанной службе.
Например, пользователь может предоставить речевой ввод, чтобы инициировать предварительный просмотр конкретной службы с использованием текста (например, «предварительный просмотр определения» для определения выделенного текста с помощью службы), навести курсор на или рядом с конкретным описанием или значком, ассоциированными со службой, и получить предварительный просмотр той службы, и так далее. В одном или нескольких вариантах осуществления предварительные просмотры могут предоставляться для пользователя без необходимости покидать контекст приложения. Когда курсор наводится таким образом, например, операционная система может осуществить вызов API к компоненту 324 предварительного просмотра, чтобы принять информацию или данные, которые должны представляться как часть предварительного просмотра. С другой стороны или дополнительно, путем нажатия на описание или значок конкретной службы пользователь может заставить службу выполняться. Когда это происходит, операционная система может осуществить вызов API к компоненту 326 выполнения, который, в свою очередь, может заставить службу выполняться. Выполнение службы может включать в себя, в качестве примера, а не ограничения, действие по переходу, которое может быть одним или обоими из локального перехода или удаленного перехода. Примеры того, как это может выполняться, предоставляются ниже.
В одном или нескольких вариантах осуществления компонент 314 управления службами предоставляет различные функциональные возможности по управлению, ассоциированные со службами. Например, в одном или нескольких вариантах осуществления компонент 314 управления службами может предоставить функциональные возможности, которые дают пользователю возможность добавлять, удалять и/или обновлять конкретную службу. Дополнительно, в одном или нескольких вариантах осуществления компонент управления службами может дать пользователю возможность задать конкретную службу в качестве службы по умолчанию для удобного доступа. В еще одних вариантах осуществления компонент 314 управления службами может позволить пользователю настроить то, как выбираются текст и/или службы, например, использовать пользовательские идентификаторы для служб, которые могут произноситься пользователем, чтобы запустить службу.
В одном или нескольких вариантах осуществления общее контекстное меню 316 на уровне интеграции общего элемента управления предоставляет общее контекстное меню для различных приложений. В одном или нескольких вариантах осуществления общее контекстное меню является элементом управления, который может вмещаться различными приложениями. По меньшей мере в некоторых вариантах осуществления этим приложениям не приходится исходно понимать, как работает служба или ассоциированное действие. Еще с помощью размещения элемента управления приложение может по-прежнему предлагать службу как часть взаимодействия с приложением.
Когда приложение вмещает общее контекстное меню, приложение может заполнить меню службами, которые оно предлагает, а также другими службами, которые предлагаются другими поставщиками услуг. По существу, приложение может предлагать как собственные службы, так и несобственные службы. Дополнительно эти службы могут быть локальными по отношению к вычислительному устройству 102 (например, поиск на компьютере) и/или доступными по сети 112, например Web-службы и другие сетевые службы. В одном или нескольких вариантах осуществления общее контекстное меню информировано о прикладном программном интерфейсе 320 и может осуществлять подходящие вызовы API для приема информации о службах, которые предлагаются и описываются в хранилище 322 служб. В частности, в одном или нескольких вариантах осуществления общее контекстное меню знает об API конкретной службы.
В одном или нескольких вариантах осуществления устройство 318 распознавания данных конфигурируется для распознавания данных, ассоциированных с конкретными вызовами API, в которых запрашиваются перечни служб. Соответственно, устройство 318 распознавания данных тогда может гарантировать, что надлежащий набор служб возвращается вызывающей стороне. Например, если пользователь выделяет конкретный участок текста, например адрес, то конкретное подмножество служб может быть неподходящим для возврата. В этом случае устройство 318 распознавания данных может принять меры, чтобы возвращался правильный перечень служб.
В одном или нескольких вариантах осуществления прикладной программный интерфейс 320 предоставляет набор API, который может использоваться для добавления, удаления или иного управления службами, которые могут представляться пользователю. API могут включать в себя API, которые используются для приема перечня служб. Ниже предоставляется только один пример набора API в разделе, озаглавленном «Примерные API».
В одном или нескольких вариантах осуществления хранилище 322 служб используется для обслуживания информации и/или данных, ассоциированных с разными службами, которые могут предлагаться. Службы могут гибко добавляться и удаляться из хранилища служб. Это может выполняться различными способами. В одном или нескольких вариантах осуществления это может выполняться посредством использования декларативной модели, которую поставщики услуг используют для описания предлагаемых служб. Когда прикладным программным интерфейсом 320 принимается вызов, информация, ассоциированная с вызовом, может извлекаться из хранилища 322 служб и представляться соответствующим образом.
В одном или нескольких вариантах осуществления компонент 324 предварительного просмотра может использоваться для обеспечения предварительного просмотра одной или нескольких предложенных служб. Пример того, как это может выполняться, предоставляется ниже.
В одном или нескольких вариантах осуществления компонент 326 выполнения может использоваться для выполнения одной или нескольких предлагаемых служб. Пример того, как это может выполняться, предоставляется ниже.
Уровень глобальной интеграции - Пример интерфейса пользователя
Фиг.4 иллюстрирует интерфейс пользователя для приложения чтения, в целом по ссылке 400. В этом примере пользователь открыл приложение для чтения на рабочем столе и открыл документ 402 с использованием приложения для чтения. В этом примере приложение для чтения исходно не поддерживает одну или несколько служб, которые должны предлагаться пользователю.
Ссылаясь на фиг.5, пользователь выделил текст «Blogging» с помощью курсора, указанный с помощью пунктирного прямоугольника 500. В ответ на это действие пользователя операционная система осуществила вызов API к прикладному программному интерфейсу 320 (фиг.3) и ответно представляет меню 502 системных служб, которое перечисляет некоторое количество доступных служб. Как показано в качестве примера, а не ограничения, службы включают в себя службу поиска, службу определения, службу исследования, картографическую службу, службу новостей, службу изображений и службу перевода. В проиллюстрированном и описанном варианте осуществления никакие из перечисленных служб исходно не поддерживаются приложением 400 для чтения.
Ссылаясь на фиг.6, пользователю представляется предварительный просмотр 600. Например, пользователь может предоставить речевой ввод, запускающий предварительный просмотр (например, «предварительный просмотр определения»), может навести курсор на перечень служб определения или рядом с ним, и так далее. В этом конкретном примере предварительный просмотр кратко определяет термин, который выделен пользователем. В этом примере представление предварительного просмотра 600 является результатом вызова API, осуществленного операционной системой к прикладному программному интерфейсу 320 (фиг.3), в сотрудничестве с компонентом 324 предварительного просмотра без вмешательства пользователя, которое включает в себя выделенный текст, например «blogging». В этом конкретном примере представленный предварительный просмотр вызывает переход к удаленному поставщику услуг, который в свою очередь предоставляет информацию, показанную в предварительном просмотре, которая является результатом операции, выполненной удаленным поставщиком услуг с использованием текста.
В этот момент пользователь может выбрать или не выбрать дальнейшее выполнение службы. Если пользователь выбирает выполнение службы, например, путем нажатия на предварительный просмотр 600, предоставления речевого идентификатора службы и так далее, то может происходить полный переход к сайту определений. Например, фиг.7 иллюстрирует интерфейс 700 пользователя, который предоставляется в результате перехода к сайту определений. В этом примере может предоставляться подробное определение термина, выделенного пользователем, а также другая информация, предоставленная сайтом определений.
Таким образом, приложение, которое исходно не поддерживает конкретную службу, все же может предоставлять доступ к некоторому количеству служб посредством поддержки операционной системы. Более того, этот доступ может эффективно предоставляться посредством произнесенного слова или других входных данных, которые могут использоваться для предоставления службе выделенного текста, показанного приложением.
В качестве другого примера рассмотрим фиг.8. Там показано приложение 400 для чтения и документ 402. В этом примере пользователь с помощью курсора выделил адрес, указанный пунктирным прямоугольником 800.
Ссылаясь на фиг.9, пользователю представлен предварительный просмотр в виде картографического интерфейса 900 пользователя. Путем нажатия на предварительный просмотр пользователь может быть перемещен на картографический сайт, который может, например, предоставить пользователю возможность приема указаний направления движения к конкретному адресу, а также другие функциональные возможности, которые обычно предоставляются на картографических сайтах.
В этом случае снова приложение для чтения, которое исходно не поддерживает картографическую службу, все же может предоставлять доступ к картографической службе при поддержке операционной системы.
Уровень интеграции общего элемента управления - Пример интерфейса пользователя
В одном или нескольких вариантах осуществления уровень интеграции общего элемента управления может предоставлять общий элемент управления, который может использоваться приложениями для предоставления служб, к которым может обращаться приложение. В одном или нескольких вариантах осуществления общий элемент управления принимает вид меню системных служб, например, предоставленный посредством меню 312 системных служб (фиг.3). В качестве примера рассмотрим фиг.10, которая иллюстрирует интерфейс пользователя, предоставленный приложением электронной почты, в целом по ссылке 1000. В этом примере пользователь выделил адрес, указанный по ссылке 1002, например, посредством использования устройства управления курсором.
В ответ на выделение пользователя может представляться общий элемент управления, который может показать для пользователя не только службы, предложенные приложением, но и службы, которые предлагаются другими поставщиками услуг. В качестве примера рассмотрим фиг.11, которая иллюстрирует общий элемент 1100 управления, который перечисляет службы, предложенные приложением, а также службы, которые предоставляются другими поставщиками услуг. В частности, в этом примере службы, предложенные приложением, включают в себя службы «Копировать» и службы «Выбрать все».
К тому же могут быть показаны другие службы, которые исходно не предлагаются приложением. В частности, в этом примере такие службы включают в себя службу «Показать на Windows Live», службу «Отправить в Gmail» и службу «Перевести с помощью BabelFish». В этом примере службы, которые представляются в общем элементе 1100 управления, являются результатом вызова API, который осуществлен элементом управления.
Общий элемент 1100 управления также иллюстрируется как включающий часть, имеющую копию текста (например, адрес, указанный по ссылке 1002), который нужно предоставить службе для выполнения соответствующей операции, например, «Показать на Windows Live». Таким образом, общий элемент 1100 управления может подтверждать, какой текст будет отправлен в службу. Дополнительно общий элемент 1100 управления также иллюстрируется как включающий примеры указаний 1104, 1106, которые располагаются рядом с соответствующими представлениями служб для указания, что изображенные службы являются выбираемыми с использованием речевого ввода.
Ссылаясь на фиг.12, пользователь навел курсор на картографическую службу или около нее и ответно получил предварительный просмотр 1200 карты, который обеспечивает предварительный просмотр службы. Теперь с помощью нажатия на предварительный просмотр 1200 пользователь может быть перемещен на ассоциированный картографический сайт, который предоставляет другие картографические функциональные возможности, которые описаны выше. Также могут использоваться другие методики выделения, описанные ранее.
Таким образом, общий элемент управления может использоваться среди различных приложений, чтобы дать возможность представлять пользователю службы, которые исходно поддерживаются приложением, а также службы, которые исходно не поддерживаются приложением. Использование общего элемента управления среди разных приложений обеспечивает единообразное, комплексное взаимодействие с пользователем.
Уровень специальной интеграции - Пример интерфейса пользователя
В одном или нескольких вариантах осуществления уровень специальной интеграции предоставляет набор API, который может использоваться приложениями, которые знают о API, для приема списка предлагаемых служб, а затем создания собственного интерфейса пользователя и взаимодействия с пользователем, посредством которых пользователь может использовать предложенные службы. В качестве примера рассмотрим фиг.13, которая показывает приложение в виде приложения обмена мгновенными сообщениями, имеющего интерфейс 1300 пользователя. В этом примере пользователь вступил в диалог с другим человеком. Диалог имеет отношение к тому, где участники хотели бы пообедать. Один из участников упомянул конкретное кафе.
Ссылаясь на фиг.14, пользователь выделил текст «café presse», который указан пунктирным прямоугольником 1400. В ответ на обнаружение этого выделенного фрагмента текста приложение обмена мгновенными сообщениями, которое в этом примере знает об API платформы, осуществило вызов API для приема списка предлагаемых служб. В этом примере пользователь произносит команду (например, «показать это на карте»), и соответствующая картографическая служба предоставляется и ассоциируется со значком, показанным по ссылке 1402. В этой реализации картографическая служба предоставляется без дополнительного взаимодействия от пользователя после произнесения команды.
Как и раньше, картографическая служба может предоставить «предварительный просмотр» операции, выполняемой службой с использованием текста, без перемещения пользователя из текущего интерфейса пользователя. В качестве примера рассмотрим фиг.15. Там пользователю предоставляется предварительный просмотр в виде картографического интерфейса 1500 пользователя. Предварительный просмотр может быть сконфигурирован выбираемым, так что пользователь может быть перемещен к дополнительным функциональным возможностям, ассоциированным с предварительным просмотром карты. Например, пользователь может быть перемещен на картографический сайт, который мог бы предоставлять, например, указания направления движения, ассоциированные с конкретным выбором пользователя. Дополнительное обсуждение выбора службы может быть найдено в отношении следующих процедур.
Примерные процедуры
Нижеследующее обсуждение описывает методики, которые могут быть реализованы с использованием ранее описанных систем и устройств. Особенности каждой из процедур могут быть реализованы в аппаратных средствах, микропрограммном обеспечении (firmware) или программном обеспечении, либо в их сочетании. Процедуры показаны в виде набора этапов, которые задают операции, выполняемые одним или несколькими устройствами, и они не обязательно ограничены очередностями, показанными для выполнения операций соответствующими этапами. В частях нижеследующего обсуждения будет дана ссылка на ранее описанные среды и/или интерфейсы пользователя.
Фиг.16 - логическая блок-схема, которая описывает этапы в процедуре глобальной интеграции в соответствии с одним или несколькими вариантами осуществления. Процедура может быть реализована применительно к любым подходящим аппаратным средствам, программному обеспечению, микропрограммному обеспечению или их сочетанию. По меньшей мере в некоторых вариантах осуществления особенности процедуры могут быть реализованы сервисной платформой, например, показанной и описанной выше.
Операционная система обнаруживает действие пользователя (этап 1600). В примерах выше пользователь работает в приложении, например приложении прежних версий, которое не обязательно поддерживает службы, которые хотелось бы видеть. Здесь действие пользователя может быть действием, которое указывает, что пользователь желает узнать и по возможности использовать одну или несколько служб, которые не предлагаются приложением. Соответственно, посредством действия пользователя, которое может являться любым типом действия, например комбинацией горячих клавиш, речевым вводом и так далее, пользователь может указать, что он хочет узнать о предлагаемых службах. Например, пользователь может выделить текст, инициировать речевые функциональные возможности (например, нажать кнопку) и произнести одно или несколько слов, которые могут использоваться для идентификации конкретной службы.
Действие пользователя обнаруживается операционной системой и в ответ извлекается список служб, которые исходно не поддерживаются приложением (этап 1602). Список служб может извлекаться различными способами. В примерах выше список извлекается посредством обращения операционной системы к API, поддерживаемому платформой.
Отображается список служб для пользователя (этап 1604). Этот этап может выполняться различными способами с использованием различных интерфейсов пользователя. Предоставляется предварительный просмотр одной или нескольких служб (этап 1606). Этот этап также может выполняться различными способами. В примерах выше предварительные просмотры предоставляются в ответ на выполнение пользователем некоторого действия, например наведение курсора на ассоциированный со службой значок или около него или на описание службы, предоставление речевого ввода, который подходит для запуска предварительного просмотра конкретной службы (например, «предварительный просмотр определения»), и так далее. Предоставляется доступ к функциональным возможностям службы (этап 1608), который в этом примере может включать в себя перемещение пользователя на удаленный Web-сайт, где предлагаются функциональные возможности службы. С другой стороны или дополнительно, функциональные возможности службы могут предоставляться локально. Должно быть очевидно, что предварительный просмотр является необязательным и может быть пропущен после идентификации конкретной службы, и пример этого описывается ниже.
Фиг.17 - логическая блок-схема, которая описывает этапы в процедуре выбора службы в соответствии с одним или несколькими вариантами осуществления. Процедура может быть реализована применительно к любым подходящим аппаратным средствам, программному обеспечению, микропрограммному обеспечению или их сочетанию. По меньшей мере в некоторых вариантах осуществления особенности процедуры могут быть реализованы сервисной платформой, например, показанной и описанной выше.
Принимается выделенный фрагмент текста, который отображается приложением в интерфейсе пользователя (этап 1700). Например, модуль 116 запуска служб из фиг.1 может принять текст, показанный приложением 108. Текст может выделяться различными способами, например посредством использования устройства управления курсором, клавиатуры, сенсорного экрана, речевого ввода и так далее.
В ответ на прием выделенного фрагмента текста выводятся представления множества служб, без вмешательства пользователя (этап 1702). Например, модуль 116 запуска служб может автоматически вывести представления служб, когда выделяется текст, которые могут включать в себя службы, которые исходно не поддерживаются приложением 108. В другой реализации представления выводятся в ответ на команду, например, комбинацию горячих клавиш, речевой ввод и так далее.
Обнаруживается выбор одной из множества служб, которые отображаются в интерфейсе пользователя (этап 1704). Например, пользователь может предоставить речевой ввод, «нажать» или «прикоснуться» (например, с помощью сенсорного экрана) к представлению службы в меню. В примере с речевым вводом могут произноситься слова, используемые для предоставления представления (например, названия службы), может произноситься название операции, выполняемой службой (например, «показать это на карте»), настроенное название, ранее сохраненное пользователем вычислительного устройства, и так далее. Таким образом, служба может выбираться с использованием разного речевого ввода.
В ответ на обнаружение выделенный фрагмент текста предоставляется выбранной службе без дополнительного вмешательства пользователя для инициирования работы выбранной службы с использованием выделенного фрагмента текста (этап 1706). Модуль 116 запуска служб, например, может перейти к выбранной службе (например, по сети 112 или локально по отношению к вычислительному устройству 102) и вставить содержимое буфера обмена (например, текст), которое выделялось. Этот переход и вставка текста могут выполняться без взаимодействия со стороны пользователя, и соответственно могут обеспечиваться автоматически после выбора службы. Также предполагается ряд других примеров.
Фиг.18 - логическая блок-схема, которая описывает этапы в процедуре выбора службы в соответствии с одним или несколькими вариантами осуществления. Процедура может быть реализована применительно к любым подходящим аппаратным средствам, программному обеспечению, микропрограммному обеспечению или их сочетанию. По меньшей мере в некоторых вариантах осуществления особенности процедуры могут быть реализованы сервисной платформой, например, показанной и описанной выше.
Обнаруживается выделенный фрагмент текста, который выводится приложением (этап 1800), например, с помощью модуля 116 запуска служб, который может быть сконфигурирован как часть операционной системы.
Выводятся представления множества служб (этап 1802). Например, комбинация горячих клавиш, речевой ввод и так далее могут использоваться для инициирования вывода меню, содержащего представления множества служб, например всплывающего меню, которое отображается рядом с выделенным текстом.
На основе речевого ввода выполняется определение в отношении того, какая из множества служб должна принять текст, который отображается приложением в интерфейсе пользователя (этап 1804). Например, пользователь может произнести название представления, показанного в меню (например, «карта» на фиг.6), может описать операцию, выполняемую службой (например, «показать адрес на карте»), может использовать настроенное название, ранее сохраненное пользователем для службы, и так далее. В реализации настроенный речевой ввод может предоставлять «голосовую метку» для конкретных служб.
Затем, в ответ на определение, текст может предоставляться определенной службе без вмешательства пользователя (этап 1806). Продолжая с предыдущим примером, как только выполнено определение, что должна быть выбрана конкретная служба, текст может предоставляться службе без дополнительного взаимодействия со стороны пользователя с помощью вычислительного устройства 102.
В реализации преобразование последующего речевого ввода может прекращаться, как только может быть выполнено определение службы с использованием речевого ввода (этап 1808). Например, модуль 116 запуска служб может «выключить» микрофон, используемый для определения подразумеваемого значения речевого ввода (например, определения «что было сказано»), чтобы дополнительно не усложнять работу модуля, что может сберечь ресурсы вычислительного устройства 102.
Примерная система
Фиг.19 иллюстрирует примерное вычислительное устройство 1900, которое может реализовывать различные варианты осуществления, описанные выше. Вычислительное устройство 1900 может быть, например, вычислительным устройством 102 по фиг.1 или любым другим подходящим вычислительным устройством.
Вычислительное устройство 1900 включает в себя один или несколько процессоров или модулей 1902 обработки, одно или несколько запоминающих устройств и/или компонентов 1904 хранения, одно или несколько устройств 1906 ввода/вывода (I/O) и шину 1908, которая позволяет различным компонентам и устройствам обмениваться информацией друг с другом. Шина 1908 представляет один или несколько любых типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор или локальную шину, использующие любую из ряда шинных архитектур. Шина 1908 может включать в себя проводные и/или беспроводные шины.
Запоминающее устройство/компонент 1904 хранения представляет собой один или несколько компьютерных носителей информации. Компонент 1904 может включать в себя энергозависимые носители (например, оперативное запоминающее устройство (RAM)) и/или энергонезависимые носители (например, постоянное запоминающее устройство (ROM), флэш-память, оптические диски, магнитные диски и так далее). Компонент 1904 может включать в себя несъемные носители (например, RAM, ROM, несъемный жесткий диск и т.д.), а также съемные носители (например, накопитель на флэш-памяти, съемный жесткий диск, оптический диск и так далее).
Одно или несколько устройств 1906 ввода/вывода позволяют пользователю вводить команды и информацию в вычислительное устройство 1900, а также позволяют представлять информацию пользователю и/или другим компонентам или устройствам. Примеры устройств ввода включают в себя клавиатуру, устройство управления курсором (например, мышь), микрофон, сканер и так далее. Примеры устройств вывода включают в себя устройство отображения (например, монитор или проектор), динамики, принтер, сетевой адаптер и так далее.
Различные методики могут описываться в этом документе в общем контексте программного обеспечения или программных модулей. Как правило, программное обеспечение включает в себя процедуры, программы, объекты, компоненты, структуры данных и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Реализация этих модулей и методик может храниться или передаваться посредством какого-нибудь вида машиночитаемых носителей. Машиночитаемые носители могут быть любым доступным носителем или носителями, к которым можно обращаться с помощью вычислительного устройства. В качестве примера, а не ограничения, машиночитаемые носители могут содержать «компьютерные носители информации».
«Компьютерные носители информации» включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители информации включают в себя, но не ограничиваются, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, компакт-диск, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, либо любой другой носитель, который может использоваться для хранения нужной информации и к которому можно обращаться с помощью компьютера.
Несмотря на то, что предмет изобретения описан на языке, характерном для структурных признаков и/или методологических действий, необходимо понимать, что объем изобретения, определенный прилагаемой формулой изобретения, не обязательно ограничивается описанными выше конкретными признаками или действиями. Скорее, описанные выше конкретные признаки и действия раскрываются в качестве примерных видов реализации формулы изобретения.