Nei, vi snakker ikke om en tur til Rio eller Riga, men om RIA – Rich Internet Applications som sikkert kan fornorskes med noe sånt som “rike internettapplikasjoner” eller “komplekse internettprogrammer”. Med “rike” menes her at interaksjonen mellom brukeren og programmet er mer komplisert enn på tradisjonelle web-sider.
Under WebBuilder2.0 konferansen var dette en gruppe teknologier som stadig ble diskutert. Kort fortalt er RIA definert som programmer som kjører i nettleseren, men som har mer avansert funksjonalitet enn hva vanlige websider tradisjonelt tilbyr. Det kan ofte sees på som å kjøre vanlige skrivebordsprogrammer i en nettleser.
Ett eksempel er Google Docs som er et program for tekstbehandling, regneark og presentasjoner direkte i nettleseren. Det er dog en glidende overgang mellom hva som ansees som vanlige web-applikasjoner og hva som er RIA.
Egenskaper
Fordelene med å også utvikle disse mer komplekse applikasjonene i et web-grensesnitt i stedet for som tradisjonelle applikasjoner er blant annet:
- Lettere installasjon av applikasjonen (trengs ikke installeres lokal på hver maskin, kun en støttet nettleser er nødvendig).
- Egne versjoner for forskjellige operativsystemer er ikke nødvendig (siden programmet ikke installeres lokalt).
- Lettere endringer av applikasjonen, siden oppdateringer gjøres kun ett sted, på serveren.
- Sentral lagring (og backup) av all brukergenerert data.
- En bruker kan ha tilgang til sine programmer (og data) fra en hvilken som helst datamaskin tilknyttet internett.
Av ulemper kan vi nevne:
- Kan være mere krevende å utvikle grunnet den økte kompleksiteten (klient/server kommunikasjon, støtte for forskjellige klient-plattformer, osv.). Dette er grunnen til at flere rammeverk for å støtte denne type applikasjoner nylig er lansert samt at flere er under utvikling.
- Programmer virker ikke viss brukeren ikke er koblet til nettet, dette er dog et problem det jobbes aktivt med. Blant annet Google Gears og Mozillas kommende Firefox 3 prøver å løse dette.
- Kan kreve mer nedlasting enn tradisjonelle “enkle” web-applikasjoner for å starte opp.
Teknologier
Dette er et marked der Adobe (tidligere Macromedia) til nå har vært en av de største pådriverene med sine Flash-baserte løsninger som Flex. Deres siste initiativ heter Adobe AIR (ikke ennå lansert) og vil tillate kombinasjon av Flash-, PDF- og XHTML-innhold. AIR vil dog kjøres som en egen applikasjon, ikke gjennom en vanlig nettleser (AIR kommer heller med sin egen nettleser innebygd).
Tradisjonelt har også Java Applets vært brukt til en del slike løsninger, dog kanskje mer for bedriftsinterne enn åpne løsninger de senere år. Sun har nå annonsert JavaFX som skal bli deres nye alternativ i dette segmentet.
Microsoft har nylig lansert sin løsning for dette som heter Silverlight. Dette formatet støtter blant annet vektorgrafikk, animasjoner og video og har et XML-basert filformat (XAML). Programmering gjøres nå ved hjelp av Javascript. Mens neste versjon av Silverlight vil legge til støtte for utvikling med flere andre språk ved å inkludere en forenklet .NET-implementasjon.
En annen mulighet er å basere seg kun på åpne og standardiserte web-teknologier som (X)HTML og Javascript for å utvikle AJAX-baserte løsninger. En standard som kan være nyttig her er SVG som er W3Cs XML-baserte standard for vektorbasert grafikk. Desverre har SVG kun fått begrenset støtte i nettlesere så langt.
For video er også dagens web-standarder ganske mangelfulle. Ett av forslagene fra WHATWG for HTML 5 er en egen <video>-tag, men hvordan dette skal løses med video-formater og -kodeker er ennå et åpent spørsmål.
Arkitektur
Når det gjelder applikasjonsarkitektur generelt, så vil nok denne type “rike internettapplikasjoner” ha større variasjoner enn hva tradisjonelle webapplikasjoner har hatt.
For eksempel vil det variere hvor mye av applikasjonslogikken som skal ligge på klientene kontra på serveren og hva slags og hvor hyppige overføringer det skal være mellom dem. Klientene blir nok ofte “tykkere”, men hvor mye vil variere med hva applikasjonen faktisk skal gjøre, og et av poengene med RIA er jo at det kan være så mangt!
En annen interessant utvikling er rammeverk som lar deg utvikle én gang, men publisere direkte til flere forskjellige teknologi-plattformer på én gang. DojoX støtter for eksempel både SVG og Silverlight mens OpenLazlo støtter Flash og “DHTML”. Dette kan være brukbare løsninger for å utvikle noe som skal kunne brukes selv om en spesifikk teknologi ikke er tilgjengelig hos en bruker.
Konklusjon
Ser vi samlet på status for disse teknologiene i dag ser det for meg ut som et område med mye aktiv utvikling. Mange av løsningene er ennå ikke lansert (Adobes AIR og Suns JavaFX) og andre har planer om store endringer fra det de nå har tilgjengelig til neste versjon (Microsoft Silverlight 1 til Silverlight 2). Adobe Flex har vært tilgjengelig en god stund, men det har tatt tid å oppnå utstrakt bruk. Dette gjør det vanskelig å si noe om hvilke av disse løsningene som vil slå an i markedet ennå, men at rikere internettapplikasjoner er på vei er jeg ganske sikker på! Ett annet poeng er at siden RIA spenner over et bredt spekter av mulige bruks-scenarioer vil det mest sannsynlig ikke finnes en løsning som er best for alle situasjoner, men være viktig å velge den løsningen som passer best!
2 kommentarer til "Er RIA noe for deg?"
Flex rammeverket kom i versjon 1.0 i 2004 og er overhodet ikke et nytt rammeverk på linje med Silverlight og Java FX.
AIR er også bare en runtime som kjører Flex applikasjoner. Du kan bruke eksakt samme kode i en webløsning som på desktop gjennom AIR.
I tillegg glemmer du en veldig vesentlig ting, nemlig verktøystøtte. AJAX variantene har elendig verktøystøtte og det er egentlig bare Silverlight og Flex som har noe verktøystøtte som faktisk gir utviklerne noen fordeler.
Har oppdatert siste avsnittet så det forhåpentligvis er klarere at Flex ikke er en ny teknologi.
(Forresten så har Flex 3 og AIR nå blitt lansert.)
Når det gjelder verktøystøtte så er jeg enig i at dette er viktig, og noe jeg håper å se nærmere på ved en senere anledning!