JavaCard
Teknologjia JavaCard kombinon nënbashkësinë e gjuhës programuese Java me ambientin e ekzekutimit të optimizuar për smart kartela apo pajisje të ngjashme me resurse të kufizuara. Në vitin 1990 në kompaninë Sun filloi zhvillimi i gjuhës së re programuese Java. Objektivat e kësaj gjuhe ishin që të krijohen programe që janë të pavarura nga hardueri, të sigurta e që mund të përdoren për mikrokontrollera. Benefiti kryesorë nga gjuha Java për smart kartela është mundësia që cilido zhvillues mund të krijojë aplikacione për smart kartela. Kjo për arsye se Java është një gjuhë e lehtë, ekzekutohet në shumë platforma dhe tashmë veçse është e njohur për programerët. Java për smart kartela është nënbashkësi e gjuhës Java për kompjuterë, pra disa opsione janë larguar e disa janë shtuar në mënyrë që Java të përshtatet për smart kartela. Së pari applet-i kalon nëpër “bytecode verifier”, i cili kontrollon fajllin, sintaksen, metodat e argumentet e tyre. Ngarkuesi(ang. loader) merr kodin dhe e dërgon atë përmes fajllit të formatit CAP(Card Application) tek interpreteri. Ky kalim duhet të jetë i siguruar përmes nëshkrimeve digjitale nga rreziku i manipulimit gjatë kalimit nga një pjesë e kartelës në tjetrën. Interpreteri e merr këtë kod dhe e kthen në kod të makinës dhe e dërgon në procesor për ekzekutim. Menaxheri i sigurisë vazhdimisht përcjellë interpretimin, e nëse vërehet ndonjë problem inicon përjashtim dhe ndërpren interpretimin. Meqë Java për smart kartela është nënbashkësi e Java-s për kompjuterë, në vazhdim do të përmenden disa dallime dhe të përbashkëta në mes tyre: nuk mundëson ekzekutimin efiçientë të disa thread-ëve paralelisht. kartela, kështuqë në programet me smart kartela nuk mund të përdoret funksioni finalize, i cili aktivizon “garbage collector”. së kufizuar. Tipet e anëtarëve të vektorit duhet të jenë vetëm tipe primitive të përkrahura nga JavaCard teknologjia. mundësojnë kontrollimin dhe shmangjen e gabimeve fatale që ndodhin. Pra edhe në smart kartela mund të përdoren funksionet try, catch, finally, throw. përgjithësi përkrahen në të gjitha smart kartelat me JavaCard. Tipi i të dhënave int është alternativë, dhe iplementohet vetëm tek procesorët me të avancuar. Te smart kartelat nuk përkrahen tipet string, double, float apo long. Java për smart kartela përmes librarive javacardx.crypto përkrah enkriptimin simetrik, duke mundësuar krijimin e çelësit, dhe enkriptimin e dekriptimin përmes DES, si dhe dekriptimin përmes Triple DES(3DES) algoritmit. Gjithashtu JavaCard teknologjia përkrah edhe ekzekutimin e algoritmeve asimetrike, konkretisht atë RSA(Rivest Shamir Adleman), përmes së cilit bëhet authentikimi dhe verefikimi, në fakt authentikimi është më i zakonshëm në smart kartela. Përveq sigurisë që smart kartelat duhet të ofrojnë për përdoruesin përmes algoritmeve kriptografike, gjithashtu smart kartela duhet që të jetë e siguruar në mënyrë që të mos manipulohet. Java smart kartelat mundësojnë këtë siguri duke ofruar një ambient të sigurtë të ekzekutimit. Pikë së pari aplikacionet mbrohen nga njëri tjetri me anë të firewall(“mur mbrojtës”) i cili i pamundëson aplikacioneve që të ndërhynë në hapësirën memorike që i takon një aplikacioni tjetër. Kjo siguri është e domosdoshme për smart kartelat me shumë aplikacioni sikurse që janë Java smart kartelat.