Нет связи между источником данных Freeboard для Orion и Context Broker

Я пытался подключить Freeboard для визуализации контекстной информации из OCB, однако столкнулся с трудностями, которые мешают мне получать оттуда какие-либо данные. Я думаю, что есть проблема с подключением Freeboard к OCB, потому что в списке подписки OCB нет новых записей, а источник данных во Freeboard показывает, что он никогда не обновлялся.

То, как я настраиваю источник данных во Freeboard

OCB включен в качестве док-контейнера. Надводные щиты запускаются в Docker Host.

Я попытался установить ip как ip, который я извлек из докера:

    sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' orion1

Он дал мне 172.17.0.3, но на этом он тоже не работал. Я предполагаю, что это не должно быть в любом случае, потому что я могу общаться с OCB по localhost:1026, пока я делаю это через cUrl или Insomnia. Я могу выдвигать новые сущности, обновлять и так далее.

Сервер накопления, который не работал ( ссылка здесь), сейчас работает нормально. Но дело в том, что я сам добавляю подписку и не могу запустить сервер acc на localhost (loopback interface), а скорее на другом доступном интерфейсе, затем добавляю ip этого интерфейса в полезную нагрузку подписки, которую я отправляю в OCB. Может быть, где-то конфликт с Freeboard.

1 ответ

Решение

Проблема здесь была связана с отсутствием поддержки CORS. Простое решение для этого - просто включить функциональность CORS при запуске Orion Context Broker, как описано здесь.

Я провел довольно (на самом деле ненужное) исследование по этой теме и придумал исчерпывающее решение проблемы, которая описана в этом посте на github. Для решения проблемы используется прокси-сервер. Я хотел предложить добавить поддержку CORS в Orion Context Broker, и был приятно удивлен, когда узнал, что она уже реализована.

Есть посты, подобные этому, этому и этому, которые очень помогли в решении дела.

Однако у меня есть два запроса. Я думаю, @fgalan прямо сейчас подходит к тому, что касается серверной части и документации OCB и периферийного программного обеспечения.

  1. Может ли быть более сильный акцент на CORS и доступ к источнику контроля доступа? Причиной этого является то, что он обеспечивает бесшовную связь между OCB и любым внешним приложением или сайтом (например, Freeboard), работающим в интернет-браузере. Это не должно быть настолько скрыто, что я случайно нашел решение для своих проблем, когда искал что-то еще. Я полагаю, помещая это в некоторую документацию прохождения, я не знаю другого видимого места. Проблема в том, что я потратил две недели, пытаясь ее решить, и в конце концов пошел к чрезмерному и ненужному решению, в то время как легкое и доступное было у меня под носом. Хорошо, что у меня хорошее соединение в стеке и git, так что это было решено. Вероятно, есть люди, которые отказались от Freeboard после любой ошибки. И это позор, потому что пока нет лучшего программного обеспечения с открытым исходным кодом для визуализации, чем Freeboard. И проблема не только во Freeboard, как я уже говорил, это касается еще многих интерфейсных приложений и решений. Поскольку мы придерживаемся образа мышления FIWARE, эти вещи должны решаться по-разному.

  2. Плагин источника данных FIWARE для Freeboard на данный момент не стоит ни копейки. Как отметил в комментарии @fgalan, он был разработан для версии Orion Context Broker API версии 1 и не обновлялся. Поэтому это намного сложнее, чем должно быть. Как справедливо указано в документации OCB, подход v1 не совсем похож на REST. После краткого обзора кода плагина OCB для Freeboard я могу сказать, что использовать его не стоит. Насколько я понимаю, он все еще должен работать, потому что OCB позволяет выполнять запрос v1 (но он все равно не работает), этот запрос не рекомендуется. На мой взгляд, должен появиться новый пост по теме (не уверен, к кому мне обратиться по этому поводу), потому что это немного вводит в заблуждение. Какой смысл использовать часть программного обеспечения, которая устарела, и распространять вредные привычки в отношении взаимодействия с OCB?

    Решение для этого на мой взгляд простое. Просто используйте источник данных JSON во Freeboard. Я понимаю мотивацию создания отдельного плагина источника данных для Freeboard в 2015 году, когда не было RESTfull v2-версии OCB API, но есть такая сейчас, так почему бы не использовать ее? Я использовал с тех пор, как избавился от трудностей с CORS, и, на мой взгляд, он работает довольно хорошо. Надводный борт, как я уже говорил ранее, предоставляет большие возможности и прост в настройке и обслуживании. Это не должно быть оставлено так легко.

    Используя запрос GET для полезной нагрузки JSON во Freeboard, теперь у нас есть полный доступ к запросу контекста из OCB. Он не нуждается в каких-либо методах POST, если мы используем Freeboard так, как он должен использоваться (путем запроса данных для визуализации). Бросить в

              ?options=keyValues
    

    к URL запроса, и мы получили действительно умный и компактный способ визуализации данных, поступающих от брокера.

    Я так думаю, это должно быть решено. По моему мнению, последнего обновления по этой теме в 2015 году недостаточно, особенно если бы были разработаны более совершенные методы доступа к контекстным данным из OCB.

Другие вопросы по тегам