Mondi su mondi, sistemi di sistemi.

Anatomia di uno StarKit

Una defi­ni­zione

Uno StarKit è un cri­te­rio per impac­chet­tare tutte le risorse neces­sa­rie ad un’applicazione in modo auto–contenuto, che non neces­sita di alcuna instal­la­zione e portabile.

In cosa dif­fe­ri­sce uno StarKit?

Non è un’idea nuova, pen­siamo per esem­pio 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 pen­sato per essere com­ple­ta­mente indi­pen­dente, tant’è vero che è pos­si­bile indi­care nel MANIFEST.MF dei para­me­tri per il clas­spath, anche se non fun­ziona molto bene, anzi. Lo stesso può essere detto, grosso modo, anche per for­mati come war, ear e com­pa­gnia bella.

Se tra­la­sciamo la que­stione dell’auto–contenimento, il tratto distin­tivo di uno StarKit è l’uso di un file system vir­tuale, che con­sente all’applicazione di com­por­tarsi esat­ta­mente come se fosse lan­ciata da una ver­sione “spac­chet­tata”. All’avvio, que­sto file system viene infatti mon­tato in modo che appaia dal punto di vista dell’applicazione come una nor­male directory.

Creare uno StarKit con sdx

Uno StarKit viene creato con… un altro StarKit, chia­mato StarKit Developer eXten­sion (sdx), a cui pas­se­remo la nostra appli­ca­zione da impac­chet­tare. In ogni caso la strut­tura risul­tante 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, men­tre in main.tcl viene inse­rito il codice (gene­rato da sdx) neces­sa­rio all’avvio dell’applicazione:

 package require starkit
 starkit::startup
 package require app-myKit

La prime due righe cari­cano il modulo dello star­kit, ini­zia­liz­zando il file system vir­tuale e con­fi­gu­rando la varia­bile auto_path; la terza riga causa il cari­ca­mento di myKit.tcl e l’avvio vero e pro­prio dell’applicazione.

La pros­sima volta par­le­remo degli StarPack.

Per proseguire

Commenti e trackback sono disabilitati.