Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate.
Autores: Anderson Rodrigues de Almeida, Robison Cris Brito e Fábio Favarim
Do que se trata o artigo
Este artigo apresenta o desenvolvimento de uma aplicação desktop utilizando a tecnologia Java Web Start, explica como desenvolver o design das telas, a criação do banco de dados, a geração das classes de entidade para a manipulação do banco, comandos básicos como inclusão, exclusão, alteração, listagem e pesquisa de dados, e por fim, a configuração e disponibilização com Java Web Start para seu acesso remoto.

Em que situação o tema é útil
Este artigo é útil aos desenvolvedores iniciantes na tecnologia Java, no qual será apresentado um passo a passo da codificação de uma aplicação desktop com acesso a banco de dados e também aos profissionais que já conhecem esta tecnologia, porém não tiveram a oportunidade de trabalhar com Java Web Start na implementação de sistemas.

Desenvolva aplicliações desktop com Java Web Start
Este artigo ensina passo a passo o desenvolvimento de uma aplicação Java Desktop utilizando os componentes da API Swing, persistência de dados no servidor de banco de dados Apache Derby e como instalar/atualizar o sistema através do Java Web Start. Como ambiente de desenvolvimento foi escolhido o NetBeans 7.2, por ele possuir um poderoso editor visual de interfaces Java e também uma versão do banco de dados Apache Derby. O programa implementado para apresentar as tecnologias foi um sistema de cadastro de pessoas.

Desde seu surgimento, a informática sempre priorizou os aplicativos que executavam em rede. Um exemplo foram as primeiras aplicações que executavam em computadores de grande porte, os chamados mainframes, os quais eram conectados a terminais sem processamento, com interface em modo texto e interação por meio de linhas de comando. Isso permitia uma grande disponibilidade do aplicativo, facilitando atividades como atualização e manutenção do software.

Com o surgimento dos computadores pessoais na década de 90, as prioridades mudaram. O uso da rede já não era algo tão importante. Assim, houve a necessidade dos aplicativos utilizarem interfaces mais amigáveis, facilitando seu uso pelo usuário. Para permitir essa usabilidade, eram desenvolvidas aplicações locais, chamadas de aplicações desktop. Nestas aplicações, todos os componentes do software (lógica da aplicação, interface com o usuário e os dados) eram executados/armazenados no computador local, sem a necessidade de utilização das redes de computadores.

Porém, nos últimos anos, aconteceu uma grande evolução nos recursos da informática, não só nos computadores, mas também nas redes que passaram a ser de alta velocidade. O resultado dessa evolução tornou viável montar sistemas computacionais formados por mais de um computador, denominados sistemas distribuídos, sem se esquecer de recursos importantes, como interfaces gráficas amigáveis para o usuário. A principal forma de organizar um sistema distribuído é através da arquitetura cliente-servidor, no qual há pelo menos um servidor provendo um ou mais serviços a clientes, que requisitam ao servidor, sempre que necessário, os serviços que serão utilizados por eles.

Com a evolução das redes, o desenvolvimento de sistemas para a web também evoluiu bastante e está atraindo a atenção de muitos programadores e empresas. No desenvolvimento de aplicações para web, os aplicativos ficam à disposição de qualquer cliente, bastando este ter um browser e acesso à rede. Também é facilitada a manutenção da aplicação, pois atualizando o servidor, automaticamente, todos os clientes que a acessam estarão com a última versão do aplicativo. Mas mesmo com a evolução da Internet, ainda existem situações em que não é aplicável o desenvolvimento de aplicações para essa plataforma. Entre os problemas encontrados nela para algumas aplicações, existe a deficiência na interface gráfica do aplicativo na Internet. Muitas vezes aplicações web possuem menos recursos gráficos e de interação se comparado aos aplicativos desktop. Assim, uma alternativa interessante que agrega vantagens tanto da programação web como da programação desktop é o Java Web Start, em que o aplicativo executa localmente, na máquina, como uma aplicação desktop, mas acessa o servidor pela rede, para obter atualizações, caso existam.

Sobre o Java Web Start

Java Web Start (JWS) é uma tecnologia de código móvel que permite executar aplicativos Java através da Internet. Alguns autores classificam o JWS como uma nova tecnologia para deployment de aplicações Java. Ele permite acionar a aplicação com um simples clique em um arquivo com a extensão jnlp, que realizará o download do aplicativo e solicitará a autorização do usuário para executar este código móvel. Caso o usuário ceda as permissões, o aplicativo será executado e aberto automaticamente.

Se a aplicação não estiver presente na máquina do cliente, o Java Web Start irá automaticamente baixar todos os arquivos necessários para execução da aplicação. Se existir alguma versão da aplicação na máquina do cliente, está aplicação estará sempre pronta para ser executada a qualquer hora que o usuário necessitar, através de um ícone em seu desktop ou através de um link em sua página Web. Independente do modo que a aplicação for invocada, uma versão mais recente da aplicação sempre estará presente para o usuário.

O Java Web Start foi incluído no Java Runtime Environment (JRE) desde o lançamento do Java 5.0. Isso significa que quando o usuário instala o Java, o Java Web Start também é instalado automaticamente. O software Java Web Start é iniciado automaticamente quando é feito o download de um aplicativo Java que utiliza essa tecnologia. O download do aplicativo é realizado localmente no cache do Java do computador. Assim, todas as inicializações subsequentes são quase instantâneas, pois todos os recursos necessários já estão disponíveis na máquina.

Para utilização dessa tecnologia é necessário disponibilizar os arquivos como Java Archives (JARs) em um servidor web, para que o Java Web Start consiga encontrar os arquivos e realizar o download. É necessária também uma página HTML, a qual contém um link para o arquivo JNLP (Java Network Launching Protocol), sendo este explicado com mais detalhes no decorrer do artigo.

A tecnologia JNLP define, além de outras coisas, um formato padrão de arquivo (arquivo JNLP) que descreve como a aplicação será executada. Assim, ao clicar no link para o arquivo JNLP, o usuário ativa o Java Web Start e inicia a aplicação. Se a mesma está na máquina, ele só verifica se tem atualizações no servidor. Se não tiver, a mesma é executada localmente. Caso haja atualizações, as mesmas são baixadas, para depois iniciar o aplicativo. Caso seja a primeira execução do aplicativo na máquina, o mesmo será baixado do servidor para uma execução local.

Com o uso do JWS, em vez de se instalar o aplicativo Java nos computadores de todos os usuários, é necessário apenas disponibilizar o aplicativo em um servidor web, de modo que os clientes consigam ter acesso para executar, simplificando a realização de atualizações do software. Deste modo, quando houver uma versão da aplicação instalada no cliente, o Java Web Start verifica se há modificações na versão disponível no servidor e imediatamente inicia o processo de atualização de modo que seja inicializada a aplicação com a sua versão mais recente.

Desenvolvendo uma aplicação desktop com JWS

O sistema que será desenvolvido neste artigo possui o objetivo de demostrar um sistema desktop distribuído, funcionando com as vantagens existentes nos aplicativos web, além das características de sistemas desktop tradicionais. É um sistema CRUD básico (ver Nota DevMan 1).

Nota DevMan 1. O que é um CRUD?
CRUD é uma sigla comumente utilizada no desenvolvimento de aplicações que envolvem banco de dados. A sigla é um acrônimo de CREATE, READ, UPDATE e DELETE. Estas são as operações básicas de um sistema com banco de dados, e contempladas em um sistema CRUD.
...
Quer ler esse conteúdo completo? Tenha acesso completo