Frameworks voor Rich Internet Applications
Januari 2007 - Web 2.0 is een begrip dat niet meer weg te denken is. De ontwikkelingen op het web gaan erg snel. ICT-bedrijven staan voor een nieuwe generatie technologieën waarbij zaken als RIA frameworks, Utility based computing, Software as a Service, de architectuur van applicaties en de inrichting van hosting de aandacht verdienen. In dit whitebook zal er gekeken worden naar web 2.0 en welke RIA (Rich Internet Application) frameworks kunnen bijdragen aan de ontwikkeling van web 2.0 websites. Er komen veel nieuwe frameworks voor het ontwikkelen van web applicaties. ADF Faces, JSF, Google GWT, JBoss Seam, Echo 2, etc. De in dit artikel genoemde frameworks zijn slechts een tipje van de ijsberg. De term RIA, wordt soms ook wel gebruikt voor een Web 2.0 website. Om het onderscheid tussen beide te verduidelijken wordt er eerst toegelicht wat er met Web 2.0 bedoeld wordt alvorens er ingegaan wordt op RIA en RIA frameworks.
Web 2.0
Web 2.0 is een term geïntroduceerd door O'Reilly Media in 2004. Het refereert aan een tweede generatie op internet gebaseerde services, zoals online sociale netwerken, wikis, communicatie tools en folksonomies. Het gaat voornamelijk om online samenwerking en delen van informatie of kennis tussen gebruikers. Web 2.0 heeft als een van zijn voornaamste kenmerken dat het een sociaal en collaboratief netwerk is.
Onderstaande figuur geeft een overzicht van de scope van web 2.0, zoals benoemd door Dion Hinchcliffe in Visualizing Web 2.0:

