デバイスの接続に関する考慮事項
デバイス・ネットワークをOracle IoTアプリケーション・インスタンスに接続する方法には、いくつかのオプションがあります。
デバイスがネットワークに接続する方法を決定したら、デバイスからOracle IoTにデータを送信する必要があります。次のアーキテクチャ図に、デバイスをクラウド・サービスに接続するための4つの選択肢を示します。

図connectivity-options.pngの説明
デバイスを接続するために選択する戦略は、デバイスの機能と、デバイスからOracle IoTアプリケーションにデータを送信する方法によって異なります:
- デバイスはプログラム可能です: デバイスがインターネット・プロトコル(IP)を使用して通信でき、デバイスのプログラミングを変更したり、デバイスにソフトウェアを追加できる場合、デバイスからデータをOracle IoT Cloudインスタンスに直接送信することを選択できます。
- デバイスはプログラム可能ではありません: デバイスのプログラミングを変更できない場合、ゲートウェイとして機能するフィールドの別のデバイスにデバイスを接続し、Oracle IoT Cloudアプリケーションとの通信をプロキシできます。デバイスは、デバイスのネイティブ・プロトコルを使用してゲートウェイにデータを送信します。ゲートウェイは、デバイスからOracle IoT Cloud Serviceにデータを転送します。
- フィールドにゲートウェイ・デバイスを追加できません: 環境がフィールドでゲートウェイをサポートしていない場合は、Oracle Cloudインスタンスで実行されているゲートウェイ(たとえば、Oracle IoT Cloud Gateway)にデバイスを接続できます。デバイスは、任意のインターネット・プロトコルを使用してゲートウェイと通信できます。ゲートウェイは、デバイスからOracle IoT Cloud Serviceにデータを転送します。
- デバイスはすでにサードパーティ(Oracle以外)のクラウド・サービスに接続されています: サードパーティ・クラウド・サービスを使用してデバイスからデータを収集している場合は、デバイス・データをゲートウェイに転送できます。ゲートウェイは、デバイスからOracle IoT Cloud Serviceにデータを転送します。
デバイスの直接接続
デバイスをOracle Fusion Cloud IoT Intelligent Applicationsインスタンスに直接接続するには、RESTコール、メッセージ・キューイング・テレメトリ・トランスポート(MQTT)、またはゲートウェイを介して任意のインターネット・プロトコル(IP)を使用します。クラウド・インスタンス上の特定のエンドポイントにデータを送信するようにデバイスをプログラミングする場合は、このアプローチを選択します。
Oracle IoTダイレクト・データ収集を使用したデバイスの接続
Direct Ingestionは、最小限の通信帯域幅で、管理オーバーヘッドを最小限に抑えながら、デバイスを最も効率的に接続する方法を提供します。Direct Data Ingestionは、Oracle IoT Asset Monitoring Cloud Serviceで使用できます。
Oracle IoTコネクタを使用したデバイスの接続
様々な接続プロトコルおよびデータ形式をサポートするために、デバイス固有のデータ形式の接続と解釈の両方について、ほとんどのデバイスに対して構成可能なコネクタを使用することをお薦めします。
Oracle Clientライブラリを使用したデバイスの接続
Oracleクライアント・ライブラリを使用してデバイス・アプリケーションを作成し、Oracle Fusion Cloud IoT Intelligent Applicationsインスタンスと直接通信します。
デバイスがプログラム可能でソフトウェア配備をサポートしている場合は、いくつかの言語オプションから選択できます。Oracle Fusion Cloud IoT Intelligent Applicationsには、デバイス接続と機能をサポートするアプリケーションの作成に使用できる、次のようなソフトウェア開発クライアント・ライブラリがいくつか用意されています。
- Java Standard Edition
- JavaScript
- Cポシックス
- ベッド
- Microsoft Windows
- Android
- Apple iOS
Oracleクライアントソフトウェアライブラリのいずれかを使用してデバイスアプリケーションを開発すると、デバイス環境に利点があります。
- デバイスのアクティブ化とID管理:クライアントソフトウェアは、デバイスの初期アクティブ化プロセスとID管理を処理します。
- JSONメッセージの作成: Oracle IoT Cloudでは、メタデータ・ヘッダーおよびキー/値ペアのペイロードで構成されるJSONメッセージ形式が使用されます。クライアント・ソフトウェアは、入力としてキー値マップのみを使用してメッセージの構成を簡略化します。
- メッセージの格納および転送:クライアント・ライブラリは、断続的なネットワーク接続の問題を処理するために自動格納および転送を実行します。
- デバイス・コマンドのコールバック・ハンドラ: Oracle IoTアプリケーションは、デバイスへの変更に影響を与えるコマンドをデバイスに戻すことができます。クライアントライブラリは、メッセージの受信および適切なコールバックハンドラへのメッセージの配信を処理します。
- ソフトウェア定義エッジ・アナリティクス:ユーザーは、デバイスでエッジ・アナリティクスを実行するためのシンプルなポリシーをOracle IoT Cloudで定義できます。これらのポリシーは、自動的にデバイスにプッシュダウンされ、エッジで実行されます。ポリシーの例としては、メッセージのレイテンシの変更、不明瞭化、サンプル・レートの変更、データ集計、単純な統計式などがあります。
デバイスの間接接続
プロキシを使用してOracle Fusion Cloud IoT Intelligent Applicationsインスタンスと通信することで、デバイスを間接的に接続できます。デバイスがプログラム可能でない場合、または別のOracle service以外にすでに接続されている場合は、このアプローチを選択します。
間接的に接続されたデバイスでは、別のサービスまたはゲートウェイを利用して、デバイスからOracle Fusion Cloud IoT Intelligent Applicationsインスタンスにデータを転送します。間接的に接続されたデバイスは、任意のプロトコルを使用して、デバイス・ネイティブ・プロトコルをOracle Fusion Cloud IoT Intelligent ApplicationsインスタンスへのRESTコールに変換するデータをゲートウェイ・アプリケーションに送信します。
ゲートウェイを使用したデバイスの接続
デバイスからOracle Fusion Cloud IoT Intelligent Applicationsインスタンスへの通信をプロキシするには、ゲートウェイを実装します。
ゲートウェイは、選択したソフトウェア開発環境を使用して作成し、スタンドアロン・コンピュータ、専用ハードウェアまたはクラウド環境にデプロイできるクライアント・アプリケーションです。
Oracle IoT Cloud Gatewayは、ゲートウェイ・クライアント・アプリケーションの構築に使用できるJavaベースのソフトウェア開発キット(SDK)です。SDKで構築されたゲートウェイ・クライアント・アプリケーションは、Javaをサポートする任意のハードウェアおよびオペレーティング・システム、およびARMv6やx86などのLinuxベースのマイクロ・プラットフォームにデプロイできます。
SDKを使用したゲートウェイ・クライアント・アプリケーションの作成およびデプロイには、Oracleのクライアント・ライブラリと同じ利点があります。