SlideShare a Scribd company logo
1 of 28
РАСШИРЕНИЕ ПРОТОКОЛА 
ОБНАРУЖЕНИЯ СЕРВИСОВ С 
ПОМОЩЬЮ ИНФОРМАЦИИ 
О КОНТЕКСТЕ 
Студент Нина Бучина 
Руководитель Pieter J.L. Cuijpers
Дано 
 Беспроводная сенсорная сеть 
 Сенсоры ограничены в ресурсах 
 Сервис-ориентированная архитектура 
 Приложение=взаимодействующие сервисы 
 Сервисы изолированные, взаимозаменяемые 
 Один сервис – одно устройство 
 Автоматическое обнаружение сервисов 
 Сообщение передаются широковещанием 
 Большое количество сетевых операций истощает 
батареи устройств
Дано 
 Беспроводная сенсорная сеть 
 Сенсоры ограничены в ресурсах 
 Сервис-ориентированная архитектура 
 Приложение=взаимодействующие сервисы 
 Сервисы изолированные, взаимозаменяемые 
 Один сервис – одно устройство 
 Автоматическое обнаружение сервисов 
 Сообщение передаются широковещанием 
 Большое количество сетевых операций истощает 
батареи устройств
DNS (Domain Name System) 
 Типы записей: A, MX, PTR, SRV… 
 PTR: Имя PTR ДругоеИмя 
 SRV: ИмяСервиса SRV АдресСервиса
DNS-SD (DNS-based Service 
Discovery) 
_type._protocol.domain PTR ServiceName. 
_type._protocol.domain 
ServiceName. _type._protocol.domain SRV service.domain:port
DNS-SD (DNS-based Service 
Discovery) 
_type._protocol.domain PTR ServiceName. 
_type._protocol.domain 
ServiceName. _type._protocol.domain SRV service.domain:port
DNS-SD (DNS-based Service 
Discovery) 
_type._protocol.domain PTR ServiceName. 
_type._protocol.domain 
ServiceName. _type._protocol.domain SRV service.domain:port
DNS-SD (DNS-based Service 
Discovery) 
_type._protocol.domain PTR ServiceName. 
_type._protocol.domain 
ServiceName. _type._protocol.domain SRV service.domain:port
Проблема (в DNS-SD) 
_type._protocol.domain PTR ServiceName. 
_type._protocol.domain 
 Три параметра поиска: 
 Тип сервиса 
 Протокол 
 Домен 
 Множество похожих сервисов в сети => 
Множество ответов=>Большая нагрузка на сеть
Цель 
 Расширить список параметров для обнаружения 
сервисов 
 Лучшая фильтрация 
 Уменьшение числа ответов и нагрузки на сеть 
 Дополнительные параметры поиска – контекст 
сервисов: расположение, состояние, ближайшие 
объекты, … 
 Все изменения – в рамках оригинального 
протокола DNS-SD 
 Широкая распространённость протокола 
 Обратная совместимость
Контекстные теги 
 Как закодировать контекст сервиса? 
 Пример: имеется сервис для сенсора с полной 
батареей в комнате 10а 
 Как закодировать требования клиента к сервису? 
 Пример: нужен сервис сенсора с полной батареей в 
комнате 10а
Контекстные теги 
 Как закодировать контекст сервиса? 
 Пример: имеется сервис для сенсора с полной 
батареей в комнате 10а 
 Назначить сервису теги: 
room10a 
fullBattery 
 Как закодировать требования клиента к сервису? 
 Пример: нужен сервис сенсора с полной батареей в 
комнате 10а 
 Булево выражение: fullBattery&room10a
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a 
 Предложено несколько способов: 
 Formula in PTR 
 Tag to PTR 
 Conjunctions in PTR 
 Nested combinations
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a 
 Предложено несколько способов: 
 Formula in PTR 
 Tag to PTR 
 Conjunctions in PTR 
 Nested combinations
Схема: Formula in PTR 
 Хранимые записи: Нет 
 Запрос: room10a&FullBattery||room2 
room10a*fullBattery.room2 
PTR? 
room10a*fullBattery.room2 PTR 
Service1 
room10a*fullBattery.room2 PTR 
Service2
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a 
 Предложено несколько способов: 
 Formula in PTR Весь запрос в одном PTR- 
