LoginSignup
2
4

More than 3 years have passed since last update.

無知から学ぶFIWARE #2 ~ GEをひとつ動かしてみる

Last updated at Posted at 2021-01-17

前回FIWAREとは何者なのか
なにをしちゃうためのものなのかなんとなく調べました.

① GEという専用の機能を持ったソフトウェア群がある
② NGSIというデータを問い合わせたりする時のインターフェースが決まっている
③ データモデルはNGSIで転送可能なJSONっぽい形式でコンテキストとして保持される

調べ始める前はFIWAREってどんな魔法なのかと思っていましたが
これROSとそっくりなんじゃないでしょうか.
通信のやり方が規格化されているっていう点ではROS2に近いのかも.

ROS→http://wiki.ros.org/move_base
20170208075021.png

FIWARE→https://fiware-tutorials.readthedocs.io/en/latest/iot-agent/index.html
architecture.png

めちゃめちゃ相性よさそうですね.ROSとFIWAREをつなぐsubscriberとかあったらすごい使いやすそうです

本題

FIWAREはDocker上で動きます(動くらしいです)
私はDocker入れてあるので入れ方は割愛.Docker Composeも使います.

Dockerバージョン18.03以降 && Docker Compose 1.21以降(だそうです)

ではチュートリアルを撫でていきます

Orion ContextBroker GEの起動

architecture.png
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'

スクリーンショット 2021-01-17 170626.png
んあ
あー
こうしましょう

curl.exe -X GET 'http://localhost:1026/version'

スクリーンショット 2021-01-17 173245.png

はい!帰ってきました.

次回は

コンテキストをつくります

次回はコチラ→準備中
前回はコチラ→#1 ~ FIWAREってなんぞや?
目次はコチラ→次回はコチラ→#0 ~ これは目次だよん

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4