ThingWorx を使用する前に > IoT 向けのプログラミング
IoT 向けのプログラミング
プログラミング規則とビジネスロジック
モノのインターネット (IoT) においては、SQL とデータベースクエリーを使用する従来の手続き型プログラミングモデルとは異なる方法で規則やビジネスロジックがプログラムされています。手続き型プログラミングでは、最初から最後までコードを進め、ロジック制御がアプリケーションのほかの部分に移されます。次のようなプロセスをサポートするためにシステムが設計されていました。
1. データベースにデータをダンプします。
2. 毎日夜間に新しいデータに対してクエリーを実行し、ビジネスロジックを適用します。
3. バッチ操作の出力をデータベースにダンプします。
4. 実行内容を説明するレポートを作成します。
このプロセスは、高速処理が求められる IoT の世界では通用しません。格納後にクエリーを実行するアプローチでは、柔軟性とスピードが不十分です。イベントにリアルタイムで対処する必要があります。
ThingWorx では、しきい値条件に基づいて通知を設定できるイベント駆動アーキテクチャが実現され、イベントが発生するとビジネスロジックを適用するスクリプト機能が提供されます。詳細については、 イベントおよび 購読を参照してください。
アナリティクスの必要性
IoT では大量のデータを考慮する必要があるため、 アナリティクスの方法を検討することが求められます。
If This, Then That (IFTTT) パターンでは、イベントへの対応方法がわかっていることを前提としています。しかし、IoT イベントにはさまざまな対応方法が考えられ、取るべき対応がわからない場合があります。イベントが何かの兆候なのか単なる雑音なのかがわからないこともあります。知りたいのは、Thing によって生成されたペタバイト規模のデータから何を知見として使用すべきかということです。
つまり、If This, Then What (IFTTW) です。
IFTTW では、次のような問いに対する回答を求めます。
メンテナンスを実行すべき時期か?
消耗品を注文すべき時期か?
修理技術者を送るべき時期か?
製品のコンフィギュレーションを調整する必要があるか?
IoT ソリューションとともにアナリティクスエンジンを使用する場合、過去のイベントログを取得するだけではなく、その履歴を使用した解析モデルに基づいて未来予測も行います。
Thing モデルでは、アナリティクスにアセットコンテキストが加わります。モデルで定義されている装置のクラスに基づき、アナリティクスエンジンをトレーニングできます。ほぼリアルタイムのデータ解析に基づいてアセットのアラートや問題を生成するセマンティックインタフェースが提供されます。詳細については、 データ解析定義を参照してください。
Thing を中心としたセマンティックレイヤー
ThingWorx はモデルにセマンティックレイヤーを提供します。これは従来のプログラムによる方法で使用するものではありません。ソリューションに必要な Thing とその特性を考慮する必要があります。オブジェクト指向の ThingWorx モデルを使用すると、共通の機能を上位レベルのオブジェクトに分解し、ビジネスロジックおよび機能をベースオブジェクトにカプセル化して、デジタルの Thing でそれらのベースオブジェクトを継承できます。このプロセスにより、セマンティックレイヤー (エンドユーザーが製品、顧客、収益などの一般的な用語を使用してデータに自律的にアクセスするのに役立つデータのビジネス表現) を作成し、「Thing123、過去 2 時間の温度と場所の履歴はどう?」というような問いを投げかけられるようになります。
モデルのセマンティックは、厳密に型指定された公知の REST APIセットとして公開されます。
ビジュアルアプリケーションビルダー
ビジュアルアプリケーションビルダーは、Thing 中心のセマンティックモデルの結果を使用するための最終ツールであり、ラピッドアプリケーション開発を可能にします。市場にはさまざまなユーザーインタフェース (UI) レンダラーがあります。IoT ソリューションの構築のスピードと柔軟性を最大化するには、データモデルのセマンティックレイヤーを理解し、データモデルの変化に合わせて調整可能なソリューションを使用する必要があります。
モデルの力を素早く活用するには、Edge 、クラウド、Thing モデルの上位のレイヤーを提供する ThingWorx Mashup Builder を使用します。事前に Thing モデルに接続できる、IoT 用に設計されたビジュアルウィジェットがあります。ThingWorx Mashup Builder を使用すると、コーディングを行うことなく、ドラッグアンドドロップでユーザーインタフェースのページを作成できます。ラピッドアプリケーション開発 (RAD) 環境では、UI をより高速に反復できます。ThingWorx Platform の独自の価値は、 プロパティサービスイベントのセマンティックレイヤーを使用して、デスクトップおよびモバイルデバイス向けの最新のアプリケーションを素早く直感的に作成できる点です。ThingWorx の機能により、膨大な数のコネクテッドデバイスで必要とされる何億ものアプリケーションに対応できます。
モデルビューコントローラ (MVC)を参照してください。