запросе 
 Tag to PTR 
 Conjunctions in PTR 
 Nested combinations
Схема: Tag to PTR 
 Хранимые записи: 
 Запрос: room10a&FullBattery||room2 
room10a PTR? 
fullBattery PTR? 
room2 PTR? 
room10a PTR Service1 
fullBattery PTR Service1 
room2 PTR Service2 
room10a PTR Service1 
fullBattery PTR Service1 
room2 PTR Service2 
Клиент фильтрует полученные записи на соответствие с формулой самостоятельно!
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a 
 Предложено несколько способов: 
 Formula in PTR Весь запрос в одном PTR- 
запросе 
 Tag to PTR PTR-запись для каждого тега 
 Conjunctions in PTR 
 Nested combinations
Схема: Conjunctions in PTR 
 Хранимые записи: 
 Запрос: room10a&FullBattery||room2 
fullBattery.room10a PTR? 
room2 PTR? 
fullBattery.room10a PTR Service1 
room10a PTR Service1 
fullBattery PTR Service1 
room2 PTR Service2 
fullBattery.room10a PTR Service1 
room2 PTR Service2 
Фильтрация ответов на клиенте необходима в случае использования отрицания в формуле
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a 
 Предложено несколько способов: 
 Formula in PTR Весь запрос в одном PTR- 
запросе 
 Tag to PTR PTR-запись для каждого тега 
 Conjunctions in PTR PTR-запись для каждой 
конъюнкции в формуле 
 Nested combinations
Схема: Nested tags 
combinations 
 Хранимые записи: 
 Указатели на имя, 
Содержащее все теги 
сервиса. 
 Клиент получает имя сервиса, ЛИБО полный контекст 
этого сервиса. 
 В последнем случае требуется ещё один DNS запрос для 
получения имени сервиса. 
fullBattery.room10a PTR Service1 
room10a PTR fullBattery.room10a 
fullBattery PTR fullBattery.room10a 
room2 PTR Service2
Схемы именования 
 Как выразить в DNS-сообщениях: 
 Сервис имеет теги room10a, fullBattery 
 Запрос сервисов с тегами fullBattery&room10a 
 Предложено несколько способов: 
 Formula in PTR Весь запрос в одном PTR- 
запросе 
 Tag to PTR PTR-запись для каждого тега 
 Conjunctions in PTR PTR-запись для каждой 
конъюнкции в формуле 
 Nested combinations PTR указывает на полный 
контекст
Количественная оценка схем 
 Критерии (Нефункциональные требования) 
 Нагрузка на сеть (меньше-лучше) 
Метрики: количество DNS-сообщений, размер DNS-сообщений 
 Объём памяти на хранение контекста (меньше-лучше) 
Метрики: число байт на хранение контекста 
 Количество дополнительного кода (меньше-лучше) 
Метрики: COSMIC 
 Максимальное количество тегов на сервис (больше-лучше) 
 Дополнительные операции 
 Результат оценки: рейтинг 
 Лучшая схема получает 1 место, следующая – 2е и т.д. 
 Сумма мест для разных критериев=итоговая оценка (меньше- 
лучше)
Результаты оценки 
Network 
4 
3.5 
3 
2.5 
2 
1.5 
1 
0.5 
0 
Operations 
Number of tags 
Memory usage Code amount 
Formula in PTR 
Tag to PTR 
Conjunctions in PTR 
Nested tags in PTR
Реализация 
 Основа: JmDNS 
 Библиотека реализующая DNS-SD на Java 
 Модификации: 
 Схемы именования 
 Публикация сервиса с набором тегов 
 Обнаружение сервиса с нужным контекстом при 
помощи булевого выражения 
 Опубликована: 
 http://dnssdext.net/
Результаты 
Контекстные теги 
4 схемы именования 
Количественная оценка по 5 
критериям 
Реализация
ВиО

More Related Content

What's hot

термины и определения, используемые Веб-разработчиками
термины и определения, используемые Веб-разработчикамитермины и определения, используемые Веб-разработчиками
термины и определения, используемые Веб-разработчиками
Сергей Савченко
 
Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов)
Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов) Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов)
Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов)
Ontico
 
особенности использования домашних маршрутизаторов
особенности использования домашних маршрутизаторовособенности использования домашних маршрутизаторов
особенности использования домашних маршрутизаторов
Masha Rudnichenko
 

