インターン先の会社さんからFIWAREなるものがあるので
いじってみてチュートリアルっぽいものを書いてみてくれという
ミッションを与えられたwaarrkです.どうも.
まず謝罪
正直まだよくわかってません.めっちゃ間違ってると思います.
これからぽちぽちと進めていって,間違ってたら直します
間違ってたら教えてください.
調べる前のなんとなくのイメージ
なんかIoT関連のデータ形式?なのかクラウドサービス?なのか
バスでいうGTFSみたいな感じのやつ??よね?
検索はたぶんすべてを解決する
と,思ったのですが専用の用語と横文字が多くて日本語のドキュメントも
英語のドキュメントも何を言ってるのかよくわかりません.
読解力がたりません.がんばりましょう.
FIWARE is an open source initiative defining a universal set of standards for context data management which facilitate the development of Smart Solutions for different domains such as Smart Cities, Smart Industry, Smart Agrifood, and Smart Energy.
https://www.fiware.org/developers/
おん?どゆことだ?
FIWAREはなぜ作られたのか?
- IoTすごいねでスマートシティが流行りそう →ふむ
- 使いやすくするには共通データ形式が必要 →そうやね
- 一言にスマートシティて言っても目的さまざまだから形式もクソもない →確かに
- そこで基盤APIの「FIWARE」欧州でつくられたよ →なるほどなるほど
じゃあFIWAREはどうやって目的さまざまのデータを管理するのか
- まずGeneric Enabler(GE)なるものが存在する
GEは専用の機能を持ったソフトウェアのことで,
データ管理したり履歴を見たり解析をしたり,とにかくいっぱい種類があって
適切なものを使うことでデータ取得とか解析とかごにょごにょできるます(たぶん).
- 次にNGSIというものの存在を理解する
NGSIはOpen Mobile Allianceなる団体によって標準化された次世代インターフェース
インターフェースなので,USB的なあるものにアクセスする規格的なフォーマットのことですね
NGSIには14の規格がある.そのうちFIWAREで使うのは2つ.
- NGSI-10: データの中身を問い合わせるときに使う(オフィスの室温は?とか)
-
NGSI-9:データの場所を問い合わせるときに使う(オフィスの室温はどのセンサ?的な)
また,すべてのGEはNGSIに対応するよう作られているわけですね
ちなみにNGSIにはいくつかバージョンがあり
- NGSI v1: OMAが最初に作ったオリジナル
- NGSI v2: v1の改良版 仮想的なモノ→それが持つ情報→付加的情報 という三段階で階層化する
- NGSI LD: v2の双子みたいなやつ?メタを使った階層的なデータ構造ではなく,Entityから各データを参照しに行くプロパティとの関係を記述することでデータを成す(たぶん)Linkd Dataの頭文字
じゃあ初めてFIWAREを使う人間はどのバージョンを使うとよいのか?
まず明らかにv1 < v2なのはわかる.
v2 と LDはそもそも設計思想が違うので一概にどちらが優れているわけではなさそう
つまるところv2では付加情報(メタデータ)がないと
検索性やデータの横のつながりに優れないのでメタデータを省く代わりに
モノとその情報の関係性を記述してさらにモノとモノの関係性も記述できるようにしたと(よね?)
でもv2のほうが直感的で情報量も多いということでございますね.
きめました.とりあえずv2がいいと思います(逃げ腰)
v2公式チュートリアル→ https://fiware-tutorials.readthedocs.io/en/latest/
LDチュートリアル→ https://ngsi-ld-tutorials.readthedocs.io/en/latest/
- コンテキストは情報を保持するデータモデル
FIWAREについて調べていると,いやでもcontextという単語が目に入ります.
コンテキストというのはずばりモノの状態の情報のこと
つまりFIWAREを使う我々が一番やりとりしたいもの
これはNGSI規格でやりとりされるので,NGSIのフォーマット形式になっている
具体的にはJSONのNGSIによって拡張された規格で保存されると.
私はさっきとりあえずNGSI v2を使ってみることに決めたので,コンテキストはそれにのっとり
Entity(仮想的なモノ)→ Attribute(それが持つ情報)→ MetaData(付加情報)という
3段階でJSONっぽいのが記述されるわけですね.(だんだんわかってきました)
ここまでのPoint
① GEという専用の機能を持ったソフトウェア群がある
② NGSIというデータを問い合わせたりする時のインターフェースが決まっている
③ データモデルはNGSIで転送可能なJSONっぽい形式でコンテキストとして保持される
概要はわかったので
次回 #2 では実際にチュートリアルを動かしてコンテキスト管理をやってみたいと思います
v2公式チュートリアル→ https://fiware-tutorials.readthedocs.io/en/latest/
次回はコチラ→#2 ~ GEをひとつ動かしてみる
目次はコチラ→次回はコチラ→#0 ~ これは目次だよん