Saturday, April 23, 2011

Jak bude řešena offline funkcionalita u netbooků a dalších zařízení spotřební elektroniky?

Dnešní doba připravila a neustále připravuje pro tvorbu počítačových aplikací specifické podmínky. Díky v posledních letech bouřlivému rozvoji webu, dostupnosti připojení k internetu a stále narůstající popularitě malých notebooků a chytrých telefonů můžeme konstatovat, že web se stal platformou pro tvorbu aplikací v plném slova smyslu. Pokud tedy mluvíme o plnohodnotném řešení, přichází v potaz problém řešení offline funkcionality takových aplikací, na který bych se rád v tomto článku stručně zaměřil.

Nejprve se tedy pokusím vymezit termín „offline funkcionalita“. Můžeme si představit modelovou situaci. Běžný uživatel vyřizuje v kavárně na svém netbooku e-mailovou korespondenci. Připojení k internetu v kavárně (jak už to tak někdy bývá) selže a uživatel při pokusu odeslat e-mail, na kterém půl hodiny usilovně pracoval, objeví místo informace o úspěšném odeslání jen chybovou hlášku ohledně nenalezení serveru, data se samozřejmě ztratí. V nalézání podobných příkladů bychom mohli s úspěchem pokračovat. Řekněme tedy, že offline funkcionalita webové aplikace by umožňovala uživateli pokračovat v práci s aplikací i mimo dosah aktivního připojení k internetu. Dokonce by umožnila aplikaci spustit nezávisle na dostupnosti konektivity. Samozřejmě se nabízí otázka, zdali je vzhledem k dnešní dostupnosti připojení třeba takovou situaci vůbec řešit. Musím však podotknout, že internet zatím „všude“ dostupný není (tramvaje, metro…) a bylo by krátkozraké zaměřit se v této problematice pouze na dostupnost zdrojů aplikace. V určitých oblastech aplikace permanentní připojení nevyžadují, pokud by tedy byl program schopen pracovat offline a online by byla řešena pouze synchronizace (např. při psaní mailu může být uživatel odpojen, připojil by se pouze při odeslání), znamenalo by to určitě v ne malé míře úsporu spotřeby energie, což je u mobilních zařízení stále velice žádoucí. Aplikace by byla odolná vůči výpadkům spojení, což by ocenili zejména uživatelé chytrých telefonů.

Pro offline funkcionalitu je dostupná celá řad řešení, jako jsou například Dojo Offline nebo Zibra Desktop. Tyto a jim podobné nástroje vyžadují instalaci u koncového uživatele, v některých případech se jedná jen o částečné řešení, kdy je aplikace zaměřena na určitou oblast, např. mailový klient, kalendář... Aplikace pak musí být navržena v souladu s principy použitého offline nástroje. K masovému rozšíření těchto řešení však nedošlo. Pokud má být cílovou skupinou běžný uživatel, je nanejvýš důležité, aby nástroj byl jednoduchý a pokud možno od uživatele nevyžadoval žádnou interakci. Za zmínku stojí také projekt Google Gears, který měl danou problematiku řešit jako zásuvný modul do webového prohlížeče. Hlavní myšlenka byla offline dostupnost informací (např. Gmail, Goolge Docs). Jsou podporovány prohlížeče MS Internet Explorer 6+ a Mozilla 1.5+. Řešení bylo zaměřeno i na platformu Windows Mobile a Android. Funkčnost tohoto nástroje byla však diskutabilní a společnost Google sama rozhodla vývoj ukončit a otevřít zdrojové kódy k tomuto projektu. Důvodem je zřejmě nástup HTML5, který pro offline funkcionalitu předepisuje vlastní „standardní“ řešení. Google tedy pravděpodobně bude investovat do vývoje a propagace svého prohlížeče Google Chrome, jehož verze 10 má dnes podíl kolem 15% uživatelů (převzato ze statistik w3school.org). Navíc aplikace napsané v souladu se standardem HTML5 budou fungovat ve všech prohlížečích, které tento standard implementují, ne jen v Goochle Chrome.

