セッションストレージへのアクセスを強化
クライアント/サーバー、Web、モバイルなど、様々なセッションタイプのストレージには情報を保存できるため、異なるプロセス間での再利用が簡単におこなえます。
4D 20 R6 では、特定のセッションのストレージにアクセスできるようになりました。この機能強化により、複数のセッションにまたがる同一ユーザーの情報について、連続性と一貫性を簡単に維持することができます。つまり、クライアント/サーバーや Web などの異なるアプリケーションを使用していても、同じ顧客情報を引き出せるということです。
旧式ネットワークレイヤーの廃止
4Dクライアントと4Dサーバー間の通信の管理するためには、4Dでは3つの異なるネットワークレイヤーが用意されています:
- 旧式ネットワークレイヤー
- ServerNet
- そしてQUICです。
旧式ネットワークレイヤーは、30年前の4D v3で導入され、当初はAppleTalk用に開発され、ISDN用に拡張され、その後IPXが追加され、最終的にTCP/IPが追加されました。
これが開発された当初は、現在の4Dのクライアント/サーバー通信とはかけ離れた使い方がされていました。シングルスレッドで、暗号化されていない低速ネットワークに最適化されており、多くの異なるネットワークプロトコルに対応していました。そのため、最新のネットワーク通信にはまったく最適化されておらず、サポートする機能も非常に限られています。
そのため、4D 20 R5では、旧式ネットワークレイヤーを廃止予定とし、近々削除する予定です。まだ旧式ネットワークレイヤーを使用しているのであれば、今すぐServerNetに移行することをお勧めします。この移行によってどのようなメリットが得られるか、ご説明しましょう。
クライアント/サーバー接続とストアドプロシージャーに対応した新しい 4Dリモートセッションオブジェクト
4Dアプリケーションでは、4種類のセッションが存在します。4Dリモートセッション、ストアドプロシージャーセッション、モバイルセッション、Webセッションです。
Sessionコマンドはいままで、Web または モバイルセッションを返しました。これにより、セッションに関する豊富な情報と、セッション内のすべてのプロセスで共有されるオブジェクトにアクセスできます。
4D 20 R5 では、Sessionコマンドの対象がクライアント/サーバー接続とストアドプロシージャーに拡張されました。
Build4Dツールでクライアント/サーバーアプリケーションを作成する
Build4Dコンポーネントの最新版が GitHub で公開されました。以前のブログでは、コンパイル済みのプロジェクトやコンポーネント、そしてスタンドアロンアプリケーションの可能性について説明しました。
今回は、クライアント/サーバーアプリケーション用のスクリプトを作成し、継続的インテグレーション・ツールと簡単に統合できるようになりました。
その方法を紹介します。
SSL/TLS: ECDSA証明書のサポート
4D は SSL/TLS を使用して、クライアントサーバー間の通信と HTTPリクエストを保護します。4D は10年以上前から RSA暗号をサポートしており、4D 20 R3 では ECDSA暗号を追加しました。いい機会なので、セキュリティについて少しお話ししましょう。
ORDA – RESTリクエストの最適化ステップバイステップ (+ A demo)
ORDA/RESTのパフォーマンスは戦略的な問題です。そのため、クライアント/サーバーやリモートデータストアを使用する際のORDA/RESTリクエストの最適化など、このトピックに関連する多くの機能を出荷しています。最近では、ORDA/RESTリクエストの最適化を 完全に制御できるようになりました。
このブログ記事では、ORDA/RESTパフォーマンスゲームのエースとなるために従うべき計画を提供します。このブログポストには、読むべき他のブログ記事、見るべきビデオ、そしてあなたのアプリケーションのパフォーマンスを 迅速かつ容易に 向上させるためのデモが含まれています。
ORDA – RESTリクエストの管理によるパフォーマンスの最適化
これまでのバージョンで、リモートデータストアやクライアント/サーバー構成で作業する際のパフォーマンスを向上させるため、ORDA RESTリクエストが自動的に最適化されることを知りました。
また、ORDA RESTリクエストの自動最適化を利用するために、コンテキストを使用できることも学びました。
これは重要なステップでしたが、今度は RESTリクエストの動作を完全に制御することを提案します。パフォーマンスは戦略的な問題なので、この新機能をぜひ活用してください!
それだけではありません。問題を理解しデバッグするのに役立つ新しいツールも利用できるようになりました。
詳細については、引き続きこのブログ記事をお読みください。
Windows上でのクロスプラットフォーム・クライアント/サーバーアプリケーション構築の簡素化
Silicon Macのリリースは、4Dのアプリケーションのコンパイル方法に大きな影響を与えた。v19以前の4Dは、MacとWindowsで同じコードを使って、Intelアーキテクチャ向けにのみコンパイルしていました。しかし、Silicon Macは新しいアーキテクチャを使用しているため、4DはSilicon専用にコンパイルする必要がある。これは、クロスプラットフォームのクライアント/サーバーアプリケーションの構築に影響を与える。
Macでサーバーを構築する限り、IntelとSiliconの両方のプラットフォームでコンパイルできるので、さほど問題にはならない。しかし、Windowsでは、Silicon Mac用にコンパイルすることはできない。現在のところ、Macで両アーキテクチャ用にプロジェクトをコンパイルし、それをWindowsマシンにコピーしてからサーバを構築することを推奨しています。残念ながら、データ量の多い大きなプロジェクトでは、コピーに時間がかかることがあります。
リモートデバッガ。クライアントでサーバーのコードをデバッグ
クライアント/サーバー開発にはさまざまなシナリオがありますが、そのすべてにおいて、サーバーのデバッガやエラー ウィンドウを見るために、クライアント側とサーバー側を切り換える必要があります。そこで、サーバーコードのデバッグをどこで行うかを決定できるオプションを新たに追加しました。サーバーがヘッドレスなので、クライアントでデバッグする必要がありますか?4Dメニューからクライアントにアタッチするだけです!
ORDA – 関数スコープでAPIを改善する
4D v18 R4とORDAにより、データモデルの上にハイレベルなクラス関数を作成することが可能になりました。これにより、ビジネス指向のコードを書くことで、複雑さを隠し、エラーを減らし、開発プロセスをスピードアップすることができます。
4D v18 R5では、コードの最適化と整理を支援する機能をさらに充実させました。例えば、クライアント/サーバーモードで作業しているときに、パフォーマンスを向上させるために、クライアント上でローカルに関数を実行する必要があるかもしれません。それが可能になりました。また、データベースをRESTサーバーとして公開する場合、サーバーサイドでは利用可能だがRESTクライアントでは非表示にしたい関数があるかもしれません。これも可能です!