前回FIWAREとは何者なのか
なにをしちゃうためのものなのかなんとなく調べました.
① GEという専用の機能を持ったソフトウェア群がある
② NGSIというデータを問い合わせたりする時のインターフェースが決まっている
③ データモデルはNGSIで転送可能なJSONっぽい形式でコンテキストとして保持される
調べ始める前はFIWAREってどんな魔法なのかと思っていましたが
これROSとそっくりなんじゃないでしょうか.
通信のやり方が規格化されているっていう点ではROS2に近いのかも.
ROS→http://wiki.ros.org/move_base
FIWARE→https://fiware-tutorials.readthedocs.io/en/latest/iot-agent/index.html
めちゃめちゃ相性よさそうですね.ROSとFIWAREをつなぐsubscriberとかあったらすごい使いやすそうです
本題
FIWAREはDocker上で動きます(動くらしいです)
私はDocker入れてあるので入れ方は割愛.Docker Composeも使います.
- Windows Docker インストール: https://docs.docker.com/docker-for-windows/
- Mac Docker インストール: https://docs.docker.com/docker-for-mac/
- Linux Docker インストール: https://docs.docker.com/install/
Dockerバージョン18.03以降 && Docker Compose 1.21以降(だそうです)
ではチュートリアルを撫でていきます
Orion ContextBroker GEの起動
https://fiware-tutorials.readthedocs.io/en/latest/getting-started/index.html より
Orionはコンテキストを中継するためのブローカーでGEのひとつ.
(GEはFIWAREを構成する専用の機能を持ったソフトウェア群のこと)
公式チュートリアルいわく,このOrionを使えばそれはもうFIWAREを使ったシステムと
いっていい,というくらいFIWAREの中心に位置する機能
(コンテキストのブローカーなんだからそれもそう)
Orionは,MongoDBをいうオープンソースDBを使うとコンテキスト保持機能を
持たせることができる(内蔵してるわけじゃない)
これら2つの通信はHTTPによって行われる→Dockerコンテナで分けてしまえる
つまり
ここまでのPoint
①Orionはデータを中継するブローカーとしての機能を持っていて
②MangoDBに依存することによってコンテキスト保持機能を備える
③通信はHTTPで開始される
よしやってみよう
わたしの環境
WSL2 Ubuntu
Docker for Windows v20.10.2
コンソール:
PowerShell
① MongoDBコンテナ,Orionのコンテナをそれぞれpullして
HTTPで通信するためにnetworkを組みます
docker pull mongo:4.2
docker pull fiware/orion
docker network create fiware_default
② MongoDB起動!
<これは間違いです>
docker run -d --name=mongo-db --network=fiware_default --expose=27017 mongo:4.2 --bind_ip_all --smallfiles
って書いてあるんですけど,実際にやってみたらコンテナがすぐに動作停止するという
変なことになってて時間消し飛ばしました.
ログをのぞいたらError parsing command line: unrecognised option '--smallfiles'
とのことで,ver:4.2では'--smallfiles'は対応してないんだそうです
公式チュートリアルにプルリク出さなきゃじゃん...
<こっちが正解です>
docker run -d --name=mongo-db --network=fiware_default --expose=27017 mongo:4.2 --bind_ip_all
③ 気を取り直してOrionも起動!
docker run -d --name fiware-orion -h orion --network=fiware_default -p 1026:1026 fiware/orion -dbhost mongo-db
-pと--exposeの違いとか各種意味はご自分でどうぞ(逃げ)
docker compose使う方法も公式チュートリアルに載ってるので
みたいひとはご自分でどうぞ(逃げ逃げ)
docker ps
で,動いてたらたぶんOKですね
FiWARE的HelloWorld
Orionの状態確認
さっき晒したポートにアクセスするとOrionが動いてるか見れるらしいです
curl -X GET 'http://localhost:1026/version'
curl.exe -X GET 'http://localhost:1026/version'
はい!帰ってきました.
次回は
コンテキストをつくります
次回はコチラ→準備中
前回はコチラ→#1 ~ FIWAREってなんぞや?
目次はコチラ→次回はコチラ→#0 ~ これは目次だよん