Abbiamo sviluppato un’app online con InDe Cloud, questa si interfaccia con un’applicazione Foundation e lavora completamente tramite Web API.
Funzionare funziona ma ci sono problemi prestazionali, specialmente in fase di compilazione a step in cui devi impostare valori padre-figlio-nipote selezionandoli da una lista autocomplete.
Queste liste vengono sempre richieste via Web API, anche il filtro viene eseguito lato server e sono restituiti i valori pertinenti, tutto questo richiede alcuni secondi per essere operativo, poi magari si velocizza un po’ ma non troppo.
Qualcuno ha dei suggerimenti su come ottimizzare l’utilizzo di un’applicazione online di questo tipo? Magari senza trasformarla offline perché non è il suo scopo
Dimenticavo: l’applicazione lato server è multi azienda quindi un database per ogni azienda.
Avevo pensato ad aggiungere anche una connessione con Cloud Connector ed in base al login connettermi ad uno o l’altro DB solo per la lettura, per la scrittura continuerei a farla con le Web API perché servono degli automatismi che non voglio replicare.
Il cloud connector è comodo ma a volte lento, sempre in quest’ottica se hai la possibilità di connetterti direttamente al DB( se non hai problemi di firewall o altro) puoi provare con la connessione remota diretta tramite il metodo setConnectionOptions.
@d.termini rispetto alle Web API il Cloud Connector è sicuramente più veloce, certo non come una connessione diretta ma certamente rispetto alle Web API.
Poi occorre avere l’accortezza di non fare select che ritonano 100.000 reecord perché mandano in crisi il Cloud Connector.
Sì certo, sicuramente saranno query di lookup quindi niente di troppo pesante (docid, codice, descrizione per il 99% dei casi).
Quello che un po’ mi preoccupa è la gestione delle connessioni per il Cloud Connector, dovrò fare qualcosa di automatizzato che aggiunge la connessione al pool modificando il file di configurazione ogni volta che creiamo una nuova ditta oppure attiviamo la funzionalità per una ditta (questo sarebbe preferibile), se non ricordo male c’è la possibilità di fargli rileggere la configurazione senza riavviare il servizio.
Vorrei evitare di fare una singola connessione con tutti i DB, ma non dovrebbero esserci rischi particolari nel farlo, però potremmo avere la necessità di connettere verso server distribuiti, quindi un sistema di connessioni multiple è d’obbligo.
@d.termini potremmo creare insieme un componente per gestire una struttura del genere con i Cloud Connector che faccia anche monitoraggio e avvisi dei Connector che sono spenti, con un suo database. Ci potrei dedicare del tempo anche io.
Ti faccio sapere se mi accettano l’idea, sicuramente clienti e responsabili non sono contenti delle prestazioni attuali e quindi una soluzione la devo trovare, il problema è sempre il rapporto costi-benefici.