Figuur 1: Visualisatie van Web 2.0
Een gebrek aan standaarden met betrekking tot Web 2.0, zorgt ervoor dat de term verschillend geïnterpreteerd en uitgelegd wordt door verschillende mensen. Er zijn echter wel een aantal gezamenlijke kenmerken die we over het algemeen aan Web 2.0 sites kunnen toekennen. Dit zijn:
- het netwerk als platform – gebruikers kunnen applicaties gebruiken met behulp van een browser;
- de gebruikers zijn eigenaar van de data op een site en hebben ook invloed op de data;
- gebruikers kunnen door gebruik te maken van de applicatie waarde toevoegen voor zichzelf en andere gebruikers;
- een rijke, interactieve, gebruikersvriendelijke interface (RIA);
- sociale netwerken.
Technologie
Een Web 2.0 website gebruikt doorgaans een of meerdere van de volgende technieken:
- op Ajax gebaseerde rich Internet applicatie technieken (zie Whitebook over Ajax);
- niet op Ajax gebaseerde rich Internet applicatie technieken;
- cascading style sheets (CSS);
- semantische valide XHTML en/of het gebruik van Microformats;
- groepering van belang en aggregering van data in RSS/Atom;
- duidelijke en betekenisvolle URLs;
- gebruik maken van folksonomies (door middel van tags of tagclouds);
- het gebruiken van wiki software;
- het gebruiken van Weblog technieken;
- mashups (zie Whitebook over Kapow Mashup Suite);
- REST of XML Webservice APIs (zie Whitebook over REST).
De term RIA, dat staat voor Rich Internet Application, wordt soms ook wel gebruikt voor een Web 2.0 website. Echter Web 2.0 staat meer voor de wijze waarop internet gebruikt wordt dan een specifieke technologie zoals RIA. Wat zijn RIA’s en met welke frameworks kunnen ze ontwikkeld worden?
RIA
Door de toename van DSL en breedband internet aansluitingen en het gebruik van grotere monitoren, verwachten gebruikers steeds meer een filmische ervaring. RIA voorziet in deze behoefte. Het concept is al langer bekend, echter de term RIA is geïntroduceerd in een Macromedia whitepaper in maart 2002. RIA applicaties zijn Web-based applicaties die in een Web browser draaien en waarvoor geen installatie van software nodig is. Ze kennen echter wel de eigenschappen en functionaliteiten van traditionele desktop applicaties.
RIA staat voor de evolutie van de browser van een statische request-response interface naar een dynamische, asynchrone interface. In de praktijk betekend dit dat de browser kan communiceren met een server zonder dat de gebruiker hier vanaf weet. In traditionele client-server applicaties wordt een server response vertaald en vervolgens bepaald wanneer en hoe dit resultaat het beste getoond kan worden. Echter deze thick-client applicaties moesten wel gedeployed worden op de machine waarop ze draaiden. Browsers namen de problemen met betrekking tot applicatie deployment weg, maar hadden tekortkomingen voor het tonen van rijke content. RIA is er op gericht een combinatie van deze twee te vormen, de rijke content die mogelijk is binnen een traditionele client-server applicatie en het gemak van de browser voor deployment van de applicatie.
Het gaat binnen RIA’s niet alleen om grafische mogelijkheden, het gaat vooral om gebruikersvriendelijkheid. In traditionele webapplicaties werd de gebruiker, na het doen van een verzoek wat niet voldeed aan de verwachting, verplicht om dezelfde pagina’s nogmaals te doorlopen. Verantwoordelijk hiervoor is het hypertext transfer protocol aangezien dit een stateless protocol is. Nadat er via de browser een request is gedaan en de server toepassing hierop heeft gereageerd, is er niet meer bekend wie of welke toepassing het request gedaan heeft. Een RIA browser kan communiceren met een server toepassing zonder zijn ‘state’ te verliezen en zonder de pagina te verversen. Clients kunnen data bijhouden in een lokale XML structuur zonder dat hier de sessie voor gebruikt hoeft te worden. Meer logica zal verhuizen richting de client. De client zal alleen applicatie logica downloaden wanneer dit nodig is. Deze logica zal lokaal opgeslagen zijn in een cache en gebruikt worden wanneer dit nodig is.
Frameworks
Er is een verscheidenheid aan nieuwe methodieken voor het ontwikkelen van RIA’s beschikbaar en er voegen zich continue nieuwe methodieken bij. Een aantal ervan zullen behandeld worden. Een vergelijking zal plaatsvinden op basis van:
- verwacht gebruikersgemak (leercurve, toepasbaarheid);
- verwachte ontvankelijkheid (ondersteuning op de lange termijn, ondersteuning van bestaande standaarden);
- directe kosten.
De meest bekende techniek is nog steeds Ajax, echter er zijn nu al een aantal nieuwe benaderingen die minstens net zo interessant zijn. Het doel is het mogelijk maken van het gemakkelijk ontwikkelen van RIA’s. De meeste hiervan maken het ontwikkelen, management en onderhoud van een RIA, makkelijker en efficiënter dan bij veel Ajax oplossingen mogelijk is. Hoewel Ajax niet meer weg te denken is zijn er wel degelijk tekortkomingen aan de techniek. De voornaamste zijn:
- er is netwerk verbinding nodig om Ajax te kunnen gebruiken;
- vaak worden clicks en acties niet bewaard binnen de browser geschiedenis tabel;
- de back, stop en refresh knop werken niet altijd zoals het hoort;
- er zijn beperkte mogelijkheden voor wat betreft multimedia, lokale data opslag en interactie met hardware zoals printers en webcams.
Ajax kan als aanvulling dienen op traditionele web frameworks en ook de meest recente RIA web frameworks bieden over het algemeen mogelijkheden voor het gebruik van Ajax binnen de oplossing.
Adobe's Flex 2
Algemeen
De tweede versie van Adobe Flex is ongeveer een half jaar geleden uitgebracht. Flex maakt gebruik van een combinatie van een declaratieve opmaak en procedurele code om te specificeren hoe applicaties eruit moeten zien en hoe ze werken. Het biedt een platform met ondersteuning voor web services, messaging zoals ondersteuning voor JMS, portals, server-side event push en meer communicatie protocollen.
Verwacht gebruikersgemak
Flex 2 biedt ontwikkelaars een geïntegreerde toolset voor end-to-end ontwikkeling van RIA webapplicaties. Met de Flex 2 SDK kunnen ontwikkelaars RIA applicaties bouwen en beschikbaar stellen op het web. Voor het ontwikkelen van applicaties voor de desktop is er Apollo, wat ontwikkelaars de mogelijkheid geeft om Flash applicaties op de desktop te deployen. Er is een ontwikkelomgeving Flex Builder 2, een op Eclipse gebaseerde geïntegreerde ontwikkelomgeving (IDE). Deze IDE bevat verscheidene functionaliteiten en diensten voor applicatieontwikkeling en user interface design. Vanwege de declaratieve opmaak, de mogelijke koppelingen met andere Java libraries en de mogelijkheden binnen de Flex Builder 2 IDE is de verwachting dat de leercurve normaal zal zijn.
Verwachte ontvankelijkheid
Adobe heeft gedurende de ontwikkeling van Flex 2 publieke versies uitgebracht en werden alfa en bèta versies beschikbaar gesteld. Zodoende zijn er veel bedrijven en individuen geweest die kennis hebben gemaakt met Flex 2. Er is dus al een breed gezelschap dat gebruik maakt van Flex 2. Hierdoor is er veel informatie, zoals tutorials en voorbeelden, te vinden op diverse sites. Flex 2 maakt gebruik van Flash Player 9 wat betekend dat niet alle pc’s met internet Flex applicaties ondersteunen. Flex 2 maakt echter gebruik van ActionScript 3, de volgende generatie van ActionScript. Ervaren ontwikkelaars zullen weinig moeite hebben deze taal te leren.
Kosten
De Adobe Flex 2 SDK, inclusief Flex framework en command line compiler, is gratis verkrijgbaar. Adobe Flex Builder 2 is een betaalde licentie. De prijs hangt af van de gekozen variant.
LaszloSystems OpenLaszlo 3.x
Algemeen
Eerder was dit platform bekend onder de naam Laszlo Presentation Server (LPS) en is als open source platform verder gegaan vanaf versie 3.0. Het Laszlo model heeft een declaratief model dat lijkt op dat van Flex, maar kent daarnaast ook nog opties met betrekking tot web hosting en de mogelijkheid voor ondersteuning van Flash 6 en latere versies. Een van de belangrijkste kenmerken van Laszlo is dat het de mogelijkheid biedt om zowel Flash applicaties als Ajax applicaties te genereren van dezelfde broncode. In de toekomst zal ook de mogelijkheid bestaan om DHTML te genereren.
Verwacht gebruikersgemak
De OpenLaszlo APIs bieden functionaliteit en mogelijkheden ten aanzien van animatie, lay-out, data binding, server communicatie, en een declaratieve UI. OpenLaszlo is waarschijnlijk de makkelijkste oplossing voor kleine ontwikkel teams omdat het erg gemakkelijk is om met OpenLaszlo te starten. Echter de mogelijkheden zijn beperkter dan Flex 2 of Windows Presentation Foundation/Everywhere (WPF/E). De bèta versie van de OpenLaszlo IDE is gebaseerd op Eclipse, dus veel ontwikkelaars zullen hiermee bekend zijn.
Verwachte ontvankelijkheid
OpenLaszlo ondersteund Flash Player 6, 7 en 8, in tegenstelling tot Flex 2 dat Flash Player 9 nodig heeft. Door dit verschil is er hoogstwaarschijnlijk een verschil tussen het aantal computers dat een OpenLaszlo applicatie ondersteund en het aantal computers dat een Flex 2 applicatie ondersteund. Vanwege het feit dat OpenLaszlo volledig open source is, bestaat er een sterke development community.
Kosten
OpenLaszlo is volledig gratis en kent geen run-time licenties.
Microsoft's Windows Presentation Foundation/Everywhere en XBAP
Algemeen
Microsoft brengt een met Flash concurrerend framework op de markt dat ook op andere platforms draait zoals Macintosh en mobiele apparaten. WPF/E kent geen ontwikkelmodel zoals Flex of OpenLaszlo. XBAP is het product dat hierin moet voorzien en wordt gezien als concurrent van Flex. XBAP maakt het mogelijk WPF/E applicaties in een browser te draaien.
Verwacht gebruikersgemak
WPF/E zal bestaan uit een deel van de .NET run-time, wat betekend dat het de mogelijkheid heeft om C# en VB.NET uit te voeren. WPF/E zal bestaan uit een speciale subset van de class libraries specifiek bedoeld voor WPF/E ontwikkeling. Naast deze libraries zijn er layout managers voor het opmaken van de GUI. Vanwege de sterke verwantschap met het .NET framework zullen .NET ontwikkelaars WPF/E relatief eenvoudig kunnen leren.
Verwachte ontvankelijkheid
Belangrijk aspect van een RIA is dat het cross-browser en cross-platform moet kunnen opereren. Dit is tot nog toe niet altijd het sterkste punt van Microsoft producten gebleken, dus op dat vlak blijven nog wat vraagtekens. Echter er zijn veel applicaties geschreven met behulp van Visual Studio en deze kunnen aangepast worden om gebruik te maken van WPF/E.
Kosten
Microsoft is begonnen met de uitrol van de eerste vier onderdelen van zijn Expression Studio. Het gaat hierbij om Expression Web om websites te ontwerpen, Expression Blend voor de ontwikkeling van interfaces, Expression Design voor het ontwerpen van grafische elementen en Expression Media voor het beheer van digitale resources. De WPF/E SDK is gratis, alleen de ontwikkel tools zullen waarschijnlijk onderdeel worden van Visual Studio of als uitbreiding hierop middels licenties gekocht kunnen worden. De laatste versie van Expression Blend zal onderdeel worden van Visual Studio Standard en zal via een licentie moeten worden aangeschaft.
Mozilla's XUL
Algemeen
XUL staat voor XML User Interface Language en is ontwikkeld om Mozilla-toepassingen zoals Mozilla Firefox en Mozilla Thunderbird te ondersteunen. Het belangrijkste voordeel van XUL is dat het de ontwikkeling van user interfaces overzichtelijker maakt en kan versnellen.
Verwacht gebruikersgemak
Met XUL is het mogelijk om forms applicaties te maken die draaien binnen de Mozilla browser en binnen andere rendering engines zoals Zulu (een Flash MX component) en Thinlets. Er is een verscheidenheid aan tools om met XUL te werken zoals de Theodore Thinlet Editor. XUL is een zeer compacte taal vergeleken met veel andere XML UI talen. De voornaamste kracht bestaat uit de adoptie van de W3C standaarden. Ontwikkelaars die hiermee goed bekend zijn kunnen deze kennis gebruiken om XUL snel onder de knie te krijgen.
Verwachte ontvankelijkheid
Ondanks de grote development community die XUL al geadopteerd heeft is een van de voornaamste nadelen van XUL dat het niet gesteund wordt door een commerciële partij. Daarnaast wordt het voornamelijk ondersteund in de Mozilla browser (er zijn plug-ins beschikbaar voor andere browsers). Dit zal veel organisaties tegenhouden om gebruik te gaan maken van XUL.
Kosten
Mozilla biedt XUL aan middels een open source licentie en is volledig gratis.
Conclusie
De keuze voor het gebruiken van een RIA technologie hangt nauw samen met het type applicatie. Er kan daarom niet zonder meer gezegd worden dat er een specifiek framework beter is dan de andere. In het artikel Rich Internet Applications and AJAX - Selecting the best product van Mark Domineg wordt een beslissingsboom gegeven die kan helpen bij de keuze voor een RIA of Ajax product.
Tegenwoordig maken de meeste websites gebruik van de Flash plug-in als hulpmiddel voor rijke media ondersteuning. Het voordeel van de Flash plug-in is dat deze in vrijwel alle computers gebruikt wordt en mogelijkheden biedt voor lokale file i/o, audio /video opname en audio/video afspelen. Een van de grote nadelen echter is de gebrekkige XML ondersteuning. Ajax daarentegen biedt uitstekende XML ondersteuning. Een combinatie van Ajax met een van de RIA frameworks zal daarom uiteindelijk een effectieve RIA oplossing bieden.
Gezien de toename van dynamische en rijke inhoud van applicaties veelal gebaseerd op complexe visuele informatie is het belangrijk te experimenteren met een of meer RIA platformen om te ervaren wat de mogelijkheden zijn. Om te ervaren in welke situaties RIA’s waarde kunnen toevoegen ten opzichte van traditionele web applicaties.
Wanneer we ervan uitgaan dat een RIA een "filmische ervaring" en geavanceerde grafische mogelijkheden moet bieden dan is Flex bij uitstek geschikt. Er zijn erg veel mogelijkheden binnen Flex voor het aanbieden van rijke content. Dit zijn veelal standaard componenten die onderdeel zijn van de Flex SDK.
De Flash plug-in is terug te vinden op 96% van alle pc’s met toegang tot internet. En de aanwezigheid van de Flash plug-in beperkt zich niet alleen tot pc’s, maar is tegenwoordig ook op mobiele apparaten aanwezig. Deze grote aanwezigheid van de Flash plug-in is een belangrijke factor om voor Flex te kiezen.
Volgens een van de voorspellingen van Ryan Stewart voor 2007 zal Adobe Flex een van de voornaamste platformen worden voor het ontwikkelen van RIA’s. Omdat nog niet iedereen voor zichzelf bepaald heeft wat een RIA moet zijn zal initieel de groei van Flex gestaag gaan. Wanneer Flex 2 volwassen wordt en men bekend is met de mogelijkheden zal de groei in gebruikers alleen maar toenemen. Nu er tevens een koppeling tussen Flex en Ajax mogelijk is Flex 2 in de huidige situatie de beste keuze.
Referenties
- IDC Whitepaper over RIA:
download.macromedia.com/pub/solutions/downloads/business/idc_impact_of_rias.pdf - Windows Presentation Foundation:
msdn2.microsoft.com/en-us/netframework/aa663326.aspx - Mozilla XUL:
wiki.mozilla.org/XUL:Home_Page - Adobe Flex:
www.adobe.com/products/flex/ - OpenLaszlo:
www.openlaszlo.org/

Reacties
Nieuwe reactie inzenden