Sun Inner Circle: For Business & Technology Leaders Sun Inner Circle: For Business & Technology Leaders

A tecnologia Java dá um salto enorme no mundo dos microdispositivos


Os desenvolvedores não precisam mais se preocupar mais com coisas pequenas, pois a máquina virtual Squawk leva a tecnologia Java às aplicações microembedded

A oportunidade de mercado para dispositivos cada vez menores e mais potentes cresce especialmente porque a definição de uma plataforma de computador se desenvolveu desde que a tecnologia Java foi introduzida em 1995. A grande maioria dos dispositivos de computador não são os desktops, laptops, servidores e grandes computadores, mas os pequenos brinquedos e aparelhos de recursos limitados que você usa diariamente.

Java LogoEsses dispositivos microembedded incluem dispositivos médicos, gravadores de MP3, smart cards, sistemas de freios de automóveis, etiquetas RFID e outros produtos. Eles realizam funções específicas e podem ser parte de uma rede pervasiva — às vezes denominada de Internet of Things - que nos mantém conectados, comunicativos e compartilhando dados.

E como os limites entre os dispositivos tradicionais e a mídia se evaporam, o mundo microembedded pode bem ser a próxima fronteira para os desenvolvedores.

Microdispositivos são equipados com capacidade de processamento, memória e armazenamento e via de regra operam com carga de bateria. No entanto, o desenvolvimento para estes dispositivos exige ferramentas, linguagens, bibliotecas e APIs diferentes que tornam a inovação mais difícil e podem atrasar no mercado. Isso transforma a tecnologia Java — com a sua linguagem padrão, APIs e ferramentas — em uma ferramenta de desenvolvimento atraente para os dispositivos microembedded.

 
Recursos de desenvolvimento Squawk
O site de projeto Squawk oferece ferramentas para a portagem de Java aos dispositivos microembedded. Tenha acesso à equipe de engenharia, fóruns de informações, uma wiki para a documentação da comunidade, rastreamento de bugs, alertas de desenvolvimentos e muito mais.
» Go now

Para maximizar a atratividade da tecnologia Java para desenvolvedores de microdispositivos, alguém precisa realizar o trabalho de habilitar ou portar a tecnologia Java em um dispositivo ou objeto de sua escolha. Para muitos desenvolvedores a complexidade de portagem, debugging e manutenção de máquinas virtuais (VMs) foi um enorme obstáculo em direção à inovação e crescimento no mercado de dispositivos embedded.

O projeto Squawk amplia o alcance da tecnologia Java
Graças à equipe de pesquisadores nos laboratórios Sun liderada por Eric Arseneau e Derek White, os desenvolvedores têm uma máquina virtual para a linguagem Java otimizada para dispositivos de pequeno porte. A nova máquina virtual denominada Squawk VM amplia o alcance da tecnologia Java para cada vez mais dispositivos — além dos celulares e tocadores de MP3 de hoje até os barbeadores elétricos e torradeiras de amanhã.

A Squawk VM é certificada para o Java Micro Edition Information Module Profile (CLDC 1.1 IMP 1.0). A Squawk VM oferece aos desenvolvedores as vantagens da linguagem Java padronizada e suas ferramentas, bibliotecas e APIs de ampla compreensão. O uso das ferramentas Squawk e Java elimina muitas das dificuldades do desenvolvimento tradicional embedded. Com o Squawk, desenvolvedores podem criar aplicações usando a simplicidade do Java, assim como fornecer um pacote binário personalizado conforme as capacidades da plataforma alvo micro-embedded e os serviços de aplicações exigidos, tudo com uma curva de aprendizado bem inexpressiva.

Simplicitdade e escalonabilidade levam a inovação ilimitada
"Essa tecnologia proporciona as vantagens inerentes ao Java — especialmente a inovação e a escalonabilidade — ao desenvolvimento embedded", afirma Arseneau. "No momento os desenvolvedores na área embedded estão vivendo com as limitações das ferramentas de propriedade autoral que são difíceis de aprender e usar. Queremos extender a simplicidade, eficiência e a familiaridade do Java ao desenvolvimento embedded, assim, os programadores poderão usar as ferramentas e o conhecimento Java que já possuem."

