УПРАВЛЕНИЕ ШАБЛОНАМИ АКТИВАЦИИ Российский патент 2016 года по МПК G06F1/32 G06F15/16 H04W52/02 

Описание патента на изобретение RU2595968C2

Уровень техники

[0001] Пользователи имеют доступ к постоянно растущему множеству вычислительных устройств, которые могут быть сконфигурированы с возможностью использования в сети. Например, пользователи могут взаимодействовать с настольным компьютером, мобильным телефоном, планшетным компьютером и т.д. с тем, чтобы осуществлять взаимодействие через проводные или беспроводные сети.

[0002] Тем не менее, традиционные технологии, которые используются для того, чтобы осуществлять доступ к этим сетям, зачастую являются неэффективными и, как следствие, могут использовать существенный объем ресурсов, включающих в себя ресурсы мощности, ресурсы обработки и сетевые ресурсы. Следовательно, эти традиционные технологии могут ограничивать функциональность, доступную для пользователя устройства.

Сущность изобретения

[0003] Описываются технологии управления шаблонами активации. В одной или более реализаций, отслеживается сетевой трафик, принимаемый посредством сетевого интерфейсного устройства вычислительного устройства, и шаблон трафика распознается в отслеживаемом сетевом трафике. Идентифицируется приложение вычислительного устройства, которое соответствует распознанному шаблону трафика, и в ответ на эту идентификацию, активируется, по меньшей мере, часть идентифицированного приложения.

[0004] В одной или более реализаций, шаблон трафика регистрируется как соответствующий приложению, сконфигурированному для выполнения на вычислительном устройстве. В ответ на распознавание шаблона трафика в сетевом трафике, в то время как приложение находится в состоянии приостановки, инициируется переход, по меньшей мере, части приложения из состояния приостановки в активное состояние.

[0005] В одной или более реализаций, один или более машиночитаемых носителей хранения данных содержат сохраненные инструкции, которые, в ответ на выполнение посредством вычислительного устройства, инструктируют вычислительному устройству реализовывать операционную систему, сконфигурированную с возможностью поддерживать технологию для того, чтобы активировать, по меньшей мере, часть приостановленного приложения в ответ на идентификацию входящего пакета, принимаемого через сетевое интерфейсное устройство вычислительного устройства.

[0006] Также описывается управление посредством операционной системы сетевыми интерфейсными устройствами. В одной или более реализаций, посредством операционной системы выполняется определение в отношении того, что сетевой трафик, ассоциированный с одним или более приложений вычислительного устройства, завершен. В ответ на определение, сетевое интерфейсное устройство принудительно переводится в режим для того, чтобы уменьшать потребление мощности сетевого интерфейсного устройства посредством операционной системы.

[0007] В одной или более реализаций, сетевое интерфейсное устройство задается доступным для одного или более приложений вычислительного устройства посредством операционной системы, когда сетевое интерфейсное устройство находится в режиме с высоким уровнем мощности. Сетевое интерфейсное устройство задается недоступным для одного или более приложений вычислительного устройства посредством операционной системы, когда сетевое интерфейсное устройство находится в режиме с низким уровнем мощности.

[0008] В одной или более реализаций, один или более машиночитаемых носителей хранения данных содержат сохраненные инструкции, которые, в ответ на выполнение посредством вычислительного устройства, инструктируют вычислительному устройству реализовывать операционную систему, сконфигурированную с возможностью поддерживать технологию ограничения доступа посредством одного или более приложений вычислительного устройства к сетевому интерфейсному устройству, которое переводится в режим для того, чтобы уменьшать потребление мощности, причем сетевое интерфейсное устройство сконфигурировано с возможностью активироваться из режима в ответ на прием извещающего уведомления.

[0009] Также описываются технологии управления поддержанием активности. В одной или более реализаций, интервал поддержания активности вычисляется посредством операционной системы вычислительного устройства. Интервал поддержания активности используется для того, чтобы поддерживать один или более каналов уведомлений между одним или более приложений вычислительного устройства и сетью.

[0010] В одной или более реализаций, для каждого из множества приложений, выполняемых на вычислительном устройстве, выполняется определение одного или более интервалов тайм-аута сервера, указываемых для того, чтобы поддерживать канал уведомлений с соответствующей конечной точкой через сеть. Интервал поддержания активности вычисляется из одного или более интервалов тайм-аута сервера для каждого из множества приложений. Интервал поддержания активности используется для того, чтобы активировать сетевое интерфейсное устройство, указанное для того, чтобы поддерживать каналы уведомлений.

[0011] В одной или более реализаций, один или более машиночитаемых носителей хранения данных содержат машиноисполняемые инструкции, которые, в ответ на выполнение посредством вычислительного устройства, инструктируют вычислительному устройству реализовывать операционную систему, сконфигурированную с возможностью использовать интервал поддержания активности, чтобы поддерживать каналы уведомлений между множеством приложений, которые выполняются на вычислительном устройстве, и соответствующей одной или более конечных точек через сеть, причем интервал поддержания активности вычисляется на основе одного или более интервалов тайм-аута сети одного или более промежуточных устройств сети и одного или более интервалов тайм-аута сервера соответствующих конечных точек, с которыми одно или более приложений обмениваются данными через сеть.

[0012] Данная сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность не имеет намерение идентифицировать ключевые или важнейшие признаки заявленного объекта изобретения, а также не имеет намерение использоваться в качестве помощи при определении объема заявленного объекта изобретения.

Краткое описание чертежей

[0013] Подробное описание поясняется со ссылкой на прилагаемые чертежи. На чертежах самая левая цифра(ы) ссылочной позиции идентифицирует чертеж, на котором ссылочная позиция впервые появляется. Использование одинаковых ссылочных позиций в различных случаях в описании и на чертежах может указывать похожие или идентичные элементы.

[0014] Фиг. 1 является иллюстрацией окружения в примерной реализации, которое сконфигурировано с возможностью использовать модуль сетевого посредника для того, чтобы управлять сетевой связью одного или более приложений вычислительного устройства.

[0015] Фиг. 2 является иллюстрацией системы в примерной реализации, подробнее показывающей модуль сетевого посредника по фиг. 1 как использующий модуль диспетчера шаблонов активации.

[0016] Фиг. 3 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой распознавание шаблона трафика используется для того, чтобы осуществлять переход, по меньшей мере, части приложения из состояния приостановки в активное состояние.

[0017] Фиг. 4 является блок-схемой последовательности операций способа, иллюстрирующей другую процедуру в примерной реализации, в которой распознавание шаблона трафика используется для того, чтобы активировать, по меньшей мере, часть приложения.

[0018] Фиг. 5 является иллюстрацией системы в примерной реализации, подробнее показывающей модуль сетевого посредника по фиг. 1 как использующий модуль диспетчера сетевого устройства.

[0019] Фиг. 6 является иллюстрацией другой системы в примерной реализации, показывающей примерную работу модуля диспетчера сетевого устройства.

[0020] Фиг. 7 иллюстрирует примерную реализацию, показывающую переход сетевого интерфейсного устройства в тихий режим.

[0021] Фиг. 8 иллюстрирует примерную реализацию, показывающую переход сетевого интерфейсного устройства в активное состояние.

[0022] Фиг. 9 иллюстрирует примерную реализацию, показывающую переход в режим ожидания системы.

[0023] Фиг. 10 иллюстрирует примерную реализацию, показывающую переход в режим возобновления работы системы.

[0024] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой выполняется определение в отношении того, что сетевой трафик завершен, и сетевое интерфейсное устройство переводится в режим с низким уровнем мощности посредством операционной системы.

[0025] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей процедуру в примерной реализации, в которой сетевое интерфейсное устройство задается недоступным для приложений во время выполнения режима с более низким уровнем мощности.

[0026] Фиг. 13 является иллюстрацией системы в примерной реализации, подробнее показывающей модуль сетевого посредника по фиг. 1 как использующий модуль диспетчера поддержания активности.

[0027] Фиг. 14 является иллюстрацией системы в примерной реализации, показывающей примерную реализацию вычисления и регулирования интервала поддержания активности по фиг. 13.

[0028] Фиг. 15 иллюстрирует процедуру в примерной реализации, в которой интервал поддержания активности вычисляется и используется для того, чтобы поддерживать один или более каналов уведомлений.

[0029] Фиг. 16 иллюстрирует процедуру в примерной реализации, в которой интервал поддержания активности вычисляется для того, чтобы пакетировать связь для поддержания активности из приложений.

[0030] Фиг. 17 и 18 иллюстрируют системы, показывающие примеры реализации посредника сетевых подключений по фиг. 1.

[0031] Фиг. 19 иллюстрирует примерную систему, которая включает в себя вычислительное устройство, как описано со ссылкой на фиг. 1.

[0032] Фиг. 20 иллюстрирует различные компоненты примерного устройства, которое может быть реализовано как любой тип вычислительного устройства, как описано со ссылкой на фиг. 1, 2, 5-10, 13, 14 и 17-19, чтобы реализовывать варианты осуществления технологий, описанных в данном документе.

Подробное описание изобретения

Обзор

[0033] Приложения с подключением по сети типично заключают в себе способность поддерживать длительное подключение, чтобы остаться ″актуальными″. Тем не менее, в традиционных технологиях это может достигаться за счет поддержания сетевого интерфейсного устройства (например, сетевой интерфейсной платы) подключенным, чтобы обеспечивать досягаемость, что может оказывать негативное влияние на использование ресурсов вычислительного устройства. Например, традиционные технологии обеспечивают беспрепятственный доступ приложений и служб вычислительного устройства к сетевому интерфейсному устройству. Следовательно, операционная система типично не знает в любой данный момент времени то, используется или нет сетевое интерфейсное устройство посредством приложения. Это позволяет не допускать перехода устройства в режим с низким уровнем мощности до тех пор, пока не будет обнаружено бездействие, что может занимать тридцать секунд, и в силу этого может оказывать существенное влияние на электропитание, например, время работы от аккумулятора.

[0034] Соответственно, в данном документе описаны технологии, в которых компонент операционной системы, называемый модулем сетевого посредника, может быть использован для того, чтобы координировать использование сетевых интерфейсных устройств вычислительного устройства. Например, сетевое интерфейсное устройство может использовать модуль диспетчера шаблонов активации для того, чтобы определять то, какие приложения вычислительного устройства, если таковые имеются, должны быть активированы в ответ на прием сетевого трафика. Модуль диспетчера шаблонов активации, например, может обнаруживать, присутствует или нет предварительно зарегистрированный шаблон в сетевом трафике, и если да, активировать соответствующее приложение. Таким образом, модуль диспетчера шаблонов активации может давать возможность приложениям, которые используют сеть, подключаться ко всему в состоянии приостановки, и при этом обеспечивать взаимодействие с пользователем в режиме ″всегда включен/всегда на связи″. Дополнительное пояснение модуля диспетчера шаблонов активации приведено относительно фиг. 2-4.

[0035] В другом примере, модуль сетевого посредника может включать функциональность модуля диспетчера сетевого устройства. Модуль диспетчера сетевого устройства может быть использован для того, чтобы инструктировать сетевому интерфейсному устройству переходить в режим с низким уровнем мощности, когда модуль определяет то, что сетевой трафик, заключающий в себе приложения вычислительного устройства, завершен, например, посредством мониторинга обратных вызовов. Таким образом, модуль 126 диспетчера сетевого устройства операционной системы может быть размещен в качестве промежуточного средства между сетевым интерфейсным устройством и приложениями. В качестве промежуточного средства операционная система может иметь сведения по сетевой активности, и, следовательно, может детерминированно сообщать, может или нет сетевое интерфейсное устройство переходить в режим с низким уровнем мощности, например, в тихий режим сети. Дополнительное пояснение модуля диспетчера сетевого устройства приведено относительно фиг. 5-12.

[0036] В дополнительном примере, модуль сетевого посредника может включать функциональность модуля диспетчера поддержания активности. Модуль диспетчера поддержания активности может быть использован для того, чтобы ″поддерживать активность″ сетевых соединений (например, каналов уведомлений), в то время как приложения находятся в состоянии приостановки, и за счет этого может понижать степень использования ресурсов, ассоциированную с приложениями. Дополнительно, модуль диспетчера поддержания активности может быть использован для того, чтобы давать возможность сетевому интерфейсному устройству переходить в режим с низким уровнем мощности и ″активироваться″, чтобы поддерживать сетевые соединения, и за счет этого может понижать степень использования ресурсов, ассоциированную с самим сетевым интерфейсным устройством. Множество других видов функциональности также может быть включено посредством модуля управления поддержанием активности, к примеру, чтобы динамически определять интервал поддержания активности, дополнительное пояснение которых приведено относительно фиг. 13-18.

[0037] В нижеприведенном пояснении сначала описывается примерное окружение, которое может использовать технологии, описанные в данном документе. Разделы ″Примеры″ затем используются для того, чтобы описывать примерную функциональность модуля диспетчера шаблонов активации, модуля диспетчера сетевого устройства и модуля диспетчера поддержания активности. После этого описывается пример реализации, который может включать функциональность из вышеописанных разделов. Должно быть очевидным, что технологии, описанные в данном документе, не ограничены осуществлением в примерном окружении, и примерное окружение не ограничивается выполнением примерных технологий.

Примерное окружение

