ПРЕДСТАВЛЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ СРЕДЫ НА МНОЖЕСТВЕННЫХ УСТРОЙСТВАХ
REPRESENTING COMPUTING ENVIRONMENT ON MULTIPLE DEVICES

РОДСТВЕННАЯ ЗАЯВКА
[0001] Настоящая заявка заявляет преимущество приоритета заявки на патент США № 14/495,420, озаглавленной "PRESENTATION OF COMPUTING ENVIRONMENT ON MULTIPLE DEVICES" («Представление вычислительной среды на множественных устройствах») и поданной 24 сентября, 2014, которая включена в данный документ в качестве ссылки.
УРОВЕНЬ ТЕХНИКИ
[0002] В пределах области вычислений, многие сценарии включают в себя взаимодействие пользователя с набором устройств, таких как компактный портативный компьютер, мобильный телефон, планшет, и сервер мультимедиа. Пользователь может приобретать множество устройств для набора устройств, для охвата интересов и задач пользователя, таких как редактирование документов, просмотр фильмов, управление транспортным средством, и взаимодействие с друзьями. Каждое устройство может представлять вычислительную среду, содержащую множество учетных записей и полномочий пользователя, доступные и/или исполняющиеся приложения, конфигурации и состояние приложений, документы, объекты мультимедиа, и соединения с другими устройствами в пределах и за пределами набора устройств.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0003] Эта Сущность изобретения обеспечена для ознакомления в упрощенной форме с выбором идей, которые дополнительно описаны ниже в Подробном описании. Эта Сущность изобретения не предназначена для идентификации ключевых факторов или существенных признаков заявленного объекта изобретения, а также не предназначена для использования для ограничения объема заявленного объекта изобретения.
[0004] Конфигурирование устройств для представления вычислительной среды может приводить к разобщенному опыту, когда каждое устройство из набора устройств представляет вычислительную среду на основе аппаратных характеристик устройства. Однако, эта модель может повлечь за собой разобщенный вычислительный опыт, когда пользователь отдельно конфигурирует и поддерживает конфигурацию каждого устройства, и когда различиями между вычислительными средами управляют различия в характеристиках каждого устройства, такие как приложения, которые являются доступными для архитектуры устройства и совместимы с ней. Дополнительно, взаимодействие с одним устройством может не повлечь за собой изменение на другом устройстве; например, пользователь может установить приложение, настроить конфигурацию приложения, или создать или отредактировать документ на первом устройстве из набора устройств, но такие изменения могут не появиться на втором устройстве из набора устройств.
[0005] Другие технологии могут быть использованы для координации представления вычислительной среды на различных устройствах из набора устройств. В качестве первого такого примера, синхронизация файлов среди устройств может обеспечить возможность того, чтобы изменения в наборе файлов, выполненные посредством первого устройства, были автоматически отражены на втором устройстве. Однако, такая синхронизация файлов может выявить неэффективность (например, обновление файла на конкретном устройстве вызывает передачу файла ко всем другим устройствам для обеспечения распространения обновления), и может приводить к ошибкам, связанным с параллельным исполнением (например, обновления конкретного файла могут происходить на первом устройстве и втором устройстве, и разрешение конфликтов такого параллельного обновления может быть затруднительным). Альтернативно, в модели терминальных услуг, первичное устройство может передавать вычислительную среду на множество устройств. Однако, если каждое устройств представляет одну и ту же вычислительную среду независимо от характеристик устройства, то тогда некоторые устройства могут быть неспособными использовать некоторые аппаратные характеристики, связанные с данным устройством, в то время как другое устройство может быть неспособным воспроизводить вычислительную среду соответствующим образом.
[0006] Здесь представлены технологии для обеспечения набору устройств возможности представления вычислительной среды, хостом которой является первичное устройство. Согласно таким технологиям, первичное устройство из набора устройств может запоминать и поддерживать первичную вычислительную среду, которая должна быть представлена на каждом из нескольких дополнительных устройств из набора устройств. Для каждого дополнительного устройства, первичное устройство может адаптировать первичную вычислительную среду к дополнительной вычислительной среде, которая адаптирована на основе конкретных аппаратных характеристик дополнительного устройства, таких как его вычислительные ресурсы, возможности ввода и вывода данных, коммуникационные возможности, источник питания, и контекст пользователя. Дополнительно, когда принимается запрос на исполнение приложения на дополнительном устройстве, первичное устройство может исполнить приложение в пределах дополнительной вычислительной среды от имени дополнительного устройства, и может адаптировать приложение к аппаратным характеристикам дополнительного устройства.
[0007] Для достижения вышеупомянутых и связанных целей, нижеследующее описание и прилагаемые чертежи предлагают некоторые иллюстративные аспекты и реализации. Они указывают на различные, но только некоторые способы, в которых могут быть использованы один или несколько аспектов. Другие аспекты, преимущества, и новые признаки раскрытия сущности настоящего изобретения станут понятными из нижеследующего подробного описания, при рассмотрении его в сочетании с прилагаемыми чертежами.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Фиг. 1 является иллюстрацией примерного сценария, характеризующего взаимодействие пользователя с множеством устройств из набора устройств.
[0009] Фиг. 2 является иллюстрацией примерного сценария, характеризующего представление вычислительной среды на наборе устройств из дополнительных устройств, согласно технологиям, представленным в данном документе.
[0010] Фиг. 3 является блок-схемой последовательности операций примерного способа обеспечения первичному устройству возможности представления вычислительной среды на дополнительных устройствах из набора устройств, согласно технологиям, представленным в данном документе.
[0011] Фиг. 4 является блок-схемой компонентов примерных систем, которые обеспечивают первичному устройству и дополнительному устройству из набора устройств возможность представления вычислительной среды для пользователя, согласно технологиям, представленным в данном документе.
[0012] Фиг. 5 является иллюстрацией примерного машиночитаемого носителя, содержащего исполняемые процессором команды, выполненные с возможностью осуществления одного или нескольких средств, предложенных в данном документе.
[0013] Фиг. 6 является иллюстрацией примерного сценария, характеризующего различные технологии для конкретизации приложения в пределах выбранного дополнительного устройства из набора устройств, согласно технологиям, представленным в данном документе.
[0014] Фиг. 7 является иллюстрацией примерного сценария, характеризующего распределение пользовательского интерфейса приложения по множеству выбранных дополнительных устройств из набора устройств, согласно технологиям, представленным в данном документе.
[0015] Фиг. 8 является иллюстрацией примерного сценария, характеризующего переход входных данных первого дополнительного устройства во вторую дополнительную вычислительную среду второго дополнительного устройства, согласно технологиям, представленным в данном документе.
[0016] Фиг. 9 является иллюстрацией примерного сценария, характеризующего повторное воспроизведение пользовательского интерфейса приложения среди дополнительных устройств из динамического набора устройств, согласно технологиям, представленным в данном документе.
[0017] Фиг. 10 является иллюстрацией примерной вычислительной среды, в которой могут быть реализованы одно или несколько средств, предложенных в данном документе.
ПОДРОБНОЕ ОПИСАНИЕ
[0018] Заявленный объект изобретения будет теперь описан со ссылкой на чертежи, в которых подобные ссылочные позиции везде используются для ссылки на подобные элементы. В нижеследующем описании, в целях объяснения, многочисленные конкретные подробности предложены для обеспечения полного понимания заявленного объекта изобретения. Следует понимать, однако, что заявленный объект изобретения может быть применен на практике без этих конкретных подробностей. В других примерах, структуры и устройства показаны в форме блок-схем для облегчения описания заявленного объекта изобретения.
A. Введение
[0019]
[0020] Фиг. 1 является иллюстрацией примерного сценария 100, характеризующего различные технологии для обеспечения пользователю 102 возможности взаимодействия с множеством устройств 106 в пределах набора 104 устройств. В этом примерном сценарии 100, пользователь 102 приобрел множество устройств 106 разных типов, таких как рабочая станция, компьютер домашнего кинотеатра, портативный планшет, и мобильный телефон. Соответствующие устройства 106 из набора 104 устройств проявляют множество аппаратных характеристик 108, таких как процессор, имеющий конкретную производительность обработки и поддерживающий конкретную архитектуру множества команд; источник питания, такой как соединение с линией электропитания, аккумуляторная батарея, и/или источник бесперебойного питания (uninterruptible power supply - UPS); и множество компонентов ввода и вывода данных, которые обеспечивают возможность взаимодействия с пользователем 102. Другие такие аппаратные характеристики 108 включают в себя, например, сопроцессоры для воспроизведения видеоизображений, кодирования или декодирования различных форм данных; энергозависимые и энергонезависимые компоненты памяти; коммуникационные компоненты, такие как проводные и беспроводные сетевые адаптеры и адаптеры радиосвязи на короткие расстояния (near field communication - NFC); периферийные устройства, такие как принтеры и сканеры; и соответствующие компоненты в сценариях встроенных устройств, таких как автомобильные компоненты системы управления транспортным средством. Соответствующие устройства 106 также имеют собственную вычислительную среду 110, такую как собственная операционная система устройства 106; набор приложений 112, которые исполняются в пределах операционной системы; и множество файлов 114, хранящихся на каждом устройстве 106.
[0021] Пользователь 102 набора 104 устройств может взаимодействовать с каждым устройством 106 конкретным образом, и может, таким образом, конфигурировать каждое устройство 106 согласно его предполагаемому применению. В качестве первого примера, устройство 106 рабочей станции может характеризоваться робастной операционной системой рабочей области, и множеством приложений, выбранных для нее, таких как текстовые редакторы, компиляторы, и программные средства редактирования мультимедиа. В качестве второго примера, устройство 106 домашнего кинотеатра может характеризоваться устройством отображения большой площади; причем сконцентрированная на мультимедиа операционная система представляет сравнительно ограниченное множество приложений 112, таких как средство воспроизведения мультимедиа и библиотека мультимедиа, и сравнительно ограниченное множество аппаратных характеристик 108, таких как серийно выпускаемый процессор, который является подходящим для воспроизведения мультимедиа, но неспособным к робастной параллельной обработке. В качестве третьего примера, планшетное устройство 106 может представлять портативный вычислительный опыт, и может представлять робастную операционную систему, которая исполняется на высокопроизводительном процессоре, и которая взаимодействует с пользователем 102, главным образом, через емкостной сенсорный дисплей. В качестве четвертого примера, четвертое устройство 106 может содержать мобильный телефон, характеризующийся энергосберегающими аппаратными средствами, аккумуляторной батареей, и ориентированной на связь операционной системой, посредством которой могут быть исполнены мобильные приложения 112.
[0022] В этом примерном сценарии 100, при взаимодействии с этим набором 104 устройств, пользователь 102 может наблюдать заметные различия при взаимодействии с соответствующим устройством 106. В качестве первого примера, приведено пользовательское взаимодействие пользователя 102 с набором 104 устройств, содержащим множество устройств 106. В этом примерном сценарии 100, пользователь 102 приобретает устройства 106 для покрытия широкого множества интересов и задач, таких как редактирование документов; просмотр различный форм мультимедиа; воспроизведение игр; установление связи с профессиональными и социальными контактами; и обнаружение информации, которая облегчает ежедневные виды деятельности пользователя, такие как отображение на карте и навигация транспортного средства. Каждое устройство 106 из набора 104 устройств может представлять вычислительную среду 114, такую как набор приложений 112, которые устанавливаются и исполняются на каждом устройстве 106; различные наборы данных, такие как пользовательские файлы, объекты мультимедиа, и веб-ссылки; и различные формы пользовательских интерфейсов, такие как операционные системы, адаптированные для несистематических и/или профессиональных взаимодействий с пользователем. Каждое устройство 106 может также характеризоваться другим множеством компонентов, например, дисплеями с переменным качеством и разрешением; громкоговорителями, головными телефонами и/или наушниками для обеспечения звуковых выходных данных для пользователя 102; устройствами ввода данных, такими как клавиатуры, мыши, и сенсорные дисплеи; и другими периферийными устройствами, такими как камеры и коммуникационные устройства. В качестве второго примера, расхождение в операционных системах может проявлять разные типы функциональности посредством каждого устройства 106 (например, различия во внешнем виде и поведении пользовательских интерфейсов операционных систем; в доступных инструментах и операциях; и в распознанных входных данных на каждом устройстве 106, таких как клавиатурные комбинации клавиш быстрого вызова и жесты, которые используются для отдания команд для каждого устройства 106). В качестве третьего такого примера, приложение 112, которое является исполняемым на первом устройстве 106, может не быть исполняемым на втором устройстве 106, например, вследствие вопросов совместимости между операционными системами и архитектурами множеств команд устройств 106. Пользователь 102 может попытаться установить сравнимое множество приложений 112 на каждое устройство 106 (например, разные варианты одного и того же приложения, которые были разработаны для разных платформ, или приложения разных разработчиков, которые выполняют одну и ту же задачу), но могут оставаться нежелательные различия между внешне подобными, но разными по архитектуре приложениями 112.
[0023] Дополнительные трудности могут возникать на уровне конфигурации устройств и управления, выполняемого пользователем 102 для установления и поддержки совместимости между устройствами 106 из набора 104 устройств; т.е., когда пользователь 102 конфигурирует первое устройство 106 (например, при установке приложения 112 или обновлении конфигурации приложения), пользователь 102 должен выполнить реконфигурацию одного или нескольких других устройств 106, и, возможно, всех устройств 106, подобным образом. В качестве первого такого примера, если первое устройство 106 использует услугу, которая защищена паролем, и пользователь 102 изменяет пароль услуги посредством первого устройства 106, пользователь 102 должен переконфигурировать другие устройства 106, которые используют тот же самый обновляемый пароль. В качестве второго такого примера, когда пользователь 102 устанавливает приложение 112 или создает или редактирует файл 114 на первом устройстве 106, такие изменения не отражаются автоматически на втором устройстве 106, если пользователь 102 не сконфигурировал оба устройства 106 для координации таких обновлений. Например, пользователь 102 может сконфигурировать процесс 116 синхронизации файлов таким образом, чтобы файл 114, который создается, модифицируется, или удаляется на втором устройстве 106, автоматически синхронизировался с четвертым устройством. Однако, такие технологии могут вызывать, возможно, обширный и, возможно, разочаровывающий уровень вовлечения и управления для пользователя 102, для их реализации и поддержки. Кроме того, даже когда таким технологиям придается внешний вид синхронности (например, устройства 106 могут выполнить синхронизацию 116 файлов таким производительным образом, чтобы это предполагало, что устройства 106 используют единственное множество файлов 114), могут возникнуть проблемы, которые вызывают «рассеяние» такой абстракции. В качестве первого такого примера, конкретный файл 114 может параллельно редактироваться на втором устройстве 106 и четвертом устройстве 106. Выбор одной из двух версий может вызвать потерю данных в другой версии, и устройства 106 могут быть неспособными определить, как следует объединить такие изменения. В качестве второго такого примера, когда третье устройство 106 отсоединяется от набора 104 устройств, различные файлы 114 могут стать недоступными и/или устаревшими при осуществлении доступа посредством третьего устройства 106. В качестве третьего такого примера, ослабление ограничений, таких как управление версиями конфликтов, может вызывать более строгие меры, которые связаны с другими нежелательными эффектами; например, механизм блокирования может быть использован для обеспечения того, чтобы только первое устройство 106, имеющее исключительный доступ к файлу 114, могло просматривать или модифицировать его, но такой механизм блокирования может вызвать остановку и/или сбой второго устройства 106, пытающегося осуществить доступ к тому же самому файлу 114.
[0024] Ввиду этих и других ограничений, возникающих при представлении изолированной вычислительной среды 110 посредством каждого устройства 106, могут быть использованы технологии для обеспечения однородности среди устройств 106. Например, терминальный сервер 118 может генерировать терминальную вычислительную среду 120, такую как единственная учетная запись пользователя, обеспечивающая установочные параметры операционной системы, единственное множество приложений 112 и конфигураций приложений, и единственное множество файлов 114 и аппаратных компонентов, которые являются доступными для терминального сервера 118. Терминальный сервер 118 может, тогда, передавать представление терминальной вычислительной среды 120 к каждому из устройств 106 (например, может передать видеоизображение терминальной вычислительной среды 120 к каждому устройству 106 и может принимать входные данные от каждого устройства 106), которое может воспроизводить одну и ту же терминальную вычислительную среду 120 однородно для пользователя 102.
[0025] Однако, такие технологии терминальных услуг могут иметь дополнительные ограничения, такие как неспособность терминального сервера 118 разрешать  параллельное использование одной терминальной вычислительной среды 120 несколькими устройствами 106. Дополнительно, представление одной терминальной вычислительной среды 120 на множестве устройств 106 может обеспечить однородность среди устройств 106, но может обеспечить в результате неоптимальный опыт. Если однородная терминальная вычислительная среда 120 передается к каждому устройству 106 без учета аппаратных характеристик 108 каждого устройства 106, то некоторые аппаратные характеристики 108 могут не проявиться в пределах терминальной вычислительной среды 120. Например, конкретное устройство 106 может содержать камеру, но терминальная вычислительная среда 120 может не знать об обеспечении камеры, может не иметь подходящих установленных программных средств, таких как драйверы и ориентированные на камеру приложения 112, и может, таким образом, не обеспечить доступность камеры в пределах терминальной вычислительной среды 120. Напротив, некоторые устройства 106 могут не иметь подходящих аппаратных характеристик 108 для представления терминальной вычислительной среды 120; например, терминальная вычислительная среда 120 может обеспечить приложение 108, которое не поддерживается аппаратными характеристиками 108 некоторых устройств 106, или может просто не воспроизводиться конкретным устройством 106 с приемлемым опытом пользователя. Например, представление терминальной вычислительной среды 120 на маломощном мобильном телефоне может обеспечить в результате отображение малой части пространства рабочей области, что повлечет за собой существенный уровень прокрутки для просмотра любой его части, и/или может иметь непригодную низкую частоту кадров и большую задержку входных данных пользователя из-за энергосберегающего процессора устройства 106. Такие ограничения могут возникнуть из-за ограниченной гибкости в обеспечении единственной терминальной вычислительной среды 120 для множества устройств 106 в интересах однородности опыта пользователя.
В. Представленные технологии
[0026]
[0027] Здесь представлены технологии для конфигурирования набора 104 устройств для представления совместимой вычислительной среды посредством разнообразия устройств, но которая адаптирована к аппаратным характеристикам 108 каждого устройства 106.
[0028] Фиг. 2 является иллюстрацией примерного сценария 200, характеризующего набор 104 устройств из устройств 106, которые взаимодействуют для представления совместимой вычислительной среды для пользователя 102. В этом примерном сценарии 200, среди набора 104 устройств, конкретное устройство 104 назначено в качестве первичного устройства 202, которое генерирует и поддерживает первичную вычислительную среду 204, такую как первичный набор установочных параметров операционной системы, приложения 112, конфигурации приложений, файлы 114, и учетные записи и полномочия пользователя. Для каждого дополнительного устройства 206 из набора 104 устройств, первичное устройство 202 может адаптировать первичную вычислительную среду 204 для дополнительной вычислительной среды 208, согласно аппаратным характеристикам 108 дополнительного устройства 106. Например, первичное устройство 202 может выбрать цветовую схему дисплея, типы и размеры пиктограмм и шрифтов, модальности ввода данных, полноэкранную или оконную модели взаимодействия, и доступность и конфигурацию компонентов (например, поведение указателя), согласно аппаратным характеристикам 108 каждого дополнительного устройства 206. Для каждого дополнительного устройства 206, первичное устройство 202 может передавать конкретную дополнительную вычислительную среду 208 для этого дополнительного устройства 206 в виде потока 214. Передача 214 в потоковом режиме дополнительной вычислительной среды 208 может включать в себя передачу первичным устройством 202 звуковых данных, видеоизображений, и других форм выходных данных для воспроизведения их дополнительным устройством 206, а также команд для аппаратных характеристик 108 и компонентов дополнительного устройства 206. Передача 214 в потоковом режиме дополнительной вычислительной среды 208 может также включать в себя прием входных данных от дополнительного устройства 206, таких как входные данные пользователя, метрик производительности, детектируемых дополнительным устройством 206, и данных, генерируемых аппаратными характеристиками 108 дополнительного устройства 206, для применения в дополнительной вычислительной среде 208.
[0029] Дополнительно, первичное устройство 202 может также выбрать, из приложений первичной вычислительной среды 204, множество 210 приложений, подлежащее представлению на каждом дополнительном устройстве 206. Каждый выбор может включать в себя тип устройства дополнительного устройства 206 (например, формфактор дополнительного устройства 206), аппаратные характеристики 108 дополнительного устройства 206, и/или предполагаемое использование дополнительного устройства 206 пользователем 102, например, выбор приложений 206, которые относятся к сценариям, в которых пользователь 102 предполагает использовать дополнительное устройство 206. Поток 214 для каждого дополнительного устройства 206 может включать в себя представление множества 210 приложений, например, в виде списка или меню. Дополнительно, для соответствующих дополнительных устройств 206, первичное устройство 202 может исполнить приложения 112 от имени дополнительного устройства 206 (например, такие приложения 112 могут использовать процессор, память, и другие вычислительные возможности первичного устройства 202). Когда первичное устройство 202 принимает запрос на конкретизацию приложения 112 для конкретного дополнительного устройства 206, первичное устройство 202 может конкретизировать приложение 112 на первичном устройстве 202 и может вставить приложение 112 в дополнительную вычислительную среду 208 (например, создавая пользовательский интерфейс для приложения 112 в пространстве рабочей области дополнительной вычислительной среды 208; связывая устройство ввода данных с пользовательским интерфейсом; и добавляя приложение 112 в список 212 выполняющихся приложений для дополнительной вычислительной среды 208). Кроме того, первичное устройство 202 может адаптировать исполнение приложения 112 к аппаратным характеристикам 108 конкретного дополнительного устройства 206; например, пользовательский интерфейс приложения 112 может быть выполнен с возможностью использования конкретных возможностей ввода данных, возможностей вывода данных, и других доступных компонентов и ресурсов дополнительного устройства 106. Поток 214 дополнительной вычислительной среды 208, таким образом, включает в себя представление приложения 112 в пределах дополнительной вычислительной среды 208, передаваемой в устройство 106 и представляемой им. Таким образом, первичное устройство 202 может обеспечить возможность представления первичной вычислительной среды 204 для пользователя 102 посредством дополнительных устройств 206 из набора 104 устройств, согласно технологиям, представленным здесь.
C. Технические эффекты
[0030]
[0031] Использование технологий, представленных здесь, для представления первичной вычислительной среды 204 для пользователя 102 посредством дополнительных устройств 206 из набора 104 устройств может, в некоторых вариантах осуществления, обеспечить в результате множество технических эффектов.
[0032] В качестве первого примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, если приложения 112 исполняются на первичном устройстве 202, то приложения 112 могут использовать совместно используемое множество файлов 114, и их получают из совместно используемого множества приложений 112, установленных на первичном устройстве 202; например, установка и обновление приложения 112 на первичном устройстве 202 обеспечивает возможность включения приложения 112 во множество 210 приложений для каждого дополнительного устройства 206. Кроме того, исполнение и совместимость приложения 112 не зависит от конкретных архитектурных подробностей каждого дополнительного устройства 206 (например, от производительности процессора и архитектуры множества команд дополнительного устройства 206), а зависит только от архитектурных подробностей первичного устройства 202. Таким образом, приложения 112 первичной вычислительной среды 204 могут быть представлены для пользователя 102 более согласованно, т.е., с уменьшением различий в представлении между такими дополнительными устройствами 206, которые не являются преднамеренными, а задаются архитектурными различиями, несовместимостью вычислительных компонентов, или другими такими препятствиями.
[0033] В качестве второго примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, представление дополнительных вычислительных сред 208 в виде адаптации первичной вычислительной среды 202 может уменьшить величину конфигурирования и поддержки, подлежащих выполнению пользователем 102. Например, вместо приобретения, установки, и конфигурирования приложения 112 на каждом дополнительном устройстве 206 из набора 104 устройств, где необходимо такое приложение 112, технологии, представленные здесь, обеспечивают пользователю 102 возможность установки и конфигурирования приложения 112 один раз на первичном устройстве 202, и, после этого, обеспечивают возможность доступа к приложению посредством дополнительной вычислительной среды 208 любого дополнительного устройства 206. Кроме того, технологии, представленные здесь, могут обеспечить возможность централизованного администрирования набора 104 устройств; например, пользователь 102 может настроить дополнительные вычислительные среды 208 каждого дополнительного устройства 206 просто посредством настройки адаптации первичной вычислительной среды 204 первичным устройством 202 для выбранного дополнительного устройства 206. Такие уменьшенные затраты на администрирование могут облегчить масштабируемость набора 104 устройств; например, пользователь 102 может быть более склонным к добавлению дополнительных устройств 206 в набор 104 устройств, если каждое такое дополнительное устройство 206 не должно отдельно конфигурироваться и поддерживаться, а посредством конфигурирования только первичного устройства 204 можно обеспечить дополнительные вычислительные среды 208 для таких вспомогательных дополнительных устройств 206.
[0034] В качестве третьего примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, дополнительные вычислительные среды 208 и исполнение приложений 112 могут быть выполнены с возможностью использования аппаратных характеристик 108 дополнительного устройства 206; например, приложение 112 может обеспечить динамический, анимированный пользовательский интерфейс в пределах дополнительной вычислительной среды 208 дополнительного устройства 206 с производительной подключаемостью к сети для первичного устройства 202 и обильной подачей энергии от линии электропитания, и может обеспечить простой, статический пользовательский интерфейс в пределах дополнительной вычислительной среды 208 дополнительного устройства 206 с ограниченной подключаемостью к сети для первичного устройства 202 и ограниченной подачей энергии от аккумуляторной батареи. Таким образом (и в отличие от сценариев терминальных услуг), представление первичной вычислительной среды 204 может более полно использовать аппаратные характеристики 108 каждого дополнительного устройства 206, при уменьшении величины поддержки, включенной в обеспечение этого.
[0035] В качестве четвертого примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, первичное устройство 202 может обеспечить возможность гибкого исполнения приложений 112 среди дополнительных устройств 206 из набора 104 устройств; например, пользовательский интерфейс для приложения 112 может быть распределен по множеству дополнительных устройств 206, или может быть легко перемещен из первого дополнительного устройства 206 во второе дополнительное устройство 206 в случае, когда набор 104 устройств изменяется.
[0036] В качестве пятого примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, при взаимодействии приложений 112, исполняемых в пределах дополнительных вычислительных сред 208 множественных дополнительных устройств, приложения 112 могут взаимодействовать легко, посредством межпроцессной связи или механизма совместного использования файлов в пределах первичного устройства 202, вместо использования взаимоподключаемости устройств и/или взаимоподключаемости к сетям между дополнительными устройствами 206. Такое взаимодействие может обеспечить эффективность и/или легкость развития и использования таких взаимодействующих приложений 112. В качестве одного такого примера, пользователь 102 может использовать устройство ввода данных, соединенное с первым дополнительным устройством 206, для взаимодействия с приложением 112, исполняющимся в пределах дополнительной вычислительной среды 208 второго дополнительного устройства 206.
[0037] В качестве шестого примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, представление первичной вычислительной среды 204 и исполнение приложений 112 на первичном устройстве 202 могут обеспечить увеличение общей эффективности. Например, вместо использования множественных дополнительных устройств 206 (возможно, большого количества) для исполнения множественных вариантов приложения 112, первичное устройство 202 может быть способным исполнять приложение 112 от имени большого количества таких дополнительных устройств 206, что, например, уменьшает избыточное исполнение некоторых вычислительных процессов по множественным дополнительным устройствам 206. Например, вместо того, что каждое из нескольких дополнительных устройств 206 в установленном порядке опрашивает сервер электронной почты для получения электронной почты (что обеспечивает в результате потенциально большой объем запросов электронной почты), первичное устройство 202 может периодически запрашивать сервер электронной почты и, после приема нового сообщения, может передавать уведомление посредством множественных дополнительных устройств 206. Такие увеличения эффективности могут, предпочтительно, экономить вычислительные ресурсы (например, коэффициент загрузки процессора, памяти, и пропускной способности сети), и могут даже уменьшить общие затраты на поддержку и электропитание при администрировании набора 104 устройств.
[0038] В качестве седьмого примера технического эффекта, который может быть достижимым посредством технологий, представленных здесь, опыт высококачественных вычислений может быть представлен на наборе 104 устройств из сравнительно маломощных дополнительных устройств 206. Например, посредством передачи затрат вычислительных ресурсов на воспроизведение дополнительной вычислительной среды 208 и исполнение приложений 112 к первичному устройству 202, эти технологии обеспечивают возможность представления высококачественной дополнительной вычислительной среды 208 на дополнительном устройстве 206, которое может даже не иметь достаточных вычислительных ресурсов для воспроизведения такой дополнительной вычислительной среды 208 в локальном контексте на том же самом уровне качества. Таким образом, устаревшие аппаратные средства могут быть включены в набор 104 устройств без необходимости уменьшения качества вычислительной среды, представляемой ими. Дополнительно, производительность всего набора 104 устройств может быть увеличена в масштабе, просто посредством увеличения в масштабе ресурсов первичного устройства 202; например, высококачественные воспроизведения вычислительной среды по всему набору 104 устройств могут быть достижимыми посредством модернизации процессора и емкости памяти первичного устройства 202.
[0039] В качестве восьмого примера технического эффекта, который может быть достижимым посредством технологий, представленных в данном документе, использование технологий, представленных в данном документе, может обеспечить пользователю 102 возможность обеспечения представления первичной вычислительной среды 204 на наборе 104 устройств из дополнительных устройств 206, которыми не обязательно владеет пользователь 102, и/или к которым не обязательно регулярно осуществляет доступ первичное устройство 202. Например, общедоступное вычислительное рабочее пространство может содержать набор дополнительных устройств 206, включающих в себя дисплеи, клавиатуры, громкоговорители, и периферийные устройства, такие как принтеры, которые, после взаимодействия с первичным устройством 202 пользователя 102, обеспечивают возможность представления первичной вычислительной среды 204, хранящейся на первичном устройстве 202. Эти и другие технические эффекты могут быть достижимыми посредством различных реализаций технологий, представленных здесь.
D. Примерные варианты осуществления
[0040]
[0041] Фиг. 3 представляет первый примерный вариант осуществления технологий, представленных здесь, показанный в виде примерного способа 300 конфигурирования первичного устройства 202 для представления первичной вычислительной среды 204 для пользователя 102 посредством дополнительных устройств 206 из набора 104 устройств. Примерный способ 300 может быть реализован, например, в виде множества команд, хранящихся в компоненте памяти первичного устройства 202, таком как схема памяти, диск накопителя на жестких дисках, твердотельное запоминающее устройство, или магнитный или оптический диск, и организованных таким образом, чтобы при выполнении на процессоре устройства, они предписывали первичному устройству 202 функционировать согласно технологиям, представленным здесь.
[0042] Примерный способ 300 начинается на этапе 302 и включает в себя исполнение 304 команд на процессоре первичного устройства 202. Конкретно, исполнение 304 команд на процессоре предписывает первичному устройству 202, для соответствующих 306 дополнительных устройств 206 из набора 104 устройств, адаптировать 308 первичную вычислительную среду 204 согласно множеству аппаратных характеристик 108 дополнительного устройства 206, для генерации дополнительной вычислительной среды 208 для дополнительного устройства 206. Исполнение 304 команд на процессоре дополнительно предписывает первичному устройству 202, в ответ на прием 310 запроса на конкретизацию выбранного приложения 112 в пределах в пределах дополнительной вычислительной среды 208 соответствующего 306 дополнительного устройства 206, адаптировать 312 выбранное приложение 112 в пределах дополнительной вычислительной среды 208, согласно аппаратным характеристикам 108 дополнительного устройства 206, и исполнить 314 выбранное приложение 112 от имени дополнительного устройства 206. Исполнение 304 команд на процессоре дополнительно предписывает первичному устройству 202 передать 214 в потоковом режиме представление дополнительной вычислительной среды 208 к соответствующему дополнительному устройству 206. Таким образом, команды предписывают первичному устройству 202 представить первичную вычислительную среду 204 для пользователя 102 посредством дополнительных устройств 206 из набора 104 устройств, и, таким образом, способ завершается на этапе 318.
[0043] Второй примерный вариант осуществления технологий, представленных здесь (не показан) включает в себя примерный способ конфигурирования дополнительного устройства 206 для представления первичной вычислительной среды 204 для пользователя 102, которая была передана первичным устройством 202 из набора 104 устройств. Примерный способ достижения этого эффекта может содержать, например, исполнение, на процессоре дополнительного устройства 206, команд, которые предписывают дополнительному устройству 206 передать множество аппаратных характеристик 108 дополнительного устройства 206 к первичному устройству 202; в ответ на прием запроса на конкретизацию приложения 112 в пределах дополнительной вычислительной среды 208 дополнительного устройства 206, передать запрос к первичному устройству 202; и, в ответ на прием от первичного устройства 202 потока 2014, содержащего представление дополнительной вычислительной среды 208, включающей в себя приложение 112, исполняемое первичным устройством 202 и адаптированное согласно аппаратным характеристикам 108 дополнительного устройства 206, представить дополнительную вычислительную среду 208 для пользователя 102. Таким образом, примерный способ может обеспечить дополнительному устройству 206 возможность представления первичной вычислительной среды 204 для пользователя 102 согласно технологиям, представленным в данном документе.
[0044] Фиг. 4 представляет дополнительные примерные варианты осуществления технологий, представленных здесь, показанные в виде примерных систем, соответствующим образом реализованных на примерном первичном устройстве 402 и примерном дополнительном устройстве 406, которые реализуют по меньшей мере часть технологий, представленных здесь. Примерное первичное устройство 402 является хостом и/или управляет первичной вычислительной средой 204 (например, множеством приложений 112, конфигурациями приложений, драйверами устройств, файлами 114, такими как документы и объекты мультимедиа, учетными записями и полномочиями пользователя, и состояниями приложений). Примерное дополнительное устройство 404 проявляет по меньшей мере одну аппаратную характеристику 108 (например, тип устройства, аппаратные или программные компоненты и/или их возможности, и/или обстоятельства, при которых пользователь 102 взаимодействует с примерным дополнительным устройством 404), и собственную вычислительную среду 432, которую примерное дополнительное устройство 404 обычно представляет в отсутствие приема дополнительной вычислительной среды 208 от примерного первичного устройства 402. Дополнительно, в этом примерном сценарии 400, каждое из примерного первичного устройства 402 и примерного дополнительного устройства 404 включает в себя процессор 406 и память 408, причем примерная система предписывает соответствующему примерному устройству представлять вычислительную среду для пользователя 102 согласно технологиям, представленным здесь. Соответствующие примерные системы могут быть реализованы, например, в виде множества компонентов, соответственно, содержащих множество команд, хранящихся в памяти 408 соответствующих примерных устройств, причем команды соответствующих компонентов, при исполнении на процессоре 406, предписывают примерному устройству функционировать согласно технологиям, представленным здесь. Альтернативно, соответствующие компоненты могут быть реализованы в виде дискретной схемы или аппаратного устройства, или их комбинации, которые функционируют согласно технологиям, представленным здесь.
[0045] Примерное первичное устройство 402 включает в себя первую примерную систему 410, содержащую генератор 412 дополнительной вычислительной среды, который, для примерного дополнительного устройства 404, адаптирует 426 первичную вычислительную среду 204 согласно аппаратным характеристикам 108 примерного дополнительного устройства 404 для генерации дополнительной вычислительной среды 208 для примерного дополнительного устройства 404. Первая примерная система 410 дополнительно содержит средство 414 конкретизации приложения дополнительного устройства, которое, в ответ на прием запроса 428 на конкретизацию выбранного приложения 112 в пределах дополнительной вычислительной среды 208 примерного дополнительного устройства 404, адаптирует выбранное приложение 108 в пределах дополнительной вычислительной среды 208 согласно аппаратным характеристикам 108 примерного дополнительного устройства 404, и исполняет 430 выбранное приложение 112 от имени примерного дополнительного устройства 404. Первая примерная система 410 дополнительно содержит передатчик 416 дополнительной вычислительной среды, который передает 214 в потоковом режиме представление дополнительной вычислительной среды 208 к примерному дополнительному устройству 404.
[0046] Примерное дополнительное устройство 404 включает в себя вторую примерную систему 418, содержащую передатчик 420 аппаратных характеристик, который передает множество аппаратных характеристик 108 примерного дополнительного устройства 404 к примерному первичному устройству 402. Вторая примерная система дополнительно содержит устройство 424 представления дополнительной среды, которое, в ответ на прием от примерного первичного устройства 402 потока 214, содержащего представление дополнительной вычислительной среды 208, которая включает в себя приложение 112, исполняемое примерным первичным устройством 402 и адаптированное согласно аппаратным характеристикам 108 примерного дополнительного устройства 404, представляет дополнительную вычислительную среду 208 для пользователя 102. Дополнительное устройство 404 дополнительно содержит собственное средство 420 конкретизации среды, которое, в ответ на прием запроса на представление дополнительной вычислительной среды 208 на примерном дополнительном устройстве 404, переключает примерное дополнительное устройство 404 с представления собственной вычислительной среды 432 на представление дополнительной вычислительной среды 208. Таким образом, взаимодействие примерного первичного устройства 402 и примерного дополнительного устройства 404, использующих такие примерные системы, может обеспечить возможность совместного представления вычислительной среды для пользователя 102 согласно технологиям, представленным в данном документе.
[0047] Еще один вариант осуществления включает в себя машиночитаемый носитель, содержащий исполняемые процессором команды, выполненные с возможностью применения технологий, представленных здесь. Такие машиночитаемые носители могут включать в себя различные типы сред передачи данных, таких как сигнал, который может распространяться вследствие различных физических явлений (например, электромагнитный сигнал, сигнал звуковой волны, или оптический сигнал) и в различных проводных сценариях (например, через Ethernet или волоконно-оптический кабель) и/или беспроводных сценариях (например, через беспроводную локальную сеть (local area network - WLAN), такую как WiFi, персональную сеть (personal area network - PAN), такую как Bluetooth, или сотовую сеть или радиосеть), и который кодирует множество машиночитаемых команд, которые, при исполнении процессором устройства, предписывают устройству реализовать технологии, представленные здесь. Такие машиночитаемые носители могут также включать в себя (в виде класса технологий, который не включает в себя среды передачи данных) машиночитаемые запоминающие устройства, такие как полупроводниковое устройство памяти (например, полупроводниковое устройство, использующее технологии статической памяти с произвольным доступом (static random access memory - SRAM), динамической памяти с произвольным доступом (dynamic random access memory - DRAM), и/или синхронной динамической памяти с произвольным доступом (synchronous dynamic random access memory - SDRAM), диск накопителя на жестких дисках, устройство флэш-памяти, или магнитный или оптический диск (такой как CD-R, DVD-R, или гибкий диск), кодирующие множество машиночитаемых команд, которые, при исполнении процессором устройства, предписывают устройству реализовать технологии, представленные здесь.
[0048] Примерный машиночитаемый носитель, который может быть разработан таким образом, показан на фиг. 5, причем реализация 500 содержит машиночитаемое запоминающее устройство 502 (например, CD-R, DVD-R, или диск накопителя на жестких дисках), на котором закодированы машиночитаемые данные 504. Эти машиночитаемые данные 504, в свою очередь, содержат множество компьютерных команд 506, которые, при исполнении на процессоре 406 устройства 510, предписывают устройству 510 функционировать согласно принципам, предложенным здесь. В первом таком варианте осуществления, исполняемые процессором команды 506 могут предписывать первичному устройству 202 представлять вычислительную среду для пользователя 102 посредством одного или нескольких дополнительных устройств 206 из набора 104 устройств, например, согласно примерному способу 300 фиг. 3. В третьем таком варианте осуществления, исполняемые процессором команды 506 могут предписывать первичному устройству 202 и/или дополнительному устройству 206 реализовать систему для представления вычислительной среды для пользователя 102, такую как примерные системы, представленные в примерном сценарии 400 фиг. 4. Специалистами в данной области техники могут быть разработаны многие такие машиночитаемые носители, которые выполнены с возможностью функционирования согласно технологиям, представленным в данном документе.
E. Реализации
[0049]
[0050] Технологии, обсуждаемые здесь, могут быть разработаны с реализациями во многих аспектах, и некоторые реализации могут представлять дополнительные преимущества и/или уменьшать недостатки относительно других реализаций этих и других технологий. Кроме того, некоторые реализации могут быть реализованы в комбинации, и некоторые комбинации могут характеризоваться дополнительными преимуществами и/или уменьшенными недостатками вследствие синергетического взаимодействия. Реализации могут быть включены в различные варианты осуществления (например, примерный способ 300 фиг. 3; примерные системы 410, 418 фиг. 4; и примерное запоминающее устройство 502 фиг. 5) для обеспечения индивидуальных и/или синергетических преимуществ в результате таких вариантов осуществления.
E1. Сценарии
[0051]
[0052] Первый аспект, который может изменяться среди вариантов осуществления этих технологий, относится к сценариям, в которых такие технологии могут быть использованы.
[0053] В качестве первой реализации этого первого аспекта, технологии, представленные здесь, могут быть использованы для достижения конфигурации множества устройств 106 из набора 104 устройств, таких как рабочие станции, компактные портативные компьютеры, планшеты, мобильные телефоны, игровые консоли, портативные игровые устройства, портативные или непортативные средства воспроизведения мультимедиа, устройства отображения мультимедиа, такие как телевизоры, бытовые электроприборы, устройства домашней автоматики, вычислительные компоненты, интегрированные с носимым устройством, интегрирующим, например, окуляр или часы, и контролирующие устройства управления и приобретения данных (SCADA).
[0054] В качестве второй реализации этого первого аспекта, технологии, представленные здесь, могут быть использованы с множеством приложений 112, представленных в пределах дополнительных вычислительных сред 208 соответствующих дополнительных устройств 206, таких как офисные приложения для продуктивной работы; приложения, представляющие мультимедиа, такие как средства воспроизведения звуковых данных и видеоизображений; коммуникационные приложения, такие как веб-браузеры, клиенты электронной почты, клиенты чатов, и клиенты технологии передачи голоса с помощью IP-протокола (voice over IP - VoIP); приложения навигации, такие как приложения геолокации, картирования и маршрутизации; утилиты, такие как приложения мониторинга погоды и новостей, которые представляют предупреждения для пользователя 102; и игры. Кроме того, приложения 112 дополнительных вычислительных сред 208 могут включать в себя представление контента посредством одной или нескольких модальностей представления, таких как текст, изображения, «живые» и/или предварительно записанные видеоизображения, звуковые эффекты, музыка, речь, тактильная обратная связь, трехмерное воспроизведение, и интерактивные и/или не-интерактивные пользовательские интерфейсы, а также различные технологии для приема входных данных пользователя от пользователя 102, таких как текстовые входные данные, указывающие входные данные, тактильные входные данные, жестовые входные данные, вербальные входные данные, и входные данные отслеживания взгляда.
[0055] В качестве третьей реализации этого первого аспекта, технологии, представленные здесь, могут быть использованы с множеством архитектур в пределах и/или среди устройств 106 из набора 104 устройств. В качестве первого такого примера, первичное устройство 202 может также быть частью набора 104 устройств (например, мобильным телефоном пользователя 102), и может, таким образом, также функционировать в качестве дополнительного устройства 206. Пользователь 102 может назначать различные дополнительные устройства 206 в качестве первичного устройства 202 в разные моменты времени и/или при разных обстоятельствах. Альтернативно, первичное устройство 202 может быть за пределами набора 104 устройств, и может взаимодействовать с набором 104 устройств для управления дополнительными вычислительными средами 208 для соответствующего дополнительного устройства 108. В качестве второго такого примера, первичное устройство 202 и/или соответствующие дополнительные устройства 206 могут использовать компоненты, которые прямо и физически соединены с каждым таким устройством, такие как проводные дисплеи, громкоговорители, и головные телефоны. В качестве третьего такого примера, первичное устройство 202 и/или соответствующие дополнительные устройства 206 могут использовать один или несколько компонентов, которые являются доступными через беспроводное соединение, такое как радиочастота. В качестве четвертого такого примера, первичное устройство 202 и/или соответствующие дополнительные устройства 206 могут устанавливать связь через персональную, локальную и/или глобальную сеть для взаимодействия согласно технологиям, представленным в данном документе. В качестве пятого такого примера, первичное устройство 202 и/или соответствующие дополнительные устройства 206 могут использовать один или несколько компонентов, которые являются доступными посредством другого устройства из набора 104 устройств, например, в архитектуре клиент/сервер или в одноранговой архитектуре. Кроме того, первичное устройство 202 и/или соответствующие дополнительные устройства 206 из набора 104 устройств могут быть использованы одним пользователем 102 или группой пользователей 102, и/или могут управляться по меньшей мере одним первым пользователем 102 от имени по меньшей мере одного второго пользователя 102. Эти и другие сценарии могут быть подходящими для представления вычислительной среды посредством взаимодействия первичного устройства 202 и соответствующих дополнительных устройств 206 из набора 104 устройств согласно технологиям, представленным здесь.
E2. Генерация и передача дополнительной вычислительной среды
[0056]
[0057] Второй аспект, который может изменяться среди вариантов осуществления технологий, представленных в данном документе, относится к способу, которым первичное устройство 202 передает поток 214, содержащий дополнительную вычислительную среду 208, к соответствующим дополнительным устройствам 206, и которым соответствующее дополнительное устройство 206 представляет дополнительную вычислительную среду 208 для пользователя 102.
[0058] В качестве первой реализации этого второго аспекта, многие типы аппаратных характеристик 108 дополнительного устройства 206 могут быть идентифицированы и использованы для генерации и адаптации дополнительной вычислительной среды 208 и/или приложений 112, исполняемых в этом отношении, для дополнительного устройства 206. В качестве первого такого примера, аппаратные характеристики 108 дополнительного устройства 206 могут включать в себя присутствие и функциональность различных аппаратных компонентов, такие как вычислительная производительность, поддержка параллельной обработки, и архитектуры множеств команд различных процессоров и сопроцессоров; производительность, скорость, и энергозависимость памяти и запоминающего устройства; модальность, чувствительность, и возможности распознавания различных устройств ввода данных, таких как клавиатура, мыши, сенсорные дисплеи, микрофоны, и камеры; размер, разрешение, и реактивность различных устройств визуального вывода данных; громкость и качество различных устройств звукового вывода данных; производительность, задержка, и емкость буферов различных коммуникационных устройств; и характеристики различных других периферийных устройств, таких как принтеры, сканеры, и биометрические датчики. В качестве второго такого примера, аппаратные характеристики 108 дополнительного устройства 206 могут включать в себя вычислительные возможности, которые являются частично или полностью достижимыми посредством программных средств, такие как кодирование и/или декодирование различных форм мультимедиа; шифрование, сжатие, распаковка, дешифрование, и/или верификация различных типов данных; использование различных множеств команд и виртуальных устройств, например, посредством эмуляции аппаратных средств и/или программных средств или доступности различных типов ресурсов синтаксического анализа или перевода языка; обработки различных типов графических запросов, таких как воспроизведение трехмерной графики; и применения различных мер безопасности, таких как аутентификация пользователя. В качестве третьего такого примера, аппаратные характеристики 108 дополнительного устройства 206 могут включать в себя обстоятельства, при которых дополнительное устройство 206 используется, например, доступность электропитания (например, наличие и состояние функционирования линии электропитания, аккумуляторной батареи, и источника бесперебойного питания (uninterruptible power supply - UPS)). В качестве четвертого такого примера, аппаратные характеристики 108 дополнительного устройства 206 могут включать в себя взаимоотношения между дополнительным устройством 108 и другими устройствами, например, доступность устройства хранения данных, подключаемого к сети (network-attached storage - NAS), и роль дополнительного устройства 206 в сети, например, его одноранговые взаимоотношения, взаимоотношения клиент/сервер, и/или взаимоотношения начальник-подчиненный, с другими устройствами. В качестве пятого такого примера, аппаратные характеристики 108 дополнительного устройства 206 могут включать в себя контекст, в котором один или несколько пользователей 102 взаимодействуют с дополнительным устройством 206, например, общедоступную, частную, и/или защищенную природу дополнительного устройства 206, и задачи, выполнение которых конкретный пользователь 102 обычно связывает с дополнительным устройством 206.
[0059] В качестве второй реализации этого второго аспекта, первичное устройство 202 может определить аппаратные характеристики 108 дополнительного устройства 206 множеством способов. В качестве первого такого примера, дополнительное устройство 206 может детектировать различные аппаратные характеристики дополнительного устройства 206, например, посредством запросов и идентификации каждого аппаратного компонента дополнительного устройства 206, и может передавать такую информацию к первичному устройству 202. В качестве второго такого примера, дополнительное устройство 206 может содержать идентификатор дополнительного устройства (например, номер продукта, номер модели, и/или серийный номер), и первичное устройство 202 и/или дополнительное устройство 206 может осуществлять поиск аппаратных характеристик 108 дополнительного устройства 206 в каталоге устройств для идентификации аппаратных характеристик 108 такого дополнительного устройства 206, связанного с идентификатором дополнительного устройства. В качестве третьего такого примера, дополнительное устройство 206 и/или первичное устройство 202 могут оценивать функционирование дополнительного устройства 206 при конкретных условиях функционирования (например, оценивая производительность обработки и/или производительность сети дополнительного устройства 206 при тестовых условиях, или при нормальном использовании). В качестве четвертого такого примера, дополнительное устройство 206 и/или первичное устройство 202 могут предсказать и/или выводить аппаратные характеристики 108 дополнительного устройства 206; например, контекст, в котором пользователь 102 взаимодействует с дополнительным устройством 206, может быть определен посредством вывода, обеспеченного посредством мониторинга задач, которые часто выполняются с использованием дополнительного устройства 206. В качестве пятого такого примера, дополнительное устройство 206 и/или первичное устройство 202 могут принимать информацию об аппаратных характеристиках 108 дополнительного устройства 206 от одного или нескольких пользователей 102. В качестве шестого такого примера, первичное устройство 202 может опрашивать дополнительное устройство 206 для получения такой информации (например, после приема запроса на конкретизацию приложения 112 для дополнительного устройства 206), и/или дополнительное устройство 206 может оперативно передавать информацию к первичному устройству 202 (например, в виде части запроса на присоединение к набору 104 устройств).
[0060] В качестве третьей реализации этого второго аспекта, первичное устройство 402 может генерировать дополнительную вычислительную среду 208, адаптированную на основании первичной вычислительной среды 204, несколькими способами. В качестве первого такого примера, первичное устройство 202 может запомнить первичную вычислительную среду 204 в виде шаблонного изображения, и может сгенерировать дополнительную вычислительную среду 208 в виде клона первичной вычислительной среды 204 с использованием настроек, применяемых ввиду аппаратных характеристик 108 дополнительного устройства 206. В качестве второго такого примера, первичное устройство 202 может активно использовать первичную вычислительную среду 204, и может генерировать, запоминать, и применять преобразование, такое как файл различий, для генерации дополнительной вычислительной среды 208, адаптированной для конкретного дополнительного устройства 206. В качестве третьего такого примера, первичная вычислительная среда 204 может содержать расширенное множество функциональностей, доступных на всех дополнительных устройствах 206 (например, полное множество установочных параметров операционной системы и вычислительной среды, приложений 112, конфигураций приложений, состояний приложений, и учетных записей пользователя), и первичное устройство 202 может выбирать подмножество функциональностей первичной вычислительной среды 204 в качестве дополнительной вычислительной среды 208 конкретного дополнительного устройства 206. Например, конкретное приложение 112 может быть запомнено в пределах первичной вычислительной среды 204 в виде множества вариантов приложения, которые соответствующим образом адаптированы для различных типов дополнительных устройств 206 (например, пользовательский интерфейс формфактора рабочей станции; пользовательский интерфейс большого дисплея; и пользовательские интерфейсы малых дисплеев для различных мобильных устройств), и первичное устройство 202 может выбрать вариант приложения, который является подходящим для представления в пределах дополнительной вычислительной среды 208 каждого дополнительного устройства 206. Такие технологии могут обеспечить возможность повторного использования ресурсов первичного устройства 202 (например, запоминание и использование единственной копии конкретного приложения или библиотеки приложений от имени большого количества дополнительных устройств 206).
[0061] В качестве четвертой реализации этого второго аспекта, первичное устройство 202 может воспроизводить и/или передавать поток 214 дополнительной вычислительной среды 208 к дополнительному устройству 206 несколькими способами. В качестве первого такого примера, первичное устройство 202 может принимать входной поток от дополнительного устройства 206, и/или может передавать в потоковом режиме выходные данные видеоизображений и/или звука к дополнительному устройству 206. В качестве второго такого примера, первичное устройство 202 может передавать к дополнительному устройству 206 поток команд графических примитивов, таких как дифференциальные обновления представляемого в данный момент кадра видеоизображения, для создания следующего кадра видеоизображения в потоке 214. В качестве третьего такого примера, первичное устройство 202 может передавать подчиненное приложение к дополнительному устройству 206, которое может быть исполнено, затем, для воспроизведения части или всей дополнительной вычислительной среды 208 дополнительного устройства 206. В качестве четвертого такого примера, первичное устройство 202 может выполнить многоадресную передачу потока 214 для части или всей дополнительной вычислительной среды 208 к двум или более дополнительным устройствам 206 для последующего представления. В качестве пятого такого примера, первичное устройство 202 может передавать часть дополнительной вычислительной среды 208 для первого дополнительного устройства 206 для ретрансляции ко второму дополнительному устройству 206, которое представляет дополнительную вычислительную среду 208 для пользователя 102.
[0062] В качестве пятой реализации этого второго аспекта, первичное устройство 202 может адаптировать обеспечение дополнительных вычислительных сред 208 для обеспечения адекватного опыта пользователя на соответствующих дополнительных устройствах 206. Например, первичное устройство 202 может иметь адекватные вычислительные ресурсы для обеспечения соответствующего ответного опыта пользователя для конкретного количества дополнительных устройств 206, но при переопределении слишком многих дополнительных устройств 206, первичное устройство 202 может проявить уменьшенную и неудовлетворительную производительность, например, запаздывание и/или прерывания в передаче потока 214 дополнительных вычислительных сред 208 для некоторых дополнительных устройств 206. Различные технологии могут быть использованы для предотвращения уменьшенного и неудовлетворительного качества услуги. В качестве первого такого примера, первичное устройство 202 может оценить максимальное количество дополнительных устройств, дополнительных устройств 206, которыми первичное устройство 202 может управлять параллельно (например, максимальное количество составляет шесть параллельно обслуживаемых дополнительных устройств 206), и может ограничить количество дополнительных устройств, дополнительных устройств 206, содержащих набор 104 устройств, максимальным количеством дополнительных устройств. Такая оценка может включать в себя множество обстоятельств, таких как оценка максимального количества дополнительных устройств для тех дополнительных устройств, которыми первичное устройство 202 способно управлять с минимальным для опыта пользователя качеством дополнительной вычислительной среды 208 для соответствующих дополнительных устройств 206 (например, при обеспечении того, что каждое дополнительное устройство 208 может согласованно принимать поток 214 с частотой не менее, чем 20 кадров в секунду). Такая оценка может передаваться, например, при измерении достижимого качества услуги на дополнительном устройстве 206 при различных обстоятельствах, и может адаптироваться для отражения изменяющихся обстоятельств (например, расширение максимального количества дополнительных устройств при обеспечении большей производительности обработки и/или сети). Многие такие конфигурации при генерации, представлении, и передаче дополнительной вычислительной среды 208 к дополнительным устройствам 206 могут быть использованы согласно технологиям, представленным в данном документе.
E3. Конкретизация и исполнение приложений
[0063]
[0064] Третий аспект, который может изменяться среди вариантов осуществления технологий, представленных здесь, включает в себя способ конкретизации и/или исполнения приложения 112 в пределах дополнительной вычислительной среды 208 дополнительного устройства 206.
[0065] В качестве первой реализации этого третьего аспекта, обеспечен запрос 428 на конкретизацию приложения 112 в пределах дополнительной вычислительной среды 208 согласно пользовательскому выбору, пользователя 102, конкретного дополнительного устройства 206. Например, для конкретного дополнительного устройства 206, первичное устройство 202 может выбрать, из множества приложений первичной вычислительной среды 204, подмножество приложений из приложений 112, подлежащих представлению в пределах дополнительной вычислительной среды 208, для дополнительного устройства 206. Первичное устройство 202 может представить подмножество приложений в пределах дополнительной вычислительной среды 208 для дополнительного устройства 206 (например, в виде списка или меню доступных приложений 112), и может принять выбор приложения 112 из подмножества приложений, которое представлено в пределах дополнительной вычислительной среды 208 (например, при приеме от пользователя 102 пользовательского выбора приложения 112 из меню, представленного в пределах дополнительной вычислительной среды 208 дополнительного устройства 206).
[0066] В качестве второй реализации этого третьего аспекта, запрос 428 может быть принят для конкретизации приложения 112 в пределах первой дополнительной вычислительной среды 208 первого дополнительного устройства, причем запрос 428 принимается от пользователя 102 второго дополнительного устройства 206 из набора 104 устройств. Соответственно, первичное устройство 202 может выполнить запрос 428 посредством конкретизации выбранного приложения 112 в пределах первой дополнительной вычислительной среды 208 первого дополнительного устройства 206.
[0067] В качестве третьей реализации этого третьего аспекта, пользователю 102 набора 104 устройств может быть исходно представлен полный набор приложений 112, которые являются исполняемыми посредством и/или от имени одного или нескольких дополнительных устройств 206 из набора 104 устройств. Когда пользователь 102 обеспечивает выбор выбранного приложения из множества приложений, пользователю 102 может быть, затем, представлен список дополнительных устройств 206, которые способны исполнить приложение 112; и, в ответ на прием выбора выбранного дополнительного устройства 206, первичное устройство 202 первичное устройство 202 может конкретизировать приложение 112 в пределах дополнительной вычислительной среды 208 выбранного дополнительного устройства 206. В качестве другого такого примера, пользователю 102 может быть сначала представлен список дополнительных устройств 206, содержащий набор 104 устройств. В ответ на прием выбора выбранного дополнительного устройства 208, пользователю может быть представлено подмножество приложений из приложений 112, которые являются исполняемыми на выбранном дополнительном устройстве 208; и, в ответ на прием выбора выбранного приложения 112 из подмножества приложений, первичное устройство 202 может конкретизировать выбранное приложение 112 в пределах дополнительной вычислительной среды 208 выбранного дополнительного устройства 206.
[0068] В качестве четвертой реализации этого третьего аспекта, пользователь 102 набора 104 устройств может переопределить выбор подмножества приложений для конкретного дополнительного устройства 206 (например, множество рекомендованных приложений 112 для дополнительного устройства 206). В ответ на прием запроса на представление полного множества приложений первичной вычислительной среды 204 в пределах дополнительной вычислительной среды 208, вместо представления только подмножества приложений, которые были выбраны для дополнительного устройства 206, пользователю 102 может быть представлено полное множество приложений. После приема выбора выбранного приложения 112 для дополнительного устройства 206, которое не находится в пределах подмножества приложений, выбранного для дополнительного устройства 206, первичное устройство 202 может, тем не менее, конкретизировать выбранное приложение 112 в пределах дополнительной вычислительной среды 208 выбранного дополнительного устройства 206.
[0069] В качестве пятой реализации этого третьего аспекта, первичное устройство 202 может автоматически выбрать дополнительное устройство 206 из набора 104 устройств для конкретизации выбранного приложения 112. Например, в ответ на прием, от пользователя 102, запроса 428 на конкретизацию выбранного приложения 112, но, причем, запрос 428 не указывает на выбранное дополнительное устройство 208 из набора 104 устройств, для которого приложение 112 должно быть исполнено в пределах дополнительной вычислительной среды 208, первичное устройство 202 может идентифицировать, из набора 104 устройств, по меньшей мере одно дополнительное устройство-кандидат 206, для которого аппаратные характеристики 108 дополнительного устройства-кандидата 206 являются совместимыми с выбранным приложением 112. Первичное устройство 202 может, затем, выбрать выбранное дополнительное устройство 206 среди дополнительных устройств-кандидатов 206, и конкретизировать выбранное приложение 112 в пределах дополнительной вычислительной среды 208 выбранного дополнительного устройства 206.
[0070] Фиг. 6 представляет иллюстрацию примерных сценариев, характеризующих дополнительные технологии для обеспечения возможности конкретизации приложений 112 в пределах дополнительной вычислительной среды 208 конкретного дополнительного устройства 206. В первом примерном сценарии 600 фиг. 6, пользователю 102 может быть сначала представлен список множеств 602 приложений дополнительных устройств, например, список соответствующих дополнительных устройств 206 и подмножество 604 приложений, которое доступно на каждом дополнительном устройстве 206. После приема от пользователя 102 выбора 606 выбранного приложения 112 в пределах выбранного подмножества 604 приложений конкретного дополнительного устройства 206, первичное устройство 202 может конкретизировать приложение 112 в пределах дополнительной вычислительной среды 208 выбранного дополнительного устройства 206.
[0071] Во втором примерном сценарии 610 фиг. 6, приложение 112, такое как приложение технологии передачи голоса с помощью IP-протокола (VoIP), может быть инициировано событием, таким как входящий вызов 612, которое подлежит представлению для пользователя 102. Первичное устройство 202 может отреагировать на событие посредством, сначала, оценки различных критериев 614 применения приложения, таких как компоненты и возможности, используемые приложением 112 (например, микрофон и громкоговорители); критериев в отношении дополнительного устройства 206, таких как доступность дополнительного устройства 108 для обработки события; и/или критериев в отношении пользователя 102, таких как близость пользователя 102 к дополнительному устройству 206. Оценка 616 аппаратных характеристик может быть выполнена для идентификации дополнительных устройств-кандидатов 206, которые являются совместимыми с критериями 614 применения приложения 112. Например, если пользователь 102 использует множество дополнительных устройств 206, участвуя во встрече, первое дополнительное устройство 206 может иметь микрофон и громкоговоритель, и может находиться вблизи пользователя 102, но может быть недоступным для обработки события (например, дополнительное устройство 206 может содержать компактный портативный компьютер, который пользователь 102 использует для отображения представления во время встречи, или телефон, который находится в кармане пользователя, но для которого пользователь 102 активировал опцию «не беспокоить»). Второе дополнительное устройство 206 может также содержать микрофон и громкоговорители, и может быть доступным для обработки события, но может не находиться вблизи пользователя 102 (например, дополнительное устройство 206 может содержать рабочую станцию пользователя, которая может быть бездействующей, но также может находиться в офисе пользователя, в то время как пользователь 102 находится вне офиса на встрече). Третье дополнительное устройство 206 может иметь аппаратные характеристики 108, соответствующие критериям 614 применения (например, наушник, надетый пользователем 102 во время встречи, который имеет заданные компоненты, находится вблизи пользователя 102 и является доступным для представления входящего вызова 612). Первичное устройство 202 может, таким образом, выполнить выбор 618 третьего дополнительного устройства 206 для события (в качестве единственного дополнительного устройства-кандидата 206 из набора 104 устройств), и может маршрутизировать входящий вызов 612 к третьему дополнительному устройству для представления для пользователя 102.
[0072] В качестве шестой реализации этого третьего аспекта, первичное устройство 202 может локально исполнить полный объем приложения 112 для дополнительной вычислительной среды 208 конкретного дополнительного устройства 206, и может передавать только изображения пользовательского интерфейса к дополнительному устройству 206. Альтернативно, первичное устройство 202 может вводить в действие некоторые компоненты приложения 112 для использования дополнительным устройством 208. Например, первичное устройство 202 может содержать первый графический сопроцессор, а конкретное дополнительное устройство 208 может содержать второй графический сопроцессор. Для исполнения приложения 112 от имени дополнительного устройства 208, первичное устройство 202 может либо воспроизводить графику для приложения 112 на первом графическом сопроцессоре; может включать в поток 214 команды, подлежащие доставке ко второму графическому сопроцессору дополнительного устройства 208 для включения воспроизведения такой графики в приложение 112; либо может использовать комбинацию этого, причем часть воспроизведения графики выполняется на первом графическом сопроцессоре, а остальная часть выполняется на втором графическом сопроцессоре. Такие решения могут быть определены, например, на основе сравнения возможностей каждого такого графического сопроцессора (например, первичное устройство 202 может сбросить некоторую обработку, если его графический сопроцессор интенсивно используется другими приложениями 112), и/или сравнения эффективности каждого процесса (например, сравнение достижимой производительности сети при отправке потока 214 графических команд по сравнению с достижимой производительностью сети при отправке частично или полностью воспроизведенного видеоизображения). Другие такие реализации в распределении исполнения приложений 112 могут включать в себя, например, конфигурирование первичного устройства 202 для приема необработанных входных данных устройства от дополнительного устройства 206 (например, перемещение мыши) для применения в дополнительной вычислительной среде 208, или конфигурирование дополнительного устройства 206 для выполнения некоторого начального анализа входных данных пользователя и отправка экстраполированных результатов к первичному устройству 202 (например, сообщения событий, связанных с указателем) для применения в дополнительной вычислительной среде 208; и обеспечение некоторых подробностей более высокого уровня пользовательского интерфейса приложения 112, которые должны быть воспроизведены дополнительным устройством 208 (например, отправка документа расширяемого языка разметки приложений (Extensible Application Markup Language - XAML) к дополнительному устройству 208, и команды для воспроизведения пользовательского интерфейса, описанного в этом отношении, в пределах дополнительной вычислительной среды 208).
[0073] В качестве седьмой реализации этого третьего аспекта, приложение 112, подлежащее конкретизации в пределах набора 104 устройств, может быть распределено по двум или более дополнительным устройствам 206. Например, согласно аппаратным характеристикам 108 первого дополнительного устройства 206 и второго дополнительного устройства 206, критерии 612 применения приложения 112 могут быть разделены между первой частью приложения и второй частью приложения. Например, приложение 112 видеочата может быть разделено между первым дополнительным устройством 206, характеризующимся камерой и микрофоном, где могут быть захвачены входные данные пользователя 102 для сеанса видеочата, и вторым дополнительным устройством 206, характеризующимся дисплеем и громкоговорителями, где пользовательский интерфейс и выходные данные сеанса видеочата могут быть представлены для пользователя 102. Первая часть приложения может быть конкретизирована в пределах первой дополнительной вычислительной среды 208 первого дополнительного устройства 206 (и поток 214, передаваемый к первому дополнительному устройству 206, может включать в себя первую часть приложения и не включать в себя вторую часть приложения), а вторая часть приложения может быть конкретизирована в пределах второй дополнительной вычислительной среды 208 второго дополнительного устройства 206. Поскольку первичное устройство 202 исполняет приложение 112, первичное устройство 202 может координировать разделение. Соответственно, разделение может происходить даже без информирования приложения 112, и/или даже если приложение 112, конкретно, не выполнено с возможностью обеспечения или поддержки разделения.
[0074] В качестве восьмого изменения этого третьего аспекта, первичное устройство 202 может принимать запрос на прием входных данных пользователя от имени приложения 112, исполняющегося в пределах дополнительной вычислительной среды 208 первого дополнительного устройства 206, и может выполнить такой запрос посредством установления связи приложения 112 с компонентом ввода данных второго дополнительного устройства 206. Например, первичное устройство 202 может принимать такой запрос от приложения 112 (например, запрос на прием конкретного типа входных данных пользователя, который не поддерживается дополнительным устройством 206, для которого исполняется приложение 112), и/или от пользователя 102 (например, запрос от пользователя 102 на установление связи компонента ввода данных первого дополнительного устройства 108 с приложением 112, исполняющимся в пределах второй дополнительной вычислительной среды 208 второго дополнительного устройства 206). При выполнении запроса, первичное устройство 202 может идентифицировать, среди дополнительных устройств 206 из набора 104 устройств, выбранное дополнительное устройство 206, которое имеет аппаратные характеристики 108, которые являются совместимыми с запросом. Первичное устройство 202 может, затем, установить связь входных данных пользователя выбранного дополнительного устройства 206 с приложением 112. Такая идентификация и установление связи могут происходить и достигаться, даже если приложение 112 исполняется в пределах дополнительной вычислительной среды 208 первого дополнительного устройства 206, и входные данные пользователя связаны с компонентом ввода данных второго дополнительного устройства 206.
[0075] Фиг. 7 представляет иллюстрацию примерного сценария 700, характеризующего одно такое разделение, при котором запрос 428 приложения выполняется посредством разделения выбранного приложения 112 по множественным дополнительным устройствам 206. В этом примерном сценарии 700, первичное устройство 202 принимает запрос 428 на конкретизацию конкретного приложения 112, которое может использовать по меньшей мере два источника входных данных 702 пользователя (например, два указывающих устройства, или клавиатуру и мышь, или камеру и микрофон). Первичное устройство 202 может определить, что первое дополнительное устройство 206 способно обеспечить первый источник входных данных 702 пользователя, и что второе дополнительное устройство 206 способно обеспечить второй источник входных данных 702 пользователя, а также представить пользовательский интерфейс приложения для пользователя 102. Соответственно, первичное устройство 202 может конкретизировать приложение 112 и исполнить приложение 112 локально, но может ввести в действие, в пределах первой дополнительной вычислительной среды 208 первого дополнительного устройства 206, первый источник входных данных 702 пользователя (например, резервируя использование микрофона, который расположен вблизи пользователя 102), и, в пределах второй дополнительной вычислительной среды 208 второго дополнительного устройства 206, второй источник входных данных 702 пользователя (например, резервируя использование камеры для захвата изображений пользователя 102, а также дисплея, чтобы представлять на нем пользовательский интерфейс приложения 112). Первичное устройство 202 может принимать такие входные данные 702 пользователя от каждого дополнительного устройства 206, может передавать такие входные данные 702 пользователя к приложению 112, и может передавать пользовательский интерфейс приложения, приложения 112, в пределах дополнительной вычислительной среды 208 второго дополнительного устройства 206.
[0076] Фиг. 8 представляет иллюстрацию примерного сценария 800, характеризующего другое такое применение установления связи входных данных среди дополнительных устройств 206 из набора 104 устройств. В этом примерном сценарии 800, соответствующие дополнительные устройства 206 могут иметь пространство 804 среды, например, среду рабочей области или область представления, в пределах которой могут быть представлены соответствующие дополнительные вычислительные среды 208 и пользовательские интерфейсы приложений 112. Кроме того, первичное устройство 202 может расположить такие пространства 804 среды в компоновке 802, например, пространственном расположении, ориентации, и/или взаимоотношении пространств 804 ввода данных друг относительно друга. Кроме того, первое дополнительное устройство 206 может содержать компонент ввода данных, а также пользовательский интерфейс приложения первого приложения 112, которое исполняется первичным устройством 202 от имени первого дополнительного устройства 206; а второе дополнительное устройство 206 может содержать пользовательский интерфейс приложения второго приложения 112, которое исполняется первичным устройством 202 от имени второго дополнительного устройства 206. Пользователь 102 может управлять компонентом ввода данных первого дополнительного устройства 206 (например, обеспечивая перемещение указателя посредством мыши, сенсорной панели, сенсорного дисплея, жестов, и/или отслеживания взгляда), и первичное устройство 202 может сначала воспроизвести указатель 808 в пределах пространства 804 среды первой дополнительной вычислительной среды 208 первого дополнительного устройства 206. Однако, первое пространство 804 среды первой дополнительной вычислительной среды 208 может быть отделенным от второго пространства 804 среды второй дополнительной вычислительной среды 208 посредством границы 806 компоновки, например, посредством края каждого пространства 804 среды, которое является физически и/или концептуально смежным с другим пространством 804 среды в пределах компоновки 802. Пользователь 102 может отправить запрос на переход входных данных пользователя компонента ввода данных первого дополнительного устройства 206 из первого пространства 804 среды во второе пространство 804 среды, например, посредством инициирования перехода 810 указателя 808 через границу 806 компоновки из первого пространства 804 среды во второе пространство 804 среды. В ответ на переход 810 указателя 808 через границу 806 компоновки, первичное устройство 202 может установить связь компонента ввода данных первого дополнительного устройства 206 с пользовательским интерфейсом приложения 112, исполняющегося в пределах дополнительной вычислительной среды 208 второго устройства 206.
[0077] В качестве девятой реализации этого третьего аспекта, первая дополнительная вычислительная среда 208 может дополнительно содержать вариант первого приложения 112, а вторая дополнительная вычислительная среда 208 может содержать вариант второго приложения 112. Первичное устройство 202 может обеспечить возможность установления связи между первым приложением 112, исполняющимся в пределах первой дополнительной вычислительной среды 208, и вторым приложением 112, исполняющимся в пределах первой дополнительной вычислительной среды 208. Такое взаимодействие может быть легко достижимым, например, посредством межпроцессной связи в пределах первичного устройства 202, исполняющего оба приложения 112, в отличие от приложений 112, исполняющихся на разных дополнительных устройствах 206, которые могут устанавливать взаимную связь посредством более сложной модели связи сети. Многие такие технологии могут быть использованы для конкретизации и исполнения различных приложений 112 в пределах дополнительных вычислительных сред 208 соответствующего дополнительного устройства 206 согласно технологиям, представленным здесь.
E4. Адаптация дополнительной вычислительной среды и приложений для дополнительного устройства
[0078]
[0079] Четвертый аспект, который может изменяться среди вариантов осуществления технологий, представленных здесь, включает в себя конфигурацию первичного устройства 202 для адаптации дополнительной вычислительной среды 208 и/или исполнение приложения 112 в этом отношении для конкретного дополнительного устройства 206.
[0080] В качестве первой реализации этого четвертого аспекта, адаптация дополнительной вычислительной среды 208 может включать в себя множество установочных параметров и характеристик операционной системы. В качестве первого такого примера, адаптация может включать в себя установочные параметры пользовательского интерфейса, такие как визуальный стиль, цветовая схема, стили и размеры шрифтов и пиктограмм, и модальности ввода данных дополнительного устройства 206. В качестве второго такого примера, адаптация может включать в себя множество 210 приложений из приложений 112, которые должны быть представлены для пользователя 102 в пределах дополнительной вычислительной среды 208 конкретного дополнительного устройства 206 (например, первое множество приложений 112, которые связаны с конкретным контекстом пользователя, в котором пользователь 102 взаимодействует с дополнительным устройством 206). В качестве третьего такого примера, такая адаптация может также включать в себя конфигурации приложений и/или режимы приложений 112, представленных в пределах дополнительной вычислительной среды 208 (например, определение того, что пользователь 102 использует приложения 112 на первом дополнительном устройстве 206 для взаимодействия с объектами мультимедиа в режиме создания или редактирования, но взаимодействует с теми же объектами мультимедиа второе дополнительное устройство 206 в режиме просмотра или считывания). В качестве четвертого такого примера, адаптация может включать в себя выбор множества или подмножества файлов 114 первичной вычислительной среды 204, которые обеспечены в пределах дополнительной вычислительной среды 208, таких как документы и объекты мультимедиа (например, ограничение взаимодействия пользователя 102 только подмножеством доступных документов и/или объектов мультимедиа). В качестве пятого такого примера, адаптация может включать в себя выбор учетных записей пользователя, обеспеченных в пределах первичной вычислительной среды 204, которые должны быть доступными в пределах дополнительной вычислительной среды 208 конкретного дополнительного устройства 206 (например, назначение пользователей 102 из множества пользователей, которые уполномочены использовать конкретное дополнительное устройство 206). В качестве шестого такого примера, адаптация может включать в себя списки закладок (например, определение того, что пользователь 102 часто посещает первое множество вебсайтов при взаимодействии с первым дополнительным устройством 206, и часто посещает второе множество вебсайтов при взаимодействии со вторым дополнительным устройством 206).
[0081] В качестве второй реализации этого четвертого аспекта, адаптация пользовательских интерфейсов различных приложений 112, исполняющихся в пределах дополнительной вычислительной среды 208 конкретного дополнительного устройства 206, может использовать, или не использовать, различные аппаратные характеристики 108 соответствующих дополнительных устройств 206, или даже других дополнительных устройств 206 из набора 104 устройств. Например, каждое из первого дополнительного устройства 206 и второго дополнительного устройства 206 может характеризоваться множеством громкоговорителей для воспроизведения звуковых данных, но первичное устройство 202 может определить, что первое дополнительное устройство 206 используется в профессиональном контексте (например, при представлении презентации для клиента), во время которого прерывание посредством звуковых предупреждений может быть нежелательным, и что второе дополнительное устройство 206 используется в несистематическом контексте пользователя (например, дома), в котором пользователь 102 является восприимчивым к звуковым предупреждениям. Первичное устройство 202 может, таким образом, адаптировать дополнительную вычислительную среду 208, передаваемую к первому дополнительному устройству 206, для воздержания от использования громкоговорителей, и может адаптировать дополнительную вычислительную среду 208, передаваемую ко второму дополнительному устройству 206, для частого использования громкоговорителей для представления звуковых предупреждений для пользователя 102.
[0082] В качестве третьей реализации этого четвертого аспекта, приложение 112, исполняющееся в пределах дополнительных вычислительных сред 208 различных дополнительных устройств 206, может быть выполнено с возможностью взаимодействия с пользователем 102 посредством различных модальностей представления. Например, пользователь 102 может предпочитать взаимодействие с первым дополнительным устройством 206 (например, рабочей станцией) с использованием полного визуального интерфейса; со вторым дополнительным устройством 206 (например, мобильным телефоном) с использованием уплотненного визуального интерфейса; и с третьим дополнительным устройством 206 (например, компьютером транспортного средства) с использованием только звукового интерфейса. Дополнительные вычислительные среды 208 соответствующих дополнительных устройств 206, и приложения 112, исполняющиеся в этом отношении, могут быть, таким образом, выполнены с возможностью использования соответствующих модальностей представления на каждом дополнительном устройстве 206 (например, представление полной версии текста статьи с полными изображениями или видеоизображениями на первом дополнительном устройстве 206; краткой версии текста статьи, с удаленными изображениями и видеоизображениями, на втором дополнительном устройстве 206; и звуковой копии статьи на третьем дополнительном устройстве 206).
[0083] В качестве четвертой реализации этого четвертого аспекта, дополнительные вычислительные среды 208 и приложения 112, исполняющиеся в этом отношении, могут быть выполнены с возможностью отражения присутствия или отсутствия, идентификационной информации, и/или обстоятельств других лиц, с которыми пользователь 102 взаимодействует при использовании соответствующих дополнительных устройств 206. А именно, первичное устройство 202 может определить, параллельно и в связи с пользовательским взаимодействием пользователя 102 с дополнительным устройством 206, индивидуальное взаимодействие между пользователем 102 и конкретным человеком (например, может определить, что пользователь 102 часто играет в игры с другим человеком на устройстве домашнего кинотеатра). Первичное устройство 202 может, таким образом, обеспечить, в пределах дополнительной вычислительной среды 208, представленной на дополнительном устройстве 206, приложение 112, которое связано с индивидуальным взаимодействием между пользователем 102 и этим человеком (например, представление на дополнительном устройстве 206 выбора игр для двух игроков, в которые пользователь 102 и этот человек могут поиграть вместе). В качестве другого такого примера, дополнительная вычислительная среда 208 дополнительного устройства 206 может быть настроена для отражения общедоступной и/или частной природы использования дополнительного устройства 206 пользователем 102; например, частным образом используемое дополнительное устройство 206 может представлять персональный контент пользователя 102, такой как незашифрованные версии пароля пользователя и персональные фотоизображения, в то время как используемое для общего доступа дополнительное устройство 206 может затруднять распознавание пароля пользователя и может воздерживаться от представления персонального контента.
[0084] В качестве пятой реализации этого четвертого аспекта, первичное устройство 202 может обеспечить адаптацию различных установочных параметров и характеристик дополнительной вычислительной среды 208 множеством способов. Например, первичное устройство 202 может передавать приложение 112 к дополнительному устройству 206 для исполнения с использованием конфигурации приложения, которая является подходящей для контекста 108 пользователя пользовательского взаимодействия пользователя 102 с дополнительным устройством 206. В качестве одного такого примера, для соответствующих приложений 112, которые должны быть представлены в пределах дополнительной вычислительной среды 208 на соответствующих дополнительных устройствах 206, первичное устройство 202 может запомнить по меньшей мере два варианта применения приложения 112, причем соответствующие варианты применений связаны с выбранным контекстом 108 пользователя пользовательского взаимодействия пользователя 102 с дополнительным устройством 206. Таким образом, первичное устройство 202 может адаптировать элементы 422 приложения 112 в пределах дополнительной вычислительной среды 208 для конкретного дополнительного устройства 206, посредством идентификации, среди по меньшей мере двух вариантов применения, выбранного варианта применения, который связан с контекстом 108 пользователя пользовательского взаимодействия пользователя с дополнительным устройством 206, и передачи, к дополнительному устройству 206, дополнительной вычислительной среды 208, содержащей выбранный вариант применения соответствующих приложений 112, представленных в дополнительной вычислительной среде 208 дополнительного устройства 206.
[0085] В качестве шестой реализации этого четвертого аспекта, первичное устройство 202 может адаптировать архитектуру дополнительной вычислительной среды 208 и/или приложений 112, исполняемых в этом отношении, ввиду различных условий. Например, первичное устройство 202 может сначала выбрать первую архитектуру для приложения 112 или часть дополнительной вычислительной среды 208 (например, исполнение полного объема приложения 112 на первичном устройстве 202, и введение в действие только изображений пользовательского интерфейса на дополнительном устройстве 206), но может позже определить, что вторая архитектура может обеспечить более высокое качество представления дополнительной вычислительной среды 208 (например, при назначении некоторой обработки для дополнительного устройства 206 для уменьшения задержки или сетевой транспортировки).
[0086] В качестве седьмой реализации этого четвертого аспекта, первичное устройство 202 может разрешить пользователю 102 реконфигурировать первое дополнительное устройство 206 для представления вида дополнительной вычислительной среды 208 второго дополнительного устройства 206 (например, предписывая первому дополнительному устройству 206 исполнить роль второго дополнительного устройства 206). Например, в ответ на прием запроса на замену второй дополнительной вычислительной средой 208 первой дополнительной вычислительной среды 208 первого дополнительного устройства 206, первичное устройство 202 может представить вторую дополнительную вычислительную среду 208 на первом дополнительном устройстве 206 вместо первой дополнительной вычислительной среды 208. Такое представление может быть обеспечено, например, посредством многоадресной передачи одного и того же потока 214 для второй дополнительной вычислительной среды 208 к первому дополнительному устройству 206, а также второму дополнительному устройству 206, и/или может быть реализовано временно или постоянно.
[0087] В качестве восьмой реализации этого четвертого аспекта, первичное устройство 202 может перемещать приложения 112 среди дополнительных вычислительных сред 208 соответствующих дополнительных устройств 206. В качестве первого такого примера, в ответ на детектирование добавления третьего дополнительного устройства 206 к набору 104 устройств, первичное устройство 202 может повторно разделить по меньшей мере одно приложение 112, которое в данный момент исполняется, частично или полностью в пределах первой дополнительной вычислительной среды 208 первого дополнительного устройства 206, для включения третьего дополнительного устройства 206 (например, посредством отделения дополнительной части первой части приложения, приложения 112, исходно исполняющегося на первом дополнительном устройстве 206, для третьего дополнительного устройства 206, и/или посредством полной передачи части приложения от первого дополнительного устройства 206 к добавленному третьему дополнительному устройству 206, представляющему множество аппаратных характеристик 108, которое является более подходящим для приложения 112). В качестве второго такого примера, в ответ на детектирование удаления дополнительного устройства 206 из набора 104 устройств (например, вследствие временного разъединения, или постоянного исключения дополнительного устройства 206 из набора 104 устройств), первичное устройство 202 может переместить по меньшей мере часть приложения 112, представленного в пределах первой дополнительной вычислительной среды 208 первого дополнительного устройства 206, во вторую дополнительную вычислительную среду 208 второго дополнительного устройства 206. Такие приложения 112 могут быть позже переданы обратно к первому дополнительному устройству 206, если будет повторно установлено соединение, которое обеспечит вхождение первого дополнительного устройства 206 в набор 104 устройств.
[0088] Фиг. 9 представляет иллюстрацию примерного сценария 900, характеризующего одно такое использование реализаций технологий, представленных здесь. В этом примерном сценарии 900, первичное устройство исполняет приложение 112 видеочата посредством набора 104 устройств, который исходно содержит три дополнительных устройства 206, и исходно представляет интерфейс 902 видеочата на первом дополнительном устройстве 206, характеризующемся характеристиками 108 дополнительного устройства, которые являются адекватными для приложения 112. Однако, удаление 904 первого дополнительного устройства 206 из набора 104 устройств (например, вследствие отсоединения от локальной сети) может обусловить попытку передачи первичным устройством 202 интерфейса 902 видеочата, например, для продолжения текущего сеанса видеочата без прерывания. Таким образом, первичное устройство 202 может проверить характеристики 108 дополнительных устройств других дополнительных устройств 206 из набора 104 устройств, и, после определения того, что второе дополнительное устройство 206 является неподходящим (например, поскольку аппаратные характеристики 108 не включают в себя камеру) и что третье дополнительное устройство 206 является подходящим (например, поскольку аппаратные характеристики 108 включают в себя камеру), может автоматически осуществить перевод 906 интерфейса 902 видеочата из первой дополнительной вычислительной среды 208 в третью дополнительную вычислительную среду 208 третьего дополнительного устройства 206. Дополнительно, когда четвертое дополнительное устройство 206 позже присоединяется к набору 104 устройств, первичное устройство 202 может проверить аппаратные характеристики 108 четвертого дополнительного устройства 206, и может определить, что аппаратные характеристики 108 обеспечивают приложение 112 более полно, чем аппаратные характеристики 108 третьего дополнительного устройства 206 (например, четвертое дополнительное устройство 206 может обеспечить камеру с высоким разрешением, которая обеспечивает более высокое качество интерфейса 902 видеочата, чем камера третьего дополнительного устройства 206). Соответственно, первичное устройство 202 может инициировать вторую передачу 910 интерфейса 902 видеочата приложения 112 из третьей дополнительной вычислительной среды 208 в четвертую дополнительную вычислительную среду 208 четвертого дополнительного устройства 206 (необязательно, посредством, сначала, представления рекомендации для пользователя 102, и ожидания подтверждения приемлемости второй передачи 910 перед инициированием такой передачи). Многие такие технологии могут быть использованы для разделения и/или адаптации исполнения приложений 112 среди дополнительных устройств 206 из набора 104 устройств согласно технологиям, представленным в данном документе.
F. Вычисление среды
[0089]
[0090] Фиг. 10 и нижеследующее обсуждение обеспечивают краткое, общее описание подходящей вычислительной среды для реализации вариантов осуществления одного или нескольких условий, предложенных здесь. Операционная среда фиг. 10 является только одним примером подходящей операционной среды и не предназначена для предложения каких-либо ограничений в отношении объема использования или функциональности операционной среды. Примерные вычислительные устройства включают в себя, но не ограничены этим, персональные компьютеры, серверные компьютеры, ручные или портативные устройства, мобильные устройства (такие как мобильные телефоны, персональные цифровые секретари (Personal Digital Assistant - PDA), устройства воспроизведения мультимедиа, и т.п.), многопроцессорные системы, потребительскую электронику, миникомпьютеры, мэйнфреймы, распределенные вычислительные среды, которые включают в себя любые из вышеупомянутых систем или устройств, и т.п.
[0091] Хотя это и не требуется, варианты осуществления описаны в общем контексте «машиночитаемых команд», исполняемых одним или несколькими вычислительными устройствами. Машиночитаемые команды могут быть распределены посредством машиночитаемых носителей (обсуждаемых ниже). Машиночитаемые команды могут быть реализованы в виде программных модулей, таких как функции, объекты, интерфейсы прикладного программирования (Application Programming Interface - API), структуры данных, и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Обычно, функциональность машиночитаемых команд может быть объединена или распределена по желанию в различных средах.
[0092] Фиг. 10 иллюстрирует пример системы 1000, содержащей вычислительное устройство 1002, выполненное с возможностью реализации одного или нескольких вариантов осуществления, обеспеченных здесь. В одной конфигурации, вычислительное устройство 1002 включает в себя по меньшей мере один обрабатывающий блок 1006 и память 1008. В зависимости от точной конфигурации и типа вычислительного устройства, память 1008 может быть энергозависимой (такой как RAM, например), энергонезависимой (такой как ROM, флэш-память, и т.д., например) или некоторой их комбинацией. Эта конфигурация показана на фиг. 10 пунктирной линией 1004.
[0093] В других вариантах осуществления, устройство 1002 может включать в себя дополнительные признаки и/или функциональности. Например, устройство 1002 может также включать в себя дополнительное запоминающее устройство (например, съемное и/или несъемное), включающее в себя, но не ограниченное этим, магнитное запоминающее устройство, оптическое запоминающее устройство, и т.п. Такое дополнительное запоминающее устройство показано на фиг. 10 посредством запоминающего устройства 1010. В одном варианте осуществления, машиночитаемые команды для реализации одного или нескольких вариантов осуществления, обеспеченных здесь, могут находиться в запоминающем устройстве 1010. Запоминающее устройство 1010 может также запоминать другие машиночитаемые команды для реализации операционной системы, прикладной программы, и т.п. Машиночитаемые команды могут быть загружены в память 1008 для их исполнения обрабатывающим блоком 1006, например.
[0094] Термин «машиночитаемые носители», используемый здесь, включает в себя машиночитаемые запоминающие устройства, которые не включают в себя другие формы машиночитаемых носителей, содержащих среды передачи данных, такие как сигналы. Такие машиночитаемые запоминающие устройства могут быть энергозависимыми и/или энергонезависимыми, съемными и/или несъемными, и могут включать в себя различные типы физических устройств, запоминающих машиночитаемые команды или другие данные. Память 1008 и запоминающее устройство 1010 являются примерами машиночитаемых носителей. Машиночитаемые запоминающие устройства включают в себя, но не ограничены этим, RAM, ROM, EEPROM, флэш-память или другие технологии памяти, CD-ROM, универсальные цифровые диски (Digital Versatile Disk - DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитную пленку, магнитные дисковые запоминающие устройства или другие магнитные запоминающие устройства.
[0095] Устройство 1002 может также включать в себя коммуникационное соединение (соединения) 1016, которое позволяет устройству 1002 устанавливать связь с другими устройствами. Коммуникационное соединение (соединения) 1016 может включать в себя, но не ограничено этим, модем, сетевую интерфейсную карту (Network Interface Card - NIC), интегрированный сетевой интерфейс, радиочастотный передатчик/приемник, инфракрасный порт, USB-соединение, или другие интерфейсы для соединения вычислительного устройства 1002 с другими вычислительными устройствами. Коммуникационное соединение (соединения) 1016 может включать в себя проводное соединение или беспроводное соединение. Коммуникационное соединение (соединения) 1016 может передавать и/или принимать среды передачи данных.
[0096] Термин «машиночитаемые носители» может включать в себя среды передачи данных. Среды передачи данных обычно содержат машиночитаемые команды или другие данные в «модулированном информационном сигнале», таком как несущая волна или другой механизм транспортировки, и включают в себя любые среды доставки информации. Термин «модулированный информационный сигнал» может включать в себя сигнал, одна или несколько характеристик которого установлена или изменена таким образом, чтобы в сигнале была закодирована информация.
[0097] Устройство 1002 может включать в себя устройство (устройства) 1014 ввода данных, такое как клавиатура, мышь, перо, устройство ввода речи, сенсорное устройство ввода данных, инфракрасные камеры, устройства ввода видеоизображений, и/или любое другое устройство ввода данных. Устройство (устройства) 1012 вывода данных, такое как один или несколько дисплеев, громкоговорителей, принтеров, и/или любых других устройств вывода данных, может быть также включено в устройство 1002. Устройство (устройства) 1014 ввода данных и устройство (устройства) 1012 вывода данных могут быть соединены с устройством 1002 посредством проводного соединения, беспроводного соединения, или любой их комбинации. В одном варианте осуществления, устройство ввода данных или устройство вывода данных из другого вычислительного устройства может быть использовано в качестве устройства (устройств) 1014 ввода данных или устройства (устройств) 1012 вывода данных для вычислительного устройства 1002.
[0098] Компоненты вычислительного устройства 1002 могут быть соединены посредством различных межсоединений, таких как шина. Такие межсоединения могут включать в себя межсоединение периферийных компонентов (Peripheral Component Interconnect - PCI), такое как PCI Express, универсальную последовательную шину (Universal Serial Bus - USB), Firewire (IEEE 1394), оптическую шинную структуру, и т.п. В другом варианте осуществления, компоненты вычислительного устройства 1002 могут быть взаимно соединены посредством сети. Например, память 1008 может состоять из множественных физических блоков памяти, расположенных в разных физических местоположениях, взаимно соединенных посредством сети.
[0099] Специалистам в данной области техники следует понимать, что запоминающие устройства, используемые для запоминания машиночитаемых команд, могут быть распределены по сети. Например, вычислительное устройство 1020, доступное через сеть 1018, может запоминать машиночитаемые команды для реализации одного или нескольких вариантов осуществления, обеспеченных здесь. Вычислительное устройство 1002 может осуществлять доступ к вычислительному устройству 1020 и загружать часть или все машиночитаемые команды для исполнения. Альтернативно, вычислительное устройство 1002 может загружать элементы машиночитаемых команд, при необходимости, или некоторые команды могут быть исполнены в вычислительном устройстве 1002, а некоторые - в вычислительном устройстве 1020.
G. Использование терминов
[00100]
[00101] Хотя объект изобретения был описан на языке, специфическом для структурных признаков и/или методологических действий, следует понимать, что объект изобретения, определяемый в прилагаемой формуле изобретения, не обязательно ограничен конкретными признаками или действиями, описанными выше. Напротив, конкретные признаки и действия, описанные выше, раскрыты в качестве иллюстративных форм реализации формулы изобретения.
[00102] При использовании в этой заявке, термины «компонент», «модуль», «система», «интерфейс», и т.п., в общем, как предполагается, относятся к связанному с компьютерами объекту, либо к аппаратному средству, комбинации аппаратного средства и программного средства, программному средству, либо к исполняемому программному средству. Например, компонент может быть, но не ограничен этим, процессом, выполняемым на процессоре, процессором, объектом, выполняемым файлом, потоком исполнения, программой, и/или компьютером. В качестве иллюстрации, как приложение, выполняющееся на контроллере, так и контроллер может быть компонентом. Один или несколько компонентов могут находиться в пределах процесса и/или потока исполнения, и компонент может быть расположен на одном компьютере и/или распределен между двумя или более компьютерами.
[00103] Кроме того, заявленный объект изобретения может быть реализован в виде способа, устройства, или изделия, с использованием стандартных технологий программирования и/или проектирования для создания программных средств, аппаратно-программных средств, аппаратных средств, или любой их комбинации для управления компьютером для реализации раскрытого объекта изобретения. Термин «изделие», используемый здесь, как предполагается, включает в себя компьютерную программу, доступную из любого машиночитаемого устройства, носителя, или мультимедиа. Конечно, специалистам в данной области техники будет понятно, что многие модификации могут быть сделаны для этой конфигурации, не выходя за рамки объема или сущности заявленного объекта изобретения.
[00104] Здесь обеспечены различные операции вариантов осуществления. В одном варианте осуществления, одна или несколько описанных операций могут образовывать машиночитаемые команды, хранящиеся на одном или нескольких машиночитаемых носителях, которые, при исполнении вычислительным устройством, будут предписывать вычислительному устройству выполнять описанные операции. Не следует толковать порядок, в котором описаны некоторые или все операции, таким образом, чтобы это подразумевало, что эти операции обязательно зависят от порядка. Альтернативное упорядочение будет понятно специалистам в данной области техники, для которых полезно это описание. Дополнительно, следует понимать, что не все операции обязательно присутствуют в каждом варианте осуществления, обеспеченном здесь.
[00105] Любой аспект или конструкция, описанные здесь в качестве «примеров», не должны обязательно толковаться как более предпочтительные, чем другие аспекты или конструкции. Напротив, использование слова «пример», как предполагается, представляет один возможный аспект и/или реализацию, которые могут относиться к технологиям, представленным здесь. Такие примеры не являются обязательными для таких технологий и не предназначены для рассмотрения в качестве ограничений. Различные варианты осуществления таких технологий могут включать в себя такой пример, сам по себе или в комбинации с другими признаками, и/или могут изменять и/или опускать показанный пример.
[00106] При использовании в этой заявке, термин «или», как предполагается, означает включающее «или», а не исключающее «или». А именно, если не указано иное, или если иное не ясно из контекста, «Х использует А или В», как предполагается, означает любую из естественных включающих перестановок. А именно, если Х использует А; Х использует В; или Х использует как А, так и В, то тогда «Х использует А или В» удовлетворяется при любых из вышеупомянутых примеров. Дополнительно, форма единственного числа, используемая в этой заявке и прилагаемой формуле изобретения, может, в общем, толковаться таким образом, чтобы она означала «один или несколько», если не указано иное, или если из контекста не ясно, что необходима форма единственного числа.
[00107] Также, хотя раскрытие сущности настоящего изобретения было показано и описано в отношении одной или нескольких реализаций, эквивалентные изменения и модификации будут приходить на ум специалистам в данной области техники после прочтения и понимания этого описания изобретения и прилагаемых чертежей. Раскрытие сущности настоящего изобретения включает в себя все такие модификации и изменения, и ограничено только объемом нижеследующей формулы изобретения. Конкретно, в отношении различных функций, выполняемых описанными выше компонентами (например, элементами, ресурсами, и т.д.), термины, используемые для описания таких компонентов, как предполагается, соответствуют, если не указано иное, любому компоненту, который выполняет заданную функцию описываемого компонента (например, который является функционально эквивалентным), даже если он не является структурно эквивалентным раскрытой структуре, которая выполняет эту функцию в показанных здесь примерных реализациях раскрытия сущности настоящего изобретения. Дополнительно, в то время как конкретный признак раскрытия сущности настоящего изобретения мог быть раскрыт в отношении только одной из нескольких реализаций, такой признак может быть объединен с одним или несколькими другими признаками других реализаций, когда это желательно или предпочтительно для любого данного или конкретного применения. Кроме того, в тех случаях, когда термины «включает в себя», «имеющий», «имеет», «с», или их варианты используются либо в подробном описании, либо в формуле изобретения, такие термины, как предполагается, являются включающими, подобно термину «содержащий».