Věnujme tedy nakonec pár slov zmíněnému standardu HTML5. Jeho největší výhodou je fakt, že se jedná o standard. Znamená to tedy, že by ho prohlížeče měly implementovat a programátoři používat (jaká je realita nechávám se zdvořilým dovolením na čtenáři). HTML5 poskytuje v zásadě dva nástroje pro řešení offline funkcionality webových aplikací. Jednak je to Offline Application HTTP Cache. V tomto případě se jedná o lokální uskladnění (cache) zdrojů aplikace na základě jejich vyjmenování v tzv. manifestu. Na tomto řešení bych vyzdvihl jeho jednoduchost, ale i skutečnost, že je již v aktuálních verzích prohlížečů podporováno. Aplikaci je tedy možné zobrazit nezávisle na připojení k internetu. Problém však zůstává v zachování funkcionality, která může být v závislosti na typu aplikace značně omezená až nulová. Druhé a komplexnější řešení, SQL-based Database API, poskytuje rozhraní pro práci s indexovanou relační databází. Spolu s předchozím zmíněným by tedy mohlo poskytnout plnohodnotnou offline dostupnost aplikace, jak ve smyslu dostupnosti zdrojů (face aplikace), tak v dostupnosti její funkcionality. Aplikace by mohla veškeré zápisy do databáze provádět lokálně a po opětovném navázání spojení by došlo k synchronizaci. Opět bych chtěl vyzdvihnout jednoduchost práce s DB, což by mohlo přispět k popularitě takového řešení. Současné prohlížeče však klientskou databázi zatím nepodporují. HTML5 nabízí i rozšíření objektového modelu prohlížeče o atribut „onLine“ a událost “online/offline“, což by se dalo využít při implementaci vlastního řešení. Nakonec zbývá jen otázka, kdy bude standard dokončen a jaká bude jeho podpora v nejrozšířenějších webových prohlížečích. Konsorcium W3 se nechalo slyšet, že by měl být standard hotov v roce 2014. Nezapomeňme, že je také potřeba zajistit, aby uživatelé využívaly nejnovější verze webových prohlížečů (berme v úvahu i mobilní platformy), jinak takové řešení nemá šanci.

V závěru jen krátké zamyšlení. Podle současných trendů se zdá, že HTML5 je budoucnost řešení této problematiky nabízející komplexní nástroje i potenciál pro rozšíření. Věří tomu pravděpodobně i společnost Google. Je ale otázka, co vlastně přesně uživatelé netbooků a dalších mobilních zařízení potřebují. Je nutné vytvářet rozsáhlá komplexní řešení? Další léta nám, doufám, přinesou odpověď…

Jan Pavlovský

Zdroje:

VAN KESTEREN, Anne ; HICKSON, Ian . W3C [online]. 2008 [cit. 2011-04-14]. Offline Web Applications. Dostupné z WWW: http://www.w3.org/TR/offline-webapps/

VAN KESTEREN, Anne ; PIETERS, Simon . W3C [online]. 2011 [cit. 2011-04-14]. HTML5 differences from HTML4. Dostupné z WWW: http://dev.w3.org/html5/html4-differences/

WHATWG [online]. 2011 [cit. 2011-04-14]. HTML Living Standard. Dostupné z WWW: http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#offline

MACICH , Jiří. LUPA.cz [online]. 2011 [cit. 2011-04-14]. Google Gears definitivně končí, budoucnost je v HTML 5. Dostupné z WWW: http://www.lupa.cz/zpravicky/google-gears-definitivne-konci-budoucnost-je-v-html-5/

Google Gears [online]. 2011 [cit. 2011-04-14]. General Info: Where can I use Gears? . Dostupné z WWW: http://gears.google.com/support/bin/answer.py?hl=en&answer=79876

MILIAN, Mark. Los Angeles Times [online]. 2009 [cit. 2011-04-14]. What's powering Web apps: Google waving goodbye to Gears, hello to HTML5 . Dostupné z WWW: http://latimesblogs.latimes.com/technology/2009/11/google-gears.html

W3school.com [online]. 2011 [cit. 2011-04-14]. Browser Information. Dostupné z WWW: http://www.w3schools.com/browsers/

KILIÁN, Karel. Interval.cz [online]. 2010 [cit. 2011-04-14]. Google utlumí a postupně ukončí vývoj Gears. Dostupné z WWW: http://interval.cz/clanky/google-utlumi-a-postupne-ukonci-vyvoj-gears/

PROCHÁZKA, David. Digitálně.cz [online]. 2010 [cit. 2011-04-14]. Http://digitalne.centrum.cz/podil-google-chrome-prudce-roste-2/. Dostupné z WWW: http://digitalne.centrum.cz/podil-google-chrome-prudce-roste-2/

VEČEŘA, Zdeněk . ŽIVĚ computer [online]. 2011 [cit. 2011-04-14]. Google Chrome 10: Jubilejní desátá verze. Dostupné z WWW: http://www.zive.cz/clanky/google-chrome-10-jubilejni-desata-verze/sc-3-a-156151/default.aspx

GRIGSBY, Jason . Cloud Four [online]. 2009 [cit. 2011-04-15]. HTML5 from a Mobile Perspective. Dostupné z WWW: http://www.cloudfour.com/html5-from-a-mobile-perspective/

No comments:

Post a Comment