Ho tre progetti in arrivo che condividono un problema comune:
they need to have the logic on a web system and they need a local application (e.g. point of sale) that communicates with such system through a RESTful web service.
La mia soluzione
La soluzione che sono riuscito a realizzare è implementare nell'applicazione desktop accodamento dei messaggi per archiviare le operazioni mentre il servizio è offline, più precisamente, accodamento di messaggi asincroni . Tuttavia, questa è la parte facile (se tale è la soluzione migliore). Mi occupo anche della sincronizzazione dei dati e della risoluzione dei conflitti.
Il sistema principale deve essere basato sul Web poiché è necessaria un'app Web per i report e il monitoraggio da parte degli stakeholder e i servizi Web gestiscono le richieste per diversi stabilimenti.
I client desktop (preferibilmente sottili) saranno implementati con Java (più specificamente Netbeans) e il sistema web con Symfony2. Due dei progetti richiedono l'integrazione dell'hardware per il cliente, quindi rendere l'applicazione desktop con tecnologia Web (ad esempio Appcelerator Titanium) potrebbe essere un grosso problema.
La mia domanda
-
Qual è la soluzione migliore che si adatta alle dimensioni, ovvero la massima efficienza con il minimo sforzo (e preferibilmente senza costi aggiuntivi, come l'acquisto di un server di backup per le operazioni locali)?
-
Chi altri l'ha già trattato? Come hai risolto il tuo problema? Quali lezioni puoi condividere?
-
Come hai gestito la sincronizzazione?
Modifica: aggiunta una parte mancante alla mia domanda al punto # 3