СИСТЕМЫ И СПОСОБЫ ДЛЯ ПРЕДОСТАВЛЕНИЯ ИЗБИРАТЕЛЬНОГО МНОГОАДРЕСНОГО ПРОКСИ-СЕРВЕРА ПО КОМПЬЮТЕРНОЙ СЕТИ
SYSTEMS AND METHODS FOR PROVISION OF SELECTIVE MULTIADDRESS PROXY SERVER ALONG COMPUTER NETWORK

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение в целом относится к компьютерам и имеющей отношение к компьютерам технологии. Более точно, настоящее изобретение относится к системам и способам для предоставления избирательного многоадресного прокси-сервера в компьютерной сети.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Компьютерные технологии и технологии связи продолжают развиваться быстрыми темпами. В действительности компьютер и технологии связи вовлечены во многие аспекты для человека. Например, многие из устройств, используемых сегодня потребителями, имеют внутри устройства небольшой компьютер. Небольшие компьютеры представляются в различных размерах и уровнях совершенства. Эти небольшие компьютеры включают в себя все от одного микроконтроллера до полнофункциональной полной компьютерной системы. Например, эти небольшие компьютеры могут быть однокристальным компьютером, таким как микроконтроллер, одноплатным типом компьютера, таким как контроллер, типичным настольным компьютером, таким как совместимый с IBM-РС компьютер, и т.д.
Компьютеры типично имеют один или более процессоров в основе компьютера. Процессоры обычно взаимосвязаны с различными внешними входами и выходами и функционируют для управления отдельным компьютером или устройством. Например, процессор в термостате может быть подключен к кнопкам, используемым для выбора температурной настройки, к печи или кондиционеру для изменения температуры, и к датчикам температуры для считывания и отображения текущей температуры на устройстве отображения.
Многие приборы, устройства и т.д. включают в себя один или более небольших компьютеров. Например, термостаты, печи, системы кондиционирования воздуха, холодильники, телефоны, печатающие устройства, автомобили, торговые автоматы и многие другие типы промышленного оборудования в настоящее время имеют внутри себя небольшие компьютеры или процессоры. Компьютерное программное обеспечение выполняется на процессорах этих компьютеров и подает команды процессору, как выполнять определенные задачи. Например, компьютерное программное обеспечение, работающее на термостате, может заставлять кондиционер прекращать работать, когда достигнута определенная температура, или может заставлять нагреватель включаться, когда это требуется.
Эти типы небольших компьютеров, которые являются частью устройства, прибора, инструмента и т.д., обычно упоминаются как встроенные устройства или встроенные системы. (Термины "встроенное устройство" и "встроенная система" будут использоваться в данном документе взаимозаменяемо.) Встроенная система обычно ссылается на компьютерное аппаратное обеспечение, которое является частью большой системы. Встроенные системы могут не иметь типичных входных или выходных устройств, таких как клавиатуру, мышь и/или монитор. Обычно, в основе такой встроенной системы находится один или более процессор(ов).
Система освещения может включать в себя встроенную систему. Встроенная система может использоваться для управления эффективностью системы освещения. Например, встроенная система может обеспечивать средства управления для уменьшения яркости источников света в системе освещения. В качестве альтернативы встроенная система может предоставлять средства управления для увеличения яркости источников света. Встроенная система может предоставлять средства управления для начала выполнения определенной схемы освещения среди отдельных источников света в системе освещения. Встроенные системы могут быть соединены с отдельными переключателями в системе освещения. Эти встроенные системы могут подавать команды переключателям для включения и выключения отдельных источников света или всей системы освещения. Сходным образом встроенные системы могут быть соединены с отдельными источниками света в системе освещения. Яркость или питание каждого отдельного источника света могут управляться встроенной системой.
Система безопасности может также включать в себя встроенную систему. Встроенная система может использоваться для управления отдельными датчиками безопасности, которые составляют систему безопасности. Например, встроенная система может предоставлять средства управления для автоматического включения каждым из датчиков безопасности. Встроенная система может быть соединена с каждым из отдельных датчиков безопасности. Например, встроенная система может быть подсоединена к датчику движения. Встроенные системы могут подавать питание на отдельный датчик движения и предоставлять средства управления для приведения в действие датчика движения, если обнаружено движение. Приведение в действие датчика движения может включать в себя предоставление команд для подачи питания на светодиод, расположенный внутри датчика движения, вывода сигнала предупреждения из выходных портов датчика движения, и тому подобного. Встроенные системы могут также быть подсоединены к датчикам, наблюдающим за дверью. Встроенная система может предоставлять команды датчику, наблюдающему за дверью, для приведения в действие, когда дверь открывается или закрывается. Сходным образом, встроенные системы могут также быть подсоединены к датчикам, наблюдающим за окном. Встроенная система может предоставлять команды датчику, наблюдающему за окном, для приведения в действие, когда дверь открывается или закрывается.
Некоторые встроенные системы могут также использоваться для управления беспроводными изделиями, такими как сотовые телефоны. Встроенная система может предоставлять команды для включения светодиодного дисплея мобильного телефона. Встроенная система может также приводить в действие громкоговорители в сотовом телефоне для предоставления пользователю звукового уведомления, относящегося к сотовому телефону.
Домашние приборы могут также содержать в себе встроенную систему. Домашние приборы могут включать в себя приборы, типично используемые на обычной кухне, например кухонную плиту, холодильник, микроволновую печь и т.д. Домашние приборы могут также включать в себя приборы, которые имеют отношение к здоровью и благополучию пользователя. Например, массажное кресло может содержать в себе встроенную систему. Встроенная система может предоставлять команды для автоматического отклонения спинки кресла согласно предпочтениям пользователя. Встроенная система может также предоставлять команды для запуска вибрирующих компонентов в кресле, что служит основанием для колебаний в массажном кресле согласно предпочтениям пользователя.
Дополнительные изделия, которые обычно находятся дома, могут также включать в себя встроенные системы. Например, встроенная система может использоваться в ванной комнате для контроля уровня воды, используемой для пополнения емкости. Встроенные системы могут использоваться в ванной с гидромассажем для контроля выпуска воздуха.
Как указано, встроенные системы могут использоваться для наблюдения или управления многими различными системами, ресурсами, изделиями и т.д. С ростом сети Интернет и всемирной паутины, встроенные системы все больше подключаются к сети Интернет, так что они могут наблюдаться и/или управляться дистанционно. Другие встроенные системы могут быть подсоединены к компьютерным сетям, включающим в себя локальные сети, глобальные сети и т.д. Как используется в данном документе, термин “компьютерная сеть” (или просто “сеть”) относится к любой системе, в которой ряд узлов взаимосвязан посредством канала связи. Термин “узел” относится к любому устройству, которое может быть подключено в качестве части компьютерной сети. Встроенная система может быть узлом сети. Другие примеры узлов сети включают в себя компьютеры, персональные цифровые секретари (PDA), сотовые телефоны и т.д.
Некоторые встроенные системы могут предоставлять данные и/или обслуживания другим вычислительным устройствам с использованием компьютерной сети. Могут предоставляться многие другие виды обслуживания. Некоторые примеры обслуживания включают в себя предоставление данных температуры из некоторого местоположения, предоставление данных наблюдений, предоставления информации о погоде, предоставление аудиопотока, предоставление видеопотока и т.д. В качестве используемого здесь, термин “запрашивающая сторона” относится к узлу, который запрашивает обслуживание у поставщика. Термин “поставщик” относится к узлу, который предоставляет обслуживание запрашивающей стороне.
Некоторые из узлов в компьютерной сети могут быть сконфигурированы для отправки сообщений другим узлам в сети с использованием технологии многоадресной передачи. В рамках контекста компьютерных сетей термин “многоадресная" относится к процессу отправки сообщения одновременно более чем одному узлу в сети. Многоадресная передача отличается от широковещания тем, что многоадресная передача обозначает отправку сообщения определенным группам узлов в сети, в то время как широковещание подразумевает отправку сообщения всем узлам сети.
Узел, который запрашивает обслуживание (т.е. запрашивающая сторона), может отправлять запрос на обслуживание другим узлам в сети посредством многоадресной передачи. Тем не менее, появляются некоторые проблемы в связи с использованием технологии многоадресной передачи для запроса обслуживания в компьютерной сети. Например, компьютерная сеть может включать в себя один или более ограниченных в ресурсах узлов, которые не способны принимать и/или обрабатывать многоадресные сообщения. Если запрашивающая сторона отправляет запрос на обслуживание другим узлам в сети посредством многоадресной передачи, эти ограниченные в ресурсах узлы могут не получить (и поэтому не имеют возможности ответить) запрос на обслуживание.
Другой проблемой, связанной с известными подходами, является то, что каждый узел, который принимает запрос на обслуживание посредством многоадресной передачи, обычно определяет, может ли он предоставить требуемое обслуживание, и, если может, он отвечает на запрос на обслуживание. Такой подход может быть неэффективен при некоторых условиях, поскольку несколько узлов, которые не предоставляют запрашиваемое обслуживание, могут по-прежнему обрабатывать запрос на обслуживание.
Еще одной проблемой с известными подходами является то, что может быть обнаружено, что один или более узлов в сети неисправны в каком-либо виде. Если это происходит, может требоваться предотвратить такие узлы от прямой обработки многоадресных сообщений. Это может быть достигнуто посредством выключения соответствующего стека протоколов в узле. Тем не менее, подобный подход может быть нежелателен при некоторых условиях, поскольку это может мешать таким узлам принимать и отвечать на запросы обслуживания, которые отправляются в сети с помощью многоадресной передачи.
Ввиду вышесказанного, полезные результаты могут быть осуществлены посредством улучшений, относящихся к использованию технологии многоадресной передачи в компьютерной сети. Таким образом, некоторые примерные системы и способы для содействия более эффективной обработке многоадресных запросов в компьютерной сети раскрыты в данном документе.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Раскрыты системы и способы для предоставления избирательного прокси-сервера в компьютерной сети. В примерном варианте осуществления избирательный многоадресный прокси-сервер принимает регистрацию множества немногоадресных узлов, которые не обрабатывают многоадресные сообщения. В ответ на получение запроса обслуживания от запрашивающей стороны с помощью многоадресного вещания избирательный многоадресный прокси-сервер распознает среди множества немногоадресных узлов одного или более поставщиков запрашиваемого обслуживания. Избирательный многоадресный прокси-сервер отправляет запрос одному или более поставщикам без отправки запроса другим немногоадресным узлам в компьютерной сети. Избирательный многоадресный прокси-сервер принимает один или более откликов на запрос от одного или более поставщиков, избирательный многоадресный прокси-сервер отправляет ответ(ы) исходной запрашивающей стороне. Избирательный многоадресный прокси-сервер, запрашивающая сторона и множество немногоадресных узлов могут быть все расположены в одной локальной сети.
Запрос может быть отправлен одному или более поставщикам с помощью протокола с установлением соединения. В качестве альтернативы запрос может быть отправлен одному или более поставщикам с помощью протокола без установления соединения.
Для того чтобы распознать одного или более поставщиков запрашиваемого обслуживания, должна поддерживаться база данных зарегистрированных узлов. Запрос может включать в себя идентификатор обслуживания, который идентифицирует запрашиваемое обслуживание. Избирательный многоадресный прокси-сервер может обнаруживать идентификатор обслуживания в запросе, и затем искать идентификатор обслуживания в базе данных зарегистрированных обслуживания.
Множество немногоадресных узлов может включать в себя по меньшей мере ограниченный в ресурсах узел, который не способен обрабатывать немногоадресные сообщения. В качестве альтернативы или добавления множество немногоадресных узлов может включать в себя по меньшей мере один способный к многоадресной передаче узел, который способен обрабатывать многоадресные сообщения. Избирательный многоадресный прокси-сервер может облегчать регистрацию способных к многоадресной передаче узлов посредством периодической отправки сообщения объявления прокси-сервера.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Примерные варианты осуществления изобретения станут полностью очевидны из последующего описания и прилагаемой формулы изобретения, взятых в соединении с сопроводительными чертежами. Понимая, что эти чертежи отображают только примерные варианты осуществления изобретения и таким образом не должны рассматриваться как ограничивающие его объем, примерные варианты осуществления изобретения будут описаны с дополнительной спецификой и подробностью посредством использования прилагаемых чертежей, на которых:
Фиг.1 - структурная схема, которая иллюстрирует систему для обработки многоадресных запросов в компьютерной сети согласно варианту осуществления;
Фиг.2 - схема последовательности операций, которая иллюстрирует функционирование избирательного многоадресного прокси-сервера в варианте осуществления, изображенном на фиг.1;
Фиг.3 - структурная схема, которая иллюстрирует различные компоненты в избирательном многоадресном прокси-сервере, который сконфигурирован согласно варианту осуществления;
Фиг.4 - структурная схема, которая иллюстрирует различные дополнительные компоненты в избирательном многоадресном прокси-сервере, который сконфигурирован согласно варианту осуществления;
Фиг.5 - схема последовательности операций, иллюстрирующая функционирование компонентов, изображенных на фиг.4 согласно варианту осуществления;
Фиг.6 - структурная схема аппаратных компонентов, которые могут быть использованы во встроенной системе, которая сконфигурирована согласно варианту осуществления;
Фиг.7 иллюстрирует примерную систему освещения, в которой настоящие системы и способы могут быть реализованы;
Фиг.8 иллюстрирует примерную систему безопасности, в которой настоящие системы и способы могут быть реализованы; и
Фиг.9 иллюстрирует примерную систему домашнего устройства управления, в которой настоящие системы и способы могут быть реализованы.
Наилучший вариант осуществления изобретения
Различные варианты осуществления изобретения будут теперь описаны со ссылкой на фигуры, на которых одинаковые ссылочные номера обозначают идентичные или функционально сходные элементы. Варианты осуществления настоящего изобретения, как обычно описано и проиллюстрировано на фигурах в данном документе, могут быть устроены и разработаны в широком разнообразии различных конфигураций. Поэтому последующее более подробное описание нескольких примерных вариантов изобретения, как представлено на фигурах, не имеет намерением ограничить объем изобретения, как заявлено, но лишь являются образцами вариантов осуществления изобретения.
Слово “примерный” использовано в материалах настоящей заявки, исключительно чтобы означать “служащий в качестве примера, экземпляра или иллюстрации”. Любой вариант осуществления, описанный в материалах настоящей заявки как “примерный”, не должен быть обязательно истолкован как предпочтительный или преимущественный над другими вариантами осуществления. В то время как различные аспекты вариантов осуществления представлены на чертежах, чертежи необязательно начерчены в соответствии с масштабом, если это особым образом не обозначено.
Многие свойства вариантов осуществления, раскрытые в данном документе, могут быть реализованы в качестве компьютерного программного обеспечения, электронного аппаратного обеспечения или их сочетаний. Чтобы понятно проиллюстрировать взаимозаменяемость аппаратного и программного обеспечения, различные компоненты будут описаны, как правило, в терминах их функциональности. Является ли такая функциональность реализованной в качестве аппаратного или программного обеспечения, зависит от конкретного приложения и конструктивных ограничений, накладываемых на всю систему в целом. Специалисты в данной области техники могут реализовывать описанную функциональность различными способами, но подобные решения по реализации не должны толковаться в качестве причины отклонения от объема настоящего изобретения.
Там, где описанная функциональность реализуется в качестве компьютерного программного обеспечения, такое программное обеспечение может включать в себя любой тип компьютерной команды или исполнимого компьютером кода, расположенного в устройстве памяти и/или передаваемого в качестве электронных сигналов по системной шине или сети. Программное обеспечение, которое реализует функциональность, связанную с компонентами, описанными в данном документе, может содержать отдельную команду или множество команд и может быть распределено между несколькими сегментами кода, между различными программами и между несколькими запоминающими устройствами.
Фиг.1 является структурной схемой, которая иллюстрирует систему 100 для обработки многоадресных запросов в компьютерной сети согласно варианту осуществления. Вариант осуществления, изображенный на фиг.1, реализован в одной локальной сети (LAN). LAN включает в себя множество узлов, которые подключены посредством линии связи, которая предоставляет возможность узлам в LAN взаимодействовать друг с другом.
Некоторые из узлов в LAN предоставляют обслуживание другим узлам. Как указано выше, запрашивающая сторона является узлом, который запрашивает обслуживание у поставщика обслуживания. Поставщик обслуживания является узлом, который предоставляет обслуживание запрашивающей стороне.
В системе 100, показанной на фиг.1, запрашивающая сторона 102 отправляет запрос 104 на обслуживание другим узлам в LAN c помощью многоадресной передачи. Протокол без установления соединения, такой как протокол дейтаграмм пользователя (UDP), может использоваться в качестве транспортного протокола для отправки запросов обслуживания с помощью многоадресной передачи. Подобные запросы обслуживания могут упоминаться как многоадресные запросы UDP.
Некоторые из узлов в LAN могут не обрабатывать многоадресные сообщения. Например, LAN может включать в себя один или более ограниченных в ресурсах узлов, которые не способны принимать и/или обрабатывать многоадресные сообщения (например, которые не имеют соответствующего стека многоадресных протоколов для обработки многоадресных сообщений). В качестве другого примера, LAN может включать в себя один или более узлов, которые способны обрабатывать многоадресные сообщения, но сконфигурированы или объявлены необрабатывающими многоадресные сообщения по меньшей мере временно. Термин “немногоадресный узел” будет использоваться в данном документе для указания узла, который не обрабатывает многоадресные сообщения, либо потому что не способен обрабатывать многоадресные сообщения, либо потому что сконфигурирован или объявлен необрабатывающим многоадресные сообщения.
В изображенном варианте осуществления в LAN предусмотрен избирательный многоадресный прокси-сервер 108. В общих словах избирательный многоадресный прокси-сервер 108 служит в качестве интерфейса между запрашивающей стороной 102 и немногоадресными узлами в LAN, который не обрабатывает запрос 104. Предоставляемая избирательным многоадресным прокси-сервером 108 функциональность будет описана ниже в большей подробности.
Немногоадресные узлы в LAN регистрируются с помощью избирательного многоадресного прокси-сервера 108. Некоторые примерные способы регистрации, которые немногоадресный узел может зарегистрировать с помощью избирательного многоадресного прокси-сервера 108, будут рассматриваться ниже. Избирательный многоадресный прокси-сервер 108 сохраняет информацию 110 о немногоадресных узлах, которые были зарегистрированы с его помощью.
Когда избирательный многоадресный прокси-сервер 108 принимает запрос 104 на обслуживание 106, он не просто пересылает запрос 104 на обслуживание всем немногоадресным узлам, которые зарегистрировались с его помощью. Вместо этого в ответ на получение запроса 104 определенного обслуживания 106, избирательный многоадресный прокси-сервер 108 определяет, какой (если имеются) из зарегистрированных немногоадресных узлов способен предоставить запрашиваемое обслуживание 106. Другими словами, избирательный многоадресный прокси-сервер 108 идентифицирует одного или более поставщиков 112 запрашиваемого обслуживания 106 среди немногоадресных узлов, которые зарегистрировались с его помощью. Некоторые примерные способы, которыми избирательный многоадресный прокси-сервер 108 может идентифицировать поставщика 112 запрашиваемого обслуживания 106 будут рассмотрены ниже.
Запрос 104 на обслуживание может определять, что только поставщик 112 с определенным идентификатором 116 поставщика обслуживания 106 может обеспечить запрос 104. В качестве альтернативы запрос на обслуживание 104 может определять, что все поставщики 112 обслуживания 106 могут обеспечить запрос 104. В альтернативных вариантах осуществления избирательный многоадресный прокси-сервер 108 может идентифицировать более одного поставщика 112 запрашиваемого обслуживания 106 с одинаковым идентификатором 116 поставщика. Если это имеет место, избирательный многоадресный прокси-сервер 108 может выбирать одного поставщика 112 из этих поставщиков с одинаковым идентификатором 116 поставщика. Для осуществления данного выбора могут быть использованы различные алгоритмы.
В изображенном варианте осуществления, как только избирательный многоадресный прокси-сервер 108 идентифицировал одного или более поставщиков 112 запрашиваемого обслуживания 106, он пересылает запрос 104 поставщикам 112. Если соединение, (например соединение TCP/IP, последовательное соединение, и т.д.) было установлено между избирательным многоадресным прокси-сервером 108 и определенным поставщиком 112, то избирательный многоадресный прокси-сервер 108 может отправлять запрос 104 на обслуживание поставщику 112 с помощью этого соединения. Тем не менее, не является необходимым, чтобы это соединение было установлено между избирательным многоадресным прокси-сервером 108 и идентифицированным поставщиком(ами) 112. Например, избирательный многоадресный прокси-сервер 108 может отправлять запрос 104 поставщику(ам) 112 с помощью протокола без установления соединения, такого как однонаправленный UDP.
Преимущественно, избирательный многоадресный прокси-сервер 108 может быть сконфигурирован так, что он отправляет запрос 104 на обслуживание только идентифицированному поставщику(ам) 112, а не другим зарегистрированным немногоадресным узлам (и не другим узлам в LAN). Следовательно, не является необходимым для узлов, которые не предоставляют запрашиваемого обслуживания 106, обрабатывать запрос 104 на обслуживание 106, таким образом сохраняя вычислительные ресурсы на этих узлах.
Идентифицированный поставщик(и) 112 запрашиваемого обслуживания 106 принимает(ют) запрос 104 на обслуживание от избирательного многоадресного прокси-сервера 108 и отвечает(ют) на него. Поставщик(и) 112 могут отправлять ответы 114 на запрос 104 на обслуживание назад на избирательный многоадресный прокси-сервер 108 либо с помощью соединения между избирательным многоадресным прокси-сервером 108 и поставщиком 112, либо с помощью протокола без установки соединения. Избирательный многоадресный прокси-сервер 108 может пересылать ответы 114, которые он принял от поставщика(ов) 112 назад исходной запрашивающей стороне 102 с использованием протокола без установки соединения, такого как однонаправленный UDP.
Фиг.2 является схемой последовательности операций, которая иллюстрирует функционирование избирательного многоадресного прокси-сервера 108 в варианте осуществления, изображенном на фиг.1. На этапе 202 проиллюстрированного способа 200, избирательный многоадресный прокси-сервер 108 принимает регистрацию одного или более немногоадресного узла в LAN. Немногоадресные узлы, которые регистрируются с помощью избирательного многоадресного прокси-сервера 108, могут включать в себя один или более ограниченный в ресурсах узлов, которые не способны принимать и/или обрабатывать многоадресные сообщения. В качестве другого примера или дополнения зарегистрированные немногоадресные узлы могут включать в себя один или более узлов, которые способны обрабатывать многоадресные сообщения, но сконфигурированы или объявлены необрабатывающими многоадресные сообщения по меньшей мере временно.
На этапе 204 избирательный многоадресный прокси-сервер 108 принимает с помощью многоадресной передачи, запрос 104 на обслуживание 106 от запрашивающей стороны 102 в LAN. Один или более немногоадресных узлов, которые зарегистрированы избирательным многоадресным прокси-сервером 108, могут быть способны предоставить запрашиваемое обслуживание 106. На этапе 206 избирательный многоадресный прокси-сервер 108 определяет, который (если существуют) из зарегистрированных немногоадресных узлов способен обеспечить запрашиваемое обслуживание 106. Другими словами, избирательный многоадресный прокси-сервер 108 идентифицирует поставщика(ов) 112 запрашиваемого обслуживания 106 среди немногоадресных узлов, которые зарегистрировались с его помощью. Некоторые примерные способы, которыми избирательный многоадресный прокси-сервер 108 может идентифицировать поставщика(ов) 112 запрашиваемого обслуживания 106, будут рассмотрены ниже.
Если на этапе 206 избирательный многоадресный прокси-сервер 108 определяет, что ни один из зарегистрированных немногоадресных узлов не способен предоставить запрашиваемое обслуживание 106, способ 200 завершается. Если избирательный многоадресный прокси-сервер 108 идентифицирует одного или более поставщиков запрашиваемого обслуживания 106, то на этапе 212 избирательный многоадресный прокси-сервер пересылает запрос 104 на обслуживание поставщику(ам) 112. Избирательный многоадресный прокси-сервер 108 может отправлять запрос 104 поставщику(ам) 112 с помощью одного или более соединений, которые были установлены между избирательным многоадресным прокси-сервером 108 и поставщиком(ами) 112. В качестве альтернативы избирательный многоадресный прокси-сервер 108 может отправлять запрос 104 поставщику (поставщикам) 112 с помощью протокола без установления соединения, такого как однонаправленный UDP.
Поставщик(и) 112 может отвечать на запрос 104 на обслуживание отправкой ответов 114 на запрос 104 на обслуживание обратно избирательному многоадресному прокси-серверу 108. На этапе 214 избирательный многоадресный прокси-сервер 108 принимает один или более ответов 114 на запрос 104 на обслуживание от поставщика(ов) 112. На этапе 216 избирательный многоадресный прокси-сервер 108 пересылает ответы 114 исходной запрашивающей стороне 102. Это может выполняться в соответствии с протоколом без установки соединения, таким как однонаправленный UDP.
Фиг.3 - структурная схема, которая иллюстрирует различные компоненты в избирательном многоадресном прокси-сервере 308, который сконфигурирован согласно варианту осуществления. Проиллюстрированные компоненты могут осуществлять функциональность обработки запросов 304 обслуживания от поставщиков в LAN.
Как показано, избирательный многоадресный прокси-сервер 308 может включать в себя многоадресное обслуживающее устройство 316 и процессор 318 запросов. Многоадресное обслуживающее устройство 316 может быть сконфигурировано для прослушивания определенных адресов и портов многоадресной передачи для многоадресной передачи пакетов и передачи принятых пакетов в качестве запросов 304 процессору 318 запросов.
В изображенном варианте осуществления процессор 318 запросов в избирательном многоадресном прокси-сервере 308 имеет доступ к базе 320 данных зарегистрированных узлов. База 320 данных может быть внутренним или внешним модулем избирательного многоадресного прокси-сервера 308. База 320 данных включает в себя идентификаторы 322 узлов для узлов, которые зарегистрированы избирательным многоадресным прокси-сервером 308. Каждый идентификатор 322 узла связан с одним или более идентификатором 324 обслуживания. Идентификатор 324 обслуживания является информацией, которая идентифицирует определенное обслуживание, которое может быть предоставлено узлом. В изображенном варианте осуществления, когда идентификатор 324 обслуживания связан с идентификатором 322 узла, это значит, что узел, который соответствует идентификатору 322 узла, способен предоставлять обслуживание, которое соответствует идентификатору 324 обслуживания.
Как показано, запрос 304 определенного обслуживания включает в себя идентификатор 324 обслуживания, который идентифицирует запрошенное обслуживание. В изображенном варианте осуществления, когда запрос 304 определенного обслуживания передается процессору 318 запросов, модуль 326 синтаксического разбора обнаруживает идентификатор 324 обслуживания в запросе 304. Идентификатор 324 обслуживания передается модулю 328 поиска, который ищет идентификатор 324 обслуживания в базе 320 данных зарегистрированных узлов. Если модуль 328 поиска обнаруживает идентификатор 322 узла, который связан с идентификатором 324 обслуживания, тогда соответствующий узел выбирается в качестве поставщика запрашиваемого обслуживания. Если модуль 328 поиска определяет, что более чем один из одинаковых идентификаторов 322 узла связаны с идентификатором 324 обслуживания, то это значит, что существует более чем один потенциальный поставщик с одним и тем же идентификатором 322 узла запрашиваемой службы. Если это имеет место, модуль 330 выбора выбирает поставщика запрашиваемого обслуживания среди одинаковых потенциальных поставщиков, которые были идентифицированы.
В изображенном варианте осуществления, поскольку процессор 318 запросов идентифицировал поставщика(ов) запрашиваемого обслуживания, он передает запрос 304 модулю 332 связи. Процессор 318 запросов может также передавать идентификатор(ы) 322 узла идентифицированных поставщика(ов) модулю 332 связи. Модуль 332 связи может быть сконфигурирован для функционирования в соответствии с протоколом c установлением соединения, таким как TCP/IP. В качестве альтернативы или дополнения модуль 332 связи может быть сконфигурирован для функционирования в соответствии с протоколом без установления соединения, таким как UDP. Поскольку модуль 332 связи принял запрос 304 обслуживания и идентификатор(ы) 332 узла поставщика(ов) от процессора 318 запросов, модуль 332 связи может отправлять запрос 304 поставщику(ам) запрошенного обслуживания.
Дополнительная информация о том, как избирательный многоадресный прокси-сервер может определять, какой из немногоадресных узлов способен предоставлять запрошенное обслуживание, описана в Патентной заявке США № 6,954,798, озаглавленной “Маршрутизация данных на основе содержимого от поставщика запрашивающей стороне” изобретателя Брайанта Иэстема. Данный патент США настоящим включен в своем содержании в материалы данного документа посредством ссылки.
Как кратко описывалось выше, избирательный многоадресный прокси-сервер может быть сконфигурирован для получения регистрации немногоадресных узлов. Другими словами, немногоадресные узлы в LAN могут регистрироваться избирательным многоадресным прокси-сервером так, что избирательный многоадресный прокси-сервер принимает многоадресные запросы от их имени. Немногоадресные узлы, которые зарегистрировались избирательным многоадресным прокси-сервером, могут включать в себя один или более узлов, которые способны обрабатывать многоадресные сообщения (Узлы, которые способны обрабатывать многоадресные сообщения могут упоминаться как “поддерживающие многоадресность узлы”). Существует разнообразие причин, почему избирательный многоадресный прокси-сервер может быть сконфигурирован, чтобы служить в качестве многоадресного прокси-сервера для поддерживающих многоадресность узлов. Например, если поддерживающий многоадресность узел в LAN неисправен каким-либо образом (например имеет ошибку), администратор LAN может пожелать предотвратить этот узел от прямой обработки многоадресных сообщений, пока дефект не сможет быть исправлен. В этом случае избирательный многоадресный прокси-сервер 308 может вмешиваться и перекрывать дефектные стороны дефективного узла.
В дополнение к службе в качестве многоадресного прокси-сервера от имени поддерживающих многоадресность узлов избирательный многоадресный прокси-сервер может также служить в качестве многоадресного прокси-сервера для ограниченных в ресурсах узлов, которые не способны обрабатывать многоадресные сообщения. Это позволяет ограниченным в ресурсах узлам отвечать на запросы обслуживания с использованием немногоадресных запросов, выступая для них в качестве посредника, где в противном случае они не могут принимать такие запросы вследствие их неспособности обрабатывать многоадресную передачу.
Фиг.4 - структурная схема, которая иллюстрирует различные дополнительные компоненты в избирательном многоадресном прокси-сервере 408, который сконфигурирован согласно варианту осуществления. Иллюстрируемые компоненты могут реализовывать функциональность приема регистрации немногоадресных узлов, которые в изображенном варианте осуществления могут быть ограниченными в ресурсах узлами, которые не способны обрабатывать многоадресные запросы, и/или поддерживающими многоадресность узлами, которые объявлены или сконфигурированы необрабатывающими многоадресные запросы.
Как показано, избирательный многоадресный прокси-сервер 408 может включать в себя модуль 434 соединения. Модуль 434 соединения может быть сконфигурирован для установления соединений с немногоадресными узлами в LAN. В некоторых вариантах осуществления модуль 434 соединения может быть сконфигурирован для установления соединения TCP/IP. Например, функциональность модуля 434 соединения может быть реализована посредством стека протоколов TCP/IP, который сконфигурирован для установления соединений TCP/IP с другими узлами LAN. В качестве альтернативы или дополнения модуль 434 соединения может быть сконфигурирован для установления других видов соединений, таких как последовательные соединения, к немногоадресным узлам в LAN.
Избирательный многоадресный прокси-сервер 408 может также включать в себя интерфейс 436 пользователя. Пользователь избирательного многоадресного прокси-сервера 408 может взаимодействовать и предоставлять команды избирательному многоадресному прокси-серверу 408 с помощью интерфейса 436 пользователя. Например, администратор LAN может выдать команду избирательному многоадресному прокси-серверу 408 открыть одно или более соединений с немногоадресными узлами в LAN с помощью интерфейса 436 пользователя.
Избирательный многоадресный прокси-сервер 408 может также включать в себя модуль 438 объявления прокси-сервера. Модуль 438 объявления пользователя может быть сконфигурирован для периодической отправки сообщения объявления прокси-сервера с помощью многоадресной передачи одному или более многоадресным группам в LAN. Сообщение объявления прокси-сервера может служить для уведомления поддерживающих многоадресность узлов в LAN о существовании избирательного многоадресного прокси-сервера 408. Например, как будет объяснено с большей подробностью ниже, сообщение объявления прокси-сервера может интерпретироваться поддерживающими многоадресность узлами в LAN в качестве команды окончания обработки многоадресных сообщений.
Фиг.5 является диаграммой последовательности операций модуля 434 соединения, интерфейса 436 пользователя и модуля 434 объявления прокси-сервера согласно варианту осуществления. Способ 500, который продемонстрирован на фиг.5, может выполняться для того, чтобы облегчать регистрацию поддерживающих многоадресность узлов избирательным многоадресным прокси-сервером 408.
На этапе 502 избирательный многоадресный прокси-сервер 408 принимает команду (например от администратора LAN) с помощью интерфейса 436 пользователя или конфигурации для открытия соединения с поддерживающим многоадресность узлом. На этапе 504 в ответ на принятую команду на этапе 502 модуль 434 соединения открывает соединение с заданным поддерживающим многоадресность узлом. В других вариантах осуществления поддерживающие многоадресность узлы могут быть запрограммированы, сконфигурированы или уведомлены для подключения к модулю 322 избирательного многоадресного прокси-сервера 308.
На этапе 506 модуль 438 объявления прокси-сервера отправляет сообщение объявления прокси-сервера с помощью многоадресной передачи многоадресной группе, которая включает в себя поддерживающий многоадресность узел, который задан на этапе 502. Сообщение объявления прокси-сервера может включать в себя адрес избирательного многоадресного прокси-сервера 408. В ответ на прием сообщения объявления прокси-сервера поддерживающий многоадресность узел может определять, подключен ли он в настоящий момент к избирательному многоадресному прокси-серверу 408 (т.е узлу, который указывается в сообщении объявления прокси-сервера). Если он в настоящий момент подключен к избирательному многоадресному прокси-серверу 408, то поддерживающий многоадресность узел может в ответ прекратить обработку многоадресных сообщений. Например, поддерживающий многоадресность узел может прервать свой стек протоколов многоадресной передачи. В качестве альтернативы поддерживающий многоадресность узел может просто начать игнорировать многоадресные сообщения без прерывания своего стека многоадресных протоколов. Если поддерживающий многоадресность узел не подключен в настоящий момент к избирательному многоадресному прокси-серверу 408, поддерживающий многоадресность узел может выбрать подключение к избирательному многоадресному прокси-серверу 408 и прекратить обработку многоадресных сообщений. Если в какой либо момент соединение между поддерживающим многоадресность узлом и избирательным многоадресным прокси-сервером 408 прервано, тогда поддерживающий многоадресность узел может продолжить обработку многоадресных сообщений.
В способе 500, изображенном на фиг.5, этап отправки сообщения объявления прокси-сервера показан имеющим место после этапа открытия соединения с поддерживающим многоадресность узлом. Однако в некоторых вариантах осуществления эти этапы могут не совершаться в данном порядке. Например, в некоторых вариантах осуществления модуль 438 объявления прокси-сервера может быть сконфигурирован так, что он периодически отправляет сообщение объявления прокси-сервера в LAN. Когда избирательный многоадресный прокси-сервер 408 открывает соединение с поддерживающим многоадресность узлом, поддерживающий многоадресность узел может продолжать принимать и обрабатывать многоадресные сообщения, пока не отправлено следующее запланированное сообщение объявления прокси-сервера.
Как указывалось выше, узлы в сети могут включать в себя одну или более встроенную систему.
Настоящие системы и способы могут быть реализованы в компьютерной сети, где встроенная система предоставляет данные и/или обслуживание другим вычислительным устройствам. Фиг.6 является структурной схемой аппаратных компонентов, которые могут быть использованы во встроенной системе 602, которая сконфигурирована согласно варианту осуществления. Центральное обрабатывающее устройство (CPU) 608 или процессор могут быть предусмотрены для управления функционированием встроенной системы 602, включающей в себя другие ее компоненты, которые подключены к CPU 608 с помощью шины 610.
CPU 608 может быть реализовано как микропроцессор, микроконтроллер, процессор цифровой обработки сигналов или другое известное в данной области техники устройство.
CPU 608 выполняет логические и арифметические операции на основе программного кода, сохраненного в памяти. В определенных вариантах осуществления запоминающее устройство 624 может быть встроенным запоминающим устройством, включенным в CPU 608. Например, микроконтроллеры часто включают в себя некоторое количество встроенного запоминающего устройства.
Встроенная система 602 может также включать в себя сетевой интерфейс 612. Сетевой интерфейс 612 позволяет встроенной системе 602 быть подключенной к сети, которая может быть пейджинговой сетью, сотовой сетью, глобальной сетью связи, Интернетом, компьютерной сетью, телефонной сетью и т.д. Сетевой интерфейс 612 функционирует в соответствии со стандартными протоколами для применяемой сети.
Встроенная система может также включать в себя запоминающее устройство 604. Запоминающее устройство 614 может включать в себя запоминающее устройство с произвольным доступом (RAM) для хранения временных данных. В качестве альтернативы или дополнения запоминающее устройство 614 может включать в себя постоянное запоминающее устройство (ROM) для хранения более постоянных данных, таких как постоянный код и данные конфигурации. Запоминающее устройство 614 может также быть реализовано в качестве магнитного запоминающего устройства, такого как накопитель на жестком диске. Запоминающее устройство 614 может быть любым типом электронного устройства, которое способно хранить электронную информацию.
Встроенная система 602 может также включать в себя один или более порты 616 связи, который способствует связи с другими устройствами. Встроенная система 602 может также включать в себя устройства 618 ввода/вывода, такие как клавиатура, мышь, джойстик, сенсорный экран, монитор, громкоговорители, принтер и т.д.
Конечно, фиг.6 иллюстрирует только одну возможную конфигурацию встроенной системы 602. Могут использоваться различные архитектуры и компоненты.
Настоящие системы и способы могут использоваться в нескольких контекстах. Фиг.7 иллюстрирует один вариант осуществления системы, где настоящие системы и способы могут быть реализованы. Фиг.7 является структурной схемой, которая иллюстрирует один вариант осуществления системы 700 освещения, которая включает в себя систему 708 управления освещением. Система 700 освещения на фиг.7 может являться частью различных помещений в доме. Как проиллюстрировано, система 700 включает в себя помещение A 702, помещение В 704 и помещение С 706. Хотя на фиг.7 показаны три помещения, система 700 может быть реализована в любом количестве и разнообразии помещений в доме, жилище или другой среде.
Система 708 контроллера освещения может наблюдать и управлять дополнительными встроенными системами и компонентами в системе 700. В одном варианте осуществления помещение A 702 и помещение В 704 каждое включает в себя компоненты 714, 718 выключателей. Компоненты 714, 718 выключателей могут также включать в себя вторичные встроенные системы 716, 720. Вторичные встроенные системы 716, 720 могут принимать команды от системы 708 управления освещением. Вторичные встроенные системы 716, 720 могут затем выполнять эти команды. Команды могут включать в себя включение и выключение различных компонентов 710, 712, 722, и 724 освещения. Команды могут также включать в себя уменьшение яркости или увеличение яркости различных компонентов 710, 712, 722, и 724 освещения. Команды могут дополнительно включать в себя организацию яркости компонентов 710, 712, 722, и 724 освещения по различным схемам. Вторичные встроенные системы 716, 720 содействуют системе 708 управления освещением наблюдать и управлять каждым компонентом 710, 712, 722 и 724 освещения, расположенным в помещении A 702 и помещении В 704.
Система 708 контроллера освещения может также предоставлять команды напрямую компонентам 726 освещения, которые включают в себя вторичную встроенную систему 728 в изображенном помещении С 706. Система 708 контроллера освещения может подавать команду вторичной встроенной системе 728 выключить или включить отдельный компонент 726 освещения. Сходным образом, команды, принятые от системы 708 управления освещением, могут включать в себя затемнение яркости или увеличение яркости отдельного компонента 726 освещения.
Система 708 контроллера освещения может также наблюдать и предоставлять команды напрямую отдельным компонентам 730 и 732 освещения в системе 700. Эти команды могут включать в себя сходные команды, как описано ранее.
Фиг.8 является дополнительным вариантом осуществления системы, в котором настоящие системы и способы настоящего изобретения могут быть реализованы. Фиг.8 является структурной схемой, иллюстрирующей систему 800 безопасности. Система 800 безопасности в изображенном варианте осуществления реализована в помещении A 802, помещении В 804 и помещении С 806. Эти помещения могут находиться в пределах дома или другого защищенного окружения. Система 800 может также быть реализована в открытом окружении, где помещения A, B и C, 802, 804, и 806 соответственно представляют территории или границы.
Система 800 включает в себя систему 808 контроллера безопасности. Система 808 контроллера безопасности следит и принимает информацию от различных компонентов в системе 800. Например, датчик 814, 818 наблюдения может включать в себя вторичную встроенную систему 816. Датчики 814, 818 движения могут следить за движением в ближнем пространстве и предупреждать систему 808 контроллера безопасности, когда обнаружено движение с помощью вторичной встроенной системы 816, 820. Система 808 контроллера безопасности может также предоставлять команды различным компонентам в системе 800. Например, система 808 контроллера безопасности может предоставлять команды вторичным встроенным системам 816, 820 для включения или выключения датчика 810, 822 окна, датчика 812, 814 двери. В одном варианте осуществления вторичные встроенные системы 816, 820 уведомляют систему 808 контроллера безопасности, когда датчики 810, 822 окна обнаруживают движение окна. Сходным образом, вторичные встроенные системы 816, 820 уведомляют систему 808 контроллера безопасности, когда датчики 812, 824 двери обнаруживают движение двери. Вторичные встроенные системы 816, 820 могут подавать команды датчикам 814, 818 движения для приведении в действие LED (не показан), расположенного в датчиках 814, 818 движения.
Система 808 контроллера безопасности может также контролировать и предоставлять команды различным компонентам в системе 800. Например, система 808 контроллера безопасности может следить и предоставлять инструкции для включения и выключения датчика 830 движения или датчика 832 окна. Система 808 контроллера безопасности может также подавать команду датчику 830 движения и датчику 832 окна приводить в действие уведомления LED (не показан) или звукового предупреждения в датчиках 830 и 832.
Каждый отдельный компонент, составляющий систему 800, может также включать в себя вторичную встроенную систему. Например, фиг.8 иллюстрирует датчик 826 двери, включающий в себя вторичную встроенную систему 828. Система 808 контроллера безопасности может следить и предоставлять команды вторичной встроенной системе 828 сходным образом, тому как было описано выше.
Фиг.9 является структурной схемой, иллюстрирующей один вариант осуществления системы 900 управления домом. Система 900 управления домом включает в себя домашний контроллер 900, который способствует наблюдению за разными системами, такими как система 700 освещения, система 800 безопасности и подобные. Система 900 управления домом позволяет пользователю управлять различными компонентами и системами с помощью одной или более встроенных систем. В одном варианте осуществления система 908 контроллера дома наблюдает и предоставляет информацию тем же способом, как было ранее описано в отношении фиг. 7 и 8. В изображенном варианте осуществления домашний контроллер 908 предоставляет команды нагревательному компоненту 924 с помощью вторичной встроенной системы 920. Нагревательный компонент 924 может включать в себя печь или другое нагревательное устройство, типично находящиеся в жилых помещениях или офисах. Система 908 контроллера дома может предоставлять команды для включения или выключения нагревательного компонента 924 с помощью вторичной встроенной системы 920.
Сходным образом, домашний контроллер 908 может наблюдать и предоставлять команды напрямую компоненту в системе 900 управления домом, такому как охлаждающий компонент 930. Охлаждающий компонент 930 может включать в себя кондиционер или другое охлаждающее устройство, типично находящиеся в жилых помещениях или офисах. Центральный домашний контроллер 908 может подавать команды охлаждающему компоненту 930 включиться или выключиться в зависимости от показаний температуры, собранных центральной встроенной системой 908. Система 900 управления домом функционирует сходным способом с тем, как было ранее описано по отношению к фиг. 7 и 8.
Информация и сигналы могут быть представлены с использованием любого из разнообразия различных технологий и техник. Например, данные, инструкции, команды, информация, сигналы, символы и элементарные сигналы и микросхемы, которые могут упоминаться на всем протяжении вышеприведенного описания, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами либо любым их сочетанием.
Различные иллюстративные логические блоки, модули, контуры и этапы алгоритма, описанные в связи с раскрытыми в данном документе вариантами осуществления, могут быть реализованы в виде электронного аппаратного обеспечения, компьютерного программного обеспечения или их сочетаний. Для того чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратного и программного обеспечения, различные иллюстративные компоненты, блоки, модули и этапы были описаны выше в целом в терминах их функциональности. Является ли такая функциональность реализованной в качестве аппаратного или программного обеспечения, зависит от конкретного приложения и конструктивных ограничений, накладываемых на всю систему в целом. Специалисты в данной области техники могут реализовывать описанную функциональность различными способами, но подобные решения по реализации не должны толковаться в качестве причины отклонения от объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и контуры, описные в связи с примерными вариантами осуществления, раскрытыми в данном документе, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровой обработки сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой вентильной матрицы (FPGA) или другого программируемого логического устройства, логики дискретных вентилей или транзисторной логики, дискретных аппаратных компонентов или любого их сочетания, разработанного для выполнения функций, описанных в данном документе. Процессором общего применения может быть микропроцессор, но в альтернативном варианте процессор может быть любым традиционным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может также быть реализован как сочетание вычислительных устройств, например, сочетание DSP и микропроцессора, множества микропроцессоров, одного или более микропроцессоров в соединении с ядром DSP или любой другой подобной конфигурацией.
Этапы способа или алгоритма, описанные в соединении с вариантами осуществления, раскрытыми в данном документе, могут быть реализованы напрямую в аппаратном обеспечении, в программном модуле, выполняемом процессором, или в сочетании обоих. Модуль программного обеспечения может находиться в запоминающем устройстве ОЗУ (RAM, оперативного запоминающего устройства), флэш-памяти, запоминающем устройстве ПЗУ (ROM, постоянного запоминающего устройства), памяти ЭСПЗУ (EPROM, электрически программируемого ПЗУ), запоминающем устройстве ЭСППЗУ (EEPROM, электрически стираемого и программируемого ПЗУ), регистрах, жестком диске, съемном диске, CD-ROM (ПЗУ на компакт-диске) или любом другом виде запоминающего носителя, известном в данной области техники. Примерный запоминающий носитель связан с процессором, так что процессор может считывать информацию с и записывать информацию на запоминающий носитель. В качестве альтернативы запоминающий носитель может быть составной частью процессора. Процессор и запоминающий носитель могут находиться в ASIC. ASIC может находится в пользовательском терминале. В качестве альтернативы процессор и запоминающий носитель могут находиться в качестве дискретных компонентов в терминале пользователя.
Способы, раскрытые в данном документе, содержат один или более этапов или действий для достижения описанного способа. Этапы способа и/или действия могут быть взаимозаменяемы друг другом без отклонения от объема настоящего изобретения. Другими словами, пока определенный порядок этапов или действий требуется для правильного функционирования варианта осуществления, порядок и/или использование определенных этапов и/или действий может быть изменен без отклонения от объема настоящего изобретения.
В то время как отдельные варианты осуществления и применения настоящего изобретения были проиллюстрированы и описаны, должно быть понятно, что изобретение не ограничено точной конфигурацией и компонентами, раскрытыми в данном документе. Различные модификации, изменения и вариации, которые будут очевидны специалистам в данной области техники, могут быть выполнены в компоновке, функционировании и деталях способов и систем настоящего изобретения, раскрытого в данном документе без отклонения от духа и объема изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение применимо во встроенной системе.