What's hot (13)

Printsipy postroenia seti Internet
Printsipy postroenia seti InternetPrintsipy postroenia seti Internet
Printsipy postroenia seti Internet
 
Xmpp.kz
Xmpp.kzXmpp.kz
Xmpp.kz
 
Основы IP-адресации и маршрутизации. Основы протокола TCP/IP.
Основы IP-адресации и маршрутизации. Основы протокола TCP/IP.Основы IP-адресации и маршрутизации. Основы протокола TCP/IP.
Основы IP-адресации и маршрутизации. Основы протокола TCP/IP.
 
термины и определения, используемые Веб-разработчиками
термины и определения, используемые Веб-разработчикамитермины и определения, используемые Веб-разработчиками
термины и определения, используемые Веб-разработчиками
 
семейство протоколов
семейство протоколовсемейство протоколов
семейство протоколов
 
Сети и системы телекоммуникаций. Протокол TCP
Сети и системы телекоммуникаций. Протокол TCPСети и системы телекоммуникаций. Протокол TCP
Сети и системы телекоммуникаций. Протокол TCP
 
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
 
Dyn DNS story
Dyn DNS storyDyn DNS story
Dyn DNS story
 
Сети и системы телекоммуникаций. Протокол IPv6
Сети и системы телекоммуникаций. Протокол IPv6Сети и системы телекоммуникаций. Протокол IPv6
Сети и системы телекоммуникаций. Протокол IPv6
 
Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов)
Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов) Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов)
Архитектура центра очистки трафика (Александр Лямин, Муслим Меджлумов)
 
Сети и системы телекоммуникаций. Wi-Fi
Сети и системы телекоммуникаций. Wi-FiСети и системы телекоммуникаций. Wi-Fi
Сети и системы телекоммуникаций. Wi-Fi
 
Сети и системы телекоммуникаций. Протоколы маршрутизации
Сети и системы телекоммуникаций. Протоколы маршрутизацииСети и системы телекоммуникаций. Протоколы маршрутизации
Сети и системы телекоммуникаций. Протоколы маршрутизации
 
особенности использования домашних маршрутизаторов
особенности использования домашних маршрутизаторовособенности использования домашних маршрутизаторов
особенности использования домашних маршрутизаторов
 

Viewers also liked

Viewers also liked (9)

Spotfire_8
Spotfire_8Spotfire_8
Spotfire_8
 
DNS-SD Extentions
DNS-SD ExtentionsDNS-SD Extentions
DNS-SD Extentions
 
TIBCO Spotfire Desktop チュートリアル6.5
TIBCO Spotfire Desktop チュートリアル6.5 TIBCO Spotfire Desktop チュートリアル6.5
TIBCO Spotfire Desktop チュートリアル6.5
 
TIBCO Spotfire TERR 統計資料
TIBCO Spotfire TERR 統計資料TIBCO Spotfire TERR 統計資料
TIBCO Spotfire TERR 統計資料
 
Software Testing for Data Scientists
Software Testing for Data ScientistsSoftware Testing for Data Scientists
Software Testing for Data Scientists
 
Software Testing and the R language
Software Testing and the R languageSoftware Testing and the R language
Software Testing and the R language
 
R in BI and Streaming Applications for useR 2016
R in BI and Streaming Applications for useR 2016R in BI and Streaming Applications for useR 2016
R in BI and Streaming Applications for useR 2016
 
SpotfireとTERRの連携
SpotfireとTERRの連携SpotfireとTERRの連携
SpotfireとTERRの連携
 
Tibco mashery資料
Tibco mashery資料Tibco mashery資料
Tibco mashery資料
 

Similar to DNS-SD Extentions - Russian

Установка TrueConf Server.Типовые проблемы.
Установка TrueConf Server.Типовые проблемы.Установка TrueConf Server.Типовые проблемы.
Установка TrueConf Server.Типовые проблемы.
TrueConf
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
Vadim Madison
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINX
Andrii Podanenko
 

Similar to DNS-SD Extentions - Russian (20)

DNS
DNSDNS
DNS
 
TCP
TCPTCP
TCP
 
Новые возможности TrueConf Server 4.3.8
Новые возможности TrueConf Server 4.3.8Новые возможности TrueConf Server 4.3.8
Новые возможности TrueConf Server 4.3.8
 
