Dane zawsze pod ręką

Wraz z pojawianiem się nowych narzędzi dla programistów, takich jak Visual Studio 2008 i SQL Server 2008, Microsoft poszerza ekosystem platformy .Net o Sync Framework, który ma udostępnić mechanizmy uniwersalnej wymiany i synchronizacji danych.

Wraz z pojawianiem się nowych narzędzi dla programistów, takich jak Visual Studio 2008 i SQL Server 2008, Microsoft poszerza ekosystem platformy .Net o Sync Framework, który ma udostępnić mechanizmy uniwersalnej wymiany i synchronizacji danych.

Jednym z ciekawszych wydarzeń, jakie miały miejsce na tegorocznej konferencji TechED Developers w Barcelonie, było ogłoszenie przez Sivaramakichenane Somasegara, wiceprezesa działu Developer Division w Microsoft, wstępnej wersji Sync Framework. Narzędzia te - mylnie uznawane wcześniej jako konkurencja dla Google Gears - wzbudziły duże zainteresowanie wśród społeczności programistów, bo dają nadzieję na szybsze i prostsze tworzenie aplikacji działających w trybie offline.

Uniwersalna synchronizacja

Oprogramowanie dla komputerów mobilnych nie nadąża za rozwojem sprzętu i zmianami stylu pracy w dzisiejszych organizacjach. Ceny palmtopów, laptopów czy urządzeń typu smartphone nie są już przeszkodą dla pracowników mobilnych. Wciąż jest nią jednak aktualny problem związany z pracą w środowisku, które nie ma możliwości bieżącej wymiany danych z serwerem, a co za tym idzie wymaga późniejszej synchronizacji danych.

O ile problemy te są do rozwiązania w przypadku baz danych, to do niedawna nie były dostępne odpowiednie mechanizmy do efektywnej synchronizacji danych między różnymi aplikacjami, które przechowują dane w zupełnie różnych, niezgodnych formatach. Kto wie jak należałoby zsynchronizować dane klientów przechowywane w bazie danych z odpowiadającymi im kontaktami w Outlooku?

Wiele problemów dotyczy także współdzielenia plików. Dobrym przykładem jest praca grupowa nad dokumentem udostępnionym w osobnym zasobie sieciowym. Połączenie sieciowe nie zawsze musi być dostępne, a użytkownik nie chciałby komplikować sobie życia, korzystając z różnego rodzaju innych repozytoriów.

Zestaw tych problemów opisał Philip Vaughn, Group Program Manager w Microsoft, mówiąc: "Dane są składowane w różnych miejscach i zbyt często nie można uzyskać do nich dostępu, ponieważ znajdują się na serwerze lub w repozytorium innej aplikacji, a użytkownik nie ma jednego widoku swoich informacji". A wynika to z tego, że po prostu brakuje swobodnego przepływu danych.

Architektura Sync Framework

Nowy Sync Framework został przygotowany przez Microsoft z myślą o dwóch najważniejszych scenariuszach zastosowań: praca w trybie offline, czyli możliwość pracy z danymi np. w samolocie, oraz synchronizacja danych i plików między wieloma maszynami i urządzeniami (włączając pracę grupową). Wizja Sync Frameworku w podsumowaniu Philipa Vaughna to: "twoje dane, gdziekolwiek jesteś, na dowolnym komputerze, urządzeniu lub usłudze, bez sztucznych barier". Dzięki odpowiednio zaprojektowanej architekturze można synchronizować dane przechowane w różnych aplikacjach i zapisane w różnych formatach, nawet między np. bazą danych a Outlookiem!

Każdy z uczestników synchronizacji ("endpoint" w terminologii Sync Framework) udostępnia dane za pośrednictwem dostawcy - implementacji w dowolnie wybranym języku wspieranym przez Visual Studio 2008. Oznacza to, że jest osobny dostawca dla bazy danych SQL Server i osobny dla Outlooka. Tym samym ukrywana jest specyfika medium i stosowany sposób reprezentacji danych.

Do synchronizacji endpointów potrzebny jest jeszcze kontroler (agent), który decyduje o tym, kiedy należy dokonać synchronizacji i jak należy rozwiązać konflikty. Może być to działający w tle proces, usługa systemowa lub kontroler wbudowany w aplikację. W trakcie synchronizacji każdy z dostawców ma określoną rolę, źródłowy dostawca sprawdza zmiany w stosunku do odbiorcy i wysyła je. Drugi dostawca odbiera informacje o zmianach i wykrywa ewentualne konflikty, za których rozwiązanie odpowiedzialny jest agent.

Typy uczestników synchronizacji

Pełni (full)

Mogą hostować aplikacje, tworzyć dodatkowe repliki i składować dane (komputery osobiste, PocketPC i Smartphone).

Częściowi (partial)

Mogą przechowywać dane, ale nie są w stanie uruchamiać aplikacji (np. karty pamięci). Nie są zdolni do aktywnej aktualizacji metadanych, potrzebują do tego aplikacji działającej na innym urządzeniu (która periodycznie przeszukuje medium w poszukiwaniu zmian).

Prości (simple)

Nie mogą składować nowych danych ani hostować aplikacji, mogą tylko udostępniać informacje (np. za pośrednictwem RSS).

Nie jest możliwa bezpośrednia synchronizacja między częściowymi uczestnikami. Dostawcy oraz agent synchronizacji muszą być hostowani na innym urządzeniu/maszynie.


TOP 200