JAVA – (Jolanda Reito – VG mercurio 2004/05) Ø La storia e filosofia di Java Più che un moderno linguaggio di programmazione Java è una tecnologia innovativa che ha cambiato l’industria ICT a 360 gradi. Durante l’aprile del 1991, un gruppo di impiegati della SUN Microsystem, conosciuti come “Green Group”, iniziarono a studiare la possibilità di creare un linguaggio universale “interpretabile” indipendente dalla piattaforma che estendesse il C++ (il software non doveva essere legato ad un particolare hardware e sistema operativo). Il “Green Group”, gruppo di lavoro che ha creato Java Così da questa filosofia della “portabilità del software”, nacque, intorno alla metà del 1991, Oak, un linguaggio di programmazione object oriented, platform-independent, robusto e sicuro destinato all’elettronica di consumo. Attraverso una serie di eventi, Oak, intraprese un’altra direzione. Il progetto fu indirizzato esclusivamente ad internet (world wide web) e per motivi di royalty, fu rinominato Java. Java debuttò come un linguaggio di programmazione che potesse permettere l’uso di immagini animate sui siti Web. Il 23 maggio 1995 la SUN annunciò formalmente Java, e ciò che colpì la comunità fu il motto: “Write once, run anywhere” (cioè scrivere il codice una volta e usarlo ovunque). Questa era una promessa di semplicità per i programmatori e di minori tempi di sviluppo. Niente più ricompilazione. Con Java, SUN dimostrò che era riuscita a realizzare il primo linguaggio di programmazione che era “slegato” da ogni sistema operativo o microprocessore. Prima di essere annunciato ufficialmente, già aveva sollevato interesse tra gli sviluppatori del web, che in quel periodo necessitavano di un linguaggio abbastanza sicuro che potesse essere usato per inserire immagini in movimento nella pagine Html. E furono moltissimi a scegliere Java. Ø Prima filosofia Client – side Inizialmente Java fu pensato solo per sviluppo di applicazioni lato client (CLIENT-SIDE) catturando l’attenzione del mondo della ormai affermata “new economy” con l’introduzione di APPLET E JAVASCRIPT (effetti speciali e animazioni incorporate sul WEB) con la piattaforma Java Standard Edition. Il codice Java è un codice intermedio. I files sorgenti (di estensione .java) attraverso il compilatore JAVAC vengono convertiti in byte code intermedio (di estensione .class). Sorgente .java Compilatore Javac.exe .class L’aspetto forse più interessante di JAVA è che questo codice intermedio è assolutamente portabile cioè per la sua esecuzione non occorre nessuna installazione sulla macchina del cliente e se cambiamo HW e S.O. il byte code rimane assolutamente invariato. L’unica cosa di cui il client necessita è la VM. I computer client per interpretare il codice Java devono installare solo una propria Virtual Machine (JVM cioè un interprete Java) che tipicamente viene incorporata come plug-in nei browser per il WEB. La Virtual Machine è tipicamente fornita da ogni moderno SO: Windows implementa una propria JVM, Linux un’altra ecc… Tutte hanno in comune la peculiarità di accettare in input un .class file ed “interpretarlo” alla stessa maniera JAVA .class VM Esecuzione Programma Se avessimo dovuto scrivere un’applicazione in pascal, il codice eseguibile (.exe) prodotto dal compilatore Delphi non avrebbe potuto eseguire in ambiente Linux ma sarebbe stato necessario ricompilare i sorgenti (.pas) utilizzando ad esempio il Kilyx (Delphi per linux). Ø Evoluzione Server – side Successivamente, la tecnologia Java verrà impiegata pure per applicazioni Server Side (Java Enterprise Edition) consentendo così l’interazione con basi di dati. Attualmente una considerevole fetta dei servizi offerti sul mercato dell’Information Technology è interamente realizzata tramite Java Technology Le applicazioni Server Side di Java poggiano principalmente sulle Servlet e sulle Java Server Pages. Il meccanismo per l’esecuzione di applicazioni server side è sintetizzato nella figura qui sotto ed è attualmente implementato sia in ambiente Microsoft che Unix/Linux: Web server (Apache) Script (linguaggio) Jsp/Servlet Storage My Sql Per consentire il funzionamento delle pagine Jsp e delle Servlet abbiamo bisogno di un APPLICATION SERVER. Un efficiente application server offerto gratuitamente dal progetto open source “Jakarta Project” è TOMCAT Un application server a pagamento progettato ed offerto dalla società BEA è il WEBLOGIC. Ø Cosa sono le Servlet? Le Servlet sono moduli software scritti in Java che vengono eseguiti in applicazioni lato server per esaudire le richieste dei client. Esse non sono legate ad un particolare protocollo per la comunicazione tra client e server, anche se più comunemente si utilizza il protocollo HTTP ed infatti si parla di http Servlet. Utilizzando un linguaggio portabile come Java, le Servlet consentono di realizzare soluzioni per estendere le funzionalità dei server web, indipendenti dal sistema operativo su cui esse vengono eseguite. Le Servlet sono un validissimo strumento per le applicazioni che richiedono contenuti web dinamici; sono abbastanza semplici da sviluppare e consentono di eseguire operazioni che con le tecniche precedenti risultavano difficili Ø Perché vengono utilizzate le Servlet? Le Servlet vengono più comunemente utilizzate per: § elaborare e salvare dati provenienti da form HTML (cioè i dati immessi dagli utenti nelle pagine html, registrazioni, questionari ecc…); § provvedere alla creazione di pagine HTML dinamiche, ad esempio utilizzando i dati contenuti in un database, in seguito ad una richiesta di un client; § gestire informazioni con stato, ad esempio la gestione di un sistema di commercio elettronico, dove un certo numero di clienti fa degli acquisti contemporaneamente e dove occorre quindi mantenere in modo corretto le informazioni sui clienti e sui loro acquisti (il classico carrello della spesa); Ø Jsp JSP (Java Server Pages) è una tecnologia semplice ma potente, che permette di creare Pagine HTML dinamiche lato server. Questa tecnologia agli occhi del programmatore viene gestita per mezzo di un linguaggio di script che è in grado di mescolare codice Java dentro pagine HTML. Le Pagine JSP sono un'estensione diretta dei Servlet Java e offrono, rispetto ad altre attuali tecnologie Server-Side, il vantaggio e la possibilità di separare la sezione di gestione delle operazioni e di produzione dei contenuti, da quello di visualizzazione vera e propria. Normalmente una Pagina JSP è composta da: • porzioni di codice HTML, JavaScript, e così via, non compilati dal motore Jsp e comunemente definiti blocchi di codice statico; • porzioni di codice Java, compilati dal motore Jsp, che prendono il nome di blocchi di codice dinamico. Ø L’ultima tecnologia: Wireless Application Infine, per restare in tema di portabilità, un riferimento va fatto a Java 2 Micro Edition. Quest’ultimo recente sviluppo, che vede l’affermarsi della Java Technology anche sui telefonini e dispositivi palmari in genere, riguarda le applicazioni Mobile e Wireless. Anche i software dei telefonini infatti, implementano una Virtual Machine che è sicuramente più snella di quelle dei computer consentendo così l’esecuzione di applicazioni portabili denominate: MIDLET. Tipicamente, un’ applicazione per mobile station è composta da: più file .CLASS che vengono raggruppati tutti in un unico PACKAGE con estensione .JARche è una sorta di ZIP a tutti gli effetti. Diversi modelli di telefonini dotati di Hardware diversi (Samsung, Motorola ecc.), se sono Java compliant, possono così condividere la stessa applicazione interpretando il byte code dentro il medesimo package.