複数のサーバーで、1つのローカルリソースを共有

Deeplからの自動翻訳

ユーザーが同じマージサーバーアプリケーションの多くのインスタンスに接続する必要がある場合があります。このような場合、マージされたクライアントアプリケーションは、サーバー接続と同じ数のローカルリソースをダウンロードします。しかし、サーバーのリソースフォルダーが巨大な場合、これは時間、ボリューム、ネットワークのかなりの消耗になりえます!幸いなことに、4D v18 R5には、このシナリオのためのソリューションがあります!

上の図のように、リモートアプリケーションを複数のサーバーに接続すると、システム内のこのローカルリソースフォルダを取得することになります。

blank

サーバーの時間のかかるリソースフォルダーを使用するのではなく、これらの厳密に同一のサーバー間で同じローカルリソースフォルダーを共有することができるのです。

レガシーREMOTEアプリケーション

新しいbuildAppキーは、ローカルのResourcesフォルダーを共有するために自由に使用できます。

<BuildApp>
<CS>
<ClientServerSystemFolderName>myApp</ClientServerSystemFolderName>

サーバーに接続すると、サーバーの情報がアプリケーションのビルド時に設定した文字列に置き換わります。最終的なキーは、同じコンピューターでいくつでもリモートアプリケーションを使えるようにするために残しています。これで、ローカルのResourcesフォルダはこのようになります。

blankサーバーへの接続は、常に内蔵のログインダイアログを使用して行うことができます。この場合、使用されるキャッシュフォルダは、カスタム情報(アプリケーション名、IP、ポート)で構成されたものではなく、アプリケーションのビルド時に設定されたものであることがわかります。

REMOTEでCUSTOM接続ダイアログを実行する

このブログ記事では、マージされたリモートアプリケーションで、従来の4D接続ダイアログの代わりに接続データベースを使用する方法について学びました。この動作は、OPEN DATABASE コマンドでカスタム 4DLink ファイルを使用することに基づいています。

4DLinkファイルの新しいキーcache_folder_nameを使って、ローカルリソースのルート名を定義することができます。

このブログの記事と同じ例で、サーバー選択ダイアログのコードスニペットを以下に示します。 FormselectedServer は4Dサーバーの情報を含んでいます。

If (Form.selectedServer#Null)
C_TEXT ($xml)
C_OBJECT ($link)
$xml :="<?xml version="1.0" encoding="UTF-8"? ><database_shortcut is_remote="true" server_database_name="FA_RemoteConnexionServ" server_path=""+Form.selectedServer.IP+": "+Form.selectedServer.portID+"\" cache_folder_name=""+Form.selectedServer.customCacheFolder+"\"/>"
$link :=Folder(fk user preferences folder).file("server.4dlink")
$link .setText($xml)
OPEN DATABASE ($link.platformPath)
End if

留意点

サーバーアプリケーションのパッケージを変更した場合、ローカルリソースの自動更新は、異なるパッケージごとに実行されます。しかし、すべてのサーバーアプリケーションパッケージが厳密に同一である限り、ローカルリソースは必要なときだけダウンロードされます。

Avatar
- プロダクトオーナー - Damien Fuzeauは、2019年2月に4D Productチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。ナント大学のソフトウェア工学科を卒業。前職の会社では最初は開発者として(1997年に4Dを発見)、後にエンジニアリングマネージャーとソフトウェアアーキテクトとして、23年以上勤務しました。この会社は、4DのOEMパートナーであり、現在は数千のユーザーと数百のサーバーに向けて4Dベースのビジネスソフトを展開しています。ですから、Damienは、多言語環境での4D開発・導入に慣れています。