Tecnologia

Java Applet e suas evoluções

Por: , outubro 29, 2013

Durante muito tempo muitos de nós tivemos problemas com applet, seja desenvolvendo, seja utilizando.

Quem nunca entrou no site do banco e não conseguiu acessar a contar porque a applet não funcionava, ou então, tem algum parente que sempre pedia ajuda porque não sabia como baixar ou o que precisava instalar para que as coisas funcionassem.

O applet facilita bastante a vida dos desenvolvedores, pois permite com que uma funcionalidade necessária na web funcione em mais de um sistema operacional, permite acesso a sistema de arquivos ou dispositivos do computador do usuário, e também permite que em uma página html sejam utilizadas funções da applet da mesma forma como JavaScript.

Mas ao longo do tempo o cenário vem mudando, a applet depende da máquina virtual instalada no computador do usuário e muitos usuários nem sabem como instalar esse software. E também, a cada nova versão da máquina virtual que é lançada, novas mudanças e problemas para os desenvolvedores estão surgindo.

Em alguns projetos, a equipe que faço parte precisou desenvolver funcionalidades que até então só conseguimos fazer com applet, porém acabamos caindo neste problema de atualizações.

O que mudou?

A partir do Java 7 atualização 21, a Oracle começou a alterar a forma como as applets funcionam. algumas alterações no painel de controle e diálogos fazem parte do pacote também. Já as applets, que necessitam de permissões estendidas, passaram a precisar da tag <security> no arquivo jnlp. Outro ponto de atenção é que aplicativos não assinados ou auto-assinados podem não ser suportados em novas versões.

Na atualização 40 pouca coisa foi alterada, foram adicionadas novas advertências para aplicativos não assinados e auto-assinados.

Na atualização 45, as chamadas JavaScript para aplicativos Java só são permitidas se o jar for assinado por uma CA confiável e o domínio estiver na propriedade Caller-Allowable-Codebase do manifest. Para jar não assinados a chamada funcionará somente se o jar e JavaScript estiverem no mesmo domínio.

Além das atualizações do Java, outro problema que temos são as atualizações de navegadores. O Firefox por exemplo, na versão 24, bloqueou o plugin do Java dizendo que é inseguro.  Durante algumas pesquisas sobre as atualizações do Firefox encontramos um comentário de um desenvolvedor que retrata bem o sofrimento de desenvolvedores dizendo assim:

The last few months have been an utter battle to appease the whims of people in your position. Every java update, we have to add new applet params or jar manifest properties, or change our build process. Or we have to give our users a new set of instructions on how to actually run java. Or java becomes flat-out broken or blocked. Dylan Just, Senior Software Engineer, Ephox

 

Os últimos meses têm sido uma batalha absoluta para apaziguar os caprichos de pessoas em sua posição. Cada atualização java, temos de acrescentar novos parâmetros na  applets ou propriedades no manifest do jar, ou mudar o nosso processo de construção. Ou temos que dar aos nossos usuários um novo conjunto de instruções sobre como executar o Java. Ou o java se torna flat-out, quebrado ou bloqueado. (Dylan Just, Senior Software Engineer, Ephox, Tradução livre)

Alternativas – Como contornar estes problemas?

O HTML5 e Flash podem ser interessantes alternativas para resolver os problemas, pois funcionam junto com o navegador.

Também é possível o uso de Java WebStart, pois conseguimos enviar todas as informações do servidor para o cliente no momento necessário, montamos o arquivo JNLP  em uma servlet e enviamos ele para o cliente. Mas mesmo assim ainda existe problemas no lado do usuário como instalação da JVM e execução do JNLP.

Os bancos começaram a migrar seus aplicativos de segurança para plugins dos navegadores, o que pode ser uma alternativa. Mas será que teremos que desenvolver um plugin para cada navegador que for utilizar nossa aplicação? E o que acontece com o multi-plataforma?

Porém o que temos hoje parece ser um cenário de migração, aplicativos que antes auxiliavam muito bem para recuperar informações do cliente ficaram com sua manutenção complicada, ou dependem de versões antigas para funcionar.

Referências

  • Receba nosso conteúdo em primeira mão.