EMC DATA DOMAIN. Выгоды для заказчика. Сравнение с традиционной системой резе...
EMC DATA DOMAIN. Выгоды для заказчика. Сравнение с традиционной системой резе...EMC DATA DOMAIN. Выгоды для заказчика. Сравнение с традиционной системой резе...
EMC DATA DOMAIN. Выгоды для заказчика. Сравнение с традиционной системой резе...
 
Протокол HTTP
Протокол HTTPПротокол HTTP
Протокол HTTP
 
Flexireg
FlexiregFlexireg
Flexireg
 
Установка TrueConf Server.Типовые проблемы.
Установка TrueConf Server.Типовые проблемы.Установка TrueConf Server.Типовые проблемы.
Установка TrueConf Server.Типовые проблемы.
 
Олександр Хотемський “Обмазываемся контрактными тестами для микросервисов” 
Олександр Хотемський “Обмазываемся контрактными тестами для микросервисов” Олександр Хотемський “Обмазываемся контрактными тестами для микросервисов” 
Олександр Хотемський “Обмазываемся контрактными тестами для микросервисов” 
 
Инфографика о функциях IANA
Инфографика о функциях IANAИнфографика о функциях IANA
Инфографика о функциях IANA
 
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
Оптимизации поисковой выдачи Яндекса / Иван Хватов, Сергей Ляджин (Яндекс)
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Снижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINXСнижение нагрузки на сервер с помощью NGINX
Снижение нагрузки на сервер с помощью NGINX
 
Услуга контактный центр по запросу от CTI
Услуга контактный центр по запросу от CTIУслуга контактный центр по запросу от CTI
Услуга контактный центр по запросу от CTI
 
Технический учет: осознанная необходимость
Технический учет: осознанная необходимостьТехнический учет: осознанная необходимость
Технический учет: осознанная необходимость
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
 
Обзор и последние новости в области инфраструктурных решений видеосвязи Cisco
Обзор и последние новости в области инфраструктурных решений видеосвязи CiscoОбзор и последние новости в области инфраструктурных решений видеосвязи Cisco
Обзор и последние новости в области инфраструктурных решений видеосвязи Cisco
 
архитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложенияархитектура и принципы работы типового Web приложения
архитектура и принципы работы типового Web приложения
 
Унифицированные коммуникации
Унифицированные коммуникацииУнифицированные коммуникации
Унифицированные коммуникации
 

