ПРОДОЛЖЕНИЕ ЗАДАЧ МЕЖДУ УСТРОЙСТВАМИ
TASK CONTINUANCE ACROSS DEVICES

УРОВЕНЬ ТЕХНИКИ
[0001] Для пользователей является обычным переключаться между устройствами (например, настольным компьютером, переносным компьютером, мобильным телефоном) множество раз в течении дня, но хотеть продолжить с той же самой задачей. Например, пользователь может искать ресторан на настольной вычислительной системе перед уходом из дома и затем продолжить поиск маршрута/карты на мобильном телефоне во время передвижения к этому ресторану. Продолжение таких задач от одного устройства к другому устройству требует ручного взаимодействия, такого как осуществление ввода на новом устройстве такого же запроса, что первоначально введен на первом устройстве.
[0002] В дополнение к поиску, есть другие задачи, которые пользователи могут пожелать продолжить на другом устройстве. Например, пользователю может потребоваться сменить размещения (и поэтому, устройства) во время вызова по сети, но желательно повторно присоединиться к тому же диалогу на другом устройстве (например, телефоне). В другом примере, пользователь может искать кинофильм в телефонном приложении поиска, и затем захотеть переключиться на настольный компьютер для просмотра кинофильма. В этих сценариях, однако, продолжение таких задач между устройствами требует дополнительной работы, такой как копирование файлов, открытие файла и просмотр той же страницы, повторный набор веб-сайта, поиск онлайн-конференции и повторное присоединение, и т.д.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Нижеследующее представляет упрощенное краткое изложение сущности изобретения, для того, чтобы обеспечить базовое понимание некоторых описанных в настоящем документе новаторских вариантов осуществления. Это краткое изложение сущности изобретения не является обширным обзором и не предназначено для идентификации ключевых/критических элементов или для задания их объема. Его единственной целью является представление некоторых идей в упрощенной форме в качестве прелюдии к более подробному описанию, которое представлено позже.
[0004] Раскрытая архитектура обеспечивает восприятие пользователя для продолжения задач компьютера и/или приложения между пользовательскими устройствами. Задачами могут быть поиск, просмотр или другие действия офисных приложений, например. Статус задачи может быть синхронизирован между устройствами посредством облачной службы или посредством беспроводного однорангового (P2P) соединения ближнего радиуса действия, такого как Bluetooth™.
[0005] При применении к поиску, например, восприятие пользователя обеспечивает пользователям возможность возобновить тот же сеанс поиска между устройствами несколькими способами. Первым способом для осуществления продолжения задачи сеанса поиска и сеансов других типов является использование облачных служб (например, хранилища данных в сети, совместного использования данных по сети, других служб, таких как механизмы поиска) для синхронизации истории поиска.
[0006] Вторым способом для осуществления продолжения задачи является P2P-соединение (например, беспроводное или проводное ближнего радиуса действия). Продолжая с примером поиска, история поиска может быть скопирована посредством P2P через Bluetooth-соединение.
[0007] Раскрытая архитектура может также быть расширена для других задач, таких как просмотр веб-страниц, онлайн-конференции, сеансы офисных приложений и т.д. Клиентское приложение каждого устройства собирает состояния каждого приложения (например, ссылки на документы, веб-сайты, информацию онлайн-конференции и т.д.) как часть синхронизации, и использует состояния для возобновления тех же приложений на других устройствах (например, открыть тот же документ обработки текста, открыть в браузере те же веб-сайты, повторно присоединиться к онлайн-конференции, и т.д.).
[0008] Для достижения вышеуказанных и связанных с ними целей, конкретные иллюстративные аспекты описаны в настоящем документе в связи с нижеследующим описанием и прилагаемыми чертежами. Эти аспекты указывают на различные пути, в которых раскрытые в настоящем документе принципы могут быть применены на практике, и все аспекты и их эквиваленты предназначены находиться в рамках объема заявленного объекта изобретения. Другие преимущества и новаторские признаки станут очевидны из нижеследующего подробного описания, при рассмотрении совместно с чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Фиг. 1 иллюстрирует систему возобновления задач в соответствии с раскрытой архитектурой.
[0010] Фиг. 2 иллюстрирует более детальную систему возобновления задач в соответствии с раскрытой архитектурой.
[0011] Фиг. 3 иллюстрирует примерные пользовательские интерфейсы для выбора одной или более задач на одном устройстве и продолжения этих задач на другом устройстве.
[0012] Фиг. 4 иллюстрирует облачную службу для продолжения задач на устройствах.
[0013] Фиг. 5 иллюстрирует способ в соответствии с раскрытой архитектурой.
[0014] Фиг. 6 иллюстрирует альтернативный способ в соответствии с раскрытой архитектурой.
[0015] Фиг. 7 иллюстрирует блок-схему вычислительной системы, которая исполняет продолжение задачи в соответствии с раскрытой архитектурой.
ПОДРОБНОЕ ОПИСАНИЕ
[0016] Раскрытая архитектура способствует восприятию пользователя для продолжения задач компьютера и/или приложения (например, "задачи нажми и продолжи") между пользовательскими устройствами. Задачами могут быть поиск, просмотр или другие активности офисных приложений, например. Статус задачи может быть синхронизирован между устройствами посредством облачной службы или посредством беспроводного однорангового (P2P) соединения ближнего радиуса действия, такого как Bluetooth™.
[0017] Более конкретно, при применении к поиску, восприятие пользователя обеспечивает пользователям возможность возобновления того же сеанса поиска, например, между устройствами несколькими способами. Первым способом для осуществления продолжения задачи сеанса поиска и сеансов других типов является использование облачных служб (например, хранилища данных в сети, совместного использования данных по сети, других служб, таких как механизмы поиска) для синхронизации истории поиска. Каждое пользовательское устройство устанавливает клиентское приложение (или является добавляемым компонентом для существующего приложения).
[0018] Все клиенты осуществляют вход в облачную службу посредством одинакового ID пользователя (например, идентификатора (ID) Windows Live™, ID социальной сети и т.д.). Когда пользователь оставляет устройство, пользователь взаимодействует с установленным клиентским приложением для осуществления выбора одной или более задач (например, истории поиска, сеанса просмотра и т.д.) для продолжения между устройствами. Это выбор может быть выполнен по запросу и/или предварительно выполнен с возможностью быть автоматическим. Другие пользовательские устройства принимают уведомление и предлагают пользователю выбрать возобновление (например, "нажми и продолжи") одной или более задач. Когда пользователь отвечает на другом устройстве, клиентское приложение открывает (запускает) необходимые приложения (например, браузер, и добавляемую программу, и т.д.) и возобновляет то же состояние каждого связанного приложения (например, выдает те же запросы, открывает тот же веб-сайт и т.д.).
[0019] Вторым способом для осуществления продолжения задачи является P2P-соединение (например, беспроводное или проводное ближнего радиуса действия). Продолжая с примером поиска, история поиска может быть скопирована посредством P2P через Bluetooth-соединение. По сравнению с облачным решением, P2P-решение проще в реализации, но для беспроводного соединения, требует, чтобы два устройства оставались в непосредственной близости по время переноса контекста задачи.
[0020] Раскрытая архитектура также находит приложение для панели расширения браузера, поиск "charm" (функция операционной системы Windows 8™), браузеры (например, Internet Explorer™), или другие клиентские приложения. Раскрытая архитектура может также быть расширена для других задач, таких как просмотр веб-страниц, онлайн-конференции, сеансы офисных приложений и т.д. Клиентское приложение (например, клиент 108) собирает состояния каждого приложения (например, ссылки на документы, веб-сайты, информацию онлайн-конференции и т.д.) как часть синхронизации, и использует состояния для возобновления тех же приложений на других устройствах (например, открыть тот же документ обработки текста, браузер для тех же веб-сайтов, повторно присоединиться к онлайн-конференции, и т.д.).
[0021] Теперь делается ссылка на чертежи, где везде подобные ссылочные номера используются для ссылки на подобные элементы. В следующем описании, в целях разъяснения, многочисленные конкретные сведения излагаются для того, чтобы обеспечить их полное понимание. Однако, может быть очевидно, что новаторские варианты осуществления могут быть применены на практике без этих конкретных сведений. В иных случаях, хорошо известные конструкции и устройства показаны в форме блок-схем для того, чтобы облегчить их описание. Замысел состоит в том, чтобы охватить все модификации, эквиваленты и альтернативы, укладывающиеся в сущность и объем заявленного объекта изобретения.
[0022] Фиг. 1 иллюстрирует систему 100 возобновления задач в соответствии с раскрытой архитектурой. Система 100 способствует возобновлению задачи (или задач) первого устройства, для первого устройства (D1) 104, на втором устройстве, например, втором устройстве (D2) 106. В их поддержку, система 100 содержит механизм 102 взаимного соединения (например, беспроводная технология ближнего радиуса действия (например, Bluetooth), облачная служба и т.д.) и клиенты устройств (например, первый клиент (C1) 108 устройства для первого устройства 104, второй клиент (C2) 110 устройства для второго устройства 106, и т.д.), которые обеспечивают возможность обмена данными и сигналами между устройствами (и клиентами) для возобновления задач.
[0023] Клиенты (например, клиент C1, C2, C3, и т.д.) функционируют в координации с программным обеспечением устройства (например, операционной системой, другими приложениями и т.д.) для обеспечения возможности выбора задачи и затем передачи варианта для возобновления обработки задачи на одном или более других устройствах. Клиенты могут быть спроектированы для функционирования совместно с конкретными устройствами, на которых установлен клиент, и более конкретно, только на устройствах, общих для единственного пользователя. Например, один клиент может функционировать совместно на сотовых телефонах (например, первом устройстве 104), другой клиент, спроектированный с возможностью функционировать на компьютерах (например, настольном устройстве D3, переносных вычислительных устройствах D2 и D5 и планшетном компьютере D4), и еще другие клиенты, спроектированные для функционирования на других подходящих устройствах 112.
[0024] При операции, пользователю, выполняющему одну или более задач (например, веб-поиск) на первом устройстве 104, посредством раскрытой архитектуры обеспечивается возможность выбора одной или более задач для возобновления на втором устройстве 106. Первый клиент 108 функционирует с программным обеспечением устройства для представления пользовательского интерфейса (UI) 114 для выбора/переноса и возобновления задачи.
[0025] Взаимодействие пользователя с первым устройством 104, первым клиентом 108 и UI 114 может быть с возможностью жестов, в силу чего пользователь использует один или более жестов для взаимодействия. Например, жесты могут быть жестами естественного пользовательского интерфейса (NUI). NUI может быть задан как любая технология интерфейса, которая обеспечивает пользователю возможность взаимодействия с устройством "естественным" образом, свободным от искусственных ограничений, наложенных устройствами ввода, такими как мыши, клавиатуры, пульты дистанционного управления и подобными. Примеры NUI-способов включают в себя те способы, которые используют жесты, широко заданные в настоящем документе как включающие в себя, но не ограниченные этим, тактильные и нетактильные интерфейсы, такие как распознавание речи, распознавание касания, распознавание лиц, распознавание стилуса, жесты в воздухе (например, позы и перемещения рук и другие движения/позы тела/конечностей), отслеживание головы и глаз, голосовые и речевые высказывания, и машинное обучение, относящееся по меньшей мере к данным зрения, речи, голоса, позы и касания, например.
[0026] NUI-технологии включают в себя, но не ограничены этим, чувствительные к касанию дисплеи, распознавание голоса и речи, понимание намерения и цели, обнаружение движения и жестов с использованием камеры глубины (например, системы стереоскопических камер, системы инфракрасных камер, системы цветных камер и их комбинации), обнаружение движения и жестов с использованием акселерометров/гироскопов, распознавание лиц, 3D дисплеи, отслеживание головы, глаз и взгляда, системы дополненной реальности с эффектом присутствия и виртуальной реальности, все из которых предоставляют более естественный пользовательский интерфейс, также как и технологии для считывания активности мозга с использованием электродов, считывающих активность мозга (например, электроэнцефалограф (EEG)) и другие способы нейробиологической обратной связи.
[0027] Как только представлено с помощью возможности "Выбрать задачу и отправить" в UI 114, пользователь может выбрать одну или более задач (частично завершенную, или взаимосвязанную задачу, где вторая задача инициируется только после завершения предыдущей задачи), чему способствует UI 114 первого устройства 104, затем вызвать исполнение процесса (например, нажав кнопку "Отправить"), при этом все другие пользовательские устройства (D2, D3, D4, D5 и клиенты C2, C3, C4, C5) принимают уведомление (например, "Возобновить задачу?") в соответствующих UI 114. Пользователь может затем перейти к любому из других пользовательских устройств (например, второму устройству 106) и взаимодействовать с уведомлением (например, "Возобновить задачу?") UI 114, чтобы вызвать возобновление одной или более задач на этом втором устройстве 106. Второе устройство 106 запустит все приложения, которые ему требуются для возобновления одной или более задач.
[0028] Может быть случай, когда пользователь на втором устройстве 106 может затем выбрать опять перейти к третьему устройству 116 для возобновления задачи на третьем устройстве 116. Причины сделать это могут быть из-за ограничений по времени (например, имеются только 15 минут для использования перед неожиданным прерыванием) при использовании второго устройства 106, ограничений ресурсов второго устройства 106 (третье устройство 116 имеет больше аппаратных ресурсов, чем второе устройство 106), эксплуатационные ограничения программного обеспечения второго устройства 106 (третье устройство 116 имеет более функциональное программное обеспечение, чем второе устройство 106) и т.д. Другими словами, приложения, которые могут выполнять задачу(и) на первом устройстве 104, могут не быть идентичными приложениям, возобновляющим задачу(и) на втором устройстве 106.
[0029] Может быть случай, когда система 100 выполняет проверку совместимости между приложением или приложениями, используемыми в первом устройстве 104, с приложением или приложениями, доступными на втором устройстве 106, для возобновления задач(и). Результаты проверки совместимости могут быть предоставлены во время процесса выбора, как фоновая операция, так чтобы пользователь мог знать заранее, какое устройство может быть более подходящим или желаемым для возобновления задач(и).
[0030] Как указано ранее, механизм 102 взаимного соединения может быть посредством сетевой облачной службы, однорангового (P2P) соединения, или обоих. Как облачная служба, аппаратные/программные возможности устройства могут быть известны и сохранены "в облаке", так чтобы проверка совместимости выполнялась в отношении данных устройства, хранящихся в облаке и доступных посредством сетевой службы. Для P2P-соединение, клиенты могут включать в себя возможность проверки совместимости, если требуется реализовать.
[0031] Фиг. 2 иллюстрирует более детальную систему 200 возобновления задач в соответствии с раскрытой архитектурой. В этой иллюстрации бок-о-бок по Фиг. 2, показаны два устройства, каждый с клиентом, который обеспечивает возможность раскрытой архитектуры: первое устройство 104 и ассоциированный первый клиент 108, и второе устройство 106 и ассоциированный второй клиент 110.
[0032] Первый клиент 108 может включать в себя компонент 202 выбора, который обеспечивает возможность выбора задачи 204 первого устройства 104 для продолжения на втором устройстве 106. Компонент 206 состояния захватывает состояние 208 контекста на первом устройстве 104, ассоциированном с задачей 204, на основе выбора, сделанного автоматически, или сделанного вручную (пользователем). Состояние 208 контекста содержит одно или более приложений, состояние контрольной точки, и любые другие данные, настройки, сигналы, процессы и т.д., используемые во время или близко ко времени прекращения частично завершенной задачи 204 и функционирующие для способствования завершению задачи на первом устройстве 104.
[0033] Компонент уведомления 210 отправляет уведомление 212 (имеющее аббревиатуру "уведомл" на Фиг. 2) или другой сигнал на второе устройство 106 для продолжения задачи 204 на втором устройстве 106. Уведомление 212 может включать в себя или дополнительно генерировать интерактивный вариант (например, посредством жеста), чтобы утвердить возобновление задачи или отклонить возобновление задачи. Компонент 210 уведомления может также принять и обработать уведомления (сигналы) от других устройств, чтобы способствовать уведомлению на локальном устройстве. Компонент 214 синхронизации (sync) синхронизирует состояние контекста, принятое от другого подходящего устройства (например, состояние 208 контекста первого устройства 104), с локальным состоянием для возобновления задачи, ранее выполняемой на другом устройстве.
[0034] Аналогично, второй клиент 110 второго устройства 106 может включать в себя компонент 220 выбора, который обеспечивает возможность выбора задачи 222 второго устройства 106 для продолжения на первом устройстве 104. Компонент 224 состояния захватывает состояние 226 контекста на втором устройстве 106, ассоциированное с задачей 222, на основе выбора. Состояние 226 контекста содержит одно или более приложений, состояние контрольной точки, и любые другие данные, настройки, сигналы, процессы и т.д., используемые во время или близко ко времени прекращения частично завершенной задачи 222, и функционирующие для способствования завершению задачи 222 на первом устройстве 104.
[0035] Компонент уведомления 228 может отправить уведомление (или сигнал) (не показано) на первое устройство 104 для продолжения задачи 222 на первом устройстве 104. Уведомление может включать в себя или дополнительно генерировать интерактивный вариант (например, посредством жеста), чтобы утвердить возобновление задачи или отклонить возобновление задачи. Компонент 228 уведомления может также принять и обработать уведомления (сигналы) от других устройств, чтобы способствовать уведомлению на локальном устройстве. Компонент 230 синхронизации (sync) синхронизирует состояние 208 контекста первого устройства 104 с локальным состоянием для возобновления задачи 204 на втором устройстве 106.
[0036] Следует понимать, что все пользовательские устройства, которые функционируют в соответствии с раскрытой архитектурой, включают в себя клиент (например, клиент 108), который обеспечивает возможность признаков, описанных в настоящем документе, такие как захват состояния (посредством компонента 206 состояния), выбор (с использованием компонента 202 выбора), уведомление (с использованием компонента 210 уведомления), и синхронизация состояния (с использованием компонента 214 синхронизации), и возможно, распознавание жеста (например, с использованием компонента 216 жестов). Компонент 232 жестов интерпретирует принятый жест для возобновления задачи 204 на втором устройстве 106.
[0037] При односторонней операции, пользователь выбирает выбрать и возобновить (продолжить) частично завершенную задачу 204 первого устройства 104, на втором устройстве 106. Таким образом, первый клиент 108 способствует уведомлению и захвату состояния 208 контекста и его передаче на второй клиент 110 второго устройства 106, либо прямо через P2P-соединение или непрямо через облачную службу. Когда уведомление 212 принимается на втором устройстве 106, UI второго устройства 106 отображает уведомление или подходящую инструкцию реализации пользователю, который может выбрать (посредством жеста, такого как "нажатие" на устройстве отображения) утвердить продолжение задачи 204.
[0038] Как только выбрано, компонент 230 синхронизации принимает и обрабатывает состояние 208 контекста, для синхронизации (изменения) текущего состояния второго устройства 106 с состоянием 208 контекста первого устройства 104. Таким образом, хотя не показано, состояние второго устройства 106 сконфигурировано для состояния 208 контекста первого устройства 104, чтобы включать в себя запуск всех приложений, требуемых для достижения состояния 208 контекста. Может быть случай, когда пользователю представляется другое уведомление, что было достигнуто состояние контекста, в этом случае пользователь может тогда снова начать в этой точке задачи 204.
[0039] Другими словами, состояние контекста захватывается локально в первом устройстве и передается посредством сетевой службы на второе устройство. Состояние контекста захватывается локально в первом устройстве и передается на второе устройство через одноранговое соединение. Состояние контекста ассоциировано с многочисленными приложениями, и многочисленные приложения запускаются на втором устройстве для возобновления задачи. Компонент выбора автоматически выбирает задачу на первом устройстве, которая должна быть возобновлена на втором устройстве. Компонент жестов распознает жест как жест естественного пользовательского интерфейса, чтобы утвердить возобновление задачи на втором устройстве. Первое устройство и второе устройство обычно идентифицируются посредством учетных данных для логического входа (login).
[0040] Фиг. 3 иллюстрирует примерные пользовательские интерфейсы 300 для выбора одной или более задач на одном устройстве и продолжения этих задач на другом устройстве. Первый UI 302 (аналогичный UI 114) на первом устройстве 104 предоставляет пользователю возможность осуществления выбора одной или более задач в процессе выполнения в текущий момент или недавно находившихся в процессе выполнения. Как только выбрано, захватывается состояние контекста, которое задает одно или более приложений, ассоциированных с задачей или задачами, также как и данные приложения, данные контрольной точки и любые другие данные/информация, необходимые для воспроизведения состояния задачи на втором устройстве.
[0041] Здесь, пользователь взаимодействует с сенсорным дисплеем для осуществления выбора первой задачи (задача-1) и третьей задачи (задача-3) для продолжения на втором устройстве. Таким образом, компонент 202 выбора обеспечивает возможность получения текущих задач (например, от операционной системы устройства и журналов приложений), и способствует представлению, выбору и отправке информации задачи, чтобы сгенерировать не только уведомление, но также сигнализировать предназначенному устройству назначения (например, второму устройству 106) для продолжения задач(и).
[0042] Как только отправлено, устройства назначения (например, второе устройство 106) принимают уведомление, которое показано на UI 304 второго устройства 106. Этот UI 304 может просто показывать задачи, первоначально выбранные на отправляющем устройстве (первом устройстве 104), и предоставить пользователю возможность утвердить и начать процесс возобновления задачи на втором устройстве 106, с использованием другого интерпретируемого или распознанного жеста, такого как касание. Как только состояние второго устройства 106 достигает состояния контекста первого устройства 104, может быть представлено другое уведомление для информирования пользователя, что возобновление может теперь начаться на втором устройстве 106. Следует понимать, что в соответствии с NUI-технологиями, пользователь и UI могут использовать любую отдельную или комбинацию технологий для взаимодействия с UI, чтобы вызвать инициализацию выбора и возобновления задачи.
[0043] Фиг. 4 иллюстрирует облачную службу 400 для продолжения задач на устройствах. Служба 400 может предоставить возможности узнать информацию 402 пользовательского устройства, узнать, какие пользовательские устройства доступны по сети в текущий момент или к которым можно осуществить доступ посредством некоторых других средств связи посредством статуса 404 пользовательского устройства, сохранить состояние контекста 406, и предоставить уведомление 408 устройства, например.
[0044] Состояние контекста может быть выгружено в облачную службу 400 из первого устройства 104 на основе предположения, что пользователь пожелает и в конечном счете осуществит выбор возобновления обработки задачи на втором устройстве 106. Например, на основе времени дня или ухода от первого устройства (например, как идентифицируется с использованием информации геолокации (географического размещения), такой как географические координаты широты/долготы), первое устройство 104 может быть выполнено с возможностью автоматического захвата состояния контекста и выгрузки состояния контекста в облачную службу 400 для возможного использования пользователем. Как только пользователь осуществляет доступ к второму устройству 106, например, пользователю будет предоставлен вариант для продолжения возобновления задачи в это время и на этом устройстве. Если отклонено, состояние контекста может быть незамедлительно удалено из облачной службы 400, или сохранено на период времени для воссоздания в дальнейшем. Таким образом, запись прошлых периодов пользовательской активности может быть сохранена.
[0045] Информация 402 пользовательского устройства может записать минимальную информацию устройства, такую как аппаратные/программные возможности, информация для логического входа, идентификационная информация (владения) пользователя и т.д. Статус 404 пользовательского устройства отслеживает доступность пользовательских устройств в любой момент времени, чтобы только отправить уведомления на доступные пользовательские устройства, или чтобы отправить, только когда пользовательские устройства станут доступными.
[0046] Может быть случай, когда служба 400 также способствует отправке уведомления на конкретные пользовательские устройства и не все доступные пользовательские устройства. Это определение может быть на основе возможностей устройства назначения, например. При использовании этой модели, пользовательский интерфейс представляет только набор предлагаемых устройств, на которых пользователь должен продолжить задачу(и), или в качестве альтернативы, может представлять все доступные устройства, но автоматически указывает, какие устройства желательно использовать для продолжения задачи.
[0047] В еще одной реализации, на основе задачи, которая должна быть продолжена, служба 400 предлагает конкретные устройства, чтобы справиться с конкретными задачами. Например, если задача предусматривает тяжелые алгоритмы моделирования, возобновление задачи может быть желательным на настольном устройстве, а не интеллектуальном телефоне из-за известных эксплуатационных возможностей настольного устройства.
[0048] Может быть случай, когда пользовательский интерфейс также предоставляет распечатку сохраненного состояния контекста в службе 400, к которому может быть осуществлен доступ и который может быть возобновлен с любого устройства и как потребуется. Например, вместо модели проталкивания, где первое устройство 104 проталкивает намерение продолжения задачи на другие устройства, может быть использована модель вытягивания, где пользователь может выбрать из любого числа элементов состояния контекста, хранящихся в службе 400, для возобновления на пользовательском устройстве.
[0049] В еще одной реализации, состояние контекста захватывает состояние конкретного приложения на первом устройстве 104 и продолжает состояние контекста того же приложения на втором устройстве 106.
[0050] Содержащееся в настоящем документе является набором граф-схем, представляющим примерные методики для выполнения новаторских аспектов раскрытой архитектуры. Тогда как для целей простоты разъяснения, одна или более показанных в настоящем документе методик, например, в виде граф-схем или блок-схем, показаны и описаны как последовательность действий, это сделано для понимания и оценки того, что методы не ограничены порядком действий, тогда как некоторые действия могут, в соответствии с этим, происходят в разном порядке и/или одновременно с другими действиями из тех, которые показаны и описаны в настоящем документе. Например, специалисты в данной области техники поймут и оценят, что метод может быть альтернативно представлен как последовательности взаимосвязанных состояний или событий, так как показано на диаграмме состояний. Более того, не все проиллюстрированные в методе действия требуются для новаторской реализации.
[0051] Фиг. 5 иллюстрирует способ в соответствии с раскрытой архитектурой. На этапе 500, задачу первого устройства выбирают для продолжения на втором устройстве. На этапе 502, захватывают состояние контекста первого устройства, относящееся к задаче. На этапе 504, уведомление отправляют на второе устройство, которое обеспечивает возможность продолжения задачи на втором устройстве. На этапе 506, принимают жест на втором устройстве, который взаимодействует с уведомлением для утверждения продолжения задачи на втором устройстве. Жест может также быть использован на первом устройстве для инициализации процесса продолжения задачи. На этапе 508, состояние контекста первого устройства отправляют на второе устройство. На этапе 510, состояние второго устройства синхронизируют с состоянием контекста первого устройства. На этапе 512, задачу возобновляют на втором устройстве согласно состоянию контекста.
[0052] Способ может дополнительно содержать захват контекста контрольной точки, как состояния контекста или части состояния контекста первого устройства. Способ может дополнительно содержать отправку состояния контекста из первого устройства на второе устройство посредством соединения беспроводной связи ближнего радиуса действия (например, Bluetooth). Способ может дополнительно содержать отправку состояния контекста и уведомления на второе устройство посредством сетевой службы (например, облачной службы). Способ может дополнительно содержать распознавание жестов, таких как тактильный контакт с сенсорным дисплеем второго устройства. Способ может дополнительно содержать обеспечение возможности автоматического и/или ручного выбора задачи на первом устройстве.
[0053] Способ может дополнительно содержать отправку уведомления на второе устройство и другие устройства пользователя, причем второе устройство и другие устройства, ассоциированные с первым устройством посредством идентификатора пользователя для логического входа. Способ может дополнительно содержать автоматический вход клиентского приложения каждого из первого устройства, второго устройства и других устройств в сетевую службу для отправки уведомления и состояния контекста. Способ может дополнительно содержать запуск одного или более приложений на втором устройстве, которые задают состояние контекста первого устройства, и возобновляют задачу.
[0054] Фиг. 6 иллюстрирует альтернативный способ в соответствии с раскрытой архитектурой. На этапе 600, частично завершенную задачу первого устройства выбирают для возобновления на одном из многочисленных других устройств. На этапе 602, захватывают состояние приложения первого устройства, относящееся к задаче. На этапе 604, отправляют уведомление на многочисленные другие устройства. На этапе 606, принимают жест на одном из многочисленных устройств, который взаимодействует с уведомлением для инициализации возобновления задачи на втором устройстве. На этапе 608, состояние приложения первого устройства отправляют на одно из многочисленных других устройств. На этапе 610, состояние приложения одного из многочисленных других устройств синхронизируют с состоянием приложения первого устройства. На этапе 612, частично завершенную задачу возобновляют на одном из многочисленных других устройств на основе состояния приложения, принятого из первого устройства.
[0055] Способ может дополнительно содержать отправку состояния приложения одного или более приложений первого устройства на одно из многочисленных устройств посредством сетевой службы. Способ может дополнительно содержать отправку уведомления и состояния приложения из первого устройства на одно из многочисленных устройств посредством соединения беспроводной связи ближнего радиуса действия или облачной службы. Способ может дополнительно содержать автоматический запуск совместимого приложения одного из многочисленных устройств и возобновление частично завершенной задачи с использованием приложения.
[0056] Используемые в этой заявке термины, такие как "компонент" и "система" предназначены указывать на компьютерную принадлежность аппаратных средств, комбинации программного обеспечения и материальных аппаратных средств, программного обеспечения или исполняемого программного обеспечения. Например, компонентом могут быть, но не ограничены этим, материальные компоненты, такие как процессор, чип памяти, устройства хранения большого объема (например, накопители на оптических дисках, твердотельные накопители, и/или накопители на магнитных носителях информации), и компьютеры, и программные компоненты, такие как процесс, выполняемый на процессоре, объект, исполняемая программа, структура данных (хранящаяся на энергозависимом или энергонезависимом носителе информации), модуль, поток исполнения и/или программа.
[0057] Посредством иллюстрации, компонентом могут быть как приложение, выполняемое на сервере, так и сервер. Один или более компонентов могут находиться внутри процесса и/или потока исполнения и компонент может быть локализован на компьютере и/или распределен между двумя или более компьютерами. Слово "примерный" может использоваться в настоящем документе в значении, выполняющем функцию примера, отдельного случая или иллюстрации. Любой аспект или проект, описанный в настоящем документе как "примерный", необязательно должен трактоваться как предпочтительный или выгодный относительно других аспектов или проектов.
[0058] Обращаясь теперь к Фиг. 7, проиллюстрирована блок-схема вычислительной системы 700, которая исполняет продолжение задачи в соответствии с раскрытой архитектурой. Однако, понятно, что некоторые или все аспекты раскрытых способов и/или систем могут быть реализованы как система на кристалле, где аналоговые, цифровые, смешанные сигналы и другие функции сформированы на однокристальной подложке.
[0059] Для того, чтобы предоставить дополнительный контекст для различных его аспектов, Фиг. 7 и нижеследующее описание предназначены для предоставления краткого, общего описания подходящей вычислительной системы 700, в которой могут быть реализованы различные аспекты. Тогда как вышеописанное находится в общем контексте исполняемых компьютером инструкций, которые могут выполняться на одном или более компьютерах, специалисты в данной области техники поймут, что новаторский вариант осуществления также может быть реализован в комбинации с другими программными модулями и/или как комбинация аппаратных средств и программного обеспечения.
[0060] Вычислительная система 700 для реализации различных аспектов включает в себя компьютер 702, имеющий блок(и) 704 обработки(s) (также называемый микропроцессором(ами) и процессором(ами)), компьютерно-читаемый носитель информации, такой как системная память 706 (компьютерно-читаемый носитель/носители информации также включают в себя магнитные диски, оптические диски, твердотельные накопители, системы внешней памяти, и накопители на flash-памяти), и системную шину 708. Блоком(ами) 704 обработки могут являться любые коммерчески доступные процессоры, такие как одиночный процессор, мультипроцессор, одноядерные блоки и многоядерные блоки. Более того, специалисты в данной области техники поймут, что новаторские способы могут быть применены на практике с другими конфигурациями вычислительных систем, включающими в себя миникомпьютеры, мейнфреймы, равно как и персональные компьютеры (например, настольный, портативный, планшетный ПК и т.д.), карманные вычислительные устройства, основанную на микропроцессоре или программируемую потребительскую электронику и подобное, каждое из которых может оперативно соединяться с одним или более ассоциированными устройствами.
[0061] Компьютером 702 может быть один из нескольких компьютеров, используемых в центре обработки данных, и/или вычислительные ресурсы (аппаратные и/или программные) при поддержке облачных вычислительных служб для портативных и/или мобильных вычислительных систем, таких как сотовые телефоны и другие устройства с мобильными возможностями. Облачные вычислительные службы, включают в себя, но не ограничены этим, инфраструктуру как службу, платформу как службу, программное обеспечение как службу, хранилище как службу, настольный компьютер как службу, данные как службу, безопасность как службу, и API (интерфейсы прикладных программ) как службу, например.
[0062] Системная память 706 может включать в себя компьютерно-читаемый носитель информации (физическое хранилище), такой как энергозависимая (VOL) память 710 (например, оперативная память (RAM)) и энергонезависимая память (NON-VOL) 712 (например, ROM, EPROM, EEPROM, и т.д.). Базовая система ввода/вывода (BIOS) может храниться в энергонезависимой памяти 712 и содержит базовые стандартные программы, которые способствуют передаче данных и сигналов между компонентами внутри компьютера 702, как например, во время запуска. Энергозависимая память 710 может также содержать высокоскоростную RAM, такую как статическая RAM, для кэширования данных.
[0063] Системная шина 708 предоставляет блоку(ам) 704 обработки интерфейс для компонентов системы, включающих в себя, но не ограниченных этим, системную память 706. Системная шина 708 может быть любой из нескольких типов конструкций шин, которая может дополнительно взаимно соединяться с шиной памяти (с или без контроллера памяти), и периферийной шиной (например, PCI, PCIe, AGP, LPC и т.д.), с использованием любой из многообразия коммерчески доступных архитектур шин.
[0064] Компьютер 702 дополнительно включает в себя машиночитаемую подсистему(ы) 714 хранения данных и интерфейс(ы) 716 хранения данных для взаимодействия подсистем(ы) 714 хранения данных с системной шиной 708 и другими желаемыми компонентами компьютера. Подсистема(ы) 714 хранения данных (физические носители информации) может содержать один или более из накопителя на жестком диске (HDD), накопителя на гибких магнитных дисках (FDD), твердотельного накопителя и/или накопителя на оптических дисках (например, дисковода CD-ROM, дисковода DVD), например. Интерфейс(ы) 716 хранения данных может содержать такие технологии интерфейсов как EIDE, ATA, SATA и IEEE 1394, например.
[0065] Одна или более программ или данных могут храниться в подсистеме 706 памяти, подсистеме 718 машино-читаемой и съемной памяти (например, технология форм-фактора flash-накопителя) и/или подсистеме(ах) 714 хранения данных (например, оптической, магнитной, твердотельной), содержащей операционную систему 720, одну или более прикладных программ 722, другие программные модули 724 и программные данные 726.
[0066] Операционная система 720, одна или более прикладных программ 722, другие программные модули 724 и/или программные данные 726 могут включать в себя объекты и компоненты системы 100 по Фиг. 1, объекты и компоненты системы 200 по Фиг. 2, объекты и последовательность операций примерных пользовательских интерфейсов 300 по Фиг. 3, объекты и компоненты облачной службы 400 по Фиг. 4, и способы, представленные схемами последовательностей операций по Фигурам 5 и 6, например.
[0067] В общем, программы содержат стандартные программы, способы, структуры данных, другие программные компоненты и так далее, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Вся или части операционной системы 720, приложения 722, модули 724 и/или данные 726 могут также кэшироваться в память, такую как например, энергозависимая память 710. Следует понимать, что раскрытая архитектура может быть реализована с использованием различных коммерчески доступных операционных систем или комбинаций операционных систем (например, как виртуальные машины).
[0068] Подсистема(ы) 714 хранения данных и подсистемы (706 и 718) памяти служат в качестве машиночитаемых носителей данных для энергозависимого и энергонезависимого хранилища данных, структур данных, исполняемых компьютером инструкций и т.д. Такие инструкции, при исполнении компьютером или другой машиной, могут предписывать компьютеру или другой машине выполнить одно или более действий способа. Инструкции для выполнения действий могут храниться на одном носителе, или могут храниться на многочисленных носителях, так что инструкции появляются коллективно на одном или более компьютерно-читаемом носителе/носителях информации, независимо от того, находятся ли все инструкции на одном носителе.
[0069] Компьютерно-читаемые носители (носитель) информации исключают (исключает) распространяющиеся сигналы сами по себе, к ним может быть осуществлен доступ посредством компьютера 702, и включают в себя энергозависимые и энергонезависимые внутренние и/или внешние носители, которые являются съемными и/или несъемными. Для компьютера 702, различные типы накопителей предоставляют хранение данных в любом подходящем цифровом формате. Специалистам в данной области техники должно быть понятно, что могут использоваться разные типы машино-читаемого носителя данных, такие как zip-накопители, твердотельные накопители, магнитная пленка, карты флэш-памяти, картриджи и подобные, для хранения исполняемых компьютером инструкций для выполнения новаторских способов (действий) раскрытой архитектуры.
[0070] Пользователь может взаимодействовать с компьютером 702, программами и данными с использованием внешних устройств 728 пользовательского ввода, таких как клавиатура и мышь, также как посредством голосовых команд, которым способствует распознавание речи. Другие внешние устройства 728 пользовательского ввода могут содержать микрофон, ИК (инфракрасный) пульт управления, джойстик, игровой контроллер, систему распознавания на основе камер, перо, сенсорный экран, системы жестов (например, движение глаз, движение головы и т.д.) и/или подобное. Пользователь может взаимодействовать с компьютером 702, программами и данными, используя встроенные устройства 730 пользовательского ввода, такие как сенсорная панель, микрофон, клавиатура и т.д., где компьютер 702 является портативным компьютером, например.
[0071] Эти и другие устройства ввода соединены с блоком(ами) 704 обработки посредством интерфейса(ов) 732 устройства ввода/вывода (I/O) через системную шину 708, но могут быть соединены посредством других интерфейсов, таких как параллельный порт, последовательный порт IEEE 1394, игровой порт, USB порт, ИК интерфейс, беспроводная технология ближнего радиуса действия (например, Bluetooth) и другие технологии персональной сети (PAN), и т.д. Интерфейс(ы) 732 устройства ввода/вывода также способствует использованию периферийных устройств 734 вывода, таких как принтеры, аудиоустройства, камеры и так далее, таких как звуковая карта и/или встроенная возможность обработки аудио.
[0072] Один или более графических интерфейсов 736 (также обычно указанные как графический процессор (GPU)) обеспечивают графические и видеосигналы между компьютером 702 и внешним(и) дисплеем(ями) 738 (например, LCD, плазмой) и/или встроенным дисплеем 740 (например, для портативного компьютера). Графический(е) интерфейс(ы) 736 может(гут) также производиться как часть системной платы компьютера.
[0073] Компьютер 702 может работать в сетевом окружении (например, на основе IP) с использованием логических соединений посредством подсистемы 742 проводной/беспроводной связи с одной или более сетями и/или другими компьютерами. Другие компьютеры могут содержать рабочие станции, серверы, роутеры, персональные компьютеры, развлекательные устройства на основе микропроцессоров, одноранговые устройства или другие общие сетевые узлы, и обычно включают в себя многие или все из описанных элементов, относящихся к компьютеру 702. Логические соединения могут содержать возможность установления проводной/беспроводной связи с локальной сетью (LAN), глобальной сетью (WAN), точкой доступа и т.д. Сетевые окружения LAN и WAN размещаются в офисах и компаниях и обеспечивают в масштабе предприятия компьютерные сети, такие как интранет, каждая из которых может соединяться с глобальной сетью связи, такой как Интернет.
[0074] При использовании в сетевом окружении, компьютер 702 соединяется с сетью посредством подсистемы 742 проводной/беспроводной связи (например, адаптера сетевого интерфейса, встроенной приемопередающей подсистемой и т.д.) для осуществления связи с проводными/беспроводными сетями, проводными/беспроводными принтерами, проводными/беспроводными устройствами 744 ввода и т.д. Компьютер 702 может содержать модем или другие средства для установления связи по сети. В сетевом окружении, программы и данные, относящиеся к компьютеру 702, могут храниться на удаленном запоминающем устройстве/устройстве хранения, которое связано с распределенной системой. Будет понятно, что показанные сетевые соединения являются примерными и могут использоваться другие средства установления канала связи между компьютерами.
[0075] Компьютер 702 функционирует с возможностью осуществления связи с проводными/беспроводными устройствами или объектами с использованием радиотехнологий, таких как семейство стандартов IEEE 802.xx, такими как беспроводные устройства, оперативно расположенные в беспроводной связи (например, беспроводные способы модуляции IEEE 802.11), например, с принтером, сканером, настольным компьютером и/или портативным компьютером, карманным персональным компьютером (PDA), спутником связи, любой частью оборудования или размещением, ассоциированным с обнаруживаемой беспроводным образом меткой (например, киоском, газетным киоском, туалетом), и телефоном. Это включает в себя по меньшей мере Wi-Fi™ (используемый для сертификации возможности взаимодействия беспроводных компьютерных сетевых устройств) для беспроводных технологий точек доступа, WiMax, и Bluetooth™. Таким образом, связь может быть заранее заданной структурой, как со стандартной сетью или просто специализированной связью между по меньшей мере двумя устройствами. Wi-Fi сети используют радиотехнологии, называемые IEEE 802.11x (a, b, g и т.д.), для обеспечения безопасности, надежности, возможности установления быстрой беспроводной связи. Wi-Fi сеть может быть использована для соединения компьютеров друг с другом, с Интернетом и с проводными сетями (которые используют относящуюся к IEEE 802.3 технологию и функции).
[0076] То, что было описано выше, содержит примеры раскрытой архитектуры. Конечно, невозможно описать каждую мыслимую комбинацию компонентов и/или методик, но средний специалист в данной области техники может понять, что возможны множество дополнительных комбинаций и перестановок. Соответственно, новаторская архитектура предназначена объять все такие изменения, модификации и вариации, которые укладываются в сущность и объем прилагаемой формулы изобретения. Кроме того, в той степени, в которой термин "включает в себя" используют в подробном описании или в формуле изобретения, предполагают, что охват этого термина схож с таковым термина "содержащий", так как "содержащий" интерпретируют при использовании в качестве переходного слова в формуле изобретения.