2011-01-18 10 views
5

Sto programmando un'applicazione mobile in Sencha Touch con il backend in Rails. Ho scoperto che ho separato sempre di più i due mentre approfondisco Sencha: dove Im fondamentalmente nel punto in cui Rails funziona solo come memoria del mio modello (database) e Sencha utilizza tutto ciò che serve tramite JSON - riproducendo gran parte della logica già presente nei binari.Gestione utenti/sessioni tra Sencha Touch e Rails (backend)

La mia domanda è cosa consigliare quando si tratta di delegare le funzioni a ciascuna applicazione? Ho implementato REST nella mia app Sencha in modo che possa comunicare Utente e dati associati e archiviarlo nello stesso formato.

È questo il modo giusto per la gestione della sessione utente? Devo ridare più potenza alle rotaie? IE: dove immagazzino la sessione? Posso farlo sul server? Dovrei farlo come gestione della memoria di sessione? Memoria locale? Non lo so.

Gradirei qualche consiglio. Grazie.

risposta

7

Questa non è esattamente una risposta specifica alla tua domanda, ma vorrei solo aggiungere che penso che tu sia sulla buona strada, e non sarei preoccupato che tu abbia oltrepassato la linea architettonica, per così dire.

Il web sta andando da uno dei documenti resi (dove il server ha fatto assolutamente tutto e il browser era essenzialmente muto) ad uno in cui il browser e il server sono più peer simmetriche - e le vostre sfide diventano più in giro per mantenere due a tutti gli effetti App MVC in sincronizzazione!

(Probabilmente, potremmo vedere un mondo in cui i server diventano piuttosto stupidi, in relazione alla ricchezza delle applicazioni sul lato client. Immagino che questo sia solo il prossimo ciclo del pendolo thick-client/thin-client che è stato oscillazione per decenni ;-))

Ma per i dispositivi mobili, questo non è solo un problema arbitrario di informatica: il dispositivo mobile potrebbe facilmente avere una copertura di rete parziale o sporadica, e quindi il test finale del design dell'applicazione è risolvere il problema se l'utente può continuare a lavorare sull'app quando il dispositivo è offline, guidato in un tunnel, ad esempio, e quindi risincronizzarsi una volta che la rete è nuovamente disponibile. Un cliente ricco e reattivo è davvero l'unica strada da percorrere.

In questo scenario, archiviare la sessione in modo dettagliato nel browser sembra un passo ragionevole. In effetti, è più facile mantenere sincronizzato lo stato della sessione tra un singolo client e un server rispetto a quello che potrebbe fare per altri tipi di record di dati (che potrebbero essere manipolati da più client contemporaneamente).

+0

Interessante. Sto scoprendo che questo è vero sempre di più durante la programmazione. La mia idea originale sarebbe quella di sviluppare un nuovo set di viste Rails per l'app mobile, ma il tuo diritto: le strutture MVC separate sembrano fornire la migliore esperienza in termini di reattività. – JBlake

+0

Vero- "(Probabilmente, potremmo vedere un mondo in cui i server diventano piuttosto stupidi, in relazione alla ricchezza delle applicazioni sul lato client. Immagino che questo sia solo il ciclo successivo del pendolo thick-client/thin-client che è stato oscillare per decenni ;-)) " – arvindwill