««« | »»»
Anatomia di uno StarKit
Una definizione
Uno StarKit è un criterio per impacchettare tutte le risorse necessarie ad un’applicazione in modo auto–contenuto, che non necessita di alcuna installazione e portabile.
In cosa differisce uno StarKit?
Non è un’idea nuova, pensiamo per esempio ai Jar nel mondo Java, che sono degli zip con un file – il MANIFEST.MF – che indica la classe per avviare l’applicazione. Tuttavia, un Jar non è stato pensato per essere completamente indipendente, tant’è vero che è possibile indicare nel MANIFEST.MF dei parametri per il classpath, anche se non funziona molto bene, anzi. Lo stesso può essere detto, grosso modo, anche per formati come war, ear e compagnia bella.
Se tralasciamo la questione dell’auto–contenimento, il tratto distintivo di uno StarKit è l’uso di un file system virtuale, che consente all’applicazione di comportarsi esattamente come se fosse lanciata da una versione “spacchettata”. All’avvio, questo file system viene infatti montato in modo che appaia dal punto di vista dell’applicazione come una normale directory.
Creare uno StarKit con sdx
Uno StarKit viene creato con… un altro StarKit, chiamato StarKit Developer eXtension (sdx), a cui passeremo la nostra applicazione da impacchettare. In ogni caso la struttura risultante sarà una cosa del genere:
- myKit.vfs
- main.tcl
- lib
- app-myKit
- myKit.tcl
- pkgIndex.tcl
La sequenza di avvio
Ovvero, tutta l’applicazione viene messa sotto lib, mentre in main.tcl viene inserito il codice (generato da sdx) necessario all’avvio dell’applicazione:
package require starkit starkit::startup package require app-myKit
La prime due righe caricano il modulo dello starkit, inizializzando il file system virtuale e configurando la variabile auto_path; la terza riga causa il caricamento di myKit.tcl e l’avvio vero e proprio dell’applicazione.
La prossima volta parleremo degli StarPack.
Per proseguire
Commenti e trackback sono disabilitati.
Commenti su Anatomia di uno StarKit
Una risposta
Gli StarPack - ReFactor.it (12/12/09)
[…] che abbiamo visto come sono costruiti gli StarKit, è semplice estendere il discorso agli […]