ソリューション開発の最良事例 > HA アプリケーションの最良事例
HA アプリケーションの最良事例
JavaScript を正しく記述し、ThingWorx Platform へのラウンドトリップを削減することで、パフォーマンスを向上させることができます。ThingWorx 9 では高可用性クラスタモードをサポートするため、モデルの保存と使用方法が変更され、サーバー間でデータが同期化された状態を維持するための共有状態メカニズムが実装されました。これらの変更によって、同じ情報を取得するために以前よりも多くの処理が行われるようになったので、特定の API のパフォーマンスが影響を受けます。これまでにパフォーマンスが最適化されていなかったコードは ThingWorx 9 では遅くなり、クラスタ環境では非常に低速になる可能性があります。
モデル情報が Thing に保存されなくなり、モデル情報を取得するたびにモデルツリーが探索されます。Thing 情報を取得するすべての API が影響を受けます。
すべての JavaScript サービスの状態がキャッシュレイヤーに保存されるようになりました。
単一サーバーモードでは、これはインメモリキャッシュであり、かなり高速ですが、単に Thing オブジェクトに保存するよりもオーバーヘッドが大きくなります。クラスタモードで実行している場合、キャッシュは分散され、呼び出しのたびにリモートホストへのラウンドトリップが行われます。これにより、呼び出しに遅延が生じ、簡単に制御できなくなります。
キャッシュレイヤーはローカルまたはリモートに設定できます。新しいシステムでは、JavaScript オブジェクトから元のオブジェクトへの一方向プロキシが作成されます。このため、JavaScript オブジェクトを変更するたびに、元のオブジェクトのプロパティが完全に更新されます。また、元のオブジェクトに対する変更は JavaScript オブジェクトに反映されません。
すべてをリモートオブジェクトとして扱う必要があります。リモートオブジェクトでは、リモートギャップ間の呼び出し回数を最小限に抑えて遅延をなくす必要があります。サーバー上で API を呼び出す場合と同じアプローチをとる必要があります。呼び出し回数は少ないほどよいです。
これは役に立ちましたか?