Differenze tra le versioni di "Classloader"
imported>Ermes.bertoni |
imported>Ermes.bertoni |
||
(10 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
== | ==Obiettivi== | ||
Scopo di questa componente di Sicraweb | Scopo principale di questa componente di Sicraweb è quello di sostituire Java Web Start nel ruolo di supporto all'esecuzione di Sicraweb da remoto via protocollo HTTP. | ||
L'utilizzo del modulo permette di conseguire i seguenti vantaggi: | |||
Allo stesso server sicraweb possono quindi connettersi contemporaneamente alcuni client nella vecchia | * Sono automaticamente risolti tutti i problemi dovuti a malfunzionamenti e/o incompatibilità dello stesso Java Web Start nelle sue diverse versioni (notare che la versione di Java Web Start dipende dalla versione della Java Virtual Machine sui client, mentre il modulo classloader Sicraweb è incorporato neell'applicazione Sivcraweb). | ||
* L'impegno di risorse di rete è ridotto in quanto il modulo scarica sul client le sole risorse strettamente necessarie alle funzionalità di Sicraweb utilizzate dall'operatore che utilizza quel client. In particolare questo è ottenuto gestendo le risorse a livello di singole classi java piuttosto che di interi file jar. | |||
Ulteriore caratteristica del modulo è quella di non pregiudicare l'utilizzo di Sicraweb nella modalità tradizionale. | |||
Allo stesso server sicraweb possono quindi connettersi contemporaneamente alcuni client nella vecchia modalità e altri nella nuova (utilizzando link a file jnlp diversi). | |||
==Principi di funzionamento== | ==Principi di funzionamento== | ||
Nelle sue linee essenziali il modulo si compone di una mini-applicazione di startup, eseguita questa per mezzo di Java Web Start, che istanzia un classloader diverso da quello di Java Web Start. | Nelle sue linee essenziali il modulo si compone di una mini-applicazione di startup, eseguita questa per mezzo di Java Web Start, che istanzia un classloader diverso da quello di Java Web Start. | ||
Viene quindi eseguito un secondo task java che utilizza questo classloader e che esegue l'applicazione Sicraweb. | Viene quindi eseguito un secondo task java che utilizza questo classloader e che esegue l'applicazione Sicraweb. | ||
Il classloader, per funzionare, necessita di un interlocutore sul server, che gli fornisca le risorse (classi java e altre risorse). Questa componente | Il classloader, per funzionare, necessita di un interlocutore sul server, che gli fornisca le risorse (classi java e altre risorse). Questa componente è realizzata come servlet ed ha il compito di fornire ai diversi client che si connettono le risorse necessarie. | ||
La servlet mantiene anche una base dati di statistiche d'uso delle risorse in modo da ottimizzare l'invio delle stesse ai client. | La servlet mantiene anche una base dati di statistiche d'uso delle risorse in modo da ottimizzare l'invio delle stesse ai client. | ||
Riga 37: | Riga 40: | ||
== Classloader == | == Classloader == | ||
Il classloader fornisce all'applicazione Sicraweb le classi Java e le risorse man mano che sono necessarie. Allo scopo mantiene sul file system del client una cache delle risorse. Nel caso la risorsa richiesta da Sicraweb sia | Il classloader fornisce all'applicazione Sicraweb le classi Java e le risorse man mano che sono necessarie. Allo scopo mantiene sul file system del client una cache delle risorse. Nel caso la risorsa richiesta da Sicraweb sia già presente nella cache, questa viene letta da essa, altrimenti viene chiesta al server, scaricata, messa a disposizione di Sicraweb e aggiunta alla cache locale. | ||
[[Cache client]] | [[Cache client]] | ||
Riga 56: | Riga 59: | ||
[[Attivazione e disattivazione del classloader]] | [[Attivazione e disattivazione del classloader]] | ||
[ | [http://sicrawebhelp.saga.it/index.php/CllFRMGlobalAdmin Configurazione dei parametri globali] | ||
[http://sicrawebhelp.saga.it/index.php/ | [http://sicrawebhelp.saga.it/index.php/CllFRMConnectionAdmin Configurazione della connessione] |
Versione attuale delle 10:52, 23 ott 2012
Obiettivi
Scopo principale di questa componente di Sicraweb è quello di sostituire Java Web Start nel ruolo di supporto all'esecuzione di Sicraweb da remoto via protocollo HTTP.
L'utilizzo del modulo permette di conseguire i seguenti vantaggi:
- Sono automaticamente risolti tutti i problemi dovuti a malfunzionamenti e/o incompatibilità dello stesso Java Web Start nelle sue diverse versioni (notare che la versione di Java Web Start dipende dalla versione della Java Virtual Machine sui client, mentre il modulo classloader Sicraweb è incorporato neell'applicazione Sivcraweb).
- L'impegno di risorse di rete è ridotto in quanto il modulo scarica sul client le sole risorse strettamente necessarie alle funzionalità di Sicraweb utilizzate dall'operatore che utilizza quel client. In particolare questo è ottenuto gestendo le risorse a livello di singole classi java piuttosto che di interi file jar.
Ulteriore caratteristica del modulo è quella di non pregiudicare l'utilizzo di Sicraweb nella modalità tradizionale. Allo stesso server sicraweb possono quindi connettersi contemporaneamente alcuni client nella vecchia modalità e altri nella nuova (utilizzando link a file jnlp diversi).
Principi di funzionamento
Nelle sue linee essenziali il modulo si compone di una mini-applicazione di startup, eseguita questa per mezzo di Java Web Start, che istanzia un classloader diverso da quello di Java Web Start. Viene quindi eseguito un secondo task java che utilizza questo classloader e che esegue l'applicazione Sicraweb. Il classloader, per funzionare, necessita di un interlocutore sul server, che gli fornisca le risorse (classi java e altre risorse). Questa componente è realizzata come servlet ed ha il compito di fornire ai diversi client che si connettono le risorse necessarie. La servlet mantiene anche una base dati di statistiche d'uso delle risorse in modo da ottimizzare l'invio delle stesse ai client.
Componenti
Componenti logici
Dal punto di vista logico i componenti sono i seguenti:
- Startup: miniapplicazione di 'innesco'
- Classloader: vero e proprio classloader
- Servlet: servlet di supporto ai classloader sui client
- Setup: inizializzazioni e upgrade secondo gli standard Sicraweb
- Amministrazione: funzioni di attivazione, disattivazione e tuning
Componenti fisici
I componenti fisici sono i seguenti jar:
- it.saga.library.classLoader.admin.jar (form di amministrazione)
- it.saga.library.classLoader.client.jar (startup e classloader)
- it.saga.library.classLoader.menu.jar (menu di amministrazione)
- it.saga.library.classLoader.server.jar (servlet e parte server di amministrazione)
- it.saga.library.classLoader.setup.jar (setup)
Startup
La miniapplicazione di startup viene lanciata mediante Java Web Start. Questo rende necessario l'utilizzo di un nuovo e diverso file JNLP.
Al termine dell'avvio di Sicraweb, osservando i processi attivi sul client si potranno vedere quindi due processi: un processo javaw.exe (la miniapplicazione di startup) ed un processo java.exe (sicraweb).
Classloader
Il classloader fornisce all'applicazione Sicraweb le classi Java e le risorse man mano che sono necessarie. Allo scopo mantiene sul file system del client una cache delle risorse. Nel caso la risorsa richiesta da Sicraweb sia già presente nella cache, questa viene letta da essa, altrimenti viene chiesta al server, scaricata, messa a disposizione di Sicraweb e aggiunta alla cache locale.
Servlet
La servlet si occupa di:
- inizializzarre (la prima volta) una cache contenente tutte le risorse che necessitano ai client
- a ogni avvio di jboss, controllare se ci sono stati eventuali upgrade ai jar e riallineare, se necessario, la cache
- informare i client se le risorse contenute nelle loro cache sono obsolete
- fornire ai client le risorse richieste, ottimizzando le risposte in base alle statistiche d'uso
- mantenere statistiche sull'utilizzo delle risorse
Amministrazione
Attivazione e disattivazione del classloader