JAVA – (Jolanda Reito – VG mercurio 2004/05)

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.