[0038] Фиг. 1 является иллюстрацией окружения 100 в примерной реализации, которое сконфигурировано с возможностью использовать технологии на основе сетевого посредника, описанные в данном документе. Проиллюстрированное окружение 100 включает в себя вычислительное устройство 102, которое включает в себя систему 104 обработки (например, один или более процессоров, функциональные блоки), запоминающее устройство 106, источник 108 питания, устройство 110 отображения и одно или более сетевых интерфейсных устройств 112, сконфигурированных с возможностью предоставлять сетевые соединения (например, каналы уведомлений) через сеть 114. В нижеприведенном пояснении представленные объекты могут служить признаком одного или более объектов, и в силу этого объекты могут взаимозаменяемо упоминаться в форме единственного или множественного числа, например, сетевое интерфейсное устройство 112, сетевые интерфейсные устройства 112 и т.д.

[0039] Вычислительное устройство 102 может быть сконфигурировано множеством способов. Например, вычислительное устройство 102 может быть сконфигурировано как компьютер, который допускает обмен данными по сети 114, к примеру, настольный компьютер, мобильная станция, электронное бытовое устройство, абонентская приставка, функционально связанная с устройством отображения, беспроводной телефон, игровая приставка и т.д. Таким образом, вычислительное устройство 102 может варьироваться в диапазоне от полноресурсного устройства со значительными ресурсами запоминающего устройства и процессора (к примеру, персональные компьютеры, игровые приставки) до малоресурсных устройств с ограниченными ресурсами запоминающего устройства и/или обработки (к примеру, традиционные абонентские приставки, карманные игровые приставки). Дополнительно, хотя показано одно вычислительное устройство 102, вычислительное устройство 102 может представлять множество различных устройств, к примеру, несколько серверов, используемых компанией для того, чтобы выполнять операции (например, ферму серверов), комбинацию пульта дистанционного управления и абонентской приставки, устройство захвата изображений и игровую приставку и т.д.

[0040] Хотя сеть 114 проиллюстрирована как Интернет, сеть может допускать множество конфигураций. Например, сеть 114 может включать в себя глобальную вычислительную сеть (WAN), локальную вычислительную сеть (LAN) или сеть intranet, и в силу этого сетевое интерфейсное устройство 112 может быть сконфигурировано с возможностью осуществлять доступ к этим сетям через проводное подключение. Сеть 114 также может быть сконфигурирована с возможностью доступа через беспроводные технологии, такие как беспроводная глобальная вычислительная сеть (WWAN), беспроводная локальная вычислительная сеть (WLAN), сотовая сеть (например, 3G-, 4G-, LTE-сеть) и т.д. Сетевое интерфейсное устройство 112 может представлять физические устройства, а также виртуальные сетевые устройства, к примеру, устройства, используемые для того, чтобы поддерживать виртуальную частную сеть, туннелирование и т.д. Таким образом, хотя показана одна сеть 114, сеть 114 может представлять множество сетей.

[0041] Вычислительное устройство 102 дополнительно иллюстрируется как включающее в себя операционную систему 116. Операционная система 116 сконфигурирована с возможностью абстрагировать базовую функциональность вычислительного устройства 102 для приложений 118, 120, которые выполняются на вычислительном устройстве 102. Например, операционная система 116 может абстрагировать функциональность системы 104 обработки, запоминающего устройства 106, источника 108 питания (например, аккумулятора или проводного подключения) и/или устройства 110 отображения вычислительного устройства 102, так что приложения 118, 120 могут быть написаны без сведений в отношении того, как реализуется эта базовая функциональность. Приложения 118, 120, например, могут предоставлять данные в операционную систему 116 для рендеринга и отображения посредством устройства отображения 112 без понимания в отношении того, как этот рендеринг может выполняться.

[0042] Аналогично, операционная система 116 также может абстрагировать функциональность сетевых соединений для приложений 118, 120 посредством использования модуля 122 сетевого посредника. Модуль 122 сетевого посредника представляет функциональность для того, чтобы управлять использованием сетевого интерфейсного устройства 112 посредством приложений 118, 120, а также работой самого сетевого интерфейсного устройства 112.

[0043] Как описано выше, модуль 122 сетевого посредника может включать множество различных видов функциональности для того, чтобы выполнять это управление. Например, модуль 112 сетевого посредника может включать модуль 124 диспетчера шаблонов активации, который сконфигурирован с возможностью активировать одно или более приложений 118, 120 после идентификации конкретного шаблона трафика. Конкретный шаблон трафика, например, может предварительно регистрироваться посредством приложения, и таким образом, когда распознается шаблон, модуль 124 диспетчера шаблонов активации может активировать соответствующее одно из приложений 118, 120, в отличие от традиционных технологий, в которых вычислительное устройство 102 активируется полностью, в том числе и каждое из приложений 118, 120. Дополнительное пояснение модуля 124 диспетчера шаблонов активации приведено относительно фиг. 2-4.

[0044] Модуль 122 сетевого посредника также иллюстрируется как включающий в себя модуль 126 диспетчера сетевого устройства. Как упомянуто выше, этот модуль представляет функциональность для того, чтобы управлять работой сетевого интерфейсного устройства 112, а также доступностью сетевого интерфейсного устройства 112 для приложений 118, 120 вычислительного устройства 102. Это может включать в себя инструктирование сетевому интерфейсному устройству 112 переходить в режим для того, чтобы уменьшать потребление мощности, когда модуль 126 диспетчера сетевого устройства определяет то, что сетевой трафик, заключающий в себе приложения 118, 120, завершен.

[0045] Дополнительно, модуль 126 диспетчера сетевого устройства может задавать сетевое интерфейсное устройство 112 недоступным для приложений 118, 120 в течение определенных периодов времени в этом режиме, так что приложения 118, 120 не активируют без необходимости сетевое интерфейсное устройство 112. Таким образом, модуль 126 диспетчера сетевого устройства может направлять в ″черные дыры″ связь из приложений 118, 120 в сетевое интерфейсное устройство. Дополнительное пояснение модуля 126 диспетчера сетевого устройства приведено относительно соответствующего раздела в нижеприведенном пояснении, который начинается относительно фиг. 5-12.

[0046] Модуль 122 сетевого посредника дополнительно иллюстрируется как включающий в себя модуль 128 диспетчера поддержания активности. Модуль 128 диспетчера поддержания активности представляет функциональность, которая может быть использована для того, чтобы поддерживать сетевые соединения, даже для приложений 118, 120 в состоянии приостановки. Модуль 128 диспетчера поддержания активности, например, может обмениваться данными с одним или более серверов сетевой службы, чтобы сохранять активным сетевое соединение между службой и вычислительным устройством 102 по сети 114. Модуль 128 диспетчера поддержания активности также может включать в себя функциональность для того, чтобы динамически определять интервал, в котором должна возникать эта активность, и за счет этого дополнительно может экономить ресурсы вычислительного устройства 102. Дополнительное пояснение модуля 128 диспетчера поддержания активности приведено относительно соответствующего раздела в нижеприведенном пояснении, который начинается относительно фиг. 13-18.

[0047] Хотя модуль 122 сетевого посредника и его соответствующие модуль 124 диспетчера шаблонов активации, модуль 126 диспетчера сетевого устройства и модуль 128 диспетчера поддержания активности проиллюстрированы в качестве части операционной системы 116, должно быть очевидным, что эта функциональность может быть реализована посредством множества различных объектов. Примеры таких объектов включают в себя автономные приложения, сторонние подключаемые модули и т.д.

[0048] В общем, любые из функций, описанных в данном документе, могут быть реализованы с помощью программного обеспечения, микропрограммного обеспечения, аппаратных средств (к примеру, неизменяемой логической схемы) либо в комбинации этих реализаций. Термины ″модуль″, ″функциональность″ и ″логика″″ при использовании в данном документе обычно представляют программное обеспечение, микропрограммное обеспечение, аппаратные средства или комбинацию вышеозначенного. В случае программной реализации модуль, функциональность или логика представляют программный код, который выполняет заданные задачи при выполнении в процессоре (к примеру, в CPU или в нескольких CPU). Программный код может быть сохранен на одном или более машиночитаемых запоминающих устройств. Признаки технологий на основе сетевого посредника, описанных ниже, являются независимыми от платформы, что означает то, что технологии могут быть реализованы на множестве коммерческих вычислительных платформ, имеющих множество процессоров.

[0049] Например, вычислительное устройство 102 также может включать в себя объект (например, программное обеспечение), который инструктирует аппаратным средствам вычислительного устройства 102 выполнять операции, к примеру, процессоры, функциональные блоки и т.д. Например, вычислительное устройство 102 может включать в себя машиночитаемый носитель, который может быть сконфигурирован с возможностью поддерживать инструкции, которые инструктируют вычислительному устройству, а более конкретно, аппаратным средствам вычислительного устройства 102 выполнять операции. Таким образом, инструкции функционируют с возможностью конфигурировать аппаратные средства, чтобы выполнять операции и в силу этого приводить к преобразованию аппаратных средств таким образом, чтобы выполнять функции. Инструкции могут предоставляться посредством машиночитаемого носителя в вычислительное устройство 102 через множество различных конфигураций.

[0050] Одной такой конфигурацией машиночитаемого носителя является среда передачи сигналов и в силу этого сконфигурирована с возможностью передавать инструкции (например, в качестве несущей) в аппаратные средства вычислительного устройства, к примеру, через сеть. Машиночитаемый носитель также может быть сконфигурирован как машиночитаемый носитель хранения данных и в силу этого не является средой передачи сигналов. Примеры машиночитаемого носителя хранения данных включают в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), оптический диск, флэш-память, запоминающее устройство на основе жесткого диска и другие запоминающие устройства, которые могут использовать магнитные, оптические и другие технологии для того, чтобы сохранять инструкции и другие данные.

Модуль диспетчера шаблонов активации

[0051] Фиг. 2 является иллюстрацией системы 200 в примерной реализации, показывающей примерную работу модуля 124 диспетчера шаблонов активации модуля 122 сетевого посредника по фиг. 1. Как описано выше, традиционные технологии заключают в себе активное выполнение процессов для обеспечения досягаемости приложения. Следовательно, приложения, которые заключают в себе использование относительно длительных сетевых подключений, могут отправлять и принимать данные в любое время, что может иметь прямое воздействие на ресурсы вычислительного устройства 102, к примеру, на время работы от аккумулятора.

[0052] Тем не менее, в этом примере операционная система 116 может использовать модуль 122 сетевого посредника для того, чтобы поддерживать взаимодействие с пользователем в режиме ″всегда включен/всегда на связи″. В этом примере, взаимодействие поддерживается посредством использования модуля 124 диспетчера шаблонов активации, который может быть использован для того, чтобы активировать конкретные приложения, которые вовлечены в сетевую связь.

[0053] Модуль 124 диспетчера шаблонов активации, например, может разрешать приложения 118, 120, регистрировать шаблоны 202 трафика, которые служат признаком конкретных вариантов применения 118, 120. Например, приложение 118 может регистрировать шаблон 202 трафика, который отличается от шаблона трафика, зарегистрированного для приложения 120. Соответственно, модуль 124 диспетчера шаблонов активации может отслеживать сетевой трафик 204 на предмет шаблонов 202 трафика и активировать соответствующие приложения 118, 120.

[0054] Разработчик приложений, например, может заключать договор с модулем 122 сетевого посредника операционной системы 116, чтобы указывать определенные события и обратный вызов, который должен быть выполнен для каждого из этих событий. Модуль 122 сетевого посредника затем может ″встраивать″ конкретный шаблон данных, принимаемый посредством сетевого интерфейсного устройства 112 через сеть 114, как соответствующий одному или более приложений 118, 120, которые зарегистрированы для этого шаблона 202 трафика.

[0055] Соответственно, модуль 124 диспетчера шаблонов активации модуля 122 сетевого посредника может выдавать прерывание в операционную систему 116 при приеме входящего пакета, описанного в шаблоне трафика для приложения 118. В свою очередь, операционная система 116 может активировать приложение 118 из состояния приостановки в зарегистрированной точке ввода обратного вызова и указывать пакет в приложение 118. Таким образом, модуль 124 диспетчера шаблонов активации может поддерживать технологию для того, чтобы инициировать приостановленное приложение во входящем пакете из предварительно авторизованной удаленной конечной точки. Дополнительно, это дает возможность операционной системе 116 встраивать шаблон, даже если физическое сетевое интерфейсное устройство 112 не поддерживает фильтрацию входящих пакетов, в силу этого давая возможность операционной системе 115 фильтровать входные пакеты.

[0056] Приложения 118, 120 также могут быть сконфигурированы с возможностью повышать эффективность использования ресурсов вычислительного устройства 102. Например, приложение 118 может быть векторизовано, чтобы формировать различные части, которые могут быть выполнены отдельно. Проиллюстрированный пример этого для приложения 118 включает в себя векторизацию сетевой функциональности 206 как отдельной от другой функциональности 208 приложения 118, к примеру, функциональности, вовлеченной в формирование пользовательского интерфейса для приложения 118.

[0057] Таким образом, продолжая предыдущий пример, модуль 122 сетевого посредника может активировать сетевую функциональность 206 приложения 118, к примеру, чтобы указывать пакет, который совпадает с указанными шаблонами 202 трафика, и выполнять конкретный обратный вызов кода приложения без восстановления кода приложения 118, вовлеченного в формирование пользовательского интерфейса приложения 118. Следовательно, приложение 118 может быть сконфигурировано с возможностью отвечать на сетевой трафик 204 из удаленного сервера эффективным по ресурсам способом для пакетов данных, инициированного удаленной конечной точкой индикатора поддержания активности и т.д. Также рассматривается множество других примеров векторизации приложения 118, к примеру, разделение обработчиков событий приложения 118.