Originalmente inspirado pelo projeto Squeak, uma VM escrita em smalltalk, a Squawk VM foi escrita quase integralmente na própria tecnologia Java. Isso oferece uma plataforma interessante para a realização de uma pesquisa baseada em Java VM. No entanto, a medida que o tempo passou, os pesquisadores da Sun descobriram que o uso de Java para implementar Java proporciona aos desenvolvedores de máquinas não-virtuais um mecanismo mais simples para compreender como portar Java às novas plataformas.

Como os dispositivos micro-embedded possuem atributos diferentes que o hardware tradicional de computador, a Squawk difere das máquinas virtuais Java tradicionais em alguns aspectos. Uma das mais importantes diferenças é a forma como Squawk pode ser usada para compilar e otimizar os componentes núcleo VM, outros componentes Java e bytecodes antes da hora (AOT). Além disso, Squawk realiza a compilação just-in-time (JIT) de bytecodes.

A Squawk VM foi projetada para que os desenvolvedores possam realizar múltiplas aplicações em uma máquina virtual e até mesmo migrar uma aplicação em curso para um outro dispositivo.

"Squawk é uma máquina virtual que lhe oferece um comprometimento Java com uma pequena base que permite que as aplicações operem diretamente na CPU, sem se basear em um sistema operacional," explica Arseneau. Visto que pequenos dispositivos não necessitam de recursos adicionais para apoiar um sistema operacional com finalidade básica, os desenvolvedores podem experimentar com diferentes implementações de serviços de baixo nível, assim como protocolos de rede, que usualmente estão enterrados em um sistema operacional. Isso proporciona menos overhead e um desempenho de aplicação melhorado.

Squawk encontra espaço para se movimentar em pequenos dispositivos
A Squawk VM foi projetada para que os desenvolvedores possam realizar múltiplas aplicações em uma máquina virtual e até mesmo migrar uma aplicação em curso para um outro dispositivo. Como resultado a aplicação, pode continuar operando no novo dispositivo bem onde foi interrompida. Operando múltiplas aplicações em uma máquina virtual e usando uma representação mais compacta de class files, a Squawk VM faz melhor uso dos recursos restritos dos pequenos dispositivos.

Um exemplo interessante dessa habilidade de migrar aplicações em curso é que se a carga de bateria de um dispositivo estiver terminando, ele pode verificar se há outro dispositivo na proximidade que possui mais energia, podendo transferir dessa forma seu programa em curso antes da bateria terminar de vez.

Essas habilidades foram demonstradas em uma das primeiras implementações comerciais da Squawk VM nos dispositivos de transdutores sem fio Sun SPOT (Small Programmable Object Technology) dos laboratórios Sun. A plataforma de hardware Sun SPOT é um dispositivo pequeno, sem fio, operado por bateria, que precisa de uma linguagem de programação e ferramentas. A Squawk VM conseguiu proporcionar tanto um sistema operacional, como uma plataforma de aplicação do software.

Emuladores aumentam a produtividade do desenvolvedor
A habilidade da Squawk VM's em operar em todas as plataformas de desktop populares fornece um mecanismo para abastecer desenvolvedores com um emulador. Visando auxiliar desenvolvedores a serem mais produtivos, a Squawk inclui suporte de emulação. A habilidade de se operar Squawk no desktop permite aos desenvolvedores a rápida criação emuladores de dispositivos para testar aplicações antes de seu uso.

Por exemplo, Arseneau indica o trabalho dos pesquisadores com o hardware Sun SPOT. "Com um SPOT virtual do desktop podemos mover coisas por aí e operar interruptores sem acesso a qualquer hardware," ele afirma. "Essa flexibilidade ajuda os desenvolvedores a reduzir tempo de mercado e nos permite criar uma experiência de desenvolvedor muito maior."

Como os dispositivos microembedded normalmente não possuem memória suficiente para implementar o carregamento de arquivos de classes no dispositivo, a Squawk implementa a arquitetura VM dividida, na qual o carregamento da classe é realizado no desktop e a execução é realizada no dispositivo conforme mostrado abaixo:

A abordagem dividida de VM ajuda a reduzir a quantidade de recursos necessários para operar Java em um dispositivo realizando o máximo do trabalho possível antes do tempo e somente uma vez na máquina desktop do desenvolvedor, ao invés de toda a vez que o dispositivo for ligado ou iniciado. A tecnologia Java possui um modelo de segurança obrigatório que deverá ser preservado, mas que pode exigir recursos significantes. Há também a vantagem adicional de realizar operações no desktop.

