DO Remota
copia linkDO Remota
Instant Developer Foundation permette lo sviluppo di applicazioni che utilizzino l'architettura DO (Document Oriented). In questa architettura è possibile definire gerarchie di oggetti il cui collegamento viene gestito automaticamente dal framework di Instant Developer Foundation.
E' anche possibile, utilizzando i Web Services, utilizzare un'architettura ancora più potente, chiamata "DO Remota".
Tale architettura prevede che il Web Service possieda uno o più documenti. Tali documenti sono utilizzabili dall'applicazione client tramite classi proxy. Quando l'applicazione client salva il documento, viene inviata la richiesta (ed il relativo documento) al Web Service, il quale esegue il comando sulla copia locale del documento. Il Web Service, poi, invia il documento all'applicazione client, che in questo modo ri-sincronizza il documento locale con quello posseduto dal Web Service.
Questa architettura permette di disaccoppiare l'applicazione client dal DB. Infatti l'applicazione client potrebbe contenere solo documenti proxy che interagiscono con il DB solo tramite chiamate al Web Service. L'applicazione ed il Web Service potrebbero risiedere su server diversi (Web Service su server sicuro e applicazione Web su server pubblico) garantendo una maggior sicurezza dei dati presenti su DB (in caso di attacco l'unica macchina pubblica è quella dell'applicazione Web mentre la macchina su cui risiede il Web Service potrebbe essere protetta e non visibile su Internet).
Accesso al DB tramite DO Remota. L'applicazione WEB non accede direttamente al DB ma lo fa tramite l'architettura DO Remota (e quindi tramite Web Service).
Utilizzare la DO Remota
Per utilizzare l'architettura DO Remota è sufficiente creare un documento all'interno del Web Service e poi tirarlo sull'applicazione client che vuole utilizzarlo: Instant Developer Foundation crea una copia (proxy) del documento all'interno dell'applicazione client. Ora è possibile utilizzare il documento proxy come qualsiasi altro documento (quindi possiamo creare pannelli tirandolo sull'applicazione client, utilizzarlo in alberi document oriented, etc.).
Il documento Categorie contenuto nel Web Service è il documento originale. Tirandolo sull'applicazione Web in alto, è stato creato il documento proxy Categorie (selezionato nella figura).
Il documento proxy è strettamente collegato al documento contenuto nel Web Service. Quando viene eseguito un comando sul documento contenuto nell'applicazione client, il framework Instant Developer Foundation decide se tale comando deve essere eseguito localmente oppure deve essere inviato al Web Service affinché l'operazione venga eseguita sulla copia originale dello stesso, come mostrato dalla figura seguente:
Esecuzione del comando Save To DB su un documento proxy.
In figura vediamo che l'applicazione ha chiamato il metodo SaveToDB del documento proxy (documento di interfaccia verso il documento originale, posseduto dal Web Service). Il documento proxy chiama il Web Service che possiede l'istanza originale del documento e chiede di eseguire il metodo SaveToDB sullo stesso. Nella richiesta inviata al Web Service è contenuto anche il documento. Il Web Service riceve la richiesta e ne estrae il documento. Poi, sulla copia appena estratta esegue il comando richiesto. Dopo l'esecuzione del comando, il Web Service invia il documento all'applicazione client richiedente in modo tale ques'ultima possa ri-allinearsi (il comando, infatti, potrebbe aver modificato il documento e tale modifica deve essere riportata anche nel documento proxy).
Operazioni locali ed operazioni remote
Non tutti i comandi vengono inviati al Web Service. Il documento proxy invia al Web Service le richieste per eseguire i comandi che operano sul DB (Load, Save) e tutte le chiamate a procedure e funzioni presenti nel documento originale (contenuto nel Web Service).
Se, il documento originale, contiene il metodo "Somma" e nell'applicazione viene chiamato tale metodo, il comando verrà eseguito tramite il Web Service sul documento originale. Allo stesso modo se carichiamo da DB un documento: l'operazione viene eseguita dal documento originale tramte il Web Service.
E' anche possibile definire metodi solo locali. Per fare questo possiamo aggiungere procedure e funzioni all'interno del documento proxy. Tali metodi sono solo locali e vengono eseguiti senza chiamate remote al Web Service.
Il funzionamento appena visto è più efficiente di una remotizzazione pura dell'oggetto. Il documento proxy, infatti, non è solo un'interfaccia verso il documento originale ma è un documento a tutti gli effetti. Nella remotizzazione pura, ogni singola operazione (anche la lettura di una proprietà) deve necessariamente essere eseguita sull'oggetto remoto (questo per far sì che l'operazione venga eseguita sulla copia più aggiornata dell'oggetto). Nel caso della DO Remota questo non avviene. In quest'ultima, infatti, i due documenti hanno vita propria e possono essere disallineati. Lo rimangono finché non occorre, per esempio, salvare il documento sul DB. Tale operazione deve essere eseguita sul documento originale. Per leggere il valore di una proprietà, invece, non occorre interagire con il documento originale. E' sufficiente effettuare la lettura dal documento proxy.
Note
- I seguenti metodi dell'oggetto DO vengono eseguiti tramite chiamata al Web Service: LoadFromDB, LoadCollectionFromDB, LoadCollectionByExample, SaveToDB, GetLock, ReleaseLock. Inoltre l'esecuzione della query di una Value Source DO, come pure l'esecuzione di una query Smart Lookup DO vengono eseguite tramite il Web Service.
- L'esecuzione di metodi e procedure remote definiti dall'utente (e contenuti all'interno del documento originale) vengono effettuati tramite chiamata al Web Service. Dopo l'esecuzione degli stessi, il documento viene ri-allineato dal framework (cioè il documento proxy viene ri-allineato al documento remoto dopo che il metodo remoto è stato eseguito).
- L'esecuzione di metodi e procedure locali definiti dall'utente (e contenuti all'interno della classe proxy) non effettua chiamate al Web Service. Questo può essere utile se vogliamo eseguire calcoli o aggiornamenti dell'istanza proxy senza accedere al documento originale.
Ultima modifica: 11/10/2021 / Validità: da 6.5.2680