# Rich internet application

Een Rich Internet Application (ook afgekort tot RIA) is een term die gebruikt wordt voor interactieve internetapplicaties, die het gevoel geven van een desktopprogramma (bijvoorbeeld een tekstverwerker of een agenda). Rich Internet Applications geven de gebruiker, zonder dat een andere pagina wordt geopend, respons op de ingevoerde gegevens.
De term Rich Internet Application is in maart 2002 door Macromedia geïntroduceerd.

## Webbrowser

RIA's draaien in een webbrowser en vereisen in principe geen lokale installatie van software. In sommige gevallen is echter wel de installatie van een plug-in noodzakelijk (zoals bij Flash, Silverlight, Java en PDF). In verband met beveiliging draaien RIA's in een sandbox.
De webbrowser stuurt namens de gebruiker informatie op naar de webserver, ontvangt eventueel gewijzigde inhoudelijke gegevens en verwerkt deze in de getoonde webpagina, zonder dat de complete pagina opnieuw geladen hoeft te worden. De webserver legt de wijzigingen vast op de server.

## Voor- en nadelen

Rich Internet Applications zijn niet per se ingewikkelder te bouwen dan traditionele webapplicaties, aangezien design patterns succesvol toegepast kunnen worden. Het onderhoud kan lastiger zijn. Rich Internet Applicaties stellen soms zwaardere eisen aan het systeem van de eindgebruiker (bezoeker), afhankelijk van de gebruikte technologie.
Daar staat tegenover dat de pagina's sneller reageren op acties van de eindgebruiker. Dit komt doordat slechts de veranderde informatie van de website gehaald moeten worden en dat niet de hele pagina opnieuw hoeft te laden. Idealiter is er minder dataverkeer tussen de gebruiker en de webserver. In de praktijk zijn RIAs "extra" interactief en wordt deze winst soms tenietgedaan.
Doordat een RIA een webapplicatie is en dus geen "Windows-applicatie" (zoals Office en Outlook), kan deze op alle systemen draaien zonder vooraf iets te moeten installeren. Het werkt daar door ook op verschillende platformen, mits de (indien) benodigde plugin geschikt is voor dat platform.
Beperkte zoekmachineoptimalisatie is een bijkomend nadeel van RIA's. Spiders ondersteunen de gebruikte Javascript-technologie niet en kunnen dus niet alle content lezen. Dit vormt een extra uitdaging voor de ontwikkelaar.

## Technieken

Diverse technieken bestaan om RIA's te bouwen. Dit zijn louter technieken die gebruikt worden op het internet. Deze technieken zijn:
* HTML5 (HTML 5.0 + JavaScript + CSS + XML + JSON + SVG)
* Adobe Flash (Adobe Flash Player)
* Silverlight (Moonlight)
* PDF
* Java

### HTML5

Hoewel HTML5 synoniem staat voor HTML, wordt de term vaak gebruikt om de groep van technieken HTML5, Javascript, CSS, XML, JSON en SVG aan te duiden. HTML5 maakt gebruik van alle standaard browserfunctionaliteiten zonder invoegtoepassingen, zoals Flash, Java en Silverlight dit wel doen. HTML5 wordt gebruikt voor documentdefinitie, JavaScript voor interactie, CSS voor weergave, XML en JSON voor data en SVG voor grafische data. HTML5 en alle onderliggende technieken zijn 100% open en worden ontwikkeld door het W3C.

### Flash

Flash wordt gebruikt in RIA's in combinatie met XML. RIA's in flash zijn controversieel, omdat het een proprietaire techniek is gecontroleerd door Adobe. RIA's gemaakt met flash technologie worden vaak gecreëerd met Adobe AIR, een platform waarmee flash applicaties ook zonder gebruik van een browser kunnen worden gebruikt. Zo bestaan er op GNU/Linux gebaseerde besturingssystemen geen kwalitatief goede flash implementaties, waardoor gebruikers van deze systemen geen (acceptabel) gebruik kunnen maken van op Flash gebaseerde RIA's.

### Silverlight

Silverlight is een technologie vergelijkbaar met Flash, ontwikkeld door Microsoft. Het biedt een aantal voordelen ten opzichte van Flash en HTML5. Een groot voordeel van Silverlight is dat de programmeurs die reeds kennis hebben van .NET zeer snel Silverlight-applicaties kunnen ontwikkelen. Ook een voordeel is dat Silverlight slechts een kleine plug-in nodig heeft om te werken. Het belangrijkste nadeel, dat één bedrijf de specificatie controleert, gaat net als bij Flash ook voor Silverlight op.

### PDF

PDF is een documentformaat gericht op digitalisatie van papier, maar biedt ook (beperkte) mogelijkheden voor interactiviteit. Weinig RIA's gebruiken PDF als onderliggende techniek, vanwege deze beperkte functionaliteit en promotie van Adobe's AIR voor RIA-applicaties. PDF is net als Flash een propriëtaire techniek van Adobe.

## Huidige RIA-kits

* Apache Flex
* Adobe Air
* Microsoft Silverlight
* JavaFX
* ZKOSS