IoTシステムのプロジェクトがわかる本 企画・開発から運用・保守まで
IoTシステムのプロジェクトがわかる本 企画・開発から運用・保守まで
翔泳社
著者:西村泰洋
はじめに
Chapter 1 IoTシステムの基本
1.1 IoTシステムとは何か?
IoTシステムを構成するもの
IoTシステムを物理的にとらえる
IoTシステムの特徴
IoTシステムを利用者の視点でとらえる
1.2 IoTシステムの構造
最もシンプルな3階層のモデル
より細かくとらえた5階層のモデル
7階層のリファレンスモデル
5階層は物理的にわかりやすい
階層で考えるメリット
3階層はシンプルでよい
1.3 従来型の業務システムとの違い
クライアント端末の違い
データ入力の違い
ネットワークの違い
導入前に基本的な違いを押さえておく
1.4 IoTシステムの実装
3つの実装形態
新システムとしてのIoT
既存の業務システムとしてのIoT
業務支援システムとしてのIoT
1.5 急拡大する国内IoT市場
IDC Japanの市場予測
1.6 クラウドが変えたユビキタスからIoTへの移行
デバイスの革新(1)カメラ
デバイスの革新(2)各種センサーの低価格化
ネットワークの革新
クラウドの浸透
IoTシステムはこれから面白い
1.7 AIとIoTの関係
IoTにおけるAIの利用シーン
ディープラーニングによる画像に認識
機械学習による判断
拡大するAIの活用
Chapter 2 業務システムとIoTシステムのプロジェクトの違い
2.1 プロジェクト推進上の特徴
システムをブロックでとらえる
新しさと多様性を理解する
2.2 プロジェクト計画の特徴
業務システム開発のプロジェクトの例
IoTシステムとの相違点
システム企画という新たなタスク
2.3 プロジェクト立ち上げの特徴(1)システム構成の多様性
目的、用途、機能から考える
最もシンプルな構成例
デバイスが複雑な構成例
異なるのはデバイスの機能
2.4 プロジェクト立ち上げの特徴(2)新たなサービスか否か
自社での利用に限定されたシステム
新たなサービスのシステム
2.5 システム開発工程の違い
業務システムの開発工程
システム企画の工程
IoTにおけるシステム企画の重要性
2.6 PoCの必要性
新しい技術の学習
実物を使ったPoC
システム企画工程での位置づけ
2.7 チーム体制の違い
PoCは誰が担当するのか
システム企画者がPoCを行わない理由
2.8 データを「捨てる」という発想
捨てられるデータの例
データを残すこともある
捨てられるデータは捨てる
2.9 IoTによる新たなビジネスの企画
ビジネス企画の例
IoTシステムからビジネスを検討する時代に
2.10 企画者やプロマネの心構え
すべてを知ろうと思わないこと
知っておくべきことのレベル
企画者やプロマネに必要な心構え
COLUMN マイコンの専門的な知識は必要か
Chapter 3 IoTシステムを構成するデバイス
3.1 IoTシステムの構成要素
階層間の通信も含めたシステム構成
3.2 デバイスとセンサーの概略
やりたいことから考えるとわかりやすい
主なデバイスとセンサー
位置や動きをとらえるデバイス
モノ、人、環境に影響を与えるデバイス
IoTには上りと下りがある
3.3 単体駆動のデバイス「加速度センサー」と「ジャイロセンサー」
動きを検知する加速度センサー
傾きを検知するジャイロセンサー
3.4 複数構成のデバイス「GPSセンサー」
現在地をとらえるGPSセンサー
3.5 複数構成のデバイス「ビーコン」
電波で位置を把握するビーコン
ビーコンは大きな意味で2種類ある
3.6 電波強度とは何か?
電波強度の計算式
電波強度の測定
3.7 複数構成のデバイス「RFID」
RFIDとは?
自ら無線波を発するアクティブタグ
3.8 複数構成のデバイス「Zigbee」
Zigbeeデバイスの活用法
各デバイスの特徴を把握しておくことが重要
3.9 画像の認識
画像認識の対象
画像の取得前に調子すること
画像認識の基本
必要とされる画素
各識別はHSVモデルが主流
3.10 音声の認識
音声認識と音響認識
音声認識デバイスの例
センサーとしての音声認識
3.11 環境の状況の数値化
工場などで使われる温湿度センサー
農場なので使われるCO2センサー
車載用が多い日射センサー
環境を測定するセンサーに限りがない
3.12 人体の状況の数値化
スマートウォッチに搭載される心拍数センサー
体に張り付ける体温センサーほか
その他のセンサー
COLMN 学習のすすめ
Chapter 4 IoTシステムを構成するネットワークとサーバー
4.1 業務システムにおけるネットワーク
クラサバシステムのネットワークの基本はLAN
サーバーによるクライアントの識別
IoTデバイスはIPアドレスを持たない
ゲートウェイ以降はクラサバと同じ
サーバーとクライアントのデータのやり取り
IoTのアプリケーション層のプロトコル
4.2 IoTシステムにおけるネットワーク
デバイスとゲートウェイ・エッジ間の通信
利用されるネットワークの種類
4.3 デバイスとゲートウェイ間の通信
BLEによる通信
参考 電波の干渉を防ぐしくみ(1)チャネルの割り当て
参考 電波の干渉を防ぐしくみ(2)キャリアセンス
Wi-Fiによる通信
RS-232CとUSB
4.4 ゲートウェイとエッジ
ゲートウェイとは?
ゲートウェイの3つの機能
物理的な存在としてのゲートウェイ
エッジの機能
物理的な存在としてのエッジ
エッジが実行する処理
エッジとゲートウェイは分けるべきか?
4.5 データ形式と変換
ゲートウェイで変換されるデータの形式
4.6 エッジとサーバー間の通信
自社サーバーの活用なら企業イントラネット
スマホの活用ならキャリアネットワーク
少ないデータ量ならLPWA
ISPも候補に
4.7 LPWAの規格とサービス
主要なLPWA
LPWAの現在
4.8 Sigfoxの特徴
Sigfoxとは?
利用料金の例
屋内での利用
LoRaとSigfox
COLMN 注目のデバイス、メッシュWi-Fi
Chapter 5 企画の留意点(1)デバイス
5.1 システム企画の作成
システム企画で明らかにすること
システム企画書の必須項目
2つのプロジェクトマネジメント
5.2 システム化の目的とシステム概要
やりたいことの明確化(例1)
目的と施策を整理する
やりたいことの明確化(例2)
想定効果やコストの関係
システム概要を検討するための視点
5.3 デバイスを対象から考える
対象は大きく分けて3つある
対象の明確化
動的か静的か
5.4 デバイスを空間と利用シーンから考える
さまざまなタイプの空間
空間からネットワークを考える
さまざまな利用シーン
5.5 デバイスで確認すべき仕様
確認すべき仕様と性能
5.6 デバイスの電源、動作温度、無線局申請の要否
電源の確保
動作温度の確認
物理的な設置状況も考慮する
無線局申請の要否
システム企画時に確認する習慣
5.7 チェックリスト作成のすすめ
チェックリストの例
COLMN 唯一の敗戦から学ぶ
Chapter 6 企画の留意点(2)ネットワークとサーバー
6.1 サーバーで実行する処理
IoTシステムの典型的な処理
業務システムと共通の処理
共通処理は必須、特徴的な処理こそ検討を
6.2 データフローを描く
データフローの作成
ワークフローも併せて作成
6.3 クラウドの活用
クラウドのメリット
クラウドのデメリット
クラウド活用時に留意するべきポイント
クラウドの3つの主流のサービス
6.4 サーバーの性能見積もり
性能見積の3つの方法
業務システムのサーバーの性能見積もりの例
最低限押さえるべき数値
6.5 新規のネットワークを構成する
クライアントPCのネットワークの帯域
デバイスのネットワーク帯域の例
帯域への負荷から考える
LPWAによるネットワーク構成
6.6 開発方針の検討(1)IT戦略との整合性
自社開発かサービス利用
OSの選択
IT戦略とIoTシステム
自社開発/サービス利用とOSの関係
自社の所在地に合わせる
クラウド大手のIoTサービスの考え方
大手のサービスをレイヤーで確認する
デバイス開発とOS
6.7 開発方針の検討(2)自社開発部分の明確化
どこまでが自社開発?
両方の活用がお勧め
サービス利用のインパクト
企画書の例
Chapter 7 開発の留意点(1)デバイス
7.1 基準点を設定する
通信距離の意味
電波暗室で測定する
簡易な計測方法
実際の測定
実測する理由
現場での基準点の設定
7.2 レスポンスタイムの確認
レスポンスタイムの測定
レスポンスタイムが重要な理由
通信範囲とレスポンスタイムをセットで
レスポンスタイムとレイテンシー
レイテンシーの測定も必須
7.3 デバイスのデータ送受信の接続シーケンス
スマートウォッチで脈拍をとる
BLE接続の処理の流れ
処理の流れを押さえることの重要性
参考 RFID(13.56MHz、UHF帯)の処理の流れ
シーケンスから原因を明らかにする
参考 BLE 4.2の接続シーケンス例
参考 最もシンプルなビーコンデバイスの例
7.4 無線デバイスの最適化
2つの最適化手法
ハードウェアの基本性能を上げることはできない
7.5 ハードウェア最適化
出力制御で通信距離を調整する
システム構成で最適なハードウェアを確認する
設置位置を調整する
対象への貼付け方法・貼付け位置を修正する
7.6 ソフトウェア最適化
通信間隔を調整する
リトライ制御で接続を確実にする
コマンド最適化で無駄をなくす
7.7 データの整形
データ変換で形式や単位を変える
データの圧縮・軽減で負荷を減らす
データ補正で不要な部分を除去する
データ欠損対策
Chapter 8 開発の留意点(2)ネットワークとサーバー
8.1 処理方式の検討
スケールアップとスケールアウト
スケールアウトを想定した方式
カメラの設置を確認する
8.2 データベースの選定
データベースの種類
RDBが常に適切なわけではない
目的に応じてDBやツールを選定する
8.3 データ分析をどこまでするか?
IoTシステムでの分析
基本的な分析
よくある分析(1)相関
よくある分析(2)移動平均
各種の工学の関数との連携
3点測量での測位
システム企画者、プロマネとして
8.4 時刻の同期
NTPサーバーで時刻を同期
デバイスとの時刻の同期
8.5 システムとしてのシーケンスとレイテンシー
シーケンスの2つの考え方
シーケンスとレイテンシーの例
8.6 AIとの関係
AIシステムの3つの傾向
提供済みのアルゴリズムとデータを勧める理由
8.7 外部システムやオープンデータの活用
Web APIでデータを入手する
データ入手の典型的な方法
APIの入手がすべてではない
8.8 開発工程でのリスク管理
デバイスの課題
サーバー側での課題
プロジェクトとしての問題
COLUMN ビッグデータ分析という言葉の罠
Chapter 9 PoCの留意点
9.1 PoCで押さえること
PoCの目的
なぜ「おそらく」なのか?
PoCで実証したいこと
性能と並ぶ重要な項目
9.2 PoCのポイントとスケジュール
PoCと学習を一緒にしてはならない
PoCで検証される項目の例
PoCのスケジュール
準備作業の内容
準備作業が決め手
現場でのPoC
分析と評価
9.3 素の性能と現場の性能の差
無線デバイスの性能の減衰
レイテンシーでも違いがある
9.4 PoCはテスト工程に続く
テスト工程との関係
3つの性能の差
9.5 他社と共同でPoCを行う際の留意点
契約書を交わしているか
提携交渉のステップ
Chapter 10 IoTシステム事例
10.1 Raspberry Piでの開発の例
Raspberry Piとは?
Raspberry Piでやりたいこと
Raspberry Piの作業環境
AI環境ならびに開発環境の構築
プログラムの動作
サンプルコードの例
物理的な実装の例
作業工数の目安
デバイス側で処理する傾向
現在のIoTやAIシステムの開発
10.2 農業におけるIoTシステムの例
システム化の目的
IoTシステムならではの貢献
システム概要をつかむ
各センサーの種類と役割
センサーが再現する細かいノウハウ
ハウス内でカメラを使わない理由
クラウド側での管理
装置の制御とシステム構成
アプリケーションの特徴的な機能
IoTシステムが農場経営を変える
IoTシステムに必須の資料
ドキュメント作成を忘れずに
Chapter 11 運用管理とセキュリティ
11.1 稼働後の管理
運用管理とシステム保守
障害の影響
11.2 運用管理
運用管理の主要な業務
運用監視として行うこと
デバイス管理の例
システムの追加・変更として行うこと
障害対応として行うこと
開発工程でのプロマネの指示
11.3 障害対応の方向性
SLAの指標
交換を急がないデバイスもある
使い捨ての発想
11.4 IoTシステムを最速で立ち上げる
クラウド→ネットワーク→デバイスの順に考える
運用管理の容易性
11.5 日本のセキュリティ対応
国のセキュリティ対応
IoT機器へのサーバー攻撃件数
IoTセキュリティガイドライン
11.6 セキュリティ対策の前提
守りたいものとセキュリティ対策
データの分類
情報セキュリティポリシーを構成する要素
IoTシステムでも基本は同じ
11.7 セキュリティ対策
業務システムのセキュリティ対策
サーバーやネットワークでの対策
アクセス制御による対策
クライアントでの対策
IoTシステムのセキュリティ対策の基本
IoTシステムに特有の対策例
IoTシステムでも基本に忠実に
セキュリティ対策のチェック
セキュリティを考えたネットワーク構成
サーバー側でのセキュリティ
おわりに
INDEX