dns-sd extentions - russian

28
РАСШИРЕНИЕ ПРОТОКОЛА ОБНАРУЖЕНИЯ СЕРВИСОВ С ПОМОЩЬЮ ИНФОРМАЦИИ О КОНТЕКСТЕ Студент Нина Бучина Руководитель Pieter J.L. Cuijpers

Upload: nina-buchina

Post on 14-Jul-2015

38 views

Category:

Software


0 download

TRANSCRIPT

РАСШИРЕНИЕ ПРОТОКОЛА ОБНАРУЖЕНИЯ СЕРВИСОВ С ПОМОЩЬЮ ИНФОРМАЦИИ О КОНТЕКСТЕСтудент Нина Бучина

Руководитель 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е и т.д. Сумма мест для разных критериев=итоговая оценка (меньше-

лучше)

Результаты оценки

0

0.5

1

1.5

2

2.5

3

3.5

4

Network

Operations

Code amountMemory usage

Number of tags

Formula in PTR

Tag to PTR

Conjunctions in PTR

Nested tags in PTR

Реализация

Основа: JmDNS

Библиотека реализующая DNS-SD на Java

Модификации:

Схемы именования

Публикация сервиса с набором тегов

Обнаружение сервиса с нужным контекстом при помощи булевого выражения

Опубликована:

http://dnssdext.net/

Результаты

Контекстные теги

4 схемы именования

Количественная оценка по 5 критериям

Реализация

ВиО