Stefano Rossini è nato a Giussano (MI) il 29/10/1970 e ha conseguito il diploma universitario in Ingegneria Informatica presso il Politecnico di Torino. Ha maturato più di venti anni di esperienza in diversi progetti Enterprise mission-critical ricoprendo i ruoli di IT Program Manager, Project Manager & Software Architect presso importanti gruppi bancari, pubblica sanità, pubblica amministrazione e software house.
Attualmente ricopre il ruolo di Sofware Factory Manager, Lean Change Agent ed Enterprise Architect presso Capgemini.
Esperto in ambito di sanità pubblica come Project/Program Manager per la governance dei progetti IT strategici di Cartella Clinica Elettronica (CCE) e Fascicolo Sanitario Elettronico (FSE).
Esperto in ambito bancario dove ha ricoperto per una decina d'anni il ruolo di Project Manager e Leader Software Architect (BPM, IWBank e BPS) occupandosi della pianificazione e gestione del progetto, del coordinamento del gruppo di sviluppo software sia InHouse che Nearshore/Offshore. Esperto nella conduzione di progetti secondo metodologia di Project Management PMBok e metodologia agile Scrum.
Si occupa di Java dal 1999 arrivando da precedenti esperienze in C e C++ in ambito Telco (Alcatel & Siemens). Ha pubblicato più di un centinaio di articoli su argomenti di IT Governance, Project Management, architetture enterprise e problematiche di Integrazione e SOA. È coautore dei libri "Manuale pratico di Java" (2001) e "La programmazione della piattaforma J2EE" (2005) editi da Hops/Tecniche Nuove. Certificazioni IT Governance: COBIT V.4.1 Foundation Certificate; certificazioni IT Service Management: ITIL V.3 Foundation Examination; certificazioni Project Management: CSM - Scrum Master, CSPO - Scrum Product Owner, PMI: 35 contact hours.
In questo articolo si inizierà a parlare specificamente delle tecnologie Web 2.0: l‘argomento trattato sarà Ajax. Tramite alcuni esempi, vedremo tra l‘altro come funziona il suo sistema asincrono di gestione del collegamento tra client e server.
Introduzione
Nell’articolo [MOKAWEB2_I] è stato introdotto il Web 2.0, parlando degli aspetti tecnologici e sociali, fornendo una visione introduttiva delle tecnologie relative al nuovo modo di intendere il Web. Nello scorso articolo [MOKAWEB2_II] si è parlato di Wiki, lo strumento che maggiormente ha contribuito alla diffusione del Web 2.0. In questo articolo si inizierà a parlare specificamente delle tecnologie Web 2.0; l’argomento trattato sarà Ajax.
AJAX
AJAX è l’acronimo di Asynchronous JavaScript and XML:
A = Asynchronous: è il tipo di colloquio tra Client e Server
JA = JAvascript: è il linguaggio che viene utilizzato dal browser per comunicare con il Server
X = Xml: il formato dei dati che transitano tra Client e Server.
Lo scopo principale di AJAX è di rendere i siti più usabili, interattivi e funzionali. Il termine AJAX non si riferisce a un’unica tecnologia, ma raggruppa un insieme di tecniche e tecnologie:
HTML e CSS per il markup e lo stile
DHTML per il contenuto dinamico
DOM (Document Object Model)
XMLHttpRequest, l’oggetto per l’interscambio asincrono dei dati tra browser e web server
XML come formato dati
Le applicazioni tradizionali Web basano il loro funzionamento su un protocollo Request-Response. L’utente effettua una Request verso il server a fronte di una specifica azione (click su un link, su un bottone, su un’immagine, etc.), il Server riceve i dati di un Form (via GET o POST), effettua una elaborazione dei dati, e invia al Client una nuova pagina Web che andrà a sostituire (o a ricaricare) la pagina precedente. Questo meccanismo è di tipo prettamente sincrono, vale a dire che il Client, per proseguire la sua elaborazione, deve aspettare che il Server abbia concluso l’elaborazione e preparato la pagina HTML di output.
AJAX introduce un’indirezione tra il Client e il Server per rendere la comunicazione più interattiva e performante. In sostanza AJAX disaccoppia la comunicazione tra Client e Server rendendo possibile una comunicazione tipo asincrono, vale a dire che il Client non interagisce direttamente con il Server ma lo fa invece con l’engine AJAX, che si occupa di dialogare con il Server. Il Client preleva i dati da un eventuale oggetto Form e li passa allo strato AJAX. Nell’interfacciarsi con l’engine AJAX, il Client specifica la funzione di callback associata a un determinato evento, al verificarsi del quale verrà richiamata dall’engine AJAX. In questo modo, l’utente non dovrà più attendere che la pagina venga ricaricata, ma semplicemente la vedrà cambiare davanti ai sui occhi contestualmente ai dati che sta immettendo nella Form.
Figura 1 – Confronto di applicazioni web tradizionali e applicazioni basate su AJAX
L’idea alla base delle tecnologie AJAX è di sfruttare un particolare oggetto: l’XMLHttpRequest che è incluso nei browser (un tempo era disponibile solo come ActiveX in Internet Explorer). L’oggetto XMLHttpRequest consente di gestire il flusso dei dati tra il Client e il Server indirizzando la risposta del server su uno o più elementi della pagina stessa senza doverla ricaricare. Esemplificando quanto detto, si pensi di avere una pagina Web che deve gestire il controllo della validità sintattica dell’indirizzo email.
Figura 2 – Caso d’uso d’esempio
Con le tecnologie Web tradizionali si esegue una Post a una Servlet con l’indirizzo e-mail da controllare.
Stefano Rossini è nato a Giussano (MI) il 29/10/1970 e ha conseguito il diploma universitario in Ingegneria Informatica presso il Politecnico di Torino. Ha maturato più di venti anni di esperienza in diversi progetti Enterprise mission-critical ricoprendo i ruoli di IT Program Manager, Project Manager & Software Architect presso importanti gruppi bancari, pubblica sanità, pubblica amministrazione e software house.
Attualmente ricopre il ruolo di Sofware Factory Manager, Lean Change Agent ed Enterprise Architect presso Capgemini.
Esperto in ambito di sanità pubblica come Project/Program Manager per la governance dei progetti IT strategici di Cartella Clinica Elettronica (CCE) e Fascicolo Sanitario Elettronico (FSE).
Esperto in ambito bancario dove ha ricoperto per una decina d'anni il ruolo di Project Manager e Leader Software Architect (BPM, IWBank e BPS) occupandosi della pianificazione e gestione del progetto, del coordinamento del gruppo di sviluppo software sia InHouse che Nearshore/Offshore. Esperto nella conduzione di progetti secondo metodologia di Project Management PMBok e metodologia agile Scrum.
Si occupa di Java dal 1999 arrivando da precedenti esperienze in C e C++ in ambito Telco (Alcatel & Siemens). Ha pubblicato più di un centinaio di articoli su argomenti di IT Governance, Project Management, architetture enterprise e problematiche di Integrazione e SOA. È coautore dei libri "Manuale pratico di Java" (2001) e "La programmazione della piattaforma J2EE" (2005) editi da Hops/Tecniche Nuove. Certificazioni IT Governance: COBIT V.4.1 Foundation Certificate; certificazioni IT Service Management: ITIL V.3 Foundation Examination; certificazioni Project Management: CSM - Scrum Master, CSPO - Scrum Product Owner, PMI: 35 contact hours.