IoT関連の書籍の中では
トップクラスに評価が高かった本。
その理由は、IoTを実際に行うために知る必要がある項目1つずつに対して丁寧な解説があり、その全体像も知ることができる。
また他の本には無い具体的な実践内容(Raspberry Pi※でセンサで得た情報をクラウドに送るなど)まで説明されているからでした。
IoTシステムの複雑な全体像をひもとく情報満載!
と表紙に謳うだけのことはあります。
Raspberry Pi:一言で言うと、ちっちゃいパソコンみたいな優れたもの。ざっくり過ぎですが。。。)
つまり、この本は、
大きな視点(鳥の目)と小さな視点(虫の目)、そしてその流れを見る視点(魚の目)でIoTの基本について網羅されています。だから売れているんだと読んで納得です!
IoTエンジニアになるには
「センサデバイス」
「ネットワーク」
「クラウド」
「アプリケーション」の分野を知る必要があり、
それらを包括する形で
「セキュリティ」の分野も知る必要があります。
えっ!そんなにたくさん学ぶ時間が無いよ~と思ってしまった私。でも自分で全てできる人は少ない。
でも全体を網羅的に把握して流れやポイントを理解している人も少ない
というのも現実。そんな貴重な存在になるにはもってこいの本でした。
自分でできなくても、それらについて関係性やポイントとなる技術・知識があれば、IoT化のプロジェクトマネジメント、プロジェクトリーダーになれます。それぞれの専門分野はそれぞれの専門家に任せれば良いのですから。
これからのインダストリー4.0時代を生きていくビジネスマンの方、特にIoTやAIやプログラム、クラウドなどに興味がある方は、是非一読していただきたい一冊です。
↓↓AIやクラウド、IoT初心者の方はこちらもおススメです↓↓
まずはIoTってどんなものか?どんな知識や技術が必要か?
ザックリ見ていきます。
・モノをIoT化して、それを利用することで利益を上げる、と言葉で書くのは簡単ですが、多くのトライアンドエラー(試行錯誤)が必要となる。
例えば、トイレにあるハンドソープの残量がわかるようなベンディングマシンを考えてみる。
・ハンドソープがある一定量を切ったら、設置者に対してお知らせをしたり、自動的にハンドソープを届けるような仕組みが作れる。
設置者は、トイレの利用者へのサービス向上となる。定期的な残量点検の工数を削減できる。ハンドソープのメーカーとしては、こういった付加価値サービスを提供することで、設置者が別のハンドソープメーカーに乗り換えることを防ぐことができる可能性がある。
また定期的にハンドソープを発注してくれる仕組みを作れば、設置者としては囲い込みがしやすくなる可能性もある。
しかし、ここで実際 こういったIoT化するにはまず何を考えないといけないでしょうか。
・どのようなデータをサーバに持っていくのか
→取得するデータをどのようにサーバに持っていくのか
・データをどのようにサーバに持っていくのか
→どのような通信回線を使うのか
→どのような通信プロトコルを使うのか
プロトコル:コンピューター同士で通信するときのお約束や規格のこと
・データを受け取る側をどのように構築するのか
→サーバやディスクの容量はどうするのか
→デバイスからどのようにデータを受け取るのか
・自動発注の仕組みをどう作るのか
→自動発注するタイミングをどのようにするか
→受発注のためのシステムをどう作るか
・電源をどうするのか
→バッテリーが必要な場合は、どのぐらいの間隔で交換が必要か
・耐候性、耐水性、動作温度などハードウェアのスペックをどうするか
・運用保守をどのように行うのか・・・
ざっくりでもこれだけのことは最低考えないといけない・・・。大変だ。
でも大丈夫。大変だからこそ こういった本が売れている。同じ人間が読んでできているから、天才じゃなくてもやればできる!
・また、単にハンドソープが切れることをお知らせするだけでなく、さらに新しい利益を得ようとすると、例えば次のような取り組みが考えられます。
・データを取り続けることで、どのぐらいの速度でハンドソープが消費されるのかがわかる。
→次にいつ頃切れるのかを分析し、そのデータを集積して受給予測や生産計画に活かす
・ハンドソープの残量以外の情報も取得して、製品開発に活かす
→ハンドソープの利用料を取り、1回の利用料はどの程度が適切なのか分析する
→設置場所や男女差、温度や湿度を取ることで相関(関係性の強さなど)を見る
・ベンディングマシンからデータが取得できることを利用して、他のビジネスを考える。
→例えばトイレの空き情報も取得し可視化できるようにして、テナントのトイレの混雑解消や、高速道路や鉄道などのサービスとの連携がでいるようなソリューションを作る。
・似たような仕組みが適用できる企業に、ノウハウを販売する
→例えばウォーターサーバやコピー機などの業種に仕組みを提供する
(実際にそういうサービスをおこなっているウォーターサーバの会社があります)
●それでは、まず全体像を見てみましょう。
上の絵のように、IoTシステムでは、大きくわけて「センサデバイス」「ネットワーク」「クラウド」「アプリケーション」のセグメントがあります。またそれら全体を包むかたちで「セキュリティ」のセグメントがある。
では、各セグメントについて見ていきましょう。
★センサデバイス
物理世界につながって、実際のデータを取得したり、クラウドからのフィードバックを受けてモーターやポンプ、LEDなど、物理世界で稼働するモノ(アクチュエーター)を動作させたりする。
センサで取得できる情報はたくさんありますが、例えば下記のようなものがある。
・位置情報(GPS)
・光量/色・重量/体積/密度
・磁力・圧力/衝撃力
・電流/電圧・加速度/角速度
・温度/湿度
・方向/距離
・成分量・画像/動画・流量 などなど。
センサは、I2CやGPIOといったインタフェースでデバイスに接続される。
デバイスはセンサからデータを受け取り、ネットワークを経由してサーバと通信を行う。このためデバイスには演算能力とネットワーク接続が必要となる。
I2C:Inter-integrated Circuitの略。センサとデバイスを結ぶシリアル通信用のインタフェース。Raspberry Piがデバイスとすると、Raspberry Piとつなぐ温度センサなどがまさにセンサ。
GPIO:General Purpose Input Outputの略。デジタル信号と
●センサデバイスを選ぶ時のポイント
デバイスでどの程度処理が必要なのか、またどのような環境で動作させるのかを考えるのが重要。デバイスは処理性能や耐候性により、物理的なサイズや消費電力、価格が変わってくるから。
耐候性:気候の変化への耐性のこと
●ゲートウェイの位置づけ
センサデバイスを配置する場合に「ゲートウェイ」と呼ばれる装置を用いることがある。上のセンサデバイスの絵からもわかるように、ゲートウェイには多くのデバイスがぶら下がるような構成をとる。ゲートウェイは、デバイスに対してネットワークへのコネクティビティ(相互接続性)を提供する。
オフィスからインターネットなどの外部ネットワークと接続する場合は、ゲートウェイとしてルーターがよく使われますが、ルーターは主に通信に特化して、ルーティングやパケットのフィルタリングのような処理をおこなっている。
これに対して、IoTで用いられるゲートウェイは、単に通信を集約して中継するだけでなく、データを集積したり、加工したりして、ゲートウェイにぶら下がるデバイスの処理能力を補うようなことも行う。
・エッジコンピューティング/フォグコンピューティング
このゲートウェイにより高い演算能力をもたせ、デバイスの近くで大量のデータ処理を行う「エッジコンピューティング」や「フォグコンピューティング」とよばれるアーキテクチャが利用される場合もある。
アーキテクチャ:コンピュータシステムの構造 論理的な構造のこと
センサデバイスからの情報をもとに、リアルタイムに高度な演算をしたい場合や、周囲のデバイスと協調して低遅延でデータ交換をしたい場合などに使われる。
とにかく
センサデバイスについては、まずは物理的な制約(サイズや電源、耐候性など)への考慮が必要。
★ネットワーク
IoTシステムでは、デバイスとクラウドをネットワークで接続する。
ネットワークには様々な規格やプロトコルがあり、利用するデバイスや場所、データ量などによりどの技術を利用するか検討する必要がある。
プロトコル:コンピュータ同士で通信するときのお約束や手順のこと
↑↑各層でIoTによく利用される要素技術↑↑
なんかたくさんあり過ぎてしんどいですが、覚える必要はないです。社会人はカンニングオッケー。必要なときに知ればいい!!
例えば「WIFI」や「Bluetooth」といった呼ばれ方をする通信規格は、各層で利用する技術が規定されたものになる。例えば「WIFI」であれば、5GHzもしくは、2.4GHzの無線、Ethernet、IP、TCPなどが各層の機能が用いられる。
またWIFIでWebサイトにアクセスする場合は、これらの要素に加えて、セッション層やアプリケーション層のプロトコルとしてTLSやHTTPが用いられる。
ネットワークは物理的な接続から、アプリケーション間のデータ受け渡しのプロトコルまで定義が幅広く、またデバイス間、デバイス-ゲートウェイ間、ゲートウェイ-クラウド間、クラウド間など、場所により最適な技術は異なるため、全てを網羅して詳細をを把握することはけっこう時間がかかる。
だからこそ、必要なときに1つずつ理解して、利用できるようになれば無敵!かも。
・クラウドへの接続方法
大きく分けて、①直接クラウドに接続する方法と、②ゲートウェイ経由で接続する方法がある。
①デバイスを直接クラウドに接続する
デバイスから直接クラウドに接続する場合は、通常は3G/LTEのセルラー通信が利用される。
ヨシッ、聞いたことある!
通信するためには、3G/LTEに対応した通信モジュールと、通信キャリアから提供されるSIM(Subscriber Identity Module)が必要。
通信モジュール:製品に組み込むことで、その位置情報や稼働状況がわかる小型の高速通信端末などのこと。
セルラー通信は暗号化などで安全に通信できます。が、しかし、通信キャリアからクラウドへの接続は、通常はインターネットが利用される。このため、通信キャリアかとクラウド間の通信については、何らかの形で通信の安全性を担保する必要がある。
この方法にはいくつか種類がある。
例えばTLSなどの暗号化をしたり、VPN接続を行うなどの方法。
②デバイスをゲートウェイ経由で接続する
このゲートウェイってエッジPC(センサデバイスの近く、現場に置いておくPC)でいける!?)
デバイスから直接クラウドに接続せず、ゲートウェイを経由する方法。ゲートウェイは先ほど書いたように、デバイスの通信を中継して、クラウドへ接続する役割を担う。
デバイスとゲートウェイの接続を考えた場合、大きく分けて2種類(AとB)に分けられる。
A:物理線接続
B:無線接続
A:物理線接続は、デバイスとゲートウェイと物理線(ケーブル)で接続する方法。多くの場合、いわゆるLANケーブルを使ったEthernet接続が用いられる。
高速で安定した通信や安価であることが利点。
但し物理的な制約が多くなる。まずデバイスにケーブル接続するための物理ポートを設ける必要があるため、小型のデバイスには不向き。またケーブルがあるため移動するデバイスには利用できない。
一番大きい問題はゲートウェイからデバイスまでの配線が必要になることで、特にケーブルを屋内に配線する作業負担が大きいのと、屋外や工場などでは敷設が難しい場合がある。
B:無線接続は、デバイスとゲートウェイを無線で接続する方法。ケーブルの制約に縛られないことが大きな特徴。
デメリットは、無線接続は周波数やプロトコルにより多くの規格があり、それぞれ特徴が異なる。このためIoTシステムに求められる要件により、適切な規格を利用することが重要。
例えば次のような規格がある。
・RFID
・Bluetooth Low Energy(BLE)
・WIFI
・ZigBee
・Z-Wave
・LoRaWAN
・SigFox
詳細は割愛しますが、規格ごとに次のような項目に特徴がある。
・通信速度
・通信距離
・通信方向(双方向/一方向)
・消費電力
WIFI → 通信速度速くて双方向通信可能、だが通信距離は数十mにとどまる。
BLE → WIFIより通信速度遅くて通信距離も短い、だが低消費電力で通信可能。
LPWAN(Low Power Wide Area Network)のカテゴリ通信、
例えばLoRaWANは、通信速度は遅いが、通信距離は数キロにも及ぶ。また消費電力も少なく、乾電池1本で数年間動作させることも可能。
・ゲートウェイからクラウドへの接続
エッジPCからクラウド?!?
ゲートウェイからクラウドへは、大きく分けて次の3つが用いられる。
①ISP経由のインターネット接続
②専用線/WAN経由の閉域網接続
③通信キャリア経由の接続
ISP: Internet Services Provider(インターネット サービス プロバイダー)ニフティやソネット、ビッグローブなどが大手のISP。インターネットへの接続を提供するサービスを提供している。
①ISP経由のインターネット接続は、安価にクラウドに接続できるため、多く用いられる方法。ISPまではフレッツ光のような光ファイバーのネットワーク接続サービスなどで接続を行う。
ゲートウェイからISPへの接続を行うために、光ファイバーなどの物理線を利用するため、ゲートウェイ自体の設置場所まで配線工事を行う必要がある。
またこの接続の場合、ゲートウェイからクラウドの間はインターネットを経由するため、セキュリティについて考慮する必要がある。デバイス自体、もしくはゲートウェイの部分での暗号化が必要となる。
但し、ゲートウェイを利用する場合、ゲートウェイ自体が高い演算能力を持っているケースが多く、またゲートウェイ自体が IPsec や SSL-VPN など、ゲートウェイ経由の通信の安全性を高める仕組みを備えている場合も多い為、こういった機能を併用するケースも多くある。
IPsec:「Security Architecture for Internet Protocol」の略。IPsecは、暗号技術を使ってIPパケットの完全性や機密性を実現する仕組み。
SSL-VPN:SSL(Secure Sockets Layer)技術を使用したVPNソリューション。VPN接続をする2点間をSSL
②専用線/WAN経由の閉域網接続の場合は、ISPの代わりに、専用線接続サービスやWANサービスを利用して、インターネットを経由せずにクラウドまで接続する。
ISP経由のインターネット接続に比べて、回線費用が高価であることがほとんど。費用対効果を考えるとIoTでは利用しにくい接続方法と言える。
③通信キャリア経由の接続は、デバイスからの直接接続で説明したのと同様に、セルラー通信を利用してクラウドに接続する。通信キャリアまで無線を利用できるため、設置場所が自由、配線の手間がないことが利点。
自動車などの移動体でも、通信キャリア経由であればゲートウェイをクラウドに接続することが可能。
しかし物理線接続に比べて通信が安定しない場合もあり、通信速度においても、大量のデータ送受信が必要なケースには向いていない。
・デバイス-クラウド間の通信方向
IoTのユースケースとしては、センサから受け取ったデータを、デバイスからクラウドに対してアップロードする通信、いわゆる「上り」の通信がよく用いられる。このユースケースは、上述したどの規格/接続方式でもサポートされている。
しかし、クラウドからデバイスに直接ログインするような「下り」の通信については考慮が必要。
デバイスに対して、下りの通信を行いたい場合は、次の2つの方法がある。
①デバイスからの上りの通信を行い、そのレスポンスとして、データを返す
②デバイスに対して直接アクセスできる宛先(IPアドレス)を持たせ、クラウドからアクセスする。
①の場合、デバイスからの通信がこないとデータが送れないため、データが送れるタイミングはデバイスからの通信間隔(ポーリング間隔)に依存してしまう。
デバイスの上り通信自体に問題が生じると、クラウド側から接続することができなくなってしまう。
②の場合、デバイスからのポーリングは必要ないため、ネットワークやクラウドのリソースをムダに使わずに済む。しかし、クラウドから直接接続できる宛先(IPアドレス)が個々のデバイスに対して割り振られることは少なく、通常はゲートウェイや通信キャリアを通ってクラウドに接続すると、途中でNATが行われるため、クラウドからは直接デバイスにアクセスすることはできない。
もし、クラウドからデバイスへ直接接続したい場合は、何かしらの方法を使って、
NATを越す必要がある。
NATとは、Network Address Transfer の略で、有限個であるIPアドレスを効率よく使うための技術。
例えばゲートウェイのポート番号ごとにデバイスを割り当てて、特定のポート宛に通信があった場合、例えばゲートウェイのグローバルIPアドレスが「54.250.252.1」だった場合に、「54.250.252.1:8000」はデバイスA、「54.250.252.1:8001」はデバイスBといったように割り当てて、ゲートウェイからフォワードする方法がある。
フォワード:転送すること
またセルラー通信を使ってデバイスが直接クラウドと接続している場合、通信キャリアのサービスによってはグローバルIPアドレスを振られるものもあるため、これを使ってクラウドからアクセスする方法がある。
★クラウド
IoTでよく利用されているクラウドは、Amazon Web Services (AWS) やMicrosoft Azure、Google Cloud Platform (GCP)といったメガクラウドベンダー。
これらのメガクラウドは従来のコンピューティング環境とは異なっていて
・初期費用が不要で、利用した分だけ支払う
・幅広いレイヤーのサービスがそろっている
・APIを使って、各種機能を利用できる
という特徴をもっている。
API:Application Programming Interfaceの略。ソフトウェアからOSの機能を利用するための仕様、又はインターフェースの総称で、アプリケーションの開発を容易にするためのソフトウェア資源のこと。
↓↓「クラウド」なら こちらの本が役立ちます↓↓
IoTシステムを構築するときにクラウドに必要なものは、大きく分けて3つ。
①「ディスパッチ」②「プロセッシング」③「ストアリング」。
①ディスパッチとは、デバイスとデータを送受信する機能と、それを適切にプロセッシングに振り分ける機能のことを指す。デバイスから来たデータは一旦ディスパッチ部分で受け取られ、データの内容やリクエストURLなどにより、適切な宛先に振り分けられる。
ディスパッチの役割は、デバイスとのデータ送受信をスケーラブルに行うことと、適切にプロセッシングにデータを渡すことにある。
②プロセッシングとは、デバイスからのデータを元に、何かしらの処理をする部分となる。例えば単純にデータを保存したり、異常値の検出をしてアラートメールを送ったり、画像を解析して結果を返したりする部分で、IoTシステムで一番肝となる部分。
CPUを利用する処理がメインであるため、サーバを構築してプログラムを動作させるのが一般的。だが近年では「サーバレスアーキテクチャ」と呼ばれる方式も用いられる。これはサーバ管理をクラウドベンダーに任せて、実行プログラムだけをクラウドに設定しておくことで、自動的に分散環境で処理が事項されるような方式である。
③ストアリングは、センサからのデータを直接保存したり、プロセッシング部分で処理されたデータを保存しておく部分。この部分は非常にスケーラビリティが求められ、かつ安価であることが求められる。
まずはクラウドベンダーの提供するサービスがどのようなものがあるかを把握し、自分の構築したいIoTシステムにどのように適用できるかどうかを検討するべき。
★アプリケーション
IoTでビジネスを考えた場合、ここが最も重要なところ。
クラウドの上で動作するアプリケーションがその重要なところ。
IoTのアプリケーションには、次のような5つの要素が含まれるケースが多い。
①モニタリング/可視化(Monitoring & Visualizing)
→データ可視化
→データ分析
→異常検知
→トラッキング
②制御 (Control)
→遠隔操作
→デバイス管理
→通知
③自動化(Automated)
→予測分析
→予知保全
④最適化(Optimized)
→自己診断
→性能向上
→ワークフロー
→コグニティブ
⑤自律性(Autonomouse)
→自律分散
→自己学習
→他システム間協調
これらの5つはIoT関係の書籍を見ると、だいたい同じようなことが書かれています。どの書籍もやはり、まずはじめは可視化=見える化がきますね。
例えば、工場にIoTシステムを導入するとした場合、次のようなアプリケーションを実現できる。
・製造装置から出るさまざまなデータを集め、データの可視化を行い、製造装置ごとの稼働状況を時系列で視認する。
さまざまなデータとは、、、例えば時間あたりの生産数やエラー率、装置の温度や電圧など。
・データ分析によって、エラー率の高い装置や、温度や電圧などとの相関について調べる。
・通常とは異なるデータの異常検知をして、責任者に通知する
・異常なデバイスに対して遠隔地から診断を行って、必要に応じてファームウェア更新やパラメータ変更などのデバイス管理を行う
※ファームウェアとは、、、ハードウェアの制御をするためのソフトを指す。パソコンのマザーボード(メイン基板)、ルーター、スマートフォンや家電にも利用されている。つまり、この場合だと製造ラインの設備・機械を動かすソフト(プログラム)のことかな。
・作業者の行動をトラッキングして、作業場所や製造品目の最適化を行う。
・製造装置のメンテナンス時期を予測して、部品発注やメンテナンス作業予定をワークフローで管理する
・複数の製造装置にまたがってシステムを制御、稼働させることで、製造ライン自体を自動化する。
モニタリングやコントロールは、センサデバイスからのデータを元にアプリケーションを組めば実行することが可能。だが、最適化や自律化を行うためには、数多くのデータ(ビックデータ)を元に、トライ&エラーを繰り返す必要がある。
例えば、マイクロソフトは、Computer Vision API というサービスを提供しており、APIを呼び出すだけで、画像の解析をして、何が写っているのかを判定したり、画像からテキストを読み取ったりすることができる。
Google は Tensor Flow という機械学習ライブラリを出していて、
またAWSは「Amazon AI 」と名付けた、いくつかのAIサービスの提供を始めている。
★セキュリティ
IoTにおいて、セキュリティは最も重要で、かつ最も難しい領域。
・IoTシステムのセキュリティ対策とは?
人がスマートフォンで使う前提のシステムであれば、認証時に利用者がIDやパスワードを入力することができる。しかし、モノの場合はシステムログイン時にID/パスワードを人が毎回入力するわけにはいかない。
このため、あらかじめデバイスに認証情報を入れておく必要がある。
では、デバイスが盗まれてしまったら?
仮に同じID/パスワードが全てのデバイスに入っていた場合、別のデバイスも乗っ取られる可能性があるため、パスワードの変更などが必要かもしれない。
→デバイス1つずつ設定するのは非常に大変。
→設計段階からセキュリティ対策を意識しておく必要がある。後からではしんどい。
IoTセキュリティについては、OWASPやOTA、GSMAといった団体や、
日本でもIPAやCSAジャパンなどの団体が、IoTセキュリティについてのホワイトペーパーなどを出している。
IPA・・・Information-technology Promotion Agency
独立行政法人 情報処理推進機構
IPAでは、「IoT開発におけるセキュリティ設計の手引き」として、具体的なシステムとその脅威について解説したホワイトペーパーを出している。
→IoTシステムのセキュリティ設計時の分析に利用することができる。
異常でIoTシステムを俯瞰した形で、IoTシステムの全体像と、各セグメントのざっくり紹介でした。
各セグメントについてもっと詳細を知りたい!と言う方は、この本おススメです!
アマゾンで詳細を見る
改訂新版 IoTエンジニア養成読本 (Software Design plusシリーズ)
楽天で詳細を見る