Come sono nate le applicazioni web

Quest’articolo vuole essere solo un breve riassunto della storia delle applicazioni web, il suo intento è quello di fornire una panoramica generale per chi sviluppa applicazioni web ma non ha una visione ben definita del perché sono state sviluppate così tante tecnologie per creare una web application.

Una tipica applicazione web utilizzava le Servlet per gestire le richieste HTTP tra client e server, con questa tecnologia tutte le informazioni che si vogliono visualizzare nelle pagine web vengono immessi nella sessione e tramite le JSP si recuperano i dati da visualizzare. Questo processo risulta molto dispendioso, per questo motivo sono nati i primi framework come Struts con l’utilizzo delle Action e i form-bean. Sono stati inoltre introdotti i @taglib che permettono di personalizzare i tag html introducendo un livello maggiore di personalizzazione nello sviluppo software.

Negli anni uno dei grandi problemi per chi sviluppava applicazioni in Java è stato come gestire l’accesso ad un database. Java mette a disposizione il connettore JDBC ma con il tempo è stato sostituito dalla combinazione JDBC + DataSource per spostare le informazioni sensibili al di fuori dell’applicazione client.

Successivamente sono nate le JPA che tramite le annotazioni consentono di mappare le classi Java come oggetti del database. Su JPA nasce Hibernate, si tratta di un’ulteriore livello di astrazione del database tramite un’implementazione delle API e separando le annotazioni dalle property (in modo da poter sviluppare in modo indipendente da differenti sviluppatori). Queste tecnologie mettono a disposizione una serie di metodi per effettuare query al database senza dover scrivere codice SQL, consentono inoltre di gestire le transazioni, fare rollback, ecc.

Nel tempo è nata l’esigenza di esporre i servizi e si è notato che dovere richiamare una Servlet risultasse alquanto scomodo, sono così nati i Web Services. Il compito di un Web Services è quello di esporre dei servizi (ad esempio PayPal mette a disposizione un Web Services per consentire agli sviluppatore di utilizzarlo implementando nelle porprie applicazioni metodi di pagamento tramite PayPal). In questo tipo di architettura software, l’applicazione client accede all’interfaccia pubblica richiedendo o inviando dei dati, tutto quello che accade dietro il Web Services resta ignoto al client (ad esempio come avviene una transazione PayPal o i dati di accesso inseriti dall’utente sul server). Sono due i principali Web Services nati: Rest, nato per il web e sfrutta tutti i suoi vantaggi, e Soap che consente di lavorare tramite chiamate remote con le risorse disponibili su un computer fisico.

Le applicazioni sono diventate sempre più complesse, dover contattare il server per qualsiasi controllo, ad esempio sui dati immessi dall’utente, risultava molto dispendioso. Nasce così JavaScript che consente di rendere le applicazioni più dinamiche utilizzano solo il browser. Nasce poi l’esigenza di rendere le applicazioni ancora più dinamiche e appare sul mercato Ajax che consente di ricaricare solo porzioni di pagina e non tutta la pagina (ad esempio in un sito in cui sono visualizzati i risultati di alcune partite di calcio, saranno ricaricate le informazioni che riguardano il risultato delle partite e non l’intera pagina).

JavaScript non viene supportato completamente da tutti i browser, spesso occorre fornire più soluzioni per determinati browser. Da questa esigenza è nato jQuery che si occupa di gestire i problemi di compatibilità tra i vari browser e mettendo a disposizione una serie di funzioni che facilitano lo sviluppo del software. Sono numerose le librerie nate per facilitare gli sviluppatori nella scrittura del codice, una di queste è Lodash.

Negli ultimissimi anni sono nate altre tecnologie, in particolare modo per lo sviluppo front-end delle applicazioni. Tra queste è nato AngularJS, sviluppato da Google, che mette a disposizione una serie di funzioni per manipolare il DOM ed in particolare modo introduce il pattern MVC. In realtà, l’infrastruttura che introduce Angular non è un MVC puro ma si tratta di un MV*, ovvero un model, una view e tanti controller. AngularJS introduce il two binding, qualsiasi modifica effettuata ai dati nel modello viene riportata nella view. Questo pattern però non si sta dimostrando perfettamente adatto nello sviluppo front-end come in quello back-end e alcune tecnologie come React di Facebook stanno facendo passi da gigante.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *