Guia de Início Rápido do Desenvolvimento de Java Card

Um cartão inteligente pronto para Java

Contribuição de Tim Boudreau, mantido por Ruth Kusterer

O Java Card é uma plataforma interessante para trabalhar com - um JVM que executa em smart cards e pequenos dispositivos que cabem na palma da mão. O Java Card 3.0, vem em dois tipos:

Clássico:
É o mesmo que as versões anteriores do Java Card. A plataforma é extremamente limitada. Por exemplo, o java.lang.String não existe, não tem nenhum método java.lang.Object.hashCode() e nenhum número de ponto flutuante.
Estendido:
Cartões inteligentes novos e mais potentes—este é novo no Java Card 3.0. Ele suporta uma implementação muito mais completa da Plataforma Java. Provavelmente, a melhor coisa sobre o suporte nativo para Servlets é que você pode realmente gravar uma aplicação Web utilizando APIs familiares, que podem ser executados em um cartão inteligente!

Conteúdo

Requisitos

Para concluir este tutorial, são necessários os seguintes recursos e softwares:

O conteúdo desta página aplica-se ao NetBeans IDE 6.8 e 6.9
Software ou Recurso Versão Necessária
NetBeans IDE 6.9
Java Card SDK 3.02
Plug-in Java Card para NetBeans 1.3
Java Development Kit (JDK) Versão 6

Configurando o Ambiente do Projeto

Como um cartão inteligente não tem uma interface de usuário, é necessário um leitor de cartão inteligente para ler e gravar os dados nos cartões ou utilizar um emulador incluído na Implementação de Referência do Java Card (RI). Este tutorial utilizará o emulador.

Observação: o plug-in do Java Card funciona em qualquer sistema operacional, mas o emulador de Implementação de Referência do Java Card está disponível somente para Windows. Entretanto, é possível configurá-lo como uma Plataforma Java em outros sistemas operacionais ao apontar o NetBeans para uma instalação do RI em uma partição Windows nos sistemas Mac ou Linux, mas não é possível executar projetos utilizando essa configuração.

Instalando Plug-ins no NetBeans IDE

  1. Faça o download e instale o NetBeans IDE 6.9.
  2. Após a instalação, vá para o menu Ferramentas > Plug-ins.
  3. Em Plug-ins Disponíveis existem dois plug-ins relacionados ao Java Card: Java Card e Pacote de Runtime do Java Card.
    • O Java Card é o plug-in que adiciona o suporte ao projeto Java Card para o NetBeans IDE.
    • O Pacote de Runtime Java Card 3.0.2 é necessário somente se você não possuir uma cópia da Implementação de Referência do Java Card instalada.

    Instalando o Plug-in do Java Card para NetBeans

  4. É necessário reiniciar o IDE após a instalação dos plug-ins para continuar as etapas do tutorial a seguir.

Registrando a Plataforma do Java Card

Caso você faça o download do Pacote de Runtime do Java Card 3.0.2 do Gerenciador de Plug-in, o Java Card SDK já estará configurando como uma plataforma. Entretanto, caso a plataforma tenha sido transferida por download e instalada pelo java.sun.com é possível utilizar o menu Ferramentas > Plataformas Java para adicionar a Plataforma do Java Card ao IDE da mesma forma que é feito o registro de qualquer plataforma Java.

Instalando uma Plataforma do Java Card

Após a configuração da Plataforma Java Card, ela é listada na guia Serviços no IDE. Se a guia Serviços não estiver visível, selecione no menu Windows > Serviços.

Plataformas e Dispositivos do Java Card Instalados

Uma "plataforma" pode conter vários "dispositivos". Um projeto é implantado para um dispositivo em uma plataforma específica.

Entendendo os Tipos de Projeto do Java Card

Selecione Arquivo > Novo Projeto no menu e clique na categoria Java Card. Existem vários tipos de projetos Java Card que podem ser criados. Todos eles são construídos com o Apache Ant, assim como projetos Java SE do NetBeans.

Tipos de Projeto do Java Card no NetBeans

Projetos Applet clássicos criam um applet Java Card tradicional para dispositivos menores, assim como applets utilizados no Java Card 2.0 e posterior. Projetos de biblioteca clássicos são como projetos Applet clássicos, mas sem o applet: é algum código que você espera que esteja no dispositivo e que pode ser compartilhado entre applets.

Projetos Biblioteca e Applet estendidos utilizam o API estendido no Java Card 3.0, então é possível utilizar java.lang.String e assim por diante. O classpath de inicialização será diferente para projetos Clássicos e Estendidos, então, por exemplo, a funcionalidade completar código não mostrará java.lang.String em projetos Clássicos, mas mostrará em projetos Estendidos.

Criando um Projeto Applet do Java Card

Projetos de Aplicações Web são provavelmente a funcionalidade mais legal do Java 3.0 Card. Você obtém o esqueleto de um projeto com um Servlet implementado, e caso você tenha acesso completo ao API do Servlet. É muito mais fácil trabalhar dessa maneira do que com uma das aplicações em estilo de Applet, pois não é necessário nenhum código especial no cliente para interagir com uma aplicação executada em um dispositivo, apenas um Web browser! É possível testar as aplicações localmente utilizando a Implementação de Referência e um Web browser de área de trabalho.

Criando um Projeto de Aplicação Web do Java Card

Trabalhando Com um Projeto

Para este tutorial foi criado um novo Projeto Web.

