2017.07.25IoT , Mendixで課題解決 , アプリ開発

IoTとは?

  • このエントリーをはてなブックマークに追加

Hans de Visser
2017年5月16日

Internet of Things(IoT)は、物理的、そしてデジタル的な世界の融合を利用したデジタルビジネスの強力な変革の礎です。

マッキンゼーは、IoTが2025年までに年間11.1兆ドルの経済的価値を生み出せると予測しています。

当然のことながら、ITリーダーは、事業をより効率性に推進することと同時に、事業に関係する新しい製品やサービスを通じてよりいっそう収益を伸ばすための新しいIoTソリューションを提供するというビジネスのプレッシャーに直面しています。

私は最近、IoTソリューションを開発するために必要なものと適切なアーキテクチャを確立する方法について、顧客との議論に参加してきました。

結論から言えば、IoTソリューションのアーキテクチャの全体的な概要や、IoTアプリケーション開発を開始するためのベストプラクティスをネット上で見つけることはほとんどありませんでした。

 

そこで、そこで、まずはじめに絵を描いて、Mendixの顧客がこの分野でやっているプロジェクトに関連付けていくつかのベストプラクティスを探し出しました。

この記事では、IoTソリューションの構造を説明することから始まり、IoTソリューション開発を単純化する際のプラットフォームの役割について説明します。

最後の記事では、IoT戦略を定義するためのアーキテクチャとベストプラクティスに関する推奨事項について説明します。

 

IoTソリューションは多種多様です

IoTソリューションを開発するには何が必要ですか。

また、適切なアーキテクチャを確立するにはどうすればよいですか?

IoTソリューションの設計は、Operations Technology (OT) の物理的な世界をセンサ、アクチュエータ、通信デバイス、データ、分析、ワークフロー、アプリケーションなどの Information Technology (IT) のデジタル世界と橋渡しする点で、一般的なITソリューションとは大きく異なります。

ユースケースと運用要件の多様性により、IoTエンドポイント、通信プロトコル、データ管理、分析技術、および対応するデプロイメントトポロジが作成されます。

しかし、それだけでは基礎の部分を確立するだけです。

IoTの本当の価値は、データを洞察力に変え、よりスマートな事業を推進したり、新しい製品やサービスを立ち上げることです。

これは、センサーデータ、ERP、CRM、PLMなどのエンタープライズシステムに存在するデータ、天気や交通データなどの第三者サービスを組み合わせることで、ユーザーが洞察に基づいて行動できるようにしてIoTアプリケーションの必要性を高めます。

 

IoTソリューションの外観

多様性があるにもかかわらず、IoTソリューションの解剖図を示すユースケースには共通のレベルがあります。

解剖学的構造を記述する際に階層化されたアプローチを取ることは、物レベルからIoTアプリケーションまでの関連するサービスおよび技術を識別するのに役立ちます。

IoT Endpoints

このレイヤーは、物をつなぎ、コミュニケーションをするために必要な物理的な世界と運用技術をカバーします。

  • もの: IoTの本当のエンドポイントは、車、ジェットエンジン、照明システムなどの物理的な製品だけでなく、家畜、作物、人間、部屋や屋外のような空間でも、接続できるものであることは明らかです。
  • センサー: 接続されているものの状態に関するデータを収集し報告します。温度、圧力、光、動き、位置などを監視するために、センサーをものに取り付けるか、埋め込むことができます。
  • アクチュエータ: バルブを開く、カメラ、モーター、ライトをオン/オフするなど、IoTアプリや他のシステムからの信号を使って製品の物理的または論理的な状態を制御します。これには、組み込みソフトウェアに送信されるコマンド(例えば、構成を再起動または更新するコマンド)が含まれます。
  • エージェント:IoTデバイスのセットを仲介し、センサ/アクチュエータとクラウドとの間のブリッジとして機能し、送信するデータと送信するタイミングを決定するコンポーネントです。それとは逆に、クラウドからのコマンドと更新を処理します。
  • エッジコンピューティングデバイス:IoTデータがネットワークのエッジで処理される分散アーキテクチャです。大量の生データをネットワーク経由で送信することは、ネットワークリソースに多大な負荷をかけます。場合によっては、ソースの近くでデータを処理し、ネットワーク上で価値のあるデータだけをクラウドに送信する方がはるかに効率的です。
  • コミュニケーション: IoTデバイス通信の場合、物理層および通信プロトコルが区別されます。物理層に関する限り、ゲートウェイ、モバイルデバイス、メッシュネットワーク、および直接デバイスまたはブロードキャストデバイスの通信は、ユースケースに応じて適切な場合とそうでない場合があります。物理層の選択により、どの通信プロトコルが最も適しているかが決まります(MQTT、COAP、HPPT(S)、AMQP、ZigBee、Z-Waveなど)。

 

IoT Software