[0058] Модуль 124 диспетчера шаблонов активации также может поддерживать технологии для того, чтобы объединять данные для передачи в приложения 118, 120, которые также могут указываться посредством шаблонов 202 трафика. Модуль 124 диспетчера шаблонов активации, например, может принимать данные через множество различных каналов уведомлений через сеть 114 в сетевом интерфейсном устройстве 112. Вместо передачи этих данных в приложения 118, 120 ″сразу″, модуль 124 диспетчера шаблонов активации может объединять эти данные для передачи в приложения 118, 120 с заданным интервалом.

[0059] Таким образом, ресурсы вычислительного устройства 102, используемого при выполнении приложений 118, 120, могут быть совместно использованы, чтобы дополнительно обеспечивать экономию в отношении того, когда и как используются эти ресурсы. Например, вместо приема данных для приложения 118, активации приложения 118 и передачи пакета в приложение 118, а затем повторения этого для пакета, принимаемого для приложения 120, эти пакеты могут кэшироваться и затем перенаправляться.

[0060] В одной или более реализаций, модуль 124 диспетчера шаблонов активации также может использовать сведения по регистрационным именам пользователей. Например, модуль 124 диспетчера шаблонов активации может использовать шаблоны 202 трафика для пользователя, который активно регистрируется в вычислительном устройстве 102, но не для других пользователей, может использовать шаблоны для пользователя, который зарегистрирован последним, и т.д. Естественно, также рассматриваются другие реализации, к примеру, реализации, в которых шаблоны используются для каждого пользователя, который зарегистрирован в системе, независимо от того, активный он или нет.

[0061] Таким образом, описана операционная система, которая может быть сконфигурирована с возможностью поддерживать технологию для того, чтобы активировать, по меньшей мере, часть приостановленного приложения в ответ на идентификацию входящего пакета, принимаемого через сетевое интерфейсное устройство вычислительного устройства. Дополнительное пояснение этих технологий приведено относительно примера реализации и следующих процедур.

[0062] Фиг. 3 иллюстрирует процедуру 300 в примерной реализации, в которой распознавание шаблона трафика используется для того, чтобы осуществлять переход, по меньшей мере, части приложения из состояния приостановки в активное состояние. Аспекты процедуры могут быть реализованы в аппаратных средствах, микропрограммном обеспечении, программном обеспечении, либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые посредством одного или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях последующего обсуждения упоминаются окружение 100 по фиг. 1 и система 200 по фиг. 2.

[0063] Шаблон трафика регистрируется как соответствующий приложению, сконфигурированному для выполнения на вычислительном устройстве (этап 302). Шаблон 202 трафика, например, может быть зарегистрирован посредством приложения 118 в ходе установки приложения 118 через взаимодействие с API модуля 124 диспетчера шаблонов активации и т.д. Дополнительно, шаблон 202 трафика может быть использован для того, чтобы описывать множество различных характеристик сетевого трафика 204, к примеру, идентифицировать конкретные пакеты, обратные вызовы, идентифицировать конкретные удаленные конечные точки и т.д.

[0064] В ответ на распознавание шаблона трафика в сетевом трафике в то время, когда приложение находится в состоянии приостановки, по меньшей мере, часть приложения переходит из состояния приостановки в активное состояние (этап 304). Приложение 118 может быть переведено в состояние приостановки вследствие множества различных факторов. Например, операционная система 116 может быть сконфигурирована с возможностью переводить приложение 118 в состояние приостановки, когда фокус перемещается в другое приложение. Фокус может быть перемещен посредством минимизации пользовательского интерфейса приложения, перемещения пользовательского интерфейса (например, окна) с переднего плана в настольном пользовательском интерфейсе, навигации из пользовательского интерфейса приложения 118 в иммерсивном окружении и т.д. Таким образом, операционная система 116 может экономить ресурсы вычислительного устройства 102 посредством приостановки выполнения приложений, которые не доступны, непосредственно, для пользовательского взаимодействия.

[0065] Как описано выше, модуль 124 диспетчера шаблонов активации может распознавать шаблоны 202 трафика из сетевого трафика 204 и осуществлять переход, по меньшей мере, части приложения 118 (например, сетевая функциональность 206, но не другая функциональность 208) в активное состояние, чтобы обрабатывать идентифицированный сетевой трафик 204. Таким образом, модуль 124 диспетчера шаблонов активации может осуществлять переход конкретного варианта применения 118, которому сетевой трафик 204 относится и даже конкретная часть приложения 118. Другой пример использования модуля 124 диспетчера шаблонов активации приведен относительно следующего чертежа.

[0066] Фиг. 4 иллюстрирует процедуру 400 в примерной реализации, в которой распознавание шаблона трафика используется для того, чтобы активировать, по меньшей мере, часть приложения. Аспекты процедуры могут быть реализованы в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые посредством одного или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях последующего обсуждения упоминаются окружение 100 по фиг. 1 и система 200 по фиг. 2.

[0067] Сетевой трафик, принимаемый посредством сетевого интерфейсного устройства вычислительного устройства, отслеживается (этап 402). Вычислительное устройство 102, например, может принимать сетевой трафик в сетевом интерфейсном устройстве 112, которое может быть сконфигурировано как физическое устройство, реализовано как виртуальное устройство, чтобы поддерживать VPN и туннелирование, и т.д.

[0068] Шаблон трафика распознается в отслеживаемом сетевом трафике (этап 404). Как указано выше, может быть распознано множество различных шаблонов трафика, таких как пакеты, отправляющие объекты и т.д. Из этого шаблона трафика, идентифицируется приложение вычислительного устройства, которое соответствует распознанному шаблону трафика (этап 406). Например, одно или более приложений могут предварительно регистрироваться в модуле 124 диспетчера шаблонов активации для того, чтобы принимать конкретный сетевой трафик. В ответ на эту идентификацию, активируется, по меньшей мере, часть идентифицированного приложения (этап 408), к примеру, сетевая функциональность 206, полностью приложение 118 и т.д. Дополнительное пояснение примерной работы модуля 124 диспетчера шаблонов активации приведено относительно примера реализации.

Модуль диспетчера сетевого устройства

[0069] Фиг. 5 является иллюстрацией системы 500 в примерной реализации, показывающей примерную работу модуля 126 диспетчера сетевого устройства модуля 122 сетевого посредника по фиг. 1. Как описано выше, модуль 122 сетевого посредника и, следовательно, модуль 126 диспетчера сетевого устройства операционной системы 116 могут быть размещены в качестве промежуточного средства между сетевым интерфейсным устройством 112 и приложениями 118, 120. В качестве промежуточного средства операционная система 116 может иметь сведения по сетевой активности, и, следовательно, может детерминированно сообщать то, может или нет сетевое интерфейсное устройство 112 переходить в режим с низким уровнем мощности, например, в тихий режим сети.

[0070] Например, модуль 126 диспетчера сетевого устройства может быть использован для того, чтобы инструктировать сетевому интерфейсному устройству 112 переходить в режим с низким уровнем мощности, когда модуль определяет то, что сетевой трафик 502, заключающий в себе приложения вычислительного устройства, завершен, например, посредством мониторинга обратных вызовов и определения того, когда завершен последний из обратных вызовов. Таким образом, сетевой трафик 502 заключает в себе выходной трафик из приложений 118, 120 в этом примере.

[0071] В ответ, модуль 126 диспетчера сетевого устройства может инструктировать сетевому интерфейсному устройству 112 переходить из режима 504 с высоким уровнем мощности в режим 502 с низким уровнем мощности. Как указывают имена, эти режимы различаются посредством величины мощности, используемой посредством сетевого интерфейсного устройства 112 при нахождении в режимах. В одном примере, режим 504 с высоким уровнем мощности сконфигурирован с возможностью предоставлять передачу и прием данных посредством сетевого интерфейсного устройства 112. В этом примере, режим 506 с низким уровнем мощности имеет такую конфигурацию, в которой функциональность передачи сетевого интерфейсного устройства 112 временно недоступна и в силу этого имеет пониженное потребление мощности. Таким образом, поскольку исходящая активность подавляется, и в силу этого просто шаблоны активации встраиваются, это означает то, что трафик, который может оказывать влияние на систему, ограничивается пакетами, которые совпадают с шаблоном активации, или когда система вычисляет время, чтобы инициировать исходящую активность как действия по поддержанию активности. Также подразумевается множество других примеров.

[0072] Таким образом, модуль 126 диспетчера сетевого устройства может заранее определять, когда использование сетевого интерфейсного устройства 112 больше не требуется для исходящего трафика, и реагировать соответствующим образом в отличие от технологий предшествующего уровня техники, которые основаны на обнаружении периодов бездействия, которые могут составлять не менее тридцати секунд. Таким образом, сведения по сетевому трафику 502, предоставленные посредством размещения операционной системы 116 в качестве промежуточного средства, могут быть использованы для того, чтобы экономить ресурсы вычислительного устройства 102.

[0073] Модуль 126 диспетчера сетевого устройства также может поддерживать технологии для того, чтобы продлевать и/или поддерживать режим 506 с низким уровнем мощности для сетевого интерфейсного устройства 112 в течение требуемого периода времени. Как описано выше, традиционные технологии разрешают беспрепятственный доступ приложений 118, 120 к сетевому интерфейсному устройству 112, что может оказывать отрицательное влияние на ресурсы вычислительного устройства 102. Соответственно, размещение модуля 126 диспетчера сетевого устройства в качестве промежуточного средства между приложениями 118, 120 и сетевым интерфейсным устройством 112 может быть использовано для того, чтобы управлять режимами 504, 506 с высоким уровнем мощности и с низким уровнем мощности.

[0074] Например, модуль 126 диспетчера сетевого устройства может поддерживать технологии направления в ″черные дыры″, чтобы ограничивать доступ посредством приложений 118, 120 к сетевому интерфейсному устройству 112 в режиме 506 с низким уровнем мощности. Это может быть выполнено множеством способов, таких как задание недоступности сетевого интерфейсного устройства 112, блокирование передачи пакетов из приложения 118, 120 в сетевое интерфейсное устройство 112, возврат кода ошибки в приложения 118, 120 во время выполнения режима 506 с низким уровнем мощности, указание события отброшенного пакета и т.д. Следовательно, модуль 126 диспетчера сетевого устройства может ограничивать способность приложений 118, 120 активировать сетевое интерфейсное устройство 112 из режима 506 с низким уровнем мощности в режим 504 с высоким уровнем мощности, за счет этого экономя ресурсы вычислительного устройства 102.

[0075] Модуль 126 диспетчера сетевого устройства также может поддерживать технологии для того, чтобы управлять использованием множества различных сетевых интерфейсных устройств s112 посредством управления тем, к какому из сетевых интерфейсных устройств 112 может осуществляться доступ в данный момент времени. Например, вычислительное устройство 102 может быть сконфигурировано как устройство мобильной связи (например, беспроводной телефон) и включать в себя сетевые интерфейсные устройства 112, сконфигурированные с возможностью обмениваться данными по Wi-Fi- и сотовым (например, 3G-, 4G-, LTE-) сетям.

[0076] В случае, в котором сетевое интерфейсное устройство 112 для Wi-Fi находится в режиме с высоким уровнем мощности, модуль 126 диспетчера сетевого устройства может инструктировать сетевому интерфейсному устройству 112 для сотовой сети переходить в режим с низким уровнем мощности. Дополнительно, приложения, которые пытаются взаимодействовать с сотовой сетью, вместо этого могут маршрутизироваться в Wi-Fi-сеть. Таким образом, модуль 126 диспетчера сетевых соединений может не допускать обмен данными приложений 118, 120 с ″неправильным″ сетевым интерфейсным устройством 112 и за счет этого экономить ресурсы вычислительного устройства 102 посредством неактивации этого устройства.

[0077] Модуль 126 диспетчера сетевого устройства также может быть сконфигурирован с возможностью поддерживать возможности подключения в режиме с низким уровнем мощности. Например, приложения 118, 120 и/или службы операционной системы 116 могут хотеть поддерживать возможности подключения на уровне 2, чтобы поддерживать соединение с точкой доступа. Это может заключать в себе периодическую активацию из режима 506 с низким уровнем мощности с заданными интервалами, чтобы обмениваться данными с точкой доступа. Аналогично, возможности подключения на уровне 3 также могут поддерживаться с использованием аналогичных технологий, чтобы поддерживать IP-адрес посредством обмена данными с HTTP-сервером, к примеру, для случая, когда сервер сконфигурирован с возможностью обновлять адрес с заданными интервалами. Дополнительное пояснение поддержания сетевых подключений приведено в разделе ″Поддержание активности″ в нижеприведенном пояснении.

[0078] Фиг. 6 является иллюстрацией другой системы 600 в примерной реализации, показывающей примерную работу модуля 126 диспетчера сетевого устройства. Эта система 600 является примером реализации архитектуры, которая может использоваться для управления с помощью операционной системы 116 сетевым интерфейсным устройством 112.

