コンポーネントアーキテクチャ
ThingWorx Navigate コンポーネントのコンポジション
ThingWorx Navigate コンポーネントは複合コンポーネントです。これらは複数の小規模なサブコンポーネントで構成されており、同時に、ビジネス価値を付加する強力なコンポーネントが作成されます。
通常、各 ThingWorx Navigate コンポーネントはユーザーインタフェースサブコンポーネントとビジネスロジックサブコンポーネントの 2 つのサブコンポーネントで構成されています。
ユーザーインタフェースサブコンポーネント
ユーザーインタフェースサブコンポーネントは、次の 2 つのタイプのいずれかになります。
マッシュアップ - 複数のウィジェットとバインドがある ThingWorx マッシュアップ。
ウィジェット - ThingWorx の外側に作成される単一のウィジェットで、これはパッケージ化されて ThingWorx にインポートされます。これは通常、Web コンポーネントテクノロジで記述されています。
ユーザーインタフェースサブコンポーネントは、サービスを介してビジネスロジックサブコンポーネントと通信します。
ビジネスロジックサブコンポーネント
ビジネスロジックサブコンポーネントは、バックエンドシステムからビジネスデータを読み込んで処理します。ビジネスロジックサブコンポーネントは、Thing Shape、Thing Template、Thing などの ThingWorx エンティティで構成されています。これは、サービスを介してユーザーインタフェースサブコンポーネントと通信します。
ビジネスロジックサブコンポーネントは、強力なカスタマイズを可能にするために設計されています。これにより、次の機能が提供されます。
1. データを取得して処理するビジネスロジックをカスタマイズ
2. ビジネスロジックのカスタマイズをサポートするための新しいコンフィギュレーションポイントを追加
ビジネスロジックサブコンポーネントは、カスタマイズを有効にするための一般的な ThingWorx モデルに従います。ベースビジネスロジックと呼ばれる抽象的な Thing Template には、ビジネスロジックサブコンポーネントの共通機能がすべて含まれています。固有の各実装は、ビジネスロジックの実装と呼ばれる Thing Template で実行されます。ThingWorx サービスは 1 つの Thing に対してのみ実行できるため、各ビジネスロジックの実装 Thing Template は、1 つの Thing によって実装される必要があります。
コンポーネントのコンフィギュレーション
ThingWorx Navigate コンポーネントは、本質的にはコンフィギュレーション可能です。デザインタイム中に、マッシュアップにコンポーネントを追加すると、コンポーネントのすべてのコンフィギュレーションパラメータを単一の JSON コンフィギュレーションオブジェクトとして指定できます。将来的には、各パラメータを個別に設定できるユーザーインタフェースを提供する予定です。
JSON ベースのコンフィギュレーションオブジェクトの構造は、ベースビジネスロジック内で定義されます。このコンフィギュレーション構造の定義をコンポーネント定義と呼びます。これは、JSON 定義のスキーマとして機能し、どのコンフィギュレーションパラメータを使用できるか、特定のパラメータが必須かどうか、および各パラメータがコンフィギュレーション構造内のどこにあるかを定義します。
ベースビジネスロジックには、拡張可能なコンポーネント定義内の特定の点も含まれます。これらの点は定義フックと呼ばれ、これらの点にオーバーライド可能なフックサービスが添付されます。ビジネスロジックの実装は、これらのフックサービスを使用して、特定の実装が必要とする追加のコンフィギュレーションパラメータを受け入れるようにコンポーネント定義を拡張します。この拡張されたコンポーネント定義を実装定義と呼びます。
設計上、ThingWorx Navigate コンポーネントは堅牢です。一般的な JSON コンフィギュレーションオブジェクトは多数の設定対象のパラメータで構成されています。作業を迅速化し、不要なエラーを回避するため、ThingWorx Navigate にはコンポーネントごとに 1 つ以上の定義済みコンフィギュレーションが付属しています。各定義済みコンフィギュレーションは、コンポーネントの設定時に名前が付けられ、選択できます。定義済みコンフィギュレーションを選択すると、JSON コンフィギュレーション全体が自動的にコンフィギュレーションボックスを設定するため、JSON コンフィギュレーション全体を作成することなくコンフィギュレーションを微調整できます。
前述のアーキテクチャを説明するために、アイテムリストコンポーネントについて見てみましょう。
アイテムリスト
これは役に立ちましたか?