Системы и способы обнаружения и взаимодействия со службами

Иллюстрации

Показать все

Изобретение относится к компьютерам, в частности к системам и способам обнаружения и взаимодействия со службами. Техническим результатом является обеспечение содействия более эффективного обнаружения служб в компьютерной системе. Запросчик многоадресно передает команду обслуживания. Когда служба принимает команду обслуживания, она выполняет операцию, которая задана командой обслуживания, которая может формировать ответные данные. Служба затем может отправлять, а запросчик может принимать ответное сообщение посредством одноадресной передачи. Ответное сообщение может включать в себя ответные данные. Ответное сообщение также может включать в себя информацию обнаружения о службе, которая является информацией, которая содействует обнаружению службы запросчиком. Запросчик обрабатывает ответные данные и информацию обнаружения. Если желательно дополнительное взаимодействие со службой, запросчик может использовать информацию обнаружения для установления соединения со службой. 3 н. и 17 з.п. ф-лы, 10 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение в целом относится к компьютерам и имеющим отношение к компьютерам технологиям. Более точно, настоящее изобретение относится к системам и способам обнаружения и взаимодействия со службами.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

Компьютерные и коммуникационные технологии продолжают продвигаться быстрыми шагами. Действительно, компьютерные и коммуникационные технологии вовлечены во многие аспекты повседневной жизни человека. Например, многочисленные устройства, используемые потребителями сегодня, содержат компьютер внутри устройства. Эти небольшие компьютеры входят в употребление в варьирующихся размерах и степенях изощренности. Эти небольшие компьютеры включают в себя все, от одного микроконтроллера до полнофункциональной завершенной компьютерной системы. Например, эти небольшие компьютеры могут быть однокристальным компьютером, таким как микроконтроллер; бортовым типом компьютера, таким как контроллер; типичным настольным компьютером, таким как совместимый с ПК фирмы 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 многоадресной передачи может быть избирательным посредником многоадресной передачи, который избирательно пересылает многоадресные сообщения, которые он принимает. Избирательный посредник многоадресной передачи может быть сконфигурирован так, что, когда он принимает запрос на службу посредством многоадресной передачи, избирательный посредник многоадресной передачи идентифицирует поставщика запрошенной службы, а более точно, направляет запрос обслуживания такому поставщику. Другими словами, избирательный посредник многоадресной пер