[0079] Модуль 126 диспетчера сетевого устройства реализуется в этом примере в качестве логического компонента, постоянно размещающегося в ndis.sys 602, и отвечает за управление режимами мощности для сетевого интерфейсного устройства 112. Модуль 126 диспетчера сетевого устройства может быть сконфигурирован с возможностью представлять активное состояние NID в расчете на адаптер (например, активное состояние NIC), чтобы поддерживать детализированное управление мощностью по сетевым интерфейсным устройствам 112.

[0080] Активное состояние NID может быть реализовано с использованием опорного счетчика. Когда счетчик достигает нуля, модуль 126 диспетчера сетевого устройства может осуществлять переход сетевого интерфейсного устройства 112 в состояние с низким уровнем мощности. Когда счетчик увеличивается с нуля до единицы, NDIS 602 может переключать сетевое интерфейсное устройство 112 в состояние с высоким уровнем мощности, т.е. в состояние рабочей мощности.

[0081] Как проиллюстрировано, компоненты операционной системы 116 могут быть использованы для того, чтобы увеличивать и/или уменьшать опорный счетчик, например, посредством отправки частных IOCTL в NDIS 602, для множества целей. В одной или более реализаций, WCM 604, который поддерживает связь с координатором 606 зависимости от электропитания (PDC), является единственным компонентом, которому разрешается удерживать опорный уровень поддержания активного состояния NID в течение ″длительного″ времени, например, всю длительность активного периода сети. Каждому из других компонентов разрешается принимать опорный уровень поддержания активного состояния NID в течение периода одной операции, например, возобновления IP-адреса.

[0082] WCM 604 может быть сконфигурирован с возможностью прослушивать события входа/выхода в/из тихого режима сети, сформированные посредством PDC 606, и преобразовывать их в активные состояния NIC согласно логике выбора интерфейса. WCM 604 может принимать опорный уровень после появления в системе адаптера, чтобы не допускать отключения питания сетевого интерфейсного устройства 112 посредством NDIS 602.

[0083] WWAN 608 может использовать опорный уровень поддержания активного состояния NIS для того, чтобы обеспечивать выбор конкретной для среды функциональности, например, функции сканирования местоположения, запрашиваемой посредством службы на основе датчиков местоположения. WLAN 610 может использовать опорный уровень поддержания активного состояния NIS, чтобы выбирать конкретные для среды операции, например, конкретные для производителя функции, управляемые посредством предоставляемой IHV службы. Клиент DHCP 612 может быть использован для того, чтобы возобновлять IP-адрес в течение тихого режима сети, и за счет этого может сохранять опорный уровень поддержания активного состояния NID в ходе этой операции, чтобы обеспечивать доступность сетевого интерфейсного устройства 112. TCP/IP 614 может использовать счетчик опорного уровня для поддержания активного состояния NID, чтобы поддерживать сетевое интерфейсное устройство 112 в D0 в ходе этой операции, чтобы обновлять автоматическое конфигурирование 616 адреса без фиксации состояния IPv6 в течение тихого режима сети. NDIS 602 может использовать временный (например, 3 секунды) опорный уровень поддержания активного состояния NIS во время инициализации адаптера и при каждом сформированном сетевым интерфейсным устройством 112 сигнале активации. Следовательно, если ни один из других компонентов не хочет использования сетевого интерфейсного устройства 112 посредством истечения тайм-аута, модуль 126 диспетчера сетевого устройства может осуществлять переход сетевого интерфейсного устройства 112 в состояние с низким уровнем мощности.

[0084] Фиг. 7 иллюстрирует примерную реализацию 700, показывающую переход сетевого интерфейсного устройства в тихий режим. Реализация 700 включает в себя NDIS 602 по фиг. 6, а также диспетчер 702 электропитания и минипорт/шину 704. NDIS 602 выполняет эту операцию перехода состояния электропитания, когда счетчик опорного уровня для поддержания активного состояния NID становится нулем. Во время перехода NID в тихий режим NDIS 602 может выдавать сообщение о сетевом интерфейсном устройстве 112 как бездействующем в диспетчер 702 электропитания и ожидает подтверждения перед запросом Dx IRP для устройства.

[0085] Фиг. 8 иллюстрирует примерную реализацию 800, показывающую переход сетевого интерфейсного устройства а активное состояние. Реализация 800 включает в себя NDIS 602 по фиг. 6, а также диспетчер 702 электропитания и минипорт/шину 704 по фиг. 7. В проиллюстрированном примере, NDIS 602 выполняет эту операцию перехода состояния электропитания, когда счетчик опорного уровня для поддержания активного состояния NID переключается с нуля на единицу. NDIS 602 может запрашивать активное состояние устройства из диспетчера 702 электропитания и ожидать ″обратного вызова по требуемой мощности″. Из этого обратного вызова NDIS 602 запрашивает D0 IRP для устройства. По завершению D0 IRP, NDIS 602 ожидает ″обратного вызова по активному состоянию″ перед передачей обновленного состояния электропитания в драйвер минипорта/шины 704.

[0086] Фиг. 9 иллюстрирует примерную реализацию 900, показывающую переход в режим ожидания системы. Реализация 900 также включает в себя NDIS 602 по фиг. 6, а также диспетчер 702 электропитания и минипорт/шину 704 по фиг. 7. Во время перехода в режим ожидания системы NDIS 602 приостанавливает управление инфраструктурой электропитания посредством диспетчера 702 электропитания для устройства и ожидает подтверждения перед запросом Dx IRP.

[0087] Фиг. 10 иллюстрирует примерную реализацию 1000, показывающую переход в режим возобновления работы системы. Реализация 900 также включает в себя NDIS 602 по фиг. 6, а также диспетчер 702 электропитания и минипорт/шину 704 по фиг. 7. Во время перехода в режим возобновления работы системы NDIS 602 запрашивает D0 IRP для сетевого интерфейсного устройства 112 и принудительно возобновляет операции инфраструктуры электропитания посредством диспетчера 702 электропитания по завершению D0 IRP.

[0088] Фиг. 11 иллюстрирует процедуру 1100 в примерной реализации, в которой выполняется определение в отношении того, что сетевой трафик завершен, и сетевое интерфейсное устройство переводится в режим с низким уровнем мощности посредством операционной системы. Аспекты процедуры могут быть реализованы в аппаратных средствах, микропрограммном обеспечении, программном обеспечении, либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые посредством одного или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях нижеприведенного пояснения упоминаются окружение по фиг. 1 и системы и примерные реализации фиг. 5-10.

[0089] Посредством операционной системы выполняется определение в отношении того, что сетевой трафик, ассоциированный с одним или более приложений вычислительного устройства, завершен (этап 1102). Это определение может выполняться множеством способов. Например, модуль 126 диспетчера сетевого устройства может отслеживать исходящий и входящий трафик, заключающий в себе приложения 118, 120 и сетевое интерфейсное устройство 112. Таким образом, модуль 126 диспетчера сетевого устройства может определять, когда предоставлены ответы на запросы, например, завершены обратные вызовы. Таким образом, модуль 126 диспетчера сетевого устройства может определять, когда завершена каждая из операций, без ожидания в течение предписанного периода ″бездействия″.

[0090] В ответ на определение, сетевое интерфейсное устройство принудительно переводится в режим для того, чтобы уменьшать потребление мощности сетевого интерфейсного устройства посредством операционной системы (этап 1104). Продолжая предыдущий пример, модуль 126 диспетчера сетевого устройства может определять то, что сетевой трафик 502 завершен, и, следовательно, инструктирует сетевому интерфейсному устройству 112 переходить в режим для того, чтобы уменьшать потребление мощности, например, в режим 506 с низким уровнем мощности.

[0091] Модуль 126 диспетчера сетевого устройства также может предоставлять множество видов функциональности для использования в сочетании с этим режимом. Например, модуль 126 диспетчера сетевого устройства может инструктировать сетевому интерфейсному устройству 112 поддерживать возможности подключения с точкой беспроводного доступа посредством операционной системы при нахождении в режиме для того, чтобы уменьшать потребление мощности (этап 1106). Таким образом, в этом примере сетевое интерфейсное устройство 112 может поддерживать соединение уровня два, как описано выше. В другом примере, модуль 126 диспетчера сетевого устройства может инструктировать сетевому интерфейсному устройству 112 поддерживать адрес по Интернет-протоколу (IP) посредством операционной системы при нахождении в режиме для того, чтобы уменьшать потребление мощности (этап 1108). Следовательно, в этом примере сетевое интерфейсное устройство 112 может поддерживать соединение уровня три, чтобы обновлять IP-адрес сетевого интерфейсного устройства 112. Также рассматривается множество других примеров.

[0092] Сетевое интерфейсное устройство также может быть сконфигурировано с возможностью активироваться при приеме предварительно зарегистрированного уведомления (этап 1110). Например, даже если сетевое интерфейсное устройство 112 переводится в режим 506 с низким уровнем мощности, сетевое интерфейсное устройство 112 может быть сконфигурировано с возможностью принимать связь, например, входящие пакеты. Эти уведомления могут предварительно регистрироваться, так что конкретные уведомления инструктируют сетевому интерфейсному устройству 112 активироваться из тихого режима сети и обмениваться данными с операционной системой 116, к примеру, указывать конкретную конечную точку, которая инициирует связь. Также рассматривается множество других типов предварительных регистраций, таких как конкретный шаблон из четырех кортежей, содержащийся в данных, как описано относительно примера реализации.

[0093] Фиг. 12 иллюстрирует процедуру 1200 в примерной реализации, в которой сетевое интерфейсное устройство задается недоступным для приложений во время выполнения режима с более низким уровнем мощности. Аспекты процедуры могут быть реализованы в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые посредством одного или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях нижеприведенного пояснения упоминаются окружение по фиг. 1 и системы и примерные реализации фиг. 5-10.

[0094] Сетевое интерфейсное устройство задается доступным для одного или более приложений вычислительного устройства посредством операционной системы, когда сетевое интерфейсное устройство находится в режиме с высоким уровнем мощности (этап 1202). Модуль диспетчера сетевого устройства 112, например, может представлять сетевой интерфейс 112 в качестве доступного для связи с использованием сети 114, чтобы отправлять и принимать данные.

[0095] Сетевое интерфейсное устройство задается недоступным для одного или более приложений вычислительного устройства посредством операционной системы, когда сетевое интерфейсное устройство находится в режиме с низким уровнем мощности (этап 1204). Модуль 126 диспетчера сетевого устройства, например, может принудительно активировать тихий режим сети, чтобы уменьшать потребление мощности, к примеру, в ответ на определение, что завершен сетевой трафик, вовлеченный посредством приложений 118, 120. Этот тихий режим может иметь заданное количество времени, может завершаться в ответ на событие и т.д. Эта недоступность может включать в себя использование технологий на основе ″черной дыры″, описанных ранее, так что приложениям 118, 120 не разрешается ″активировать″ сетевое интерфейсное устройство 112 в течение этого времени.

[0096] Другое сетевое интерфейсное устройство задается доступным для одного или более приложений, в то время как сетевое интерфейсное устройство задается недоступным (этап 1206). Как описано выше вычислительное устройство 102 может включать в себя множество сетевых интерфейсных устройств. Соответственно, модуль 126 диспетчера сетевого устройства может управлять тем, какое из устройств находится в режимах с высоким или с низким уровнем мощности, чтобы экономить ресурсы вычислительного устройства, к примеру, задавать одно из сетевых интерфейсных устройств 112 доступным для Интернет-подключения.

[0097] Модуль 126 диспетчера сетевого устройства, например, может использовать технологии маршрутизации для того, чтобы предотвращать непреднамеренную активацию ″неправильного″ сетевого интерфейсного устройства 112. Продолжая предыдущий пример, данные, принятые из одного или более приложений, которые указываются для связи с использованием сетевого интерфейсного устройства, которое задается недоступным, маршрутизируются в другое сетевое интерфейсное устройство (этап 1208). Это может быть использовано, например, для того чтобы маршрутизировать данные, предназначенные посредством приложения 118 для связи с использованием интерфейсного устройства сотовой сети, которое является неактивным, чтобы маршрутизироваться автоматически в активное сетевое интерфейсное устройство, к примеру, Wi-Fi-устройство.

[0098] Таким образом, операционная система может быть сконфигурирована с возможностью поддерживать технологию для того, чтобы ограничивать доступ посредством одного или более приложений вычислительного устройства к сетевому интерфейсному устройству, которое переводится в режим для того, чтобы уменьшать потребление мощности. Дополнительно, сетевое интерфейсное устройство сконфигурировано с возможностью активироваться из режима в ответ на прием уведомления, к примеру, извещающего уведомления из конкретной конечной точки. Дополнительное пояснение поддержания сетевых соединений приведено относительно следующего раздела.

Модуль диспетчера поддержания активности

[0099] Фиг. 13 является иллюстрацией системы 1300 в примерной реализации, показывающей примерную работу модуля 128 диспетчера поддержания активности модуля 122 сетевого посредника по фиг. 1. Модуль 128 диспетчера поддержания активности представляет функциональность модуля 122 сетевого посредника для того, чтобы поддерживать каналы уведомлений по сети 114. Например, модуль 128 диспетчера поддержания активности может быть использован для того, чтобы вычислять интервал 1302 поддержания активности, который задает интервал между сетевой связью 1304, который является достаточным, чтобы сохранять канал уведомлений открытым между приложениями 118, 120 и конечной точкой 1306, например, сервером сетевой службы. Таким образом, интервал 1302 поддержания активности может быть вычислен, чтобы описывать частоту связи, чтобы поддерживать состояние связи через сеть 114, например, через один или более каналов уведомлений.

