Come visto nei precedenti capitoli, VrmlScript offre una soluzione piuttosto semplice per la soluzione di problemi di interattività; ma tale relativa semplicità, costituisce anche il suo limite.
Supponiamo di volere creare una interfaccia a finestre da cui controllare il mondo VRML. L'utente selezionando dai vari bottoni presenti sulla finestra puo' imporre che avvengano certe azioni nel mondo. Per esempio potrebbe manovrare un manichino virtuale.
Un altro esempio tipico: si vuole realizzare un mondo VRML in multi-utenza,
cioè condiviso da più utenti (sottoforma di avatar) che possono interagire
tra loro. Tutta la parte concernente la gestione delle connessioni internet
dovrebbe essere gestita da Java in quanto VRML è in grado di gestire unicamente
alcuni degli eventi interni al mondo virtuale.
Un ultimo esempio potrebbe essere rappresentato da un "videogioco", nel quale
la descrizione dell'ambiente avviene tramite VRML, mentre la parte di controllo
viene esercitata da Java.
In tutte queste situazioni il solo VRML non è sufficiente; e nessun linguaggio di scripting, sia esso VrmlScript o JavaScript può essere di maggior aiuto. Come tutti i linguaggi di scripting, VrmlScript infatti non consente di avere accesso alla potenza disponibile con un vero linguaggio di programmazione. Per ovviare a questi limiti, VRML 2.0 consente l'implementazione e l'interfacciamento di un vero e proprio linguaggio di programmazione: Java.
Cos è Java
Non è certo questa la sede in cui trattare di Java, qui si intende solo fornire
una panoramica, da molto lontano, sulle caratteristiche principali di questo
linguaggio. Chi volesse conoscere più a fondo Java può ovviamente rivolgersi
ai numerosi manuali reperebili nelle librerie specializzate, o meglio ancora
vedere la sezione ad esso dedicata presso il nostro sito.
Java è un linguaggio di programmazione a tutti gli effetti. Una delle sue caratteristiche principali è l'indipendenza dalla piattaforma, ovvero il fatto che le applicazioni create con Java possono essere eseguite sulla maggior parte dei sistemi, siano essi DOS, Windows, Mac, Linux, Unix ecc. Infatti, una volta realizzato il cosiddetto "codice sorgente" del programma in formato ASCII, questo viene "compilato", cioè tradotto in un diverso formato chiamato "bytecode".
Mentre il codice sorgente viene salvato con il formato .java, il file compilato viene salvato come file .class. Sotto questa nuova forma, il programma creato può finalmente essere eseguito dal cosiddetto "interprete" di Java: la Java Virtual Machine (JVM). Ora, per ognuno dei sistemi operativi sopra enunciati, è disponibile l'adeguato interprete, esiste cioè una JVM che funziona sotto Windows, una per il Mac, una per Linux ecc. Questo meccanismo consente ad un unico programma scritto e compilato in Java di essere eseguito su qualsiasi macchina, purchè questa abbia l'interprete del bytecode.
La seconda caratteristica di Java che occorre tener presente è questa: con Java si possono creare due tipi di programmi, le consuete applicazioni e gli "applets". La differenza sostanziale tra questi due tipi di programma è che gli applets vengono inseriti in pagine HTML e generalmente vengono visualizzati dagli utenti all'interno di browsers Web.
Classi e Oggetti
Java è un linguaggio "orientato agli oggetti", come il C++, e questa sua caratteristica
comporta la necessità di conoscere almeno i fondamenti della programmazione
orientata agli oggetti. Questo metodo tende a creare delle "unità" indipendenti
di codice dotate di caratteristiche e comportamenti ben precisi, di modo che
possano essere riutilizzate il più possibile all'interno dello stesso programma
o anche in programmi diversi.
Queste unità indipendenti sono gli "oggetti", e vengono create partendo da modelli più generali denominati "classi". Si possono considerare le classi come entità astratte, teoriche, contenenti una ben determinata serie di caratteristiche e comportamenti potenziali. Mentre gli oggetti ne costituiscono le "istanze", ovvero le realizzazioni concrete.
Il JDK (kit di sviluppo Java) è fornito con un'ampia libreria di classi predefinite, che offrono una serie di strumenti utilissimi per svolgere varie funzioni. Tali classi sono raccolte in una serie di "package", tutti a loro volta contenuti nel "package java". A titolo di esempio, di seguito sono elencati alcuni dei package disponibili:
Come implementare Java in mondi VRML
Al momento esistono due modalità che consentono l'interazione tra Java e VRML:
JSAI (Java in Script Nodes Authoring Interface) che prevede l'impiego
del nodo Script, oppure 'interfaccia esterna EAI (External Authoring
Interface).
Il primo approccio è quello originariamente previsto dalle specifiche VRML 2.0. Una classe Java (un file .class) viene attivata per mezzo di un opportuno nodo presente all'interno del mondo VRML: il nodo Script. Questo nodo, oltre ad indicare la classe che deve essere attivata in fase di caricamento del mondo, indica anche i campi che possono essere modificati dalla classe stessa.
Le classi Java collegate al mondo VRML non girano come applets ma vengono definite come estensioni della classe Script. Per poter accedere ai campi VRML indicati nel nodo Script, esistono opportuni "packages" (in pratica collezioni di classi) che vengono forniti assieme al browser VRML. facendo ricorso alle classi contenuti in questi packages è possibile accedere ad un campo del mondo VRML, leggerne e impostarne il relativo valore. Il secondo approccio, rappresentato dall'interfaccia esterna EAI, consente di controllare un mondo VRML da una applet Java. L'interazione qui non viene inizializzata dal mondo VRML (che non contiene nessun riferimento alla classe Java controllante). E' infatti l'applet stessa che provvede ad ottenere un riferimento al browser VRML. Dopodichè, è in grado di ottenere ulteriori references a nodi e campi presenti nel mondo VRML. Anche qui esistono opportuni packages che vengono distribuiti con i browsers, contenenti le classi che consentono di accedere a nodi e campi, di leggerne i valori e di procedere alla loro modifica.
Quindi, Java può essere utilizzato per aumentare la potenza di VRML, rendendolo adatto a gestire le più svariate situazioni. Ma è possibile anche il contrario; si può pensare ad una applicazione Java che utilizza VRML come mezzo di output per la visualizzazioni di dati.
Nel prossimo capitolo si vedrà un esempio di come si possa utilizzare Java mediante il nodo Script.
Open Graph Protocol, Facebook e il Web SemanticoCome sfruttare il Web Semantico "made in Facebook" |
Introduzione a RDFa - 2Arricchire un documento HTML con metadati semantici presi dal... |
Introduzione a RDFaCos'è e a cosa serve il linguaggio che potrebbe aprire il campo alle... |
Usare SVG per creare sfondi flessibili, scalabili e divertentiScopriamo cos'è il formato SVG e come possiamo usarlo in modo... |
Visualizzare i metadati RDF Dublin core con le trasformazioni XSLMettere insieme XSL, XPATH e le definizioni Dublin core per... |
Guida PodcastingUn percorso in 16 lezioni, per entrare nella filosofia del podcast... |
Guida Smil 2.0Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per... |
Guida Web serviceCosa sono, a cosa servono e come si creano servizi Web, i sistemi... |
Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.
Iscriviti alla newsletter