Bez bazy ani rusz

Większość aplikacji biznesowych dla platform mobilnych musi komunikować się z bazą danych. Nic dziwnego, że dzisiaj już każdy producent baz oferuje wersję dla urządzeń typu PDA.

Większość aplikacji biznesowych dla platform mobilnych musi komunikować się z bazą danych. Nic dziwnego, że dzisiaj już każdy producent baz oferuje wersję dla urządzeń typu PDA.

Bez bazy ani rusz

Mobile@Connector po wygenerowaniu aplikacji potrafi uruchomić rozwiązanie w zintegrowanym emulatorze PocketPC

Spójność danych jest jednym z fundamentów dobrego systemu informatycznego. W tradycyjnych architekturach serwer bazodanowy pilnuje, by przechowywane przezeń dane były spójne i spełniały nałożone ograniczenia. Zapewnienie spójności jest znacznie trudniejsze w systemach mobilnych, gdzie informacje są modyfikowane w różnych miejscach i z opóźnieniem przekazywane serwerowi.

W przypadku klasycznych aplikacji klient/serwer i trójwarstwowych, działających przy stałym połączeniu z bazą, nawet jeśli dwóch użytkowników zmieni ten sam rekord czy tę samą wartość w kolumnie, to konflikt ujawni się natychmiast i użytkownik będzie mógł samodzielnie zdecydować, jakie działanie ma podjąć system. W przypadku PDA wykrycie i usunięcie konfliktu jest możliwe dopiero w momencie synchronizacji między aplikacją a serwerem.

Podstawowe mechanizmy synchronizacji spotykane w urządzeniach PDA to replikacja typu snapshot i merge. Pierwsza polega na tym, że serwer źródłowy wysyła dane do urządzenia docelowego. Urządzenie docelowe tylko "przegląda" informacje. Ewentualnie można pozwolić, by każde miało swój zakres danych, które zmienia.

Replikacja typu merge działa tak, że w momencie wymiany danych z centralnym serwerem są rozwiązywane konflikty, np. gdy dwie osoby zmodyfikują ten sam rekord i będą próbować zapisać go do bazy (zwykle wtedy druga osoba jest informowana o tym, że dane zostały już zmienione przez kogoś innego). Dokładny sposób rozwiązania konfliktów zależy od konkretnego przyjętego mechanizmu synchronizacji.

Generalnie przy replikacji typu merge serwer działający na PDA "nagrywa" operacje użytkownika (zwykle jest tu wykorzystywany mechanizm triggerów wyzwalanych po zmianach w bazie na PDA).

Wymiana każdy z każdym

MobiLink jest wyspecjalizowanym serwerem firmy Sybase, który pozwala na wykonywanie synchronizacji między wieloma zdalnymi bazami danych i jednym docelowym serwerem. Warto dodać, że MobiLink dobrze współpracuje zarówno z bazami Sybase, jak i produktami Oracle, Microsoft SQL Server czy IBM DB2.

MobiLink pozwala na dużą elastyczność i bardzo dokładną kontrolę procesu synchronizacji. Z poziomu interfejsu administracyjnego lub z linii poleceń definiuje się zakres danych, które mają być synchronizowane. W przypadku wystąpienia konfliktów do ich rozwiązywania może być wykorzystywany albo komponent napisany w SQL, albo procedura w Javie. Co ciekawe, można definiować różne scenariusze postępowania w zależności od tego, kiedy określony sposób rozwiązywania konfliktu ma być zastosowany. Można zażądać, aby MobiLink nie wykonywał właściwej synchronizacji, a tylko wygenerował skrypt zawierający dane.

Sybase ma w ofercie specjalną wersję bazy danych UltraLite (obecnie w wersji 8.0.1), którą instaluje się na urządzeniu przenośnym. Jeżeli MobiLink będzie wykorzystywany do wymiany danych z PocketPC lub Palm OS, wtedy proces synchronizacji może być zintegrowany z aplikacjami typu ActiveSync i HotSync odpowiedzialnymi za wymianę danych między PC a PDA. Synchronizacja w UltraLite jest "zamykana" w nawiasach transakcyjnych. Ponieważ w wyniku przenoszenia danych log transakcji może nadmiernie rosnąć, określa się przypadki, w których transakcja jest potwierdzana podczas synchronizacji.

UltraLite jest ciekawym rozwiązaniem, chociażby dlatego że inaczej niż SQL 2000 CE czy Oracle, nie jest po prostu "odchudzoną" dużą bazą danych, a zupełnie odrębnym produktem, dostosowanym do pracy na urządzeniach przenośnych. Jako część aplikacji, baza UltraLite zajmuje zaledwie 50 KB! Przy tworzeniu obrazu instalacyjnego programista może wybrać, jakie polecenia SQL mają być uwzględniane w motorze instalowanym na urządzeniu przenośnym. Aplikacje wykorzystujące UltraLite można pisać albo przy użyciu C/C++ (dostępne są specjalne biblioteki do CodeWarrior 8), albo Javy. Powstał specjalny generator aplikacji MobileBuilder (firmy PenRight!), który tworzy za pomocą języka C programy przeznaczone głównie dla Palm OS 4.x. UltraLite dobrze integruje się z tym narzędziem.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200