No novo projeto Web, Digite "Aplicação Web Card" como nome do projeto e defina o local do projeto para o diretório NetBeansProject. Clique em Finalizar e o projeto aparecerá na guia Projeto.

Clique com o botão direito do mouse no nó do projeto na guia Projetos e selecione Propriedades no menu de contexto. Na seção Executar da janela Propriedades do Projeto, é possível alterar a plataforma e o dispositivo que o projeto implanta. Clique em Fechar para salvar suas alterações.

Trabalhar em uma aplicação Web Java Card é como trabalhar em qualquer outra aplicação Web implantada em um contêiner do servlet. Pressione o botão Executar na barra de ferramentas para executar a amostra do Hello World. Durante a execução de uma aplicação Web Java Card, uma janela do Web browser é aberta, mostrando a saída do servlet: Hello do webapplication1.MyServlet.

Edição de Código em um Projeto de Aplicação Web do Java Card

Quando você executa projetos do tipo applet, o NetBeans IDE oferece duas interfaces úteis: linha de comandos de saída e a console Java Card. Utilize a console para interagir com o applet: é possível enviar dados em hexadecimal e ler as respostas.

Dica: o RI contém mais projetos de amostra que estão prontos para serem abertos e executados no NetBeans IDE.

Propriedades de Execução do Projeto do Java Card

Utilizando Funcionalidades Especiais de Plug-in

O Java Card envolve dois pedaços de arcana que não são encontrados em outras plataformas Java:

Identificadores de Aplicação (AID)
Esses são identificadores únicos que se parecem com //aid//720A75E082/0058AEFC20. A primeira parte do hexadecimal é um ID de vendedor (é possível obter uma na Organização Internacional para Padronização (ISO)); a segunda parte é um valor único apresentado. AIDs são utilizados para identificar classes de applet, pacotes Java (apenas projetos de applet & clássico e biblioteca clássica) e instâncias únicas de applets (é possível implantar a mesma aplicação várias vezes em um dispositivo: o AID da instância é utilizado para selecionar qual applet receberá informações).
scripts APDU
Estes são scripts que enviam dados para um applet. Isso envolve uma quantidade exorbitante de hexadecimais escritos, o script precisa selecionar uma instância de applet específica e, em seguida, envia dados para ela. É possível utilizar a console Java Card em vez de enviar um script pré-gravado.

Embora essas duas coisas sejam um pouco complicadas, os plug-ins do NetBeans fazem o que podem para abstrair a complexidade de lidar com elas, como a seguir:

  • Quando você cria um projeto, valores razoáveis para o AID do Applet, AID de Pacote Clássico e um AID da Instância são gerados automaticamente.

  • Quando você seleciona a guia Applets na caixa de diálogo Propriedades do Projeto, o projeto digitaliza o classpath para todas as subclasses do applet Java Card que localizar:

    Localizando Subclasses de Applet em um Projeto do Java Card

  • Uma vez localizadas, a caixa de diálogo permite selecionar quais applets são realmente implantados e personalizar os valores do AID utilizados, os parâmetros implantados e assim por diante. O IDE valida todos os dados inseridos, dificultando a inserção de dados inválidos:

    Personalizando a Implantação do Applet no Projeto Java Card

  • Se desejar implantar duas instâncias do mesmo applet, é possível configurar isso também; entretanto, para casos simples onde deseja apenas implantar uma instância de applet, não é necessário pensar sobre isso:

    Personalizando Instâncias Implantadas do Applet em um Projeto do Java Card NetBeans

  • Para testar applets em execução, não é necessário escrever um script APDU inteiro. É possível utilizar a console embutida para interagir com os applets implantados diretamente:

    Abrindo a Console APDU

    A Console APDU

  • O "AID do pacote" para projetos Clássicos (permitidos para conter somente um pacote Java) também é tratado pelo IDE, mas é personalizável.

    Personalizar Pacote AID Clássico

  • Parte de todos os valores de AID no seu projeto será um ID de vendedor de ISO designado (chamado RID). Para início rápido, o IDE gerará um valor aleatório para o RID, o que é bom para o desenvolvimento e teste. Caso tenha um RID oficial, é possível inseri-lo em Ferramentas > Opções para utilizá-lo em todos os novos projetos. Clique no botão Gerar em Propriedades do Projeto para atualizar os valores nos projetos existentes.

    Configurar o RID Global utilizado por todos os AIDs dos Projetos do Java Card

Integrando SDKs de Terceiros

Atualmente, as ferramentas suportam somente a Implementação de Referência do Java Card 3.0.2, mas têm um API extensível para cartões de vendedores integrados. As definições de dispositivos e plataforma são simplesmente arquivos de Propriedades, que são importados pelo script construtor.

A implantação é feita por meio de um grupo de tarefas Ant fornecido pelo vendedor de cartão. Isso significa que o projeto criado pode ser executado fora do IDE, pois não existe nenhum bloqueio. Os códigos-fonte para as tarefas Ant que são parte do RI do Java Card podem ser transferidas por download no portal do projeto Java Card, assim como projetos de amostra prontos do NetBeans.

Você é um vendedor de cartões que criou as ferramentas de implantação Java Card? Contate o autor para obter detalhes sobre como integrar seu cartão! A integração pode ser feita em vários níveis, dependendo de quanto suporte você deseja fornecer dentro do IDE para o cartão.


Links Relacionados

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo