Il peut arriver que vous ayez besoin que les utilisateurs se connectent à de nombreuses instances de la même application serveur fusionnée. Lorsque cela se produit, l’application client fusionnée télécharge autant de ressources locales que de connexions au serveur. Mais si le dossier Ressources de votre serveur est énorme, cela peut représenter une charge considérable en termes de temps, de volume et de réseau ! Heureusement, 4D v18 R5 a une solution pour ce scénario !
En connectant votre application distante à plusieurs serveurs, comme décrit dans l’image ci-dessus, vous obtenez ce dossier Ressources local dans le système :
Plutôt que d’utiliser le dossier Ressources du serveur, qui prend beaucoup de temps, vous avez la possibilité de partager le même dossier Ressources local entre tous ces serveurs strictement identiques.
Applications REMOTE héritées
Une nouvelle clé buildApp est à votre disposition pour partager le dossier Ressources local :
<BuildApp>
<CS>
<ClientServerSystemFolderName>myApp</ClientServerSystemFolderName>
Lors de la connexion à un serveur, les informations du serveur sont remplacées par la chaîne que vous avez définie lors de la construction de l’application. Nous avons conservé la dernière clé pour vous permettre d’utiliser autant d’applications distantes que vous le souhaitez sur le même ordinateur. Le dossier Ressources local ressemble maintenant à ceci :
Vous pouvez toujours vous connecter au serveur en utilisant la boîte de dialogue de connexion intégrée. Dans ce cas, le dossier de cache utilisé n’est plus celui composé de vos informations personnalisées (nom de l’application, IP et port), mais celui défini lors de la construction de l’application.
Exécution à distance du DIALOGUE de connexion PERSONNALISÉ
Dans ce billet de blog, nous avons appris comment utiliser une base de données de connexion au lieu de l’ancien dialogue de connexion 4D dans vos applications distantes fusionnées. Le comportement est basé sur l’utilisation d’un fichier 4DLink personnalisé avec la commande OPEN DATABASE.
Vous pouvez définir le nom de la racine des ressources locales en utilisant la nouvelle clé cache_folder_name dans le fichier 4DLink.
En utilisant le même exemple que dans l’article de blog mentionné précédemment, voici l’extrait de code d’un dialogue de sélection de serveur où Form.selectedServer contient les informations relatives au serveur 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
N’oubliez pas
Si vous modifiez votre package d’application serveur, la mise à jour automatique des ressources locales sera effectuée pour chaque package différent. Mais tant que tous vos paquets d’applications serveur sont strictement identiques, les ressources locales ne sont téléchargées que lorsque cela est nécessaire : à la première connexion au serveur !