[00100] Модуль 112 сетевого посредника может управлять множеством различных каналов уведомлений. Приложение 118, например, может быть сконфигурировано с возможностью поддерживать связь по электронной почте, и, следовательно, взаимодействовать с конечной точкой почтовой службы. Приложение 118 также может быть сконфигурировано с возможностью поддерживать мгновенный обмен сообщениями, и, следовательно, может обмениваться данными с другой конечной точкой (например, с сервером службы мгновенных сообщений). Таким образом, одно приложение 118 может поддерживать множество каналов уведомлений. Дополнительно, приложения 118, 120 также могут обмениваться данными с идентичной конечной точкой с использованием различных каналов уведомлений. Таким образом, модуль 128 диспетчера поддержания активности может затрагивать множество различных каналов уведомлений, которые заключают в себе связь через сеть 114.

[00101] Дополнительно, модуль 128 диспетчера поддержания активности может вычислять интервал 1302 поддержания активности множеством способов. В одной такой реализации, интервал 1302 поддержания активности может быть вычислен на основе интервала тайм-аута сервера конечной точки 1306, с которой приложение 118 должно обмениваться данными, например, через канал уведомлений. Например, интервал тайм-аута сервера может быть определен посредством модуля 128 диспетчера поддержания активности на основе известного тайм-аута, указываемого посредством приложения, которое сконфигурировано с возможностью взаимодействовать с конечной точкой 1306.

[00102] Приложение 118, например, может быть сконфигурировано с возможностью взаимодействовать с конкретной конечной точкой, к примеру, со службой социальной сети. Следовательно, это приложение может быть кодировано с использованием ″сведений″ по интервалу тайм-аута сервера для этого тайм-аута, так что приложение 118 может быть сконфигурировано с возможностью поддерживать канал уведомлений с этой конечной точкой, например, принудительно отправлять передачи для того, чтобы поддерживать состояние с конечной точкой 1306. Следовательно, в этом примере модуль 128 диспетчера поддержания активности может определять этот интервал из самого приложения 118. Также рассматриваются другие примеры, к примеру, определение интервала тайм-аута сервера конечной точки 1306 априори, может быть основано на отслеживаемом взаимодействии между вычислительным устройством и конечной точкой 1306 (например, посредством обнаружения сбоев и повторного регулирования) и т.д.

[00103] В другой такой реализации интервал 1302 поддержания активности может быть вычислен с использованием интервала тайм-аута сети, чтобы затрагивать промежуточные устройства 1308 сети 114. Например, сетевое соединение между сетевым интерфейсным устройством, и конечная точка 1306 может заключать в себе множество промежуточных устройств 1308, таких как устройство трансляции сетевых адресов, прокси-сервер, брандмауэр, точка беспроводного доступа и т.д. Интервал тайм-аута сети может быть определен посредством модуля 128 диспетчера поддержания активности множеством способов.

[00104] Например, модуль 128 диспетчера поддержания активности может соединяться через сеть 114 и соответствующие промежуточные устройства 1308 с конечной точкой, которая имеет ″известный″ или ″заведомо длительный″ интервал тайм-аута сервера, такой как тестовое устройство, доступное для такого определения. Модуль 128 диспетчера поддержания активности затем может отслеживать соединение с известной конечной точкой, чтобы определять, когда промежуточные устройства 1308 ″превышают тайм-аут″, и, как результат, определять интервал тайм-аута сети промежуточных устройств 1308. Этот интервал тайм-аута сети может быть сохранен посредством модуля 128 диспетчера поддержания активности для использования при вычислении интервала 1302 поддержания активности. Например, этот интервал тайм-аута сети может быть сохранен конкретным для конкретной сети, через которую сетевое интерфейсное устройство 112 осуществляет доступ к сети 114.

[00105] В одной или более реализаций, интервал 1302 поддержания активности может быть вычислен на основе интервала тайм-аута сервера конечной точки 1306, интервала тайм-аута сети промежуточных устройств 1308 и даже обоих интервалов. Интервал 1302 поддержания активности, например, может быть вычислен посредством модуля 128 диспетчера поддержания активности, чтобы эффективно использовать ресурсы вычислительного устройства 102 при поддержании каналов уведомлений. Например, модуль 128 диспетчера поддержания активности может определять то, что интервал тайм-аута сети составляет 15 секунд, и интервал тайм-аута сервера составляет 20 секунд. Следовательно, модуль 128 диспетчера поддержания активности может активировать сетевое интерфейсное устройство 112 с пятнадцатисекундными интервалами, чтобы обмениваться данными с конечной точкой 1306 и за счет этого поддерживать конечную точку 1306 и промежуточные устройства 1308 активными. Таким образом, в этом случае модуль 128 диспетчера поддержания активности может не допускать активации сетевого интерфейсного устройства 112 в пятнадцатом и в двадцать втором интервалах, и при этом позволять обоим устройствам поддерживать состояние.

[00106] Таким образом, может вычисляться одно значение тайм-аута сети и минимум этих значений (например, базовый минимальный уровень), чтобы вычислять совокупное время, которое описывает, когда параллельные индикаторы поддержания активности отправляются. Таким образом, интервал тайм-аута сети может применяться ко множеству соединений сервера.

[00107] Дополнительно, одна или более реализаций могут затрагивать потерю сетевого соединения. Сети могут быть несогласованными, так что соединения могут теряться время от времени. Когда это происходит, постоянное соединение с сервером может быть разорвано. Таким образом, эти реализации могут использовать способность автоматически обнаруживать, когда сеть снова доступна. Например, в Wi-Fi-сети это может осуществляться в аппаратных средствах или микропрограммном обеспечении эффективным способом через ″выгрузку сетевого списка″, через саму операционную систему и т.д. Таким образом, операционная система может уведомлять этот класс приложений относительно присутствия сети через процедуру обратного вызова, и эти приложения затем могут повторно устанавливать соединение, например, долговременное соединение с сервером извещающих уведомлений. Следовательно, объединенное уведомление может быть выполнено, чтобы давать возможность множеству приложений связи повторно устанавливать соединения, которые могут быть использованы для того, чтобы оптимизировать использование локальных вычислительных ресурсов, а также оптимизировать использование ресурсов сетевого интерфейсного устройства.

[00108] Также могут быть использованы посредством модуля 128 диспетчера поддержания активности технологии для того, чтобы затрагивать приложения 118, 120. Например, модуль 128 диспетчера поддержания активности может быть сконфигурирован с возможностью пакетировать связь, которая должна отправляться посредством приложений 118, 120, чтобы поддерживать каналы уведомлений. Таким образом, как и ранее, интервал 1302 поддержания активности может быть сконфигурирован для эффективного использования ресурсов вычислительного устройства 102, например, источника 108 питания.

[00109] Например, модуль 128 диспетчера поддержания активности может определять то, что приложение 118 сконфигурировано с возможностью инициировать связь с индикаторами поддержания активности с десятисекундными интервалами, и приложение 120 сконфигурировано с возможностью инициировать связь с индикаторами поддержания активности с восьмисекундными интервалами. Следовательно, модуль 128 диспетчера поддержания активности может активировать сетевое интерфейсное устройство 112 с восьмисекундными интервалами для осуществления связи посредством обоих приложений 118, 120. Таким образом, модуль 128 диспетчера поддержания активности может объединять инициированные приложением 118, 120 индикаторы поддержания активности для каналов уведомлений в различные конечные точки 1306, чтобы экономить электроэнергию и другие ресурсы. Таким образом, модуль 128 диспетчера поддержания активности может базировать интервал 1302 поддержания активности на множестве факторов, а также может регулировать интервал 1302 поддержания активности, дополнительное пояснение чего приведено относительно следующего чертежа.

[00110] Фиг. 14 является иллюстрацией системы 1400 в примерной реализации, показывающей примерную реализацию вычисления и регулирования интервала поддержания активности по фиг. 13. Как описано выше, поддержание канала уведомлений через промежуточные сетевые устройства может быть ответственностью приложений 118, 120, которые осуществляют доступ к сети 114. Традиционные технологии заключают в себе жестко закодированное значение, которое задает интервал для того, чтобы отправлять/принимать пакеты, чтобы сохранять состояние. Тем не менее, в данном документе описаны технологии, в которых динамический интервал поддержания активности вычисляется, например, с использованием тестового соединения с данным удаленным назначением, посредством анализа приложений 118, 120 на самом вычислительном устройстве 102, посредством использования интервалов тайм-аута сети и сервера и т.д.

[00111] Система 1400 по фиг. 14 иллюстрирует пример регулирования интервала 1302 поддержания активности по фиг. 13. В этом примере, начальный вычисленный интервал поддержания активности задается на стадии инициализации в качестве T=T(max) (этап 1402). Затем опробуются опорные точки, которые ниже текущего T (этап 1404). Это может заключать в себе опрос W(min) с T(min), где W представляет время повторного соединения между опросом (этап 1406). Это также может заключать в себе активную настройку, при которой T увеличивается на V и ограничивается как T(max) (этап 1408), где V представляет приращение для активной настройки. Система 1400 также может заключать в себе точную настройку, при которой значение увеличивается на V/Y, где Y представляет 1/Y от активного приращения. Эти значения могут быть использованы для того, чтобы определять установившееся состояние, в котором T является обнаруженным значением, а T(LKG) является абсолютным временем. На схеме, Z представляет число выполняемых повторений, которое может задаваться таким образом, чтобы разрешать ошибки сети, и X представляет число успешных индикаторов поддержания активности (КАС). Дополнительное пояснение операции модуля 128 диспетчера поддержания активности приведено относительно следующих процедур.

[00112] Фиг. 15 иллюстрирует процедуру 1500 в примерной реализации, в которой интервал поддержания активности вычисляется и используется для того, чтобы поддерживать один или более каналов уведомлений. Аспекты процедуры могут быть реализованы в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые посредством одного или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях нижеприведенного пояснения упоминаются окружение по фиг. 1 и системы и примерные реализации фиг. 13-14.

[00113] Интервал поддержания активности вычисляется посредством операционной системы вычислительного устройства (этап 1502). Как описано относительно фиг. 13 и 14, интервал поддержания активности может быть вычислен множеством способов, к примеру, на основе интервала тайм-аута сети, интервала тайм-аута сервера, на основе диспетчеризации связи для поддержания активности для множества приложений 118, 120 и т.д.

[00114] Интервал поддержания активности используется для того, чтобы поддерживать один или более каналов уведомлений между одним или более приложений вычислительного устройства и сетью (этап 1504). Модуль 128 диспетчера поддержания активности, например, может отслеживать сетевую связь, чтобы отправлять и принимать данные через каналы уведомлений. Если один или более каналов уведомлений достигает интервала поддержания активности без вовлечения сетевой связи 1304, модуль 128 диспетчера поддержания активности может поддерживать канал посредством обмена данными с соответствующей конечной точкой 1306.

[00115] Интервал поддержания активности также может регулироваться на основе отслеживаемого использования интервала поддержания активности посредством операционной системы (этап 1506). Например, модуль 128 диспетчера поддержания активности может определять то, что канал уведомлений прекращает функционировать вследствие достижения интервала тайм-аута службы или сети. Модуль 128 диспетчера поддержания активности затем может регулировать интервал 1302 поддержания активности ″вниз″ (например, уменьшать количество времени, заданное посредством интервала) на количество времени, которое меньше наблюдаемого количества времени, в который превышен тайм-аут канала. Естественно, также рассматриваются другие примеры, к примеру, чтобы увеличивать интервал 1302 поддержания активности, как описано относительно фиг. 14.

[00116] Фиг. 16 иллюстрирует процедуру 1600 в примерной реализации, в которой интервал поддержания активности вычисляется для того, чтобы пакетировать связь для поддержания активности из приложений. Аспекты процедуры могут быть реализованы в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. Процедуры проиллюстрированы как набор этапов, которые задают операции, выполняемые посредством одного или более устройств, и они не обязательно ограничены показанными последовательностями для выполнения операций посредством соответствующих этапов. В частях нижеприведенного пояснения упоминаются окружение по фиг. 1 и системы и примерные реализации фиг. 13-14.

[00117] Для каждого из множества приложений, выполняемых на вычислительном устройстве, выполняется определение одного или более интервалов тайм-аута сервера, указываемых для того, чтобы поддерживать канал уведомлений с соответствующей конечной точкой через сеть (этап 1602). Модуль 128 диспетчера поддержания активности, например, может анализировать приложения 118, 120, чтобы определять интервал тайм-аута сервера, который должен быть использован посредством соответствующих приложений для того, чтобы поддерживать каналы уведомлений с соответствующими конечными точками.

[00118] Интервал поддержания активности вычисляется из одного или более интервалов тайм-аута сервера для каждого из множества приложений (этап 1604). Как описано относительно фиг. 13, модуль 128 диспетчера поддержания активности, может определять интервал 1302 поддержания активности на основе эффективности использования ресурсов для различных интервалов тайм-аута сервера. Интервал поддержания активности затем может быть использован для того, чтобы активировать сетевое интерфейсное устройство, указанное для того, чтобы поддерживать каналы уведомлений (этап 1606). Например, модуль 128 диспетчера поддержания активности может определять то, что сетевая связь 1304 не выполняется ни для одного из каналов связи в то время, когда сетевое интерфейсное устройство 112 находится в режиме с низким уровнем мощности. Соответственно, модуль 128 диспетчера поддержания активности может активировать сетевое интерфейсное устройство 112, чтобы обмениваться данными с соответствующими конечными точками 1306 в интервале 1302 поддержания активности для того, чтобы эффективно использовать ресурсы вычислительного устройства 102. Также рассматривается Множество других примеров, как описано выше и как дополнительно описано относительно следующего примера реализации.

