czwartek, 31 maja 2007

Google Gears

Tak jak wspomniałem bardzo ważną cechą aplikacji Rich Internet Application jest możliwość pracy w trybie offline. Do tej pory Flash Player oferował możliwość zapisywania danych w trybie offline jako Shared Object (100KB), Firefox 2 miał własny mechanizm typu DOM Storage (przechowując dane do wielkości 5 MB) natomiast IE posiadał mechanizm o nazwie persistence user data (userData behavior do 1 MB). To co widać było kontynuacja tego co miały do zaoferowania "ciasteczka", Dalszy rozwój zależy od tego jak zaimplementuje się w przeglądarkach HTML 5 a szczególnie część 4.1.1 (sessionStorage i globalStorage). Ale programiści okazali się szybsi i już myślą o implementacji baz danych w przeglądarkach tak żeby webdeveloperzy po stronie przeglądarek używali baz danych. Silverlight 1.1 już miał propozycję aby programiści zaczęli stosować System.IO.IsolatedStorage i System.Linq. Ta propozycja polega na przeniesieniu programowania SQL do obsługo dokumentów XML. W pewnym sensie to jest odpowiedz na E4X w Flash Playerze 9. W tej sytuacji Google postanowiło przejąć inicjatywę i w współpracy z Adobe, Mozilla, i Operą zaproponowało rozwijanie wspólnego rozszerzenia dla przeglądarek umożliwiającego programowanie aplikacji offline tworząc wspólne API oparte na SQLite. Jest to projekt "Google Gears". Opracowano już wtyczkę dla przeglądarek IE i Firefox pod Windows Linuksa oraz MacOS. Adobe dołączy tą funkcjonalność do Adobe Apollo i WebKit. Natomiast Opera prawdopodobnie zaimplementuje to w przeglądarce w wersji 10

Czym jest to API Google Gears? Umożliwia ono przechowywanie lokalnie danych zasobów w relacyjnej bazie danych, dzięki której aplikacje mogą synchronizować dane z internetem. Aplikacje internetowe mogą wtedy pracować offline. Moduł bazy danych pozwala na przechowywanie danych w relacyjnej bazie danych. Dużą korzyścią wtedy będzie pełnotekstowe przeszukiwanie danych tekstowej zawartości w bazie danych. Architektura z warstwą danych po stronie przeglądarki pozwala na różną synchronizację danych z internetem pozwalając na zmniejszenie ruchu w internecie, gdyż dane będą synchronizowane gdy będzie taka potrzeba. Za to jest odpowiedzialny moduł WorkerPool. On wykonuje w tle skrypty JS niezależnie od skryptów obsługujących GUI. Twórcami tej technologii są kod źródłowybloga także forum dyskusyjne.

Aplikacja Google, która już wykorzystuje to rozszerzenie to Google Reader. Pewnym rozwiązaniem nad którym pracuje Google dzięki wykorzystaniu Google Gears będzie Google Mashup Editor. Najciekawsze "demo" przedstawiające możliwości współpracy Google Gears z Adobe Flex 2 zostało napisane przez Christophe Coenraets (zawiera też kod źródłowy).
Zastanawiam się na ile to rozwiązanie spowoduje tworzenie nowych aplikacji AJAX, a próbą zdefiniowania czym jest Rich Internet Application. Przypuszczam że powstanie określenie "Web 2.0+" oznaczające aplikacje internetowe, które będą działać w trybie offline. Pozostają do rozwiązania kwestie związane z obsługą synchronizacji danych pomiędzy stanem offline a online. Ciekawe może być wykorzystanie "wielowątkowości" w tego typu aplikacjach internetowych.

Brak komentarzy: