コンセプトとスキル
第4次産業革命(インダストリー4.0)とは、18世紀の産業革命以降、4回目の大きな産業シフトです。第1次産業革命は石炭と蒸気、第2次産業革命は電気と自動車、第3次産業革命はIoT(Internet of Things)と呼ばれるコンピュータの爆発的普及と、3つの産業革命が先行しています。IoTはインダストリー4.0の基盤となるもので、相互に接続されたデバイスのネットワークを利用して、インターネット経由でデータを配信します。IoTは、ヘルスケア、製造、自動車、小売、ビルディングオートメーションなど、幅広い業界で使用されています。
IoTの価値は、意思決定や業務効率の改善に利用されるビッグデータの取得に認められています。IoTの導入が急速に進む中、IoTが私たちの生活や仕事のあり方を変えていくのに伴い、熟練したIoT開発者の需要も同様に高まっています。
IoTの可能性を最大限に活用したいと考える開発者は、以下のようなさまざまな重要なトピック分野のスキルを育成する必要があります。
- ハードウェア
- ネットワーク
- アプリケーション設計
- アプリケーション開発
- セキュリティ
- データと人工知能(AI)
ハードウェア¶
IoTの中心となるのは、接続されたデバイスです。これらのデバイスには、他のデバイスと接続する(マシン・ツー・マシン)デジタルファーストのデバイスと、センサーに回路が組み込まれたフィジカルファーストのデバイスがあり、ダッシュボードや遠隔監視プラットフォームなどのデータ受信の中心となる特定の目的地に送信されます。データには、画像、テキスト、その他のパラメータが含まれ、情報を提供する役割を果たします。
センサーと特性を持つデバイスには、ハードウェアの設計に関する知識が必要です。相互接続性やネットワーク全体の構成には、ネットワーク設計のスキルが必要です。どちらのタイプのデザインも、エンジニアリングデザインソフトウェアを使用し、他のソフトウェアと統合することで、デバイス、マシン、システムの高度にインテリジェントなネットワークを形成し、すべてがデザインの目的を達成し、インテリジェントな情報を提供するように調整されます。
デバイスの設計には、プロセスとストレージの機能が含まれます。デバイスには、マイクロコントローラーを使用する場合と、より詳細なシステムオンチップ(SoC)を使用する場合があります。SoCは、CPUやI/Oデバイスなど、より多くのコンポーネントを集積回路に組み合わせたものです。
IoTデバイスは組み込み型であり、意図した設計目的の顕著な特徴を考慮して設計する必要があります。これらの特性には次のようなものがあります。
- 環境条件
- 使用するセンサーの種類
- 集約すべきデータの量
- デバイスのデザインに必要なパワー、レンジ、スピード
- デバイスのユニットコストと総所有コスト
IoTデバイスの設計は、ArduinoなどのプラットフォームやRaspberry Piなどのシングルボードコンピュータを使ってプロトタイプを作成し、後にカスタムプリント基板(PCB)を開発することもあります。
これらのプラットフォームを使ってプロトタイピングを行うには、回路設計のスキルに加え、マイクロコントローラーのプログラミングや、マイクロコントローラーと接続されたセンサーやアクチュエーターとの間の通信を確立するために一般的に使用されるシリアル、I2C、SPIなどのハードウェア通信プロトコルを理解している必要があります。組込みプログラムはC++やC言語で開発されることが多いですが、IoTデバイスのプロトタイピングにはPythonやJavaScriptが人気を集めています。
ネットワーキング¶
接続性はIoTのもう一つの重要な側面であり、デバイスが他のデバイスと通信したり、クラウドで実行されているアプリケーションやサービスと通信したりすることを可能にします。接続されるデバイスの数が非常に多いことや、ネットワーク設計の決定が大規模な場合に影響を与えることから、ネットワークの設計と管理はIoTにおいて不可欠なスキルです。
例えば、メッシュネットワークは拡張性と堅牢性に優れたネットワークトポロジー設計であり、IoTでは頻繁に採用されています。しかし、メッシュネットワークは分散型であるため、システムが複雑になり、ネットワーク内の各デバイスに必要なレイテンシーや電力も増加します。
開発者は、ネットワーク設計に加えて、ネットワークの標準規格、プロトコル、および技術に関する知識も必要です。これらの技術には、Wi-Fi、低エネルギーBluetooth、Zigbee、セルラー、民生用アプリケーションで使用されるRFID技術、LoRaなどのLPWAN(Low Power Wide-Area Network)技術などがあります。LPWANには、SigFoxやNB-IoT(ナローバンドIoT)も含まれます。これらは、低コスト、低消費電力の長距離無線接続を提供し、大規模なIoTアプリケーションや産業用IoTアプリケーションに適しています。
アプリケーション設計・開発¶
Webアプリケーションやモバイルアプリケーションは、IoTデバイスと対話したり、IoTデバイスからのデータを消費したりするためのユーザーインターフェースを提供します。しかし、IoTデバイスは、独自のユーザーインターフェース(UI)を持っている場合があります。音声やジェスチャーを使ったインターフェースは、特にホームオートメーションの分野でIoTの普及に貢献しています。また、拡張現実(AR)を使ったインターフェースは、IoTのデータを物理的な世界に重ね合わせることができます。そのため、UIやUXデザインのスキルは、IoTにおいて今最も注目されているスキルの一つです。
Webアプリケーションやモバイルアプリケーションの開発には高級言語が使われますが、IoTアプリの開発に使われる言語としては、Java、Swift、Node.jsなどが挙げられます。ウェアラブルやスマートカーなど、多くのIoTアプリケーションが位置情報に対応しているため、GPSプログラミングのスキルが特に求められています。開発者は、ラピッドプロトタイピングに活用できる新しいフレームワークや開発キット、IoTアプリケーションの構築、デプロイ、管理、運用を自動化するためのインフラやツールを提供するIoTプラットフォームなどを把握しておく必要があります。
セキュリティ¶
IoTに関する議論では、サイバーセキュリティが最も重要です。IoTデバイスは、セキュリティの侵害に対して非常に脆弱です。多くの企業が攻撃を受けたと報告しています。また、知らないうちに攻撃を受けていたという企業もあるかもしれません。
運用技術、つまりIoTデバイスとそのネットワークは、大きなセキュリティリスクを抱えています。しかし、このようなリスクは、通常のIT部門のサイバーセキュリティ対策の中に混じって対処されていることが多い。これでは不十分な場合があります。IoTを利用する組織は、運用技術に対して、組織内の他のネットワークとは異なる明確なポリシーを採用する必要があります。これには、訓練、インシデント対応、災害復旧計画、ランサムウェア攻撃に対する特定のポリシーなどが含まれます。
セキュリティは、後付けではなく、システム設計のあらゆる段階で組み込まれていなければなりません。セキュリティと密接に関連する重要な問題には、データの倫理性、プライバシー、責任などがあります。
IoTのセキュリティに関する検討事項には、最低限、以下が含まれます。
- エンドポイント・アクセス
- 必要に応じたデータの暗号化
- 適切な認証
毎日何百万もの新しいデバイスがIoTの世界に入ってくるため、攻撃のゲートウェイが増えています。IoTデバイスは、分散型サービス拒否(DDoS)やその他の深刻で被害の大きい攻撃に使用されています。
IoTセキュリティのガイダンスとしては、National Institute of Standards and Technology (NIST) Framework for Improving Critical Infrastructure Cybersecurityが推奨されています。
このように多くの問題を抱えるIoTでは、セキュリティエンジニアリングのスキルが高く評価されています。これらのスキルには、脅威の評価、倫理的ハッキング、データの完全性を確保するための暗号化、ネットワーク・アーキテクチャとアプリケーションの安全性確保、さらにはイベント監視、アクティビティ・ロギング、脅威インテリジェンスなどが含まれます。
データとAI¶
人工知能(AI)は、IoTネットワークの本質的な部分となっています。 これは、データの急増、そのようなデータへのより優れたカスタマイズされたアルゴリズムの適用、およびデバイスのパワーとストレージ能力の向上によるものです。
インテリジェントなビッグデータ分析では、データマイニング、モデリング、統計、機械学習、AIなどのコグニティブ・コンピューティング技術を適用します。これらの技術は、センサーデータのストリームにリアルタイムで適用して予測分析を行ったり、入力されたデータに応じて自律的に意思決定を行ったりすることができ、また、過去のデータに適用してデータのパターンや異常を特定することもできます。
多くのIoTデバイスは、レイテンシーやタイムセンシティブなデータを生成するため、無関係なデータをフィルタリングしたり、破棄したりする必要があります。IoT開発者がスキルアップすべきデータ分析のための主要なテクノロジーやプラットフォームには、Hadoop、Spark、NoSQLデータベースなどがあります。
IoT開発者は、現在も将来も、より高度な機械学習やAIのスキルを必要とするでしょう。
IoTソリューションの開発を始める準備はできていますか?¶
IoTアプリケーションの開発に関わる技術は、急速に進化しています。開発者は、多様なスキルを培い、新しいプロセス、プラットフォーム、ツールに俊敏に対応する準備が必要です。