Molti sanno cos'è un Applet e, magari, avranno anche sviluppato qualche simpatica applicazione in Java da poter eseguire sulle proprie pagine web. Probabilmente, però, non altrettanti conoscono le limitazioni cui sono soggetti gli Applet e, se si è testato il proprio Applet unicamente con l'Applet Viewer fornito con il J2SE (magari utilizzando Eclipse come strumento di sviluppo), si potrebbe correre il rischio di restare delusi e sorpresi nel vedere scatenarsi eccezioni di tipo java.security.AccessControlException (o java.lang.SecurityException) quando si testa l'Applet in una effettiva pagina web.
Vediamo, allora, di approfondire meglio questo genere di concetti, cercando di trovare una risposta che ci chiarisca le idee relativamente alle seguenti domande:
Il codice di un'applicazione Java viene considerato affidabile (trusted) dalla Java Virtual Machine in quanto si presume che esso venga eseguito volontariamente dall'utente di un computer. Un Applet, al contrario, è valutato dalla JVM come codice non affidabile (untrusted) e pertanto potenzialmente pericoloso per la sicurezza della macchina e dei dati in essa contenuti.I motivi sono facilmente intuibili: si pensi, ad esempio, al fatto che un Applet, se fosse libero di eseguire qualunque operazione, potrebbe accedere liberamente al file system di una macchina leggendo qualunque informazione o, ancora peggio, cancellando qualsiasi file!
Anche le limitazioni sulla connessione via Socket hanno una logica incentrata sulla sicurezza: infatti, un Applet può aprire un Socket soltanto verso il server da cui lo stesso Applet è stato scaricato. E così, per analoghe ragioni, è fatto divieto agli Applet di caricare librerie, invocare metodi nativi ed eseguire processi su un client.
In generale, un browser esegue il codice di un Applet all'interno di una sandbox (letteralmente "buca di sabbia") che ne controlla le funzionalità imponendo le limitazioni di cui si è parlato.
Dunque, ci si potrebbe chiedere: gli Applet vanno utilizzati unicamente per creare effetti grafici accattivanti e gestire funzionalità limitate? La risposta è no. Gli Applet costituiscono, sicuramente, un mezzo sufficientemente potente per l'esecuzione di applicazioni attraverso il Web. È chiaro che se si sta pensando di implementare un'applicazione di tipo enterprise, le soluzioni da adottare sono altre (argomento che esula dal contenuto di questo articolo) ma è importante sapere che è possibile ampliare lo spettro di azione degli Applet superando le limitazioni di cui si è fatta menzione in precedenza. Non ci resta che vedere come fare per rendere un Applet un'applicazione trusted.
|
Struts vs JSF, le principali differenze tra i due framework per il Web |
Guida Apache StrutsIl primo e più utilizzato tra i framework MVC del mondo Java,... |
Guida Java SpringScoprire il lightweight container più famoso del mondo Java.... |
Guida Java 6Prendendo le mosse dalla guida Java, già presente su HTML.it,... |
Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.
Iscriviti alla newsletter