Система адресации в IRC-IoT состоит из двух уровней:
Адресация определяемая протоколом
IRC.
Адресация протокола
IRC-IoT.
Адресация IRC. Роботы подключенные к IRC-IoT сети могут находится одновременно на ряде IRC каналов, публично обмениваясь там информацией с другими роботами. Название этих каналов (IRC Channel Name), по сути, может определять один из логических уровней адресации IRC-IoT. Данный механизм, прежде всего, разделят передаваемую информацию на отдельные логические домены, позволяя получать её только «подписчикам соответствующей темы», по аналогии с протоколом MQTT.
Например,
IRC каналы могут называться так:
#Berdsk | – | канал для обмена IoT информацией по городу Бердск |
#weather | – | канал для публикации прогнозов погоды и показаний метеостанций |
#kv55 | – | канал для обмена информацией IoT вещей в квартире № 55 |
#elevator | – | канал для публикации телеметрической информации лифтовых контроллеров |
Другим уровнем адресации в рамках
IRC протокола, может быть имя самого робота (
IRC-IoT Bot
NickName). Роботам могут даваться имена с номерами квартир, домов, серверов, целых центров обработки данных, всё зависит от модели разработанной интегратором проекта, в котором используется протокол
IRC-IoT. Имя робота может быть зарезервировано за конкретным собственником, например, за его сервером. Для этого в
IRC-IoT сети создается специальный сетевой сервис (
NickServ), которая при помощи пароля или сетевой маски ограничивает использование имени (NickName) конкретным роботом. В
IRC сети роботы могут посылать приватные сообщения (
PRIVMSG) друг другу, тем даже не находясь ни на одном
IRC канале. Но в любом случае на данном уровне возникает связка: NickName-отправителя - NickName-получателя, определяющая данную адресацию.
Использование логической
IRC адресации, с применением разных Channel Name и NickName естественным образом снижает широковещательный домен распространения информации, и снижает нагрузку на отдельные элементы
IRC-IoT сети. Помимо этого, использование логической
IRC адресации позволяет выстроить дополнительный уровень безопасности, ограничивая доступ к информации при помощи закрытых
IRC-каналов и приватных сообщений (PRIVMSG) между участниками сети. При построении небольших систем, например в рамках одного дома, применение расширенной адресации
IRC-IoT внутри протокола может вовсе не потребоваться. Вполне достаточно будет средств, предоставляемых протоколом
IRC.
Адресация IRC-IoT. На каждом из уровней инкапсуляции вложенных друг в друга объектов
IRC-IoT, будь то «Container», «Object», либо «Datum», существует два адресных поля:
Каждый из вышестоящих объектов, если в нём заданны данные поля, определяет
рабочую область (SCOPE) для нижестоящих объектов. А полный
эффективный адрес в
IRC-IoT
адресации формируется путём последовательного «склеивания» соответствующий
полей «dst» (либо «src») объектов разных логических
уровней в одном сообщении
IRC-IoT.
Например, из цепочки объектов, определяемых следующим
IRC-IoT
сообщением:
{"mid": 123,"dst": "/@BERDSK", "o": {"oid": 345, "dst": "/@LELYUHA", "d": {"did": 567, "dst": "/RASPBERRY@KV55"}}}
можно выделить эффективный IRC-IoT адрес получателя (effective IRC-IoT destination address):
"/@BERDSK/@LELYUHA/RASPBERRY@KV55"
В данном примере, рабочая область уровня «Container»,
будет: "/@BERDSK", а
уровня «Object»: "/@BERDSK/@LELYUHA".
Концепция двухмерного адреса
IRC-IoT
Адрес в
IRC-IoT
сообщениях сформирован следующим образом:
Отдельная адресная ячейка разделена на две части символом «@»:
«
логическая часть
адреса@географическая часть адреса»
Если известно только логическое название адресуемого объекта, то
адресная ячейка имеет вид:
«
кодовый идентификатор
логического объекта»
Если известен только физический адрес размещения объекта, то адресная
ячейка имеет вид:
«
@кодовый
идентификатор физического адреса размещения»
Полный эффективный
IRC-IoT адрес
имеет следующий вид цепочки взаимосвязанных адресных ячеек:
«
/адресная
ячейка/адресная ячейка/адресная
ячейка ... и т.д. ... »
Таким образом, в эффективном адресе может быть закодирован полный
путь агрегации, а так же часть маршрутной информации для системы
работающей с сетью
IRC-IoT.
В комбинации с возможностями протокола
IRC,
механизмом (SCOPE), и сервисами разрешения имён это позволяет строить разнообразные
модели не пересекающейся адресаций для отдельных элементов Интернета вещей.
© 2018–2020 Алексей Воронов, Все права защищены.