3. Java Card
Java Card é uma Interface de Programação de Aplicativos (API) desenvolvida e distribuída pela Oracle que permite que aplicativos Java, chamados applets, seja executados nos chips de Smart Cards, acessando seu sistemas de arquivos e microprocessador.
3.1. Características
3.1.2. Ambiente com baixo poder computacional
Executar applets Java em chips de baixo poder computacional como o de Smart Cards é um desafio. Sendo assim, a tecnologia Java Card implementa a máquina virtual Java de forma dividida entre o sistema do cartão e o sistema operacional do terminal. No cartão, são implementados o modelo de execução, comunicação, segurança e o gerenciamento da memória. Processos como carregamento de classes, verificação de bytecode, etc. são executados no sistema externo ao cartão.
3.1.3. Programação de alto nível
Outra característica implementada pela API é a separação entre o sistema e as aplicações. Assim como a linguagem Java para desktops, a API permite o gerenciamento dos dados através de requerimentos bem definidos e de alto nível.
3.1.4. Portabilidade
Como aplicativos em Java para desktops, os applets Java Card são independentes de plataforma. Dessa forma applets iguais podem ser usados em Smart Cards com capacidade de memória e processamento diferente, além de estruturas e arquiteturas diversas. Isso não se limita a cartões, mas também a ambientes em que há pequeno poder de processamento.
3.1.5. Multifuncionalidade
Cartões com tecnologia Java Card podem conter mais de um applet. A API Java Card gerencia o compartilhamento de dados entre applets diferentes, protegendo dados internos aos applets e sincronizando o acesso a dados compartilhados.
3.1.6. Instalação dinâmica
Um applet pode ser instalado em um cartão já montados, e isso pode ser feito dinamicamente durante o uso do cartão, através de atualizações durante as transações.