ORDAを使用して、クライアント/サーバーモードでパフォーマンスを向上させる

Deeplからの自動翻訳

ORDAを使用して、Client/Serverモードで大きなテーブル(特にリレーションを持つテーブル)にアクセスすることが、大幅に強化されました。4D v17 R5では、LANのパフォーマンスは2-3倍、WANのパフォーマンスは最大30倍向上しています。そして、何よりも素晴らしいのは、あなたのコードを変更する必要がなく、すべて自動で行われることです。面白いでしょう?では、詳しく見ていきましょう。

通常、クライアントアプリケーションでレコードを読み込むと、そのレコードのすべてのフィールドがサーバーから転送されます。不要なフィールドも含めてです。したがって、パフォーマンスは、アプリケーションの設計、データベース構造、およびネットワーク機能に依存します…特に複数または大規模なフィールドを持つ大規模なテーブルを使用している場合。例えば、低速のWAN上で、選択ベースのリストボックスでわずか数フィールドを使用している場合(多くの関係/フィールドと大きなテキスト/画像を持つ数十フィールドのテーブルの)、あなたのアプリケーションはすぐにサービス停止になります。

ORDAのリクエストは、以前は同じフィールドロードの原則を使用していました…今までは!v17 R5では、サーバーが各データクラスで必要な属性を分析し、関連する属性を特定するため、サーバーとクライアントの間で要求されたデータのみが転送されるようになります。

ケーススタディ

これらの改善点を説明するために、簡単なデータベースを使用してみましょう。

Bookテーブルには1,000のレコードがあります。Bookテーブルには1,000のレコードがあり、summaryフィールドには100から2,000文字、thumbnailフィールドには10KB程度の画像が含まれています。関連するAuthorテーブルでは、biographyフィールドは各レコードに10,000文字含まれています。

このデータベースを使用して、2つの選択ベースのリストボックスを作成しました。1つはORDAエンティティ選択、もう1つはクラシック選択を使用しています。それぞれのリストボックスでは、リレーションを有効にするために、本のタイトルとその著者を表示するようにしました。また、リストボックスを自動的にスクロールさせるアクションを追加し、人間の操作によって結果が乱されないようにしました。

下の表の測定値は、ビデオの例のサーバーとクライアントの間で送信されたTCPフレーム(すべての確認応答を含む)を示しています。クライアントのネットワーク接続は、Wi-Fiタイプ「802.11ac」(ダウンロード250Mbps、アップロード100Mbps、1msの遅延あり)です。

Mode Frames Overall size (bytes) 時間 (ms)
クラシック 4,070 473,924 5,747
オルダ 46 6,744 692

このように、ORDAを使用すると、わずかなフレームしか転送されないことになりますそして持続時間は?ネットワークの速度が遅いほど、ORDAと従来の手法の差は大きくなります。

新しいコンセプトです。OPTIMIZATIONコンテキスト

これは、システムが学習したことを記録し、後で再利用することができます。これを行うには、「context」属性を含むオプションオブジェクトを作成し、オブジェクトをパラメータとして設定する前に目的の値を指定するだけでよい。

If (Form.currentContext=Null)
Form .currentContext:=New object("context"; "contextListboxBookAndAuthor")
End if
Form .books:=ds.Book.all(Form.currentContext)

このオプション・オブジェクトは Create entity selectionコマンドと次のメンバ・メソッドで使用できるようになりました:dataClass.query(),entitySelection.query()、dataClass.fromCollection()、およびdataClass.all().

注:計測表では、できるだけ正確を期すために、コンテキスト機能を有効にしていません。

結論として

ORDAはあなたの開発を簡素化します。

  • コードを変更することなく、情報の転送をスピードアップできます。
  • テーブルから大きなフィールドを移動し、1-1関連テーブルに格納する必要がないため、クライアント/サーバーモードへの影響を防ぐことができます。
  • LANの外にあるサーバーにアクセスする場合、リモートデスクトップ技術を使用せずに、クライアントを直接接続することができます。
Avatar
- プロダクトオーナー - Damien Fuzeauは、2019年2月に4D Productチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。ナント大学のソフトウェア工学科を卒業。前職の会社では最初は開発者として(1997年に4Dを発見)、後にエンジニアリングマネージャーとソフトウェアアーキテクトとして、23年以上勤務しました。この会社は、4DのOEMパートナーであり、現在は数千のユーザーと数百のサーバーに向けて4Dベースのビジネスソフトを展開しています。ですから、Damienは、多言語環境での4D開発・導入に慣れています。