Mam trzy nadchodzące projekty, które mają wspólny problem:
muszą mieć logikę w systemie internetowym i potrzebują aplikacji lokalnej (np. punktu sprzedaży), która komunikuje się z takim systemem za pośrednictwem usługi internetowej RESTful.
Moje rozwiązanie
Rozwiązaniem, które udało mi się wymyślić, jest zaimplementowanie w kolejce komunikatów aplikacji komputerowej do przechowywania operacji, gdy usługa jest offline, a dokładniej, asynchroniczne kolejkowanie wiadomości . Jest to jednak łatwa część (jeśli takie jest najlepsze rozwiązanie). Zajmuję się również synchronizacją danych i rozwiązywaniem konfliktów.
Główny system musi być oparty na sieci, ponieważ do raportów i monitorowania przez zainteresowane strony wymagana jest aplikacja internetowa, a usługi sieciowe obsługiwałyby żądania dotyczące kilku zakładów.
Klienty stacjonarne (najlepiej cienkie) zostaną zaimplementowane w Javie (a dokładniej Netbeans), a system WWW w Symfony2. Dwa z tych projektów wymagają integracji sprzętowej dla klienta, więc wykonanie aplikacji komputerowej za pomocą technologii internetowej (np. Appcelerator Titanium) może być poważnym problemem.
Moje pytanie
Jakie jest lepsze rozwiązanie, które można skalować, co oznacza maksymalną wydajność przy minimalnym wysiłku (a najlepiej bez dodatkowych kosztów, takich jak zakup serwera zapasowego do pracy lokalnej)?
Kto jeszcze miał z tym do czynienia? Jak rozwiązałeś swój problem? Jakie lekcje możesz udostępnić?
Jak poradziłeś sobie z synchronizacją?
Edycja: Dodano brakującą część do mojego pytania w punkcie # 3