IoTとは
IoTとは、「Internet of Things」の略で、「モノのインターネット」という意味です。パソコンやスマートフォン、プリンタなどのIT機器とは別で、家電や工場の装置など、従来はネットワークに接続できなかったあらゆる「モノ」をネットワークに接続し、それらの「モノ」から収集されたデータを活用して新しいサービスや価値を生み出す技術のことである。
2000年代の前半に、ユビキタスネットワークという言葉がよく使われていた。ユビキタスネットワークとは、「いつでも、どこでも、何でも、誰でも」ネットワークにつながることを表す。現代社会では、「いつでも、どこでも、誰でも」インターネットに接続できるようになり、当時の想定にかなり近づいて来ているが、最後に残ったのは「何でも」という部分だけである。この部分を実現するために注目されているのがIoTである。
もともと、ユビキタスネットワークが創起された時には、エアコンや冷蔵庫などの家電製品がネットワークにつながるイメージを抱いていた。しかし、ドイツ政府による「インダストリー4.0」などの影響もあり、IoTはより工業的なイメージが強くなっている。そのため、現在IoTはビッグデータ、機械学習などと組み合わせて語られることが多い。
IoTの基本構成要素
IoTでは、日常の物体にセンサーやソフトウェアを搭載し、インターネットを経由してデータを収集・送信する。以下では、IoTデバイスの主な種類とIoTの通信技術について解説する。
IoTデバイス
IoTデバイスはその用途に応じて多種多様なものがある。代表的なIoTデバイスには、以下のようなものがある。
- センサー
温度、湿度、圧力などの環境データを感知し、リアルタイムで情報を収集・送信するデバイス。
- ウェアラブルデバイス
健康やフィットネスの追跡を目的としたデバイスで、スマートフォンやスマートウォッチなどから心拍数や歩数、睡眠の質といった個人の生体情報を確認するデバイス。
- スマートホームデバイス
照明、暖房、エアコンなどの家庭内設備を、離れた場所から遠隔操作するためのデバイス。
- 産業用センサー
産業向けとして、製造現場の機械の状態を監視し、予防保全や異常・故障の検知、効率的な運用を支援するデバイス。
IoTデバイスでは、組み込まれたセンサーがリアルタイムでデータを収集する機能、収集したデータを無線や有線のインターネット接続を通じて他のデバイスやサーバーに送信する機能、あらかじめ設定された条件に基づいて、自動的に特定のアクションを行う(温度が一定値を超えた場合にエアコンを起動するなど)機能を基本としている。
IoTの通信技術
IoTシステムにおいては、デバイス間およびデバイスとクラウド間での通信が不可欠である。ここでは、IoTの通信を支える主要な技術を説明する。
- Wi-Fi
最も広く使用されている無線通信技術の一つで、家庭やオフィスなどの限定された範囲内で高速なデータ転送を可能にしている。
- Bluetooth (特にBluetooth Low Energy (BLE))
低エネルギーで短距離の通信に適しており、主にウェアラブルデバイスや家庭内デバイスの接続に使用される。
- ZigbeeとZ-Wave
主にスマートホームデバイスのために設計された低エネルギーの無線通信技術。多くのデバイス間でネットワークを形成し、少量のデータを効率良く送信する。
- LPWAN (Low Power Wide Area Network)
広範囲にわたり低消費電力で通信を行うための技術。農業やインフラ管理など、広い範囲をカバーするアプリケーションに最適。
- セルラー通信 (4G/5G)
高速で広範囲の通信が可能で、特に5GはIoTの発展において重要な役割を果たしている。車両の遠隔監視や重工業での用途に適している。
上記のようにさまざまな通信技術が存在するが、IoTシステムにおいて適切な通信技術を選択する際には、デバイスが通信を行う距離範囲や、電力消費、設置・運用コストなどを考慮して適した通信技術を選択する必要がある。
IoTのメリット
現在、IoTは幅広い分野や業界で導入され、私たちの暮らしや社会で役立っている。IoT技術を利用することで、日常生活やビジネスにおいて以下のようなメリットがある。
データ収集と分析
IoTデバイスの最も基本的な機能の一つがデータ収集である。デバイスからは、環境データ、操作データ、ユーザ行動データなど、様々な種類の情報をリアルタイムで収集し、その後の分析の基盤として活用することができる。例えば、収集されたデータからパターンやトレンドを識別して予測モデリングに活用したり、工場の生産ラインの稼働状況の監視、健康状態の把握など、異常や問題が発生した際に迅速に対応したりすることができる。
自動化と制御
IoTのもう一つの重要な機能として、自動化と制御がある。IoTデバイスは、収集したデータを基に、設定された条件やスケジュールに応じて自動的に機器を操作することができる。これにより、照明や暖房システムの自動制御によるエネルギー消費の最適化、製造業などでのプロセスの自動化による生産性の向上、業務効率化などに役立ち、コスト削減にも期待が持てる。
IoTとオープンソースソフトウェア
これまで、デスクトップコンピューティング、データウェアハウス、インターネットセキュリティ、仮想化などITの様々な分野の進化には、特定の製品が大きく係わって来ている。例えば、データベースであればOracleが牽引してきた。仮想化であれば、VMWare社が市場や技術をを牽引してきた。しかし、IoTの分野とそれに隣接するビッグデータの分野では、最初から製品ではなくオープンソースソフトウェアがイノベーションに深く係わっていると言われている。そのため、IoTとオープンソースソフトウェアは切っても切り離すことができない、密接な関係がある。IoTで利用される基盤は、IoTプラットフォームと呼ばれ、次のような要素があると言われている。
IoTエンドポイント
ネットワークにつながるデバイス。
IoTインフラ
IoTエンドポイントをインターネットに接続するための設備。携帯ネットワークや無線ネットワークなど。
IoTネットワークインフラ
インターネットを構成するインフラ。ルーター、セキュリティデバイスなど。
IoTデータ収集プラットフォーム
IoTエンドポイントから収集したデータを保管・蓄積し、管理するための設備。ストレージ、全文検索エンジンなど。
IoTデータ処理プラットフォーム
収集したIoTデータを加工・分析したり、統計処理するための処理基盤。複数のコンピュータを使った並列コンピューティングの仕組みや、クラウド上の高速な計算機資源など。
機械学習プラットフォーム
収集したIoTデータで機械学習を行うための設備。コンテナ型仮想基盤など。
IoTクライアント
集めたデータを分析したり、わかりやすく可視化して表示したりするソフトウェア。
これらのIoTの構成要素のほとんどの分野で、オープンソースソフトウェアが主導的な役割を果たすと考えれている。まず、インターネットのインフラはもっとも古くからオープンソースソフトウェアが使われてきた分野である。また、クラウドでも、今後IoTが伸びていくにあたって、OpenStackなどの仮想基盤技術で、オープンソースソフトウェアが頻繁に使われることが予想される。Amazonなどの各種クラウド基盤も、オープンソースソフトウェアで構成されている。さらに、それに接続するIoTインフラでも、オープンソースソフトウェアの活用は必須である。
反対に、ハードウェア、ファームウェア、アプリケーションの分野では、製品が使われることが多いと考えれている。いずれにしても、オープンソースソフトウェアは、IoTを形成するために欠かせない技術となっている。なお、IoTプラットフォームで活用できるオープンソースソフトウェアについては、以下の記事でまとめている。
IoTデータ解析のためのシステム
IoTデータの活用のために、専用のシステムが必要となる。大量のデータを処理するために、様々なソフトウェアを連携して処理を行うことが多い。
データの収集
IoTのシステムでは、IoTデバイスがデータを自動的にシステムに送信する場合と、システム側からデータを取得する場合がある。特に、IoTデバイスがデータを自動的に送信する場合には、データ収集のシステム側に負荷がかかりやすい。そのため、SquidやHAProxyなどのプロキシソフトウェアを使って受付処理を分散して行う。IoTデバイスと収集システムの間のセキュリティの確保では、LDAPやRADIUSなどの認証システムを利用する。収集したデータが大量な場合には、一度に処理することができない。そのため、データを一度、NoSQLデータベースに蓄積し、そのデータを必要に応じて処理システムに送る方法が取られることが多い。NoSQLデータベースとしては、MongoDB、GridDBなどがよく使われている。また、KVS(Key Value Store)であるmemcachedが使われる場合もある。
データの処理
デバイスから収集したデータの処理では、大量のデータを効率よく処理する必要がある。そのため、コンピュータクラスタを構築し、並列処理が行える環境が必要になることがある。また、処理が非同期に発生する場合には、メッセージキューのシステムが使われることが多い。メッセージキューのオープンソースの実装としては、JBoss Messaging、RabbitMQ、OpenMQなどが知られている。また、並列処理が必要な場合には、オープンソースのクラスタコンピューティングのフレームワークとして、HadoopやSparkなどが利用される。処理データがテキストの場合には、分散処理対応の検索エンジンとしてOpenSearchも使われている。さらに、機械学習の仕組みを使ってデータ処理を行う場合には、ディープラーニングのフレームワークであるTensorFlowなども利用されている。
データの保存
IoTでは、デバイスから送られたデータや、処理済みのデータも膨大な数になる。巨大なハードディスクを用意して、通常のストレージ技術で管理する場合もあるが、最近では柔軟に拡張ができるオブジェクトストレージを使うことが多い。オブジェクトストレージとしては、Amazon S3が有名である。また、Amazon S3互換のオープンソースソフトウェアの実装も多く、OpenStack Swift、Ceph、Minioなどのソフトウェアが利用できる。一方で、リレーショナルデータベース(RDB)は、大量の情報を管理するには適していない。そのため、OpenSearchのような分散処理対応の検索エンジンや、MongoDB、GridDBなどのデータの冗長化が可能なNoSQLデータベースが使われる。
IoTデータの活用
データを処理したら、ユーザーが見えるようにデータをわかりやすく可視化する必要がある。可視化ソフトウェアとしては、ダッシュボードツールのGrafanaや、OpenSearchと連携可能なOpenSearch Dashboardsなどが利用できる。
IoT処理の基盤システム
上記のようなIoTのデータ処理システムを作る場合にはコンテナを活用するのが一般的になりつつある。コンテナ管理インフラとしては、Kubernetesを利用することが多い。
将来展望
IoTは技術的に日々進歩している。例えば、人工知能(AI)を組み込むことでデータをより高速かつ高度に分析したり、機械学習を用いて未然にダウンタイムを削減するための対策を打ったりする例もある。また、近年は5G技術によって高速で大量のデータ転送が可能となったことで、よりリアルタイム性が向上し、かつ多くのデバイスがネットワークに接続され、その管理と運用を効率的に行いやすくなっている。
一方で、IoTの普及に伴い、セキュリティ対策の強化やデータプライバシー保護などの課題も浮かび上がっている。
デージーネットの取り組み
IoT・ビッグデータで必要なコンピュータクラスタを構築するためには、様々なオープンソースソフトウェアを組み合わせる必要がある。デージーネットはオープンソースソフトウェアの専門家として、こうした先進的な分野のインフラ構築、システムの設計・改善などのコンサルティングに取り組んでおり、オープンソースソフトウェアを使ってIoTの仕組みを構築した実績もある。こうした多数のソフトウェアの利用実績を活かし、最適なソフトウェアを選んだソリューションを提案している。例えば、次のような構築・導入事例がある。
- IoTカメラからのデータ収集・管理システム
- IoTデバイスからのデータ収集システム
- IoTデータの受付と認証のシステム
- IoT基盤として利用するKubernetesの構築
- MongoDBとRabbitMQを使ったIoTデータ収集・解析システム
- オブジェクトストレージの作成
デージーネットで構築サービスを提供した場合、導入後支援サービスとして、Open Smart Assistanceを提供している。Open Smart Assistanceでは、導入後も継続して運用し続けることができるように、ソフトウェア単体のサポートではなく、Linuxなどシステム全体に対してサポートを提供している。サポートでは、OSSやソフトウェアの利用方法に関する相談やQ&Aの受付、障害対応、ソフトウェアの脆弱性などのセキュリティ情報の提供を行っている。
【カテゴリ】:ビッグデータ  IoT  
【Webセミナー】Rocket.Chatだけじゃない!OSSビジネスチャットの最新情報
日程: | 12月19日(木)Webセミナー「BigBlueButton」を使用します。 |
内容: | Rocket.Chatの機能制限でお困りの方も必見!ライセンスフリーで利用できるOSSのビジネスチャットを紹介します。 |
ご興味のあるかたはぜひご参加ください。 |
関連用語
- ビッグデータとは
- squidとは
- 認証システムとは
- LDAPとは
- RADIUSとは
- MongoDBとは
- Hadoopとは
- オブジェクトストレージとは
- Minioとは
- 機械学習とは
- TensorFlowとは
- Kubernetesとは
- IoTプラットフォームとは
- OpenSearchとは