СИСТЕМЫ И СПОСОБЫ ОБНАРУЖЕНИЯ И ВЗАИМОДЕЙСТВИЯ СО СЛУЖБАМИ
SYSTEMS AND METHODS OF DETECTING AND INTERACTING WITH SERVICES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в целом относится к компьютерам и имеющим отношение к компьютерам технологиям. Более точно, настоящее изобретение относится к системам и способам обнаружения и взаимодействия со службами.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Компьютерные и коммуникационные технологии продолжают продвигаться быстрыми шагами. Действительно, компьютерные и коммуникационные технологии вовлечены во многие аспекты повседневной жизни человека. Например, многочисленные устройства, используемые потребителями сегодня, содержат компьютер внутри устройства. Эти небольшие компьютеры входят в употребление в варьирующихся размерах и степенях изощренности. Эти небольшие компьютеры включают в себя все, от одного микроконтроллера до полнофункциональной завершенной компьютерной системы. Например, эти небольшие компьютеры могут быть однокристальным компьютером, таким как микроконтроллер; бортовым типом компьютера, таким как контроллер; типичным настольным компьютером, таким как совместимый с ПК фирмы IBM, и т.п.
Компьютеры обычно содержат один или более процессоров в основе компьютера. Процессор(ы) обычно взаимосвязаны с разными внешними устройствами ввода и устройствами вывода и функционируют, чтобы управлять конкретным компьютером или устройством. Например, процессор в термостате может быть присоединен к клавишам, используемым для выбора температурных настроек, к отопительному котлу или воздушному кондиционеру для изменения температуры и к датчикам температуры для считывания и отображения текущей температуры на дисплее.
Многие приборы, устройства и т.п. включают в себя один или более небольших компьютеров. Например, термостаты, отопительные котлы, системы воздушного кондиционирования, холодильники, телефоны, пишущие машинки, автомобили, торговые автоматы и многочисленные разные типы промышленного оборудования в настоящее время обычно содержат небольшие компьютеры, или процессоры, внутри них. Компьютерное программное обеспечение работает на процессорах этих компьютеров и выдает команды процессорам, каким образом выполнять определенные задачи. Например, компьютерное программное обеспечение, работающее в термостате, может предписывать воздушному кондиционеру останавливать работу, когда достигнута конкретная температура, или может предписывать нагревателю включаться, когда необходимо.
Эти типы небольших компьютеров, которые являются частью устройства, прибора, инструментального средства и т.п., часто упоминаются как встроенные устройства или встроенные системы. (Термины «встроенное устройство» и «встроенная система» в материалах настоящей заявки будут использоваться взаимозаменяемо). Встроенная система обычно относится к компьютерным аппаратным средствам и программному обеспечению, которые являются частью большей системы. Встроенные системы могут не иметь типичных устройств ввода и вывода, таких как клавиатура, мышь и/или монитор. Обычно, в основе каждой встроенной системы имеют место один или более процессоров.
Система освещения может включать в себя встроенную систему. Встроенная система может использоваться для мониторинга и управления эффектами системы освещения. Например, встроенная система может предусматривать элементы управления для затемнения яркости ламп в системе освещения. В качестве альтернативы, встроенная система может предусматривать элементы управления для повышения яркости ламп. Встроенная система может предусматривать элементы управления для включения определенной картины освещения среди отдельных ламп в системе освещения. Встроенные системы могут быть связаны с отдельными выключателями в системе освещения. Эти встроенные системы могут выдавать команду выключателям для включения питания или выключения питания отдельных ламп или всей системы освещения. Подобным образом, встроенные системы могут быть присоединены к отдельным лампам в системе освещения. Состояние яркости или мощности каждой отдельной лампы может управляться встроенной системой.
Система безопасности также может включать в себя встроенную систему. Встроенная система может использоваться для управления отдельными защитными датчиками, которые составляют систему безопасности. Например, встроенная система может предусматривать элементы управления, чтобы автоматически включать питание каждого из защитных датчиков. Встроенные системы могут быть присоединены к каждому из отдельных защитных датчиков. Например, встроенная система может быть присоединена к датчику движения. Встроенная система может автоматически включать питание отдельного датчика движения и предусматривать элементы управления для приведения в действие датчика движения, если обнаружено движение. Приведение в действие датчика движения может включать в себя выдачу команд для включения питания СИД (светоизлучающего диода, LED), расположенного в датчике движения, вывода сигнала тревоги из портов вывода датчика движения и тому подобного. Встроенные системы также могут быть присоединены к датчикам, контролирующим дверь. Встроенная система может выдавать команды на датчики, контролирующие дверь, для приведения в действие, когда дверь открывается или закрывается. Подобным образом, встроенные системы могут быть присоединены к датчикам, контролирующим окно. Встроенная система может выдавать команды для приведения в действие датчика, контролирующего окно, если окно открывается или закрывается.
Некоторые встроенные системы также могут использоваться для управления беспроводными изделиями, такими как сотовые телефоны. Встроенная система может выдавать команды для включения питания светодиодного дисплея сотового телефона. Встроенная система также может приводить в действие звуковые динамики в сотовом телефоне, чтобы снабжать пользователя звуковым уведомлением, относящимся к сотовому телефону.
Бытовые приборы также могут включать в себя встроенную систему. Бытовые приборы могут включать в себя приборы, обычно используемые на обычной кухне, например печь, холодильник, микроволновую печь и т.п. Бытовые приборы также могут включать в себя приборы, которые относятся к здравоохранению и здоровью пользователя. Например, массажное устройство изменения угла наклона может включать в себя встроенную систему. Встроенная система может выдавать команды, чтобы автоматически изменять наклон задней части кресла согласно предпочтениям пользователя. Встроенная система также может выдавать команды, чтобы приводить в действие вибрационные компоненты в кресле, которые вызывают вибрации в устройстве изменения наклона согласно предпочтениям пользователя.
Дополнительные изделия, обычно обнаруживаемые в домах, также могут включать в себя встроенные системы. Например, встроенная система может использоваться в туалете для управления уровнем воды, используемой для пополнения резервуарного бака. Встроенные системы могут использоваться в гидромассажных ваннах, чтобы управлять истечением воздуха.
Как указано, встроенные системы могут использоваться для контроля или управления многими разными системами, ресурсами, изделиями и т.п. С ростом сети Интернет и Всемирной паутины встроенные системы все больше и больше подключаются к сети Интернет, так что они могут удаленно отслеживаться и/или управляться. Другие встроенные системы могут присоединяться к компьютерным сетям, в том числе локальным сетям, глобальным сетям и т.п. В качестве используемого в материалах настоящей заявки термин «компьютерная сеть» (или просто «сеть») относится к любой системе, в которой последовательность узлов соединена трактом связи. Термин «узел» относится к любому устройству, которое может быть присоединено в качестве части компьютерной сети. Встроенная система может быть узлом сети. Другие примеры узлов сети включают в себя компьютеры, персональные цифровые секретари (PDA), сотовые телефоны и т.п.
Некоторые встроенные системы могут поставлять данные и/или службы другим вычислительным устройствам с использованием компьютерной сети. Могут предоставляться многие разные виды служб. Некоторые примеры служб включают в себя предоставление температурных данных с места, предоставление данных наблюдения, предоставление информации о погоде, поставку аудиопотока, поставку видеопотока и т.п. В качестве используемого в материалах настоящей заявки термин «запросчик» относится к узлу, который запрашивает службу у поставщика. Термин «поставщик» относится к узлу, который поставляет службу запросчику.
Некоторые из узлов в пределах компьютерной сети могут быть сконфигурированы для отправки сообщений на другие узлы по сети с использованием технологии многоадресной передачи. В контексте компьютерных сетей термин «многоадресная передача» относится к последовательности операций отправки сообщения одновременно на более чем один узел в сети. Многоадресная передача отлична от широковещательной передачи тем, что многоадресная передача означает отправку сообщения в определенные группы узлов в пределах сети, тогда как широковещательная передача подразумевает отправку сообщения на все из узлов в сети.
Различные протоколы были определены для предоставления узлам возможности выявлять службы, которые имеются в распоряжении в сети. Некоторые примеры таких протоколов включают в себя протокол обнаружения служб (SLP), Bonjour и т.п. Известные протоколы обнаружения обычно используют технологию многоадресной передачи для обнаружения служб и информации о том, как взаимодействовать с ними.
С известными подходами последовательность операций обнаружения службы является отдельной от последовательности операций взаимодействия со службой. Протоколы, такие как SLP и Bonjour, предусматривают механизмы для обнаружения служб, но не для взаимодействия с ними. Как только служба была обнаружена, совершенно другой протокол (например, SOAP (протокол ориентированных на обслуживание приложений)) используется для взаимодействия со службой. Соответственно, с известными подходами запросчик службы обычно имеет два стека протоколов для работы со службами, стек протоколов для обнаружения службы и отдельный стек протоколов для взаимодействия со службами. Однако реализация двух отдельных стеков протоколов для служб может быть затруднительной для некоторых устройств с ограниченными ресурсами (возможностью обработки, памятью и т.п.), таких как некоторые встроенные системы.
Ввиду вышеизложенного преимущества могут быть реализованы усовершенствованиями, имеющими отношение к обнаружению и взаимодействию со службами в компьютерной сети. В материалах настоящей заявки раскрыты некоторые примерные системы и способы для содействия более эффективному обнаружению служб в компьютерной сети.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Раскрыты системы и способы обнаружения и взаимодействия со службами. В примерном варианте осуществления запросчик осуществляет многоадресную передачу команды обслуживания. В ответ на команду обслуживания запросчик принимает ответные данные от по меньшей мере одной службы, которая раньше не была обнаружена запросчиком. Запросчик также может принимать информацию обнаружения, которая дает запросчику возможность дополнительно взаимодействовать с этой по меньшей мере одной службой. Информация обнаружения для конкретной службы может давать запросчику возможность устанавливать соединение (например, соединение TCP/IP) с поставщиком службы. Например, информацией обнаружения для конкретной службы может быть сетевой адрес поставщика службы и порт у поставщика, по которому доступна служба. Если желательно дополнительное взаимодействие со службой, запросчик может использовать информацию обнаружения для установления соединения с поставщиком службы.
В некоторых вариантах осуществления, ответные данные от конкретной службы и информация обнаружения, которые дают запросчику возможность дополнительно взаимодействовать со службой, могут приниматься одновременно. Например, ответные данные могут быть включены в полезную нагрузку пакета, который отправляется из службы, а информация обнаружения может быть включена в транспортный заголовок пакета.
Запросчик может осуществлять многоадресную передачу команды обслуживания в соответствии с реализацией протокола дейтаграмм пользователя. Ответные данные и информация обнаружения могут приниматься посредством одноадресной передачи в соответствии с реализацией протокола дейтаграмм пользователя.
Запросчик может принимать ответные данные от службы, которая расположена у поставщика без многоадресной передачи. В этой ситуации информация обнаружения может давать запросчику возможность устанавливать соединение к посреднику многоадресной передачи, который может служить в качестве интерфейса между запросчиком и поставщиком без многоадресной передачи.
Запросчик может принимать ответные данные от службы, которая расположена у поставщика в сети, которая отделена от сети запросчика по меньшей мере одним сетевым устройством, которое не сконфигурировано для маршрутизации адресации многоадресной передачи.
ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ
Примерные варианты осуществления изобретения будут становиться полнее очевидными из последующего описания и прилагаемой формулы изобретения, взятых в сочетании с прилагаемыми чертежами. С пониманием, что эти чертежи изображают только примерные варианты осуществления и потому не должны рассматриваться ограничивающими объем изобретения, примерные варианты осуществления изобретения будут описаны с дополнительной спецификой и детализацией посредством использования прилагаемых чертежей, на которых:
фиг.1 - структурная схема, которая иллюстрирует систему обнаружения и взаимодействия со службами согласно варианту осуществления;
фиг.2 - блок-схема последовательности операций, которая иллюстрирует работу запросчика в варианте осуществления, показанном на фиг.1;
фиг.3 - структурная схема, которая иллюстрирует конфигурацию пакета, содержащего ответ на команду обслуживания согласно варианту осуществления;
фиг.4 - структурная схема, которая иллюстрирует условную функцию, которая может быть реализована службой согласно варианту осуществления;
фиг.5 - структурная схема, которая иллюстрирует систему обнаружения и взаимодействия со службами, расположенными на узлах без многоадресной передачи согласно варианту осуществления;
фиг.6 - структурная схема, которая иллюстрирует систему обнаружения и взаимодействия со службами в отдельной сети согласно варианту осуществления;
фиг.7 - структурная схема компонентов аппаратных средств, которые могут использоваться во встроенной системе, которая сконфигурирована согласно варианту осуществления;
фиг.8 иллюстрирует примерную систему освещения, в которой могут быть реализованы настоящие системы и способы;
фиг.9 иллюстрирует примерную систему безопасности, в которой могут быть реализованы настоящие системы и способы;
фиг.10 иллюстрирует примерную систему домашнего контроллера, в которой могут быть реализованы настоящие системы и способы.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Различные варианты осуществления изобретения далее описаны со ссылкой на чертежи, где одинаковые номера ссылок указывают идентичные или функционально подобные элементы. Варианты осуществления настоящего изобретения, которые в общих чертах описаны и проиллюстрированы на чертежах, могли бы быть скомпонованы и сконструированы в широком многообразии разных конфигураций. Таким образом, последующее более подробное описание нескольких примерных вариантов осуществления настоящего изобретения, которые представлены на чертежах, не подразумевается ограничивающим объем изобретения, который заявлен формулой изобретения, а только является представляющим варианты осуществления изобретения.
Слово «примерный» используется в материалах настоящей заявки, исключительно чтобы означать «служащий в качестве примера, отдельного случая или иллюстрации». Любой вариант осуществления, описанный в материалах настоящей заявки как «примерный», не обязательно должен истолковываться как предпочтительный или преимущественный над другими вариантами осуществления. Несмотря на то что различные аспекты вариантов осуществления представлены на чертежах, чертежи не обязательно начерчены для представления в определенном масштабе, если не указано специально.
Многие признаки вариантов осуществления, раскрытых в материалах настоящего изобретения, могут быть реализованы в качестве компьютерного программного обеспечения, электронных аппаратных средств или комбинации обоих. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные компоненты, как правило, будут описаны в показателях своих функциональных возможностей. Реализованы ли такие функциональные возможности в виде аппаратных средств или программного обеспечения, зависит от конкретного применения и проектных ограничений, накладываемых на всю систему. Квалифицированные специалисты могут реализовать описанные функциональные возможности отличающимися способами для каждого конкретного применения, но такие реализационные решения не должны интерпретироваться в качестве служащих причиной выхода из объема настоящего изобретения.
В тех случаях, когда описанные функциональные возможности реализованы в качестве компьютерного программного обеспечения, такое программное обеспечение может включать в себя любой тип компьютерной команды или выполняемого компьютером кода, расположенных в пределах устройства памяти и/или передаваемых в виде электронных сигналов по системной шине или сети. Программное обеспечение, которое реализует функциональные возможности, ассоциативно связанные с компонентами, описанными в материалах настоящей заявки, может содержать одиночную команду или многочисленные команды и может быть распределено по нескольким разным кодовым сегментам, среди разных программ, и по нескольким устройствам памяти.
Фиг.1 - структурная схема, которая иллюстрирует систему 100 обнаружения и взаимодействия со службами согласно варианту осуществления. Запросчик 102 отправляет команду 104 обслуживания посредством многоадресной передачи в группу многоадресной передачи. (Как указано выше, термин «запросчик» относится к узлу, который запрашивает службу у поставщика.) Команда 104 обслуживания является командой службе 106 выполнять операцию. Примеры команд 104 обслуживания включают в себя вызов функции, которая предусмотрена службой 106, чтение/установку переменной, которая предусмотрена службой 106, и т.п.
Служба 106, которую запросчик 102 не обнаружил ранее, показана на фиг.1. Служба 106 расположена у поставщика 114. (Как указано выше, термин «поставщик» относится к узлу, который предоставляет службу запросчику.) Будет понятно, что поставщик 114 предоставляет службе 106 доступ к сети, и, по сути, фактически принимает команду 104 обслуживания, и отправляет ответное сообщение 110. Этот поставщик 114 объединил группу многоадресной передачи, в которую отправляется команда 104 обслуживания, и осуществляет прослушивание на порте многоадресной передачи, который ассоциирован с этой группой многоадресной передачи. Как результат, поставщик 114 принимает команду 104 обслуживания от запросчика 102 и пересылает ее в службу 106. Служба выполняет операцию, которая специфицирована командой 104 обслуживания, которая может формировать ответные данные 108. Например, если команда 104 обслуживания является командой для считывания переменной, то ответные данные 108 могут быть значением переменной. В качестве еще одного примера, если команда 104 обслуживания является вызовом функции, то ответные данные 108 могут быть одним или более значений, которые возвращаются такой функцией.
После выполнения операции, которая задана командой 104 обслуживания, поставщик 114 отправляет ответное сообщение 110 запросчику 102 посредством одноадресной передачи. Ответное сообщение 110, которое отправляется, включает в себя ответные данные 108. В дополнение, ответное сообщение 110 также включает в себя информацию 112 обнаружения о службе 106 и поставщике 114. Информация 112 обнаружения является информацией, которая содействует обнаружению службы 106 и поставщика 114 запросчиком 102. (Как указано выше, запросчик 102 еще не обнаружил службу 106, когда он многоадресно передает команду 104 обслуживания.) Например, информация 112 обнаружения может включать в себя информацию, которая дает запросчику 102 возможность устанавливать соединение (например, соединение TCP/IP) с поставщиком 114, такую как сетевой адрес поставщика 114 и порт у поставщика 114, по которому доступна служба 106. Наряду с тем, что поставщик 114 фактически отправляет и принимает команду 104 обслуживания и ответное сообщение 110, может быть упомянуто, что они также принимаются и отправляются службой 106. Подобным образом, часть информации 112 обнаружения относится к поставщику 114, а часть - к службе 106. Информация 112 обнаружения одновременно обнаруживает как поставщика 114, так и службу 106.
Как обсуждено выше, с известными подходами, последовательность операций обнаружения службы является отдельной от последовательности операций взаимодействия со службой. В противоположность, в изображенном варианте осуществления запросчик 102 одновременно обнаруживает и взаимодействует со службой 106. Запросчик 102 принимает как ответные данные 108, так и информацию 112 обнаружения, одновременно, в ответ на многоадресную передачу команды 104 обслуживания. Запросчик 102 обнаруживает службу 106, обрабатывая информацию 112 обнаружения для службы 106 (например, сетевой адрес и порт), которая содержится в ответном сообщении 110. Запросчик 102 взаимодействует со службой 106, обрабатывая ответные данные 108, которые содержатся в ответном сообщении 110.
Для простоты, фиг.1 иллюстрирует одиночную службу 106, отвечающую на команду 104 обслуживания, отправленную запросчиком 102. Однако многочисленные службы 106 могут отвечать на команду 104 обслуживания. Команда 104 обслуживания может быть сконструирована так, что каждая служба 106, которая принимает команду 104 обслуживания, отвечает на нее. Это предоставляет запросчику 102 возможность обнаруживать все из служб 106 в пределах конкретной области. Например, если команда 104 обслуживания является командой для считывания переменной наименования принтера из службы 106 печати, каждая служба 106 печати, которая принимает команду 104 обслуживания, может возвращать значение своей переменной наименования принтера, в силу этого предоставляя запросчику 102 возможность обнаруживать все из имеющихся в распоряжении принтеров в пределах конкретной области (например, компьютерной сети).
Хотя возможно, чтобы многочисленные службы 106 отвечали на команду 104 обслуживания, при некоторых обстоятельствах, запросчик 102 может не пожелать обнаруживать все из имеющихся в распоряжении служб 106 в пределах конкретной области. Взамен запросчик 102 может пожелать просто запросить определенную службу 106 или определенный набор служб 106. Например, вместо обнаружения всех из принтеров в пределах конкретной области запросчик 102 может пожелать обнаруживать определенную службу 106 печати (например, с тем чтобы он мог отправлять задание на печать на определенный принтер). Механизмы для предоставления этой функциональной возможности будут обсуждены ниже.
При некоторых обстоятельствах, запросчику 102 может быть желательным иметь дополнительное взаимодействие со службой 106 после того, как ответное сообщение 110 принимается от такой службы 106. Например, рассмотрим службу 106, которая возвращает температуру устройства. Если служба 106 отправляет ответное сообщение 110, которое указывает, что температура устройства превышает определенное пороговое значение, то запросчик 102 может быть сконфигурирован для запроса дополнительной информации у такой службы 106.
Если дополнительное взаимодействие со службой 106 требуется после того, как ответное сообщение 110 принято от службы 106, запросчик 102 может использовать информацию 112 обнаружения, которая принималась от службы 106, для установления соединения 116 (например, соединения TCP/IP) с поставщиком 114, для того чтобы взаимодействовать со службой 106. Запросчик 102 затем может дополнительно взаимодействовать со службой 106 через это соединение 116.
В некоторых вариантах осуществления, запросчик 102 может использовать реализацию протокола дейтаграмм пользователя (UDP) в качестве транспортного протокола для многоадресной передачи команды 104 обслуживания. К тому же служба 106 может использовать UDP в качестве транспортного протокола, чтобы одноадресно передавать ответное сообщение 110 обратно запросчику 102.
Фиг.2 - блок-схема последовательности операций, которая иллюстрирует работу запросчика 102 в варианте осуществления, показанном на фиг.1. Запросчик 102 многоадресно передает 202 команду 104 обслуживания в группу многоадресной передачи. По меньшей мере одна служба 106, которую запросчик 102 не обнаружил раньше, принимает и отвечает на команду 104 обслуживания от запросчика 102.
Когда служба 106 принимает команду 104 обслуживания, она выполняет операцию, которая задана командой 104 обслуживания, которая может формировать ответные данные 108. Служба 106 затем может отправлять, а запросчик 102 может принимать 204 ответное сообщение 110 посредством одноадресной передачи. Ответное сообщение 110 может включать в себя ответные данные 108. Ответное сообщение 110 также может включать в себя информацию 112 обнаружения о службе 106, которая является информацией, которая содействует обнаружению службы 106 запросчиком 102.
Запросчик 102 обнаруживает службу 106, обрабатывая 206 информацию 112 обнаружения для поставщика 114 (например, сетевой адрес и порт), содержащуюся в ответном сообщении 110. Запросчик 102 взаимодействует со службой 106, обрабатывая 208 ответные данные 108, которые содержатся в ответном сообщении 110. Соответственно, принимая и обрабатывая ответное сообщение 110, запросчик 102 одновременно обнаруживает и взаимодействует со службой 106.
Если дополнительное взаимодействие со службой 106 требуется после того, как ответное сообщение 110 принято от службы 106, запросчик 102 может использовать информацию 112 обнаружения, которая принималась от службы 106, для установления 210 соединения 116 (например, соединения TCP/IP) со службой 106. Запросчик 102 затем может дополнительно взаимодействовать 212 со службой 106 через это соединение 116.
Фиг.3 - структурная схема, которая иллюстрирует конфигурацию пакета 310, содержащего ответ на команду 104 обслуживания согласно варианту осуществления. В изображенном варианте осуществления транспортный заголовок 318 ответного пакета 310 включает в себя сетевой адрес 320 поставщика 114 службы 106, а также порт 322 у поставщика 114, к которому привязана служба 106. Эта информация 312 обнаружения включена в транспортный заголовок 318, в то время как ответный пакет 310 обрабатывается поставщиком 114 в качестве части запрашивания службой 106, чтобы ответный пакет 310 был отправлен. Так как информация 312 обнаружения включена в транспортный заголовок 318 ответного пакета 310, включения информации 312 обнаружения в полезную нагрузку 324 ответного пакета необязательны. Следовательно, полезная нагрузка 324 ответного пакета 310 может включать в себя ответные данные 308, то есть данные, которые служба 106 отправляет запросчику 102 в ответ на команду 104 обслуживания.
С известными подходами к обнаружению служб запросчик обычно не взаимодействует со службой для выявления информации о службе. Взамен отдельный сервер обнаружения может предоставлять информацию о имеющихся в распоряжении службах. Более того, ответ на запрос ради информации об имеющихся в распоряжении службах обычно отправляется с эфемерного порта, то есть порта, который временно назначен для цели отправки ответа. Соответственно, транспортный заголовок ответного пакета, который отправляется в соответствии с известными подходами, не предоставляет информацию о том, каким образом устанавливать соединение со службой. В противоположность, в изображенном варианте осуществления информация 312 обнаружения (то есть сетевой адрес 320 и порт 322 поставщика 114) включена в транспортный заголовок 318 ответного пакета 310, освобождая дополнительное пространство для ответных данных 308 в полезной нагрузке 324 ответного пакета 310.
Как указано выше, при некоторых обстоятельствах запросчик может не пожелать обнаруживать все из имеющихся в распоряжении служб в пределах конкретной области. Взамен запросчик может пожелать просто запрашивать определенную службу или определенный набор служб. Например, вместо обнаружения всех из принтеров в пределах сети запросчик может пожелать обнаруживать определенный принтер (например, с тем чтобы он мог отправлять на него задание на печать).
Чтобы дать запросчикам возможность обнаруживать определенную службу (или набор служб) в пределах конкретной области, каждая служба в пределах области может предусматривать функцию, которая возвращает значение, только если удовлетворены одно или более условий. Этот вид функции в материалах настоящей заявки будет упоминаться как условная функция.
Фиг.4 - структурная схема, которая иллюстрирует условную функцию 426, которая может быть реализована службой 406 согласно варианту осуществления. Условная функция 426 включает в себя один или более входных параметров 428, одну или более операций 430 оценки условий и одну или более операций 432 условного возврата. Входные параметры 428 являются значениями, которые предоставляются запросчику, когда он вызывает условную функцию 426. Операции 430 оценки условий являются операциями для оценки, удовлетворены ли одно или более условий. Операции 430 оценки условий могут влечь за собой сравнение входных параметров 428 с одной или более переменных 434, которые удерживаются службой 406. Операции 432 условного возврата являются операциями для возврата значений вызывающему запросчику, если удовлетворено(ы) соответствующее(ие) условие(ия).
Далее будет обсужден отдельный пример условной функции 426, который проиллюстрирован на фиг.4. В этом примере, предположим, что запросчик желает обнаружить определенный принтер в пределах сети. Каждая служба принтеров в сети может быть сконфигурирована с условной функцией 426, которая берет наименование требуемого принтера в качестве входного параметра 428. Функция 426 выполняет операцию 430 оценки условия, которая влечет за собой сравнение наименования требуемого принтера с переменной 434 наименования принтера, которая удерживается службой 406. Затем выполняется операция 432 условного возврата. В частности, если наименование требуемого принтера совпадает с переменной 434 наименования принтера, то функция 426 возвращает значение (например, TRUE (ИСТИНА)) вызывающему запросчику. Если наименование требуемого принтера не совпадает с переменной 434 наименования принтера, то функция 426 ничего не возвращает запросчику. Если запросчик многоадресно передает вызов в условную функцию 426, обсужденную в этом примере, то будет отвечать только служба 406 принтеров, которая соответствует требуемому принтеру. Соответственно, запросчик способен обнаруживать определенный принтер в пределах сети.
Варианты осуществления, описанные выше, задействуют использование технологии многоадресной передачи для обнаружения и взаимодействия со службами. Однако некоторые типы узлов могут не быть сконфигурированными для обработки многоадресных сообщений. Например, некоторые узлы могут не быть способными к приему и/или обработке многоадресных сообщений (например, они не имеют надлежащего стека протоколов многоадресной передачи для обработки многоадресных сообщений). К тому же некоторые узлы, которые способны к обработке многоадресных сообщений, могут быть сконфигурированы или уведомляться, чтобы не обрабатывать многоадресные сообщения, по меньшей мере временно. Термин «узел без многоадресной передачи» будет использоваться в материалах настоящей заявки как относящийся к узлу, который не обрабатывает многоадресные сообщения, так как он не способен к обработке многоадресных сообщений, либо так как он был сконфигурирован или уведомлен, чтобы не обрабатывать многоадресные сообщения. При некоторых обстоятельствах, запросчик может пожелать обнаруживать и взаимодействовать со службами, которые предусмотрены узлами без многоадресной передачи.
Фиг.5 - структурная схема, которая иллюстрирует систему 500 обнаружения и взаимодействия со службами, расположенными на узлах без многоадресной передачи согласно варианту осуществления. Система 500 включает в себя посредника 536 многоадресной передачи. В общих чертах, посредник 536 многоадресной передачи служит в качестве интерфейса между способными к многоадресной передаче узлами и узлами без многоадресной передачи. Узлы без многоадресной передачи регистрируются посредником 536 многоадресной передачи. Посредник 536 многоадресной передачи принимает многоадресные сообщения от имени зарегистрированных узлов без многоадресной передачи и пересылает эти сообщения на зарегистрированные узлы без многоадресной передачи. Узлы без многоадресной передачи могут отвечать на многоадресные сообщения через посредника многоадресной передачи.
Когда запросчик 502 отправляет команду 504 обслуживания посредством многоадресной передачи в группу многоадресной передачи, которая включает в себя посредника 536 многоадресной передачи, посредник 536 многоадресной передачи принимает команду 504 обслуживания и пересылает ее на один или более узлов без многоадресной передачи, которые предоставляют запрошенную службу, которые в материалах настоящей заявки будут упоминаться как «поставщики без многоадресной передачи». В изображенном варианте осуществления есть соединение 517 (например, соединение TCP/IP) между посредником 536 многоадресной передачи и поставщиком 514 без многоадресной передачи. Посредник 536 многоадресной передачи может передавать команду 504 обслуживания поставщику 514 без многоадресной передачи через соединение 517. После выполнения операции, которая задана командой 504 обслуживания, служба 506 отправляет ответное сообщение 510 через соединение 517 обратно посреднику 536 многоадресной передачи. Ответное сообщение 510 включает в себя ответные данные 308, то есть данные, которые служба 506 отправляет запросчику 102 в ответ на команду 504 обслуживания. Посредник 536 многоадресной передачи добавляет свою информацию 512 обнаружения (то есть информацию 512, которая содействует обнаружению посредника 536 многоадресной передачи) в ответное сообщение 510 и пересылает ответное сообщение 510 исходному запросчику 502 посредством одноадресной передачи.
Только что описанная последовательность операций предоставляет запросчику 502 возможность одновременно обнаруживать и взаимодействовать со службой 506, которая расположена у поставщика 514 без многоадресной передачи. Как обсуждено выше, запросчик 502 взаимодействует со службой 506, обрабатывая ответные данные 508, которые содержатся в ответном сообщении 510. Запросчик 502 раскрывает, каким образом дальше взаимодействовать со службой 502, обрабатывая информацию 512 обнаружения для посредника 536 многоадресной передачи, которая содержится в ответном сообщении 510. Если желательно дополнительное взаимодействие со службой 506, запросчик 502 может использовать информацию 512 обнаружения для установления соединения 516 с посредником 536 многоадресной передачи. Запросчик 502 затем может дополнительно взаимодействовать со службой 506 через посредника 536 многоадресной передачи.
В некоторых вариантах осуществления, посредник 536 многоадресной передачи может быть избирательным посредником многоадресной передачи, который избирательно пересылает многоадресные сообщения, которые он принимает. Избирательный посредник многоадресной передачи может быть сконфигурирован так, что, когда он принимает запрос на службу посредством многоадресной передачи, избирательный посредник многоадресной передачи идентифицирует поставщика запрошенной службы, а более точно, направляет запрос обслуживания такому поставщику. Другими словами, избирательный посредник многоадресной передачи пересылает запрос обслуживания только такому поставщику, но не другим узлам, таким как другие узлы без многоадресной передачи. Дополнительные подробности об избирательных посредниках многоадресной передачи описаны в находящейся в процессе одновременного рассмотрения заявке на выдачу патента США под порядковым № 11/305838, озаглавленной «Systems and Methods for Providing a Selective Multicast Proxy on a Computer Network» («Системы и способы для предоставления избирательного посредника многоадресной передачи в компьютерной сети»), поданной 16 декабря 2005 года изобретателями Томасом Миллиганом и Брайантом Истамом. Эта находящаяся в процессе одновременного рассмотрения заявка на выдачу патента США, которая переуступлена правопреемнику настоящего изобретения, настоящим включена в состав посредством ссылки во всей своей полноте.
При некоторых обстоятельствах, запросчик может пожелать обнаруживать и взаимодействовать со службами, которые предусмотрены узлами в отдельной сети. Обычно одно или более сетевых устройств (например, маршрутизатор, межсетевой экран и т.п.) отделяют сеть запросчика от сети поставщика. Некоторые или все из этих сетевых устройств могут не быть сконфигурированными для маршрутизации адресации многоадресной передачи. Как обсуждено выше, запросчик инициирует процесс обнаружения и взаимодействия со службами посредством многоадресной передачи команды обслуживания. Соответственно, чтобы содействовать обнаружению и взаимодействию со службами в отдельной сети, может быть предусмотрен некоторый механизм для передачи многоадресного потока обмена через сети.
Фиг.6 - структурная схема, которая иллюстрирует систему 600 обнаружения и взаимодействия со службами в отдельной сети согласно варианту осуществления. Система 600 включает в себя многочисленные компьютерные сети 640, а именно сеть A 640a и сеть B 640b. Каждая сеть 640 включает в себя множество взаимосвязанных узлов. Сети 640a, 640b отделены по меньшей мере одним сетевым устройством 642 (например, маршрутизатором, межсетевым экраном и т.п.), которое не сконфигурировано для маршрутизации адресации многоадресной передачи.
Каждая сеть включает в себя по меньшей мере один узел 644, который включает в себя повторитель 646 многоадресной передачи. Более точно, сеть A 640a включает в себя узел 644a, который включает в себя повторитель 646a многоадресной передачи, а сеть 640b включает в себя узел 644b, который включает в себя повторитель 646b многоадресной передачи. В общих чертах, повторитель 646 многоадресной передачи является сетевым мостом, который предоставляет многоадресным сообщениям, которые возникают в одной изолированной сети (например, сети A 640a) возможность ретранслироваться на и подвергаться ответу узлами в другой изолированной сети (например, B 640b). Для совершения этого каждый повторитель 646 многоадресной передачи сконфигурирован для пересылки каждого многоадресного сообщения, которое он принимает, всем другим известным повторителям 646 (если многоадресное сообщение еще не было переслано). Дополнительные подробности о конфигурации и работе повторителей 646a, 646b многоадресной передачи приведены в заявке на выдачу патента США под порядковым № 11/313282, озаглавленной «Systems and Methods for Providing a Network Bridge for UDP Multicast Traffic» («Системы и способы для предоставления сетевого моста для многоадресного потока обмена UDP»), поданной 20 декабря 2005 года, изобретателями Томасом Миллиганом и Брайантом Истамом. Эта заявка на выдачу патента США, которая переуступлена правопреемнику настоящего изобретения, настоящим включена в состав посредством ссылки во всей своей полноте.
Когда запросчик 602 в сети A 640a многоадресно передает команду обслуживания, повторитель 646a многоадресной передачи в сети A 640a принимает команду обслуживания и пересылает ее на повторитель 646b многоадресной передачи в сети B 640b через соединение (например, соединение TCP/IP), которое было установлено с повторителем 646b сети B. Повторитель 646b сети B многоадресно передает команду обслуживания по сети B 640b, в каковой момент она принимается и подвергается ответу службой 606 у поставщика 614 в сети B 640b.
Как указано выше, узлы в пределах сети могут включать в себя одну или более встроенных систем. Настоящие системы и способы могут быть реализованы в компьютерной сети, где встроенная система предоставляет данные и/или службы другим вычислительным устройствам. Фиг.7 - структурная схема компонентов аппаратных средств, которые могут использоваться во встроенной системе 702, которая сконфигурирована согласно варианту осуществления. Центральный процессор (ЦП, CPU) 708 или процессор может быть предусмотрен для управления работой встроенной системы 702, включающей в себя другие ее компоненты, которые присоединены к ЦП 708 через шину 710. ЦП 708 может быть воплощен в качестве микропроцессора, микроконтроллера, цифрового сигнального процессора или другого устройства, известного в данной области техники. ЦП 708 выполняет логические и арифметические операции на основании управляющей программы, хранимой в памяти. В определенных вариантах осуществления, память 714 может быть внутриплатной памятью, заключенной ЦП 708. Например, микроконтроллеры часто включают в себя определенный объем внутриплатной памяти.
Встроенная система 702 также может включать в себя сетевой интерфейс 712. Сетевой интерфейс 712 предоставляет встроенной системе 702 возможность присоединяться к сети, которая может быть пейджерной сетью, сотовой сетью, сетью глобальной связи, сетью Интернет, компьютерной сетью, телефонной сетью, и т.п. Сетевой интерфейс 712 работает согласно стандартным протоколам для применимой сети.
Встроенная система 702 также может включать в себя память 714. Память 714 может включать в себя оперативное запоминающее устройство (ОЗУ) для сохранения временных данных. В качестве альтернативы, или в дополнение, память 714 может включать в себя постоянное запоминающее устройство (ПЗУ) для хранения более постоянных данных, таких как фиксированный код и конфигурационные данные. Память 714 также может быть воплощена в качестве магнитного устройства хранения данных, такого как накопитель на магнитных дисках. Память 714 может быть любым типом электронного устройства, которое способно к хранению электронной информации.
Встроенная система 702 также может включать в себя один или более портов 716 связи, которые содействуют связи с другими устройствами. Встроенная система 702 также может включать в себя устройства 718 ввода/вывода, такие как клавиатура, мышь, джойстик, сенсорный экран, монитор, динамики, принтер и т.п.
Конечно, фиг.7 иллюстрирует только одну из возможных конфигураций встроенной системы 702. Могут использоваться различные другие архитектуры и компоненты.
Настоящие системы и способы могут использоваться в нескольких контекстах. Фиг.8 иллюстрирует один из вариантов осуществления системы, в которой могут быть реализованы настоящие системы и способы. Фиг.8 - структурная схема, которая иллюстрирует один из вариантов осуществления системы 800 освещения, которая включает в себя систему 808 контроллера освещения. Система 800 освещения по фиг.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 содействуют системе 808 контроллера освещения для контроля и управления каждым компонентом 810, 812, 822 и 824 освещения, расположенным в комнате A 802 и комнате B 804.
Система 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-ядром, или любой другой такой конфигурации.
Этапы способа или алгоритма, описанные в связи с вариантами осуществления, раскрытыми в материалах настоящей заявки, могу быть воплощены непосредственно в аппаратных средствах, в программном модуле, выполняемом процессором, или в сочетании этих двух. Программно-реализованный модуль может находиться в памяти ОЗУ, флэш-памяти, памяти ПЗУ, памяти EPROM, памяти EEPROM, регистрах, на жестком диске, съемном диске, CD-ROM (ПЗУ на компакт диске) или любой другой разновидности запоминающего носителя, известной в данной области техники. Примерный запоминающий носитель присоединен к процессору, из условия чтобы процессор мог считывать информацию с и записывать информацию на запоминающий носитель. В альтернативном варианте, запоминающий носитель может быть интегральным по отношению к процессору. Процессор и запоминающий носитель могут находиться в ASIC. ASIC может находиться в пользовательском терминале. В альтернативном варианте, процессор и запоминающий носитель могут находиться в виде дискретных компонентов в пользовательском терминале.
Способы, раскрытые в материалах настоящей заявки, содержат один или более этапов или действий для выполнения описанного способа. Этапы и/или действия способа могут взаимно обмениваться один с другим не выходя из объема настоящего изобретения. Другими словами, пока определенный порядок этапов или действий не требуется для надлежащей работы варианта осуществления, порядок и/или использование определенных этапов и/или действий могут модифицироваться не выходя из объема настоящего изобретения.
Несмотря на то что были проиллюстрированы и описаны отдельные варианты осуществления и применения настоящего изобретения, должно быть понятно, что изобретение не ограничено точной конфигурацией и компонентами, раскрытыми в материалах настоящей заявки. Различные модификации, изменения и варианты, которые будут очевидны специалистам в данной области техники, могут производиться в компоновке, работе и деталях способов и систем по настоящему изобретению, раскрытому в материалах настоящей заявки, не выходя за рамки сущности и объема изобретения.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение применимо ко встроенной системе.