O Java em Sistemas Embarcados Sistemas embarcados estão cada vez mais presentes no dia a dia das pessoas, nos carros, eletrodomésticos, aparelhos telefônicos, nos caixas eletrônicos de bancos, etc. Tais sistemas apresentam restrições em termos de velocidade, tamanho, requisitos de memória e determinismo (capacidade de executar uma tarefa dentro de um certo período de tempo). A linguagem JAVA oferece algumas características que a tornam ideal para o desenvolvimento de sistemas embarcados, como portabilidade, reuso de código, confiabilidade, segurança, conectividade com a WEB e com outros sistemas embarcados. Além da melhor qualidade do código, devido às características de orientação a objetos da linguagem, projetos embarcados desenvolvidos em Java ganham em tempo e custo de desenvolvimento, em função da variedade de ferramentas de desenvolvimento e suporte existentes. Por outro lado, as atuais implementações da especificação Java são muito lentas, não determinísticas e demasiadamente grandes para o desenvolvimento de sistemas embarcados, além de não proverem funcionalidades essenciais para estes sistemas, tais como controle direto do hardware, execução a partir da ROM, escalabilidade e comportamento de tempo real. Parece um contrassenso propor Java como tecnologia para o desenvolvimento de sistemas embarcados, pois enquanto um dos objetivos de Java é prover uma plataforma de desenvolvimento independente de hardware e sistema operacional subjacente, sistemas embarcados usualmente requerem controle total dos mesmos. Contudo, o crescimento em quantidade e principalmente funcionalidade de dispositivos embarcados de uso pessoal ou de consumo fez surgir à necessidade de se desenvolver aplicações cada vez mais elaboradas e que pudessem ser facilmente portadas para uma família de dispositivos, atividade a que Java se presta muito bem. A atual conjuntura fez surgir duas classes de desenvolvedores para sistemas embarcados: aqueles preocupados na funcionalidade da aplicação (independência de dispositivo) e aqueles preocupados em fazer com que a plataforma Java possa ser portada para as diversas classes de dispositivos embarcados (amplo controle sobre o hardware). Java apresenta várias características que a tornam atrativa para o desenvolvimento de sistemas embarcados, tais como portabilidade, segurança, simplicidade, conectividade, desenvolvimento rápido de aplicações, entre outras. Sistemas embarcados apresentam restrições tais como memória, velocidade e determinismo, que devem ser atendidas para que Java possa ser aplicada aos mesmos. Por consequência, esforços têm sido feitos no sentido de torná-la mais enxuta, rápida e previsível. E foi pensando nisso que a Oracle, por sua vez criou uma linha chamada de Java Embedded SE, que nada mais é que uma linha específica de máquinas virtuais e voltadas para os sistemas embarcados em Java. E possuem um tamanho reduzido e também é mais otimizada para operação em algumas GPUs presentes em algums System On Chips de placas abertas de mercado. E essa nova linha de máquinas virtuais não possuem uma instalação muito complicada já que basta transferir o binário Java feito em sua estação de trabalho para o sistema embarcado que este binário funciona automaticamente. Exemplo de como criar um código de Java embarcado, usando o NetBeans: Instale o Netbeans ou o qualquer outro programa de desenvolvimento java e também a maquina virtual Java, agora que tudo que precisamos esta instalado, vamos fazer o código. Crie um projeto. Para isto, é preciso entrar em Arquivos Novo Projeto categoria Java Java Projetos Clique em próximo De um Nome do projetodetermine onde ele será criado Clique em Finalizar. 1ª Passo: Arquivos Novo Projeto 2ª Passo: Categoria Java Java Projetos Clique em próximo 3ª Passo: De um Nome do projetodetermine onde ele será criado Clique em Finalizar. Criar uma classe principal para o projeto. Para isso, olhe para seu lado esquerdo na opção projeto, clique no Pacote de Códigos-fonte, com o botão esquerdo e selecione o Nome do pacote atual e mande criar uma nova classe. Observação: O NetBeans, ao criar o projeto ele já cria uma primeira classe , então este passo 4ª você pode pular e não fazer. Como criar uma classe para o projeto: 4ª Passo: Olhe para seu lado esquerdo na opção projeto, clique no Pacote de Códigosfonte, com o botão esquerdo e selecione o Nome do pacote atual e mande criar uma nova classe 5ª Passo: Dentro de public static void main(String[] args) {}, digite: System.out.println("Hello World\n"); não se precupe o código que esta marcado de azul, o próprio NetBeans, cria pra você. 6ª Passo: Execute o projeto pra vê-lo funcionando antes de passa-lo par ao dispositivo desejado. Para Isso e só apertar F6. 7ª Passo: Na parte inferior da tela aparecera, neste nosso exemplo: Hello World 8ª Passo: Agora devemos exportá-lo para funcionar também em nossa BBB (neste caso estou usando uma Beagle Bone Black (BBB), estação de trabalho para o sistema embarcado). Para Isso deve-se ir em ArquivoExportar Projeto Para Zip. 9ª Passo: Escolha em que Projeto-Raiz desejado você irá exporta-lo. E clique em Exportar 10ª Passo: Ai ele gerar um arquivo Zip, do código criado anteriormente. E após clicar em Exportar, um arquivo hello.jar é criado em sua área de trabalho ou onde você definiu para que o mesmo fosse criado. Este arquivo deve ser transferido para sua BBB. 11ª Passo: Como transferir para sua BBB, basta executá-lo em sua linha de comando, assim: Observação: Mesmo sendo capaz de criar um pequeno sistema embarcado. Ainda são necessárias análises, tanto de desempenho como também de analise de capacidade de reuso dos componentes no Java a serem usados em seus projetos pessoais futuros. Artigo feito pelos alunos: Yasmin Luiza Rosa Rodrigues da Silva Diego Lopes de Barros Vieira Wesley Luan Dias da Silva Professor: Rafael Ribeiro