СИСТЕМЫ И СПОСОБЫ ВЫБОРА ТРАНСПОРТНОГО МЕХАНИЗМА ДЛЯ СВЯЗИ В СЕТИ
SYSTEMS AND METHODS FOR SELECTION OF TRANSPORT MECHANISM FOR COMMUNICATION IN NETWORK

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в общем, к компьютерам и технологии, связанной с применением компьютера. В частности, настоящее изобретение касается систем и способов выбора транспортного механизма для связи в сети.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Компьютерные и коммуникационные технологии продолжают развиваться ускоренными темпами. Компьютерные и коммуникационные технологии внедряются практически во все сферы человеческой деятельности. Например, многие устройства, используемые в настоящее время потребителями, снабжены встроенным мини-компьютером. Эти мини-компьютеры варьируются по размерам и степеням сложности. В число этих мини-компьютеров входят все их разновидности - от одного микроконтроллера до полнофункциональной компьютерной системы замкнутого типа. Например, эти мини-компьютеры могут представлять собой однокристальный компьютер типа микроконтроллера, одноплатный компьютер типа контроллера, типичный настольный компьютер типа IBM-совместимого ПК и т.д.
Основой компьютеров, как правило, являются один или более процессоров. Процессор(ы) обычно соединены с различными внешними устройствами ввода/вывода и выполняют функции управления отдельным компьютером или устройством. Например, процессор в термостате может быть соединен с кнопками, используемыми для выбора температурного режима, c печью или кондиционером воздуха для изменения температуры и с датчиками температуры для считывания и отображения текущей температуры на дисплее.
Многие приборы, устройства и т.д. включают в себя один или более мини-компьютеров. Например, термостаты, печи, системы кондиционирования воздуха, холодильники, телефоны, печатающие устройства, автомобили, торговые автоматы и многие другие типы промышленного оборудования в настоящее время, как правило, снабжены встроенными мини-компьютерами или процессорами. Компьютерное программное обеспечение управляет процессорами этих компьютеров и подает на процессоры команды, обеспечивающие выполнение определенных задач. Например, компьютерное программное обеспечение для термостата при достижении определенной температуры может обеспечивать прекращение работы кондиционера, а в случае необходимости - включение нагревателя.
Эти типы мини-компьютеров, являющиеся частью устройства, прибора, инструмента и т.д., часто называют встроенными устройствами или встроенными системами. (Термины "встроенное устройство" и "встроенная система" используются в данном документе как взаимозаменяемые). Встроенная система обычно относится к компьютерным аппаратным средствам и компьютерному программному обеспечению и является частью более крупной системы. Встроенные системы могут не иметь обычных устройств ввода и вывода типа клавиатуры, мыши и/или монитора. Как правило, основой каждой встроенной системы является один или более процессоров.
Система освещения может включать в себя встроенную систему. Встроенная система может быть использована для мониторинга и управления эффектами, создаваемыми системой освещения. Например, встроенная система может вырабатывать сигналы управления, обеспечивающие уменьшение яркости светильников в составе системы освещения. В другом варианте встроенная система может вырабатывать сигналы управления, обеспечивающие увеличение яркости светильников. Встроенная система может вырабатывать сигналы управления, обеспечивающие работу отдельных светильников в составе системы освещения в заданном световом режиме. Встроенные системы могут быть соединены с отдельными переключателями в составе системы освещения. Эти встроенные системы могут подавать на переключатели команды включения или выключения отдельных светильников или всей системы освещения. Точно так же встроенные системы могут быть соединены с отдельными светильниками в составе системы освещения. С помощью встроенной системы может осуществляться регулирование уровня яркости или мощности каждого отдельного светильника.
Система безопасности может также включать в себя встроенную систему. Встроенная система может быть использована для управления отдельными датчиками безопасности, которые входят в состав системы безопасности. Например, встроенная система может вырабатывать сигналы управления, обеспечивающие автоматическое включение каждого из датчиков безопасности. Встроенные системы могут быть соединены с каждым из отдельных датчиков безопасности. Например, встроенная система может быть соединена с датчиком движения. Встроенная система может обеспечивать автоматическое включение отдельного датчика движения и вырабатывать сигналы управления, обеспечивающие активацию датчика движения в случае обнаружения движения. Активация датчика движения может заключаться в подаче команд на включение светодиода, установленного внутри датчика движения, генерацию сигнала тревоги через выходные порты датчика движения и т.п. Встроенные системы могут быть также соединены с датчиками мониторинга состояния двери. Встроенная система может вырабатывать команды на активацию датчика мониторинга двери при открытии или закрытии двери. Точно так же встроенные системы могут быть соединены с датчиками мониторинга состояния окна. Встроенная система может вырабатывать команды на активацию датчика мониторинга окна при открытии или закрытии окна.
Некоторые встроенные системы могут быть также использованы для управления средствами беспроводной связи типа сотовых телефонов. Встроенная система может вырабатывать команды на включение светодиодного дисплея сотового телефона. Встроенная система может также активизировать аудиодинамики внутри сотового телефона для генерации звукового уведомления и уведомления пользователя об информации, поступившей на сотовый телефон.
Бытовые приборы могут также включать в себя встроенную систему. Бытовые приборы могут включать в себя приборы, обычно используемые на традиционной кухне, например, плиту, холодильник, микроволновую печь и т.д. Бытовые приборы могут также включать в себя приборы для поддержания здоровья и хорошего самочувствия пользователя. Например, массажное кресло может включать в себя встроенную систему. Встроенная система может вырабатывать команды на автоматическое откидывание спинки кресла в соответствии с предпочтениями пользователя. Встроенная система может также вырабатывать команды на возбуждение массирующих элементов внутри кресла, вызывающих колебания внутри кресла в соответствии с предпочтениями пользователя.
Вспомогательное оборудование, которое обычно имеется в домах, может также включать в себя встроенные системы. Например, встроенная система может быть использована в туалете для регулирования уровня воды, используемой для заполнения сливного бачка. Встроенные системы могут быть использованы внутри ванны-джакузи для регулирования оттока воздуха.
Как было указано выше, встроенные системы могут быть использованы для мониторинга или управления многими различными системами, ресурсами, оборудованием и т.д. С развитием интернета и всемирной паутины (www) наблюдается устойчивый рост числа встроенных систем, подключаемых к интернету, чем обеспечивается возможность дистанционного мониторинга и/или управления этими системами. Другие встроенные системы могут быть подключены к компьютерным сетям, в том числе к локальным сетям, глобальным сетям и т.д. Используемый в данном документе термин "компьютерная сеть" (или просто "сеть") относится к любой системе, узлы которой межсоединены каналами связи. Термин "узел" относится к любому устройству с возможностью подключения в виде части компьютерной сети. Встроенная система может быть узлом сети. Другие примеры узлов сети включают в себя компьютеры, персональные цифровые секретари (PDA), сотовые телефоны и т.д.
Некоторые встроенные системы могут поставлять данные и/или услуги на другие вычислительные устройства с использованием компьютерной сети. Возможно предоставление многих различных видов услуг. Некоторые примеры услуг включают в себя поставку температурных данных с места нахождения, поставку данных наблюдения, поставку метеорологической информации, поставку аудиопотока, поставку видеопотока и т.д.
Узлы могут быть межсоединены в одноранговую сеть. Одноранговая компьютерная сеть представлять собой сеть, основанную на вычислительных ресурсах и пропускной способности участников сети, а не на концентрации этих ресурсов на относительно немногочисленных серверах. Одноранговые сети обычно используются для подключения узлов посредством большей частью прямых соединений.
Узлы внутри компьютерной сети могут быть сконфигурированы для посылки сообщений на другие узлы посредством ориентированного на установление соединения протокола, такого как протокол TCP/IP. Протоколы, ориентированные на установление соединения, могут обеспечивать надежную доставку пакетов от отправителя к получателю. Поэтому использование протокола, ориентированного на установление соединения, для посылки сообщений на узлы сети, как правило, позволяет достигать высокого качества обслуживания.
В качестве альтернативы посылки сообщений посредством протокола, ориентированного на установление соединения, по меньшей мере некоторые узлы могут быть сконфигурированы для посылки сообщений на другие узлы сети с использованием технологии многоадресной рассылки. В контексте компьютерных сетей термин "многоадресная рассылка" относится к процессу одновременной посылки сообщения более чем на один узел в сети. Отличие многоадресной рассылки от широковещательной рассылки заключается в том, что многоадресная рассылка означает посылку сообщения на определенные группы узлов внутри сети, тогда как широковещательная рассылка подразумевает посылку сообщения на все узлы в сети.
При некоторых обстоятельствах предпочтительным вариантом может быть посылка сообщений на другие узлы сети посредством протокола на основе соединений. Однако при других обстоятельствах предпочтительным вариантом может быть посылка сообщений на другие узлы сети посредством многоадресной рассылки. Предпочтения могут быть реализованы путем оптимизации путей выбора узлами соответствующего транспортного механизма (т.е. или посредством протокола, ориентированного на установление соединения или посредством многоадресной рассылки) для связи в сети типа одноранговой сети.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Раскрыты системы и способы выбора транспортного механизм для связи в сети, такой как одноранговая сеть. В типичном примере осуществления узел-издатель в сети определяет число узлов-подписчиков в сети, подписанных на получение уведомляющих сообщений о данных, обслуживаемых узлом-издателем. Узел-издатель также определяет число доступных соединений, для поддержки которых сконфигурирован узел-издатель. В случае, когда число доступных соединений превышает число подписчиков, узел-издатель посылает уведомляющие сообщения на узлы-подписчики посредством протокола, ориентированного на установление соединения (например, протокола TCP/IP). В случае же, когда число узлов-подписчиков превышает число доступных соединений, узел-издатель посылает уведомляющие сообщения на узлы-подписчики посредством многоадресной рассылки.
В случае, когда узел-издатель посылает уведомляющие сообщения на узлы-подписчики посредством многоадресной рассылки, узел-издатель может получить один или более запросов на соединение от подписчиков, число которых может зависеть от надежного получения уведомляющих сообщений от издателя. В случае, когда узел-издатель получает запрос на соединение от узла-подписчика, узел-издатель может определить, сконфигурирован ли он для поддержки по меньшей мере одного дополнительного соединения или нет. В случае положительного ответа узел-издатель может принять запрос на соединение. В случае же, когда узел-издатель не сконфигурирован для поддержки по меньшей мере одного дополнительного соединения, узел-издатель может определить, превышают ли требования к качеству обслуживания со стороны запрашивающего узла-подписчика требования к качеству обслуживания со стороны по меньшей мере одного узла-подписчика, с которым в настоящее время установлено соединение, или нет. В случае положительного ответа узел-издатель может прервать текущее соединение узла-подписчика, который имеет более низкие требования к качеству обслуживания, чем запрашивающий узел-подписчик, и установить соединение с запрашивающим узлом-подписчиком.
В случае, когда узел-издатель посылает уведомляющие сообщения посредством протокола, ориентированного на установление соединения, в некоторый момент времени число узлов-подписчиков, запрашивающих соединение с узлом-издателем, может превысить число доступных соединений. В этом случае узел-издатель может осуществить переключение с этапа посылки уведомляющих сообщений посредством протокола, ориентированного на установление соединения, на этап посылки уведомляющих сообщений посредством многоадресной рассылки.
ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ
Более полное представление о типичных примерах осуществления изобретения можно получить из следующего ниже описания и приведенной формулы изобретения, сопровождаемых прилагаемыми чертежами. Очевидно, что эти чертежи иллюстрируют только типичные примеры осуществления, и поэтому их не следует рассматривать как ограничение объема изобретения. Дополнительную конкретизацию и детализацию описания типичных примеров осуществления изобретения обеспечивает использование прилагаемых чертежей, на которых:
Фиг. 1 - блок-схема, иллюстрирующая систему выбора соответствующего транспортного механизма для связи между узлами в компьютерной сети согласно примеру осуществления;
Фиг. 2 - блок-схема последовательности операций способа принятия решения об использовании либо протокола, ориентированного на установление соединения, либо многоадресной рассылки для посылки уведомляющих сообщений подписчикам, который может быть применен издателем согласно примеру осуществления;
Фиг. 3 - блок-схема последовательности операций, выполняемых подписчиком в случае, когда издатель начинает посылку уведомляющих сообщений посредством многоадресной рассылки согласно примеру осуществления;
Фиг. 4 - блок-схема последовательности операций, выполняемых издателем в ответ на получение запроса на соединение от подписчика согласно примеру осуществления;
Фиг. 5 - блок-схема, иллюстрирующая различные функциональные компоненты в составе издателя согласно примеру осуществления;
Фиг. 6 - блок-схема, иллюстрирующая различные функциональные компоненты в составе подписчика согласно примеру осуществления;
Фиг. 7 - блок-схема аппаратных компонентов, которые могут быть использованы во встроенной системе, сконфигурированной согласно примеру осуществления;
Фиг. 8 иллюстрирует типичную систему освещения, в которой могут быть реализованы рассматриваемые системы и способы;
Фиг. 9 иллюстрирует типичную систему безопасности, в которой могут быть реализованы рассматриваемые системы и способы;
Фиг. 10 иллюстрирует типичную систему контроллера для бытовой электроники, в которой могут быть реализованы рассматриваемые системы и способы.
ЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Ниже приводится описание различных примеров осуществления изобретения со ссылками на фигуры, на которых одинаковые ссылочные позиции обозначают идентичные или функционально подобные элементы. Примеры осуществления настоящего изобретения, в общих чертах описываемые и иллюстрируемые фигурами в данном документе, могут быть спроектированы и исполнены в виде самых различных конфигураций. Поэтому следующее ниже более подробное описание нескольких типичных примеров осуществления настоящего изобретения, представленных на фигурах, не предполагает ограничения объема изобретения, определяемого формулой изобретения, а является лишь характерным для примеров осуществления изобретения.
Слово "типичный" используется в данном документе исключительно для обозначения "служащий в качестве примера, отдельного случая или иллюстрации". Любой пример осуществления, описываемый в данном документе как "типичный", не обязательно следует рассматривать как более предпочтительный или эффективный по сравнению с другими примерами осуществления. Несмотря на то, что различные особенности примеров осуществления изобретения представлены на чертежах, эти чертежи не обязательно вычерчены в масштабе, если это не оговорено особо.
Многие признаки примеров осуществления, раскрытые в данном документе, могут быть реализованы в виде компьютерного программного обеспечения, электронных аппаратных средств или комбинаций того и другого. Для того чтобы четко проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, описание различных компонентов будет вестись, в общем, в терминах их функциональности. Реализация такой функциональности в виде аппаратных средств или программного обеспечения зависит от конкретного приложения и проектных ограничений, накладываемых на систему в целом. Специалисты в данной области техники могут реализовать описываемую функциональность различными путями для каждого конкретного приложения, но такие внедренческие решения не должны интерпретироваться как выходящие за пределы объема настоящего изобретения.
В случае, когда описываемая функциональность реализована в виде компьютерного программного обеспечения, такое программное обеспечение может включать в себя любой тип машиноисполняемой команды или машиноисполняемого кода, локализуемых в запоминающем устройстве и/или передаваемых в виде электронных сигналов по системной шине или сети. Программное обеспечение, которое реализует функциональность, ассоциированную с описываемыми в данном документе компонентами, может содержать одну команду или большое число команд и может быть распределено по нескольким различным кодовым сегментам, среди различных программ и между несколькими запоминающими устройствами.
На фиг. 1 представлена блок-схема, иллюстрирующая систему 100 выбора соответствующего транспортного механизма для связи между узлами в компьютерной сети согласно примеру осуществления. По меньшей мере, некоторые из узлов в сети могут иметь данные, представляющие интерес для других узлов в сети. Например, сеть может включать в себя датчик температуры, и по меньшей мере для некоторых других узлов в сети могут представлять интерес уведомления о текущей температуре, измеряемой датчиком температуры. В другом примере сеть может включать в себя датчики состояния дверей, и для одного или более других узлов в сети (например, узлов системы тревожной сигнализации) могут представлять интерес уведомления о том, открыта ли дверь или закрыта.
Данные могут быть снабжены метками идентификатора и местонахождения. Узел в сети может подписаться на данные по заданному идентификатору и может получать уведомляющие сообщения о данных, имеющих общее местоположение. Например, предположим, что узел A имеет местоположения L1 и L2, а узел B - местоположения L2 и L3. В случае, когда узел B издает данные D1, а узел A подписывается на данные D1, узел A получает обновления до D1.
Используемый в данном документе термин "узел-издатель" (или просто "издатель") относится к узлу, который посылает уведомляющие сообщения о данных на один или более других узлов в сети. Термин "узел-подписчик" (или просто "подписчик") относится к узлу, который получает уведомляющие сообщения о данных от издателя. Система 100, представленная на фиг. 1, включает в себя издателя 102. Издатель 102 имеет данные 106, на которые есть несколько подписчиков 104. Издатель 102 посылает уведомляющие сообщения 108 о данных 106 подписчикам 104.
Издатель 102 может посылать уведомляющие сообщения 108 подписчикам 104 посредством протокола, ориентированного на установление соединения типа протокола TCP/IP. В предпочтительном варианте изобретения протоколы, ориентированные на установление соединения, могут обеспечивать надежную доставку пакетов от отправителя к получателю. Поэтому использование протокола, ориентированного на установление соединения, для посылки сообщений на узлы сети, как правило, позволяет достигать высокого качества обслуживания. Однако один недостаток протоколов, ориентированных на установление соединения, заключается в возможном ограничении числа соединений, которые издатель 102 в состоянии поддерживать. В случае, когда данные 106 являются релевантными для большого числа узлов в сети и имеется большое число подписчиков 104 на уведомляющие сообщения 108 о данных 106, поддержка соединения со всеми подписчиками 104 может быть трудной задачей для издателя 102.
В качестве альтернативы протокола, ориентированного на установление соединения, издатель 102 может посылать уведомляющие сообщения 108 подписчикам 104 посредством многоадресной рассылки. В предпочтительном варианте изобретения при использовании многоадресной рассылки возможна посылка уведомляющих сообщений 108 большему числу подписчиков 104, чем в случае использования протокола, ориентированного на установление соединения. Однако один недостаток многоадресной рассылки заключается в ее непостоянной полной надежности. В процессе передачи возможна потеря уведомляющих сообщений 108, посылаемых посредством многоадресной рассылки, и иногда доставка этих сообщений по меньшей мере некоторым из подписчиков 104 становится невозможной. В то время как для некоторых подписчиков 104 это может не представлять никакой проблемы, для других подписчиков 104 получение каждого посылаемого уведомляющего сообщения 108 может иметь очень важное значение. Например, для системы тревожной сигнализации очень важное значение может иметь каждое уведомление о срабатывании датчика состояния двери при открытии двери. В случае, когда получение каждого посылаемого уведомляющего сообщения 108 имеет очень важное значение для подписчика 104, как правило, предпочтительным вариантом для подписчика 104 является получение уведомляющих сообщений 108 посредством протокола, ориентированного на установление соединения.
Система 100, представленная на фиг. 1, сконфигурирована для автоматического определения соответствующего транспортного механизма (т.е. посредством многоадресной рассылки или протокола, ориентированного на установление соединения) между издателем 102 и любыми подписчиками 104, которые заинтересованы в получении уведомляющих сообщений 108 о данных 106 издателя 102. В некоторый момент времени (например, когда издатель 102 начинает посылать уведомляющие сообщения 108 подписчикам 104), издатель 102 выполняет первоначальное определение касаемо того, посылать ли уведомляющие сообщения 108 посредством многоадресной рассылки или посредством протокола, ориентированного на установление соединения. В случае, когда издатель 102 не в состоянии поддерживать соединения со всеми подписчиками 104, издатель 102 может посылать уведомляющие сообщения 108 посредством многоадресной рассылки. Однако в случае, когда издатель 102 в состоянии поддерживать соединения со всеми подписчиками 104, издатель 102 может предпочесть посылку уведомляющих сообщений 108 посредством протокола, ориентированного на установление соединения.
Даже в случае, когда издатель 102 начинает посылать уведомляющие сообщения 108 посредством многоадресной рассылки, один или более из подписчиков 104 могут принять решение о том, что многоадресная рассылка не обеспечивает достаточного качества обслуживания и могут запросить соединения от издателя 102. В этом случае издатель 102 принимает такое число соединений, которое он в состоянии поддерживать. Таким образом, в дополнение к посылке уведомляющих сообщений 108 посредством многоадресной рассылки издатель 102 может также посылать уведомляющие сообщения 108 подгруппе 112 подписчиков 104 в сети посредством протокола, ориентированного на установление соединения. Следовательно, может возникнуть ситуация, при которой издатель 102 может посылать уведомляющие сообщения 108 как посредством многоадресной рассылки, так и посредством протокола, ориентированного на установление соединения. В случае, когда число получаемых издателем 102 запросов на соединение превышает число соединений, которые он в состоянии поддерживать, издатель определяет, какие подписчики 104 получают соединения в зависимости от степени важности назначенной подписчиками 104 для получения уведомляющих сообщений 108 с высоким качеством обслуживания. Более подробно этот вопрос рассматривается ниже.
На фиг. 2 представлена блок-схема последовательности операций способа, которым издатель 102 может определить, следует ли использовать протокол, ориентированный на установление соединения, или многоадресную рассылку для посылки уведомляющих сообщений 108 подписчикам 104 согласно примеру осуществления. Согласно рассматриваемому способу 200 на этапе 202 издатель 102 получает данные 106, которые могут представлять интерес для других узлов в сети.
На этапе 204 издатель 102 определяет число подписчиков 104 в сети, подписанных на получение уведомляющих сообщений 108 о данных 106. Это определение может быть осуществлено посредством протокола подписки, в котором издатель 102 уведомляет потенциальных подписчиков 104 в сети о доступности данных 106, а подписчики 104 отвечают путем выражения своей заинтересованности в данных 106. В другом варианте изобретения подписчики 104 могут обратиться к потенциальным издателям 102, использующим многоадресную рассылку, с запросом на конкретные данные 106. Используя тот или другой любой способ, издатель 102 получает общее число подписчиков 104 в сети. Кроме того, согласно иллюстрируемому способу 200 на этапе 206 издатель 102 также определяет число соединений, которые издатель 102 в состоянии поддерживать.
На этапе 208 издатель 102 сравнивает число подписчиков 104 (определенное на этапе 204) с числом доступных соединений (определенным на этапе 206). В случае, когда число подписчиков 104 превышает число доступных соединений, на этапе 210 издатель 102 посылает уведомляющие сообщения 108 подписчикам 104 посредством многоадресной рассылки. Однако в случае, когда число подписчиков 104 не превышает числа доступных соединений, на этапе 212 издатель 102 посылает уведомляющие сообщения 108 подписчикам 104 посредством протокола, ориентированного на установление соединения, такого как протокол TCP/IP.
Как было указано выше, в случае, когда на этапе 210 издатель 102 посылает уведомляющие сообщения 108 посредством многоадресной рассылки, один или более подписчиков 104 могут определить, что многоадресная рассылка не обеспечивает достаточного качества обслуживания и могут запросить соединения от издателя 102. В этом случае в дополнение к посылке уведомляющих сообщений 108 посредством многоадресной рассылки издатель 102 может также посылать некоторым из подписчиков 104 в сети уведомляющие сообщения 108 посредством протокола, ориентированного на установление соединения.
На фиг. 3 представлена блок-схема последовательности операций, выполняемых подписчиком 104 в случае, когда издатель начинает посылку уведомляющих сообщений 108 посредством многоадресной рассылки согласно примеру осуществления. Вначале на этапе 302 подписчик 104 проверяет наличие или отсутствие соединения для данных 106 в уведомлении 108. В случае наличия соединения на этапе 304 подписчик 104 игнорирует многоадресные уведомляющие сообщения 108. В противном случае в ответ на получение на этапе 306 уведомляющих сообщений 108 посредством многоадресной рассылки на этапе 308 подписчик 104 определяет, обеспечивает ли многоадресная рассылка достаточное качество обслуживания или нет. Например, в случае, когда надежное получение каждого посылаемого уведомляющего сообщения 108 имеет важное значение для подписчика 104, подписчик 104 может определить, что многоадресная рассылка не обеспечивает достаточного качества обслуживания, удовлетворяющего его требованиям. Однако в случае, когда надежное получение каждого посылаемого уведомляющего сообщения 108 не имеет важного значения для подписчика 104, подписчик 104 может принять решение о том, что многоадресная рассылка обеспечивает достаточное качество обслуживания, удовлетворяющее его требованиям.
В некоторых примерах осуществления подписчик 104 может поддерживать параметр качества обслуживания (QOS) для данных 106. Параметр QOS указывает на степень важности надежного получения каждого посылаемого уведомляющего сообщения 108 для подписчика 104. В некоторых примерах осуществления параметр QOS может иметь диапазон значений, включающий в себя максимальное значение и минимальное значение. В случае, когда параметр QOS задается равным своему максимальному значению, это означает, что надежное получение каждого посылаемого уведомляющего сообщения 108 имеет важное значение для подписчика 104. И наоборот, в случае, когда параметр QOS задается равным своему минимальному значению, это означает, что надежное получение каждого посылаемого уведомляющего сообщения 108 не имеет важного значения для подписчика 104.
Для определения того, обеспечивает ли многоадресная рассылка достаточное качество обслуживания для получения уведомляющих сообщений 108 о данных 106 от издателя 102 или нет, подписчик 104 может сравнить параметр QOS для данных 106 с пороговым значением. В случае, когда параметр QOS превышает пороговое значение, многоадресная рассылка не обеспечивает достаточного качества обслуживания. Однако в случае, когда параметр QOS не превышает порогового значения, многоадресная рассылка обеспечивает достаточное качество обслуживания. И параметр QOS, и пороговое значение могут быть заданы заранее пользователем подписчика 104.
В случае, когда на этапе 308 подписчик 104 определяет, что многоадресная рассылка не обеспечивает достаточного качества обслуживания, удовлетворяющего его требованиям, на этапе 310 подписчик 104 может запросить соединение от издателя 102. Однако в случае, когда многоадресная рассылка обеспечивает достаточное качество обслуживания, удовлетворяющее его требованиям, подписчик 104 может быть сконфигурирован так, чтобы на этапе 312 не запрашивать соединения от издателя 102.
На фиг. 4 представлена блок-схема последовательности операций, выполняемых издателем 102 в ответ на получение на этапе 402 запроса на соединение от подписчика 104 согласно примеру осуществления. В случае, когда издатель 102 получает запрос на соединение, он может уже иметь установленные соединения с одним или более другими подписчиками 104 и он может быть не в состоянии поддерживать дополнительное соединение. Согласно иллюстрируемому способу 400 на этапе 404 издатель 102 определяет, в состоянии ли он поддерживать дополнительное соединение или нет.
В случае, когда издатель 102 в состоянии поддерживать дополнительное соединение, на этапе 406 издатель 102 принимает запрос на соединение и на этапе 408 устанавливает соединение с подписчиком 104. Однако в случае, когда на этапе 404 издатель 102 определяет, что он не состоянии поддерживать дополнительное соединение, на этапе 410 издатель 102 определяет, является ли получение высокого качества обслуживания для подписчика 104, который послал запрос на соединение (запрашивающий подписчик 104), более важным, чем для по меньшей мере одного из подписчиков 104, с которым в настоящее время установлено соединение, или нет. Это может включать в себя сравнение параметра QOS подписчика 104, который послал запрос на соединение, с параметрами QOS подписчиков 104, с которыми в настоящее время установлены соединения.
В случае, когда на этапе 410 издатель 102 определяет, что для запрашивающего подписчика 104 получение высокого качества обслуживания является более важным, чем для по меньшей мере одного из подписчиков 104, с которым в настоящее время установлено соединение, на этапе 412 издатель 102 прерывает одно из существующих соединений. Прерываемое соединение, как правило, представляет собой соединение с подписчиком 104, для которого высокое качество обслуживания является наименее важным. Например, издатель 102 может прервать соединение с подписчиком 104, который имеет самый низкий параметр QOS (в примерах осуществления, в котором высокий параметр QOS означает важность высокого качества обслуживания). В дополнение к осуществляемому на этапе 412 прерыванию соединения на этапе 406 издатель 102 также принимает запрос на соединение от запрашивающего подписчика 104 и на этапе 408 устанавливает соединение с запрашивающим подписчиком 104. В случае, когда на этапе 410 подписчик 104 определяет, что для каждого из подписчиков 104, с которыми в настоящее время установлены соединения, получение высокого качества обслуживания является более важным, чем для запрашивающего подписчика 104, на этапе 414 издатель 102 отклоняет запрос на соединение.
Ниже рассматриваются несколько примеров. Предположим, что издатель 102 имеет данные 106, представляющие интерес для большого числа узлов (например, данные о текущей наружной температуре). В результате может существовать большое число подписчиков 104, желающих получать уведомляющие сообщения 108 о данных 106. Однако предположим, что надежное получение каждого посылаемого уведомляющего сообщения 108 не является чрезвычайно важным для любого из подписчиков 104. В этом сценарии издатель 102 может посылать уведомляющие сообщения 108 о данных 106 посредством многоадресной рассылки. В случае, когда надежное получение уведомляющих сообщений 108 не является очень важным для любого из подписчиков 104, может возникнуть ситуация, при которой ни один из подписчиков 104 не попытается установить соединения с издателем 102.
Однако предположим, что есть несколько подписчиков 104, для которых надежное получение уведомляющих сообщений 108 является важным. Например, в случае, когда данные 106 представляют собой данные о текущей наружной температуре, может возникнуть необходимость вывода на дисплей уведомления о каждом изменении внешней температуры. В случае, когда издатель 102 осуществляет многоадресную рассылку уведомляющих сообщений 108, но есть несколько подписчиков 104, желающих получать высокое качество обслуживания, каждый из этих подписчиков 104 может открыть и запросить прямое соединение от издателя 102.
В случае, когда число подписчиков 104, желающих получать высокое качество обслуживания, увеличивается, может возникнуть ситуация, при которой издатель 102 больше не в состоянии поддерживать соединения с каждым из подписчиков 104. В этой ситуации издатель 102 оставляет установленные соединения с таким числом подписчиков 104, которое он в состоянии поддерживать. Издатель 102 может выбрать подписчиков 104, для которых высокое качество обслуживания является самым важным, для получения прямых соединений.
В другом примере предположим, что только несколько подписчиков 104 заинтересовано в получении уведомляющих сообщений 108 о данных 102 издателя 106. В случае, когда издатель 102 в состоянии поддерживать соединения с каждым из подписчиков 104, он может установить соединения с подписчиками 104 и посылать уведомляющие сообщения 108 посредством протокола, ориентированного на установление соединения. Это может происходить даже в случае, когда получение высокого качества обслуживания не является особенно важным для подписчиков 104. В случае, когда число подписчиков 104 увеличивается так, что издатель 102 больше не в состоянии поддерживать соединения с каждым из подписчиков 104, издатель 102 может прервать соединения с подписчиками 104 и может начать многоадресную рассылку уведомляющих сообщений 108 подписчикам 104. Следует отметить, что это может привести к инициированию запросов на соединения с издателем 102 со стороны некоторых из подписчиков 104.
На фиг. 5 представлена блок-схема, иллюстрирующая различные функциональные компоненты в составе издателя 502 согласно примеру осуществления. Издатель 502 включает в себя модуль 514 сбора информации, который получает данные 106, которыми могут интересоваться другие узлы в сети. Другие узлы в сети могут подписаться на получение уведомляющих сообщений 108 о данных 106, получаемых модулем 514 сбора информации.
Издатель 502 может также включать в себя стек 516 протоколов многоадресной рассылки. Стек 516 протоколов многоадресной рассылки может быть сконфигурирован для посылки сообщений (типа уведомляющих сообщений 108) на другие узлы в сети посредством многоадресной рассылки.
Издатель 502 может также включать в себя стек 518 протоколов, ориентированный на установление соединения. Стек 518 протоколов, ориентированный установление соединения может быть сконфигурирован для приема соединений от или, в противном случае, установления соединений с другими узлами в сети и посылки сообщений (типа уведомляющих сообщений 108) на другие узлы в сети посредством протокола, ориентированного на установление соединения. Примером стека 518 протоколов, ориентированного на установление соединения, который может быть использован, является стек протоколов TCP/IP.
Издатель 502 может также включать в себя модуль 520 выявления подписчиков. Модуль 520 выявления подписчиков может быть сконфигурирован для определения числа имеющихся в сети подписчиков 104, которые заинтересованы в получении уведомляющих сообщений 108 о данных 106, получаемых модулем 514 сбора информации.
Издатель 502 может также включать в себя модуль 522 определения пропускной способности. Модуль 522 определения пропускной способности может быть сконфигурирован для определения числа соединений, которые издатель 502 в состоянии поддерживать.
Издатель 502 может также включать в себя модуль 524 выбора связи. Модуль 524 выбора связи может быть сконфигурирован для выбора механизма посылки уведомляющих сообщений 108 подписчикам 104 в сети (т.е. или посредством многоадресной рассылки, или посредством протокола, ориентированного на установление соединения). Средство управления (менеджер) 526 соединениями может выполнять операции, представленные на фиг. 2 и рассмотренные выше со ссылками на эту фигуру.
Издатель 502 может также включать в себя менеджер 526 соединений. Менеджер 526 соединений может быть сконфигурирован для принятия решения о принятии или об отклонении запросов на соединение от подписчиков 104. Менеджер 526 соединений может выполнять операции, представленные на фиг. 4 и рассмотренные со ссылками на эту фигуру.
На фиг. 6 представлена блок-схема, иллюстрирующая различные функциональные компоненты в составе подписчика согласно примеру осуществления. Подписчик 604 может включать в себя стек 616 протоколов многоадресной рассылки. Стек 616 протоколов многоадресной рассылки может быть сконфигурирован для получения сообщений (типа уведомляющих сообщений 108) от других узлов в сети (типа издателей 102) посредством многоадресной рассылки.
Подписчик 604 может также включать в себя стек 618 протоколов, ориентированный на установление соединения. Стек 618 протоколов, ориентированный на установление соединения, может быть сконфигурирован для приема соединений от или, в противном случае, установления соединений с другими узлами в сети и получения сообщений (типа уведомляющих сообщений 108) от других узлов в сети (типа издателей 102) посредством протокола, ориентированного на установление соединения. Примером стека 618 протоколов, ориентированного на установление соединения, который может быть использован, является набор протоколов TCP/IP.
Подписчик 604 также включает в себя модуль 628 оценки качества обслуживания (QOS). В случае, когда подписчик 604 начинает получать уведомляющие сообщения 108 от издателя 102 посредством многоадресной рассылки, модуль 628 оценки QOS определяет, обеспечивает ли многоадресная рассылка достаточное качество обслуживания для подписчика 604. Модуль 628 оценки QOS может выполнять операции, представленные на фиг. 3 и описанные со ссылками на эту фигуру.
Узел-издатель 102 может представлять собой встроенную системой. Кроме того, некоторые или все узлы-подписчики 104 могут быть встроенными системами. На фиг. 7 представлена блок-схема аппаратных компонентов, которые могут быть использованы во встроенной системе 702, сконфигурированной согласно примеру осуществления. Центральный процессор (ЦП) 708 или процессор могут быть предназначены для управления работой встроенной системой 702, в том числе и другими ее компонентами, которые соединены с ЦП 708 посредством шины 710. ЦП 708 может быть реализован в виде микропроцессора, микроконтроллера, цифрового процессора сигналов или другого устройства, известного специалистам в данной области техники. ЦП 708 выполняет логические и арифметические операции на основе программного кода, хранимого в памяти. В некоторых примерах осуществления память 714 может представлять собой внутриплатную память, включенную в состав ЦП 708. Например, микроконтроллеры обычно включают в себя некоторый объем внутриплатной памяти.
Встроенная система 702 может также включать в себя сетевой интерфейс 712. Сетевой интерфейс 712 обеспечивает возможность соединения встроенной системы 702 с сетью, которая может представлять собой сеть персонального вызова, сотовую сеть связи, глобальную сеть связи, интернет, компьютерную сеть, телефонную сеть и т.д. Сетевой интерфейс 712 работает в соответствии со стандартными протоколами для соответствующей сети.
Встроенная система 702 может также включать в себя память 714. Память 714 может включать в себя оперативную память (RAM) для хранения временных данных. В другом варианте изобретения или в дополнение к этому память 714 может включать в себя ПЗУ (ПЗУ) для хранения более постоянных данных типа резидентного кода и данных конфигурации. Память 714 может быть также реализована в виде магнитного запоминающего устройства типа накопителя на жестких магнитных дисках. Память 714 может представлять собой любой тип электронного устройства с возможностью хранения электронной информации.
Встроенная система 702 может также включать в себя один или более коммуникационных портов 716, облегчающих связь с другими устройствами. Встроенная система 702 может также включать в себя устройства 718 ввода/вывода типа клавиатуры, мыши, джойстика, сенсорного экрана, монитора, динамиков, принтера и т.д.
Разумеется, фиг. 7 иллюстрирует только одну возможную конфигурацию встроенной системы 702. Возможно использование и различных других архитектур и компонентов.
Рассматриваемые системы и способы могут быть использованы в нескольких контекстах. Фиг. 8 иллюстрирует один пример осуществления системы, в которой могут быть реализованы рассматриваемые системы и способы. На фиг. 8 представлена блок-схема, иллюстрирующая один пример осуществления системы 800 освещения, которая включает в себя систему 808 контроллеров освещения. Система 800 освещения на фиг. 8 может быть установлена в различных комнатах в доме. Как показано на фиг.8, система 800 включает в себя комнату A 802, комнату B 804 и комнату C 806. На фиг. 8 показаны три комнаты, однако система 800 может быть реализована в любом числе и видах комнат в доме, жилом помещении или другой среде.
Система 808 контроллеров освещения может осуществлять мониторинг и управления дополнительными встроенными системами и компонентами в составе системы 800. В одном примере осуществления каждая из комнат - комната A 802 и комната B 804 - включают в себя переключательный компонент 814, 818. Переключательные компоненты 814, 818 могут также включать в себя вторичную встроенную систему 816, 820. Вторичные встроенные системы 816, 820 могут получать команды от системы 808 контроллеров освещения. При этом вторичные встроенные системы 816, 820 могут выполнять эти команды. Команды могут включать в себя команды включения или включения различных осветительных компонентов 810, 812, 822 и 824. Команды могут также включать в себя команды уменьшения яркости или увеличения яркости различных осветительных компонентов 810, 812, 822 и 824. Кроме того, команды могут включать в себя команды регулировки яркости осветительных компонентов 810, 812, 822 и 824 в различных режимах. Вторичные встроенные системы 816, 820 облегчают возможность мониторинга и управления каждым осветительным компонентом 810, 812, 822 и 824, размещенным в комнате A 802 и комнате B 804, с помощью системы 808 контроллеров освещения.
Система 808 контроллеров освещения может также посылать команды прямо на осветительный компонент 826, который включает в себя вторичную встроенную систему 828 в показанной комнате C 806. Система 808 контроллеров освещения может посылать во вторичную встроенную систему 828 команды выключения или включения отдельного осветительного компонента 826. Точно так же команды, получаемые от системы 808 контроллеров освещения, могут включать в себя команды уменьшения яркости или увеличения яркости отдельного осветительного компонента 826.
Система 808 контроллеров освещения может также осуществлять мониторинг и посылать команды прямо на отдельные осветительные компоненты 830 и 832 в составе системы 800. Эти команды могут включать в себя команды, подобные описанным выше.
Фиг. 9 иллюстрирует дополнительный пример осуществления системы, в которой могут быть реализованы рассматриваемые системы и способы согласно настоящему изобретению. На фиг. 9 представлена блок-схема, иллюстрирующая систему 900 безопасности. Система 900 безопасности в представленном примере осуществления обеспечивает безопасность комнаты A 902, комнаты B 904 и комнаты C 906. Эти комнаты могут находиться в границах дома или другой замкнутой среды. Система 900 может также обеспечивать безопасность и открытой среды, в которой комнаты A, B и C соответственно 902, 904 и 906 представляют собой территории или границы.
Система 900 включает в себя систему 908 контроллеров безопасности. Система 908 контроллеров безопасности осуществляет мониторинг и получает информацию от различных компонентов в составе системы 900. Например, датчик 914, 918 движения может включать в себя вторичную встроенную систему 916. Датчики 914, 918 движения могут осуществлять мониторинг ближайшего пространства по движению и приводить систему 908 контроллеров безопасности в готовность в случае обнаружения движения посредством вторичной встроенной системы 916, 920. Система 908 контроллеров безопасности может также посылать команды на различные компоненты в составе системы 900. Например, система 908 контроллеров безопасности может посылать во вторичные встроенные системы 916, 920 команды на включение или выключение датчиков 910, 922 состояния окон и датчиков 912, 924 состояния дверей. В одном примере осуществления вторичные встроенные системы 916, 920 уведомляют систему 908 контроллеров безопасности о срабатывании датчиков 910, 922 состояния окон при перемещении окна. Точно так же вторичные встроенные системы 916, 920 уведомляют систему 908 контроллеров безопасности о срабатывании датчиков 912, 924 состояния дверей при перемещении двери. Вторичные встроенные системы 916, 920 могут посылать на датчики 914, 918 движения команды активации светодиода (не показанного), размещенного внутри датчиков 914, 918 движения.
Система контроллеров безопасности 908 может также осуществлять мониторинг и посылать команды прямо на отдельные компоненты в составе системы 900. Например, система 908 контроллеров безопасности может осуществлять мониторинг и посылать команды включения или выключения на датчик 930 движения или датчик 932 состояния окна. Система 908 контроллеров безопасности может также посылать на датчик 930 движения и датчик 932 состояния окна команды активации светодиода (не показанного) или подачи звуковых сигналов тревоги датчиками 930 и 932.
Каждый отдельный компонент в составе системы 900 может также включать в себя вторичную встроенную систему. Например, на фиг. 9 представлен датчик 926 состояния двери, включающий в себя вторичную встроенную систему 928. Система 908 контроллеров безопасности может осуществлять мониторинг и посылать команды во вторичную встроенную систему 928 таким же образом, как описывалось выше.
На фиг. 10 представлена блок-схема, иллюстрирующая один пример осуществления системы 1000 управления бытовой электроникой. Система 1000 управления бытовой электроникой включает в себя контроллер 1008 для бытовой электроники, облегчающий мониторинг различных систем типа системы 800 освещения, системы 900 безопасности и т.п. Система 1000 управления бытовой электроникой позволяет пользователю осуществлять управление различными компонентами и системами через одну или более встроенных систем. В одном примере осуществления система 1008 контроллеров для бытовой электроники осуществляет мониторинг и поставляет информацию таким же образом, как описывалось выше со ссылками на фиг. 8 и 9. В представленном примере осуществления контроллер 1008 для бытовой электроники посылает команды на нагревательный компонент 1024 через вторичную встроенную систему 1020. Нагревательный компонент 1024 может включать в себя печь или другое нагревательное устройство, обычно имеющееся в местах проживания или офисах. Система 1008 контроллеров для бытовой электроники может посылать команды на включение или выключение нагревательного компонента 1024 через вторичную встроенную систему 1020.
Точно так же контроллер 1008 для бытовой электроники может осуществлять мониторинг и посылать команды прямо на компонент в составе системы 1000 управления бытовой электроникой типа охладительного компонента 1030. Охладительный компонент 1030 может включать в себя кондиционер воздуха или другое устройство охлаждения, обычно имеющееся в местах проживания или офисах. Центральный контроллер 1008 для бытовой электроники может посылать на охладительный компонент 1030 команды включения или выключения в зависимости от результатов считывания температуры, собираемых центральной встроенной системой 1008. Система 1000 управления бытовой электроникой функционирует таким же образом, как и системы, описанные выше со ссылками на фиг. 8 и 9.
Представление информации и сигналов могут осуществляться с использованием самых различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, биты, символы, и микросхемы, ссылки на которые могут встречаться по всему приведенному выше описанию, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описываемые при рассмотрении примеров осуществления, раскрытых в данном документе, могут быть реализованы в виде электронных аппаратных средств, компьютерного программного обеспечения или комбинации и того и другого. Для того чтобы четко проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, описание различных иллюстративных компонентов, блоков, модулей, схем и этапов велось, в общем, в терминах их функциональности. Реализация такой функциональности в виде аппаратных средств или программного обеспечения зависит от конкретного приложения и проектных ограничений, накладываемых на систему в целом. Специалисты в данной области техники могут реализовать описываемую функциональность различными путями для каждого конкретного приложения, но такие внедренческие решения не должны интерпретироваться как выходящие за пределы объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описываемые при рассмотрении примеров осуществления, раскрытых в данном документе, могут быть реализованы или выполнены с использованием процессора общего назначения, цифрового процессора сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем логических матриц (FPGA) или другого программируемого логического устройства, логических схем на основе дискретных вентилей или транзисторов, дискретных аппаратных компонентов или любой их комбинации, спроектированной для выполнения функций, описываемых в данном документе. Процессор общего назначения может представлять собой микропроцессор, но в варианте изобретения процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может быть также реализован в виде комбинации вычислительных устройств, например, комбинации DSP и микропроцессора, большого числа микропроцессоров, одного или более микропроцессоров в сочетании с ядром DSP или любой другой такой конфигурации.
Реализация этапов способа или алгоритма, описываемых при рассмотрении примеров осуществления, раскрытых в данном документе, возможна прямо в аппаратных средствах, в программном модуле, исполняемом процессором, или в комбинации того и другого. Программный модуль может постоянно находиться в RAM, флэш-памяти, ROM (ПЗУ), EPROM, EEPROM, регистрах, на жестком диске, съемном диске, CD-ROM или на носителе данных любой другой формы, известном специалистам в данной области техники. Типичный носитель данных соединен с процессором так, что процессор может считывать информацию с этого носителя данных и записывать информацию на него. В варианте изобретения носитель данных может являться неотъемлемой частью процессора. Процессор и носитель данных могут постоянно находиться в ASIC. ASIC могут постоянно находиться в пользовательском терминале. В варианте изобретения процессор и носитель данных могут постоянно находиться в виде дискретных компонентов в пользовательском терминале.
Способы, раскрытые в данном документе, содержат один или более этапов или действий для осуществления описанного способа. Этапы способа и/или действия могут быть взаимозаменяемыми в пределах объема настоящего изобретению. Другими словами, в случае отсутствия необходимости следования определенной последовательности этапов или действий для соответствующей операции примера осуществления в эту последовательность и/или использование отдельных этапов и/или действий могут быть внесены изменения, не выходящие за пределы объема настоящего изобретения.
Выше были приведены иллюстрации и описание частных примеров осуществления и приложений настоящего изобретения, однако следует пониматься, что изобретение не ограничивается точной конфигурацией и компонентами, раскрытыми в данном документе. В пределах сущности и объема изобретения могут быть внесены различные изменения, дополнения и предложены варианты, очевидные специалистам в данной области техники, касающиеся компоновки, работы и элементов способов и систем согласно настоящему изобретению, раскрытых в данном документе.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение может быть использовано применительно к встроенной системе.