Mam aplikację serwera, która oferuje dane do wielu klientów za pośrednictwem sieci. Możesz wyobrazić sobie dane jako ogromną listę napisów. Dane na serwerze mogą ulec zmianie i wymagają synchronizacji na wszystkich klientach.Czy istnieje wzór do synchronizowania list danych w sieci?
Obecnie używam tego podejścia: przy pierwszym połączeniu aplikacja kliencka żąda wszystkich aktualnych danych (może to być dużo bajtów). Następnie subskrybuje aktualizacje (dodawanie, zmiany i usuwanie) dowolnych danych.
Działa to dobrze, chyba że dane zostały zmienione na serwerze pomiędzy wysłaniem początkowej listy danych a aplikacją subskrybującą zmiany - w takim przypadku klient traci kilka aktualizacji i pracuje nad nieaktualnymi danymi, nie wiedząc o tym.
Uważam, że jest to bardzo powszechny scenariusz, więc powinien istnieć wzór, który rozwiązuje problem. Używam C# 4 i WCF, ale wzór powinien być agnostykiem językowym, który wierzę.