Java Card este o versiune a platformei Java pentru dispozitive cu resurse de calcul extrem de limitate. În comparație cu alte versiuni de Java , codul octet, cerințele pentru platforma de execuție și compoziția bibliotecilor standard au fost modificate.
Scopul principal al produsului, după cum sugerează și numele, este utilizarea în carduri inteligente . În acest sens, accentul principal a fost pus pe suportul algoritmilor criptografici standard.
Cardul Java vă permite să instalați și să rulați în siguranță aplicații Java mici ( applet -uri ) pe carduri inteligente și alte dispozitive cu o cantitate foarte limitată de memorie . Această platformă permite furnizorului să programeze dispozitive și să le personalizeze pentru o anumită aplicație. Cardul Java este utilizat pe scară largă în cartelele SIM și ATM -uri . Dezvoltat de Schlumberger [1] , lansat publicului la 29 octombrie 1996 [2] de mai multe companii, inclusiv divizia de carduri inteligente a lui Schlumberger de atunci (acum Gemalto ). Platforma software Java Card este descrisă de specificațiile dezvoltate de Sun Microsystems [3] . În plus, GlobalPlatform (o organizație de standardizare) dezvoltă standarde pentru instalarea în siguranță a applet -urilor Java Card pe dispozitive.
Java Card descrie un mediu de rulare standard pe carduri inteligente pentru a permite aceleiași aplicații să ruleze pe dispozitive diferite, la fel cum aplicațiile Java SE / Java EE rulează pe computere hardware și software diferite, iar MIDleturile Java ME rulează pe diferite dispozitive. Ca și în cazul platformelor Java mai sofisticate, acest lucru se realizează printr-o combinație între o mașină virtuală (Java Card Virtual Machine, JCVM ) și o bibliotecă de clase standardizată, care permite applet-ului să facă abstracție semnificativă de la anumite modele de carduri inteligente . Cu toate acestea, acest lucru încă nu garantează pe deplin portabilitatea aplicației pe orice card inteligent, deoarece există factori precum dimensiunea memoriei, performanța sau disponibilitatea unor interfețe speciale (de exemplu, protocoale de comunicare sau algoritmi criptografici).
JCOP este un set de măsuri pentru dezvoltarea unui standard unic de sistem de operare cu o mașină virtuală Java Card pentru sisteme de identitate puternice și sisteme de plată. Dezvoltat de IBM cu integrare largă cu GlobalPlatform , organizațiile ICAO . Astăzi este practic sinonim cu JCVM .
Securitatea datelor de pe cardurile inteligente a fost una dintre prioritățile de top în dezvoltarea cardului Java . Este oferit de diverse proprietăți ale platformei:
La nivel de limbaj, Java Card este un subset al platformelor Java mai complete : toate constructele de limbaj Java Card sunt prezente în Java și se comportă exact în același mod. Mai mult, secvența de compilare standard folosește compilatorul Java normal (javac) fără opțiuni speciale și numai atunci rezultatul este procesat de un program specific Java Card pentru a obține un fișier care poate fi instalat pe un smart card. Cu toate acestea, multe caracteristici ale limbajului Java nu sunt acceptate în Java Card, cum ar fi tipurile char , double , float și long , cuvântul cheie tranzitoriu , tipuri enumerate ( enum ), matrice multidimensionale, finalizatoare , clonarea obiectelor, fluxuri .
Bytecode executat de mașina virtuală Java Card este funcțional un subset de bytecode Java , totuși este codificat diferit pentru a minimiza dimensiunea aplicației. Astfel, un applet Java Card ocupă de obicei mai puțin spațiu decât un applet ipotetic Java SE obținut prin compilarea aceluiași cod sursă. Această economisire a memoriei cardului inteligent are și un dezavantaj: lipsa suportului pentru unele caracteristici ale limbii (așa cum este descris mai sus) și limitarea dimensiunii applet-ului. Există modalități de a ocoli limita de dimensiune: de exemplu, prin împărțirea codului aplicației în pachete nu mai mari de 64 KB fiecare.
Tehnicile de programare utilizate într-o aplicație tipică Java Card diferă semnificativ de cele utilizate în Java SE. Cu toate acestea, faptul că Java Card este un subset strict al limbajului Java accelerează foarte mult curba de învățare a tehnologiei și, de asemenea, face posibilă utilizarea mediului Java SE pentru a dezvolta și depana aplicații. Mai mult, puteți rula și depana împreună în același mediu atât aplicația Java Card, cât și partea sa de server, care ar trebui să fie rulată pe un computer.
Cu toate acestea, ar trebui să verificați periodic dacă aplicația respectă restricțiile Java Card, compilând-o la bytecode corespunzător, precum și să o testați pe un smart card real pentru a vă face o idee despre performanța unui dispozitiv real.
Java | |
---|---|
Platforme | |
Sun Technologies | |
Tehnologii cheie ale terților | |
Poveste |
|
Proprietățile limbajului | |
Limbaje de scripting |
|
conferințe Java |
|
Platforme Java | |
---|---|
|