Пример реализации

[00119] Фиг. 17 и 18 иллюстрируют системы 1700, 1800, показывающие примеры реализации посредника 122 сетевых подключений по фиг. 1. Как описано выше относительно фиг. 1, поддержка состояния системы, называемого ″режимом ожидания с подключением″ в устройствах на основе внутрикристальной системы, может предоставлять возможность обеспечения взаимодействия с пользователем в режиме ″всегда включен/всегда на связи″ (AOAC). Например, приложение может быть приостановлено, если не ″в фокусе″, например, не на переднем плане. Как результат, сеть 114 и сетевые интерфейсные устройства 112 могут переходить в ″тихий режим сети″ (netqm). В этом режиме операционная система 116 может предотвращать исходящие пакеты из устройства при обеспечении того, что возможности подключения L2 и идентификационные данные L3 поддерживаются. Индикатор из компонента, называемого в качестве координатора зависимости от электропитания (PDC), чтобы выходить из тихого режима. По завершению задач, которые заключают в себе соединения сети 114, модуль 122 сетевого посредника может инструктировать сетевому интерфейсному устройству 112 снова переходить в тихий режим сети и оставаться в этом состоянии до тех пор, пока PDC не укажет событие выхода.

[00120] Обзор системы 1700, которая включает эту схему, показывается на фиг. 17. Данные показывают приложение чата (например, сконфигурированного для чата через сеть 114), которое включает в себя облегченную заглушку 1704 чата, которая сконфигурирована с возможностью обрабатывать соединения и другую информацию использования системных ресурсов для приложения 1702 чата. Приложение 1702 чата также включает в себя ″относительно ресурсоемкую″ часть UI 1706 чата приложения 1702, которая отделяется от облегченной заглушки соединения, представленной посредством заглушки 1704 чата. Это представляет собой одну из множества технологий, которые могут быть использованы для того, чтобы векторизовать функциональность приложения 1702.

[00121] Диспетчер 1708 продолжительности существования процессов также иллюстрируется как представляющий функциональность для того, чтобы управлять жизненным циклом приложения 1702. Другими словами, когда задача приложения 1702 снимается и выводится из фокуса пользователя (например, переводится в фоновый режим), PLM 1708 может завершать процесс UI 1706 чата и приостанавливать заглушку 1704 чата в запоминающем устройстве.

[00122] Система 1700 может использовать инфраструктуру посредников ядра, которая включает в себя механизм, чтобы восстанавливать заглушку 1704 чата, когда интересное событие возникает для приложения 1702, как описано выше. Таким образом, ресурсы вычислительного устройства могут экономиться, например, CPU вычислительного устройства 102 может переходить в тихий режим и остаться в этом режиме до тех пор, пока входящее сообщение не инициирует активирование, посредники ядра не активируют систему для периодической активности и т.д.

[00123] Посредник 1710 сетевых подключений (NCB) (который может соответствовать или не соответствовать модулю 122 сетевого посредника по фиг. 1) может использовать множество видов функциональности, которая представляется как диспетчер 1712 шаблонов активации и диспетчер 1714 поддержания активности. Диспетчер 1712 шаблонов активации (WPM) сконфигурирован с возможностью обеспечивать то, что приложение 1702 может ″восстанавливаться″ при сетевом событии, например, активироваться при обнаружении конкретного шаблона.

[00124] Диспетчер 1714 поддержания активности сконфигурирован с возможностью обеспечивать то, что канал уведомлений является поддерживаемым для приложения 1702, например, для досягаемости из облачной службы для входящих извещающих уведомлений. Например, приложение 1702 может регистрировать рабочий элемент в BI 1802 по фиг. 18, в силу этого указывая операционной системе 116 то, что приложению 1702 требуются действия по поддержанию активности. Операционная система 116 затем может определять надлежащий объединенный интервал поддержания активности, чтобы активировать приложения 1702, которые регистрируют обратный вызов, чтобы указывать, что активность по передаче исходящих пакетов разрешается в течение предварительно заданного количества времени, например, в течение нескольких секунд. BI 1802 может помещать рабочие элементы в среду типа ″песочница″ с точки зрения ресурсов CPU и запоминающего устройства. Это дает возможность приложению 1702 выполнять периодическое ″поддержание активности″ для соответствующей конечной точки (например, службы ″в облаке″), чтобы поддерживать досягаемость. Это также может быть использовано для того, чтобы ограничивать способность приложений к неэффективному использованию ресурсов вследствие огромного множества индикаторов поддержания активности.

[00125] Операционная система в сочетании со службой предоставления уведомлений (например, Windows Notification Service) может быть использована для того, чтобы определять динамический интервал поддержания активности, как описано выше. Динамический интервал поддержания активности, например, может быть реализован как ″экспоненциальная задержка″, которая удваивает количество времени, заданное посредством интервала, начинающегося умеренно с четырехминутным интервалом и увеличивающегося до значения, при котором по-прежнему поддерживается соединение. Служба предоставления уведомлений может использовать тестовое соединение с этой целью с тем, чтобы определять динамический интервал. В одной или более реализаций, диспетчер 1714 поддержания активности не различает между состоянием приложения или системы: в режиме ожидания с подключением или в режиме активности/включения, хотя также рассматриваются другие реализации.

[00126] Диспетчер 1712 шаблонов активации представляет функциональность для того, чтобы встраивать надлежащий шаблон активации для сетевого интерфейсного устройства, к примеру, сетевой интерфейсной платы 1716 (NIC). Диспетчер 1712 шаблонов активации может инструктировать NIC 1716 переходить в режим активации по LAN при переходе в тихий режим сети. NIC 1716, например, может переходить в режим D3, в котором NIC 1716 сконфигурирована с возможностью принимать и доставлять входящий пакет, если он совпадает с набором шаблонов активации. Если да, может инструктировать NIC 1716 переходить в активное состояние. Шаблоны активации могут извлекаться из множества источников, к примеру, ″<SrcAddr, DstAddr, SrcPort, DstPort, TransportProtocol>″ для каждого соединения с поддержкой функции активации. В одной или более реализаций, NIC 1716 передает входящий пакет, который вызывает активацию, в стек протоколов (в отличие от его игнорирования/отбрасывания), поскольку потеря этого пакета может оказывать влияние на чувствительность в реальном времени для приложений, которые поддерживают такие функции, как VoIP.

[00127] API-поверхность среды выполнения также может быть представлена приложениям, которые сконфигурированы с возможностью использовать функциональность поддержания активности и удаленной активации, предоставленную посредством операционной системы 116. Эта библиотека может использоваться для того, чтобы давать возможность приложениям выполнять множество функций, включающих в себя:

- указание создания каналов уведомлений (например, BeginSetup);

- указание завершения установления каналов уведомлений (например, EndSetup);

- задание требуемого интервала поддержания активности в минутах (например, ServerKeepAliveIntervalTime);

- регистрация обработчиков фоновых задач для событий поддержания активности и событий удаленной активации; и

- указание системе то, что интервал поддержания активности является недостаточным (например, DecreaseKeepAliveInterval).

[00128] Поскольку система уведомлений может быть реализована как компонент папки входящих сообщений, который непрерывно выполняется, код рабочего элемента, который должен выполняться для событий поддержания активности, может быть инициирован посредством метода прокси-сервера активации. Прокси-сервер активации может скрываться в библиотеке среды выполнения и активироваться через частный API. Проверка через службу NCB может быть использована для того, чтобы проверять уровень целостности процесса. Прокси-сервер создает WNF-события и прослушивает WNF-канал на предмет сообщений о WNF-событиях. Обработчик фоновых задач для службы предоставления уведомлений может инициироваться посредством прокси-сервера, когда BI (в результате вызова BiSignalEvent посредством службы NCB/TCPIP.sys) публикует сообщение о WNF-событии.

[00129] API-библиотека среды выполнения может использовать LRPC, чтобы обмениваться данными с подслужбой NCB (Ncbsvc.dll), хостинг которой выполняется в службе IP Helper, чтобы предоставлять время поддержания активности NCB и принимать имена событий для событий поддержания активности и активации. API среды выполнения затем может вызывать API инфраструктуры посредников, чтобы ассоциировать предоставляемые приложением обратные вызовы с предоставляемыми инфраструктурой посредников событиями.

[00130] Система 1800 по фиг. 18 включает в себя регистратор 1804 NCB, который сконфигурирован с возможностью изолировать фактические интерфейсы связи, используемые посредством службы 1806 NCB, чтобы взаимодействовать с остальной частью операционной системы 116. Например, RPC, используемый посредством API среды выполнения, может быть изолирован в регистраторе NCB. Регистратор может открывать конечную точку RPC-сервера и прослушивать приложения. Приложения могут использовать библиотеку среды выполнения, описанную выше, для того чтобы подключаться к этой конечной RPC-точке.

[00131] Аналогично, фактический доступ API BI 1802 может скрываться в регистраторе 1804 NCB, как проиллюстрировано. Это дает возможность изолирования диспетчера 1714 поддержания активности от архитектурных изменений. Регистратор 1804 NCB может вызывать API BI 1802, чтобы создавать события ″поддержания активности″ и ″активации″. Другая часть регистратора 1804 NCB может заключать в себе обмен данными с WPM 1808.

[00132] Интерфейс 1810 поставщика интервалов поддержания активности сконфигурирован с возможностью позволять WNS регистрироваться в качестве поставщика интервалов поддержания активности и может использовать LRPC для обмена данными с WNS. WNS может предоставлять оценки интервалов поддержания активности с использованием обратных вызовов, зарегистрированных посредством интерфейса 1810 поставщика интервалов поддержания активности.

[00133] Интерфейс 1810 поставщика интервалов поддержания активности может кэшировать оценки на базе сети (идентификатора NLM) в библиотеке 1812 NLM-кэша. Доступ к этому NLM-кэшу может осуществляться через библиотеку, которая может быть общей для интерфейса поставщика интервалов поддержания активности и диспетчера DA-узлов.

[00134] Диспетчер 1714 поддержания активности может быть сконфигурирован с возможностью запрашивать оценку интервала поддержания активности из поставщика интервалов поддержания активности. Таймер (который может быть совокупным) может быть создан с использованием API SetThreadPoolTimer. Время может задаваться в качестве минимума T_WNS и T_APP - интервал поддержания активности, запрашиваемый посредством приложения.

[00135] Когда таймер поддержания активности истекает, диспетчер 1714 поддержания активности может передавать в служебных сигналах событие поддержания активности посредством вызова регистратора 1804 NCB. Регистратор 1804 NCB затем может вызывать API BI 1802, чтобы инициировать рабочие элементы, которые должны диспетчеризоваться.

[00136] Приложение может предоставлять NCB подсказку касательно того, что предоставленный интервал слишком длинный. Она может быть использована вместе с идентификатором приложения и идентификатором канала уведомлений, чтобы сохранять в кэше снова на базе сети с использованием библиотеки 1812 NLM-кэша, описанной ранее.

[00137] Модель для идентификации каналов уведомлений может быть основана на модели ″начало/завершение″, которая разграничивает промежуток времени на уровне процесса, в течение которого каждое установленное TCP-соединение посредством процесса (кроме возврата цикла) обрабатывается в качестве канала уведомлений посредством NCB. Тем не менее, промежуток времени по модели ″начало/завершение″ имеет один набор параметров, совместно называемый одним ″NCContext″, которые применяются к каждому из соединений, созданных в течение этого промежутка. Следует отметить, что типично встречается взаимосвязь ″один-к-одному″ между NCContext и TCP-соединением. Тем не менее, модель ″начало/завершение″ не гарантирует эту взаимосвязь, следовательно, эта схема может работать при допущении, что может быть несколько TCP-соединений, которые соответствуют одному промежутку NCContext. Этот промежуток может быть идентифицирован посредством кортежа, который включает в себя идентификатор процесса, непрозрачный идентификатор NCContext, созданный и используемый посредством регистратора, необязательный непрозрачный идентификатор канала уведомлений (передаваемый в BI в ходе передачи служебных сигналов по событию, следовательно, значимый для приложения), и необязательное опосредованное событие удаленной активации.

[00138] Регистратор 1804 NCB может быть сконфигурирован с возможностью указывать Start(PID, NCContextID, AppNCID, BrokeredEvent) и Done() (например, задание и очистка NCContext) для WPM. Регистратор 1804 NCB также может обеспечивать то, что фактический PID процесса приложения остается нетронутым (например, не подвергается повторной циклической обработке) в течение промежутка времени по модели ″начало/завершение″. Регистратор 1804 NCB может добиваться этого посредством использования RPC API, который принимает опорный уровень в клиентском процессе.

[00139] NCB может указать ″начало″ и ″завершение″ в WPM 1808 через NSI 1814. WPM может представлять INET NSI-объект (который может быть аналогичным NSI-объекту резервирования портов) для этой цели. NCB может использовать команды из NSI-набора для задания активного NCContext (например, Start (″начало″)) и очистки активного NCContext (например, Done (″завершение″)). В одной или более реализаций, предусмотрен один активный NCContext для данного процесса в данный момент времени.