次のレイヤーは、IoTソフトウェアサービスを統合してIoTエンドポイントを安全に管理し、接続されたものの「デジタルツイン」を表現し、データを処理および分析し、サービスを消費および公開するためのAPIを提供する(クラウド)プラットフォームです。

  • デバイス管理: エンドポイントデバイスの設定、プロビジョニング、および操作のプロセスを簡略化します。これは、監視、テスト、ソフトウェアの更新、および接続されたデバイスのトラブルシューティングをサポートします。
  • デジタルツインマネージメント: 多くのIoTユースケース、特に工業用IoTでは、接続されたもののデジタルツインを定義することは重要です。これは、IoTプラットフォームの物理的なものと論理識別子の1:1マッピングと同じくらい単純なものでも、コンポーネント/システムの階層構造を持つ資産のエンジニアリング ビューをインスタンスおよびクラス レベルの資産を表す物理デバイスにマッピングするような洗練されたものでもあります。
  • イベント&データ処理:イベント処理は、接続されたデバイスからのイベントストリーム、フィルタリング、および監視を処理します。さらに、データ集約、データ保管、および管理のためのサービスが必要です。
  • アナリティクス / 機械学習: アナリティクスサービスは、統計分析を実行し、機械学習を適用して、予測メンテナンス、推奨事項の作成、エンジニアリング変更のトリガーなどのデバイスインスタンスまたはクラスレベルのパターンを検出します。
  • API 管理:デバイス通信、データ、サービス、バックエンドの統合、およびアプリケーション開発のために、IoTプラットフォームのすべてのレイヤーでオープン性を提供します。
  • セキュリティ管理: IoTエンドポイントがIoTが増加する攻撃面のためにセキュリティ上の脅威を露呈しないようにします。IoTデバイスは、インターネットを介して送信される操作に関する機密情報を生成します。また、デバイス自体がハッキングに脆弱であり、深刻なビジネス上の被害をもたらす可能性があります。セキュリティサービスには、(証明書を基にした)デバイス認証、ネットワーク接続、ソフトウェアアップグレード、認証、IDとアクセス管理、およびデータ損失防止が含まれている必要があります。

 

IoT App

アプリレイヤーは、IoTソリューションがいる場所であり、データを実用的な洞察に変え、ビジネスユーザー、顧客、パートナーの手に渡します。既存のバックエンドおよびサードパーティのサービスとの統合が確立され、洞察に基づいて動作するようにワークフローが定義されている層です。アプリレイヤーのコアサービスには次のものがあります。

  • 統合開発環境(IDE): IoTアプリケーションを開発するには、設計時の環境が必要です。これは、IoTアプリケーションの協調的、視覚的開発のための特定の言語またはモデル駆動環境でのコーディングのための伝統的なIDEである可能性があります。さらに、開発チームが業務をコミットし、ビルドとアプリケーションパッケージを作成するためには、ソフトウェア構成管理と分岐&マージのコアサービスが必要です。最後に、IDEは、開発者がIoTアプリケーション開発に適切なパターンとベストプラクティスを適用するよう指導する必要があります。
  • マルチチャネルアプリ: 今日のWebアプリケーションやモバイルアプリケーションの世界では、IDEは、特定のフォームファクタに最適化された、クロスプラットフォーム、レスポンシブ、マルチチャネルのアプリケーションの開発をサポートし、最小のオーバーヘッドでデバイス機能とサポートジェスチャを使用することが理想的です。
  • 統合: IoTアプリの生命線です。アプリケーションは、アラートを受信した後、またはアクチュエータをトリガした後、”もの”の完全な履歴を読み取るために、IoTエンドポイント(デジタルツイン経由)にアクセスする必要があります。様々なIoTソフトウェアサービス(時系列データや機械学習アルゴリズムなど)を活用し、これらのサービスをIoTアプリケーションに組み込むことができます。最後に、エンタープライズバックエンドとサードパーティサービスとの統合は、ワークフローを管理したり、エンジニアリングやカスタマーサポートのデータで強化されたサービスエンジニア向けのダッシュボードを作成するなど、IoTアプリをコンテキストに合わせるために必要です。
  • テスト:テスト&品質保証は、IoTアプリ開発プロジェクトの必須分野です。さまざまなレベルでのテスト自動化(単体テスト、統合、機能テスト)は、(反復的な)開発サイクルに比べてテスト負荷を最小限に抑えるのに役立ちます。
  • 導入:ターゲット環境への段階的な導入とアプリケーションリソース(Webサーバー、OS、データベース、ファイルストレージ)の自動プロビジョニングにより、DevOpsエンジニアはIoTアプリケーションを効率的に管理できます。理想的には、選択したクラウドに展開する柔軟性があります。たとえば、アプリケーションが使用しているコアIoTサービスが動作している場所に近いです。
  • 管理: IoTアプリケーションを管理するには、水平/垂直スケーリングと高可用性構成のためのユーザー管理、アプリケーション管理、監視、およびセルフサービスのオプションが重要です。具体的には、ステートレスなアプリケーション アーキテクチャに裏打ちされた弾力性のサポートは、変わりやすく負荷あるボリュームに対処するためには不可欠です。
  • セキュリティ: IoTプラットフォーム層の場合と同様に、アプリレベルでのセキュリティは不可欠です。これは、アプリケーション ランタイム環境とアプリケーション自体のセキュリティ設定(アクセスや認証など)の両方に関係します。

 

まとめ

IoTソリューションの解剖学を定義する要素は断定的なものになるかもしれません。前に述べたように、IoTソリューションの種類とレベルによって、エンドツーエンドソリューションを作成するために必要な要素とサービスの数が決まってしまうからです。

それにもかかわらず、エンドポイント、ネットワーク技術、プロトコル、IoTソフトウェア、アプリケーション開発サービスの多様な組み合わせは、IoTを導入して業務を変革しようとしている企業にとって挑戦となります。

問題は、IoTソリューション開発をどのように管理しやすくするかです。

その答えは、プラットフォームのアプローチを採用することにあります。

 

翻訳元:https://www.mendix.com/blog/anatomy-iot-solution/

 

  • このエントリーをはてなブックマークに追加