Projektuję system, z którego zsynchronizuję dane biznesowe z urządzenia mobilnego (które mają wbudowaną aplikację), który generuje dane i odsyła je z powrotem na serwer. Każda zsynchronizowana linia generuje określony dziennik biznesowy w bazie danych.
Jeśli to, co synchronizuję, generuje dane z datą (w ramach danych synchronizacji) gorszą od daty ostatniej modyfikacji moich danych biznesowych, muszę to zignorować i po prostu dodać bazę danych logowania. Po przetworzeniu przesłanych danych dane są pobierane z bazy danych i pobierane na urządzenie.
Ze względu na to pobieranie zaraz po zapisie synchronizacja musi być synchroniczna. Nadal można mieć wzorzec odczytu / zapisu, jeśli coś takiego jest wystarczająco warte, aby zastąpić moje istniejące rozwiązanie. Ważniejszą rzeczą jest możliwość pobierania aktualnych danych. Ze względu na to, że dane są pobierane jako całość, nie ma obecnie zaimplementowanej różnicy (może przyjść później, ale to nie będzie problem).
Mogę mieć wiele synchronizacji na tym samym obiekcie biznesowym, jest to mało prawdopodobne, ale może się zdarzyć i wolę być w stanie sobie z tym poradzić. Oczekuje się, że synchronizacja potrwa kilka sekund, ale nie kilka minut, chyba że przez kilka dni będzie używana wbudowana aplikacja mobilna bez ponownej synchronizacji.
Wolumen synchronizowanych danych nie powinien być duży, ani proces synchronizacji.
Skończyło się więc na wzajemnym wykluczeniu mojej metody synchronizacji, a dokładniej używam Javy i zsynchronizowałem metodę pisania, a nie cały proces synchronizacji, aby nie blokować synchronizacji tylko do odczytu.
Chciałbym wiedzieć :
- Czy ten sposób ma sens? Dopóki objętość i czas procesu synchronizacji są nadal dopuszczalne.
- Ogólnie, na jakie pojęcia powinienem spojrzeć. Premia: jeśli istnieje jakakolwiek implementacja tych koncepcji w module Spring.