IoTはソフトウェア開発者にとってデバイスのAPI
IoTとは?
IoT(Internet of Things:モノのインターネット)は、ここ数年脚光を浴びているキーワードですが、その定義はさまざまです。「IoTって何ですか?」と20人に聞けば、異なる20の答えが返ってくるでしょう。

ソフトウェア開発者にとってのIoTは、API(Application Programming Interface)です。開発者が、デバイスとやりとりできるAPIが用意されるということに意義があります。
体重計、時計、フォークリフト、自動車、血圧計、サーモスタッドなど、これらがそれぞれAPIを持つことで、開発者はそこから情報を得たり、制御したりできるようになるのです。

では、IoTを活用したシステムは、どのようなデータの流れになるのでしょうか?
インテリジェントなデータ処理が必要
IoTデバイスは、インターネットを通じてデータのやり取りを行います。これらのデータはすべてクラウドに置くべきだという考えを提唱している人もいます。このようなクラウドモデルを提唱する企業は、従量課金制を適用しているケースが多いので、クラウドをもっと使ってほしいというモデルになるのは当然です。
しかし、開発者の立場としては、もっとインテリジェントにデータを処理できると考えるべきです。

例えば、室温を管理するIoTソリューションがあったとします。室温が毎秒取得できるからといって、これをすべてクラウドに保管したくはないでしょう。しかし、急激な温度変化には対応できなければなりません。そうすると、データを解釈できるようなアプリケーションを、データソースのすぐ近くに構築することが求められるのです。
IoTをデバイスとデータを収集/分析するクラウドという視点だけで見るのではなく、デバイスの近くでデバイスを制御するアプリケーションを加えて考えると、より大きな価値を提供できることに気が付くはずです。