Dane zawsze pod ręką

Najważniejsze są metadane

Microsoft odżegnuje się od narzucania konkretnego formatu, w którym mają być przechowywane dane i nie faworyzuje protokołu, za którego pośrednictwem ma być dokonywana synchronizacja. Warto też dodać, że wspierane są różne topologie połączeń.

Na synchronizację wielu, czasami zupełnie różnych źródeł danych ma pozwolić mechanizm polegający na tym, że każdy z dostawców musi przechowywać i udostępniać metadane:

- związane z konkretnym elementem (np. wpisem w kontaktach, wierszem w relacyjnej bazie danych), które pozwalają na stwierdzenie kiedy element został zmieniony (i gdzie);

- ogólne (określane jako "wiedza"), związane ze stanem repliki i odnoszące się jedynie do przechowywanych lokalnie elementów, takich jak kontakty. To właśnie na ich podstawie źródłowy dostawca wie, jakie zmiany powinny zostać przesłane do dostawcy końcowego.

Tylko dzięki tym informacjom możliwe jest wykrywanie konfliktów i aktualizacja danych. Co jednak będzie w przypadku, gdy ktoś chce synchronizować aplikację, a nie wolno mu wprowadzać zmian w schemat bazy danych - jest to poważny problem w wypadku rozwijanych od dawna aplikacji - lub wolałby tego uniknąć? Rozwiązanie daje Sync Metadata Store - proste w użyciu API, które pozwala na zapis danych w bazie SQL Server Compact Edition, czyli plikowej bazie, której silnik działa zarówno na urządzeniach przenośnych z zainstalowanym .Net Compact Framework, jak i na "zwykłym" frameworku.

Dopiero na początku drogi

Wszystko wskazuje na to, że najtrudniejszym zadaniem wymaganym do wdrożenia Sync Framework jest stworzenie odpowiedniego dostawcy. Obecnie do dyspozycji są jedynie dostawcy odpowiedzialni za synchronizację plików i baz danych (Sync Services For ADO.NET). Według zapowiedzi Microsoftu wkrótce mają pojawić się kolejni, choć wciąż jeszcze nie wiadomo dokładnie, jakie to będą moduły.

A nie ulega wątpliwości, że stopień trudności wdrożenia zacznie zmniejszać się w momencie publikacji kodu kolejnych dostawców. Podobny model sprawdził się już w przypadku dostawców w ASP .Net 2.0 - społeczność dość szybko udostępniła otwarte implementacje dla wszystkich możliwych magazynów danych, od plików XML po relacyjne bazy danych.

Formaty danych w Sync Frameworku nie są narzucone, ale dostawcy i tak muszą uzgadniać wspólny format, w jakim będą przesyłane dane. Niesie to ze sobą kolejny problem - jaką serializację danych należy zastosować i jak ustalać identyfikatory dla synchronizowanych elementów, tak by były "zrozumiałe" dla innych dostawców?

Wizja rozwoju technologii Sync Framework prezentowana przez przedstawicieli Microsoftu wydaje się jednak bardzo trudna do zrealizowania: synchronizacja dwóch komputerów za pośrednictwem pendrive'a, praca na plikach w trybie P2P, brak utraty danych w przypadku konfliktów, efektywne wykorzystanie pasma i wysoka tolerancja wobec jakości połączenia internetowego. Nie należy jednak zapominać, że Sync Framework znajduje się jeszcze w fazie CTP (Community Technology Preview), co oznacza, że do momentu opublikowania jego finalnej wersji wiele jeszcze może się zmienić.

Dowolność protokołów?

Wprawdzie Sync Framework pozostaje niezależny od konkretnych protokołów, ale jego twórcy sugerują stosowanie SSE (Simple Sharing Extensions). Jest to otwarta specyfikacja oparta na licencji Creative Commons, która pozwala na udostępnianie dowolnych danych za pomocą rozszerzeń do formatów RSS i ATOM. Sync Framework pozwala na automatyczne ich generowanie i przetwarzanie.


TOP 200