Když si tak pročítám různé články jak v elektronických, tak tištěných mediích, tak mám pocit, že se vývoj aplikací v dnešní době zúžil jen na vývoj „služeb“ a klient se kamsi vytratil a mlčky se předpokládá, že to zvládne webový prohlížeč. Tomu také nahrává další fenomén dnešní doby, ale z oblasti hardwaru, a to jsou různé typy „netbooků“ a stále dokonalejší mobilní telefony. Tuto koncepci jistě znáte pod pojmem SaaS – Software as a Service. Kdykoliv jsem se s někým o SaaS bavil, tak se většinou řešily celkové náklady na vlastnictví (TCO), právní problémy a bezpečnost. Nikdo překvapivě neřešil dva jiné problémy, které vidím jako podstatně závažnější, ale naštěstí řešitelné – dostupnost připojení ke službě a uživatelský komfort.
Dostupnost služeb
Většina služeb využívá jako přenosové médium internet. Pak se můžete ke službě připojit v podstatě odkudkoliv. Kdykoliv jsem v diskuzi o SaaS položil otázku „Opravdu máte vždy připojení k internetu v dostatečné kvalitě?“, tak jsem vždy dostal naprosto sebejistou odpověď, že ano. S tím se nedá nesouhlasit, pokud celý den sedíte v kanceláři nebo doma, kde máte několik nezávislých linek k různým přístupovým bodům do internetu a diesel agregát, který zajišťuje nouzovou dodávku elektřiny.
Možná budete překvapeni, kde všude se v České republice k internetu nepřipojíte a tím pádem ani ke službě, i když vlastníte sebedokonalejší mobilní telefon s podporou sítí třetí generace. Stačí opustit velká města a budete rádi za GPRS s rychlostí na úrovni starého analogového modemu, pojedete Pendolinem do Ostravy a ani si nezatelefonujete. V tuto chvíli je totiž takováto služba nedostupná.
Uživatelský komfort
Díky moderním webovým prohlížečům a „technologii“ AJAX, je možné vytvářet velmi sofistikované webové aplikace, které se způsobem ovládání a komfortem velmi blíží klasickým, „těžkým“, klientům. Takže pokud jako klienta, tím myslím hardwarového, používáte klasické PC, kde máte k dispozici plnohodnotný prohlížeč a nepotřebujete přistupovat k lokálním zdrojům, tak nemusíte pocítit nejmenší problém. Nepříjemná situace nastane v případě, kdy musíte používat jiné koncové zařízení, než je plnohodnotné PC, resp. plnohodnotný webový prohlížeč. Problém může být nejen ve funkcionalitě prohlížeče, který třeba nepodporuje Javascript, ale také v hardwarové výbavě, zejména v rozměrech displeje. Nemusí jít nutně o mobilní telefon. Dnes asi nejrozšířenější netbook má rozlišení 800 x 480 pixelů. Pokud s takto malým rozlišením autor aplikace nepočítal, tak se může aplikace velmi snadno stát nepoužitelnou.
Má tedy smysl dělat aplikace založené na službách?
Samozřejmě že má. Aby byl koncept SaaS použitelný i v situacích, které jsme si popsali ve stručnosti o pár řádků výše, je potřeba, aby byl klient schopen pracovat i ve chvíli, kdy je služba nedostupná a byl optimalizovaný pro různá zařízení, jako jsou třeba mobilní telefony.
Nejdříve se budeme věnovat situaci, kdy máme již existující řešení SaaS a chceme umožnit základní možnost pracovat off-line. Pokud se podíváte na připravovanou specifikaci HTML 5, v kterých se odráží nutnost zabezpečit off-line funkcionalitu, tak v ní najdete dvě novinky – Connectivity events a DOM Storage. Connectivity events informují aplikaci, která běží v prohlížeči o stavu připojení k internetu a DOM Storage poskytuje 10 MB místa pro ukládání lokálních dat. Tím můžeme zajistit základní off-line funkce a při ztrátě spojení například uložit rozdělanou práci. Connectivity events a DOM Storage podporuje také připravovaný Internet Explorer 8.
Pokud chceme poskytnout uživateli co nejkomfortnější možnost pracovat off-line i s ohledem na typ používaného zařízení, tak je vhodné vytvořit klasickou, „těžkou“, aplikaci, která bude využívat službu a bude optimalizovaná pro daný typ zařízení. Koncepce, kdy máte ke službě i „těžkého“ klienta, který je v maximální míře optimalizovaný pro danou službu a hostující zařízení, se označuje S+S, tedy Software + Service. Z principu věci má uživatel mnohem větší komfort práce, tedy i výkonnost a není omezen aktuální možností internetového připojení k dané službě.
Tady můžeme ale narazit na nechuť uživatelů se učit něco nového. Práci s webovým prohlížečem, i když v něm běží aplikace, většina uživatelů nevnímá jako učení se něčemu nového. Aby se odbourala tato bariéra a zlevnil se vývoj, je velmi často jako klient ke službě využívána některá aplikace z rodiny Microsoft Office upravená pro potřeby dané služby. Uživatel pak pracuje ve známém prostředí a nemá pocit, že se musí zase něco učit. Příkladem může být spolupráce Microsoft Excel a Team Foundation Server. Jde o řešení určené pro vedoucí vývojových týmů, kdy mají možnost použít Microsoft Excel k analýze postupu projektu, aniž by museli používat specializovaný nástroj a mohli využít své znalosti práce Microsoft Excel, konkrétně s kontingenční tabulkou.
Služby ano, ale s odpovídajícím klientem
Všechny výše uvedené možnosti (aplikace ve webovém prohlížeči, „těžký“ klient, klient optimalizovaný pro mobilní telefon, rozšíření Microsoft Office) používají například Microsoft Dynamics. Další příklad může služba Virtual Earth. Má k dispozici webové rozhraní, které je ale nevhodné pro použití v mobilním telefonu. Pro mobilní telefon existuje klient, který využívá mapovou službu Virtual Earth a zároveň je schopen pracovat s GPS v mobilním telefonu a chovat se jako navigace. Pokud není služba dostupná, je možné využít lokálně uložené mapy z vyrovnávací paměti. Uživatel má pak možnost si zvolit klienta, který odpovídá jeho potřebám a stylu práce.
Autor článku pracuje jako specialista pro vývojové nástroje ve společnosti Microsoft v České republice.
Více informací o konceptu S+S naleznete na internetových stránkách Microsoft.