DNS-SD Extentions - Russian

  • 1. РАСШИРЕНИЕ ПРОТОКОЛА ОБНАРУЖЕНИЯ СЕРВИСОВ С ПОМОЩЬЮ ИНФОРМАЦИИ О КОНТЕКСТЕ Студент Нина Бучина Руководитель Pieter J.L. Cuijpers
  • 2. Дано  Беспроводная сенсорная сеть  Сенсоры ограничены в ресурсах  Сервис-ориентированная архитектура  Приложение=взаимодействующие сервисы  Сервисы изолированные, взаимозаменяемые  Один сервис – одно устройство  Автоматическое обнаружение сервисов  Сообщение передаются широковещанием  Большое количество сетевых операций истощает батареи устройств
  • 3. Дано  Беспроводная сенсорная сеть  Сенсоры ограничены в ресурсах  Сервис-ориентированная архитектура  Приложение=взаимодействующие сервисы  Сервисы изолированные, взаимозаменяемые  Один сервис – одно устройство  Автоматическое обнаружение сервисов  Сообщение передаются широковещанием  Большое количество сетевых операций истощает батареи устройств
  • 4. DNS (Domain Name System)  Типы записей: A, MX, PTR, SRV…  PTR: Имя PTR ДругоеИмя  SRV: ИмяСервиса SRV АдресСервиса
  • 5. DNS-SD (DNS-based Service Discovery) _type._protocol.domain PTR ServiceName. _type._protocol.domain ServiceName. _type._protocol.domain SRV service.domain:port
  • 6. DNS-SD (DNS-based Service Discovery) _type._protocol.domain PTR ServiceName. _type._protocol.domain ServiceName. _type._protocol.domain SRV service.domain:port
  • 7. DNS-SD (DNS-based Service Discovery) _type._protocol.domain PTR ServiceName. _type._protocol.domain ServiceName. _type._protocol.domain SRV service.domain:port
  • 8. DNS-SD (DNS-based Service Discovery) _type._protocol.domain PTR ServiceName. _type._protocol.domain ServiceName. _type._protocol.domain SRV service.domain:port
  • 9. Проблема (в DNS-SD) _type._protocol.domain PTR ServiceName. _type._protocol.domain  Три параметра поиска:  Тип сервиса  Протокол  Домен  Множество похожих сервисов в сети => Множество ответов=>Большая нагрузка на сеть
  • 10. Цель  Расширить список параметров для обнаружения сервисов  Лучшая фильтрация  Уменьшение числа ответов и нагрузки на сеть  Дополнительные параметры поиска – контекст сервисов: расположение, состояние, ближайшие объекты, …  Все изменения – в рамках оригинального протокола DNS-SD  Широкая распространённость протокола  Обратная совместимость
  • 11. Контекстные теги  Как закодировать контекст сервиса?  Пример: имеется сервис для сенсора с полной батареей в комнате 10а  Как закодировать требования клиента к сервису?  Пример: нужен сервис сенсора с полной батареей в комнате 10а
  • 12. Контекстные теги  Как закодировать контекст сервиса?  Пример: имеется сервис для сенсора с полной батареей в комнате 10а  Назначить сервису теги: room10a fullBattery  Как закодировать требования клиента к сервису?  Пример: нужен сервис сенсора с полной батареей в комнате 10а  Булево выражение: fullBattery&room10a
  • 13. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a
  • 14. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a  Предложено несколько способов:  Formula in PTR  Tag to PTR  Conjunctions in PTR  Nested combinations
  • 15. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a  Предложено несколько способов:  Formula in PTR  Tag to PTR  Conjunctions in PTR  Nested combinations
  • 16. Схема: Formula in PTR  Хранимые записи: Нет  Запрос: room10a&FullBattery||room2 room10a*fullBattery.room2 PTR? room10a*fullBattery.room2 PTR Service1 room10a*fullBattery.room2 PTR Service2
  • 17. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a  Предложено несколько способов:  Formula in PTR Весь запрос в одном PTR- запросе  Tag to PTR  Conjunctions in PTR  Nested combinations
  • 18. Схема: Tag to PTR  Хранимые записи:  Запрос: room10a&FullBattery||room2 room10a PTR? fullBattery PTR? room2 PTR? room10a PTR Service1 fullBattery PTR Service1 room2 PTR Service2 room10a PTR Service1 fullBattery PTR Service1 room2 PTR Service2 Клиент фильтрует полученные записи на соответствие с формулой самостоятельно!
  • 19. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a  Предложено несколько способов:  Formula in PTR Весь запрос в одном PTR- запросе  Tag to PTR PTR-запись для каждого тега  Conjunctions in PTR  Nested combinations
  • 20. Схема: Conjunctions in PTR  Хранимые записи:  Запрос: room10a&FullBattery||room2 fullBattery.room10a PTR? room2 PTR? fullBattery.room10a PTR Service1 room10a PTR Service1 fullBattery PTR Service1 room2 PTR Service2 fullBattery.room10a PTR Service1 room2 PTR Service2 Фильтрация ответов на клиенте необходима в случае использования отрицания в формуле
  • 21. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a  Предложено несколько способов:  Formula in PTR Весь запрос в одном PTR- запросе  Tag to PTR PTR-запись для каждого тега  Conjunctions in PTR PTR-запись для каждой конъюнкции в формуле  Nested combinations
  • 22. Схема: Nested tags combinations  Хранимые записи:  Указатели на имя, Содержащее все теги сервиса.  Клиент получает имя сервиса, ЛИБО полный контекст этого сервиса.  В последнем случае требуется ещё один DNS запрос для получения имени сервиса. fullBattery.room10a PTR Service1 room10a PTR fullBattery.room10a fullBattery PTR fullBattery.room10a room2 PTR Service2
  • 23. Схемы именования  Как выразить в DNS-сообщениях:  Сервис имеет теги room10a, fullBattery  Запрос сервисов с тегами fullBattery&room10a  Предложено несколько способов:  Formula in PTR Весь запрос в одном PTR- запросе  Tag to PTR PTR-запись для каждого тега  Conjunctions in PTR PTR-запись для каждой конъюнкции в формуле  Nested combinations PTR указывает на полный контекст
  • 24. Количественная оценка схем  Критерии (Нефункциональные требования)  Нагрузка на сеть (меньше-лучше) Метрики: количество DNS-сообщений, размер DNS-сообщений  Объём памяти на хранение контекста (меньше-лучше) Метрики: число байт на хранение контекста  Количество дополнительного кода (меньше-лучше) Метрики: COSMIC  Максимальное количество тегов на сервис (больше-лучше)  Дополнительные операции  Результат оценки: рейтинг  Лучшая схема получает 1 место, следующая – 2е и т.д.  Сумма мест для разных критериев=итоговая оценка (меньше- лучше)
  • 25. Результаты оценки Network 4 3.5 3 2.5 2 1.5 1 0.5 0 Operations Number of tags Memory usage Code amount Formula in PTR Tag to PTR Conjunctions in PTR Nested tags in PTR
  • 26. Реализация  Основа: JmDNS  Библиотека реализующая DNS-SD на Java  Модификации:  Схемы именования  Публикация сервиса с набором тегов  Обнаружение сервиса с нужным контекстом при помощи булевого выражения  Опубликована:  http://dnssdext.net/
  • 27. Результаты Контекстные теги 4 схемы именования Количественная оценка по 5 критериям Реализация

