СИСТЕМА И СПОСОБ ДЛЯ УПРАВЛЕНИЯ НАРУШЕНИЯМИ ПОДКЛЮЧЕНИЯ К СЕТИ В УСТРОЙСТВЕ UPnP С МНОЖЕСТВЕННЫМ ПОДКЛЮЧЕНИЕМ
SYSTEM AND METHOD TO CONTROL VIOLATIONS OF CONNECTION TO NETWORK IN UPnP DEVICE WITH MULTIPLE CONNECTION

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится, в целом, к технологии универсальной автоматической настройки сетевых устройств (UPnP). Более конкретно, настоящее изобретение касается поддержки доступности устройства с множественным подключением (multi-homed) в среде UPnP, когда не все сетевые интерфейсы устройства испытывают нарушение подключения.
Предпосылки создания изобретения
[0002] Этот раздел описывает предпосылки создания изобретения или контекст изобретения, которое изложено в формуле изобретения. При этом описание может включать концепции, которые могут осуществляться, но не обязательно те, которые были ранее задуманы или осуществлены. Поэтому, если здесь не указано иное, описанное в этом разделе не является ограничительной частью для описания и формулы изобретения в этой заявке и не признается являющимся ограничительной частью из-за включения в этот раздел.
[0003] Технология UPnP определяет архитектуру для всеобъемлющего однорангового сетевого подключения интеллектуальных бытовых приборов, беспроводных устройств и персональных компьютеров всех типов. Технология UPnP предназначена для того, чтобы дать легкую в использовании, гибкую, основанную на стандартах возможность подключения к произвольным (ad hoc) или неуправляемым сетям, будь то в жилище, на малом предприятии, в общественном помещении, или подключениях к Интернет. Технология UPnP представляет собой распределенную открытую архитектуру построения сетей, которая использует технологии протокола управления передачей/протокол Интернет (TCP/IP) и Web, чтобы сделать возможным беспрепятственное построение сетей для связи на близком расстоянии, в дополнение к управлению и передаче данных среди сетевых устройств.
[0004] Архитектура устройств UPnP (UDA) предназначена для поддержания автоматической настройки сети без конфигурации, "невидимого" построения сети и автоматического обнаружения широкого спектра категорий устройств от большого числа поставщиков. Другими словами, технология UPnP позволяет устройству динамически подключаться к сети, получать IP-адрес, сообщать о своих возможностях и приобретать сведения о присутствии и возможностях остальных устройств.
[0005] Стандарт архитектуры устройства UPnP (версия 1.1) определяет заголовок BOOTID.UPNP.ORG, называемый здесь BOOTID (идентификатор загрузки), в сообщениях простого протокола обнаружения сервисов (SSDP). Идентификатор BOOTID является монотонно возрастающей величиной. Когда устройство запускается или выполняет "перезагрузку" (reboot), оно должно увеличить значение BOOTID. До тех пор пока устройство остается готовым к работе в сети, то же самое значение BOOTID должно использоваться во всех повторяющихся объявлениях, результатах поиска и, в конечном счете, сообщениях byebye ("до свидания"). Устройство должно использовать то же самое значение BOOTID во всех сообщениях SSDP, которые оно посылает на многочисленные сетевые интерфейсы или IP-адреса. В терминологии UPnP "перезагрузка" определена как объявление о неготовности устройства с помощью передачи сообщений SSDP byebye и затем повторное объявление о готовности устройства к работе с помощью передачи новых сообщений SSDP:alive (действующее).
[0006] Заголовок BOOTID особенно полезен в ситуациях, когда устройство обнаруживает нарушение в подключении к сети, то есть, когда устройство временно потеряло подключение к сети, но затем восстановило подключение (например, сетевой кабель был отключен и заново подключен), или когда изменился его IP-адрес. В таких случаях устройство увеличивает свое значение BOOTID и повторно объявляет о себе в сети. После приема сообщения SSDP с увеличенным значением BOOTID пункт управления (control point), который помещал в кэш информацию об устройстве, понимает, что устройство больше не является тем же самым устройством. Пункт управления обычно реагирует на это действие обновлением информации об устройстве и, возможно, повторной подпиской на услуги устройства.
[0007] Несмотря на вышеизложенное, в настоящее время существуют проблемы в отношении использования BOOTID в среде с множественным подключением. Устройство с множественным подключением может иметь многочисленные сетевые интерфейсы, многочисленные IP-адреса на одном сетевом интерфейсе или и то, и другое. Например, если устройство имеет многочисленные сетевые интерфейсы, устройство может быть подключено к одному или нескольким непересекающимся сегментам сети через свои сетевые интерфейсы. Нарушение подключения к сети может происходить в сетевом интерфейсе, если устройство кратковременно теряет подключение сетевого интерфейса, например, если сетевой кабель отключается и затем заново подключается, или если IP-адрес в сетевом интерфейсе изменяется. В этом случае возникает вопрос относительно того, должно ли устройство после таких нарушений подключения к сети обновлять значение BOOTID и как это делать.
[0008] При изучении вышеупомянутого вопроса полезно рассмотреть систему, которая изображена на фиг.1. Как показано на фиг.1, устройство 100 имеет первый интерфейс 110 и второй интерфейс 120, которые связаны с первым сегментом 130 сети и вторым сегментом 140 сети, соответственно. Первый пункт 150 управления имеет первый интерфейс 151 пункта управления, который связан с первым сегментом 130 сети, а второй пункт 160 управления имеет второй интерфейс 161 пункта управления, который связан со вторым сегментом 140 сети. Третий пункт 170 управления является пунктом управления с множественным подключением и связан с первым и вторым сегментами 130 и 140 сети через интерфейсы 171 и 172 третьего пункта управления. Каждый из первого, второго и третьего пунктов 150, 160 и 170 управления кэширует некоторую информацию об устройстве 100 и подписывается на его услуги. В этих обстоятельствах полезно рассмотреть ситуацию, когда имеется краткое нарушение подключения к сети в первом сетевом интерфейсе 110 устройства 100 (и, следовательно, в первом сегменте 130 сети). С точки зрения первого сегмента 130 сети (и первый, и третий пункты управления 150 и 170 подключены к первому сегменту 130 сети) устройство 100 потеряло подключение и должна быть выполнена его перезагрузка. Другими словами, с точки зрения первого сегмента 130 сети устройство 100 должно увеличить значение BOOTID и заново объявить о себе в первом сегменте 130 сети. С другой стороны, с точки зрения второго сегмента 140 сети (и второго и третьего пунктов управления 160 и 170, которые подключены ко второму сегменту 140 сети) устройство 100 осталось готовым к работе, и перезагрузка не является ни необходимой, ни ожидаемой. Другими словами, с точки зрения второго сегмента 140 сети устройство 100 должно продолжать использовать существующий идентификатор BOOTID в последующих объявлениях во втором сегменте 140 сети. Однако вследствие того, что устройство 100 подключено и к первому, и ко второму сегментам 130 и 140 сети, и оно должно использовать один и тот же BOOTID в них обоих, возникает существенная проблема.
[0009] Учитывая, что пункты управления, подключенные к первому сегменту 130 сети, должны быть извещены о том, что устройство 100 временно потеряло подключение, устройство 100 не имеет никакой альтернативы, кроме как увеличить BOOTID и заново объявить о себе. Однако этот подход страдает от того побочного эффекта, что пункты управления, которые подключены ко второму сегменту 140 сети и не затронуты нарушением, также вынуждены обновлять свою информацию об устройстве. Это имеет несколько последствий. Во-первых, увеличивается трафик сети, так как все пункты управления должны обновить свою информацию об устройстве. Во-вторых, нагрузка обработки и на устройство 100, и на связанные с ним пункты управления также увеличивается. В-третьих, этот подход приводит к неудобствам для пользователя. Например, если пользователь использует компьютер с поддержкой UPnP, который связан с сетью Ethernet, и если имеется устройство UPnP, связанное с домашней сетью через Ethernet и через беспроводную локальную сеть (WLAN), и если подключение к WLAN нестабильно, то абонент будет наблюдать, что устройство UPnP неоднократно появляется и исчезает в сети Ethernet, даже притом, что и абонент, и устройство UPnP постоянно подключены к Ethernet в течение всего этого периода. В-четвертых, перезагрузка устройства также вызывает нарушения в предоставлении услуг, которые пункты управления могут использовать в данное время. Например, может потребоваться прервать загрузку файла или может быть прервано воспроизведение видео, если необходима перезагрузка.
[0010] Поэтому было бы желательно предложить улучшенную систему для управления нарушениями подключений в устройстве UPnP с множественным подключением, чтобы урегулировать рассмотренную выше проблему.
Сущность изобретения
[0011] Различные формы осуществления настоящего изобретения служат для того, чтобы минимизировать взаимодействие между устройством с множественным подключением и связанными с ним пунктами управления, когда устройство с множественным подключением испытывает нарушения подключения на некоторых, но не на всех, сетевых интерфейсах. В различных формах осуществления это достигается введением нового необязательного заголовка в формат сообщения SSDP:byebye. Новый заголовок позволяет устройству с множественным подключением сигнализировать о своей непрерывной готовности к работе совместимым пунктам управления, несмотря на необходимость посылать сообщения SSDP:byebye, обновлять свое значение BOOTID и заново объявлять о себе, чтобы урегулировать рассмотренную выше проблему сети, из-за которой оно испытывало бы затруднения в ином случае. Использование этого нового заголовка указывает пунктам управления, что они могут продолжать использовать устройство и связанные с ним услуги независимо от этих сообщений SSDP.
[0012] Различные формы осуществления настоящего изобретения обеспечивают ряд преимуществ для абонентов. Устройства, описанные здесь, могут быть обратно совместимыми с пунктами управления UPnP версии 1.0. Минимальная обработка требуется на пунктах управления, связанных с сетевыми интерфейсами, которые не испытывали нарушения подключения. Кроме того, только минимальный объем обработки требуется в устройстве UPnP, так как нарушение подключения воздействует на минимальное число пунктов управления. Далее, различные формы осуществления изобретения обеспечивают значительное уменьшение числа нарушений предоставления услуг для связанных пунктов управления. Кроме того, обработка нового необязательного заголовка является необязательной: пункт управления, который выбирает игнорирование заголовка, может делать это за счет необходимости восстановления информации об устройстве, такого как помещение в кэш состояния устройства и подписки на события. Различные формы осуществления настоящего изобретения могут быть включены фактически в любой продукт, который реализует архитектуру устройства UPnP версии 1.1.
[0013] Эти и другие преимущества и отличительные особенности изобретения вместе с организацией и способом его работы станут очевидными из нижеследующего подробного описания вместе с прилагаемыми чертежами, на которых подобные элементы имеют аналогичные номера позиций.
Краткое описание чертежей
[0014] На фиг.1 изображена среда UPnP, в которой устройство содержит многочисленные интерфейсы для использования совместно с многочисленными сетевыми соединениями и пунктами управления.
[0015] Фиг.2 - блок-схема, показывающая реализацию общей формы осуществления настоящего изобретения.
[0016] Фиг.3 - перспективный вид мобильного телефона, который может использоваться при реализации настоящего изобретения.
[0017] Фиг.4 - схематическое представление телефонных схем мобильного телефона, показанного на фиг.3.
Подробное описание различных форм осуществления изобретения
[0018] Настоящее изобретение служит для минимизации взаимодействий между устройством с множественным подключением и любыми связанными с ним пунктами управления, когда устройство с множественным подключением испытывает нарушения подключения на некоторых, но не всех, сетевых интерфейсах. В различных формах осуществления это достигается введением нового необязательного заголовка NEXTBOOTID.UPNP.ORG (называемого здесь NEXTBOOTID) для формата сообщения SSDP:byebye. Заголовок NEXTBOOTID позволяет устройству с множественным подключением сигнализировать совместимым пунктам управления о своей непрерывной готовности, несмотря на необходимость посылать сообщения SSDP:byebye, обновлять значение BOOTID и заново извещать о себе, чтобы урегулировать рассмотренную выше проблему сети. Использование заголовка NEXTBOOTID указывает пунктам управления, что они могут продолжать использовать устройство и связанные с ним услуги независимо от этих сообщений SSDP.
[0019] Заголовок NEXTBOOTID.UPNP.ORG может быть включен в сообщения SSDP: byebye, посылаемые устройством с множественным подключением, если устройство испытывает нарушение подключения к сети посредством одного из сетевых интерфейсов. Заголовок включается только в сообщения, посылаемые по тем сетевым интерфейсам, на которых подключение не было прервано. Для сетевого интерфейса(-ов), на котором подключение было нарушено, этот заголовок не используется. Значение заголовка NEXTBOOTID.UPNP.ORG указывает значение BOOTID, которое будет использоваться в поступающем сообщении объявления SSDP. Устройство должно оставаться непрерывно готовым к работе в сети между передачей сообщения SSDP:byebye со значением NEXTBOOTID и следующим набором сообщений извещения с обновленным значением BOOTID. Если устройство станет неготовым в это время, оно должно выполнить обычную "перезагрузку", прирастить значение BOOTID и заново известить о себе.
[0020] Фиг.2 представляет блок-схему, показывающую реализацию общей формы осуществления настоящего изобретения. На шаге 200 на фиг.2 устройство UPnP извещает о себе на всех сетевых интерфейсах с BOOTID=2. Позднее устройство UPnP на шаге 210 обнаруживает, что произошло нарушение подключения на одном из сетевых интерфейсов. Однако подключение на всех других сетевых интерфейсах остается ненарушенным. В ответ на это действие на шаге 220 устройство выполняет "перезагрузку" на том интерфейсе сети, на котором произошло нарушение, посылая сообщение SSDP: byebye и извещая о себе с использованием нового BOOTID=3. Синтаксис сообщения SSDP:byebye представлен следующим образом:
NOTIFY*HTPP/1.1
HOST:239.255.255.250:1900
NT:notification type (тип объявления)
NTS:ssdp:byebye
USN:composite identifier for the advertisement (составной идентификатор для извещения)
BOOTID.UPNP.ORG:2
CONFIG.UPNP.ORG:number used for caching description information (номер, используемый для помещения в кэш информации описания)
SEARCHPORT.UPNP.ORG number identifies port on which device responds to unicast M-SEARCH (номер идентифицирует порт, по которому устройство отвечает на одноадресное M-SEARCH)
[0021] На шаге 260 для сетевых интерфейсов, на которых подключение к сети не было нарушено, устройство посылает сообщение SSDP:byebye, чтобы объявить следующий BOOTID, который будет использоваться, наряду с новыми извещениями с использованием нового BOOTID=3. Синтаксис сообщения SSDP:byebye и новых извещений выглядит следующим образом:
NOTIFY*HTPP/1.1
HOST:239.255.255.250:1900
NT:notification type (тип объявления)
NTS:ssdp:byebye
USN:composite identifier for the advertisement (составной идентификатор для извещения)
BOOTID.UPNP.ORG:2
NEXTBOOTID.UPNP.ORG:3
CONFIG.UPNP.ORG: number used for caching description information (номер, используемый для помещения в кэш информации описания)
SEARCHPORT.UPNP.ORG number identifies port on which device responds to unicast M-SEARCH (номер, идентифицирующий порт, по которому устройство отвечает на одноадресное M-SEARCH)
[0022] Могут возникать ситуации, в которых пункт управления UPnP 1.0 подключен с возможностью обмена данными к устройству UPnP через сетевой интерфейс и не понимает заголовок BOOTID и заголовок NEXTBOOTID. В этой ситуации пункт управления UPnP 1.0 просто обрабатывает поступление сообщений SSDP:byebye и SSDP:alive как типичную "перезагрузку" устройства. В этом случае пункт управления UPnP 1.0 обычно отбрасывает любую информацию, которую он хранил об устройстве, и заново получает всю информацию об устройстве, возможно, также заново подписывается на его услуги. Поведение является одинаковым независимо от того, был ли пункт управления UPnP 1.0 подключен к устройству через нарушенный сетевой интерфейс или через сетевой интерфейс без нарушения. Другими словами, пункт управления UPnP 1.0 быстро оповещается о том, что устройство изменилось.
[0023] С точки зрения поведения пунктов управления, сконфигурированных в соответствии с версией 1.1 стандарта архитектуры устройства UPnP, эти пункты управления обычно хранят информацию о BOOTID любого устройства, к которому они подключены. В вышеприведенном примере пункт управления записывает, что устройство имеет BOOTID=2. Для пункта управления UPnP 1.1, подключенного к тому сегменту сети, в котором устройство имеет нарушение подключения, на шаге 230 принимается обычное сообщение SSDP:byebye. Как представлено на шаге 240 на фиг.2, пункт управления обычно отбрасывает любую информацию, которую он хранил об устройстве. Когда приходит новое сообщение SSDP:alive, пункт управления обычно заново получает всю информацию об устройстве и, возможно, заново подписывается на его услуги, как показано на шаге 250. Таким образом, пункт управления успешно ставится в известность о состоянии его нового устройства.
[0024] Для пункта управления UPnP 1.1, подключенного к тому сегменту сети, в котором устройство не имело нарушения подключения, на шаге 270 принимается сообщение SSDP:byebye с заголовком NEXTBOOTID. Заметив, что значение BOOTID сообщения SSDP:byebye является идентичным тому, которое он записал об устройстве (BOOTID=2), пункт управления понимает, что информация об устройстве, которую он записал, остается правильной. Тогда пункт управления обновляет свою запись об устройстве на шаге 280, обновляя BOOTID до значения заголовка NEXTBOOTID и получая в результате BOOTID=3. Когда следующее сообщение SSDP:alive (с BOOTID=3) приходит на шаге 290, пункт управления знает, что он все еще имеет последнюю информацию об устройстве. Не требуется заново получать информацию об устройстве или повторно подписываться на услуги.
[0025] Для пункта управления UPnP 1.1, подключенного и к сегменту сети, в котором устройство испытало нарушение подключения, и к сегменту сети, в котором устройство не имело нарушения подключения, оба сообщения SSDP:byebye, с заголовком NEXTBOOTID и без него, посланные устройством 100 на шагах 220 и 260, принимаются пунктом управления (через различные сетевые интерфейсы) на шаге 310. В этой ситуации поведение пункта управления зависит от того, через какой интерфейс пункт управления получил информацию об устройстве, и от подписок на события. Если пункт управления использовал исключительно сегмент сети, в котором устройство не имело нарушения подключения, то есть сегмент сети, от которого было получено сообщение SSDP:byebye с заголовком NEXTBOOTID, то пункт управления обновляет свою запись об устройстве на шаге 320, обновляя BOOTID до значения заголовка NEXTBOOTID и получая в результате BOOTID=3. Когда следующее сообщение SSDP:alive (с BOOTID=3) приходит на шаге 340, пункт управления знает, что он все еще имеет последнюю информацию об устройстве. Не требуется новое получение информации об устройстве или повторная подписка на услуги. Если, с другой стороны, пункт управления опирался на сегмент сети, в котором устройство испытало нарушение подключения, или опирался на оба сегмента сети, то он отбросит любую информацию, которую он хранил об устройстве, заново загрузит всю информацию об устройстве и, возможно, повторно подпишется на его услуги. Эти действия все вместе представлены на шаге 330 на фиг.2.
[0026] На фиг.3 и 4 показано одно типичное электронное устройство 12, в котором может быть осуществлено настоящее изобретение. Должно быть понятно, однако, что настоящее изобретение не ограничено одним конкретным типом устройства. Должно быть понятно также, что некоторые или все компоненты, показанные на фиг.3 и 4, могут быть встроены в любое из устройств, которые участвуют в реализации различных форм осуществления настоящего изобретения. Электронное устройство 12 на фиг.3 и 4 содержит корпус 30, дисплей 32 в виде индикатора на жидких кристаллах, клавиатуру 34, микрофон 36, телефон 38, батарею 40, инфракрасный порт 42, антенну 44, смарт-карту 46 в виде универсальной микропроцессорной карты 3-го поколения (UICC) согласно одной из форм осуществления изобретения, устройство 48 считывания карты, схему 52 радиоинтерфейса, схему 54 кодека, контроллер 56, запоминающее устройство 58 и батарею 80. Все отдельные схемы и элементы представляют собой устройства хорошо известных в данной области техники типов, например по номенклатуре мобильных телефонов фирмы Nokia.
[0027] Устройства связи, реализующие настоящее изобретение, могут осуществлять связь друг с другом и/или другими устройствами с использованием различных технологий передачи, включая, в качестве неограничивающих примеров, многостанционный доступ с кодовым разделением каналов (CDMA), глобальную систему подвижной связи (GSM), универсальную систему подвижной связи (UMTS), многостанционный доступ с временным разделением каналов (TDMA), многостанционный доступ с частотным разделением каналов (FDMA), протокол управления передачей/протокол Интернета (TCP/IP), службу обмена короткими сообщениями (SMS), службу передачи мультимедийных сообщений (MMS), электронную почту, службу мгновенной передачи сообщений (IMS), Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь с использованием различных сред, включая, в качестве неограничивающих примеров, радио, инфракрасное излучение, лазер, кабельное соединение и т.п.
[0028] Различные формы осуществления, описанные здесь, описаны в общем контексте шагов или процессов способа, которые могут быть реализованы в одной из форм осуществления компьютерным программным продуктом на машиночитаемом носителе, содержащем выполняемые компьютером команды, такие как программный код, выполняемый компьютерами в сетевых средах. Машиночитаемый носитель может включать съемные и несъемные запоминающие устройства, включая, в качестве неограничивающих примеров, постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), компакт-диски (CD), цифровой универсальный диск (DVD) и т.д. Вообще, программные модули включают подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Исполняемые машинные команды, связанные структуры данных и программные модули представляют собой примеры программного кода для выполнения шагов способов, раскрытых здесь. Конкретная последовательность таких исполняемых команд или связанных структур данных представляет примеры соответствующих действий для реализации функций, описанных такими шагами.
[0029] Программные и Web-реализации различных форм осуществления изобретения могут быть выполнены стандартными методами программирования с логикой на основе правил и другой логикой для выполнения различных шагов или процессов поиска в базе данных, шагов или процессов корреляции, шагов или процессов сравнения и шагов или процессов решения. Следует отметить, что слова "компонент" и "модуль", которые используются здесь и в формуле изобретения, предназначены для охвата реализаций, использующих одну или несколько строк программного кода и/или аппаратных реализаций и/или оборудования для приема данных, вводимых вручную.
[0030] Вышеизложенное описание предпочтительной формы осуществления изобретения было представлено с целью иллюстрации и описания. Оно не предназначено для того, чтобы быть исчерпывающим или ограничивать изобретение точной раскрытой формой; модификации и разновидности возможны в свете вышеприведенных идей или могут быть получены в результате практического применения изобретения. Формы осуществления, рассмотренные здесь, были выбраны и описаны с целью объяснения принципов настоящего изобретения и его практического применения, чтобы позволить специалистам в данной области техники использовать настоящее изобретение в различных формах осуществления и различных модификациях, которые подходят для конкретного использования. Особенности форм осуществления изобретения, описанные здесь, могут объединяться во все возможные комбинации способов, устройств, модулей, систем и компьютерных программных продуктов.