Differenze tra le versioni di "Classloader"

Da wiki.maggioli.it.
Jump to navigation Jump to search
imported>Ermes.bertoni
imported>Ermes.bertoni
Riga 1: Riga 1:
==Scopo==
==Obiettivi==
Scopo di questa componente di Sicraweb è quello di sostituire Java Web Start nel ruolo di supporto all'esecuzione di Sicraweb da remoto via protocollo http.
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.
Questo con l'obiettivo di risolvere i problemi legati a Java Web Start per bug e/o incompatibilità con le diverse versione della Java Virtual Machine.


Vincolo della soluzione è quello di non dover modificare nulla nell'applicazione Sicraweb che quindi continua a poter funzionare anche nella modalità tradizionale.
L'utilizzo del modulo permette di conseguire i seguenti vantaggi:
Allo stesso server sicraweb possono quindi connettersi contemporaneamente alcuni client nella vecchia modalità e altri nella nuova (utilizzando link a file jnlp diversi).
* Sono risolti tutti i problemi causati da Java Web Start per bug e/o incompatibilità con le diverse versioni della Java Virtual Machine sui client.
* 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.
 
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 è realizzata come servlet ed ha il compito di fornire ai diversi client che si connettono le risorse necessarie.
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 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.
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]]

Versione delle 08:45, 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 risolti tutti i problemi causati da Java Web Start per bug e/o incompatibilità con le diverse versioni della Java Virtual Machine sui client.
  • 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.

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.

Nuovo JNLP vs. vecchio 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.

Cache client

Precaricamento delle risorse

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

Cache server

Amministrazione

Attivazione e disattivazione del classloader

Configurazione dei parametri globali

Configurazione della connessione