Tulevaisuus on täällä! Massiiviset ja kalliit työpöytäsovellukset ovat jääneet historiaan ja ne on korvattu ilmaisilla ja yksinkertaisilla websovelluksilla. Taulukkolaskenta, tekstinkäsittely, sähköposti, kalenteri... Lista Ajaxin valtaamista sovellusalueista on jo lähes loputon. Jopa vanhanaikaisesta paikkatiedosta ja GIS-ohjelmistoista tuli trendikkäitä ja suosittuja Googlen julkistettua ilmaiset Google Earth ja Google Maps palvelunsa – puolivalmiina betana tietysti.
Mikä ihmeen Ajax?
Ajax on Web 2.0 -arkkitehtuurin avainkomponentti, joka on nimitys nipulle vanhoja tuttuja webteknologioita. Nimen Ajax (Asynchronous JavaScript and XML) keksi ja esitti Adaptive Path -nimisen webdesign yrityksen johtaja Jesse James Garrett vuonna 2005 artikkelissaan Ajax: A New Approach to Web Applications.Ajaxista on nopasti tullut lähes de facto –työkalu websovellusten käyttöliittymän luomiseen. Garrett (2005) määrittelee Ajaxin kokoelmaksi itsenäisiä teknologioita, jotka yhdistettynä ovat enemmän kuin osiensa summa. Hänen mukaansa Ajax koostuu:
- XHTML- ja CSS-standardien mukaisesta esitystavasta
- dynaamisesta sivun päivityksestä ja vuorovaikutuksesta DOM:n avulla
- datan siirrosta ja manipuloinnista XML- ja XSLT-tekniikoilla
- asynkronisesta datan vastaanotosta XMLHttpRequest-olion kautta
- kaiken sitomisesta yhteen JavaScriptia käyttäen
Ajaxin käyttökohteita ovat esimerkiksi automaattisesti päivittyvät sivut, työkaluvihjeet, automaattisesti täydentyvät lomakkeet, edistykselliset käyttöliittymäkomponentit ja virheiden tarkistus lennossa (Aselsson & Schutta, 2007). Ajax itsessään ei tarjoa menetelmiä kuvan tai äänen streamaamiseen, mutta se voidaan toteuttaa esimerkiksi yhdessä Flash-tekniikan kanssa.
MacVittien (2006) esittää, että 93 prosenttia käytössä olevista selaimista tukee Ajaxia. Tämän ulkopuolelle jäävät mobiilikäyttäjät ja ne käyttäjät, jotka ovat estäneet JavaScriptin käytön selaimessaan. Lukema on noussut hurjasti, sillä vielä vuoden 2005 lopulla vain 78 prosenttia selaimista tuki Ajax-tekniikoita (Nielsen, 2005).Ajaxin vahvuudet
Ajax parantaa osittain websovellusten käytettävyyttä, sillä Ajax-sovellukset reagoivat heti käyttäjän toimenpiteisiin eikä häiritseviä sivunlatauksia tarvita. Lisäksi Ajax-sovellukset ovat nopeampia perinteisiin websovelluksiin verrattuna, koska ne minimoivat palvelimen ja asiakkaan välisen liikennöinnin (Paulson, 2005). Garrett (2005) muistuttaa, että perinteinen HTTP:n pyyntö-vaste -malli on suunniteltu hypertekstille, eikä sovelluksille. Perinteinen malli pystytään muokkaamaan sovellusystävällisemmäksi tuomalla käyttöliittymän ja palvelimen väliin Ajax-moottori.Ajax mahdollistaa aivan uudenlaiset websovellukset, jotka vastaavat enemmän perinteisiä työpöytäsovelluksia kuin websivuja. Ajax-sovelluksien yhteydessä ei voidakaan puhua enää välttämättä www-sivusta, vaan ennemminkin juuri www-sovelluksesta.
Myös sovelluskehittäjien suhteen Ajax on vahvoilla, koska Ajaxin sisältämien teknologioiden (mm. JavaScript) osaajia on jo entuudestaan paljon. Lisäksi alustariippumattomuus (write once, run via Web) ja toimivuus kaikissa selaimissa ovat kehittäjien mieleen (Paulson, 2005)
Ajaxin heikkoudet
Ehkä suurimpana ongelmana Ajaxin suhteen on sen mahdollistama uudenlainen käyttöliittymä webiin ja uudenlainen navigointikulttuuri. Nielsen (2005) kritisoi Ajaxia, koska se rikkoo perinteisen webin selaamisen mallin ja sivu-ajattelun. Myös kaikenlaiseen kikkailuun ja ”Ajaxia Ajaxin takia” –mentaliteettiin sortuminen heikentää palvelujen käytettävyyttä.Kehittäjien näkökulmasta Ajax tuo myös haasteita. Pienten Ajax-komponenttien lisääminen sovellukseen onnistuu useimmilta kehittäjiltä helposti, mutta laajojen Ajax-kokonaisuuksien hallinta onnistuu äärimmäisen harvalta. Toisaalta oppimiskynnys on verrattain matala. (Paulson, 2005)
MacVittie (2006) leimaa Ajaxin olevan vielä raakileen asteella ja yhteentoimivuuden Ajax-ratkaisujen välillä olevan lähes olematonta. Hänen mukaansa suurimmat riskit liittyvät tietoturvaan, hallintaan ja käyttöönottoon. Ajax-sovellusten liikenteen oikeellisuus pitää tarkistaa tiukalla seulalla, jottei tietoturva vaarannu (eg, SQL injection, cookie poisoning).
Aselsson & Schutta (2007) muistuttavat, että Ajax-sovelluksissa datan validointi on toteutettava aina myös palvelinpäässä, koska käyttäjä saattaa olla estänyt JavaScriptin käytön selaimessaan.
Ajaxin käyttöönottoa saattavat osaltaan hillitä kehittäjien pahat muistot takavuosien DHTML-sovelluksista. Myös JavaScriptillä itsellään on kehittäjien keskuudessa huono maine, osin syystä, mutta sitä on myös sanottu maailman väärinymmärretyimmäksi ohjelmointikieleksi. JavaScriptin pääongelmana ovat erot selainvalmistajien implementoinneissa, mutta myös muistivuodot voivat yllättää.
Ajaxin tulevaisuus
Ajax kilpailee pääasiassa Adobe Flashin, mutta osaltaan myös Microsoftin ActiveX:n ja Sunin Javan kanssa. Kilpailijoiden heikkouksina ovat useimmiten alusta- tai versioriippuvuudet. Toisaalta Flash-tekniikoita ja Ajaxia on onnistuneesti yhdistelty jo kaupallisissakin palveluissa (eg, Flickr) ja Adobe uskookin näiden tekniikoiden yhteiseloon.Lyhyen historiansa aikana Ajaxin suosio on lähtenyt räjähdysmäiseen kasvuun ja samalla on havahduttu työkalujen tarpeeseen. Useita ohjelmointikehyksiä onkin julkaistu ja ne kehittyvät nopeasti (eg, GWT, YUI, Dojo, Spry, Atlas, xAjax). Kunnollisten työkalujen myötä Ajaxin käyttöönotto helpottuu myös kriittisimmissä sovelluksissa ja kehitystyön nopeus ja laatu paranevat.
Eräs Ajaxin tulevaisuuden kannalta ratkaiseva asia on standardointi. Vaikka sen erilliset komponentit on standardoitu (EcmaScript, DOM), itse Ajax-alustan standardointi on aivan lapsen kengissä. OpenAjax Alliance (openajax.org) on perustettu vuonna 2006 ajamaan Ajax-ratkaisujen avoimuutta ja yhteistoiminnallisuutta. Mukana on runsaasti alan merkittävimpiä toimijoita (mm. Google, Microsoft, Adobe).
Yksi asia on varmaa. Tulemme näkemään yhä mielenkiintoisempia ja hyödyllisempiä websovelluksia, on ne sitten toteutettu Ajaxin tai jonkin kilpailevan teknologian avulla.
Lähdeaineisto
Asleson, R. & Schutta, N. (2005). Foundations of Ajax. Apress, Berkeley, CA.Garrett J. J. (2005). Ajax: A New Approach to Web Applications. Published Feb 18, 2005. http://www.adaptivepath.com/publications/essays/archives/000385.php
MacVittie L. (2006). Danger 2.0. Network Computing. Oct 26, 40-53.
Nielsen, J. (2005). Why Ajax Sucks (Most of the Time). Jacob Nielsen’s Alertbox. Dec 2005. http://www.usabilityviews.com/ajaxsucks.html
Paulson, L. D. (2005). Building Rich Web Applications with Ajax. Computer, vol. 38, no. 10, 14-17.
7 comments:
Aikaisemmin olen ollut tekemisissä Flashin kanssa, koska se tarjoaa mielestäni sivustojen graafisen ulkoasun ja interaktiivisuuden luomiseen hyvät puitteet. Esityksesi oli niin hyvä, että nyt täytyy paneutua tarkemmin myös Ajax-ohjelmointiin.
Olen ollut selvillä Ajaxin periatteista, mutta tuo yksinkertainen ohjelmointiesimerkki selvitti täsmälleen mistä on kysymys. Vaikka itse enää en tee ohjelmia, niin toisen tekemän koodin näkeminen ja selostuksen kuuleminen auttaa ymmärtämään.
Se malli, että saadaan rikas käyttöliittymä työpöydälle ilman erillistä ohjelmistoversioiden jakelua antaa kokonaan uusia toimintamalleja. Mielenkiintoista nähdä, koska yritysten tietohallinto kiinnostuu tosissaan tästä. Ehkä SOA-kuumeen jälkeen seuraa jonkinlainen Ajax-kuume sopivalla kolmikirjaimellisella lyhenteellä nimitettynä.
Ilmaiset verkosta saatavat toimisto-ohjelmat ovat varmasti kotikäyttäjille houkutteleva vaihtoehto, mutta nämä web-sovellukset vaativat aukinaisen verkkoyhteyden. Eli off-line-tila tuottaa ongelmia.
Odottelen innolla jonkinlaista graafista kehitysympäristöä, jossa vedä ja pudota -periaatteella saisi luotua hienoa toiminnallisuutta. Ei kai tuo graafinen käyttöliittymä enää periaatteessa kovin kaukana voi olla.
Kiinnostavaa saada tietoa suhteellisen selkeässä muodossa käyttöliittymän takana olevasta asiasta. Käyttäjänä toki toivon vain, että sivustot toimivat. Uusi kiinnostava asia, jonka kehitystä voi tulevaisuudessa seurata.
Ajax oli itselleni aiemmin aivan outo käsite, vaikkakin huomasin käyttäneeni sen tarjoamia ilmaisohjelmia. Ajax vaikuttaa todella mullistavalta idealta ja uskoisin, että se innostaa useita tietokoneen käyttäjiä opettelemaan omien ohjelmien ja nettisivujen koodaamista. Toisten tekemien koodien näkeminen on varmastikin opettavaista.
Näissä kehittyneissä sovelluksissa saattaa tulla ongelmia tietoturvan kanssa.
Tietoturvaohjelmistot eivät välttämättä hyväksy interaktiivisen sovelluksen käyttöä web-sivulla.
Aina silloin tällöin sivu saattaa mennä kokonaan jumiin, kun websivulla on näitä kehittyneempiä juttuja.
Post a Comment