Tecnologia e innovazione al servizio delle aziende

Internet & Web Application

Nell’arco degli ultimi anni, l’evoluzione del web ha portato alle aziende nuovi strumenti per lo sviluppo di applicazioni aziendali complesse. Se fino a un paio di anni fa, una web application basata su un linguaggio di scripting lato server (ASP, JSP, PHP,…), con una user interface basata su pagine HTML, rappresentava lo stato dell’arte, oggi questo non è più sufficiente; le applicazioni web tradizionali, rispetto alle applicazioni client/server o stand-alone, hanno, attualmente, un unico vero vantaggio: la semplicità della distribuzione del software. Infatti, le applicazioni e le loro eventuali modifiche evolutive, sono istallate su un server centralizzato e vengono rese disponibili in modo immediato a tutti gli utenti abilitati, senza necessità di configurazioni e istallaziaioni lato client. Per contro, le applicazioni stand-alone e client/server offrono una notevole potenza nella creazione di interfacce utente complesse e altamente interattive.
web01Con l’evoluzione del web, e con l’avvento del cosidetto “web 2.0“, gli utenti sono diventati “parte integrante” della rete e si sono improvvisati pubblicatori e creatori di informazioni. La diffusione di social forum (es. Facebook), di blog, di wiki (es. wikipedia), di strumenti per la condivisione delle informazioni (youtube, slideshare, flickr,…) ha reso il web più interattivo e ha richiesto la creazione di architetture applicative più complesse che portano sul browser la potenza delle applicazioni stand-alone: sono nate le Rich Internet Application (che molti chiamano erroneamente applicazioni web 2.0). Una RIA è costituita da un client “ricco” che può essere implementato tramite molte tecnologie differenti (JavaScript/AJAX, HTML5FLASH/FLEX, Microsoft Silverlight, JavaFX,…) ognuna delle quali ha le sue peculiarità e potenzialità, e da un insieme di servizi di business, lato server, che forniscono al client i dati e le loro elaborazioni. In tal modo il server non si occupa più della presentazione delle informazioni che viene delegata completamente al browser (con enormi vantaggi per l’utente che ha a sua disposione funzioni altamente interattive come, ad esempio, il drag & drop, il completamento automatico dei campi, la paginazione delle tabelle,…). La scelta delle tecnologie per l’implementazione di una RIA è molto critica e può rappresentare o meno il successo di un progetto: la tecnologia deve essere scelta in base alle esigenze di business e non in base a meri fattori tecnologici e gli strumenti da utilizzare devono essere testati, prima dell’acquisto, per verificare che siano disponibili tutte le funzionalità necessarie all’azienda. I servizi, esposti lato server, devono essere progettati e implementati con cura in modo da essere altamente riusabili e interoperabli.
web02
I servizi, inoltre, devono essere inseriti in un processo di governace in modo da tenerne sotto controllo il funzionamento e gli accessi. Una RIA, quindi, può essere integrata nel contesto SOA dell’azienda ed essere gestita con gli strumenti di governance disponibili. Le applicazioni del web 2.0 sono, generalmente, composte a partire da “componenti” prelevati da altre applicazioni (mashup). Si ottengono quindi delle applicazioni “composite” che rispecchiano nel funzionamento, lato presentation, la composizione dei servizi di business lato server. In ottica SOA è quindi possibile introdurre una nuova tipologia di sevizi: i Presentation Services (che, invece di esporre dati, espongono componenti di user interface). Nello scambio di informazioni, la scelta del protocollo di comunicazione fra il client e i servizi esposti sul server è molto critica in quanto deve garantire alte prestazioni e compatibilità con tecnologie eterogenee. A tale proposito, i protocolli basati su REST, si stanno imponendo e stanno surclassando i protocolli basati su SOAP e XML (SOAP non è ben supportato dai vari browser).Una Rich Internet Application ben progettata può essere facilmente integrata in un’architettura di Cloud Computing.

web03

Durante la mia attività lavorativa ho maturato una notevole esperienza nella progettazione e implementazione di architetture e applicazioni web (tradizionali e Rich Internet Application) e di numerosi backend a servizi utilizzando i principali framework commerciali e open source. Sono, inoltre, autore e docente di diversi seminari sulle tecnologie Internet e sullo sviluppo di applicazioni web e web 2.0.