Puede haber ocasiones en las que se necesite que los usuarios se conecten a muchas instancias de la misma aplicación de servidor fusionado. Cuando esto ocurre, la aplicación cliente fusionada descarga tantos recursos locales como conexiones tenga el servidor. Pero si la carpeta de recursos de su servidor es enorme, esto puede suponer un gran gasto de tiempo, volumen y red. ¡Afortunadamente, 4D v18 R5 tiene una solución para este escenario!
Conectando su aplicación remota a varios servidores, como se describe en la imagen anterior, se obtiene esta carpeta local de Recursos en el sistema:
En lugar de utilizar la carpeta de Recursos del servidor, que consume mucho tiempo, tiene la posibilidad de compartir la misma carpeta de Recursos local entre todos estos servidores estrictamente idénticos.
Aplicaciones heredadas de REMOTE
Tiene a su disposición una nueva clave buildApp para compartir la carpeta local de Recursos:
<BuildApp>
<CS>
<ClientServerSystemFolderName> myApp</ClientServerSystemFolderName>
Cuando se conecta a un servidor, la información del servidor se sustituye por la cadena que estableciste al construir la aplicación. Hemos mantenido la clave final para permitirle utilizar tantas aplicaciones remotas como desee en el mismo ordenador. La carpeta local de Recursos tiene ahora este aspecto:
Siempre puede conectarse al servidor utilizando el diálogo de inicio de sesión incorporado. En este caso, la carpeta de caché que se utiliza ya no es la que se compone de su información personalizada (nombre de la aplicación, IP y puerto), sino la que se estableció cuando se construyó la aplicación.
Ejecución remota del DIALOGO de conexión personalizado
En esta entrada del blog, aprendimos cómo utilizar una base de datos de conexión en lugar del diálogo de conexión heredado de 4D en sus aplicaciones remotas fusionadas. El comportamiento se basa en el uso de un archivo 4DLink personalizado con el comando OPEN DATABASE.
Puede definir el nombre raíz de los recursos locales utilizando la nueva clave cache_folder_name en el archivo 4DLink.
Usando el mismo ejemplo que en la entrada del blog mencionada anteriormente, aquí está el fragmento de código de un diálogo de selección de servidor donde Form.selectedServer contiene la información del servidor 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 ("servidor.4dlink")
$link .setText($xml)
OPEN DATABASE ($link.platformPath)
End if
Tenga en cuenta que
Si modifica su paquete de aplicaciones de servidor, la actualización automática de los recursos locales se realizará para cada paquete diferente. Pero mientras todos sus paquetes de aplicaciones de servidor sean estrictamente idénticos, los recursos locales se descargan sólo cuando se necesitan: ¡en la primera conexión al servidor!