Iniziano
con questa prima puntata una serie di articoli e di news che vengono tratte
direttamente dal sito SUN.
L'iniziativa
nasce dalla ferma convinzione che il lettore meno esperto apprezzerà
la stesura di articoli che ripropongono in buona parte i concetti della
Piattaforma Java e di ciò che essa rappresenta, espressi direttamente
dalla casa che ha concepito Java e proposti, in chiave semplice ed efficace,
dalla prima rivista italiana on-line sul mondo Java, MokaByte
Introduzione
Inizieremo il
nostro viaggio trattando un argomento che molti utenti Java ancora oggi
sconoscono ma che SUN ha cercato di evidenziare sin dal lontano 1995 con
un documento che ritengo di estrema importanza : "The Java Platform".
Volendo sintetizzare
il contenuto del documento, possiamo dire che esso può essere diviso
nei seguenti punti :
-
Presentazione
e definizione della Piattaforma Java
-
La Piattaforma
Java vista da vicino
-
Uno sguardo al
compilatore e all'ambiente di sviluppo
Presentazione
e definizione della Piattaforma Java
Perché
parlare di Piattaforma Java e non di linguaggio Java ?
Parlare di Java
come un semplice linguaggio di programmazione è molto riduttivo
infatti le sue vere potenzialità vanno ricercate nelle API e nello
sviluppo che esse anno nei piani di SUN.
Sappiamo tutti
quali sono le caratteristiche portanti del linguagglio Java, ma pochi sanno
quali sono le caratteristiche portanti della Piattaforma Java, cioè
di quell'insieme di soluzioni software e hardware che hanno fatto di Java
un rivoluzionario del mondo informatico.
Iniziamo col
dire che la Piattaforma Java è composta nella sua essenza di due
parti :
-
Java Virtual
Machine
-
Java Application
Programming Interface (Java API)
Mentre la prima
parte è pressoché costante nella sua rappresentazione, la
seconda parte della Piattaforma, varia, dando vita alla Piattaforma Base
Java e alla Piattaforma Embedded Java.
Le differenze
tra le due piattaforme può essere schematizzata come sotto :
La prima piattaforma
è sicuramente la più conosciuta, grazie ad essa abbiamo creato
oggi molte applets ed applicazioni, potendo apprezzare la potenzialità
del linguaggio Java. La potenzialità di questo linguaggio aumenta
ogni giorno sempre di più grazie alle nuove estensioni delle API
standard, tali estensioni nascono per la risoluzione specifica di determinate
problematiche (API 2D - 3D, API per la sicurezza del commercio elettronico,
API per la comunicazione etc.).
La seconda Piattaforma
è quella meno conosciuta, poiché il programma di sviluppo
è stato slittato più volte dalla SUN. Questa piattaforma
e le relative API, sono state pensate per poter essere applicate a dispositivi
di largo consumo come: stampanti, fotocopiatrici, telefoni cellulari etc.
Attualmente le Java Embedded API sono sotto sviluppo, quindi non sono accessibili
per un uso standard.
Nei piani di
sviluppo della Piattaforma Java esistono altre due importanti iniziative
:
-
Il JavaOS
-
La famiglia di
microprocessori JavaChip
Il
JavaOS come avrete già intuito è un vero sistema operativo
da installare su un qualunque pc desktop, quindi essendo un sistema operativo
gestisce direttamente la macchina, "voglio dire che per funzionare non
ha bisogno di WIN95 o di OS/2 o di MacOS o di qualunque altro browser d'appoggio".
Chiaramente
JavaOS si basa sulle api standard e/o embedded di Java, quindi è
in grado di lavorare su personal computer, network computer, dispositivi
di consumo come stampanti, telefoni cellulari o pc Pad etc, senza dimenticare
tutti i dispositivi di tipo industriali quali PLC, microcontrollori etc.
Proprio in questo
periodo è stata rilasciata una prima versione di JavaOS, potete
prelevarla presso il sito di JavaSoft.
Avremo modo
di parlare di JavaOS in un prossimo articolo.
Oltre al JavaOS
la Piattaforma Java prevede un piano di sviluppo per la produzione di una
famiglia di microprocessori denominata JavaChip e precisamente picoJava
, microJava e ultraJava.
Il primo di
questi è stato progettato per poter supportare la Java Virtual Machine
(VM), esso non si basa su una tecnologia esistente quale potrebbe essere
quella di SPAC, ma su una nuova tecnologia studiata appositamente per gestire
in modo ottimale le caratteristiche di Java quali: il multithreadinge
la garbage collection, ossia la capacità di supportare più
processi contemporaneamente e di gestire in modo dinamico la memoria allocata
per le applicazioni.
Gli altri due
chip oltre ad inglobare la VM ingloberanno anche le Java Embedded API permettendo
cosi di portare il linguaggio Java ed il suo ambiente anche nei dispositivi
di largo consumo.
La
Piattaforma Java vista da vicino
Sulla base di
ciò che è stato detto sopra possiamo realizzare un grafico
rappresentante la piattaforma Base Java nella sua essenza.
Fig.1
La figura sopra
sintetizza efficacemente il meccanismo di funzionamento della Piattaforma
Java,come si può osservare le applets e le applicazioni non girano
direttamente sui vari sistemi operativi, ma girano sulla piattaforma Java
che si interfaccia come strato uniforme con tutti i sistemi operativi più
diffusi. (grazie ad un browser o ad una implementazione nativa di JavaOS
o ancora ad una implementazione diretta in sistemi operativi come Windows97/NT
5.0).
Come si può
dedurre gli elementi portanti della Piattaforma Java sono la Java Virtual
Machine e le Java Api.
La Java Virtual
Machine è un vero e proprio soft computer, esso può essere
implementato tramite software o hardware (JavaChip).Il suo codice rappresenta
una macchina astratta capace di "adattarsi" ai microprocessori esistenti.
Le Java Api
come abbiamo avuto modo di parlare si dividono in Java Base API e Java
Standard Extension API.
Le Java Base
API o Java Core API attualmente sono identificate con le Applet API,
in futuro alcune delle Java Standard Extension API migreranno verso le
Java Base API, per esserne parte integrante.
Attualmente
vengono riconosciute come Java Base API le seguenti API (Java package)
:
java.lang, java.util,
java.io, java.net, java.awt e java.applet.
Java Standard
Extension API queste API ampliano notevolmente le potenzialità
della piattaforma Java in quanto nascono per la risoluzione di specifici
problemi.
Per avere un
quadro più ampio realizzeremo uno specchietto che racchiude tutte
le API ed in particolare vedremo quale di queste migreranno verso le Java
Base API.
Api
che migreranno in Java Base API
-
Java 2D
-
Audio
-
Java Media Frameworked
-
Java Aniamtion
-
Java Enterprise
-
Java Commerce
-
Java Securety
Java
Standard Extension API
-
Java 3D
-
Video, MIDI
-
Java Share
-
Java Telephony
-
Java Server
-
Java Management
In particolare sotto
il nome di Java Media API sono riunite tutta una serie di classi
dedicate al multimedia interattivo sia in modalità Web-off che Web-on,
esse sono state realizzate dopo un lavoro congiunto tra JavaSoft e alcuni
produttori come: Adobe, Apple, Intel, Macromedia, Netscape, SG e SUN, le
classi includono :
-
Java 2D API
-
Java 3D API
-
Java Media Framework
API
-
Video API
-
Audio API
-
MIDI API
-
Java Animation AP
-
Java Share API
-
Java Telephony API
Sotto il nome di
Java Securety API va identificato un sofisticato framework per sviluppatori,
semplice da usare ma sicuramente dalle potenti funzionalità. Queste
includono crittografia con firma digitale e decodifica con autenticazione.
Le Java Enterprise
API sono delle classi che permettono di creare delle connessioni molto
flessibili tra le applicazioni Java-Based (applicazioni basate su Java)
e le risorse informatiche dell'area enterprise. Attualmente queste API
sono implementate nel JDK 1.1.1.
Esistono tre
gruppi di API specializzate nella connettività :
-
JDBC (Java
Database Connectivity)
-
IDL (Interface
Defination Language)
-
RMI (Remote
Method Invocation)
Brevemente possiamo
dire che le JDBC è un'interfaccia standard SQL per l'accesso
ai database, mentre IDL è un linguaggio neutrale permette
di interfacciare oggetti con client residenti su piattaforme diverse. MRI
è un sistema capace di richiamare metodi di oggetti residenti
su Virtual Machine remote (analogo alle chiamate di procedura RPC nel mondo
non ad oggetti).
Le Java Commerce
API sono nate espressamente per gestire alte finanze sul web.
(molto poco
lo so ! ma la lista è lunga.)
Le Java Server
API è un framework estendibile per la generazione di server web
basati interamente su Java. Questo set di API contengono delle librerie
di classi server-side per l'amministratore del server, il controllo d'accesso
e la manipolazione dinamica delle risorse del server.
Le Java Management
API sono una collezione di classi che permetteranno lo sviluppo di blocchi
per il management. Il set di API sarà corredato di interfacce, classi,
applets e linee guida per facilitare lo sviluppo di soluzioni integrate
di management.
Le API sono
composte da gruppi distinti, ognuno associato ad uno specifica area del
management.
Uno
sguardo al compilatore e all'ambiente di sviluppo
Per quanto concerne
questa sessione del documento, mi permetto di rimandare ad un prossimo
appuntamento, dove ci occuperemo in modo specifico dell'ambiente di sviluppo,
seguendo la traccia di altri documenti ufficiali della SUN.