よくある質問・用語集

  • もっと調べる
  • どうやって使う?

IoTとは

IoTは、Internet of Thingsの略。「モノのインターネット」とも言われている。2000年代の前半に、ユビキタスネットワークという言葉がよく使われていた。ユビキタスネットワークは、「いつでも、どこでも、何でも、誰でも」ネットワークにつながることである。現代社会では、「いつでも、どこでも、誰でも」がインターネットに接続できるようになり、当時の想定にかなり近づいて来ている。最後に残ったのは、「何でも」という部分だけである。この部分を実現するために注目されているのがIoTである。 もともと、ユビキタスネットワークが創起された時には、エアコンや冷蔵庫などの家電製品がネットワークにつながるイメージを抱いていた。しかし、IoTは、ドイツ政府による「インダストリー4.0」などの影響もあり、より工業的なイメージが強くなっている。インダストリー4.0とは、工業のデジタル化である。生産工程の効率化、バーチャル化など、よりハイレベルかつ深く自動化を行なうことで、コストの極小化を目指す。IoTは、このインダストリー4.0と切っても切り離せないものと考えられている。そのため、以前に比べて工業的なイメージが強くなっている。 工業的なイメージが強くなった結果、IoTはセンサーに通信機能を持たせ、大量のデータを収集、解析するというイメージが強くなっている。そのため、ビッグデータ機械学習などと組み合わせて語られることが多い。

IoTとオープンソースソフトウェア

これまで、デスクトップコンピューティング、データウェアハウス、インターネットセキュリティ、仮想化などITの様々な分野の進化には、特定の製品が大きく係わって来ている。例えば、データベースであればOracleが牽引してきた。仮想化であれば、VMWare社が市場や技術をを牽引してきた。しかし、IoTの分野とそれに隣接するビッグデータの分野では、最初から製品ではなくオープンソースソフトウェアがイノベーションに深く係わっていると言われている。そのため、IoTとオープンソースソフトウェアは切っても切り離すことができない、密接な関係がある。IoTで利用される基盤は、IoTプラットフォームと呼ばれ、次のような要素があると言われている。

  • IoTエンドポイント〜ネットワークにつながるデバイス
  • IoTインフラ〜IoTエンドポイントをインターネットに接続するための設備。携帯ネットワークや無線ネットワークが想定されることが多い
  • インターネットのインフラ〜インターネットを構成する、ルーター、セキュリティデバイスなどのインフラ
  • クラウド〜IoTエンドポイントから集めたデータの処理を行なうための設備
  • クライアント〜集めたデータを分析、表示するソフトウェア

これらのIoTの構成要素のほとんどの分野で、オープンソースソフトウェアが主導的な役割を果たすと考えれている。まず、インターネットのインフラはもっとも古くからオープンソースソフトウェアが使われてきた分野である。また、クラウドでも、今後IoTが伸びていくにあたって、OpenStackなどの仮想基盤技術で、オープンソースソフトウェアが頻繁に使われることが予想される。Amazonなどのクラウド基盤も、オープンソースソフトウェアで構成されている。さらに、それに接続するIoTインフラでも、オープンソースソフトウェアの活用は必須である。

反対に、ハードウェア、ファームウェア、アプリケーションの分野では、製品が使われることが多いと考えれている。いずれにしても、オープンソースソフトウェアは、IoTを形成するために欠かせない技術となっている。

IoTデータ解析のためのシステム

IoTデータの活用のために、専用のシステムが必要となる。大量のデータを処理するために、様々なソフトウェアを連携して処理を行うことが多い。

IoTデータの収集

IoTのシステムでは、IoTデバイスがデータを自動的にシステムに送信する場合と、システム側からデータを取得する場合がある。特に、IoTデバイスがデータを自動的に送信する場合には、データ収集のシステム側に負荷がかかりやすい。そのため、SquidやHAProxyなどのプロキシソフトウェアを使って受付処理を分散して行う。IoTデバイスと収集システムの間のセキュリティの確保では、LDAPRADIUSなどの認証システムを利用する。収集したデータが大量な場合には、一度に処理することができない。そのため、データを一度、NoSQLデータベースに蓄積し、そのデータを必要に応じて処理システムに送る方法が取られることが多い。NoSQLデータベースとしては、MongoDB、Cassandraなどがよく使われている。また、KVS(Key Value Store)であるmemcachedが使われる場合もある。

IoTデータの処理

IoTデバイスから収集したデータの処理では、大量のデータを効率よく処理する必要がある。そのため、コンピュータクラスタを構築し、並列処理が行える環境が必要になることがある。また、処理が非同期に発生する場合には、メッセージキューのシステムが使われることが多い。メッセージキューのオープンソースの実装としては、JBoss Messaging、RabbitMQ、OpenMQなどが知られている。また、並列処理が必要な場合には、オープンソースのクラスタコンピューティングのフレームワークとして、HadoopやSparkなどが利用される。処理データがテキストの場合には、分散処理対応の検索エンジンとしてElasticSearchも使われている。さらに、機械学習の仕組みを使ってデータ処理を行う場合には、ディープラーニングのフレームワークであるTensorFlowなども利用されている。

IoTデータの保存

IoTデバイスから送られたデータや、処理済みのデータも大量になる。巨大なハードディスクを用意して、通常のストレージ技術で管理する場合もあるが、最近では柔軟に拡張ができるオブジェクトストレージを使うことが多い。オブジェクトストレージとしては、Amazon S3が有名である。また、Amazon S3互換のオープンソースソフトウェアの実装も多く、OpenStack Swift、Ceph、Minioなどのソフトウェアが利用できる。リレーショナルデータベース(RDB)は、IoTデータのような大量の情報を管理するには適していない。そのため、ElasticSearchのような分散処理対応の検索エンジンや、MongoDB、Cassandraなどのデータの冗長化が可能なNoSQLデータベースが使われる。

IoTデータの活用

IoTデータを処理したら、ユーザが見えるように可視化する必要がある。可視化ソフトウェアとしては、ElasticSearchとともに利用されるKibanaが有名である。また、GUIコンソールのソフトウェアであるGrafanaなども利用できる。

IoT処理の基盤システム

上記のようなIoTのデータ処理システムを作る場合にはコンテナを活用するのが一般的になりつつある。コンテナ管理インフラとしては、Kubernetesを利用することが多い。

デージーネットの取り組み

デージーネットでも、IoTの仕組みを構築することが多くなってきた。IoTシステムでは、用途に合わせて適切なソフトウェアを選択する必要がある。デージーネットでは、非常に多くのソフトウェアの利用実績があり、最適なソフトウェアを選んでシステムを構築することができる。例えば、次のような構築の事例がある。

【カテゴリ】:ビッグデータ  IoT  

  • もっと調べる
  • どうやって使う?

【Webセミナー】OSSでリモートデスクトップ環境を構築!セキュリティに配慮したリモートデスクトップ活用例紹介セミナー

日程: 4月12日(金)Webセミナー「BigBlueButton」を使用します。
内容: このセミナーでは、OSSで実現するリモートデスクトップ環境について紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

IoTに関連するページ(事例など)

IoTとは先頭へ