Rich Internet application
# Rich Internet application

Le Rich Internet Application (RIA) sono applicazioni web che possiedono le caratteristiche e le funzionalità delle applicazioni desktop, senza però necessitare dell'installazione sul disco fisso. Si caratterizzano per la dimensione interattiva, la multimedialità e per la velocità d'esecuzione. Infatti la parte dell'applicazione che elabora i dati è trasferita a livello client e fornisce una pronta risposta all'interfaccia utente, mentre la gran parte dei dati e dell'applicazione rimane sul server remoto, con notevole alleggerimento per il computer utente. Si fondano perciò su un'architettura di tipo distribuito. Anche l'interazione con una RIA avviene in remoto, tramite un comune web browser.

In un certo senso le RIA rappresentano una generazione di applicazioni che permette un'interazione totalmente rinnovata, fondata sugli aspetti migliori delle caratteristiche funzionali e progettuali che finora erano prerogativa alternata del web o delle applicazioni desktop. Inoltre le RIA, per il livello spinto di interattività che esse offrono, rappresentano uno dei canali migliori attraverso il quale si va imponendo il paradigma del cloud computing, che costituisce una nuova modalità di fruizione del software tramite architetture distribuite.

## Modalità di implementazione

Le opzioni disponibili per l'implementazione di applicativi di questo tipo sono varie, vengono elencate quelle più utilizzate:

* JavaScript ed AJAX, che non richiedono l'installazione di alcun plugin;
* Adobe Flex (obsoleto dal 31 dicembre 2020), che richiede l'installazione di Flash Player sul client, oltre a strumenti di sviluppo proprietari;
* Silverlight di Microsoft che richiede il Silverlight Runtime e strumenti di sviluppo proprietari;
* JavaFX, che richiede Java Runtime Environment

## Creazione di Rich Internet Application con JavaScript

Se si decide di usare JavaScript per implementare delle RIA, è possibile sia scrivere il codice direttamente, sia scriverlo in un linguaggio che può essere compilato in JavaScript.

Questi linguaggi sono:

* CoffeeScript;
* Dart;
* Ceylon;
* Kotlin;
* TypeScript;
* Haxe.

Inoltre è possibile usare dei framework Java che creano automaticamente codice JavaScript:

* RichFaces e derivati;
* Google Web Toolkit;
* Vaadin;
* ZK.

## Accessibilità

Il World Wide Web Consortium, col progetto Web Accessibility Initiative - Accessible Rich Internet Applications, ha prodotto un insieme di documenti che specificano come aumentare l'accessibilità dei contenuti dinamici e dei componenti per l'interfaccia utente sviluppati con AJAX, HTML, JavaScript e altre tecnologie collegate.

## Esempi

* Facebook
* LinkedIn
* Wikipedia