[00140] TCP-соединения, устанавливаемые посредством данного процесса, могут наследовать текущий активный NCContext (если таковые имеются) для этого процесса. После того, как NCContext унаследован, он может оставаться присоединенным к наследуемому TCP-соединению. Если NCB задает новый активный NCContext для процесса (например, после очистки предыдущего активного процесса), новые соединения могут наследовать новый NCContext, и соединения, которые наследуют предыдущий NCContext, могут оставаться незатронутыми. Унаследованный NCContext (посредством одного или более TCP-соединений) может быть очищен посредством службы 1806 NCB также посредством использования NSI 1814. Если NCContext очищается, WPM 1808 может прекращать передачу служебных сигналов ассоциированного опосредованного события удаленной активации (но встроенный шаблон активации остается нетронутым до тех пор, пока не будет закрыто соединение).

[00141] Поскольку WPM 1808 может отслеживать некоторое состояние для каждого процесса (например, активные и унаследованные NCContext), который управляется посредством службы 1806 NCB, он может основываться на службе 1806 NCB, чтобы надлежащим образом очищать состояние (NCContext) при завершении приложений.

Тем не менее, возможно то, что процесс службы 1806 NCB может завершаться аварийно/ненормально. Чтобы выполнять надлежащую очистку, WPM 1808 может принимать индикатор относительно завершения процесса службы NCB посредством создания посредством NCB TCP-сокета (не привязанного или соединенного) и задания частного параметра на сокете, чтобы помечать его в качестве сокета управления NCB. Поскольку диспетчер объектов надлежащим образом закрывает дескрипторы (которые включают в себя сокеты) при завершении процесса, закрытие дескрипторов сокетов приводит к инициированию процедуры закрытия конечной точки TCP. TCP затем может очищать каждый NCContext при закрытии сокета управления NCB.

[00142] Как описано выше, диспетчер 1808 шаблонов активации (WPM) (который может быть реализован в TCP-модуле в tcpip.sys) может быть сконфигурирован с возможностью отслеживать NCContext. TCP может сохранять таблицу процессов и ассоциированный NCContext, заданный посредством службы 1806 NCB. В одной или более реализаций, существует один или нуль ″активных″ NCContext для данного процесса, и может быть предусмотрен один или более ″унаследованных″ NCContext для данного процесса. TCP может быть сконфигурирован с возможностью позволять единой системной учетной записи, под которой запускается служба NCB, задавать/очищать NCContext.

[00143] В одной или более реализаций, NCContext имеет один опорный счетчик для ″активности″ и один опорный счетчик для каждого наследуемого соединения. Иными словами, NCContext может быть удален, когда он ни является активным, ни унаследован посредством соединений.

[00144] Когда соединение наследует NCContext, WPM 1808 может встраивать шаблон активации, состоящий из кортежа из 4 элементов соединения, в сетевое интерфейсное устройство через методы NSI 1814 для встраивания шаблонов активации, если NIC поддерживает шаблоны активации. WPM 1808 может отслеживать, успешно встроен или нет шаблон активации для данного соединения для каждого активного NCContext. До того, как активный NCContext очищается посредством службы NCB во время вызова Done, служба 1806 NCB может выдавать метод NSI get для этого NCContext, чтобы запрашивать это состояние встраивания шаблонов активации и возвращать информацию в приложение (например, то, может или нет система встраивать шаблон активации для соединения, ассоциированного с этим NCContext).

[00145] Для каждого TCP-соединения, которое наследует NCContext с опосредованным событием удаленной активации, TCP может передавать в служебных сигналах опосредованное событие удаленной активации каждый раз, когда выполняется индикация данных (например, восходящий вызов или завершение приема) посредством TCP для этого соединения вследствие поступающих данных. После того, как TCP передает в служебных сигналах событие удаленной активации, он может деактивировать (например, нейтрализовать) дополнительную передачу в служебных сигналах для этого NCContext до тех пор, пока событие удаленной активации не будет реактивировано посредством службы 1806 NCB. Служба 1806 NCB реактивирует событие удаленной активации после того, как обратный вызов по удаленной активации приложения возвращает управление в процедуру NCB, которая инициирует обратный вызов.

[00146] Обработка функции ввода-вывода SIO_ADDRESS_LIST_SORT в NL также может быть изменена, чтобы иметь сведения по тому, выдается или нет функция ввода-вывода посредством процесса в то, когда существует активный NCContext для этого процесса, и если да, логика сортировки может предпочитать адреса по собственным интерфейсам, чтобы туннелировать интерфейсы.

[00147] WPM 1808 также может поддерживать таймер для отслеживания оставшихся допустимых продолжительностей существования для IPv6-адресов, сформированных посредством использования IPv6-префикса подсети, оповещаемых посредством маршрутизатора. Поскольку оповещения маршрутизатора могут быть отброшены посредством NIC в состоянии с низким уровнем мощности с поддержкой функции активации, тайм-аут IPv6-префикса может быть обновлен через явное опрашивание маршрутизаторов до того, как возникает тайм-аут, в противном случае идентификационные данные L3 не могут сохраняться надежно в некоторых случаях. WPM 1808 может использовать NDIS API, чтобы принимать ″опорный уровень поддержания активного состояния NIS″ на сетевом интерфейсе, на котором может осуществляться опрашивание маршрутизаторов, чтобы обеспечивать то, что NIC ″не ложится спать″ (например, не переходит в D3 вследствие отсутствия хранимого опорного уровня поддержания активного состояния NIS у какого-либо элемента в системе).

Примерная система и устройство

[00148] Фиг. 19 иллюстрирует примерную систему 1900, которая включает в себя вычислительное устройство 102, как описано со ссылкой на фиг. 1. Примерная система 1900 предоставляет повсеместные окружения для прозрачного взаимодействия с пользователем при запуске приложений на персональном компьютере (PC), устройстве телевизионного приемника и/или мобильном устройстве. Службы и приложения запускаются практически аналогично во всех трех окружениях для взаимодействия обычного пользователя при переходе от одного устройства к следующему при использовании приложения, проведении видеоигры, просмотре видеофильма и т.д.

[00149] В примерной системе 1900 несколько устройств соединяются через центральное вычислительное устройство. Центральное вычислительное устройство может быть локальным для нескольких устройств или может быть расположено удаленно относительно этих нескольких устройств. В одном варианте осуществления, центральное вычислительное устройство может быть облаком из одного или более серверных компьютеров, которые подключаются к нескольким устройствам через сеть, Интернет или другую линию передачи данных. В одном варианте осуществления, эта соединительная архитектура предоставляет функциональность для того, чтобы доставляться по нескольким устройствам, чтобы предоставлять общее и прозрачное взаимодействие пользователю этих нескольких устройств. Каждое из нескольких устройств может иметь различные физические требования и характеристики, и центральное вычислительное устройство использует платформу для того, чтобы обеспечивать доставку взаимодействия в устройство, которое и подходит для устройства, и при этом является стандартным для всех устройств. В одном варианте осуществления, создается класс целевых устройств, и взаимодействие приспосабливается к общему классу устройств. Класс устройств может быть задан посредством физических признаков, типов использования или других общих характеристик устройств.

[00150] В различных реализациях, вычислительное устройство 102 может допускать множество различных конфигураций, к примеру, для вариантов использования в компьютере 1902, на мобильном устройстве 1904 и телевизионном приемнике 1906. Каждая из этих конфигураций включает в себя устройства, которые могут иметь, в общем, различные конструкции и характеристики, и в силу этого вычислительное устройство 102 может быть сконфигурировано согласно одному или более различных классов устройств. Например, вычислительное устройство 102 может быть реализовано как класс компьютера 1902 для устройства, которое включает в себя персональный компьютер, настольный компьютер, многоэкранный компьютер, переносной компьютер, нетбук и т.д.

[00151] Вычислительное устройство 102 также может быть реализовано как класс мобильного устройства 1904 для устройства, которое включает в себя мобильные устройства, такие как мобильный телефон, портативный музыкальный проигрыватель, портативное игровое устройство, планшетный компьютер, многоэкранный компьютер и т.д. Вычислительное устройство 102 также может быть реализовано как класс телевизионного приемника 1906 для устройства, которое включает в себя устройства, имеющие или подключенные, в общем, к большим экранам в нестандартных окружениях просмотра. Эти устройства включают в себя телевизионные приемники, абонентские приставки, игровые приставки и т.д. Технологии, описанные в данном документе, могут поддерживаться посредством этих различных конфигураций вычислительного устройства 102 и не ограничены конкретными примерами технологий, описанных в данном документе. Это проиллюстрировано посредством включения использования модуля 122 сетевого посредника, модуля 124 диспетчера шаблонов активации, модуля 126 диспетчера сетевого устройства и модуля 128 диспетчера поддержания активности на вычислительном устройстве 102. Вся или часть этой функциональности также может быть распределена ″по облаку″, как описано ниже.

[00152] Облако 1908 включает в себя и/или представляет платформу 1910 для служб 1912 управления контентом. Платформа 1910 абстрагирует базовую функциональность аппаратных (например, серверных) и программных ресурсов облака 1908. Службы 1912 управления контентом могут включать в себя приложения и/или данные, которые могут быть использованы в момент, когда компьютерная обработка выполняется на серверах, которые являются удаленными относительно вычислительного устройства 102. Службы 1912 управления контентом могут предоставляться в качестве службы по Интернету и/или через абонентскую сеть, такую как сотовая или Wi-Fi-сеть.

[00153] Платформа 1910 может абстрагировать ресурсы и функции, чтобы соединять вычислительное устройство 102 с другими вычислительными устройствами. Платформа 1910 также может служить для того, чтобы абстрагировать масштабирование ресурсов, чтобы предоставлять соответствующий уровень масштаба для указанного запроса в службы 1912 управления контентом, которые реализуются через платформу 1910. Соответственно, в варианте осуществления с соединенными устройствами, реализация функциональности, описанной в данном документе, может быть распределена по всей системе 1900. Например, функциональность может быть реализована частично на вычислительном устройстве 102, а также через платформу 1910, которая абстрагирует функциональность облака 1908.

[00154] Фиг. 20 иллюстрирует различные компоненты примерного устройства 2000, которое может быть реализовано как любой тип вычислительного устройства, как описано со ссылкой на фиг. 1-11 и 19, чтобы реализовывать варианты осуществления технологий, описанных в данном документе. Устройство 2000 включает в себя устройства 2002 связи, которые обеспечивают проводную и/или беспроводную передачу данных 2004 устройства (например, принимаемых данных, данных, которые принимаются, данных, диспетчеризованных для широковещательной передачи, пакетов данных с данными и т.д.). Данные 2004 устройства или другой контент устройства могут включать в себя конфигурационные настройки устройства, мультимедийный контент, сохраненный на устройстве, и/или информацию, ассоциированную с пользователем устройства. Мультимедийный контент, сохраненный на устройстве 2000, может включать в себя любой тип аудиоданных, видеоданных и/или данных изображений. Устройство 2000 включает в себя один или более вводов 2006 данных, через которые может приниматься любой тип данных, мультимедийного контента и/или вводов, к примеру, выбираемые пользователем вводы, сообщения, музыка, телевизионный мультимедийный контент, записанный видеоконтент и любой другой тип аудиоданных, видеоданных и/или данных изображений, принимаемых из любого источника контента и/или данных.

[00155] Устройство 2000 также включает в себя интерфейсы 2008 связи, которые могут быть реализованы как одно или более из последовательного и/или параллельного интерфейса, беспроводного интерфейса, любого типа сетевого интерфейса, модема и как любой другой тип интерфейса связи. Интерфейсы 2008 связи предоставляют линии подключения и/или связи между устройством 2000 и сетью связи, посредством которых другие электронные устройства, вычислительные устройства и устройства связи обмениваются данными с устройством 2000.

[00156] Устройство 2000 включает в себя один или более процессоров 2010 (например, любой из микропроцессоров, контроллеров и т.п.), которые обрабатывают различные машиноисполняемые инструкции, чтобы управлять работой устройства 2000 и реализовывать варианты осуществления технологий, описанных в данном документе. Альтернативно или помимо этого, устройство 2000 может быть реализовано с любыми или комбинацией аппаратных средств, микропрограммного обеспечения или неизменяемых логических схем, которые реализуются в связи с обработкой, и схем управления, которые, в общем, идентифицируются в 2012. Хотя не показано, устройство 2000 может включать в себя системную шину или систему передачи данных, которая соединяет различные компоненты в устройстве. Системная шина может включать в себя любую или комбинацию различных шинных структур, к примеру, шину запоминающего устройства или контроллер запоминающего устройства, периферийную шину, универсальную последовательную шину и/или процессорную или локальную шину, которая использует любую из множества шинных архитектур.

[00157] Устройство 2000 также включает в себя машиночитаемые носители 2014, к примеру, один или более компонентов запоминающего устройства, примеры которых включают в себя оперативное запоминающее устройство (RAM), энергонезависимое запоминающее устройство (например, одно или более постоянного запоминающего устройства (ROM), флэш-памяти, EPROM, EEPROM и т.д.) и дисковое устройство хранения данных. Дисковое устройство хранения данных может быть реализовано как любой тип магнитного устройства хранения данных или оптического устройства хранения данных, такого как жесткий диск, записываемый и/или перезаписываемый компакт-диск (CD), любой тип универсального цифрового диска (DVD) и т.п. Устройство 2000 также может включать в себя устройство 2016 хранения данных большой емкости.

