Мой блог

Сеть Намерений - технология автоматизации

Каждое устройство существует с какой-то целью. Эту цель можно выразить в виде намерения. Если передать это намерение другому устройству со встречным намерением, то они будут взаимодействовать друг с другом.
Как передать намерение от одного устройства другому устройству?
Это можно сделать через интернет, по радиоканалу, его можно громко прокричать, это может быть серия ударов механическим хвостом.
Каждое устройство в поисках встречных намерений оперирует их множеством и множество это образует сеть.
Если человек становится участником такой сети, то он может управлять устройствами с помощью голоса или жестов.

Техника работающая в такой среде не обязана быть сложной, уметь распознавать голос или жесты, вести осмысленный диалог с пользователем. Совсем наоборот.
Устройство с видеокамерой или микрофоном может передать поток серверу. Сервер в свою очередь распознает голос, жест или человека, который передаст намерение тому, кому оно предназначалось. Для работы с сетью намерений могут быть использованы простые дешевые микроконтроллеры.
Они легко устанавливаются на обычные бытовые приборы.
Участниками сети могут быть как большие аналитические сервера, так и роутеры, кофемашины и торговые автоматы.

Представьте, что у вас есть робот-помощник Виктор и вы хотите, чтобы он принес вам кофе. Он может ездить по дому и оснащен камерой и микрофоном.

  • Вы говорите: "Виктор, сделай мне, пожалуйста кофе."
  • Виктор распознает ваш голос, но он не может сделать кофе. Кофе готовит кофемашина Лаура, которая стоит на кухне на столе. Виктор и Лаура подключены по wi-fi.
  • Виктор создает намерение "Мне нужно кофе". Так как Виктор не может варить кофе, то он начинает передавать это намерение на известные ему хранилища намерений.
  • Если бы Виктор знал Лауру, он бы передал намерение напрямую ей, но Лауру привезли из магазина и достали из коробки только пару часов назад. Поэтому он передает намерение Кэпу
    Кэп - это сервер намерений, который находится в тех. комнате на третьем этаже дома.
  • Когда Лауру включили в розетку и подключили по wi-fi, адрес Кэпа приехал к ней по DHCP. У нее есть вода, кофе, сахар и сливки и она может начать готовить кофе. Тогда Лаура передает Кэпу намерение - "Могу сделать кофе".
  • Кэп обнаруживает встречное намерение "Могу сделать кофе" и знакомит Лауру и Виктора.
    Он отправляет намерение Лауры Виктору со статусом accept.
    Из этого намерения Виктор понимает, что Лаура живет на кухне и получает опознавательный код Лауры. Виктор принимает намерение.
    Кэп отправляет намерение Виктора Лауре со статусом accept.
    Лаура принимает намерение и начинает готовить кофе.
  • Как только кофе готов, Лаура отправляет сообщение со статусом completed для Виктора.
  • Виктор едет на кухню, находит Лауру и кофе по опознавательным кодам.
  • Виктор забирает кофе и везет его вам.
    В следущий раз, когда вы попросите кофе, Виктор попытается обратится прямо к Лауре.

Сеть Намерений

Как это работает

В основе разработки лежит код хранилища намерений. Хранилищем намерений выступает каждое устройство - участник сети. Задача данного кода - прием и трансляция намерений между хранилищами, поиск встречных намерений и процедура согласования, когда встречное намерение найдено. Код хранилища открыт и вы можете ознакомиться с ним здесь https://bitbucket.org/intentionteam/intentionstorage

Намерение - это структурированная запись. Это готовность устройства совершить действие. Намерение может содержать много полей, но главное - это ключ, который состоит из входного и выходного параметра.
Например:
Ты мне деньги - я тебе воду. Образуют намерение money - water
Соответственно встречное намерение - это water - money

Хранилища намерений - это устройства, которые сохраняют, удаляют, индексируют намерения устройств, выполняют поиск и предоставляют авторизованный доступ для самостоятельного поиска. Хранилища намерений - это сервера в интернете, локальные точки доступа и сами устройства. Ссылки на хранилища намерений могут быть жестко прописаны в памяти устройств, могут устанавливаться с настройками dhcp или быть найденными по альтернативным каналам связи.

Согласование. Как только встречное намерение найдено, начинается процесс согласования. Его может инициировать любое из устройств.

  • Оно отправляет второму устройству сообщение со статусом accept.
  • Второе устройство может его принять или отклонить с ошибкой.
  • Если все нормально, то уже второе устройство отправляет сообщение со статусом accept
  • Как только согласование пройдено, между устройствами устанавливается канал передачи данных

На каждое намерение может быть несколько встречных. Устройство само определяет сколько встречных намерений, оно параллельно способно обработать.

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

Отладочная консоль

В общем доступе находится отладочная консоль для работы с сетью намерений. https://intention.tech. К ней можно подключаться, создавать программы, работающие с сетью намерений и отлаживать их. Учебник, для работы с отладочной консолью можно найти по ссылке https://raintech.su/blog/intentions/practice/Intention-Console.html

28 дек.2018