|
|||||||||||||||||||||||||||||||||
Come coronamento della mia serie di articoli sull’ambiente JavaCard, pubblicati da questa stessa rivista nei mesi scorsi, ho deciso di realizzare un articolo che riprende i concetti trattati finora alla luce del loro utilizzo in applicazioni reali per il mondo reale. Come tutti dovrebbero sapere, c’è sempre una distanza più o meno grande fra le prospettive offerte da una tecnologia e i vantaggi realmente usufruibili in sede di realizzazione. Ebbene, in questa sede si tenterà di valutare in questi termini sia l’ambiente JavaCard, sia tutte le tecnologie che gravitano attorno ad esso |
|||||||||||||||||||||||||||||||||
Introduzione
Questo articolo riporta le conclusioni critiche dell’autore su tutte le tecnologie che ruotano attorno alle JavaCard, alla luce della loro verifica nella realizzazione di applicazioni reali per il mondo reale. Il primo oggetto delle verifiche è, naturalmente, l’ambiente JavaCard. Si badi che per ambiente JavaCard si intende l’insieme delle specifiche che lo definiscono e non una particolare implementazione di questo. Tutto ciò è di fondamentale importanza per poter valutare correttamente il futuro di questo ambiente. Di seguito, verrà preso in considerazione il framework OpenCard, naturale complemento dell’ambiente JavaCard sul lato applicativo. In questo caso, si prenderà in esame l’implementazione di OpenCard Foundation, essendo questa distribuita dallo stesso consorzio che ne emana le specifiche. Infine, verrà data una brevissima valutazione degli strumenti di cui si è fatto cenno negli articoli precedenti, cioè quelli disponibili nei kit GalactIC di De La Rue (ora distribuito da Oberthur) e nel software gratuito degli iButton di Dallas Semiconductor. Questo permette di avere una panoramica sull’attuale livello degli strumenti disponibili per l’ambiente JavaCard. Valutazione critica
E’
comunque molto importante notare come queste limitazioni siano dovute alla
scarsità di risorse dei dispositivi e non all’ambiente JavaCard
stesso, tale ambiente non pone, infatti, alcun limite alla memoria utilizzabile.
Supponendo di disporre di dispositivi con risorse sufficienti, la progettazione
ad oggetti potrebbe essere applicata senza problemi, ma visto che la stragrande
maggioranza di dispositivi JavaCard attualmente disponibili pone limiti
piuttosto severi alla memoria disponibile, appare chiaro, purtroppo, che
il miglior stile di programmazione utilizzabile è quello della progettazione
strutturata.
Concludendo, l’ambiente JavaCard può essere considerato più che adatto ad un utilizzo industriale, cioè per la realizzazione di applicazioni reali per problemi reali. Passando al framework OpenCard, questo è indiscutibilmente uno strumento molto comodo per l’accesso alla carta e ai servizi installati su essa, come si può facilmente costatare analizzando le applicazioni che ne fanno uso, ma presenta alcuni problemi che attualmente ne limitano l’utilizzo. In primo luogo, le applicazioni reali che utilizzano il framework OpenCard hanno dimostrato una certa mancanza di affidabilità, presentando numerosi problemi di accesso alla carta. Questi problemi sembrano in realtà riconducibili più ai driver di basso livello che forniscono l’interfaccia al framework OpenCard che al framework OpenCard stesso, ma è anche vero che la struttura del framework influenza pesantemente le scelte sulle funzionalità di basso livello che devono essere fornite dai driver. In secondo luogo, il framework OpenCard non è così facilmente utilizzabile come si dovrebbe. La necessità di mantenere la massima generalità, necessaria per la gestione di tutti i possibili lettori di smartcard, richiede uno sforzo piuttosto elevato in fase di implementazione degli accessi alla carta dall’applicazione esterna. A questo si aggiunge anche la mancanza di una certa stabilità del framework, attualmente ancora in evoluzione a causa della sua relativa immaturità, che implica modifiche non banali al codice già scritto per passare da una certa versione del framework a quella successiva. I due punti precedenti fanno sì che un’interfaccia di accesso proprietaria, magari corredata da un framework sviluppato appositamente, possa ancora essere una soluzione accettabile per l’accesso a JavaCard in ambito industriale, soprattutto a causa della grande affidabilità che questa soluzione solitamente fornisce. Questo rimarrà vero fino a quando OpenCard Foundation avrà migliorato il suo framework e saranno disponibili implementazioni delle interfacce veramente affidabili. Solo allora i vantaggi in termini di indipendenza nell’accesso a SmartCard e ai servizi installati potranno effettivamente far diventare il framework OpenCard la soluzione più adatta in ambito industriale. Per quanto riguarda, infine, i tool di supporto allo sviluppo di applicazioni accennati negli articoli precedenti, quelli forniti da De La Rue per la JavaCard GalactIC, pur non essendo integrati in un unico ambiente, sono affidabili e comodi da usare. Una volta appreso il loro funzionamento, è possibile realizzare molto efficientemente tutte le operazioni richieste normalmente. L’affidabilità di questi tool è veramente ottima: difficilmente sono osservabili problemi di alcun tipo, né di funzionamento né sul risultato delle operazioni. Naturalmente, la loro mancata integrazione e le loro interfacce avanzate richiedono un certo addestramento prima di un loro proficuo utilizzo. Per quanto riguarda iB-IDE fornito da Dallas Semiconductor per gli iButton, questo ambiente integrato di sviluppo presenta alcuni problemi di funzionamento piuttosto fastidiosi, fra questi problemi nella gestione dell’interfaccia grafica e nell’utilizzo del debugger, oltre ad una certa lentezza di esecuzione, con richieste di risorse piuttosto elevate, come del resto tutti gli ambiente integrati di sviluppo scritti in Java attualmente disponibili. Tutti i problemi sembrano comunque riconducibili più a problemi di gioventù dell’ambiente integrato che a problemi concettuali veri e propri. Con il progredire delle versioni questi malfunzionamenti vengono, infatti, puntualmente corretti e sempre più è possibile apprezzare la rapidità con cui è possibile ottenere applicazioni funzionanti. Tutto
ciò sembra indicare che gli strumenti per lo sviluppo di applicazioni
JavaCard attualmente disponibili sono al massimo carenti dal punto di vista
della maturità: del resto, il concetto di smartcard programmabile
in Java è relativamente nuovo. Comunque, visto l’interesse delle
aziende mondiali in questo settore, probabilmente si assisterà,
nel corso dei prossimi anni, ad una maturazione continua e repentina degli
strumento di sviluppo, maturazione che porterà le JavaCard a sempre
maggiori risultati nelle applicazioni reali del mondo reale.
Conclusioni
Diversa è la situazione del framework OpenCard di OpenCard Foundation e degli strumenti attualmente disponibili per lo sviluppo di applicazioni: in questi campi risulta infatti ancora prevalente una sorta di immaturità diffusa, dovuta, a mio avviso, alla ridotta cerchia di sviluppatori interessati ed alla gioventù dell’idea. Naturalmente, il framework OpenCard è, e sempre di più sarà, un entità da tenere bene in considerazione per lo sviluppo di applicazioni JavaCard, in quanto applica al lato applicativo gli stessi concetti applicati dall’ambiente JavaCard all’accesso alle funzionalità del dispositivo. Del
resto, la bontà dell’ambiente JavaCard, e di tutte le tecnologie
che ruotano attorno ad esso, sembra essere confermata dall’attuale panorama
di applicazioni orientate alle JavaCard disponibili. Si pensi che solo
qualche tempo fa questo ambiente era perlopiù sconosciuto, mentre
ora molti sostengono che un radioso futuro attende questa tecnologia.
Bibliografia
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
|