[00158] Машиночитаемые носители 2014 предоставляют механизмы хранения данных для того, чтобы сохранять данные 2004 устройства, а также различные приложения 2018 устройства и любые другие типы информации и/или данных, связанных с функциональными аспектами устройства 2000. Например, операционная система 2020 может поддерживаться в качестве компьютерного приложения с машиночитаемыми носителями 2014 и выполняться на процессорах 2010. Приложения 2018 устройства могут включать в себя диспетчер устройств (например, управляющее приложение, программное приложение, модуль управления и обработки сигналов, код, который является собственным для конкретного устройства, уровень абстрагирования от аппаратных средств для конкретного устройства и т.д.). Приложения 2018 устройства также включают в себя любые системные компоненты или модули, чтобы реализовывать варианты осуществления технологий, описанных в данном документе. В этом примере, приложения 2018 устройства включают в себя интерфейсное приложение 2022 и модуль 2024 ввода-вывода, которые показаны как программные модули и/или компьютерные приложения. Модуль 2024 ввода-вывода представляет программное обеспечение, которое используется для того, чтобы предоставлять интерфейс с устройством, сконфигурированным с возможностью захватывать вводы, таким как сенсорный экран, сенсорная панель, камера, микрофон и т.д. Альтернативно или помимо этого, интерфейсное приложение 2022 и модуль 2024 ввода-вывода могут быть реализованы как аппаратные средства, программное обеспечение, микропрограммное обеспечение или любая комбинация вышеозначенного. Дополнительно, модуль 2024 ввода-вывода может быть сконфигурирован с возможностью поддерживать несколько устройств ввода, таких как отдельные устройства, чтобы захватывать видео- и аудиовводы, соответственно.

[00159] Устройство 2000 также включает в себя систему 2026 аудио- и/или видеоввода-вывода, которая предоставляет аудиоданные в аудиосистему 2028 и/или предоставляет видеоданные в систему 2030 отображения. Аудиосистема 2028 и/или система 2030 отображения могут включать в себя любые устройства, которые обрабатывают, отображают и/или иным образом подготавливают посредством рендеринга аудиоданные, видеоданные и данные изображений. Видеосигналы и аудиосигналы могут передаваться из устройства 2000 в аудиоустройство и/или в устройство отображения через линию передачи RF (радиочастотного) сигнала, линию передачи сигнала S-Video, линию передачи композитного видеосигнала, линию передачи компонентного видеосигнала, DVI (цифровой видеоинтерфейс), аналоговое аудиосоединение или другую аналогичную линию связи. В варианте осуществления, аудиосистема 2028 и/или система 2030 отображения реализованы как внешние компоненты по отношению к устройству 2000. Альтернативно, аудиосистема 2028 и/или система 2030 отображения реализованы как интегрированные компоненты примерного устройства 2000.

Заключение

[0160] Хотя изобретение описано на языке, характерном для структурных признаков и/или технологических этапов, необходимо понимать, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничено описанными характерными признаками или этапами. Наоборот, характерные признаки и этапы раскрываются как примерные формы реализации заявленного изобретения.

Похожие патенты RU2595968C2

название год авторы номер документа
АППАРАТНАЯ ВИРТУАЛИЗИРОВАННАЯ ИЗОЛЯЦИЯ ДЛЯ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ 2017
  • Паи Навин Нараян
  • Джеффриз Чарльз Г.
  • Висванатхан Гиридхар
  • Шультц Бенджамин М.
  • Смит Фредерик Дж.
  • Ройтер Ларс
  • Эберсол Майкл Б.
  • Диас Куэльяр Херардо
  • Пашов Иван Димитров
  • Гаддехосур Поорнананда Р.
  • Пулапака Хари Р.
  • Рао Викрам Мангалоре
RU2755880C2
СПОСОБ И СИСТЕМА ДЛЯ УПРАВЛЕНИЯ ЭНЕРГОПОТРЕБЛЕНИЕМ СЕТЕВОГО ИНТЕРФЕЙСНОГО МОДУЛЯ В БЕСПРОВОДНОМ ВЫЧИСЛИТЕЛЬНОМ УСТРОЙСТВЕ 2003
  • Эрнандес Эдвин
  • Айягари Арун
  • Мур Тимоти М.
  • Ганугапати Кришна
  • Бахл Прадип
RU2313123C2
СВЯЗЫВАНИЕ УСТРОЙСТВ 2012
  • Лю Минь
  • Дисколо Энтони В.
  • Луй Эдмунд Хон-Сум
  • Лим Кеан И
  • Элграм Райан Б.
  • Бокс Дональд Ф.
  • Гуджин Мартин Дж.
  • Сюй Чжанвэй
  • Мэнион Тодд Р.
  • Гарднер Грант
  • Дьюи Джереми Л.
  • Купала Шираз Дж.
  • Стиб Курт А.
RU2631137C2
Диспетчер политик устройства 2015
  • Кауфман Питер Дж.
  • Чжу Юйхан
  • Прабху Соня
  • Спаитх Джон Чадуэлл
  • Хоу Джастин
RU2678496C2
ЧАСТНЫЕ ПСЕВДОНИМЫ КОНЕЧНЫХ ТОЧЕК ДЛЯ ИЗОЛИРОВАННЫХ ВИРТУАЛЬНЫХ СЕТЕЙ 2015
  • Миллер Кевин Кристофер
  • Шихан Ричард Александер
  • Лоренс Дуглас Стюарт
  • Овейс Марван Салах Эль-Дин
  • Дикинсон Эндрю Брюс
RU2669525C1
БЕСПРОВОДНОЙ СЕТЕВОЙ ИНТЕРФЕЙС С ИНФРАСТРУКТУРНЫМИ И ПРЯМЫМИ РЕЖИМАМИ 2011
  • Хассан Амер А.
  • Десаи Митеш К.
  • Санкаранараян Мукунд
  • Фильгейрас Энрике
  • Клир Марк
RU2603496C2
ОПРЕДЕЛЕНИЕ INTER-RAT ПОКРЫТИЯ ДЛЯ УПРАВЛЕНИЯ ЭНЕРГОСБЕРЕЖЕНИЕМ 2013
  • Чоу Джон
RU2593390C2
СВЯЗЫВАНИЕ КОМАНДНЫХ ПОВЕРХНОСТЕЙ С МНОЖЕСТВЕННЫМИ АКТИВНЫМИ КОМПОНЕНТАМИ 2009
  • Ларссон Йозеф
  • Бейли Эрик
  • Макконнелл Тим
RU2511583C2
ДИНАМИЧЕСКОЕ КОНФИГУРИРОВАНИЕ, ВЫДЕЛЕНИЕ И РАЗВЕРТЫВАНИЕ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ 2007
  • Линь Чи-Мин
  • Чжоу Шэн
  • Нандан Дургеш
  • Альбертсон Джеффри Ли
RU2429529C2
ПОСРЕДНИК В ЛОКАЛЬНОЙ СЕТИ ДЛЯ УДАЛЕННО ПОДКЛЮЧЕННОГО МОБИЛЬНОГО УСТРОЙСТВА, РАБОТАЮЩЕГО В РЕЖИМЕ ПОНИЖЕННОГО ЭНЕРГОПОТРЕБЛЕНИЯ 2006
  • Стирбу Влад
RU2370916C1

Иллюстрации к изобретению RU 2 595 968 C2

Реферат патента 2016 года УПРАВЛЕНИЕ ШАБЛОНАМИ АКТИВАЦИИ

Изобретение относится к технологии управления шаблонами активации. Технический результат - эффективное управление шаблонами активации. Способ управления шаблонами активации, реализуемый посредством вычислительного устройства, при этом способ содержит этапы, на которых: отслеживают сетевой трафик, принимаемый сетевым интерфейсным устройством вычислительного устройства; распознают шаблон трафика в отслеживаемом сетевом трафике; идентифицируют приложение вычислительного устройства, которое соответствует распознанному шаблону трафика; и в ответ на эту идентификацию, активируют, по меньшей мере, часть идентифицированного приложения. 3 н. и 17 з.п. ф-лы, 20 ил.

Формула изобретения RU 2 595 968 C2

1. Способ управления шаблонами активации, реализуемый посредством вычислительного устройства, при этом способ содержит этапы, на которых:
отслеживают сетевой трафик, принимаемый сетевым интерфейсным устройством вычислительного устройства;
распознают шаблон трафика в отслеживаемом сетевом трафике;
идентифицируют приложение вычислительного устройства, которое соответствует распознанному шаблону трафика; и
в ответ на эту идентификацию, активируют, по меньшей мере, часть идентифицированного приложения.

2. Способ по п. 1, в котором упомянутое распознавание выполняется посредством сравнения сетевого трафика с шаблоном трафика, который был предварительно зарегистрирован идентифицированным приложением.

3. Способ по п. 1, в котором упомянутая идентификация выполняется посредством анализа сетевого стека вычислительного устройства для определения того, какое из множества приложений вычислительного устройства должно быть активировано для шаблона трафика.

4. Способ по п. 1, в котором при упомянутой активации активируют часть идентифицированного приложения, которая соответствует сетевой функциональности идентифицированного приложения, и не активируют другую часть идентифицированного приложения, которая не соответствует сетевой функциональности идентифицированного приложения.

5. Способ по п. 4, в котором упомянутая другая часть заключает в себе формирование пользовательского интерфейса идентифицированного приложения.

6. Способ по п. 1, в котором сетевое интерфейсное устройство реализуется, по меньшей мере частично, посредством вычислительного устройства в качестве виртуального устройства.

7. Способ по п. 1, в котором упомянутые отслеживание, распознавание и идентификация выполняются в то время, когда идентифицированное приложение находится в состоянии приостановки.

8. Способ по п. 7, в котором идентифицированное приложение переводится в состояние приостановки в ответ на снятие фокуса с пользовательского интерфейса идентифицированного приложения.

9. Способ по п. 8, в котором фокус снимается вследствие минимизации пользовательского интерфейса, удаления пользовательского интерфейса с переднего плана пользовательского интерфейса рабочего стола или приема вводов, указывающих взаимодействие с пользовательским интерфейсом другого приложения.

10. Способ по п. 1, в котором упомянутые отслеживание, распознавание, идентификация и активация выполняются через исполнение операционной системы в вычислительном устройстве.

11. Способ по п. 1, в котором шаблон трафика описывает конкретные пакеты данных или инициированные удаленными оконечными точками индикаторы поддержания активности.

12. Способ по п. 1, в котором упомянутая идентификация выполняется таким образом, что другое приложение вычислительного устройства, которое находится в состоянии приостановки, не идентифицируется, и упомянутая активация выполняется таким образом, что это другое приложение не активируется.

13. Способ по п. 1, в котором упомянутые отслеживание, распознавание, идентификация и активация выполняются для пользователя, который активно регистрируется в вычислительном устройстве, и не выполняются для другого пользователя, который в вычислительном устройстве не регистрируется активно.

14. Способ управления шаблонами активации, реализуемый посредством вычислительного устройства, при этом способ содержит этапы, на которых:
регистрируют шаблон трафика в качестве соответствующего приложению, сконфигурированному для исполнения в вычислительном устройстве;
в качестве реакции на распознавание этого шаблона трафика в сетевом трафике, в то время как данное приложение находится в состоянии приостановки, запускают переход, по меньшей мере, части этого приложения из состояния приостановки в активное состояние.

15. Способ по п. 14, в котором при упомянутом запуске помещают часть приложения, которая соответствует сетевой функциональности приложения, и не помещают в активное состояние другую часть приложения, которая не соответствует сетевой функциональности приложения.

16. Способ по п. 15, в котором упомянутая другая часть заключает в себе формирование пользовательского интерфейса приложения.

17. Способ по п. 14, в котором упомянутые регистрация и запуск выполняются через исполнение операционной системы вычислительным устройством.

18. Машиночитаемый носитель информации, на котором сохранены инструкции, которые при их исполнении вычислительным устройством предписывают вычислительному устройству реализовывать операционную систему, выполненную с возможностью поддержки технологии активации, по меньшей мере, части приложения, находящегося в состоянии приостановки, в ответ на идентификацию входящего пакета, принятого через сетевое интерфейсное устройство вычислительного устройства.

19. Машиночитаемый носитель информации п. 18, при этом операционная система выполнена с возможностью объединения множества входящих пакетов для передачи в множество приложений вычислительного устройства.

20. Машиночитаемый носитель информации п. 18, при этом операционная система выполнена с возможностью активировать часть приложения, которая соответствует сетевой функциональности приложения, и не активировать другую часть приложения, которая соответствует формированию пользовательского интерфейса приложения.

Документы, цитированные в отчете о поиске Патент 2016 года RU2595968C2

Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок 1923
  • Григорьев П.Н.
SU2008A1
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
US 6938040 B2, 30.08.2005
US 7779451 B2, 17.08.2010.

RU 2 595 968 C2

Авторы

Тэйлер Дэвид Г.

Сринивасан Камалавасан

Ритц Эндрю Дж.

Гатта Сринивас Рагху

Эртугай Осман Н.

Гаддехосур Поорнананда Р.

Анипко Дмитрий А.

Даты

2016-08-27Публикация

2011-10-10Подача