2011-01-18 14 views
5

Programuję aplikację mobilną w Sencha Touch, a backend to Rails. Odkryłem, że oddzielałem te dwa coraz więcej, gdy wchodzę głębiej w Sencha: gdzie Im zasadniczo w punkcie, w którym Rails funkcjonuje tylko jako mój model przechowywania (baza danych) i Sencha ściąga wszystko, czego potrzebuje poprzez JSON - odtwarza wiele logiki już obecnych w szynach.Zarządzanie użytkownikami/sesjami między Sencha Touch i Rails (backend)

Moje pytanie, czy radzicie, jeśli chodzi o delegowanie funkcji do każdej aplikacji? Zaimplementowałem REST w mojej aplikacji Sencha, aby mógł komunikować się z Użytkownikiem i powiązanymi danymi oraz przechowywać go w tym samym formacie.

Czy to właściwy sposób na zarządzanie sesją użytkownika? Czy powinienem oddać więcej mocy na tory? IE: gdzie mam przechowywać sesję? Czy mogę to zrobić na serwerze? Czy powinienem to zrobić jako zarządzanie pamięcią sesji? Lokalny magazyn? Po prostu nie wiem.

Byłbym wdzięczny za radę. Dzięki.

Odpowiedz

7

To nie jest konkretna odpowiedź na twoje pytanie, ale chciałbym dodać, że uważam, że jesteś na właściwej linii, i nie martwiłbym się, że przekroczyłeś linię architektoniczną, że tak powiem.

Sieć przechodzi od jednego z wyrenderowanych dokumentów (gdzie serwer zrobił absolutnie wszystko, a przeglądarka była zasadniczo głupi) do tego, w którym przeglądarka i serwer są bardziej symetrycznymi rówieśnikami - a twoje wyzwania stają się bardziej w zasięgu dwóch pełnoprawnych Aplikacje MVC zsynchronizowane!

(Możliwe, że możemy zobaczyć świat, w którym serwery stają się dość głupie, w stosunku do bogactwa aplikacji po stronie klienta. Myślę, że to tylko kolejny cykl grubego klienta/cienkiego klienta wahadła, które zostały huśtawka od dziesięcioleci ;-))

To nie jest tylko jakiś arbitralny problem z informatyką - urządzenie mobilne może mieć częściowy lub sporadyczny zasięg sieciowy, a więc ostatecznym testem projektowania aplikacji jest wypracowanie czy użytkownik może kontynuować pracę nad aplikacją, gdy urządzenie jest w trybie offline - na przykład w tunelu - a następnie ponownie zsynchronizować, gdy sieć będzie znów dostępna. Bogaty, responsywny klient to naprawdę jedyna droga.

W tym scenariuszu przechowywanie sesji bogato w przeglądarce wydaje się rozsądnym krokiem. W rzeczywistości łatwiej jest utrzymać synchronizację stanu sesji między jednym klientem a serwerem, niż w przypadku innych typów rekordów danych (które mogą być manipulowane przez wielu klientów jednocześnie).

+0

Interesujące. Coraz częściej stwierdzam, że jest to prawda podczas programowania. Mój pierwotny, zarozumiały pogląd polegałby na opracowaniu nowego zestawu widoków Railsowych dla aplikacji mobilnej - ale twoje prawa - osobne struktury MVC wydają się zapewniać najlepsze wrażenia w zakresie reagowania. – JBlake

+0

True- "(Możliwe, że możemy zobaczyć świat, w którym serwery stają się dość głupie, w stosunku do bogactwa aplikacji po stronie klienta. Myślę, że to tylko kolejny cykl grubego klienta/cienkiego klienta huśtawka od dziesięcioleci ;-)) " – arvindwill

Powiązane problemy