СИНХРОНИЗАЦИЯ ДАННЫХ АССОЦИИРОВАНИЯ УСТРОЙСТВ СРЕДИ ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВ
SYNCHRONIZING DEVICE ASSOCIATION DATA AMONG COMPUTING DEVICES

УРОВЕНЬ ТЕХНИКИ
[0001] С распространением вычислительных технологий увеличилось количество разных доступных для людей вычислительных устройств, которые используются людьми в течение дня. При использовании этих устройств люди многократно желают осуществлять доступ к одним и тем же периферийным устройствам, таким как принтеры, сканеры, головные телефоны и т.д. Возможность использования одних и тех же периферийных устройств с многочисленными вычислительными устройствами является полезной для пользователей, поскольку они могут использовать известные им периферийные устройства на разных вычислительных устройствах. Однако, использование одних и тех же периферийных устройств на многочисленных разных вычислительных устройствах не лишено своих проблем. Одна такая проблема состоит в том, что от пользователя требуется инсталляция таких периферийных устройств на каждом из многочисленных разных вычислительных устройств, что может быть процессом, отнимающим много времени, и может привести к плохому взаимодействию с пользователем.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0002] Это краткое изложение сущности изобретения приведено для ознакомления в упрощенной форме с подборкой идей изобретения, которые дополнительно описаны ниже в Подробном описании. Данное краткое изложение сущности изобретения не предназначена ни для идентификации ключевых признаков или существенных признаков заявленного изобретения, ни для использования для ограничения объема заявленного изобретения.
[0003] Согласно одному или нескольким аспектам, данные привязки устройств для периферийного устройства описывают, как подключиться к периферийному устройству. Принимают данные привязки устройств для каждого из одного или нескольких периферийных устройств, ассоциированных с пользовательской учетной записью. Выполняют определение в отношении того, какие из одного или нескольких периферийных устройств могут быть автоматически привязаны к вычислительному устройству, и те из одного или нескольких периферийных устройств, которые могут быть автоматически привязаны к вычислительному устройству, автоматически привязываются к вычислительному устройству.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0004] Одинаковые позиции использованы во всех чертежах для ссылки на одинаковые признаки.
[0005] Фиг. 1 показывает иллюстративную систему, реализующую синхронизацию данных привязки устройств среди вычислительных устройств, согласно одному или нескольким вариантам осуществления.
[0006] Фиг. 2 является блок-схемой, показывающей иллюстративное вычислительное устройство, реализующее синхронизацию данных привязки устройств среди вычислительных устройств, согласно одному или нескольким вариантам осуществления.
[0007] Фиг. 3 является последовательностью операций, показывающей иллюстративный процесс для синхронизации данных привязки устройств среди вычислительных устройств, согласно одному или нескольким вариантам осуществления.
[0008] Фиг. 4 является последовательностью операций, показывающей иллюстративный процесс для автоматической привязки периферийных устройств к вычислительному устройству, согласно одному или нескольким вариантам осуществления.
[0009] Фиг. 5 является блок-схемой, показывающей иллюстративную модель для реализации технологий, описанных здесь, согласно одному или нескольким вариантам осуществления.
[0010] Фиг. 6 показывает иллюстративную систему, которая включает в себя иллюстративное вычислительное устройство, которое является характерным для одной или нескольких систем и/или устройств, которые могут реализовать различные технологии, описанные здесь.
ПОДРОБНОЕ ОПИСАНИЕ
[0011] Здесь описана синхронизация данных привязки устройств среди вычислительных устройств. Данные привязки устройств для одного или нескольких периферийных устройств сохраняются и синхронизируются среди многочисленных разных вычислительных устройств, ассоциированных с пользовательской учетной записью локальной или удаленной службы. Данные привязки устройств для периферийного устройства являются данными, используемыми для подключения к периферийному устройству, такими как сетевой адрес периферийного устройства, информация обеспечения безопасности, используемая для установления связи с периферийным устройством, и т.д. Данные привязки устройств сохраняются вычислительными устройствами, с которых пользователь осуществляет доступ к его или ее пользовательской учетной записи, а также службой, ассоциированной с его или ее пользовательской учетной записью.
[0012] Когда новое периферийное устройство инсталлируется на вычислительном устройстве или, иначе говоря, привязывается к вычислительному устройству, данные привязки устройств для нового периферийного устройства добавляются в вычислительное устройство, а также в службу. Когда пользователь осуществляет логический вход в его или ее пользовательскую учетную запись с вычислительного устройства, данные привязки устройств для периферийных устройств, которые еще не хранятся на вычислительном устройстве, копируются из службы в вычислительное устройство, и те из периферийных устройств, которые могут быть автоматически инсталлированы на вычислительном устройстве или, иначе говоря, привязаны к нему, автоматически инсталлируются на вычислительном устройстве или, иначе говоря, привязываются к нему. Таким образом, когда данные привязки устройств для периферийного устройства добавляются в вычислительное устройство или службу, данные привязки устройств синхронизируются с другими вычислительными устройствами, с которых пользователь входит в его или ее учетную запись, причем данные привязки устройств копируются в эти другие вычислительные устройства, при этом периферийные устройства автоматически инсталлируются на такие другие вычислительные устройства или, иначе говоря, привязываются к ним.
[0013] Фиг. 1 показывает иллюстративную систему 100, реализующую синхронизацию данных привязки устройств среди вычислительных устройств, согласно одному или нескольким вариантам осуществления. Система 100 включает в себя вычислительное устройство 102 и многочисленные (n) вычислительные устройства 104(1), …, 104(n), которые могут устанавливать связь со службой 106. Вычислительные устройства 102, 104 могут устанавливать связь со службой 106 через любую из множества разных сетей, включая интернет, локальную сеть (LAN), телефонную сеть, интрасеть, другие общественные и/или фирменные сети, их комбинации и т.д. Вычислительные устройства 102, 104 могут, дополнительно или альтернативно, устанавливать связь со службой 106 через коммуникационные каналы, отличные от сети, такие как множество проводных и/или беспроводных соединений. Следует отметить, что система 100 может включать в себя любое количество вычислительных устройств одного или разных типов, устанавливающих связь со службой 106.
[0014] Каждое вычислительное устройство 102, 104 может принадлежать ко множеству разных типов устройств, и вычислительные устройства 102 и 104 могут принадлежать к одному или разным типам устройств. Например, каждое вычислительное устройство 102, 104 может быть настольным компьютером, серверным компьютером, компактным портативным компьютером или компьютером-нетбуком, планшетным компьютером или компьютером-блокнотом, мобильной станцией, развлекательным устройством, телевизионной приставкой, соединенной с возможностью связи с устройством отображения, телевизионным приемником или другим устройством отображения, сотовым или другим беспроводным телефоном, игровой консолью, автомобильным компьютером, носимым компьютером и т.д. Таким образом, каждое вычислительное устройство 102, 104 может варьироваться от устройства с полным набором ресурсов со значительными ресурсами памяти и процессора (например, персональные компьютеры, игровые консоли) до устройства с малым набором ресурсов с ограниченными ресурсами памяти и/или вычислительными ресурсами (например, традиционные телевизионные приставки, ручные игровые консоли).
[0015] Подобно описанию вычислительных устройств 102 и 104, служба 106 может быть реализована с использованием одного или нескольких из множества устройств разных типов, варьирующихся от устройств с полным набором ресурсов со значительными ресурсами памяти и процессора до устройства с малым набором ресурсов с ограниченными ресурсами памяти и/или вычислительными ресурсами. Служба 106 может быть удаленной от вычислительных устройств 102, 104 (например, с осуществлением доступа через интернет) или локальной для вычислительных устройств 102, 104 (например, с осуществлением доступа через LAN). Таким образом, служба 106 может быть размещена на одном или нескольких устройствах, локальных по отношению к вычислительным устройствам 102, 104 (например, локально, в том же самом здании или офисе), или размешена на одном или нескольких устройствах, удаленных от вычислительных устройств 102, 104 (например, удаленно, в другом здании, городе, или стране).
[0016] Пользователь вычислительного устройства 102 имеет пользовательскую учетную запись, ассоциированную со службой 106. Пользователь может входить в его или ее учетную запись с вычислительного устройства 102 любым из множества разных способов, например, посредством имени пользователя и пароля, цифрового сертификата и т.д. При логическом входе в его или ее учетную запись, вычислительное устройство 102 синхронизирует данные привязки устройств со службой 106, как описано более подробно ниже.
[0017] Пользователь вычислительного устройства 102 может подключиться к одному или нескольким периферийным устройствам 108, что также называется привязкой вычислительного устройства 102 к одному или несколькими периферийными устройствами 108. Привязка вычислительного устройства 102 к периферийному устройству 108 может включать в себя инсталляцию периферийного устройства 108 на вычислительном устройстве 102. Инсталляция периферийного устройства включает в себя инсталляцию ресурсов (например, драйверов), и установку подходящих характеристик для вычислительного устройства 102 и/или периферийного устройства 108 для установления коммуникационного соединения между вычислительным устройством 102 и периферийным устройством 108 (например, спаривания периферийного устройства 108 с вычислительным устройством 102). Таким образом, инсталляция периферийного устройства включает в себя обеспечение доступности периферийного устройства 108 для использования вычислительным устройством 102.
[0018] Привязка вычислительного устройства 102 к периферийному устройству 108 может также включать в себя добавление в вычислительное устройство 102 информации, указывающей на то, как осуществить доступ к периферийному устройству 108 (например, установить коммуникационное соединение между вычислительным устройством 102 и периферийным устройством 108), какие аппаратные функции имеет периферийное устройство, как использовать аппаратные функции или как осуществить доступ к ним, их комбинации и т.д. Таким образом, привязка вычислительного устройства 102 к периферийному устройству 108 может включать в себя обеспечение доступности периферийного устройства 108 для использования вычислительным устройством 102 без инсталляции периферийного устройства 108 на вычислительном устройстве 102.
[0019] Периферийные устройства 108 относятся к устройствам, которые можно подключить к вычислительному устройству, обеспечивая функциональность, не обеспечиваемую вычислительным устройством, улучшая функциональность, обеспечиваемую вычислительным устройством, заменяя функциональность, обеспечиваемую вычислительным устройством, и т.д. Например, периферийные устройства могут быть устройствами вывода данных (например, принтерами, громкоговорителями и т.д.), устройствами ввода данных (например, сканерами, микрофонами, клавиатурами и т.д.), устройствами хранения данных, другими вычислительными устройствами (например, смартфонами, серверами печати и т.д.) и т.д. Периферийные устройства могут быть локальными устройствами (например, устанавливающими связь с вычислительным устройством через проводное или беспроводное соединение), или удаленными устройствами (например, устанавливающими связь с вычислительным устройством через сеть). Периферийные устройства могут быть также другими вычислительными устройствами, такими как смартфон.
[0020] В одном или нескольких вариантах осуществления, периферийные устройства являются устройствами, реализованными в корпусах, отдельных от вычислительных устройств 102, 104. Периферийные устройства являются физически отдельными от вычислительных устройств 102, 104 и внешними по отношению к ним, но могут, однако, устанавливать связь с вычислительными устройствами 102, 104, и, необязательно, могут быть физически соединены с вычислительными устройствами 102, 104. Периферийные устройства являются аппаратными устройствами, и могут включать в себя программное обеспечение и/или аппаратно-программное обеспечение. Например, периферийное устройство (например, принтер совместного использования) может быть логическим элементом, включающим в себя как сервер печати (реализованный в программном обеспечении), так и физический принтер.
[0021] Данные привязки устройств являются различными данными, которые могут быть использованы в качестве части процесса привязки вычислительного устройства к периферийному устройству. Данные привязки устройств, таким образом, также относятся к соответствующему периферийному устройству. Данные привязки устройств для периферийного устройства являются данными, используемыми для подключения к периферийному устройству, такими как сетевой адрес или адрес управления доступом к среде передачи (MAC), сетевой адрес для принтера совместного использования на сервере печати, данные обеспечения безопасности или данные аутентификации, такие как сертификат или персональный идентификационный номер (PIN), и т.д. Данные привязки устройств могут также включать в себя дополнительные данные в отношении периферийного устройства и/или данные привязки устройств, такие как имя или идентификатор периферийного устройства, тип периферийного устройства, идентификатор драйвера, ассоциированного с периферийным устройством, данные о том, инсталлировано ли уже периферийное устройство на вычислительном устройстве 102, и т.д. Данные привязки устройств для периферийного устройства, таким образом, описывают, как подключиться к периферийному устройству. Данные привязки устройств хранятся вычислительным устройством 102, с тем чтобы вычислительное устройство 102 могло впоследствии осуществить доступ к периферийному устройству (например, после выключения электропитания и повторного включения) без повторной инсталляции периферийного устройства.
[0022] Периферийное устройство может также иметь соответствующие данные использования устройств (также называемые данными установок пользователя), которые описывают, как пользователь желает или предпочитает использовать периферийное устройство. Данные использования устройств для периферийного устройства могут задавать, например, конкретные установки или значения для периферийного устройства, которые предпочитает пользователь (например, конкретный уровень громкости для громкоговорителя, конкретную установку печати (например, двусторонний режим, экономичный режим для экономии чернил или тонера и т.д.) для принтера, конкретное разрешение сканирования для сканера и т.д.). Данные использования устройств могут быть включены в качестве части данных привязки устройств и, таким образом, синхронизированы в качестве части данных привязки устройств, как описано более подробно ниже. Альтернативно, данные использования устройств могут быть отдельными от данных привязки устройств, но могут быть синхронизированы аналогично данным привязки устройств (и, необязательно, вместе с ними).
[0023] Данные использования устройств могут быть синхронизированы для периферийных устройств, которые привязаны к вычислительному устройству, вследствие автоматической инсталляции, инсталляции в ручном режиме, или подключения к вычислительному устройству без инсталляции. Таким образом, когда периферийное устройство вновь привязывают к вычислительному устройству, данные использования устройств от других вычислительных устройств могут быть приняты и использованы на данном вычислительном устройстве, и на вычислительном устройстве для пользователя автоматически устанавливают его или ее предпочтительные установки для периферийного устройства. Подобным образом, изменения в данных использования устройств, сделанные на вычислительном устройстве, синхронизируют с другими вычислительными устройствами, аналогично данным привязки устройств.
[0024] Периферийное устройство 108 может быть привязано в ручном режиме к вычислительному устройству 102, например, посредством инсталляции периферийного устройства 108 на вычислительном устройстве 102 в ручном режиме, независимо от службы 106 (например, без получения данных привязки устройств от службы 106). Для привязки периферийного устройства 108 к вычислительному устройству в ручном режиме, периферийное устройство обнаруживают или идентифицируют с использованием любого из множества механизмов, таких как служба каталогов, обнаружение посредством многоадресной рассылки по сети, сетевые протоколы универсального варианта особенности оборудования «включи и работай» (UPnP), локальная связь с периферийным устройством (например, с использованием универсальной последовательной шины (USB) или беспроводного USB-протокола), Web-службы на устройствах, другие общественные и фирменные протоколы и т.д. Данные привязки устройств могут быть получены различными способами, на основе механизма, используемого для обнаружения или идентификации периферийного устройства, например, получения данных привязки устройств от службы, используемой для обнаружения или идентификации периферийного устройства, от самого периферийного устройства и т.д.
[0025] При входе в его или ее учетную запись, вычислительное устройство 102 синхронизирует данные привязки устройств со службой 106. Вычислительное устройство 102, синхронизирующее данные привязки устройств, относится к вычислительному устройству 102, получающему данные привязки устройств от службы 106, и обеспечивающему передачу данных привязки устройств от вычислительного устройства 102 в службу 106. Служба 106 может включать в себя модуль 112 синхронизации данных и хранилище 114 данных привязки устройств. Модуль 112 синхронизации данных управляет синхронизацией данных привязки устройств с вычислительными устройствами 102, 104, сохраняя принятые данные привязки устройств в хранилище 114 данных привязки устройств. Хранилище 114 данных привязки устройств службы 106, таким образом, включает в себя данные привязки устройств, которые обеспечиваются для службы 106 в качестве результата привязки периферийных устройств 108 к различным вычислительным устройствам 102, 104 и синхронизируются для всех вычислительных устройств 102, 104.
[0026] Альтернативно, служба 106 может просто включать в себя хранилище 114 данных привязки устройств, и вычислительные устройства 102, 104 могут считывать данные из хранилища 114 данных привязки устройств и определять любые изменения в данных привязки устройств, как описано более подробно ниже, без использования модуля 112 синхронизации данных. Служба 106 может поддерживать модели активной доставки (например, когда служба 106 обеспечивает данные от службы 106 для одного или нескольких вычислительных устройств 102) и/или модели активного опроса (например, когда вычислительное устройство 102 опрашивает службу 106 или, иначе говоря, осуществляет доступ к службе 106 для запроса или считывания данных от службы 106).
[0027] Когда пользователь осуществил логический вход в его или ее учетную запись с вычислительного устройства 102 или 104, данные привязки устройств для вновь привязанных периферийных устройств 108 на вычислительном устройстве отправляются в службу 106 и сохраняются в хранилище 114 данных привязки устройств. Подобным образом, указания на отмену привязки (например, удаление или деинсталляцию) периферийных устройств 108 могут быть отправлены в службу 106, и указанные данные привязки устройств могут быть удалены из хранилища 114 данных привязки устройств. Отмена привязки периферийного устройства 108 относится к деинсталляции этого устройства (например, стиранию или, иначе говоря, удалению драйверов или других ресурсов, очистке или сбросу характеристик для вычислительного устройства 102 и/или периферийного устройства 108 и т.д.), или, иначе говоря, очистке или сбросу значений, используемых вычислительным устройством 102 для установления связи с периферийным устройством 108. В одном или нескольких вариантах осуществления, для управления конфликтами между вычислительными устройствами, которые могут иметь разные данные, каждое вычислительное устройство 102, 104 и служба 106 сохраняют временные метки (например, даты и/или моменты времени) для тех моментов, когда эти данные были модифицированы в последний раз (посредством или с точки зрения вычислительного устройства или службы) для разрешения конфликтов и определения того, какие данные являются данными, подлежащими использованию (например, самая последняя временная метка для момента, когда данные модифицировались в последний раз).
[0028] Данные привязки устройств, принимаемые от одного вычислительного устройства 102, 104, хранят в хранилище 114 данных привязки устройств и обеспечивают для других вычислительных устройств 102, 104. Данные могут быть обеспечены для других вычислительных устройств 102, 104 или, иначе говоря, получены ими, в разные моменты времени и/или в качестве реакции на разные события, например, при логическом входе пользователя в его или ее учетную запись с другого вычислительного устройства 102, 104, с регулярными или нерегулярными интервалами времени (например, могут быть отправлены к другому вычислительному устройству 102, 104 службой 106, считаны другим вычислительным устройством 102, 104 и т.д.).
[0029] Таким образом, при привязке нового периферийного устройства 108 к вычислительному устройству 102, данные привязки устройств для нового периферийного устройства 108 отправляют в службу 106 и сохраняют в хранилище 114 данных привязки устройств. Впоследствии, при логическом входе пользователя в его или ее учетную запись с вычислительного устройства 104, данные привязки устройств для нового периферийного устройства 108 отправляются от службы 106 в вычислительное устройство 104, и новое периферийное устройство 108 автоматически привязывается к вычислительному устройству 104 (показано пунктирным соединением 120). Следует отметить, что новое периферийное устройство автоматически привязывается к вычислительному устройству 104, если новое периферийное устройство может быть автоматически привязано к вычислительному устройству 104. Могут возникнуть ситуации, при которых новое периферийное устройство не может быть автоматически привязано к вычислительному устройству 104, в этом случае новое периферийное устройство не привязывают автоматически к вычислительному устройству 104, как описано более подробно ниже. Подобным образом, если дополнительное периферийное устройство необходимо ассоциировать с вычислительным устройством 104, данные привязки устройств для этого дополнительного периферийного устройства обеспечивают для вычислительного устройства 102, и дополнительное периферийное устройство автоматически привязывают к вычислительному устройству 102 (предполагая, что дополнительное периферийное устройство может быть автоматически привязано к вычислительному устройству 102).
[0030] Фиг. 2 является блок-схемой, показывающей иллюстративное вычислительное устройство 200, реализующее синхронизацию данных привязки устройств среди вычислительных устройств, согласно одному или нескольким вариантам осуществления. Вычислительное устройство 200 может быть, например, вычислительным устройством 102 или 104 фиг. 1. Вычислительное устройство 200 включает в себя модуль 202 пользовательского ввода данных, модуль 204 вывода данных, коммуникационный модуль 206, модуль 208 синхронизации данных привязки устройств, и хранилище 210 данных привязки устройств.
[0031] Модуль 202 пользовательского ввода данных принимает пользовательские вводы данных от пользователя вычислительного устройства 200. Пользовательские вводы данных могут быть обеспечены множеством разных способов, такими как нажатие одной или нескольких клавиш клавишной панели или клавиатуры устройства 200, нажатия одной или нескольких клавиш контроллера (например, удаленного устройства управления, мыши, сенсорной площадки и т.д.) устройства 200, нажатия конкретного участка сенсорного планшета или сенсорного экрана устройства 200, выполнения конкретного жеста на сенсорном планшете или сенсорном экране устройства 200, и/или выполнения конкретного жеста на контроллере (например, на удаленном устройстве управления, мыши, сенсорной площадке и т.д.) устройства 200. Пользовательские вводы данных могут быть также обеспечены посредством другого ввода данных в устройство 200 с физической обратной связью, например, постукивания по любому участку устройства 200, действия, которое может быть распознано посредством устройства детектирования движения или другого компонента устройства 200 (например, встряхивание устройства 200, поворот устройства 200, сгибание или изгибание устройства 200 и т.д.) и т.д. Пользовательские вводы данных могут быть также обеспечены другими способами, например, посредством речи или других звуковых вводов данных для микрофона, посредством движений рук или других частей тела, наблюдаемых устройством захвата изображения и т.д.
[0032] Модуль 204 вывода данных генерирует, управляет, и/или выдает контент для отображения, воспроизведения, и/или другого представления. Этот контент может быть создан посредством модуля 204 вывода данных или получен от других модулей вычислительного устройства 200. Этот контент может быть, например, участком отображения или воспроизведения пользовательского интерфейса (UI), приглашениями ко вводу данных и т.д. Контент может быть отображен или, иначе говоря, воспроизведен посредством компонентов вычислительного устройства 200 (например, громкоговорителей, интерактивных устройств отображения и т.д.). Альтернативно, модуль 204 вывода данных может генерировать один или несколько сигналов, которые выводятся к другим устройствам или компонентам (например, громкоговорителям, устройствам отображения и т.д.), которые являются отдельными от вычислительного устройства 200.
[0033] Коммуникационный модуль 206 управляет связью со службой, такой как служба 106 фиг. 1, а также периферийными устройствами, такими как периферийные устройства 108 фиг. 1. Управление связью относится к отправке данных, получаемых от других модулей вычислительного устройства 200, к целевому устройству, и обеспечению данных, принимаемых от других модулей, для соответствующих модулей вычислительного устройства 200.
[0034] Хранилище 210 данных привязки устройств сохраняет копии данных привязки устройств для устройств, привязанных в ручном режиме к вычислительному устройству 200, а также данных привязки устройств для устройств, принимаемых от службы 106. Данные привязки устройств для устройств, принимаемые от службы 106, могут быть автоматически связаны с вычислительным устройством 200, или, альтернативно, могут быть приняты и сохранены в хранилище 210 данных привязки устройств без связывания с вычислительным устройством 200, как описано более подробно ниже.
[0035] Модуль 208 синхронизации данных привязки устройств управляет отправкой данных привязки устройств в службу 106. Когда новое периферийное устройство привязывается в ручном режиме к вычислительному устройством 200 при логическом входе пользователя в его или ее учетную запись в службе 106, данные привязки устройств для периферийного устройства сохраняются в хранилище 210 данных привязки устройств, и модуль 208 синхронизации данных привязки устройств отправляет копию данных привязки устройств в службу 106. Если новое периферийное устройство привязывается в ручном режиме к вычислительному устройству 200 при отсутствии логического входа пользователя в его или ее учетную запись в службе 106, то модуль 208 синхронизации данных привязки устройств может отправить копию данных привязки устройств для нового периферийного устройства в службу 106 впоследствии, при логическом входе пользователя в его или ее учетную запись с вычислительного устройства 200. Альтернативно, модуль 208 синхронизации данных привязки устройств может не отправлять копию данных привязки устройств для нового периферийного устройства в службу 106, если новое периферийное устройство привязывается в ручном режиме к вычислительному устройству 200 при отсутствии логического входа пользователя в его или ее учетную запись в службе 106.
[0036] Модуль 208 синхронизации данных привязки устройств также управляет приемом данных привязки устройств от службы 106. При логическом входе пользователя в его или ее учетную запись в службе 106 с вычислительного устройства 200, служба 106 отправляет копию данных привязки устройств для любых новых периферийных устройств, для которых служба 106 имеет копию, а вычислительное устройство 200 не имеет копию (например, для периферийных устройств, которые ассоциировались в ручном режиме с другим вычислительным устройством). Служба 106 может также отправить копию другой информации о данных привязки устройств, принимаемых от службы 106, такой как информация о временных метках, пользовательская информация и т.д. Модуль 208 синхронизации данных привязки устройств сохраняет копию данных привязки устройств, принимаемых от службы 106, в хранилище 210 данных привязки устройств. Модуль 208 синхронизации данных привязки устройств также сохраняет информацию о данных привязки устройств, принимаемых от службы 106, такую как информация о временных метках, пользовательская информация и т.д., для разрешения конфликтов и выполнения других функций. Модуль 208 синхронизации данных привязки устройств также автоматически привязывает вычислительное устройство 200 к периферийному устройству, соответствующему этим данным привязки устройств, предполагая, что периферийное устройство может быть автоматически привязано к вычислительному устройству 200, как описано более подробно ниже.
[0037] Подобным образом, другие изменения в данных привязки устройств могут быть отправлены в службу 106 и/или приняты от службы 106 аналогично отправке данных привязки устройств для нового периферийного устройства. Например, если данные привязки устройств для периферийного устройства изменяются (например, имя сервера печати изменяется, данные обеспечения безопасности или данные аутентификации изменяются и т.д.), то указание изменения может быть отправлено в службу 106, которая отправляет это указание к другим вычислительным устройствам, при логическом входе пользователя в его или ее учетную запись с этих других вычислительных устройств. Таким образом, изменение в данных привязки устройств автоматически синхронизируют с другими вычислительными устройствами. В качестве другого примера, если периферийное устройство удаляют (например, деинсталлируют или отменяют привязку) на одном вычислительном устройстве, то указание на удаление может быть отправлено в службу 106, которая отправляет это указание к другим вычислительным устройствам, при логическом входе пользователя в его или ее учетную запись с этих других вычислительных устройств. Таким образом, для периферийного устройства автоматически отменяют привязку (например, деинсталлируют) с этими другими вычислительными устройствами. Альтернативно, указания удаленных периферийных устройств могут не отправляться в службу 106, а, вместо этого, пользователь в ручном режиме отменяет привязку периферийных устройств на вычислительных устройствах по его или ее желанию. Следует отметить, что даже если для периферийного устройства отменена привязка к вычислительному устройству, то соответствующие данные привязки устройств могут остаться на вычислительном устройстве (или, альтернативно, могут быть удалены).
[0038] Определения того, какие изменения в данных привязки устройств (например, новые данные привязки устройств, указания удалений или другие изменения) сделаны, и, таким образом, какие изменения в данных привязки устройств должны быть синхронизированы с другими вычислительными устройствами, могут быть выполнены различными способами. Служба 106 и/или вычислительное устройство 200 могут обеспечить выполнение этого определения. Например, вычислительное устройство 200 может определить, какие изменения в данных привязки устройств были сделаны, и отправить указание на изменения в данных привязки устройств, которые были сделаны. В качестве другого примера, вычислительное устройство 200 может отправить запись, по существу, всех данных привязки устройств в хранилище 210 данных привязки устройств (например, отображение статистического состояния текущих данных привязки устройств для вычислительного устройства 200) в службу 106, и служба 106 может сравнить запись, по существу, всех данных привязки устройств, с соответствующей записью данных привязки устройств, сохраненной службой 106, для определения того, какие изменения в данных привязки устройств были сделаны.
[0039] В качестве еще одного примера, вычислительное устройство 200 может отправить запись, по существу, всех данных привязки устройств в хранилище 210 данных привязки устройств (например, отображение статистического состояния текущих данных привязки устройств для вычислительного устройства 200) в службу 106, и служба 106 может сохранить копию этой записи. Затем, запись может быть отправлена службой 106 к другим вычислительным устройствам, при логическом входе пользователя в его или ее учетную запись с этих других вычислительных устройств, и эти другие вычислительные устройства могут сравнить запись, по существу, всех данных привязки устройств, с их записями данных привязки устройств, для определения того, какие изменения в данных привязки устройств были сделаны. Эта запись может быть, альтернативно, отправлена службой 106 к другим вычислительным устройствам в другие моменты времени, или в качестве реакции на другие события, например, служба 106 может принудительно рассылать эту запись к другим вычислительным устройствам с регулярными или нерегулярными интервалами времени, другие вычислительные устройства могут запрашивать эту запись (например, опрашивая службу 106) с регулярными или нерегулярными интервалами времени и т.д.
[0040] Фиг. 3 является последовательностью операций, показывающей иллюстративный процесс 300 для синхронизации данных привязки устройств среди вычислительных устройств, согласно одному или нескольким вариантам осуществления. Процесс 300 может быть реализован в программном обеспечении, аппаратно-программном обеспечении, аппаратном обеспечении, или их комбинации. Процесс 300 показан с использованием трех столбцов: действия процесса 300, показанные в левом столбце, выполняют посредством одного вычислительного устройства (например, вычислительного устройства 102 или 104 фиг. 1, или вычислительного устройства 200 фиг. 2), действия процесса 300, показанные в правом столбце, выполняют посредством другого вычислительного устройства (например, вычислительного устройства 102 или 104 фиг. 1, или вычислительного устройства 200 фиг. 2), и действия процесса 300, показанные в среднем столбце, выполняют посредством службы (например, службы 106 фиг. 1). Процесс 300 показан в виде набора действий и не ограничен порядком, показанным для выполнения операций различных действий. Процесс 300 является иллюстративным процессом для синхронизации данных привязки устройств среди вычислительных устройств; дополнительные описания синхронизации данных привязки устройств среди вычислительных устройств включены в данный документ со ссылкой на разные фигуры.
[0041] В процессе 300, данные привязки устройств и/или изменения в данных привязки устройств отправляют в службу (этап 302), которая принимает данные привязки устройств и/или изменения в данных привязки устройств (этап 304) и сохраняет копию данных привязки устройств и/или изменений в данных привязки устройств (этап 306). Служба сохраняет копию данных привязки устройств, ассоциированную с пользовательской учетной записью, которая является пользовательской учетной записью, в которую пользователь вошел при отправке данных привязки устройств в службе на этапе 302. Для изменений в данных привязки устройств, служба может заменить предшествующие данные привязки устройств (изменяемые данные привязки устройств) на вновь принятые данные привязки устройств.
[0042] Данные привязки устройств и/или изменения в данных привязки устройств отправляют посредством службы к вычислительному устройству (этап 308). Данные привязки устройств и/или изменения в данных привязки устройств могут быть отправлены к вычислительному устройству и приняты (этап 310) вычислительным устройством, которое является вычислительным устройством, отличным от вычислительного устройства, которое отправило данные привязки устройств и/или изменения в данных привязки устройств на этапе 302. Данные привязки устройств и/или изменения в данных привязки устройств могут быть отправлены на этапе 308 в качестве реакции на запрос от вычислительного устройства на данные привязки устройств и/или изменения в данных привязки устройств, или, альтернативно, служба может принудительно рассылать или, иначе говоря, обеспечивать данные привязки устройств и/или изменения в данных привязки устройств для вычислительного устройства на этапе 308, независимо от какого-либо запроса на данные привязки устройств и/или изменения в данных привязки устройств, принимаемого службой. Вычислительное устройство сохраняет копию данных привязки устройств и/или изменений в данных привязки устройств (этап 312). Вычислительное устройство также автоматически привязывается к вычислительному устройству, периферийные устройства которого идентифицированы данными привязки устройств, которое может быть автоматически привязано к этому вычислительному устройству, и/или обновляет данные привязки устройств согласно изменениям в данных привязки устройств (этап 314).
[0043] Дополнительно или альтернативно, запрос на прием данных привязки устройств и/или изменений в данных привязки устройств может быть отправлен (этап 316) в службу посредством того же самого вычислительного устройства, которое ранее отправило данные привязки устройств и/или изменения в данных привязки устройств на этапе 302. В качестве реакции на запрос, отправленный на этапе 316, служба отправляет данные привязки устройств и/или изменения в данных привязки устройств, ассоциированные с пользовательской учетной записью, к вычислительному устройству (этап 308). Вычислительное устройство принимает данные привязки устройств и/или изменения в данных привязки устройств (этап 318), и сохраняет копию данных привязки устройств и/или изменений в данных привязки устройств (этап 320). Вычислительное устройство также автоматически привязывается к вычислительному устройству, периферийные устройства которого идентифицированы данными привязки устройств, которое может быть автоматически привязано к этому вычислительному устройству, и/или обновляет данные привязки устройств согласно изменениям в данных привязки устройств (этап 322). Альтернативно, вместо запроса, отправляемого на этапе 316, служба может принудительно рассылать или, иначе говоря, обеспечивать данные привязки устройств и/или изменения в данных привязки устройств, ассоциированные с пользовательской учетной записью, для вычислительного устройства на этапе 318, независимо от какого-либо запроса на данные привязки устройств и/или изменения в данных привязки устройств, принимаемого службой.
[0044] Таким образом, данные привязки устройств и/или изменения в данных привязки устройств могут быть синхронизированы с другими вычислительными устройствами, и периферийные устройства могут быть автоматически привязаны к этим другим вычислительным устройствам. Дополнительно или альтернативно, данные привязки устройств могут быть возвращены из службы к вычислительному устройству, которое отправило данные привязки устройств в службу. Таким образом, вычислительное устройство может создать резервную копию его информации о данных привязки устройств для службы, и, впоследствии, принять данные привязки устройств и обеспечить автоматическую повторную привязку периферийных устройств к вычислительному устройству (например, если вычислительное устройство имеет новый накопитель на жестких дисках, при повторной инсталляции операционной системы на вычислительном устройстве и т.д.).
[0045] Следует отметить, что данные привязки устройств связываются с пользовательской учетной записью в службе, и, таким образом, отправку и прием данных привязки устройств выполняют при логическом входе пользователя в его или ее пользовательскую учетную запись. Отправка и прием для разных вычислительных устройств в процессе 300 могут быть, таким образом, выполнены в разные моменты времени. Например, данные привязки устройств могут быть отправлены в службу на этапе 302, при логическом входе пользователя в его или ее пользовательскую учетную запись с одного вычислительного устройства, и, затем, впоследствии, отправлены от службы к другому вычислительному устройству на этапе 308, при более позднем логическом входе пользователя в его или ее пользовательскую учетную запись с этого другого вычислительного устройства. Следует также отметить, что одновременные процессы 300 могут быть выполнены из разных вычислительных устройств. Например, одно вычислительное устройство может отправлять данные привязки устройств в службу одновременно с приемом другим вычислительным устройством данных привязки устройств от службы, одно вычислительное устройство может отправлять данные привязки устройств в службу одновременно с отправкой другим вычислительным устройством данных привязки устройств в службу и т.д.
[0046] В иллюстративном процессе 300, данные привязки устройств показаны в виде данных, принимаемых службой от вычислительного устройства. Альтернативно, данные привязки устройств могут быть приняты из других источников. Например, в одном или нескольких вариантах осуществления, периферийное устройство может само обеспечить данные привязки устройств для периферийного устройства для службы. Например, периферийное устройство может быть смартфоном, который способен отправлять свои собственные данные привязки устройств в службу. Таким образом, периферийное устройство способно обеспечить свои данные привязки устройств для службы, которая синхронизирует данные привязки устройств с вычислительными устройствами, с которых пользователь входит в его или ее учетную запись, и данное периферийное устройство автоматически привязывается к этим вычислительным устройствам, без необходимости для пользователя когда-либо привязывать это периферийное устройство в ручном режиме к вычислительному устройству. Подобным образом, периферийное устройство (такое как периферийное устройство смартфона) может также принимать от службы данные привязки устройств, которые могут содержать данные установок пользователя о том, как конкретный пользователь желает или предпочитает использовать периферийное устройство, и периферийное устройство может использовать эти данные установок (например, посредством установки соответствующих значений конфигурации или других аппаратных установок согласно данным установок пользователя).
[0047] Фиг. 4 является последовательностью операций, показывающей иллюстративный процесс 400 для автоматической привязки периферийных устройств к вычислительному устройству, согласно одному или нескольким вариантам осуществления. Процесс 400 выполняют посредством вычислительного устройства, такого как вычислительное устройство 102 или 104 фиг. 1, или вычислительное устройство 200 фиг. 2, и он может быть реализован в программном обеспечении, аппаратно-программном обеспечении, аппаратном обеспечении, или их комбинации. Процесс 400 показан в виде набора действий и не ограничен порядком, показанным для выполнения операций различных действий. Процесс 400 является иллюстративным процессом для автоматической привязки периферийных устройств к вычислительному устройству; дополнительные описания автоматической привязки периферийных устройств к вычислительному устройству включены в данный документ со ссылкой на разные фигуры.
[0048] В процессе 400, в пользовательскую учетную запись входят (этап 402) с вычислительного устройства, реализующего процесс 400. Принимают (этап 404) данные привязки устройств для каждого из одного или нескольких периферийных устройств, ассоциированных с пользовательской учетной записью. Принимаемые данные привязки устройств могут иметь разные формы, например, могут быть, по существу, всеми принимаемыми данными привязки устройств, данными привязки устройств для новых периферийных устройств, инсталлированных другими вычислительными устройствами, и т.д. Данные привязки устройств могут быть приняты в разные моменты времени, например, вскоре после логического входа в пользовательскую учетную запись, через некоторое количество времени после входа в пользовательскую учетную запись (например, после истечения порогового количества времени, после приема от службы порогового количества других данных или данных более высокого приоритета и т.д.), на основе других событий (например, изменения в данных привязки устройств, хранящихся в службе) и т.д.
[0049] Копию принятых данных привязки устройств сохраняют на вычислительном устройстве (этап 406). Дополнительно, определяют (этап 408), какие из одного или нескольких периферийных устройств, соответствующих принятым данным привязки устройств, еще не привязаны к вычислительному устройству, но могут быть привязаны к вычислительному устройству. Одно или несколько периферийных устройств, определенных на этапе 408 в качестве способных к привязке к вычислительному устройству, но в настоящий момент не привязанные к вычислительному устройству, автоматически привязываются к вычислительному устройству (этап 410). При автоматической привязке периферийных устройств к вычислительному устройству, к периферийным устройствам может быть впоследствии осуществлен доступ посредством вычислительного устройства, как если бы они были привязаны в ручном режиме к вычислительному устройству (например, инсталлированы в ручном режиме на вычислительном устройстве), хотя пользователь не должен в ручном режиме привязывать периферийные устройства к вычислительному устройству (например, не должен в ручном режиме инсталлировать периферийные устройства).
[0050] Определение того, какие периферийные устройства уже привязаны к вычислительному устройству, может быть выполнено множеством способов, например, при сравнении идентификатора периферийного устройства, включенного в данные привязки устройств, с идентификаторами периферийных устройств, уже привязанных к вычислительному устройству, при предположении, что все данные привязки устройств, принятые от сервера, являются данными для периферийных устройств, еще не привязанных к вычислительному устройству (и, таким образом, никакие из периферийных устройств, соответствующих принятым данным привязки устройств, еще не привязаны к вычислительному устройству) и т.д.
[0051] Определение того, какие периферийные устройства могут быть автоматически привязаны к вычислительному устройству, может быть выполнено разными способами. В одном или нескольких вариантах осуществления, различные правила (или, иначе, критерии) применяют для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству. Такие правила могут находиться в различных местоположениях, например, на вычислительном устройстве, могут храниться в виде части данных привязки устройств, которые вычислительное устройство принимает от службы, и т.д. Периферийное устройство может быть, таким образом, автоматически привязано к вычислительному устройству, если одно или несколько правил не указывают на то, что периферийное устройство не подлежит автоматической привязке к данному устройству.
[0052] Следует также отметить, что если периферийное устройство не подлежит автоматической привязке к вычислительному устройству, то данные привязки устройств для периферийного устройства могут все же быть использованы для обеспечения обнаружения периферийного устройства и/или привязки периферийного устройства при привязке в ручном режиме этого периферийного устройства к вычислительному устройству. Например, периферийное устройство может иметь код защиты или другую информацию, которая хранится в данных привязки устройств, и пользователь не должен вводить или, иначе говоря, обеспечивать эту информацию снова, если он или она желает подключить это периферийное устройство посредством его инсталляции в ручном режиме. В качестве другого примера, существование периферийного устройства может быть отображено на экране выбора периферийного устройства или другом экране конфигурации, например, в разных видах (например, с использованием другого цвета, с тенью или более светлым и т.д.), для указания на то, что периферийное устройство существует, но не привязано к вычислительному устройству.
[0053] Правила для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству, могут включать в себя правило доступности драйвера периферийного устройства. Драйвер периферийного устройства относится к программному обеспечению (и/или аппаратно-программному обеспечению) и данным, которые используются вычислительным устройством для установления связи с периферийным устройством. В одном или нескольких вариантах осуществления, вычислительное устройство, принимающее данные привязки устройств, соответствующие периферийному устройству, может быть неспособным инсталлировать драйверы периферийных устройств, или может быть неспособным инсталлировать драйвер для этого периферийного устройства. В таких вариантах осуществления, выполняют определение, что периферийное устройство не может быть привязано к вычислительному устройству.
[0054] Дополнительно, некоторые драйверы периферийных устройств загружают из источника (например, другого устройства или службы), например, через сеть, с магнитного или оптического диска, из устройства флэш-памяти или другого твердотельного накопителя, из другого местоположения на самом вычислительном устройстве и т.д. Для этих драйверов периферийных устройств может быть цифровым способом указано, что они проверены, что они могут быть получены из проверенных источников, или могут быть проверены иным образом. В одном или нескольких вариантах осуществления, выполняют определение, что драйвер периферийного устройства не может быть инсталлирован на вычислительное устройство, если драйвер периферийного устройства не проверен (например, цифровым способом не указано достоверным для вычислительного устройства источником, что драйвер получен из проверенного источника, и т.д.). Однако, пользователю может быть предложено разрешить инсталляцию периферийного устройства с использованием полученного драйвера периферийного устройства. Для разрешения инсталляции периферийного устройства могут быть приняты различные пользовательские вводы данных, такие как выбор варианта «да» или «инсталлировать». Если пользовательский ввод данных указывает на то, что инсталляция периферийного устройства разрешена, то тогда периферийное устройство привязывается к вычислительному устройству, как при автоматической привязке к вычислительному устройству (пользователь не должен выполнять дополнительные действия для привязки периферийного устройства к вычислительному устройству, в отличие от привязки периферийного устройства к вычислительному устройству в ручном режиме).
[0055] Дополнительно, некоторые драйверы периферийных устройств разработаны с использованием разных моделей (например, форматов или протоколов, используемых драйверами), которые могут быть идентифицированы по номеру версии. Периферийное устройство может иметь драйверы, использующие разные модели из таких моделей. В одном или нескольких вариантах осуществления, выполняют определение, что драйвер периферийного устройства не может быть инсталлирован на вычислительное устройство, если драйвер периферийного устройства не является конкретной моделью, не является по меньшей мере конкретной версией модели драйвера, и т.д. Однако, пользователю может быть, необязательно, предложено разрешить инсталляцию периферийного устройства с использованием полученного драйвера периферийного устройства, несмотря на то, что полученный драйвер не является конкретной моделью, по меньшей мере конкретной версией модели драйвера, и т.д. Для разрешения инсталляции периферийного устройства могут быть приняты различные пользовательские вводы данных, такие как выбор варианта «да» или «инсталлировать». Если пользовательский ввод данных указывает на то, что инсталляция периферийного устройства разрешена, то тогда периферийное устройство привязывают к вычислительному устройству, как при автоматической привязке к вычислительному устройству (пользователь не должен выполнять дополнительные действия для привязки периферийного устройства к вычислительному устройству, в отличие от привязки периферийного устройства к вычислительному устройству в ручном режиме).
[0056] Правила для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству, могут включать в себя заданное аппаратное правило. Некоторые периферийные устройства могут быть привязаны к вычислительному устройству способом, конкретным для отдельного вычислительного устройства, и данные привязки устройств включают в себя этот конкретный способ. Например, периферийное устройство (например, Bluetooth-устройство) может быть инсталлировано на вычислительное устройство и может иметь данные привязки устройств, которые включают в себя MAC-адрес вычислительного устройства, на котором периферийное устройство инсталлируют. В одном или нескольких вариантах осуществления, выполняют проверку в отношении того, включают ли в себя данные привязки устройств данные, задающие конкретное вычислительное устройство. Если вычислительное устройство, которое принимает данные привязки устройств, является вычислительным устройством, заданным посредством данных привязки устройств, то тогда периферийное устройство может быть автоматически привязано к вычислительному устройству. Однако, если вычислительное устройство, которое принимает данные привязки устройств, не является вычислительным устройством, заданным посредством данных привязки устройств, то тогда периферийное устройство не может быть автоматически привязано к вычислительному устройству. Таким образом, такое периферийное устройство может быть автоматически повторно привязано к вычислительному устройству, из которого были исходно отправлены данные привязки устройств (например, посредством создания резервной копии данных привязки устройств), но не может быть автоматически привязано к другим вычислительным устройствам.
[0057] Правила для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству, могут включать в себя доменное или сетевое правило. Разные периферийные устройства могут быть расположены в конкретных сетях или доменах, которые являются доступными только для конкретных вычислительных устройств (например, вычислительных устройств с доступом к сети, вычислительных устройств, которые являются частью того же самого домена, и т.д.). В одном или нескольких вариантах осуществления, выполняют проверку в отношении того, указывают ли данные привязки устройств на то, что периферийное устройство является частью домена или расположено в сети, к которой вычислительное устройство, которое приняло данные привязки устройств, в настоящий момент не имеет доступа. Является ли периферийное устройство частью домена или расположено в сети, к которой вычислительное устройство, которое приняло данные привязки устройств, в настоящий момент не имеет доступа, может быть определено различными способами, например, посредством сравнения домена или сети, в которой находится периферийное устройство (при идентификации в данных привязки устройств), с записью домена или сети (например, сохраненной посредством операционной системы вычислительного устройства), в которой находится в настоящий момент вычислительное устройство, для определения того, являются ли они одними и теми же, посредством попытки доступа к периферийному устройству и проверки того, является ли попытка успешной, и т.д. Если периферийное устройство является частью домена или расположено в сети, к которой вычислительное устройство в настоящий момент не имеет доступа, то тогда выполняют определение, что периферийное устройство не может быть автоматически привязано к вычислительному устройству.
[0058] Хотя выполняют определение, что периферийное устройство не может быть автоматически привязано к вычислительному устройству, это определение выполняют вследствие того, что периферийное устройство в настоящий момент является недоступным. Таким образом, периферийное устройство может быть обозначено в качестве способного к привязке к вычислительному устройству, но не может быть автоматически привязано к вычислительному устройству. Периферийное устройство или данные привязки устройств помечают или выполняют запись о таком периферийном устройстве или данных привязки устройств для указания вычислительному устройству на то, что оно может, впоследствии, получить доступ к домену или сети, в которой расположено периферийное устройство, которое, таким образом, должно быть привязано к вычислительному устройству. Например, вычислительное устройство может быть компактным портативным компьютером, который пользователь запускает дома при выполнении процесса 400, и, таким образом, он не имеет доступа к его или ее рабочему домену или сети, но, позже, его могут взять на работу, и он сможет соединиться с доменом или сетью, в которой расположено периферийное устройство. В такой ситуации, периферийное устройство может быть автоматически привязано к этому устройству позже (например, когда пользователь возьмет его или ее устройство на работу, и вычислительное устройство детектирует, что оно соединилось с доменом или сетью, в которой расположено периферийное устройство), или пользователю может быть предложено, в более поздний момент времени, указать на то, является ли желательной повторная проверка способности к автоматической привязке периферийного устройства к вычислительному устройству. Модуль 208 синхронизации данных привязки устройств фиг. 2 может проверить с регулярными или нерегулярными интервалами времени, или в качестве реакции на конкретные события (например, соединение вычислительного устройства с конкретным доменом), является ли периферийное устройство частью домена или расположено в сети, к которой вычислительное устройство в настоящий момент имеет доступ.
[0059] Правила для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству, могут включать в себя правило причины привязки. В некоторых ситуациях, периферийные устройства могут быть привязан к вычислительным устройствам по конкретным причинам, таким как действие администратора или установка групповой политики. В одном или нескольких вариантах осуществления, когда периферийное устройство привязывают к вычислительному устройству в качестве реакции на команду от администратора или вследствие установки групповой политики, выполняют запись в данных привязки устройств, соответствующую тому, что периферийное устройство привязано к вычислительному устройству вследствие этой команды. Выполняют проверку, посредством вычислительного устройства, принимающего данные привязки устройств, в отношении того, указывают ли данные привязки устройств на то, что периферийное устройство было привязано к вычислительному устройству вследствие такой команды от администратора или вследствие установки групповой политики. Если периферийное устройство было привязано к вычислительному устройству вследствие такой команды от администратора или вследствие установки групповой политики, то тогда выполняют определение, что периферийное устройство не может быть автоматически привязано к вычислительному устройству, принимающим данные привязки устройств.
[0060] Правила для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству, могут включать в себя правило аутентификации. В некоторых ситуациях, некоторая информация о аутентификации, PIN и т.д., не включены в данные привязки устройств. Напротив, принимают пользовательский ввод данных на каждом вычислительном устройстве, к которому привязывается периферийное устройство, соответствующее этим данным привязки устройств. В одном или нескольких вариантах осуществления, выполняют проверку, посредством вычислительного устройства, принимающего данные привязки устройств, в отношении того, отсутствуют ли в соответствующих данных привязки устройств некоторые данные (такие как учетные данные, PIN и т.д.), используемые для привязки периферийного устройства. Если некоторые данные для привязки периферийного устройства к вычислительному устройству не включены в соответствующие данные привязки устройств, то тогда выполняют определение, что периферийное устройство не может быть автоматически привязано к вычислительному устройству.
[0061] Однако, пользователю, необязательно, может быть предложено обеспечить некоторые данные, которое отсутствуют в данных привязки устройств. Для обеспечения некоторых данных могут быть приняты различные пользовательские вводы данных, такие как ввод PIN или кода аутентификации на клавиатуре, обеспечение цифрового сертификата, ассоциированного с пользователем, и т.д. В качестве реакции на пользовательский ввод данных, обеспечивающий отсутствующие данные, периферийное устройство привязывают к вычислительному устройству, как при автоматической привязке к вычислительному устройству (пользователь не должен выполнять дополнительные действия для привязки периферийного устройства к вычислительному устройству, в отличие от выполнения им или ей инсталляции периферийного устройства в ручном режиме).
[0062] В описании правил для идентификации периферийных устройств, которые не могут быть автоматически привязаны к вычислительному устройству, сделана ссылка на приглашение пользователя ко вводу данных (например, разрешения для инсталляции драйвера, PIN или учетных данных и т.д.). Это приглашение может быть может быть выполнено в разные моменты времени, например, во время выполнения определения, что периферийное устройство не может быть автоматически привязано к данному устройству, в качестве реакции на пользовательский выбор периферийного устройства на устройстве управления периферийного устройства или экране конфигурации и т.д.
[0063] Дополнительно, следует отметить, что, если периферийное устройство не привязано автоматически к вычислительному устройству, то может быть отображено или иным образом представлено указание для обеспечения пользователю обратной связи в отношении того, почему периферийное устройство не было автоматически привязано к вычислительному устройству (например, драйвер периферийного устройства не может быть инсталлирован на вычислительном устройстве, вычислительное устройство не имеет собственного MAC-адреса, и т.д.). Это приглашение может быть может быть выполнено в разные моменты времени, например, во время выполнения определения, что периферийное устройство не может быть автоматически привязано к данному устройству, в качестве реакции на пользовательский выбор периферийного устройства на устройстве управления периферийного устройства или экране конфигурации, и т.д.
[0064] Следует также отметить, что в показанном примере процесса 400, на вычислительном устройстве сохраняют копию принятых данных привязки устройств, независимо от того, привязано ли периферийное устройство, соответствующее данным привязки устройств, автоматически к вычислительному устройству на этапе 410. Альтернативно, копия данных привязки устройств, соответствующих периферийному устройству, может быть сохранена на вычислительном устройстве только при некоторых обстоятельствах, например, при привязке периферийного устройства, соответствующего данным привязки устройств, к вычислительному устройству, при наличии в данных привязки устройств отметки о возможности привязки к вычислительному устройству, но невозможности автоматической привязки к вычислительному устройству, и т.д.
[0065] Фиг. 5 является блок-схемой, показывающей иллюстративную модель 500 для реализации технологий, описанных здесь, согласно одному или нескольким вариантам осуществления. Модель 500 может быть использована для реализации, например, модуля 208 синхронизации данных привязки устройств фиг. 2. Модель 500 включает в себя обобщенную инфраструктуру 502инфраинфраструктуру 502 синхронизации, средство 504 обработки синхронизации устройств, инфраструктуру 508 привязки устройств и хранилище 510 данных привязки устройств.
[0066] Инфраструктура 508 привязки устройств управляет данными привязки устройств для конкретных протоколов периферийных устройств (например, принтеров, Bluetooth-устройств, поставщиков Web-услуг и т.д.), причем данные привязки устройств сохраняют в хранилище 510 данных привязки устройств (которое может быть хранилищем 210 данных привязки устройств фиг. 2). Инфраструктура 508 привязки устройств обеспечивает метод 512 импорта, который является интерфейсом, позволяющим инфраструктуре 508 привязки устройств принимать данные привязки устройств от средства 504 обработки синхронизации устройств, и метод 514 экспорта, который является интерфейсом, позволяющим инфраструктуре 508 привязки устройств отправлять данные привязки устройств к средству 504 обработки синхронизации устройств. Инфраструктура 508 привязки устройств может включать в себя один или несколько модулей для управления данными привязки устройств для разных протоколов периферийных устройств.
[0067] В одном или нескольких вариантах осуществления, для загрузки в службу 106 набора данных привязки устройств для пользовательской учетной записи, обобщенная инфраструктура 502 синхронизации активизирует средство 504 обработки синхронизации устройств и запрашивает выполнение устройством 504 обработки перечисления данных для синхронизации. Средство 504 обработки синхронизации устройств обращается к инфраструктуре 508 привязки устройств и запрашивает выполнение инфраструктурой 508 экспорта имеющегося у нее набора данных привязки устройств. Инфраструктура 508 привязки устройств осуществляет считывание из хранилища 510 данных привязки устройств для получения его данных привязки устройств, и обеспечивает считанные данные привязки устройств обратно для средства 504 обработки синхронизации устройств. Средство 504 обработки синхронизации устройств помещает принятые данные привязки устройств в контейнер синхронизируемых данных и возвращает этот контейнер к обобщенной инфраструктуре 502 синхронизации. Обобщенная инфраструктура 502 синхронизации обеспечивает набор синхронизируемых данных для службы 106.
[0068] В одном или нескольких вариантах осуществления, для обеспечения изменений, сделанных в данных привязки устройств на вычислительном устройстве, для службы 106, средство 504 обработки синхронизации устройств непосредственно регистрирует события изменений по отношению к данным 510 привязки устройств. Альтернативно, средство 504 обработки синхронизации устройств может обеспечить прием изменений другими способами, например, активизируя метод интерфейса прикладного программирования API), исполняемый инфраструктурой 508 привязки устройств. В качестве реакции на изменение в хранилище 510 данных, оповещают средство 504 обработки синхронизации устройств, и средство 504 обработки синхронизации устройств перечисляет текущий набор данных привязки устройств из инфраструктуры 508 привязки устройств. Это перечисление позволяет средству 504 обработки синхронизации устройств получить подробную информацию о том, что изменено в хранилище 510 данных, без необходимости понимания подробной информации базового хранилища 510 данных. Инфраструктура 508 привязки устройств считывает информацию из хранилища 510 данных привязки устройств для получения его данных привязки устройств и возвращает его данные привязки устройств (например, в виде объектов данных привязки устройств) к средству 504 обработки синхронизации устройств, которое создает контейнер синхронизируемых установок, включающий в себя данные привязки устройств, которое оно принимает, и передает этот контейнер к обобщенной инфраструктуре 502 синхронизации. Обобщенная инфраструктура 502 синхронизации обеспечивает набор синхронизируемых данных для службы 106.
[0069] В одном или нескольких вариантах осуществления, для записи изменений, сделанных в данных привязки устройств, принятых от службы 106, служба 106 оповещает обобщенную инфраструктуру 502инфраинфраструктуру 502 синхронизации об изменении в данных привязки устройств и обеспечивает новый набор, по существу, всех синхронизируемых установок для обобщенной структуры 502 синхронизации. Обобщенная инфраструктура 502 синхронизации проводит синтаксический анализ этого набора и, затем, обращается к средству 504 обработки синхронизации устройств для обработки данных привязки устройств, которые были приняты от службы 106. Средство 504 обработки синхронизации устройств перечисляет существующий набор данных привязки устройств таким образом, чтобы оно могло определить различие между текущими локальными данными привязки устройств и данными привязки устройств, которые были приняты от службы 106. Средство 504 обработки синхронизации устройств сообщает инфраструктуре 508 привязки устройств различия между текущими локальными данными привязки устройств и данными привязки устройств, которые были приняты от службы 106. Инфраструктура 508 привязки устройств извлекает соответствующие данные привязки устройств из хранилища 510 данных привязки устройств. Набор привязки устройств, извлеченный из хранилища 510 данных, пересылают обратно к средству 504 обработки синхронизации устройств. Средство 504 обработки синхронизации устройств определяет, влияет ли набор данных, которые изменены, на набор данных привязки устройств, который им управляет; другими словами, если данные привязки устройств остались такими же, но другие синхронизируемые данные были изменены, то тогда нет изменения локального состояния, которым управляет средство 504 обработки синхронизации устройств. Если периферийное устройство было добавлено, то тогда средство 504 обработки синхронизации устройств обращается к инфраструктуре 508 привязки устройств с использованием команды импорта для добавления данных привязки устройств, и для того, чтобы инфраструктура 508 привязки устройств добавила данные привязки устройств в хранилище 510 данных. Если периферийное устройство было удалено, то тогда средство 504 обработки синхронизации устройств обращается к инфраструктуре 508 привязки устройств с использованием команды отмены привязки или удаления, и инфраструктура 508 привязки устройств удаляет данные привязки устройств из хранилища 510 данных. В результате добавления данных привязки устройств в хранилище 510 данных привязки устройств или удаления данных привязки устройств из него, вычислительное устройство привязывается к периферийному устройству, или привязка вычислительного устройства и периферийного устройства отменяется.
[0070] Технологии, описанные здесь, обеспечивают различные сценарии использования. Например, пользователь может инсталлировать периферийные устройства, которые он или она предпочитает использовать на одном из его или ее вычислительных устройств, и эти периферийные устройства автоматически инсталлируются на всех остальных его или ее вычислительных устройствах. В качестве другого примера, пользователь может приобрести новый смартфон и обеспечить, чтобы смартфон передал свои данные привязки устройств в службу. Затем, его или ее новый смартфон автоматически инсталлируется на всех его или ее вычислительных устройствах, без необходимости для пользователя в ручном режиме инсталлировать смартфон на какое-либо из этих устройств.
[0071] Для технологий, описанных здесь, могут быть выполнены различные другие модификации. В одном или нескольких вариантах осуществления, данные привязки устройств для периферийных устройств, инсталлированных на вычислительном устройстве, автоматически синхронизируют с различными другими вычислительными устройствами, с которых пользователь входит в его или ее учетную запись, как описано выше. Альтернативно, пользователю может быть предложено выбрать (например, в виде части процесса инсталляции), желает ли он или она, чтобы конкретное периферийное устройство было синхронизировано с его или ее другими вычислительными устройствами, и данные привязки устройств для конкретного периферийного устройства отправляются службе и другим вычислительным устройствам только в качестве реакции на пользовательский ввод данных, указывающий на то, что конкретное периферийное устройство подлежит синхронизации.
[0072] Хотя конкретная функциональность описана здесь со ссылкой на конкретные модули, следует отметить, что функциональность отдельных модулей, описанных здесь, может быть разделена на многочисленные модули, и/или по меньшей мере некоторая функциональность многочисленных модулей может быть объединена в единственном модуле. Здесь описаны различные действия, выполняемые различными модулями. Конкретный модуль, описанный здесь, при выполнении действия, включает в себя сам этот конкретный модуль, выполняющий действие, или, альтернативно, этот конкретный модуль, активизирующий или, иначе говоря, осуществляющий доступ к другому компоненту или модулю, который выполняет действие (или выполняет действие совместно с этим конкретным модулем). Таким образом, конкретный модуль, выполняющий действие, включает в себя сам этот конкретный модуль, выполняющий действие, и/или другой модуль, активированный этим конкретным модулем, выполняющим действие, или, иначе говоря, к которому осуществлен доступ посредством конкретного модуля, выполняющего действие.
[0073] Фиг. 6 показывает иллюстративную систему, в общем, обозначенную 600, которая включает в себя иллюстративное вычислительное устройство 602, которое является характерным для одной или нескольких систем и/или устройств, которые могут реализовать различные технологии, описанные здесь. Вычислительное устройство 602 может быть, например, сервером поставщика услуг, устройством, связанным с клиентом (например, клиентским устройством), системой на кристалле, и/или другими подходящими вычислительным устройством или вычислительной системой.
[0074] Показанное иллюстративное вычислительное устройство 602 включает в себя систему 604 обработки, одну или несколько машиночитаемых сред 606, и один или несколько интерфейсов 608 ввода/вывода, которые соединены с возможностью связи друг с другом. Хоть и не показано, вычислительное устройство 602 может дополнительно включать в себя системную шину или другую систему передачи данных или команд, которая соединяет различные компоненты друг с другом. Системная шина может включать в себя любую из разных конструкций шин или их комбинацию, например, шину памяти или шину контроллера памяти, периферийную шину, универсальную последовательную шину, и/или шину процессора или локальную шину, которая использует любую из множества архитектур шин. Может быть также рассмотрено множество других примеров, таких как линии управления и данных.
[0075] Система 604 обработки является характерной для функциональности для выполнения одной или нескольких операций с использованием аппаратного обеспечения. Таким образом, показано, что система 604 обработки включает в себя аппаратные элементы 610, которые могут быть выполнены в виде процессоров, функциональных блоков и т.д. Это может включать в себя реализацию в аппаратном обеспечении в виде специализированной интегральной схемы или другого логического устройства, выполненного с использованием одного или нескольких полупроводниковых приборов. Аппаратные элементы 610 не ограничены материалами, из которых они выполнены, или механизмами обработки, используемыми в них. Например, процессоры могут быть составлены из полупроводникового прибора (приборов) и/или транзисторов (например, электронных интегральных схем (IC)). В таком контексте, исполняемые процессором команды могут быть электронно-исполняемыми командами.
[0076] Показано, что машиночитаемые среды 606 включают в себя память/хранилище 612. Память/хранилище 612 представляет емкость памяти/хранения, связанную с одной или несколькими машиночитаемыми средами. Память/хранилище 612 может включать в себя энергозависимые среды (такие как память с произвольным доступом (RAM)) и/или энергонезависимые среды (такие как постоянное запоминающее устройство (ROM), флэш-память, оптические диски, магнитные диски и т.д.). Память/хранилище 612 может включать в себя несъемные среды (например, RAM, ROM, несъемный накопитель на жестких дисках и т.д.), а также съемные среды (например, флэш-память, съемный накопитель на жестких дисках, оптический диск и т.д.). Машиночитаемая среда 606 может быть выполнена множеством способов, как дополнительно описано ниже.
[0077] Интерфейс(ы) 608 ввода/вывода являются характерными для функциональности для обеспечения пользователю возможности вводить команды и информацию в вычислительное устройство 602, а также для обеспечения представления информации для пользователя и/или других компонентов или устройств с использованием различных устройств ввода/вывода. Примеры устройств ввода данных включают в себя клавиатуру, устройство управления курсором (например, мышь), микрофон (например, для речевых вводов данных), сканер, сенсорную функциональность (например, емкостные или другие датчики, которые выполнены с возможностью детектирования физического касания), камеру (например, которая может использовать видимые или невидимые длины волн, например, инфракрасные частоты, для детектирования перемещений, которые не включают в себя касания в виде жестов) и т.д. Примеры устройств вывода данных включают в себя устройство отображения (например, монитор или проектор), громкоговорители, принтер, сетевую плату, сенсорное устройство и т.д. Таким образом, вычислительное устройство 602 может быть выполнено различными способами, как дополнительно описано ниже, для поддержки взаимодействия с пользователем.
[0078] Вычислительное устройство 602 также включает в себя систему 614 синхронизации данных. Система 614 синхронизации данных обеспечивает различные функциональности для синхронизации данных привязки устройств, как описано выше. Система 614 синхронизации данных может реализовать, например, модуль 112 синхронизации данных фиг. 1, или модуль 208 синхронизации данных привязки устройств фиг. 2.
[0079] Здесь могут быть описаны различные технологии в общем контексте программного обеспечения, аппаратных элементов, или программных модулей. В общем, такие модули включают в себя подпрограммы, программы, объекты, элементы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные типы абстрактных данных. При использовании здесь, термины «модуль», «функциональность», и «компонент», в общем, представляют программное обеспечение, аппаратно-программное обеспечение, аппаратное обеспечение, или их комбинацию. Признаки и технологии, описанные здесь, являются независимыми от платформы, что означает, что эти технологии могут быть реализованы на разнообразных вычислительных платформах, имеющих разнообразные процессоры.
[0080] Реализация описанных модулей и технологий может быть сохранена на некотором типе машиночитаемой среды или передана через нее. Машиночитаемые среды могут включать в себя множество сред, к которым может быть осуществлен доступ посредством вычислительного устройства 602. В качестве примера, а не ограничения, машиночитаемые среды могут включать в себя «машиночитаемые запоминающие среды» и «машиночитаемые среды передачи сигналов».
[0081] «Машиночитаемые запоминающие среды» относятся к средам и/или устройствам, которые обеспечивают возможность постоянного хранения информации и/или хранения, которое является материальным, в отличие от только передачи сигналов, несущих сигналов, или сигналов самих по себе. Таким образом, машиночитаемые запоминающие среды относятся к ненесущим сигналы средам. Машиночитаемые запоминающие среды включают в себя аппаратное обеспечение, такое как энергозависимые и энергонезависимые, съемные и несъемные среды и/или запоминающие устройства, реализованные с использованием способа или технологии, подходящей для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули, логические элементы/схемы, или других данных. Примеры машиночитаемых запоминающих сред могут включать в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другие технологии памяти, CD-ROM, универсальный цифровой диск (DVD) или другие оптические запоминающие устройства, жесткие диски, магнитные кассеты, магнитную ленту, запоминающие устройства на магнитных дисках или другие магнитные запоминающие устройства, или другие запоминающие устройства, материальные среды, или изделия, подходящие для хранения необходимой информации, и к которым может быть осуществлен доступ посредством компьютера.
[0082] «Машиночитаемые среды передачи сигналов» относятся к несущей сигналы среде, которая выполнена с возможностью передачи команд для аппаратного обеспечения вычислительного устройства 602, например, через сеть. Среды передачи сигналов обычно передают машиночитаемые команды, структуры данных, программные модули, или другие данные в модулированном сигнале данных, таком как несущие сигналы, сигналы данных, или другие механизмы передачи данных. Среды передачи сигналов также включают в себя любые среды доставки информации. Термин «модулированный сигнал данных» означает сигнал, в котором одна или несколько характеристик установлены или изменены таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, а не ограничения, среды передачи данных включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как звуковая, RF, инфракрасная, и другие беспроводные среды.
[0083] Как описано выше, аппаратные элементы 610 и машиночитаемые среды 606 являются характерными для команд, модулей, программируемой аппаратной логики и/или фиксированной аппаратной логики, реализуемых в аппаратном обеспечении, которые могут быть использованы в некоторых вариантах осуществления для реализации по меньшей мере некоторых аспектов технологий, описанных здесь. Аппаратные элементы могут включать в себя компоненты интегральной схемы или системы на кристалле, специализированной интегральной схемы (ASIC), матрицы программируемых логических вентилей (FPGA), сложного устройства с программируемой логикой (CPLD), и других реализаций в кремниевых или других аппаратных устройствах. В этом контексте, аппаратный элемент может функционировать в качестве устройства обработки, которое выполняет задачи программы, определяемые посредством команд, модулей, и/или логики, реализованных посредством этого аппаратного элемента, а также в качестве аппаратного устройства, используемого для хранения исполняемых команд, например, машиночитаемой запоминающей среды, описанной выше.
[0084] Комбинации вышеуказанного могут быть также использованы для реализации различных технологий и модулей, описанных здесь. Таким образом, программное обеспечение, аппаратное обеспечение, или программные модули, и другие программные модули могут быть реализованы в виде одной или нескольких команд и/или логики, реализованной на некотором типе машиночитаемой запоминающей среды и/или посредством одного или нескольких аппаратных элементов 610. Вычислительное устройство 602 может быть выполнено с возможностью реализации конкретных команд и/или функций, соответствующих программным модулям и/или аппаратным модулям. Таким образом, реализация модулей в виде модуля, который является исполняемым посредством вычислительного устройства 602, в виде программного обеспечения, может быть обеспечена, по меньшей мере частично, в аппаратном обеспечении, например, посредством использования машиночитаемой запоминающей среды и/или аппаратных элементов 610 системы обработки. Команды и/или функции могут быть исполняемыми/обрабатываемыми посредством одного или нескольких изделий (например, одного или нескольких вычислительных устройств 602 и/или систем 604 обработки) для реализации технологий, модулей, и примеров, описанных здесь.
[0085] Как дополнительно показано на фиг. 6, иллюстративная система 600 обеспечивает распространенные среды для цельного взаимодействия с пользователем при запуске приложений на персональном компьютере (personal computer-PC), телевизионном устройстве и/или телевизионной приставке, и/или мобильном устройстве. Службы и приложения работают, по существу, подобным образом во всех трех средах, для обеспечения простого взаимодействия с пользователем при переходе от одного устройства к следующему, при использовании приложения, проигрывании видеоигры, просмотре видеоинформации и т.д.
[0086] В иллюстративной системе 600, многочисленные устройства подключены через центральное вычислительное устройство. Центральное вычислительное устройство может быть локальным для многочисленных устройств или может быть расположено удаленно от многочисленных устройств. В одном или нескольких вариантах осуществления, центральное вычислительное устройство может быть облаком из одного или нескольких серверных компьютеров, которые подключены к многочисленным устройствам через сеть, интернет, или другие каналы передачи данных.
[0087] В одном или нескольких вариантах осуществления, эта архитектура подключения обеспечивает возможность передачи функциональности для всех многочисленных устройств для обеспечения простого и цельного взаимодействия с пользователем многочисленных устройств. Каждое из многочисленных устройств может иметь разные физические характеристики и возможности, а центральное вычислительное устройство использует некоторую платформу для обеспечения возможности доставки к устройству опыта взаимодействия с пользователем, который является как адаптированным к устройству, так и общим для всех устройств. В одном или нескольких вариантах осуществления, создают класс целевых устройств, и опыт взаимодействия с пользователем адаптируют к обобщенному классу устройств. Класс устройств может быть определен физическими характеристиками, типами использования, или другими общими характеристиками устройств.
[0088] В различных реализациях, вычислительное устройство 602 может предполагать множество разных конфигураций, например, конфигурации для использования компьютера 616, мобильного устройства 618, или телевизионного приемника 620. Каждая из этих конфигураций включает в себя устройства, которые могут иметь, в общем, разные конструкции и возможности, и, таким образом, вычислительное устройство 602 может быть выполнено согласно одному или нескольким разным классам устройств. Например, вычислительное устройство 602 может быть реализовано в виде устройства из класса компьютеров 616, который включает в себя персональный компьютер, настольный компьютер, многоэкранный компьютер, компактный портативный компьютер, нетбук и т.д.
[0089] Вычислительное устройство 602 может быть также реализовано в виде устройства из класса мобильных устройств 618, который включает в себя мобильные устройства, такие как мобильный телефон, портативный музыкальный плеер, портативное игровое устройство, планшетный компьютер, многоэкранный компьютер и т.д. Вычислительное устройство 602 может быть также реализовано в виде устройства из класса телевизионных приемников 620, который включает в себя устройства, имеющие, обычно, большие экраны или подключенные к ним, в обычных средах просмотра. Эти устройства включают в себя телевизионные приемники, телевизионные приставки, игровые консоли и т.д.
[0090] Технологии, описанные здесь, могут поддерживаться этими различными конфигурациями вычислительного устройства 602 и не ограничены конкретными примерами технологий, описанными здесь. Эта функциональность может быть также реализована, полностью или частично, посредством использования распределенной системы, например, посредством «облака» 622, через платформу 624, как описано ниже.
[0091] Облако 622 включает в себя и/или характерно для платформы 624 для ресурсов 626. Платформа 624 представляет в абстрактном виде базовую функциональность аппаратного обеспечения (например, серверов) и ресурсов программного обеспечения облака 622. Ресурсы 626 могут включать в себя приложения и/или данные, которые могут быть использованы при выполнении компьютерной обработки на серверах, которые являются удаленными от вычислительного устройства 602. Ресурсы 626 могут также включать в себя службы, обеспечиваемые посредством интернета и/или посредством абонентской сети, такой как сотовая сеть или сеть Wi-Fi.
[0092] Платформа 624 может представлять в абстрактном виде ресурсы и функции для подключения вычислительного устройства 602 к другим вычислительным устройствам. Платформа 624 может также служить для абстрактного масштабирования ресурсов для обеспечения соответствующего уровня масштаба для обнаруженной потребности в ресурсах 626, которые реализованы через платформу 624. Таким образом, в варианте осуществления с подключенным устройством, реализация функциональности, описанной здесь, может быть распределена по всей системе 600. Например, эта функциональность может быть реализована частично на вычислительном устройстве 602, а также через платформу 624, которая представляет в абстрактном виде функциональность облака 622.
[0093] Хотя изобретение описано на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что объем изобретения, определяемый приложенной формулой изобретения, не обязательно ограничен конкретными признаками или действиями, описанными выше. Напротив, конкретные признаки или действия, описанные выше, описаны в качестве иллюстративных форм реализации формулы изобретения.