Статус сетевого соединения и беспроводной связи в области уведомления
Иллюстрации
Показать всеИзобретение относится к системам отображения статуса сетевого соединения. Технический результат заключается в расширении функциональных возможностей при использовании средств отображения статусов сетевого соединения. Информация о наличии сетевого соединения может быть отображена через один значок области уведомлений (системной области уведомлений), в том числе посредством представления различных изображений значка, для отображения наличия соединений различных типов/состояний и соединений с помощью сред различных типов. Например, значок может указывать, присутствует ли Интернет-соединение и является ли соединение проводным или беспроводным. Значок может осуществлять периодический переход, по меньшей мере, между двумя изображениями для отображения различных переменных, например, типов соединений и/или соединений с помощью сред различных типов. Значок может быть интерактивным для обеспечения подсказки, раскрывающейся панели и/или контекстного меню, относящихся к состоянию сети, и значок может изменяться в ответ на событие изменения состояния сети, обновляться, когда обнаружено соединение с другими возможностями, когда обнаружен другой интерфейс и/или когда обнаружена беспроводная сеть с другим качеством сигнала. 3 н. и 9 з.п. ф-лы, 1 табл., 20 ил.
Реферат
УРОВЕНЬ ТЕХНИКИ
Современные операционные системы, такие как Microsoft® Windows® XP, отображают значок статуса сетевого соединения в области уведомлений панели задач, также называемой системной областью уведомлений. Системная область уведомлений занимает относительно большую часть панели задач, которая является ценной областью отображения для пользователей, и для большинства пользователей она всегда включена. Однако системная область уведомлений за долгое время заполняется многочисленными плохо спланированными, непоследовательными и очень разнообразными значками. Например, могут иметься значки для программ, для устройств, например принтеров, для беспроводных сетей (иногда включающие в себя один значок для программы управления беспроводной связью операционной системы и один значок для программы изготовителя платы беспроводной связи) и т.д.
Кроме того, отдельный компьютер может иметь несколько сетевых соединений в любое время, и в этом случае в системной области уведомлений имеется один значок для каждого сетевого соединения. Чтобы определить общий статус наличия соединения компьютера, когда присутствуют несколько сетевых соединений, конечный пользователь должен исследовать и, возможно, произвести взаимодействие с каждым из нескольких значков, представляющих различные сетевые соединения. Например, в Windows® XP соединение по локальной сети (LAN) и соединение менеджера соединений, такое как соединение с сервером дистанционного доступа (RAS), оба имеют свой собственный значок. Если соединение с RAS осуществлено по Интернету через соединение локальной сети (LAN), значки выглядят одинаково, например, как два наполовину перекрытых компьютерных дисплея, которые подсвечиваются светло-голубым цветом во время связи и становятся темными при бездействии (прямое/нижнее/левое представление дисплея подсвечивается при отправке и обратное/верхнее/правое представление дисплея подсвечивается при приеме).
Хотя пользователь может взглянуть на системную область уведомлений, чтобы увидеть наличие соединения, пользователь увидит несколько значков для нескольких соединений, поэтому чтобы определить, какой значок для какого соединения отображается, пользователь должен осуществить взаимодействие со значками (например, щелкнуть мышью или навести мышь). Кроме того, из-за большого количества значков в обычной системной области уведомлений некоторые из значков могут быть скрыты, и пользователю, вероятно, придется осуществлять взаимодействие с системной областью уведомлений, чтобы развернуть системную область уведомлений и увидеть эти скрытые значки.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Это описание сущности изобретения дано для того, чтобы в упрощенной форме представить выбор концепций, которые далее описаны в разделе осуществления изобретения. Это описание раскрытия изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного объекта, а также не предназначено для использования любым способом, который ограничил бы объем заявленного объекта.
Коротко говоря, различные описанные здесь аспекты заявленного объекта предназначены для технологии, посредством которой информация о сетевом соединении отображается через значок (иконку) области уведомлений (например, системной области уведомлений), в том числе посредством представления различных изображений значка для отображения наличия соединений различных типов и различных типов средств соединения. Например, значок может быть отображен по меньшей мере с частью компонента изображения, который указывает, когда присутствует Интернет-соединение, в то время как значок также может быть представлен по меньшей мере с частью изображения, которое представляет беспроводной сигнал, когда присутствует беспроводное соединение.
Таким образом, в различных примерах один значок может отобразить наличие соединений различного типа и различные типы средств соединения. Кроме того, значок может осуществлять периодический переход по меньшей мере между двумя изображениями для отображения различных переменных, например типов соединений и/или различных типов средств соединения. Значок может изменяться в ответ на событие изменения состояния сети. Кроме того, значок может быть интерактивным и предоставлять подсказку, раскрывающуюся панель и/или контекстное меню.
Менеджер значка сети, который принимает данные о состоянии сети, может быть соединен с менеджером системной области уведомлений для вывода значка, который представляет состояние сети. Менеджер значка сети выбирает изображения для вывода с помощью менеджера системной области уведомлений для представления состояния сети через значок системной области уведомлений на основе данных о состоянии сети. Значок может быть обновлен, в том числе может быть изменено изображение значка, когда обнаружено соединение с другими возможностями, когда обнаружен другой интерфейс и/или когда обнаружена беспроводная сеть с другим качеством сигнала.
Другие преимущества могут стать очевидны из следующего подробного описания, рассмотренного совместно с чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Настоящее изобретение проиллюстрировано посредством примера и не ограничивается сопроводительными фигурами, на которых аналогичные номера для ссылок указывают аналогичные элементы.
Фиг.1 показывает иллюстративный пример вычислительной среды общего назначения, в которую могут быть включены различные аспекты настоящего изобретения.
Фиг.2 - представление примера общей архитектуры для выбора и/или вывода значка наличия сетевого соединения в системной области уведомлений.
Фиг.3 - представление иллюстративных компонентов для реализации общей архитектуры, показанной на Фиг.2.
Фиг.4 - представление класса состояния основного значка сети для выбора значка наличия сетевого соединения.
Фиг.5 - блок-схема последовательности операций, показывающая иллюстративные этапы для определения значка наличия сетевого соединения после приема событий сети.
Фиг.6 - иллюстративная диаграмма состояний, показывающая выбор изображения значка для состояний локального соединения и Интернет-соединения и для различных типов средств.
Фиг.7 - иллюстративная диаграмма конечного автомата, показывающая операции для отображения изображений значков в иллюстративном сценарии подсостояния с беспроводным соединением.
Фиг.8-12 - иллюстративные представления системной области уведомлений, содержащей значок сети, который изменяет свой вид в зависимости от текущих данных о состоянии сети.
Фиг.13 - представление иллюстративного контекстного меню, которое может появляться после обнаружения взаимодействия со значком сети.
Фиг.14-16 - представления иллюстративных подсказок, которые могут появляться после обнаружения взаимодействия со значком сети.
Фиг.17-19 - представления иллюстративных раскрывающихся панелей, которые могу появляться после обнаружения взаимодействия со значком сети.
Фиг.20 - блок-схема последовательности операций, показывающая иллюстративные этапы для обработки уведомлений, относящихся к всплывающим подсказкам.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
ИЛЛЮСТРАТИВНАЯ РАБОЧАЯ СРЕДА
Фиг.1 иллюстрирует пример подходящей среды 100 вычислительной системы, в которой может быть осуществлено изобретение. Среда 100 вычислительной системы представляет собой только один пример подходящей вычислительной среды и не предназначена для наложения каких-либо ограничений относительно объема использования или функциональных возможностей изобретения. Вычислительная среда 100 также не должна интерпретироваться как имеющая какую-либо зависимость или требование по отношению к любому компоненту или комбинации компонентов, изображенных в иллюстративной рабочей среде 100.
Изобретение может работать со многими другими средами вычислительных систем и конфигурациями общего назначения или специального назначения. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут являться подходящими для использования с изобретением, включают в себя, но без ограничения: персональные компьютеры, серверные компьютеры, карманные или переносные устройства, планшетные устройства, многопроцессорные системы, системы на основе микропроцессора, телеприставки, программируемую бытовую электронику, сетевые персональные компьютеры, миникомпьютеры, универсальные вычислительные системы, распределенные вычислительные среды, которые включают в себя любые из упомянутых выше систем или устройств, и т.п.
Изобретение может быть описано в общем контексте исполняемых на компьютере команд, таких как программные модули, исполняемые компьютером. В общем случае программные модули включают в себя стандартные программы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют специфические задачи или реализуют специфические абстрактные типы данных. Изобретение также может быть осуществлено в распределенных вычислительных средах, в которых задачи выполняются удаленными устройствами обработки, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены на локальных и/или на удаленных компьютерных носителях данных, включающих в себя запоминающие устройства памяти.
На Фиг.1 показано, что иллюстративная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но без ограничения, обрабатывающий модуль 120, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, в том числе системную память, с обрабатывающим модулем 120. Системная шина 121 может представлять собой любой из нескольких типов шинных структур, в том числе шину памяти или контроллер памяти, периферийную шину и локальную шину, с использованием любой из разнообразных шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной промышленной стандартной архитектуры (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину соединения периферийных компонентов (PCI), также известную как шина расширения.
Компьютер 110 обычно содержит разные машиночитаемые носители. Машиночитаемые носители могут представлять собой любые имеющиеся носители, к которым можно получить доступ с помощью компьютера 110, и включают в себя как энергозависимые, так и энергонезависимые носители, и сменные и несменные носители. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные носители данных и коммуникационные носители. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и несменные носители, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но без ограничения, RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другую память на оптическом диске, магнитные кассеты, магнитную ленту, память на магнитном диске или другие магнитные запоминающие устройства или любой другой носитель, который может быть использован для хранения желаемой информации и к которому можно получить доступ с помощью компьютера 110. Коммуникационные носители обычно воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой транспортный механизм, и включают в себя любые носители для доставки информации. Термин "модулированный сигнал данных" обозначает сигнал, у которого одна или более из его характеристик установлена или изменена таким образом, чтобы закодировать информацию в сигнале. В качестве примера, но не ограничения, коммуникационные носители включают в себя проводные носители, такие как проводная сеть или прямое проводное соединение, и беспроводные носители, такие как акустические, радиоволновые, инфракрасные и другие беспроводные носители. Комбинации любых упомянутых выше элементов также должны быть включены в объем понятия машиночитаемых носителей.
Системная память 130 включает в себя компьютерные носители данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 131 и оперативное запоминающее устройство (RAM) 132. Базовая система 133 ввода/вывода 133 (BIOS), содержащая базовые стандартные программы, которые помогают перемещать информацию между элементами в компьютере 110, например, во время запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые являются моментально доступными для обрабатывающего модуля 120 и/или которые в данный момент обрабатываются обрабатывающим модулем 120. В качестве примера, но не ограничения, Фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. Только в качестве примера Фиг.1 иллюстрирует накопитель 141 на жестких дисках, который считывает или записывает на несменный энергонезависимый магнитный носитель, магнитный дисковод 151, который считывает или записывает на сменный энергонезависимый магнитный диск 152, и оптический дисковод 155, который считывает или записывает на сменный энергонезависимый оптический диск 156, такой как CD-ROM или другой оптический носитель. Другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в иллюстративной обрабатывающей среде, включают в себя, но без ограничения, кассеты магнитной ленты, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, полупроводниковое RAM, полупроводниковое ROM и т.п. Накопитель 141 на жестких дисках обычно соединен с системной шиной 121 через интерфейс несменной памяти, такой как интерфейс 140, и магнитный дисковод 151 и оптический дисковод 155 обычно соединяются с системной шиной 121 посредством интерфейса сменной памяти, такого как интерфейс 150.
Дисковые накопители и связанные с ними компьютерные носители данных, описанные выше и проиллюстрированные на Фиг.1, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 110. На Фиг.1, например, накопитель 141 на жестких дисках проиллюстрирован как содержащий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Следует отметить, что эти компоненты могут либо быть теми же самыми, либо отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и программным данным 147 здесь даны различные номера, чтобы проиллюстрировать, что они, как минимум, являются разными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как планшет или устройство 164 ввода графической информации, микрофон 163, клавиатура 162 и указательное устройство 161, обычно называемое мышью, шаровым манипулятором или сенсорной панелью. Другие устройства ввода, не показанные на Фиг.1, могут включать в себя джойстик, игровую панель, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода данных часто соединены с обрабатывающим модулем 120 через интерфейс 160 пользовательского ввода, который присоединен к системной шине, но могут быть соединены другими интерфейсными и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или устройство отображения другого типа также соединен с системной шиной 121 через интерфейс, такой как видеоинтерфейс 190. Монитор 191 также может быть интегрирован с панелью с сенсорным экраном. Следует отметить, что монитор и/или панель с сенсорным экраном могут быть физически соединены с корпусом, в котором заключено вычислительное устройство 110, как в персональном компьютере планшетного типа. В дополнение, компьютеры, такие как вычислительное устройство 110, могут также включать в себя другие внешние устройства вывода, такие как динамики 195 и принтер 196, которые могут быть соединены через интерфейс 194 периферийных устройств вывода и т.п.
Компьютер 110 может работать в сетевом окружении, используя логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может являться персональным компьютером, сервером, маршрутизатором, сетевым персональным компьютером, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на Фиг.1 было проиллюстрировано только устройство 181 памяти. Логические соединения, изображенные на Фиг.1, включают в себя одну или более локальных сетей (LAN) 171 и одну или более глобальных сетей (WAN) 173, но также могут включать в себя другие сети. Такие сетевые среды являются обычным явлением в офисах, в компьютерных сетях масштаба предприятия, в интрасетях и в Интернете.
При использовании в сетевой среде LAN компьютер 110 соединен с LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 или другое средство для установления связи по WAN 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 через интерфейс 160 пользовательского ввода или другой соответствующий механизм. Компонент 174 беспроводной сети, например, содержащий интерфейс и антенну, может быть соединен через подходящее устройство, такое как точка доступа или одноранговый компьютер, к WAN или к LAN. В сетевом окружении программные модули, изображенные относительно компьютера 110, или их части могут храниться в удаленном запоминающем устройстве. В качестве примера, но не ограничения, Фиг.1 иллюстрирует удаленные прикладные программы 185 как находящиеся в устройстве 181 памяти. Следует понимать, что показанные сетевые соединения являются иллюстративными, и могут быть использованы другие средства установления линии связи между компьютерами.
Вспомогательная подсистема 199 отображения может быть подключена через пользовательский интерфейс 160, чтобы предоставить возможность выдавать пользователю данные, например содержание программы, системный статус и уведомления о событиях, даже если основные части компьютерной системы находятся в состоянии пониженного энергопотребления. Вспомогательная подсистема 199 отображения может быть подключена к модему 172 и/или сетевому интерфейсу 170, чтобы предоставить возможность взаимодействия между этими системами, пока основной обрабатывающий модуль 120 находится в состоянии пониженного энергопотребления.
ПОДКЛЮЧЕНИЕ К СЕТЯМ РАЗЛИЧНЫХ ТИПОВ
Различные аспекты описанной здесь технологии предназначены для представления сетей через один значок сети, который обеспечивает объединенную общую картину наличия соединений компьютерной системы пользователя. С помощью этой иллюстративной модели статус сети, возможно, для нескольких сетей может быть отображен всего лишь в одном значке системной области уведомлений.
Однако следует понимать, что различные описанные здесь аспекты не ограничиваются никакими отдельными понятиями или примерами. Например, описанный здесь значок называется значком сети в области уведомлений и в одной иллюстративной реализации предназначен для отображения в системной области уведомлений панели задач. Однако можно легко понять, что значок может быть отображен в любой области уведомления и/или на рабочем столе, в окне, в диалоговом окне или другим подходящим образом, а не в некоторой "всегда включенной" области уведомлений. Аналогичным образом, представленный здесь иллюстративный значок сети в области уведомлений фактически состоит из множества изображений (которые могут являться полными изображениями или быть построены из составных изображений), которые изменяются в зависимости от наличия соединения и другой информации о состоянии, и эти изображения являются только примерами, а не требованиями. Кроме того, вместо изменения изображений можно изменять одно изображение значка посредством разной отрисовки (например, перечеркивая то же самое изображение крестом при разъединении) в зависимости от состояния. Как таковые, любые описанные здесь примеры, структуры или функциональные возможности являются неограничивающими, и настоящее изобретение может использоваться различными способами, которые дают пользу и преимущества при вычислениях, отображении информации и работе с сетями вообще.
Следует понимать, что иллюстрируемый здесь значок сети в области уведомлений представляет собой высокоуровневый актуальный статус сети, который быстро и легко понятен пользователю. В то же время описанный здесь иллюстративный значок сети в области уведомлений решает многие проблемы и предоставляет функциональные возможности, в том числе показ общей картины наличия соединений в системе (например, нет связи, локальная сеть или Интернет), показ доступности беспроводных сетей, показ качества сигнала подключенных беспроводных сетей и показ статуса сети на основе профиля, например, через интерактивные механизмы, такие как подсказка, раскрывающаяся панель и/или одно или более контекстных меню. Кроме того, значок и пользовательское взаимодействие с ним предоставляют ссылки на ключевые положения в пользовательском интерфейсе для работы с сетью.
Другие различные аспекты значка сети в области уведомлений могут включать в себя общую картину наличия сетевых соединений для системы в системной области уведомлений, начало подключения, отключения и диагностики сетевых соединений через взаимодействие со значком области уведомлений, осуществление периодического или другого перехода значка между двумя представлениями значка для отображения двух различных переменных, представление статуса сетевых соединений в контексте сетевых профилей в подсказке и раскрывающейся панели.
На Фиг.2 представлена общая иллюстративная реализация, в которой данные 201 о состоянии, соответствующие событиям, относящимся к сети, принимаются менеджером 202 значка сети, который, например, может содержать конечный автомат и другие объекты (как описано ниже со ссылкой на Фиг.3). В общем случае менеджер 202 значка сети определяет, какое изображение значка из множества изображений 204 значка, содержащихся в хранилище 206 данных, применяется к текущему состоянию, и взаимодействует с менеджером 208 области уведомлений (например, компонентом операционной системы) для вывода надлежащего изображения в пользовательском интерфейсе 210 области уведомлений.
В зависимости от пользовательского взаимодействия с отображаемым значком и/или других событий сети менеджер 202 значка сети совместно с менеджером 208 области уведомлений может выводить другую информацию, относящуюся к сети, например подсказку при наведении мыши, раскрывающуюся панель и/или контекстные меню при различных комбинациях щелчка мыши и т.д. Возможные варианты вывода в пользовательском интерфейсе области уведомлений, относящиеся к значку сети области уведомлений и соответствующим уведомлениям, включают в себя сам значок области уведомлений, меню по нажатию правой кнопки мыши, подсказку по наведению мыши, раскрывающуюся панель, уведомления пользовательского интерфейса и уведомления NetXP (например, представленные Windows® сетевые данные программного обеспечения NetXP через значок системной области уведомлений).
На Фиг.3 представлена более конкретная иллюстративная реализация, в которой концептуальный менеджер 202 значка сети, показанный на Фиг.2, заключен в компонент 302 основного значка сети (который в свою очередь, например, может быть заключен в компонент 314 сетевой оболочки операционной системы). Среди прочих своих операций компонент 302 основного значка сети объединяет данные от нескольких служб для представления пользователю информации, относящейся к сети, например текущей общей картины сетевых соединений, подключенных профилей, подключенных интерфейсов, мощности сигнала беспроводной связи и/или доступности беспроводной сети. Кроме того, как описано ниже, компонент 302 основного значка сети может служить точкой входа для подключения, отключения и диагностики сетевых соединений.
В дополнение к объединению данных о состоянии для различных сетевых профилей и интерфейсов для представления общего статуса сети в одном значке компонент 302 основного значка сети также может служить конечной точкой для некоторых сетевых уведомлений (например, всплывающая подсказка от беспроводной сети, EAP) и точкой запуска для модулей, относящихся к сети. Следует заметить, что иллюстрируемая сетевая оболочка 314 включает в себя очередь 316 всплывающих подсказок, которая принимает события от менеджера 318 сетевых соединений, например, в интерфейсе/методе 320 CConnectionNotifySink:ShowBalloon(). Также следует отметить, что в реализации, проиллюстрированной на Фиг.3, компонент 302 основного значка сети может повторно использовать некоторые существующие функциональные возможности сетевой оболочки 314 и некоторые существующие функциональные возможности менеджера 318 сетевых соединений. Например, что касается рассмотрения доступности и обработки ошибок, основной значок 302 сети может придерживаться существующих стандартных программ сетевой оболочки для обработки ошибок и ведения журнала; что касается вопросов безопасности, компонент основного значка 302 сети может выполняться в процессе проводника с правами интерактивного пользователя.
В этой иллюстративной реализации основной значок сети реализует COM-интерфейсы, например, включающие в себя, но без ограничения, интерфейс IOleCommandTarget (как объект службы оболочки) для взаимодействия с программой 320 оболочки (и, возможно, клиентскими приложениями). Следует заметить, что в этой реализации нет библиотечного файла для внешнего использования, поскольку основные значки сети (например, его COM-серверы) располагаются внутри компонента 31 сетевой оболочки (например, netshell.dll).
В примере на Фиг.3 в общем случае при запуске программа 320 оболочки создает экземпляр основного значка 302 сети, например, в виде внутрипроцессного COM-сервера. При необходимости могут использоваться адаптеры для преобразования событий от индикатора 330 статуса сетевого соединения (NCSI) и службы 332 профилей в события/данные состояний основного значка сети (PNI), которые используют внутренний конечный автомат (класс управления состоянием PNI) 334 основного значка 302 сети. Пример класса 334 состояний основного значка сети представлен на Фиг.4 и в следующей структуре данных и классах:
DECLARE_INTERFACE(INetworkState){CONNECTIVITY_CAPABILITY m_NCSI_capability;CONNECTIVITY_STATUS m__NCSI_status;INetworkMedia * m_pMedia;STDMETHOD(SetIcon) (THIS_HANDLE) PURE;STDMETHOD(SetOverLayIcon) (THIS_HANDLE) PURE;STDMETHOD(GetIcon) (THIS_HANDLE *) PURE;STDMETHOD(GetOverlayIcon) (THIS_HANDLE *) PURE;STDMETHOD (Animate) (THIS) PURE;STDMETHOD (MergeMenu) (THIS) PURE;STDMETHOD (SetMedia) (THIS_INetworkMedia * ) PURE;};Class NetworkInternetConnectedState : INetworkState{// реализует соответствующие функцииHRESULT ShowIcon(){hIcon = mergeIcon(m_pMedia->GetBaseIcon(), GetOverlayIcon());};…}Class Profile{INetworkState * m_pState;INetworkProfile * m_pIFList;…} |
В примере на Фиг.3 программа 320 оболочки загружает объект службы значков панели уведомлений (например, объект CLSID_ConnectionTray), и конечный автомат 334 входит в начальное состояние отсутствия связи или с наличием ограниченной связи. Основной значок 302 сети регистрируется для того, чтобы относящиеся к сети события (например, события подключения/отключения сетевого профиля 332, события профиля доступности/недоступности беспроводных сетей от службы 336 беспроводной локальной сети (WLANSVC) и для изменений наличия соединения индикатора 330 статуса сетевых соединений) были приняты в конечном автомате 334. В частности, для показа подходящего состояния значка сети в области уведомлений и любого связанного с ним взаимодействия пользователя, основной значок 302 сети регистрируется и запрашивает у индикатора 330 статуса сетевых соединений, службы 332 сетевых профилей и службы 336 WLAN сетевые события, в том числе подключение, отключение, подключение сигнатуры сети, беспроводная сеть в пределах доступности, качество сигнала и т.д. Вместо использования сложной условной логики для управления состояниями и переходами, принимается шаблон событий с операциями, делегированными соответствующему объекту состояний, то есть шаблон состояний используется для управления состояниями. В частности, вместо того чтобы управлять и поддерживать состояния и переходы в основном значке 302 сети, в одной реализации соответствующее сетевое событие (события) заставляет основной значок 302 сети обновлять и/или запрашивать индикатор 330 статуса сетевого соединения и службу 332 профилей. Результаты могут включать в себя обновленное состояние общей картины соединений, список подключенных профилей, обновленную раскрывающуюся панель и/или контекстные меню.
Далее изложены иллюстративные уведомления/события приемника основного значка сети от этих компонентов:
Событие сетевого профиля (Служба профилей)NetworkSignatureConnected(): когда подключен новый интерфейсNetworkSignatureDisconnected(); интерфейс отключен, профиль может быть все еще подключенNetworkProfileDisconnected(); Статус сетевого соединения (NCSI)Беспроводные сети в пределах/за пределами доступности (WLANSVC)Мощность беспроводного сигнала (WLANSVC)Интерактивный запрос пользовательского интерфейса (WLANSVC и DOT3SVC)Проверить запрос UI и получить локализованный текст всплывающей подсказки (WLANDLG и DOT3DLG)Уведомление оболочки: события открытия и закрытия системной области уведомлений (оболочка) |
Основной значок 302 сети выполняет различные пользовательские команды посредством обращения к этим компонентам:
Перечислить подключенные сетевые профили (Профиль)Перечислить сетевые интерфейсы (Профиль)Средство диагностики сети (Диагностика)Обзор доступной сети (внешний UI)Включить/выключить беспроводную сеть (WLANSVC)Папка статуса и вариантов действий сетиПредставление обозревателя сети по умолчанию |
Таким образом, основной значок 302 сети запрашивает у индикатора 330 статуса сетевого соединения общий статус соединений и запрашивает у службы 332 сетевых профилей получение подключенного профиля и состояния. Затем устанавливается значок (например, выбирается изображение из множества 204 на Фиг.2) для отражения текущего состояния, о котором сообщил индикатор 330 статуса сетевого соединения. Как только это определено, значок области уведомлений устанавливается в состояние, в котором показывается значок области уведомлений. Кроме того, создается список профилей для подсказки, раскрывающейся панели и контекстных меню. Затем основной значок 302 сети входит в цикл сообщений.
Следует отметить, что в одной реализации в сценарии терминального сервера индикатор 330 статуса сетевого соединения, служба 336 беспроводной LAN (WLANSVC) и служба 338 протокола 802.3 1x (DOT3SVC) должны поддерживать сеанс в изолированном режиме. Менеджер 318 сетевых соединений также поддерживает сеанс терминального сервера. В этом сценарии наличие соединения в подсети/локальной сети индикатора 330 статуса сетевого соединения отражает наличие локального соединения основного значка 302 сети.
Фиг.5 резюмирует иллюстративные этапы, выполняемые в основном значке 302 сети в цикле сообщений для обработки входящих событий, относящихся к сети, от службы 332 сетевых профилей (этап 502) и индикатора 330 статуса сетевых соединений (этап 504). Этап 506 представляет преобразование события в данные о состоянии PNI при необходимости через адаптеры и т.п. Следует отметить, что изменение состояния сети происходит относительно редко.
Этап 508 представляет оценку события для определения, присутствует ли изменение состояния, соответствующее сети с более высокими возможностями, причем возможности могут быть определены в NCSI и PNI таким образом, что наличие Интернет-соединения считается большей возможностью, чем наличие соединения по локальной сети, которое в свою очередь считается большей возможностью, чем наличие соединения в подсети, которое считается большей возможностью, чем отсутствие соединения. Следует заметить, что может присутствовать более одного типа соединения, в этой ситуации процесс на Фиг.5 выбирает соединение с наибольшими возможностями для отображения значка. В частности, возможности соединения, которые могут относиться к сети, включают в себя наличие соединения в подсети, которое указывает, существует ли доступ к хосту в той же самой подсети или к шлюзу по умолчанию, и наличие локального соединения, которое указывает, существует ли доступ к хосту вне подсети (и до границы сети поставщика Интернет-услуг для протокола IPv4 или вне подсети и в пределах сайта протокола IPv6 для протокола IPv6). Наличие Интернет-соединения указывает, доступен ли один из серверов DNS и хост вне границы сети поставщика Интернет-услуг или вне сайта протокола IPv6, и наличие двунаправленного соединения указывает, имеется ли и наличие Интернет-соединения, и наличие входящего соединения. Могут быть использованы следующие структуры:
enum CONNECTIVITY_CAPABILITY {SUBNET_CONNECTIVITY,LOCAL_CONNECTIVITY,INTERNET_CONNECTIVITY,BIDIRECTIONAL_CONNECTIVITY}; |
Значение статуса наличия соединения используется для привязки подтверждения к статусу наличия сетевого соединения, где значение NO назначается, если возможность наличия связи не существует, и значение YES назначается, если точно известно, что статус наличия соединения существует.
enum CONNECTIVITY_STATUS_VALUE{NO,YES}; |
Структура статуса наличия соединения содержит значение наличия соединения вместе с его длительностью:
typedef struct{CONNECTIVITY_STATUS_VALUE StatusValue;ULONG Age;} CONNECTIVITY STATUS; |
Если нет более высоких возможностей, изменения значка и относящейся к нему информации не нужны. Если возможности больше, этап 508 переходит на этапы 514 и 516 для установки текущего состояния значка, чтобы отразить новое состояние (этап 514), и обновления значка и относящейся к нему информации (например, раскрывающейся панели и меню, этап 516). Если возможности равны, этап 508 переходит на этап 510.
Этап 510 представляет оценку, присутствует ли более высокий интерфейс, причем интерфейс WLAN/LAN считается более высоким, чем WAN (возможны другие интерфейсы, и они могут быть ранжированы аналогичным образом). Если нет более высокого интерфейса, изменения значка и относящейся к нему информации не нужны. Однако, если присутствует более высокий интерфейс, этап 510 переходит на этапы 514 и 516 для установки текущего состояния значка, чтобы отразить новое состояние (этап 514), и обновления значка и относящейся к нему информации (например, раскрывающейся панели и меню, этап 516). Если возможности равны, этап 510 переходит на этап 512.
Этап 512 представляет оценку качества сигнала, когда присутствует соединение по беспроводной LAN. Если качество сигнала не больше, изменения значка и относящейся к нему информации не нужны. Однако, если качество сигнала больше, этап 512 переходит на этапы 514 и 516 для установки текущего состояния значка, чтобы отразить новое состояние (этап 514), и обновления значка и относящейся к нему информации (например, раскрывающейся панели и меню, этап 516).
Фиг.6 является иллюстративной диаграммой состояний, показывающей выбор изображения значка для состояний 660 и 662 с наличием локального соединения и с наличием Интернет-соединения соответственно. Как описано выше со ссылкой на Фиг.5, состояние 660 с наличием локального соединения может перейти в состояние 662 с наличием Интернет-соединения. В общем случае и как описано ниже, текущее изображение значка зависит от текущего состояния наличия соединения (например, локального соединения или Интернет-соединения) и типа среды, например тип 664 среды для LAN, тип 666 среды беспроводной связи или, возможно, другой ти