IoT Gatewayに関するいくつかの考察

  • 2
    いいね
  • 0
    コメント

IoT Gatewayの要件

 IoT Gatewayとはここでは以下のような定義をして、いくつか市場にあるプロダクトを考察したいと思います。

  • IoTの3階層アーキテクチャの中でIoT Deviceを集約し、EdgeのGatewayとしてDatacenterと通信を行うハードウェアやソフトウェアのこと。
  • IoTの3階層アーキテクチャとは、IoT Device (Edge Device)、Iot Gateway (Edge Gateway / Smart Gateway)、IoT Service (Datacenter / Backend Service)のこと。

  • 主な要件

    • リモートからIoT Gatewayにアクセスできる
    • アプリの更新、ファームウェアの更新、監視や診断ができる
    • センサーやマイコンなどEdge DeviceをGPIOや様々な無線規格で接続してインターネットにつなげることができる

Eclipse Kura

 OSGiという歴史のあるコンテナをベースにしたJavaのソフトウェアです。いまさらOSGi?という感じはしますが、Eclipse IoTでも中核を担い、現時点では本命だと思います。EurotechRed Hatが中心になり開発を進めています。最近ではApache Camelの統合や、BackendのEclipse Kapuaとの連携など非常に開発が活発になっています。

DeviceHive

 DeviceHiveDataArtOSSで開発をしているソフトウェアです。AllJoynに準拠しD-BusにBackendのサービスを接続できる興味深いアーキテクチャだったのですが、いろいろあったみたいでAllJoynの開発は止まっています。現在ではIoT GatewayはシンプルなPythonやJavaのクライアントになっています。

Resin.io

 Resin.ioは、EtcherというSDカードやUSBメモリにイメージを焼くツールの開発元としても有名です。次にご紹介するAGILE IoTにも参加していますが、Raspberry Pi 2などARMv7で動作するDockerイメージを開発しています。How it worksがわかりやすいですが、DockerをインストールしたカスタムのYoctoベースのOSをクラウド上でビルドして手元のSDカードに焼くことができます。アプリのインストールはDockerを使うので、Ubuntu Coresnapsに近い感じです。

AGILE IoT

 AGILE IoTはユーロのHorizon2020プログラムに参加しています。開発が始まったばかりですがロードマップが提示され2018年末頃にはBackendの実装も予定されています。KuraのOSGiと違い言語非依存で、 D-BusとDocker/Snappyをプラガマブルなアーキテクチャが特徴です。Eclipse IoTにもEclipse Agilis IoT Gatewayとしてproposalを提出しています。

IoTivity

 Thread Group提携AllSeen統合したOCFが前身のOICから継続してIoTivityを採用しています。IoT規格がOCFに統一された形となり、おそらくIoT標準になるのだと思いますが、仕様が大きすぎて追いつけません。

Linaro LITE

 Linaro IoT and Embedded (LITE) Segment Groupです。ARM陣営のLinaroがIoTの3階層アーキテクチャのリファレンスを2016年12月を目標に策定しようとしています。Edge DeviceはZephyr、IoT GatewayはUbuntu Core、BackendはRHELベースらしいです。

Ubuntu Core

 snapsは新しいパッケージフォーマットとしてUbuntu Coreの他にArch Linux やDebianなどでも利用できます。Dockerコンテナのようにアプリを配布できます。Dell Edge Gateway 5000DeviceHiveIoTivityKaaLITEAGILE IoTなどのIoT Gatewayで採用しています。だだしUbuntu 16.04ではsnappyコマンドではsnapパッケージをビルドできなくなり、snapcraftのsnapコマンドを使います。そのためまだ古いコマンドを使っているIoT Gatewayのソフトウェアは対応OSのバージョンの確認が必要になります。