Editor's Notes

  1. Для начала немного о предметной области. Именно в это области (авт обнар сервисов) и лежит моя работа 1 сервис – 1 устройство: почему и как. Пример: сервис для управления умным светильником/камерой/…
  2. Для начала немного о предметной области. Именно в это области (авт обнар сервисов) и лежит моя работа 1 сервис – 1 устройство: почему и как. Пример: сервис для управления умным светильником/камерой/…
  3. Что такое DNS Основная задача – преобразование человекочитаемых имён в адреса серверов для использовния программами, например, имени хоста в IP-адрес Как он работает: Что отправляет клиент, что передаёт сервер Как хранится информация Какие бывают типы записей
  4. Что такое … Автоматическое обнаружение сервисов в сети Например: (принтер) Что ищет клиент и что он получает Мультикаст
  5. Что такое … Автоматическое обнаружение сервисов в сети Например: (принтер) Что ищет клиент и что он получает Мультикаст
  6. Что такое … Автоматическое обнаружение сервисов в сети Например: (принтер) Что ищет клиент и что он получает Мультикаст
  7. Что такое … Автоматическое обнаружение сервисов в сети Например: (принтер) Что ищет клиент и что он получает Мультикаст
  8. Включить контекст устройств в список поисковых параметров, чтобы отвечали только нужные устройства/ответы приходили только на нужные устройства
  9. Как закодировать контекст устройств? (Местоположение, статус батареи, ближайшие объекты…) Как теги. Например, сенсор в комнате 10а с полной батареей –> room10a, fullBattery Как закодировать требования к контексту? (Нужен сенсор с полной батареей и в комнате 10а, или в комнате 20) Как булевы выражения. Картинка
  10. Как закодировать контекст устройств? (Местоположение, статус батареи, ближайшие объекты…) Как теги. Например, сенсор в комнате 10а с полной батареей –> room10a, fullBattery Как закодировать требования к контексту? (Нужен сенсор с полной батареей и в комнате 10а, или в комнате 20) Как булевы выражения. Картинка
  11. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  12. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  13. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  14. Спецификация DNS не говорит нам, каким именно образом обрабатывать запросы. Она говорит, что надо вернуть записи для запрошенного имени, но как именно их хранить? А мы сгенерируем 
  15. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  16. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  17. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  18. Теперь как выразить булевы формулы для реквестов в DNS-запросах? И как обозначить связь тегов с сервисами при помощи DNS-записей? Анимашка… Правильный ответ – несколькими различными способами. Список схем именования
  19. Список критериев и метрик В результате – расстановка схем по местам (ранкинг?)
  20. Диаграммки. Объяснить, что имеет место компромисс между сложностью реализации и всем остальным.
  21. Реализовано на джаве, на основе свободной JmDNS для сервис-дискавери Добавлены все схемы наименования, можно делать запросы сервисов при помощи булевых формул Посмотреть можно на сайте: …