A arquitetura VW dividida significa que o código one-time-only pode operar no desktop, assim quanto o conjunto binário for enviado ao dispositivo os objetos são pré-computados. Isso ajuda a garantir que os dispositivo opera da forma mais eficiente possível com os recursos disponíveis. A melhora da eficiência nesse aspecto, afirma Arseneau, também ajuda os desenvolvedores a projetarem dispositivos cada vez menores e mais potentes.

Squawk para reduzir o tamanho e aumentar a potência
Arseneau e sua equipe também estão trabalhando em outros desenvolvimentos da Squawk para que esta opere em dispositivos cada vez menores permitindo aos desenvolvedores a usar a tecnologia Java em cada vez mais dispositivos. Atualmente a Squawk precisa de 512K de memória flash, mas o trabalho continua e o objetivo de Arseneau é poder operar Squawk com somente 16K de flash.

"Estamos também adicionando mais habilidades em tempo real," afirma Arseneau. "Isso significa que os dispositivos responderão com maior precisão às entradas em tempo real, permitindo uma melhor temporização de aplicações críticas, como servos de comando. Para dispositivos como o sistema antibloqueio de freios em carros esse tipo de funcionalidade é crítico."

Em outro exemplo, a Squawk portada à LEGO MINDSTORM NXT, uma plataforma educacional que permite que crianças desenvolvam e construam robôs, programando esses a realizar várias operações. Os membros do projeto Squawk estão trabalhando com uma equipe da LEGO MINDSTORMS NXT como resultado de uma parceria entre a Lego e o laboratório de mídia MIT. Por fim, o projeto ajudará a simplificar e aumentar as capacidades de programação da LEGO e a incentivar a imaginação de crianças de qualquer idade.

Como parte do compromisso da Sun em apoiar a proliferação da tecnologia Java em dispositivos microembedded, desenvolvedores podem acessar todo o código fonte da Squawk VM podendo usar padrões Java, CLDC, e IMP para construir rapidamente uma Java VM. Abrindo o código Squawk, Arseneau espera dar aos desenvolvedores a oportunidade de portar Squawk e Java a muitas plataformas diferentes (veja barra ao lado).

"A abertura do código Squawk reforçará a nossa estratégia de expandir o universo Java para abranger a maior quantidade de dispositivos micro-embedded possível."
Eric Arseneau, Sun Labs

A abertura do código abre possibilidades para grandes oportunidades
Quando a Sun lançou a Java Micro Edition de código aberto no ano passado, ela permitiu que projetos como Squawk utilizassem com sucesso um código que comprovadamente funciona com outros dispositivos. Como resultado, a Squawk obteve rapidamente a certificação Java — nada mal considerando os aproximadamente 11.000 testes que a Sun exige para uma certificação como linguagem de programação Java.

"A abertura do código Squawk reforçará a nossa estratégia de expandir o universo Java para se abranger a maior quantidade de dispositivos micro-embedded possível," afirma Arseneau. "Desenvolvedores que trabalham em protótipos e dispositivos que só serão produzidos em baixas quantidades podem usar Squawk para aplicações que, em outros casos, não seriam consideradas. O Java fornece a rede básica para inovação inacreditável, sendo a próxima grande oportunidade para desenvolvedores."

Não somente a ubiqüidade da tecnologia Java abre portas para aplicações inovadoras, a disponibilidade da Squawk VM facilita aos desenvolvedores a exploração e pesquisa de novas possibilidades, contribuindo para uma redução do tempo de mercado para novos produtos. Já hoje, a tecnologia Java é usada em mais de 1 bilhão de celulares.

Todavia, para Arseneau a mobilidade é somente a ponto do iceberg dos pequenos dispositivos. "Para os telefones celulares temos um limite implícito de um por pessoa," afirma. Se começarmos a incluir todos os dispositivos que as pessoas usam diariamente, o potencial torna-se enorme, sem limites."

Arseneau estima que nos próximos anos haverá bilhões e bilhões de novos dispositivos desenvolvidos e entregues na área de embedded. "Já estamos conversando com pessoas, fazendo coisas bastante inacreditáveis — como, por exemplo, a instalação de sensores em óculos para detectar e remover sujeira ou a instalação de um dispositivo em um capacete de moto que ligará para o 911 em caso de acidente," explica. "Acreditamos que a tecnologia Java avançará nas aplicações micro-embedded da mesma forma que incentivou o crescimento da computação em geral."