基盤ソフトウェア「FIWARE」(ファイウェア)で蓄積されたデータを、自由に、様々な形式で表示・管理を行うことで、スマートシティを実現するプラットフォーム。
- docker-composeで提供しております。
- docker-compose 1.16.1, docker 20.10.7 をインストール済みのUbuntu 20.04上で動作確認しております。
-
git clone
-
作業ディレクトリに移動
~/StarSeeker$ cd StarSeeker
-
MongoDBとPostgreSQLのユーザ、パスワードおよび地図の初期パラメータ値(緯度、経度、ズーム値)を.envに設定
~/StarSeeker/StarSeeker$ cp _env .env ~/StarSeeker/StarSeeker$ vi .env # MongoDB、PostgreSQLのアカウントと地図の初期パラメータ値を設定
-
Dockerコンテナを展開
~/StarSeeker/StarSeeker$ docker-compose up -d
-
データ管理端末コンテナで使う管理データ格納ディレクトリworkを作成(samplesをコピー)
~/StarSeeker/StarSeeker$ cd operator ~/StarSeeker/StarSeeker/operator$ cp -r samples work
-
管理データ格納ディレクトリにてデータモデルおよびデータを編集(それぞれかわりにcsvを用意してもよい)
- テナント定義: tenant.xlsx
- サービスパス定義: servicepath.xlsx
- データカテゴリ定義: category.xlsx
- 点データセット定義およびデータ: point.xlsx
- 面データセット定義およびデータ: surface.xlsx
-
データ管理端末コンテナに.envを共有しdockerネットワークに追加
~/StarSeeker/StarSeeker/operator$ ln -s ../.env .env ~/StarSeeker/StarSeeker/operator$ docker-compose up -d
-
以下はdocker execにてデータ管理端末コンテナ(op)上にて作業実施
~/StarSeeker/StarSeeker/operator$ docker exec -it op /bin/bash root@op:/work#
-
必要があれば各xlsxファイルからcsvを取り出す
root@op:/work# ./xlsx2csv-all.sh
下記のコマンド例に関して、変数$DSN
と変数$BROKER
はdocker-compose.ymlにて初期設定済み
-
RDB (postgres)にテナント定義を投入
root@op:/work# ss_conductor tenant create tenant.csv # DMLを確認 root@op:/work# ss_conductor tenant create tenant.csv --send $DSN # RDBに投入
-
RDB (postgres)にサービスパス定義を投入
root@op:/work# ss_conductor servicepath create servicepath.csv # DMLを確認 root@op:/work# ss_conductor servicepath create servicepath.csv --send $DSN # RDBに投入
-
RDB (postgres)に地図カテゴリ定義を投入
root@op:/work# ss_conductor category create category.csv # DMLを確認 root@op:/work# ss_conductor category create category.csv --send $DSN # RDBに投入
-
RDB (postgres)に地図データセット定義を投入
root@op:/work# ss_conductor dataset create point.csv # DMLを確認 root@op:/work# ss_conductor dataset create point.csv --send $DSN # RDBに投入
-
データモデルが生成されたことを以下のいずれかで確認(ハンバーガーメニューからデータセット選択可能となる)
- ブラウザで http://Dockerホスト名:3000 に接続
-
データをorionに投入
root@op:/work# ss_conductor data create point_data.csv # メッセージを確認 root@op:/work# ss_conductor data create point_data.csv --send $BROKER # Brokerに投入
-
データが投入されていることを以下のいずれかで確認
-
データ管理用コンテナからorionにクエリを投げる(Dockerホストにはポートを公開していない)
root@op:/work# curl -s http://orion:1026/v2/entities?limit=500 root@op:/work# curl -s http://orion:1026/v2/entities?limit=500 | python -c '\ import pprint;\ import json;\ import sys;\ pprint.pprint(json.loads(sys.stdin.read()))' # 結果を見やすく整形
-
-
フロンエンドサーバに画像をコピー
~/StarSeeker/StarSeeker$ cp operator/samples/img/* site/frontend/public/img
-
フロントエンドサーバにコピーした画像を削除
~/StarSeeker/StarSeeker$ rm site/frontend/public/img/*
-
データをorionから削除
root@op:/work# ss_conductor data delete point_data.csv # メッセージを確認 root@op:/work# ss_conductor data delete point_data.csv --send $BROKER # Brokerに投入
-
RDB (postgres)から地図データセット定義を削除
root@op:/work# ss_conductor dataset delete point.csv # DMLを確認 root@op:/work# ss_conductor dataset delete point.csv --send $DSN # RDBに投入
-
RDB (postgres)から地図カテゴリ定義を削除
root@op:/work# ss_conductor category delete category.csv # DMLを確認 root@op:/work# ss_conductor category delete category.csv --send $DSN # RDBに投入
-
RDB (postgres)からサービスパス定義を削除
root@op:/work# ss_conductor servicepath delete servicepath.csv # DMLを確認 root@op:/work# ss_conductor servicepath delete servicepath.csv --send $DSN # RDBに投入
-
RDB (postgres)からテナント定義を削除
root@op:/work# ss_conductor tenant delete tenant.csv # DMLを確認 root@op:/work# ss_conductor tenant delete tenant.csv --send $DSN # RDBに投入
-
管理DBへの反映方法
ss_conductor
はCSVから管理データベースおよびORIONへのデータ反映をおこなうことができます。詳細はStarSeeker/operatorのドキュメントを参照ください。
-
マルチテナント、サービスパス機能
- ORIONにはマルチテナントおよびエンティティ・サービスパス(サービスパス)という機能があります。StarSeekerでもフロントエンドにて同様の制御をおこなうことができます。
- フロントエンドサーバは、管理DBのテナント(
T_TETNANT
)、サービスパス(T_SERVICE_PATH
)にテナントとサービスパスに登録された組合せに従ってカテゴリ、データセット、データ(Orionから取得)を返します。 - 利用者がブラウザからアクセスしたおきにデフォルトではテナント
NULL
、サービスパスNULL
の情報が表示されます。テナントとサービスパスはhttpヘッダーのfiware-service
とfiware-servicepath
に対応しますが、通常ブラウザの基本機能ではヘッダーを追加できません。したがって、この機能を利用する際には、フロントエンドブラウザの前にリバースプロキシなどを設置し、アクセス先ホスト名に応じてヘッダを追加してStarSeekerに渡すといった工夫が必要になるでしょう。
-
ブラウザから http://Dockerホスト名:3000 でアクセスします。
-
カテゴリの選択
-
データセットの選択
-
詳細情報の表示
-
データ管理用コンテナ、その他のコンテナの順にコンテナを停止
~/StarSeeker/StarSeeker/operator$ docker-compose down ~/StarSeeker/StarSeeker/operator$ cd .. ~/StarSeeker/StarSeeker/$ docker-compose down