Ho intenzione di fornire funzioni aggiuntive per un'applicazione per punto vendita di terze parti a sorgente chiusa. Tale applicazione è utilizzata nei ristoranti, viene eseguita su Windows e utilizza i database in stile dbase. Conosco i dettagli sulla struttura del database (hey, è DBase , quindi non è un grosso problema ;-)) e sono in grado di leggere e correlare le tabelle.
L'applicazione viene eseguita dietro un firewall né io né la maggior parte dei client possono influenzare, quindi l'apertura delle porte in entrata sul firewall non è possibile.
Le funzioni aggiuntive che fornisco possono essere utilizzate in un'applicazione ospitata esternamente o in un'app su uno smartphone ( iOS o Android non ha importanza qui, lo farò di più probabilmente usa Apache Cordova per questo)
I miei problemi sono ottenere i dati fuori . Nel mio attuale design / architettura ho intenzione di utilizzare MQTT per pubblicare i dati dal sito dei clienti a un server situato su Internet in cui può essere recuperato dall'app / applicazione. Purtroppo non ho esperienza con MQTT e non so se sarebbe meglio adottare un approccio / alternativa diverso e utilizzare solo MQTT per pubblicare dati e aggiungere un livello REST aggiuntivo per l'applicazione / l'app.
Ecco i miei criteri per rendere MQTT la "decisione giusta"
- supporto autenticazione per pubblicare e recuperare dati (nessuno deve essere in grado di falsificare dati o recuperare dati per un sito che è non ha diritto di vedere)
- usa il meno possibile larghezza di banda (il mio server e il dataplan per lo smartphone con l'app hanno un limite e io o l'utente verrà addebitato per la larghezza di banda utilizzata oltre tale limite)
- si adattano bene alle varie e complesse strutture JSON (dall'immagine puoi vedere quale tipo di informazioni voglio trasportare, possono essere diverse kilobyte)
- supporta il recupero dei dati utilizzando REST (ho letto che MQTT può essere utilizzato da Javascript e in uno stile REST ma non ho alcuna esperienza più approfondita)
- consentire la segnalazione degli aggiornamenti dal sito all'utente
- consenti elenco (un utente dovrebbe essere in grado di utilizzare REST per recuperare un elenco di siti a cui ha diritto anch'esso) e filtro (quando ad esempio ottenere dettagli su un impiegato l'utente dovrebbe essere in grado di impostare un filtro per il nome dell'impiegato)
LamiapiùgrandedomandaèseMQTTsaràutilizzabiledall'applicazioneweb/Appinunmodo"elegante". Potrei aggiungere in modo relativamente semplice il mio livello REST "sul lato destro dell'immagine" ma non voglio complicare eccessivamente il mio design