V některých případech se může stát, že se uživatelé budou muset připojit k mnoha instancím stejné sloučené serverové aplikace. V takovém případě sloučená klientská aplikace stáhne tolik místních prostředků, kolik je připojení k serveru. Pokud je však složka zdrojů vašeho serveru obrovská, může to znamenat značnou časovou, objemovou a síťovou zátěž! Naštěstí má 4D v18 R5 pro tento scénář řešení!
Připojení vaší vzdálené aplikace k několika serverům, jak je popsáno na výše uvedeném obrázku, vede k získání této místní složky zdrojů v systému:
Namísto časově náročné složky Prostředky na serveru máte možnost sdílet stejnou místní složku Prostředky mezi všemi těmito striktně stejnými servery.
Starší aplikace REMOTE
Pro sdílení místní složky Resources máte k dispozici nový klíč buildApp:
<BuildApp>
<CS>
<ClientServerSystemFolderName>myApp</ClientServerSystemFolderName>.
Při připojení k serveru se informace o serveru nahradí řetězcem, který jste nastavili při sestavování aplikace. Poslední klíč jsme ponechali, abyste mohli na jednom počítači používat libovolný počet vzdálených aplikací. Místní složka Resources nyní vypadá takto:
K serveru se můžete kdykoli připojit pomocí vestavěného přihlašovacího dialogu. V tomto případě se již nepoužívá složka mezipaměti složená z vašich vlastních informací (název aplikace, IP a port), ale složka nastavená při sestavování aplikace.
REMOTE spuštění DIALOGU pro připojení CUSTOM
V tomto příspěvku na blogu jsme se naučili, jak ve sloučených vzdálených aplikacích používat databázi připojení místo staršího dialogu připojení 4D. Chování je založeno na použití vlastního souboru 4DLink s příkazem OPEN DATABASE.
V souboru 4DLink můžete definovat kořenový název místních zdrojů pomocí nového klíče cache_folder_name.
Na stejném příkladu jako v dříve zmíněném příspěvku na blogu uvádíme úryvek kódu z dialogového okna pro výběr serveru, kde Form.selectedServer obsahuje informace o serveru 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
Mějte na paměti
Pokud změníte balíček serverové aplikace, provede se automatická aktualizace místních zdrojů pro každý jiný balíček. Pokud jsou však všechny vaše balíčky serverových aplikací striktně identické, místní zdroje se stahují pouze v případě potřeby: při prvním připojení k serveru!