КОНТЕКСТНАЯ ПЛАТФОРМА И ПРИЛОЖЕНИЯ ВСПОМОГАТЕЛЬНОГО ДИСПЛЕЯ
CONTEXT PLATFORM AND APPLICATIONS OF AUXILIARY DISPLAY

Перекрестные ссылки на родственные заявки
Настоящее изобретение связано со следующими рассматриваемыми заявками на патент США, зарегистрированными одновременно с данной, принадлежащими правопреемнику настоящего изобретения и включенными в настоящее описание во всей своей полноте в качестве ссылки:
"Processing Information Received at an Auxiliary Computing Device," адвокатская выписка № 4450; "Auxiliary Display System Architecture," адвокатская выписка № 4 47 0; и "Caching Data for Offline Display and Navigation of Auxiliary Information," адвокатская выписка № 4480.
Область техники, к которой относится изобретение
Изобретение, в общем, относится к вычислительным системам и, более конкретно, к усовершенствованному способу и системе отображения информации на вычислительном устройстве.
Уровень техники
Патентные заявки США серийные номера 10/429,930 и 10/429,932, в общем, направлены на концепцию вычислительных систем, выполняющих вспомогательную обработку и имеющих вспомогательные механизмы, в частности относящиеся к отображению механизмы, которые предоставляют определенную вспомогательную вычислительную функциональность. Например, небольшой ЖК-дисплей на крышке или сбоку переносной вычислительной системы может предоставлять своему владельцу полезную информацию, такую как место и время встречи, даже когда основной дисплей вычислительной системы не видим в удобном ракурсе, например, когда крышка портативной вычислительной системы закрыта и/или основная вычислительная системы выключена.
Тем не менее, использование таких вспомогательных дисплеев было раньше ограничено минимальными, ограниченными операциями, в которых специальная программа вспомогательного дисплея настроена по индивидуальным потребностям для типа отображения и по отношению к информации, которая отображается. В таких системах программа вспомогательного дисплея запрограммирована под специфику типа дисплея, например размер и разрешение, так чтобы программа могла выводить что-то, что читаемо, но умещается в области экрана. Это отличается от дисплея стандартной вычислительной системы, в которой компоненты современной операционной системы абстрагированы от сложности высокоуровневых программ и подробностей того, какой конкретный адаптер видеографики установлен. В то же время код специального вспомогательного дисплея был целесообразным решением, учитывая, что вспомогательные дисплеи типично были двух- или трехстрочными текстовыми дисплеями, встраиваемыми в аппаратные средства, когда изготовлялись, и все, что было нужно - это иметь специальное приложение записи текста с информацией, такой как время встречи и текущее время, на дисплей.
Одна из проблем со специальным решением - это то, что желательно отображать в одном контексте, может быть нежелательно в других. Например, хотя уведомление о предстоящей встрече желаемо, во время встречи типично может быть не желательно, чтобы другие посетители могли просматривать другую информацию, которая может появляться на вспомогательном дисплее. Простой выключатель недостаточен для многих сценариев, например, когда отображение некоторой информации, а не другой (к примеру, личной) информации, - это то, что пользователь действительно хочет.
Необходим способ для прикладных программ, которые выполняются под управлением основной операционной системы вычислительной системы для того, чтобы автоматически представлять на вспомогательном устройстве только данные, которые желательны для отображения в условиях текущего контекста.
Раскрытие изобретения
Кратко, настоящее изобретение предоставляет механизм, посредством которого прикладные программы (или их подключаемые модули для обработки обмена данными с помощью вспомогательных устройств) и вспомогательная служба работают совместно для того, чтобы выполнить насторойку под изменения, распознанные в текущем контексте вспомогательного дисплея. Один или более датчиков контекста позволяют распознавать изменение контекста и сообщения о нем основной вычислительной системе и/или вспомогательному устройству, в соответствии с которым предпринимается определенное действие, например, по отношению к тому, какая информация отображается или может быть отображена на вспомогательном дисплейном устройстве. Другие типы действий, вытекающие из связанных с контекстом событий, протекающих через систему вспомогательных устройств, могут вызывать постоянные или временные изменения в основной (узловой) вычислительной системе. В автономном состоянии, в котором основная вычислительная система не запущена, но вспомогательное устройство запущено, изменение в контексте может иметь некоторое воздействие на кэшированную прикладную программу и другие данные, например, для того, чтобы интерпретировать или использовать кэшированные данные по-разному на основе текущего состояния контекста или, возможно, проводить добавление или удаление из кэшированных данных. Приложение может регистрировать (или запрашивать) конкретный контекстно-зависимый режим работы, прежде чем система перейдет в автономный режим. Вспомогательное устройство, таким образом, может отправлять контекстно-зависимые события, как только они распознаны или через некоторое соответствующее время после распознавания, или может сохранять связанные с контекстом данные для ответа на запрос. Вспомогательное устройство также может получать связанные с контекстом данные по запросу, например, в ответ на запрос прикладной программы, и/или может время от времени опрашивать один или более датчиков по необходимости. Вспомогательное устройство также может повторно отправлять связанные с контекстом события, например, для приложений, которые не были запущены и/или зарегистрированы в то время, когда событие было отослано последний раз.
Когда в оперативном режиме, в котором работают и основная вычислительная система, и вспомогательное устройство, изменения контекста могут передаваться оперативным прикладным программам и/или компонентам операционной системы. Такие основанные на контексте события используются прикладными программами, операционной системой и/или вспомогательным устройством, как каждое из них посчитает нужным; в результате изменения контекста могут внести временные или постоянные изменения в основную вычислительную систему и/или вспомогательное устройство, к примеру, посредством изменения реестра или другой настройки. Заметим, что изменения, сообщенные программам основной вычислительной системы, могли произойти в то время, когда основная вычислительная система была в автономном режиме, и если так, то они сохраняются вспомогательным устройством и передаются, когда основная вычислительная система возвращается в оперативный режим.
Приложение и другие программы (такие как компоненты операционной системы), которые зарегистрировались на использование вспомогательного устройства, могут также регистрироваться на уведомления о конкретном изменении контекста, например контекста, соответствующего физическому расположению дисплея, данным о перемещении или движении, присутствию конкретного пользователя или других, режиму питания, состоянию подключения к сети, состоянию конфиденциальности, и т.д. Подключаемые модули могут регистрировать то, должны ли они быть доступны в автономном или оперативном режиме питания, или в обоих.
Вспомогательное устройство может также иметь зарегистрированный контекст, ассоциативно связанный с ним, в отношении того, где размещено вспомогательное устройство относительно основного дисплея, т.е. возможно ли быть видимым, когда основной экран видим или нет, либо независимо от основного экрана. При разработке подключаемого модуля вспомогательного дисплея разработчик может задавать надлежащий контекст или контексты, в которых приложение может быть отображено, должно быть отображено (к примеру, автоматически на основе изменения контекста) или не может быть отображено. Известно, как для автономного состояния, где приложения не запущены, настроить вывод. В оперативном состоянии вспомогательная служба может передавать любое изменение в событии контекста подключаемому модулю, который может настраивать его будущий вывод соответствующим образом. В одной реализации, когда происходят изменения состояния контекста, вспомогательная служба перечисляет список активированных подключаемых модулей для того, чтобы определить, должны ли быть добавлены или удалены какие-либо подключаемые модули на основе изменения содержимого. Если запущено в автономном режиме, микропрограммное обеспечение или операционная система, запущенная на вспомогательном процессоре, может применять тот же фильтр контекста для того, чтобы отключать подключаемые модули, которые больше не представляют значимости в автономном режиме питания. Альтернативно, может быть применен другой фильтр.
Уровни конфиденциальности информации могут быть использованы подключаемыми модулями для того, чтобы задавать, могут ли быть отображены данные подключаемого модуля, на основе различаемой конфиденциальности информации и текущего контекста пользователя. Контекст может быть выбран пользователем на основе текущей ситуации и передан вспомогательной службе или микропрограммному обеспечению. Эвристика определяет, какой уровень информации должен быть показан, на основе выбранного пользователем контекста и другой относящейся к делу информации.
Другие преимущества станут очевидными из последующего подробного описания, когда рассматриваются совместно с чертежами, на которых:
Краткое описание чертежей
Фиг.1 иллюстрирует блок-схему, показывающую вычислительное устройство общего назначения в форме персональной вычислительной системы, в котором может содержаться настоящее изобретение;
Фиг.2A-2E являются типичными иллюстрациями, каждая из которых дает общее представление о месте для размещения вспомогательного дисплея на различных устройствах;
Фиг.3 иллюстрирует блок-схему, дающую общее представление о многоуровневой архитектуре, посредством которой прикладные программы могут обмениваться данными удаленным способом с произвольным вспомогательным вычислительным устройством, в соответствии с аспектом настоящего изобретения;
Фиг.4 иллюстрирует представление того, как в одной реализации поддерживающая вспомогательное устройство прикладная программа взаимодействует со службой вспомогательного устройства для того, чтобы обмениваться данными со вспомогательным дисплейным устройством, в соответствии с аспектом настоящего изобретения;
Фиг.5 иллюстрирует блок-схему, дающую общее представление о прикладных программах, каждая из которых может выборочно подключаться для обмена данными со вспомогательным дисплейным устройством на основе посредничества, в соответствии с аспектом настоящего изобретения;
Фиг.6 иллюстрирует блок-схему, дающую общее представление о компонентах многоуровневой архитектуры, включающей в себя микропрограммное обеспечение, посредством которого возможно автономное или оперативное функционирование вспомогательного дисплейного устройства, в соответствии с аспектом настоящего изобретения;
Фиг.7 иллюстрирует представление службы вспомогательного устройства в одной реализации, которая может работать с различными типами вычислительных устройств, в соответствии с аспектом настоящего изобретения; и
Фиг.8 иллюстрирует блок-схему, дающую общее представление о компонентах, включая микропрограммное обеспечение, посредством которого возможно автономное или оперативное функционирование вспомогательного дисплейного устройства, в соответствии с аспектом настоящего изобретения.
Подробное описание изобретения
Типичная рабочая среда
Фиг.1 иллюстрирует блок-схему, показывающую вычислительное устройство 120 в форме персональной вычислительной системы, в котором может содержаться настоящее изобретение. Специалисты в данной области техники примут во внимание, что персональная вычислительная система 120, изображенная на фиг.1, предназначена для того, чтобы быть просто иллюстративной, и что настоящее изобретение может быть применено на практике с другими конфигурациями вычислительной системы, в том числе "карманными" устройствами, многопроцессорными системами, основанной на микропроцессорах или программируемой бытовой электронной аппаратурой, сетевыми ПЭВМ, миниЭВМ, мейнфреймами, автономными серверами, и т.п. Изобретение может быть реализовано на практике в распределенных вычислительных окружениях, в которых задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенном вычислительном окружении программные модули могут быть размещены на локальных и удаленных устройствах хранения данных.
Персональная вычислительная система 120 включает в себя блок 121 обработки, системную память 122 и системную шину 123, которая соединяет различные системные компоненты, в том числе системную память с блоком 121 обработки. Системная шина 123 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из многообразия шинных архитектур. Системная память включает в себя постоянное запоминающее устройство 124 (ПЗУ) и оперативное запоминающее устройство 125 (ОЗУ). Базовая система 126 ввода-вывода (BIOS), содержащая в себе базовые процедуры, которые помогают передавать информацию между элементами в рамках ПЭВМ 120, к примеру, в ходе загрузки, сохранена в ПЗУ 124. ПЭВМ 120 может дополнительно включать в себя накопитель 127 на жестких дисках для считывания и записи на жесткий диск, накопитель 128 на магнитных дисках для считывания и записи на сменный магнитный диск 129 и накопитель 130 на оптических дисках для считывания и записи на сменный оптический диск 131, например CD-ROM или другую оптическую среду. Накопитель 127 на жестких дисках, накопитель 128 на магнитных дисках и накопитель 130 на оптических дисках подключены к системной шине 123 посредством интерфейса 132 накопителя на жестких дисках, интерфейса 133 накопителя на магнитных дисках и интерфейса 134 накопителя на оптических дисках соответственно. Накопители и ассоциативно связанная с ними машиночитаемая среда предоставляют энергонезависимое хранение машиночитаемых команд, структур данных, программных модулей и других данных для ПЭВМ 120. Хотя типичная вычислительная система, описанная в данном документе, использует жесткий диск, сменный магнитный диск 129 и сменный оптический диск 131, специалисты в данной области техники должны принимать во внимание, что другие типы машиночитаемой среды, которые могут сохранять данные, которые доступны посредством ПЭВМ, такие как магнитные дискеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ОЗУ) и т.п., также могут быть использованы в типичном вычислительном окружении.
Ряд программных модулей может быть сохранен на жестком диске, магнитном диске 129, оптическом диске 131, ПЗУ 124 или ОЗУ 125, в том числе операционная система 135 (например, Windows XP), одна или несколько прикладных программ 136 (например, Microsoft Outlook), другие программные модули 137 и программные данные 138. Пользователь может вводить команды и информацию в ПЭВМ 120 посредством устройств ввода, таких как клавиатура 140 и указательное устройство 142. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковый диск, сканер, и т.п. Эти и другие устройства ввода часто подключены к блоку 121 обработки через интерфейс 146 последовательного порта, который соединен с системной шиной, но может быть подключен к другим интерфейсам, таким как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 147 или другой тип дисплейного устройства также подключен к системной шине 123 посредством интерфейса, такого как видеоадаптер 148. Помимо монитора 147, ПЭВМ типично включает в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры. Вспомогательный дисплей 200 - это дополнительное устройство вывода, и он может быть, например, подключен к системной шине 123 посредством интерфейса 155 вспомогательного дисплея. Вспомогательный дисплей 101 может также подключаться к вычислительному устройству 20 посредством последовательного интерфейса или других интерфейсов, таких как параллельный порт, игровой порт, инфракрасное или беспроводное соединение, универсальная последовательная шина (USB) или другое подключение периферийного устройства. Устройство 201 ввода на фиг.1 может предоставлять один или более исполнительных механизмов для взаимодействия и/или управления вспомогательным дисплеем 200, и, например, может быть подключено к системной шине 123 посредством интерфейса 156 устройства ввода, которым может быть последовательный интерфейс, либо посредством других интерфейсов, таких как параллельный порт, игровой порт, инфракрасное или беспроводное соединение, универсальная последовательная шина (USB) или другое подключение периферийного устройства.
ПЭВМ 120 может работать в сетевом окружении, использующем логические соединения с одной или более удаленными вычислительными системами, такими как удаленная вычислительная система 149. Удаленной вычислительной системой 149 может быть другая персональная вычислительная система, сервер (ЭВМ общего пользования), маршрутизатор, сетевая персональная ЭВМ, одноранговое устройство или другой общий узел сети и типично включает в себя многие или все элементы, описанные выше относительно ПЭВМ 120, несмотря на то, что только запоминающее устройство 150 хранения проиллюстрировано на фиг.1. Логические соединения, показанные на фиг.1, включают в себя локальную вычислительную сеть (ЛВС) 151 и глобальную сеть (WAN) 152. Такие сетевые окружения являются обычными в офисах, корпоративных вычислительных сетях, сетях Интранет (локальных сетях, использующих технологии Интернет) и Интернете.
Когда использована в сетевом окружении ЛВС, персональная вычислительная система 120 подключена к ЛВС 151 посредством сетевого интерфейса или адаптера 153. Когда использована в сетевом окружении WAN, персональная вычислительная система 120 типично включает в себя модем 154 или другое средство для установления связи по WAN 152, такой как Интернет. Модем 154, который может быть внутренним или внешним, подключен к системной шине 123 посредством интерфейса 146 последовательного порта. В сетевом окружении программные модули, показанные относительно персональной вычислительной системы 120, или их части могут быть сохранены в удаленном запоминающем устройстве хранения. Следует принимать во внимание, что показанные сетевые соединения являются типичными, и могут быть использованы другие средства установления линии связи между вычислительными системами.
Следует принимать во внимание, что вычислительная система не должна быть полностью действующей для того, чтобы вспомогательный дисплей работал в соответствии с настоящим изобретением. Действительно, как описано ниже со ссылкой на фиг.6, вспомогательный дисплей может по-прежнему работать, когда вычислительная система отключена, по меньшей мере, до степени по умолчанию или до степени, сконфигурированной пользователем, например, когда вычислительная система находится в режиме пониженного энергопотребления или режиме бездействия, и/или когда пользователь еще не вошел в систему или иным образом заблокировал систему посредством механизмов безопасности. Например, пользователь может захотеть, чтобы телефонная трубка и устройство громкоговорящей связи, которое интегрировано в персональную вычислительную систему, работало как обычное устройство, когда вычислительная система отключена, и использовать вспомогательный дисплей в качестве устройства идентификации абонента. Это устройство также может сохранять данные для последующей передачи в вычислительную систему, когда вычислительная система снова включена, например, чтобы регистрировать принятые вызовы, в том числе, когда вычислительная система не была включена полностью.
Вспомогательный дисплей может дополнять основной дисплей и может также выступать в качестве дисплея замены, когда основной дисплей отключен или не функционирует по какой-либо другой причине (к примеру, отсоединен) для того, чтобы предоставлять пользователю определенную информацию. Например, информация о том, как включить основной дисплей, может быть полезна, как и номер комнаты и/или направления на встречу на вспомогательном дисплейном устройстве, подключенном к мобильной вычислительной системе, который пользователь может просматривать, когда основной дисплей отключен и/или не видим в удобном ракурсе (к примеру, крышка портативного устройства закрыта). Заметим, что даже на планшетной ПЭВМ с непрерывно видимым экраном основной экран может быть отключен для того, чтобы экономить питание, при этом вспомогательный дисплей может предоставлять значительные преимущества. Заметим, что пользователь может ограничить степень отображения на основе состояния вычислительной системы, к примеру, когда пользователь не вошел в систему, только определенная не конфиденциальная или особенно управляемая информация может быть отображена, и т.п.
Чтобы активировать и управлять обменом данных в этих режимах с отключенным питанием, может использоваться микропрограммное обеспечение, сохраненное в энергонезависимой памяти, которое, когда загружено и управляется вторичным процессором, активирует вспомогательный дисплей наряду с другими вспомогательными компонентами, которые должны быть использованы, до тех пор, пока какое-либо питание доступно. Заметим, что при использовании в данном документе термин "микропрограммное обеспечение" может в целом рассматриваться как представляющий вспомогательную память, ее программный код и/или вторичный процессор, на котором она выполняется.
Фиг.2A-2E иллюстрируют типичные места на или ассоциативно связанные с вычислительными устройствами для размещения экранов 200a-200e вспомогательного дисплея соответственно. Как представлено на фиг.2A и 2B, экран 200a вспомогательного дисплея может быть размещен на передней, тыльной или другой поверхности изолированного (наземного или мобильного) телефона 202 (который не должен быть физически подсоединен, если иным образом связан, например, посредством технологии Bluetooth), и/или другого экрана 200b вспомогательного дисплея, размещенного на краю или крышке мобильной вычислительной системы 204 или планшетного вычислительного устройства (не показано). Еще одно место для экрана 200c вспомогательного дисплея (фиг.2C) может быть на телефоне, установленном на вычислительной системе или периферийном устройстве, подсоединенном к вычислительной системе, на мониторе 206 или на клавиатуре (не показана). Фиг.2D и 2E иллюстрируют дополнительные размещения экранов 200d и 200e вспомогательного дисплея на передней панели или изолированной консоли 208, подключенной к вычислительной системе, или каком-либо другом корпусе 210 (например, корпусе для материнской платы), соответственно. Специалисты в данной области техники примут во внимание, что экран вспомогательного дисплея может быть размещен на любой поверхности любого вычислительного устройства или другого устройства, обладающего возможностями отображения, например размещен на часах с беспроводным или другим подключением к вычислительной системе, на устройстве дистанционного управления, на удаленном настенном блоке, и т.п.
Как должно быть очевидно из фиг.2A-2E, вспомогательный дисплей может быть в виде любого числа из известных типов дисплеев, таких как один или более светодиодов, 2-строчный алфавитно-цифровой дисплей, монохромный дисплей или цветной дисплей. Специалисты в данной области техники примут во внимание, что настоящее изобретение также может использовать дисплей других вычислительных устройств или устройств связи в качестве вспомогательного дисплея 200. Эти другие вычислительные устройства или устройства связи включают в себя вычислительные системы общего назначения, сотовые телефоны и "карманные" устройства, такие как пейджер или личный цифровой помощник (PDA). Помимо этого, настоящее изобретение может использовать виртуальный вспомогательный дисплей, реализованный в области экранного дисплея вычислительного устройства 120 (к примеру, хранителя экрана или компонента графического пользовательского интерфейса), в качестве вспомогательного дисплея 200, в том числе и до входа пользователя в систему. Вспомогательный дисплей 200 может включать в себя сочетание любых вышеописанных форм и также может быть физически или логически объединен с индикаторами, например, с одним или более светодиодами и/или использован совместно с виртуальным вспомогательным дисплеем.
Даже в отсутствие экрана один или более светодиодов могут быть преимущественно использованы в качестве вспомогательного дисплея 200 для уведомления о наличии активности. Этот вспомогательный дисплей может быть реализован с небольшими затратами и меньшим энергопотреблением и предоставляет уведомление в ненавязчивой форме. Он может быть эффективно использован в системах с очень компактными форм-факторами или в системах, где обмен данными для пользователей управляется другим человеком. Вспомогательный дисплей 200 дополнительно может быть эффективным, когда уведомления должны быть видны на расстоянии. Вспомогательный дисплей также может быть использован совместно с экранным виртуальным вспомогательным дисплеем, где есть информационное содержимое, ассоциативно связанное с деятельностью, например, уведомление о новом почтовом сообщении. В этом случае содержимое из электронной почты может также быть отображено на виртуальном вспомогательном дисплее 200. Более того, вспомогательный дисплей 200 может быть эффективно использован в общедоступных системах (библиотеках или киосках) либо на совместно используемых вычислительных системах, когда отображение содержимого нежелательно.
Альтернативно, двухстрочный алфавитно-цифровой дисплей может быть преимущественно использован в качестве вспомогательного дисплея 200, где критичны стоимость или пространство, но уведомления и базовое содержимое желательны. Он может быть эффективно использован в планшетных ПЭВМ, "портативных", бюджетных ПЭВМ, телефонных установочных станциях, фальш-панелях монитора и небольших или недорогих устройствах или периферийном оборудовании ПЭВМ, таком как телефонная трубка, клавиатура или ПДУ. Он также может быть эффективно использован в качестве замены (и усовершенствования) блока идентификации абонента.
Более того, монохромный или цветной многострочный дисплей может быть преимущественно использован в качестве вспомогательного дисплея 200 для мультимедийных приложений, потребительских систем высшего класса или систем центров мультимедиа. Он может быть эффективно использован в портативных устройствах высшего класса с форм-факторами большего размера, или в которых акцент делается на связь, полнофункциональных ПЭВМ с основным акцентом на бизнес или связь, центрах мультимедиа или мультимедийных устройствах высшего класса (включая дистанционные устройства, консольные системы с портативной средой) и мобильных вспомогательных дисплеях. Помимо этого, дисплей другого вычислительного устройства или устройства связи может быть преимущественно использован в качестве вспомогательного дисплея 200, где пользователи могут расширить роль этого дополнительного устройства при использовании своей ПЭВМ. Эти другие вычислительные устройства или устройства связи включают в себя вычислительные системы общего назначения, сотовые телефоны и "карманные" устройства, такие как пейджер или личный цифровой помощник (PDA). Дополнительно заметим, что вспомогательный дисплей не должен быть фактически существующим дисплеем, а может быть проекцией (к примеру, на стену) информации. Вспомогательный дисплей при ссылках в данном документе может быть составлен из, по сути, всего, что может быть воспринимаемо, включая все визуальные, звуковые и/или тактильные представления.
Как упоминалось ранее, виртуальный вспомогательный дисплей может быть использован в качестве вспомогательного дисплея 200 в общедоступных системах (библиотеках или киосках) либо на совместно используемых вычислительных системах, когда отображение содержимого нежелательно. Он также может быть эффективно использован в недорогих системах или устройствах с очень небольшим форм-фактором, который делает невозможным даже использование светодиодов. Виртуальный вспомогательный дисплей может быть реализован в качестве хранителя экрана или компонента графического пользовательского интерфейса.
Устройство 201 ввода, в дальнейшем называемое исполнительными механизмами (во множественном числе, даже если механизм только один, например кнопка или указательное устройство), предоставляет пользователю механизм для того, чтобы переключаться между различными категориями прикладных данных или уведомлений, таких как уведомления по электронной почте, уведомления по голосовой почте, календарные уведомления, уведомления о состоянии системы, списки идентификации абонента и другие типы уведомляющих сообщений. В дополнение к этой кнопке переключателя также может быть предусмотрена кнопка «вверх и вниз», чтобы дать возможность пользователю прокручивать вперед и назад через уведомляющие сообщения в рамках конкретной категории. Специалисты в данной области техники примут во внимание, что могут быть использованы любые другие типы исполнительных механизмов, такие как клавиатура, микрофон, джойстик, игровая панель или другое устройство, включая устройство, которое содержит биометрический датчик, датчик состояния окружающей среды, датчик положения или другие типы датчиков. Любые типы устройств ввода вычислительного устройства 120, которое представлено на фиг.1, могут быть использованы в качестве устройства 201 ввода (исполнительных механизмов) и могут быть использованы совместно с независимыми исполнительными механизмами.
Системная архитектура вспомогательного дисплея
Следует понимать, что настоящее изобретение предоставляет вспомогательный дисплей 200 для пользователя, чтобы просто и быстро просматривать информацию, касающуюся периферийных задач, без отвлечения внимания или необходимости переключать рабочий фокус с текущей экранной задачи, если это необходимо. С помощью настоящего изобретения пользователь может выбирать, до некоторой степени, то, какая информация появляется на вспомогательном дисплее, посредством использования исполнительных механизмов 201 для того, чтобы выбирать из прикладных программных данных. Хотя программные данные и уведомления о событиях будут использованы для того, чтобы проиллюстрировать вспомогательное отображение информации, следует понимать, что настоящее изобретение может предоставлять вспомогательное отображение других типов информации, например, от связанных с Интернетом услуг, включая услуги транзакций, услуги аукциона, рекламные услуги, развлекательные услуги и услуги размещения. Эти услуги могут предоставлять множество информации, включая информацию о финансовых транзакциях, заголовки новостей, котировки ценных бумаг, спортивные результаты, погоду и другую информацию, включая информацию, специально запрашиваемую пользователем, а также незатребованную информацию. Также следует принимать во внимание, что вспомогательный дисплей 201 может работать с использованием любого числа известных типов дисплеев, таких как набор индикаторов уведомления, двухстрочного алфавитно-цифрового дисплея, монохромного дисплея или цветного дисплея. Заметим, что при использовании в данном документе термин "вспомогательное дисплейное устройство" для простоты обычно ссылается на экран вспомогательного дисплея и/или исполнительные механизмы, ассоциативно связанные с этим экраном, а также другие аппаратные средства, микропрограммное обеспечение или программное обеспечение в устройстве, тем не менее, следует понимать, что экран и исполнительные механизмы могут быть независимыми механизмами и/или что может не быть исполнительных механизмов, требующих физического контакта для того, чтобы вводить данные. Дополнительно заметим, что вспомогательное дисплейное устройство может быть рассмотрено как возможно содержащее индикаторы (к примеру, отдельные светодиоды) вместо или в дополнение к дисплейному экрану пиксельного типа.
Как в общем представлено на фиг.3, предусмотрена архитектура 300, посредством которой одна или более прикладных программ 302 может взаимодействовать практически с любым типом вспомогательного дисплейного устройства 304 для того, чтобы выводить данные на его дисплей 200 и/или взаимодействовать с пользователем посредством исполнительных механизмов 201. Такая прикладная программа 302 (или посредством ассоциативно связанного компонента подключаемого модуля, подсоединенного к прикладной программе) - это программа, которая была разработана для того, чтобы знать о вспомогательных дисплеях (т.е. является осведомленной о вспомогательном дисплее), и, таким образом, может использовать вспомогательное дисплейное устройство 304, когда оно имеется, чтобы обмениваться информацией с пользователем и тем самым предоставлять усовершенствованные возможности работы пользователю. Заметим, что при использовании в данном документе понятие "приложение" или "прикладная программа" представляет традиционные программы, а также компоненты операционной системы, которым может понадобиться предоставить данные на вспомогательный дисплей и/или с которыми происходит интерпретация посредством ассоциативно связанных со вспомогательным дисплейным устройством исполнительных механизмов.
Чтобы разрешить любой осведомленной о вспомогательном дисплее прикладной программе 302 использовать вспомогательное дисплейное устройство 304, на вычислительной системе установлена служба 306 вспомогательного дисплея, предоставляющая прикладную модель/уровень, посредством которого программы прикладного уровня, запущенные в обычной операционной системе вычислительной системы, могут обмениваться данными со вспомогательным устройством 304 для того, чтобы отображать информацию на его дисплее 200 и/или принимать команды, такие как навигационные команды посредством исполнительных механизмов 201. С этой целью прикладная программа 302 обменивается данными посредством заданных интерфейсов 304 со службой 306 вспомогательного дисплея (уровня служб). В свою очередь, как описано ниже, служба 306 вспомогательного устройства обменивается данными со вспомогательным дисплейным устройством 304, в результате этой очень гибкой модели любая программа, включая и еще не разработанные, может, таким образом, использовать вспомогательное дисплейной устройство 304 посредством надлежащей реализации заданного интерфейсного комплекта 308.
Дополнительно, в одной реализации служба 306 вспомогательного дисплея абстрагирует аппаратные средства вспомогательного дисплейного устройства (а также любое микропрограммное или программное обеспечение устройства) от других уровней, посредством чего любое подходящее устройство может выступать в качестве вспомогательного дисплейного устройства, включая еще разработанные устройства. С этой целью архитектура 300 предоставляет уровень протоколов, посредством которых служба 306 обменивается данными с микропрограммным обеспечением/аппаратными средствами устройства по подходящему протоколу/интерфейсам связи и проводному или беспроводному интерфейсу 310 устройства. Любого имеющегося или будущего протокола, который служба 306 дисплея и вспомогательное дисплейное устройство 304, оба, соответствующим образом реализуют, будет достаточно, как будет достаточно любого соответствующего физического или беспроводного интерфейса 310 "вычислительная система-устройство" (включая еще не разработанные).
Как описано ниже, в одной реализации посреднический компонент 312 (к примеру, который обрабатывает перечисление и разрешение конфликтов) абстрагируется от механизмов связи посредством заданного интерфейса 314, в который встроен прокси протокола 316, соответствующий используемому протоколу связи. Заметим, что прокси протокол показан на фиг.3 как часть службы 306 вспомогательного устройства, тем менее, частью службы считается нечто произвольное, и таким образом прокси протокол может альтернативно быть рассмотренным как часть уровня протоколов. В любом случае многоуровневая архитектура предоставляет высокую гибкость разработчикам приложений и изготовителям дисплейных устройств. Обращаясь к фиг.4 и пояснению операций прикладного уровня и уровня служб, возможности прикладной программы 302 могут быть расширены, как требуется, чтобы представлять часть ее данных пользователю посредством вспомогательного дисплейного устройства 304. Это может быть осуществлено посредством разработки прикладной программы 302, чтобы непосредственно понимать интерфейсы 308 службы вспомогательного дисплея 308, и/или посредством ассоциативной связи с прикладной программой 302 компонента, который понимает интерфейсы 308. Например, подключаемый модуль (к примеру, в форме DLL) позволяет разработчикам приложений просто расширять возможности своих прикладных программ без изменения основного кода приложения (за исключением связи с подключаемым модулем). Заметим, что фиг.4 показывает вспомогательный прикладной компонент 402 как содержащийся в рамках прикладной программы 302, тем не менее, следует понимать, что это только представление и, таким образом, компонент 402 может содержаться в рамках самого кода приложения или быть подключаемым компонентом, таким как DLL, встраиваемая в приложение. Дополнительно следует понимать, что сама прикладная программа может не предоставлять свои данные для отображения. Например, другая программа, которая может быть независимой от прикладной программы, может представлять данные, соответствующие прикладной программе; с этой целью, например, посредством подключения вызовов функций прикладной программы другая программа может предоставлять данные вспомогательному дисплейному устройству 304, которые, возможно, исходят от прикладной программы. Как представлено на фиг.4, уровень "приложение-служба", предоставляемый службой 306 вспомогательного дисплея, обеспечивает различную структуру и функциональность, включая регистрацию дополнительных подключаемых модулей, посредством которой приложение/подключаемый модуль регистрирует себя с помощью компонента 404 регистрации службы 306 вспомогательного дисплея, посредством чего приложение/подключаемый модуль имеет возможность использовать доступное вспомогательное устройство 304. В типичной реализации (фиг.4) компонент 404 регистрации службы предоставляет интерфейс IAuxAppReg для этой цели. Другие прикладные программы регистрируют себя аналогично посредством этого интерфейса.
Вспомогательный прикладной компонент 402 дает возможность принимать события от ассоциативно связанного вспомогательного дисплейного устройства и/или связанных ресурсов. Например, событие может быть отослано вспомогательному прикладному компоненту 402 о том, что вспомогательное устройство готово к отправке данных ему, тогда как другое событие может соответствовать взаимодействию пользователя с исполнительными механизмами вспомогательного устройства. В типичной реализации фиг.4 прикладная программа реализует интерфейс IauxAppSink для того, чтобы получать эти события.
Как также описано выше, прикладная программа 302 дает возможность перечислять доступное аппаратное вспомогательное устройство или устройства, которые доступны. В типичной реализации фиг.4 посреднический компонент 406 в службе 306 вспомогательного устройства обеспечивает перечисление посредством интерфейса IAuxMediator. Таким способом устройства или некоторые данные, относящиеся к устройству (к примеру, соответствующий файл XML), могут сообщать о возможностях экрана дисплейного устройства и т.п., и/или его исполнительных механизмах прикладной программе 302. Прикладная программа 302 затем может настроить вывод и ввод согласно дисплею, к примеру, цветовая схема, разрешение, навигационные команды и т.п., могут быть модифицированы под характеристики устройства. Например, если прикладная программа 302 знает, что вспомогательное дисплейное устройство имеет цветной экран высокого разрешения и четырехсторонние навигационные кнопки, эта программа может выводить полностью отформатированные данные на вспомогательный дисплей и настраивать для того, чтобы принимать навигационные команды в четырех направлениях. Альтернативно, если доступен только двухстрочный текстовый дисплей, прикладная программа 302 может выводить простой текст.
Разрешение конфликтов также предусмотрено в посредническом компоненте 406 прикладного уровня для того, чтобы предоставить механизм, который определяет, какое приложение должно иметь свои данные отображенными в данный момент и принимать навигационные команды. Заметим, что прикладные программы по очереди совместно используют дисплей, как требуется; другими словами, функция разрешения конфликтов посредничества управляет приоритетом (z-порядком) вспомогательных прикладных программ и/или подключаемых модулей. Поскольку вспомогательные устройства могут иметь лишь небольшой объем пространства дисплея (или даже иметь размеры одного светодиода), в одной реализации только одно приложение получает дисплей полностью за раз, хотя допустимо в альтернативных реализациях разделять дисплей и/или индикаторы между приложениями одновременно, если доступно достаточно пространства экрана, или экран и индикаторы доступны в одном устройстве, либо иным образом предоставлять информацию от двух или более приложений (к примеру, устройство может показывать данные одного приложения, но мигать, когда другое приложение изменило состояние, настоятельно запрашивая, но не требуя, чтобы пользователь уделил какое-то внимание).
Разрешение конфликтов также предусмотрено в посредническом компоненте уровня служб для того, чтобы предоставлять механизм, который определяет, какое приложение или компонент операционной системы должен иметь свои данные отображенными в данный момент; заметим, что прикладные и другие программы по очереди совместно используют дисплей, как требуется. Часто программа, в данный момент подсоединенная (аналогично получению фокуса ввода) к дисплейному устройству, была выбрана пользователем, например, посредством навигации к ней с домашней страницы, тем не менее, другие события могут переопределять выбор пользователя (который мог быть сделан давно). Например, если происходит такое событие, как напоминание о встрече, телефонный звонок, тайм-аут возврата на домашнюю страницу, условие малой мощности или что-то, что рассматривается как более важное, чтобы отображать, чем то, что отображается в данный момент, вспомогательный дисплей может изменить либо полностью показать данные другого приложения или домашнюю страницу приложения-оболочки, либо каким-то способом (к примеру, миганием) показать событие. Заметим, что возможно иметь более одного вспомогательного дисплея, а также один или более индикаторов, таких как светодиоды, посредством которых разрешение конфликтов определяет привязку данных между прикладными программами и т.п., в и из каждого такого дисплея и/или индикатора.
После того, как программе разрешено проводить запись на дисплей и принимать команды посредством его исполнительных механизмов, обращение к вспомогательной системе предоставляет возможность заносить битовый блок/представлять данные в абстрактный буфер памяти, что позволяет выбранному в данный момент компоненту 402 вспомогательного приложения (к примеру, подключаемому модулю) использовать ресурсы дисплея. В типичной реализации (фиг.4) компонент устройства предоставляет интерфейс IAuxDevice для прикладной программы, чтобы предоставлять его данные устройству посредством уровня служб. Заметим, что прикладные данные могут быть обработаны до прохождения через уровень служб, к примеру, для того, чтобы каким-то образом структурировать данные, например, в виде дерева или схемы для того, чтобы облегчить представление, а также кэширование, как описано в вышеупомянутой Патентной заявке (США), озаглавленной "Caching Data for Offline Display and Navigation of Auxiliary Information".
В порядке резюме, стрелки, помеченные цифрами в кругах от одного (1) до шести (6), соответствуют обобщенной временной шкале инициализации и исполнения вспомогательного приложения. Как представлено стрелкой один (1), стартует служба вспомогательного устройства. На стрелке два в качестве части своего процесса инициализации служба создает внепроцессные прикладные COM-объекты. Внепроцессные COM-объекты поддерживают интерфейс IAuxAppSink.
Как представлено стрелкой три (3), компонент вспомогательного приложения (к примеру, объект) вызывает интерфейс IAuxAppReg компонента регистрации службы (к примеру, метода объекта) службы 306 вспомогательного устройства, чтобы подписаться на одно или более вспомогательных устройств. Каждое доступное устройство может быть перечислено посредством конкретной идентичности, возвращенной из вызова, или просто может быть определено как доступное, в случае чего перечисление может определить характеристики каждого устройства.
Как представлено стрелкой четыре (4), после регистрации служба 404 регистрации по существу идентифицирует посреднический компонент (к примеру, объект) компоненту 402 вспомогательного приложения посредством возврата объектного интерфейса IAuxMediator из компонента регистрации. Посреднический компонент (объект) службы хранит копию интерфейса IauxAppSink для того, чтобы посредник 406 мог запрашивать, чтобы компонент 402 приложения ответил на выбор события исполнительных механизмов на дисплей или задавать состояние индикатора.
Нумерованная стрелка (5) на фиг.4 представляет посреднический компонент 406, проходящий через интерфейс IauxDevice, вспомогательному приложению посредством IAuxAppSink. Приложение в свою очередь использует этот интерфейс для того, чтобы реализовать запрос посредством компонента устройства.
Фиг.5 показывает несколько прикладных программ 302A-302C, подключенных к посредническому компоненту (объекту) 406. Хотя показано три таких прикладных программы 302A-302C, следует понимать, что допустимо любое реальное число. В общем, посреднический компонент 406 определяет, какая прикладная программа должна иметь свои данные отображаемыми в данный момент на вспомогательном дисплее 200 (и/или наборе из одного или более индикаторов 500), и/или должна ли принимать пользовательские входные данные от исполнительных механизмов 201. Если имеется более одного вспомогательного дисплейного устройства, промежуточный компонент (объект) 406 привязывает приложения к устройствам; в любой конкретный момент различные вспомогательные устройства могут отображать посредством индикаторов или экрана дисплея данные различных прикладных программ, либо любое приложение может иметь свои данные отображенными на более чем одном вспомогательном устройстве одновременно. Заметим, что одно и то же приложение, таким образом, может выводить данные на два или более дисплеев, тем не менее, данные приложения могут быть различными для каждого вспомогательного устройства. В целях простоты последующее пояснение будет ссылаться на одно вспомогательное дисплейное устройство, которое выводит данные на дисплей (вместо набора индикаторов).
На фиг.5 объект исполнительного механизма, называемый диспетчером 501 взаимодействий, управляет взаимодействием пользователя с исполнительными механизмами 201, соответствующими вспомогательному дисплею. Это взаимодействие может включать в себя ввод пользователем навигационных команд, которые сообщают посредническому компоненту (объекту) 406 изменить приложение, данные которого должны отображаться. Команда также может быть направленной на активированную в данный момент на вспомогательном дисплее прикладную программу, к примеру, для того, чтобы отображать некоторые ее данные, такие как тело выбранного почтового сообщения. Альтернативно, событие 520, такое как событие заданной длительности, может быть принято и обработано посредническим компонентом 406 для того, чтобы выполнять это изменение автоматически в ответ на событие. Таблица поиска и т.п., хранимая в посредническом компоненте, может привязывать события (или внутренние таймеры) к действиям.
Следует заметить, что диспетчеры взаимодействий не должны полностью основываться на прикладных программах, чтобы изменять отображение. Например, программа "домашней страницы", которая перечисляет доступные прикладные программы, из которых пользователь может выбирать, может быть встроена в диспетчер взаимодействий и/или объект 408 дисплея. До тех пор, пока приложение не выбрано, программа домашней страницы настраивает дисплей (к примеру, выделяет и/или прокручивает список доступных приложений) в ответ на взаимодействие пользователя с исполнительными механизмами 201, пока пользователь не выберет одно из приложений.
В одной реализации после распознавания такого выбора приложений или другого запроса на изменение (к примеру, основанного на событии) посреднический компонент 406 отправляет событие вновь выбранному или выбранному в данный момент приложению для того, чтобы проинструктировать это приложение предоставить соответствующие данные объекту 408 дисплея для отображения. При смене с одной прикладной программы на другую, например, вследствие события заданной длительности или возврата на домашнюю страницу посреднический компонент 406 также может отправить событие ранее активному приложению для того, чтобы указать, что его данные больше не отображаются. Заметим, что в случае нескольких дисплеев и/или индикаторов посреднический компонент может заново привязать приложения к объектам дисплея, когда происходят изменения, таким образом, механизм указания того, на какой дисплей, дисплеи и/или индикаторы приложение выводит данные, может потребоваться для того, чтобы информировать приложение о том, как применить свои данные к другому устройству.
Объект дисплея для любого вспомогательного дисплейного устройства может обеспечить, чтобы данные подходили соответствующему дисплею, к примеру, текст на светодиоде будет бессмысленным (если это не текст, соответствующий состоянию конкретного дисплея, например цветовая палитра и/или палитра миганий). Дополнительно, объект дисплея может переформатировать данные надлежащим образом, к примеру, цветные - по шкале уровней серого, текстовые - на растровое отображение, и т.п.
Исполнительные механизмы 201 могут также изменять состояние выбранной в данный момент прикладной программы, чьи данные отображаются. Например, когда выбрана, почтовая прикладная программа может отображать список почтовых сообщений, которые могут быть прокручены прикладной программой в ответ на принятые действия от соответствующих кнопок. После выбора почтового приложения приложение может изменить свое состояние для того, чтобы выводить содержимое выбранного сообщения вместо списка сообщений.
Под прикладным уровнем располагается уровень протоколов, осуществляемый посредством интерфейса обмена данными, в который подключается прокси протокола (к примеру, DLL). Благодаря протокольному уровню подробности и требования к обмену данными абстрагируются от прикладных программ и посреднического компонента.
Более того, протокол не фиксирован, а конфигурируем посредством подключаемого прокси протокола. Таким образом, практически любой протокол может быть использован как соответствующий вспомогательному устройству, включая еще не разработанные протоколы. Заметим, что подключение прокси может быть автоматическим или в значительной степени автоматическим в ответ на первоначальное распознавание наличия подсоединенного вспомогательного дисплея. Например, пользователь может подсоединить интеллектуальный мобильный телефон к вычислительной системе, и когда подсоединение распознано, дисплей мобильного телефона может стать вспомогательным дисплеем посредством автоматической загрузки соответствующего прокси протокола.
Благодаря многоуровневой архитектуре и прикладные программы, и вспомогательное дисплейное устройство, по сути, видят только службу вспомогательного устройства, которая имеет соответствующие интерфейсы, необходимые для того, чтобы надлежащим образом обмениваться данными. Таким способом возможна связь от любого приложения к любому вспомогательному дисплею, для которого предусмотрен согласованный протокол (к примеру для того, чтобы подключаться по USB HID, Bluetooth и т.п., и даже, например, подключаться к веб-службе, размещенной, в сущности, в любом месте мира).
n
Обращаясь к фиг.6, уровень протоколов (иногда называемый аппаратным абстрагированием) службы 306 вспомогательного устройства - это абстрагирование, которое позволяет подключаемым модулям приложения быть маршрутизированными на одно или более устройств. В одной реализации физическое средство вывода может варьироваться в промежутке от небольшого, например, одного светодиода, до полноцветного растрового вспомогательного дисплея или практически всего (к примеру, алфавитно-цифрового дисплея, вспомогательного дисплея с настраиваемым под индивидуальные потребности сегментированием, 2-битных небольших растровых дисплеев с градацией серого, 32-битных более крупных растровых дисплеев, и т.д.). Возможности ввода также варьируются, к примеру, исполнительные механизмы могут варьироваться от кнопок до переключателей и емкостных или других датчиков, включая светочувствительные датчики, датчики движения, датчики массы, и т.д.
Как показано на фиг.6, в одной реализации прокси протокола содержит DLL, которая позволяет содержимому приложения быть направленным на физическое устройство. Интерфейсы IDevice и IProtocol прокси подвергаются обработке базового кода службы 306 вспомогательного устройства, которая принимает события обратного вызова от прокси. В примере на фиг.6 примеры 616 и 617 показаны для основанного на USB/HID вспомогательного дисплея и основанной на WinSock оконечной точке соответственно. Заметим, что можно иметь несколько вспомогательных дисплеев, имеющих различные протоколы связи активными одновременно. Служба вспомогательного устройства хранит данные 650 (к примеру, список конфигурации устройств в формате XML) поставщиков прокси протокола и их соответствующие возможности.
l
1
Заметим, что к этому моменту было описано вычислительное окружение с приложениями, активно запущенными на основной вычислительной системе, совместно с запущенной операционной системой (состояние ACPI уровня SO, называемого в данном документе "оперативным" состоянием). Тем не менее, в альтернативных сценариях вспомогательный дисплей может иметь собственный процессор и память, и это микропрограммное обеспечение может осуществлять действия со вспомогательным устройством, когда основная вычислительная система в "автономном" режиме, к примеру, вычислительная система отключена каким-то образом, к примеру, отключена полностью или в режиме пониженного энергопотребления/бездействия и т.п. (состояние пониженного энергопотребления ACPI уровня SI и выше). Если такое микропрограммное обеспечение используется, вспомогательное устройство может отображать данные, пока устройство находится в оперативном или автономном режиме. Если оно отсутствует, вспомогательное устройство может работать только в оперативном режиме. В состоянии возможности работы, только в оперативном режиме описанные выше приложения и различные компоненты выполняются на основном процессоре под управлением операционной системы. Фиг.7 в общем представляет взаимоотношение между приложениями 302A и 302B (в данном примере имеющими соответствующие вспомогательные подключаемые модули 402A и 402B) и диспетчеры взаимодействия, когда в одном из двух этих сценариев, а именно с возможностью работы только в оперативном режиме или с возможностью работы в оперативном и автономном режиме. Когда только в оперативном режиме, оперативный диспетчер взаимодействий 501 (запущенный в операционной системе основного процессора) принимает пользовательский ввод и посредством службы 306 вспомогательного дисплея может передавать соответствующие данные выбранной в данный момент прикладной программе и/или контроллеру 730 дисплея для обработки. Заметим, что это в сущности аналогично описанному выше по отношению к фиг.5. Дополнительно заметим, что даже если устройство может быть с возможностью работы в автономном режиме, эти оперативные компоненты могут быть запущены всегда, когда основная система в оперативном режиме, поскольку мощность обработки и память обычно больше в оперативном состоянии, и поскольку приложения запущены с фактическими данными вместо кэшированных данных.
2
2
2
2
Когда в автономном состоянии, используется другой автономный диспетчер 501взаимодействия. Следует понимать, что автономный диспетчер 501 взаимодействия запущен под управлением вспомогательного микроконтроллера и автономного (к примеру, флэш- или с альтернативным питанием) устройства хранения. В общем, автономный диспетчер 501 взаимодействий обрабатывает кэшированные данные в ответ на навигационные команды от исполнительных механизмов 201. Автономная программа-оболочка, которая может рассматриваться как часть автономного диспетчера 501 взаимодействий (хотя она может быть отдельным компонентом), может предоставлять домашнюю страницу и включает в себя навигационную логику, которая определяет, какое изображение (к примеру, растровое) отображать или какое содержимое должно быть интерпретировано для представления на дисплее, например, посредством блока представления в оболочке. Заметим, что одни и те же исполнительные механизмы и вспомогательный дисплей может быть использован на устройстве с возможностью работы в оперативном/автономном режиме независимо от того, оперативный или автономный режим, хотя могут быть некоторые различия в том, что может быть отображено, вследствие ограничений вспомогательного процессора и/или памяти. Например, разрешение изображения может отличаться, если кэшированные растры используются для автономного сценария, а пространство ограничено. Тем не менее, заметим, что могут быть преимущества в форматировании данных, отправленных на дисплейное устройство в стандартной навигационной (к примеру, дерево или схема) структуре для оперативного и автономного режима, в том числе то, что пользователь получает аналогичные возможности работы и что различные компоненты не должны конфигурироваться, чтобы обрабатывать различные структуры в зависимости от оперативного или автономного состояния. Тем не менее, фактические данные, которые должны быть отображены, могут отличаться, к примеру, если не все данные приложения могут быть кэшированы для автономного просмотра вследствие ограничений на пространство хранения, объем данных для того, чтобы кэшировать, уменьшается по размеру (к примеру, древовидная структура отсекается), как описано в вышеупомянутой Патентной заявке США, озаглавленной "Caching Data for Offline Display and Navigation of Auxiliary Information".
Контекстная платформа и приложения вспомогательного дисплея
Фиг.8 - это представление, аналогичное представлению на фиг.7, но с добавлением понятия контекстного датчика. На фиг.8 контекстный датчик или датчики показаны в виде отдельных датчиков 840 и 842 для восприятия оперативного или автономного контекста соответственно, но следует понимать, что некоторые или все датчики могут быть аналогичными и используемыми в обоих состояниях.
В соответствии с аспектом настоящего изобретения, в общем, контекстный датчик определяет некоторое изменение контекста и сообщает об этом основной вычислительной системе и/или вспомогательному устройству. Переданное изменение контекста затем используется для того, чтобы предпринять определенное действие относительно того, какая информация отображается на вспомогательном дисплейном устройстве, либо предпринять какое-либо иное действие.
В автономном состоянии изменение контекста может иметь определенный эффект на кэшированные данные, например, для того, чтобы интерпретировать или использовать кэшированные данные по-разному в зависимости от текущего состояния контекста, либо чтобы вероятно добавлять новые или удалять кэшированные данные. В качестве примера, если датчик распознает присутствие другого человека вместе с пользователем системы, любая информация в кэш-памяти, которая была ранее определена пользователем как конфиденциальная, может быть отсечена и восстановлена в другое время. Таким образом, во время встречи пользователь не может непреднамеренно показать свои почтовые сообщения другим посетителям, которые могут видеть вспомогательный дисплей. Аналогично, если вспомогательный дисплей установлен на крышке портативной вычислительной системы и крышка открыта, пользователь устройства не может видеть вспомогательный дисплей, однако другие могут, и, таким образом, вся конфиденциальная информация обычно не должна быть отображена, когда крышка открыта. В обоих вышеприведенных примерах текущий контекст - это контекст, который определяет требуемый вывод на дисплее, и, таким образом, восприятие этого контекста позволяет управлять дисплеем.
Заметим, что осведомленность о контексте работает и в оперативном, и в автономном режиме, при этом различие в том, что в оперативном режиме изменения контекста могут передаваться прикладным программам или компонентам операционной системы, тогда как в автономном режиме изменение контекста будет использовано для того, чтобы модифицировать использование кэшированных данных и/или любых других данных, полученных вспомогательным микропрограммным обеспечением. Эти другие данные, которые могут быть добавлены к кэшированным данным или объединены с ними, описаны в вышеупомянутой Патентной заявке США, озаглавленной "Processing Information Received at an Auxiliary Computing Device". К тому же, датчики могут быть различными или, по меньшей мере, различаться по количеству в оперативном и автономном режиме, к примеру, некоторые датчики могут передавать информацию оперативной системе, а для портативного вспомогательного устройства датчики, прикрепленные к этому устройству, будут сопровождать это устройство, тогда как другие, прикрепленные к основной вычислительной системе, останутся с основной вычислительной системой.
В оперативном состоянии, в котором и основная вычислительная система, и вспомогательное устройство работают, изменения контекста, которые передаются в оперативные прикладные программы и/или компоненты операционной системы, используются прикладными программами и/или операционной системой (и/или самим вспомогательным устройством), которые каждый получатель информации считает нужными; в результате изменения контекста могут внести временные или постоянные изменения в основную вычислительную систему и/или вспомогательное устройство, к примеру, посредством изменения реестра или другой настройки. Заметим, что изменения, сообщенные программам основной вычислительной системы, могли произойти в то время, когда основная вычислительная система было в автономном режиме, и если так, то они сохраняются вспомогательным устройством и передаются, когда основная вычислительная система возвращается в оперативный режим. В оперативном режиме различные контекстные данные могут передаваться приложениям, которые зарегистрировались для использования вспомогательного дисплея. Различные типы контекста могут быть воспринимаемыми, например, контекст, соответствующий физическому размещению дисплея или основной вычислительной системы, данным о перемещении или движении, присутствию конкретного пользователя или других, режиму питания, состоянию подключения к сети, состоянию конфиденциальности, и т.д.
Приложения, осведомленные о вспомогательных устройствах, альтернативно могут называться подключаемыми модулями, даже хотя вспомогательный код может фактически не быть подключаемым модулем, а вместо этого частью кода основной прикладной программы, как описано выше. Приложение может регистрировать (или запрашивать) конкретный контекстно-зависимый режим работы, прежде чем система перейдет в автономный режим. Вспомогательное устройство, таким образом, может отправлять контекстно-зависимые события, как только они распознаны или через некоторое соответствующее время после распознавания, или может сохранять связанные с контекстом данные для ответа на запрос. Вспомогательное устройство также может получать связанные с контекстом данные по запросу, например, в ответ на запрос прикладной программы, и/или может время от времени опрашивать один или более датчиков по необходимости. Вспомогательное устройство также может повторно отправлять связанные с контекстом события, например, для приложений, которые не были запущены и/или зарегистрированы в то время, когда событие было отослано последний раз.
С помощью настоящего изобретения подключаемые модули могут регистрироваться для того, чтобы быть доступными в нескольких режимах питания. Например, календарный подключаемый модуль подходит, когда система и в оперативном, и в автономном режиме, однако свежие котировки ценных бумаг, принимаемые посредством основной вычислительной системы, не подходят для кэширования и использования в автономном режиме. Подключаемые модули могут также регистрироваться для того, чтобы быть доступными в нескольких размещениях. Например, датчик состояния батареи уместен, когда вспомогательный дисплей размещен на фальш-панели портативной вычислительной системы или на ее крышке, либо и там, и там.
При разработке подключаемого модуля вспомогательного дисплея разработчик может задавать надлежащий контекст (или контексты), в которых приложение может быть отображено (или должно быть отображено на основе изменения контекста) или не может быть отображено. Служба может также передавать любое изменение в событии контекста подключаемому модулю, который может настраивать его будущий вывод соответствующим образом. Подключаемый модуль может регистрировать изменение отображения при изменении контекста, к примеру, автоматически представлять определенный дисплей, когда Bluetooth-устройство находится в пределах досягаемости. Более того, если Bluetooth-устройство становится доступным в качестве вспомогательного дисплея, подключаемый модуль каждого надлежащим образом зарегистрированного приложения может быть уведомлен об изменении контекста, так чтобы, например, подключаемый модуль мог настраивать свой вывод для нового устройства.
Вспомогательная служба 306, которая осведомлена о текущем системном контексте, может выбирать, из каких подключаемых модулей следует отображать данные, а какие отключить, на основе текущего контекста. С этой целью в одной реализации, когда происходят изменения состояния контекста, вспомогательная служба перечисляет список активированных подключаемых модулей для того, чтобы определить, должны ли быть добавлены или удалены какие-либо подключаемые модули на основе изменения контекста. Если запущено в автономном режиме, микропрограммное обеспечение или операционная система, запущенная на вспомогательном процессоре, может применять тот же фильтр контекста для того, чтобы отключать подключаемые модули, которые больше не представляют значимости в автономном режиме питания. Альтернативно, может быть применен другой фильтр.
Примеры различных контекстов включают в себя режим питания, который определяет, в каком режиме питания соответствующая подключаемому модулю информация будет отображена, является ли источник информации соответствующей подключаемому модулю прикладной программой или кэшированными данными для этой прикладной программы. Вспомогательная служба 306 осведомлена об изменениях режима питания системы посредством имеющихся системных уведомлений. Варианты режима питания подключаемого модуля включают в себя оперативный режим (SO), в котором подключаемый модуль подходит, когда система в оперативном режиме, и автономный режим (S3-S5), в котором подключаемый модуль подходит, когда система в автономном режиме. Подключаемый модуль может регистрироваться для того, чтобы быть доступным в оперативном и автономном режиме.
Еще один контекст - относительное размещение дисплея, и он может быть использован для того, чтобы определять, будет ли подключаемый модуль отображать информацию на основе размещения вспомогательного дисплея по отношению к основному дисплею основной вычислительной системы. Изготовитель может регистрировать положение вспомогательного дисплея как часть конфигурации системы или пользователь может определять размещение системы, например, для произвольного размещения, которое не подходит в полной мере ни одной из заданных категорий, или если пользователь хочет переопределить зарегистрированное положение. Каждый подключаемый модуль затем может регистрироваться во вспомогательной службе 306 в соответствии с тем, в каких размещениях следует выполняться. Например, варианты размещения подключаемого модуля включают в себя видимость вместе с основным дисплеем, к примеру, вспомогательный дисплей размещается в месте, которое видимо одновременно с основным дисплеем, например, на фальш-панели портативной вычислительной системы. Еще одно размещение - не видим вместе с основным дисплеем, к примеру, вспомогательный дисплей размещается в месте так, чтобы не быть видным одновременно с основным дисплеем, например, если установлен на крышке портативного устройства, и таким образом, видим только, когда крышка закрыта, или с другой стороны основного дисплея. Еще одно размещение, которое может быть зарегистрировано, - удаленный дисплей, показывающий, что вспомогательный дисплей либо отделяем от основной ПЭВМ, либо размещается на отдельном устройстве, подключенном по удаленному подключению (к примеру, посредством Bluetooth к мобильному телефону). Подключаемый модуль может регистрироваться для того, чтобы быть показанным в любом сочетании вариантов размещения. Подключение к сети - еще один контекст, который может быть распознан, и может быть использован для того, чтобы определить, будет ли подключаемый модуль отображать информацию, на основе текущего состояния подключения к сети. Варианты подключения к сети подключаемого модуля включают в себя беспроводное подключение, Ethernet-подключение, Bluetooth-подключение и отсутствие подключения к сети. Подключаемый модуль может регистрироваться для того, чтобы быть показанным в любом сочетании вариантов подключения к сети. Вспомогательная служба осведомлена о текущем сетевом состоянии посредством используемого API-интерфейса. В автономном режиме микропрограммное обеспечение или оперативная система на вспомогательном процессоре может иметь доступ к сети и может задавать состояние для подключаемых модулей, как требуется.
Другой тип восприятия контекста - распознавание фактического физического размещения устройства, например, на работе или дома. Например, если пользователь приходит домой с работы и распознана другая беспроводная сеть, то изменение контекста может быть передано почтовой прикладной программе пользователя, которая затем настроит, чтобы выводить почтовые сообщения, адресованные на личный адрес пользователя, на вспомогательный дисплей, вместо почтовых сообщений на рабочий адрес электронной почты пользователя. Данные глобальной системы навигации и определения положения (GPS) могут также определять размещение, как может и восприятие текущего размещения пользователя и скорости помогать предсказывать будущее местоположение и тем самым настраивать выводимые данные соответствующим образом.
Конфиденциальность информации определяет, будет ли подключаемый модуль отображен на основе различаемой конфиденциальности информации и текущего контекста пользователя. Контекст может быть выбран пользователем на основе текущей ситуации и передан вспомогательной службе или микропрограммному обеспечению/ОС. Эвристика определяет, какой уровень информации должен быть показан, на основе выбранного пользователем контекста и другой относящейся к делу информации. Например, если второй пользователь использует службы Terminal Services для того, чтобы осуществлять доступ к портативному устройству в то время, когда другой пользователь зарегистрирован в системе. Еще один пример - оставление пользователем своей вычислительной системы без обслуживания, в результате желательно не допустить просмотр секретной информации, пока без обслуживания.
Варианты конфиденциальности информации подключаемого модуля включают в себя системные данные, когда подключаемый модуль вообще не содержит личной информации (к примеру, датчик состояния батареи), и пользовательские данные, когда подключаемый модуль содержит данные, связанные с личными предпочтениями пользователя, но это не личные данные (к примеру, прогнозы погоды по почтовому индексу или выбранные пользователем котировки ценных бумаг). Более конфиденциальный вариант - личная информация, например, когда подключаемый модуль содержит данные, конкретно относящиеся к пользователю, но не обязательно личные, такие как музыкальный список воспроизведения. Личная информация указывает, что подключаемый модуль содержит информацию, которая должна рассматриваться как личная (к примеру, календарная электронная почта). В одной реализации подключаемый модуль может регистрироваться только на один из этих вариантов. В альтернативных реализациях допустима более тонкая детализация, к примеру, определенным данным подключаемого модуля присваивается признак одной степени конфиденциальности, тогда как другим данным - признак другой степени, и время назначения конфиденциальности не совпадает со временем регистрации.
Следует принимать во внимание, что практически любой контекст, который может быть воспринимаем, может быть использован для того, чтобы изменять представление программных данных при изменении контекста. Это может быть основано на правилах, которые предоставляются программой до изменения контекста, либо посредством уведомления программы об изменении контекста и предоставления программе возможности настраивать свой вывод.
Более того, вспомогательное устройство (к примеру, посредством своих исполнительных механизмов) также может изменять контекст. Например, кнопка, нажатая на исполнительных механизмах вспомогательного дисплейного устройства, может изменить режим питания (к примеру, включено/отключено/ожидание/бездействие) основной системы, такой как портативной вычислительной системы. Альтернативно, нажатие кнопки на вспомогательном дисплее может быть использовано для того, чтобы послужить причиной подключения основной системы к беспроводной сети.
Из вышеприведенного описания можно видеть, что настоящее изобретение предусматривает различные контекстные прикладные программы (подключаемые модули) для того, чтобы предоставлять данные в надлежащее время вспомогательному дисплею вычислительной системы, одновременно давая возможность практически любому возможному дисплею, будь это встроенный специальный вспомогательный дисплей или независимое дисплейное устройство, выступать в качестве вспомогательного дисплея. Таким образом, настоящее изобретение предоставляет значительные выгоды и преимущества, востребованные в современной вычислительной среде, с помощью вспомогательных дисплейных устройств.
Хотя изобретение допускает различные модификации и альтернативные конструкции, его конкретные проиллюстрированные варианты осуществления показаны на чертежах и подробно описаны выше. Тем не менее, необходимо понимать, что отсутствует намерение ограничить изобретение конкретной раскрытой форме или формами, а наоборот, намерение состоит в том, чтобы охватить все модификации, альтернативные конструкции и эквиваленты, попадающие под сущность и область применения изобретения.