que aqui para ler esse artigo em PDF.imagem_pdf.jpg

­Java no Desktop

Parte 2: Toolkits, distribuição e instalação

Na primeira parte deste artigo ("Interfaces, usuários e alternativas", Edição 5) tratamos dos tipos de usuários de uma aplicação e vimos como diferenciar os usuários internet, intranet e extranet. Vimos também quais tecnologias nos permitem criar aplicações locais (desktop) sofisticadas com a tecnologia Java.

Mas existe muito mais em fornecer uma aplicação local do que apenas criar janelas com o Swing. A tecnologia Java traz o suporte necessário para a integração de clientes e servidores em uma solução única. Como distribuir e atualizar essas aplicações? Mas como podemos distribuir essas aplicações, e a própria JVM? Vamos juntos conhecer as tecnologias que resolvem essas questões.

E o que fazer quando uma aplicação local não é uma opção, mas sua aplicação tem muito mais características de aplicação local do que web? Vimos na primeira parte que essas aplicações são exigidas pelos nossos usuários intranet ou extranet, mas na prática nem sempre temos a opção de instalar algo local. Podemos então começar por conhecer algumas soluções Java que nos ajudam nessa tarefa.

Toolkits web

Existem situações nas quais você precisa gerar interfaces sofisticadas, mas fica preso ao browser, prefere não ter a interatividade de uma aplicação local, ou simplesmente não tem opção, por motivos fora do seu controle. Nesses casos, quais as alternativas para gerar aplicações que pareçam locais? Aplicações que se pareçam mais com uma série de janelas, com botões e menus, do que um conjunto de páginas? A maioria segue o caminho de criar aplicações usando uma mistura de HTML e (toneladas de) JavaScript.

É muito comum encontrar sistemas nessa situação – centenas de páginas HTML que parecem mais descrições do layout de uma janela do que documentos; milhares de linhas de JavaScript, simulando funcionalidades básicas que encontramos em botões e campos de texto tão comuns em aplicações locais; e em geral, uma grande confusão para juntar essas duas coisas.

Tudo isso quase sempre é feito para criar uma "aplicação local" que não precisa ser instalada. E num esforço de criar uma "aplicação-web-com-cara-de-aplicação-local", esses sistemas acabam num emaranhado de código JavaScript difícil de manter, difícil de componentizar e, em particular, quase impossível de portar para vários browsers (às vezes, até para versões diferentes de um mesmo browser). Procurando evitar a instalação local da aplicação, esses sistemas muitas vezes tornam obrigatória a instalação de uma nova versão do browser, sob pena de excluir usuários. E o pior, nem ao menos conseguem a interatividade desejada!

Portanto se você não tem como evitar fazer uma aplicação baseada no browser, pelo menos não caia na armadilha de tentar simular uma aplicação local na marra. Desenvolver uma aplicação baseada em servlets e JSP, mas com aparência e interatividade "quase local", não é uma tarefa fácil, especialmente porque você precisa simular todo um modelo de tratamento de eventos que não faz parte do mundo web.

Mas não se desespere – Java pode vir em seu socorro. Existem alguns toolkits que se propõem a fazer exatamente isso: disponibilizar uma interface "local" usando tecnologias web e fornecendo o suporte necessário para fazê-lo corretamente. Esses chamados "toolkits" são, na verdade,  frameworks de desenvolvimento web que simulam, em uma aplicação baseada no browser, um toolkit de janelamento completo.

Trabalhando, por trás, com servlets e JSPs, e com HTML e JavaScript pela frente, mas de forma componentizada e transparente para o desenvolvedor, os toolkits web permitem que você desenvolva uma aplicação web da mesma forma que desenvolve uma local. Em vez de criar servlets e tratar chamadas e parâmetros HTTP, permitem que você desenvolva aplicações baseadas em eventos, como em aplicações locais típicas. Ao invés de codificar e devolver páginas HTML cheias de código JavaScript escrito à mão, você cria janelas, botões, abas, checkboxes, todos os componentes com os quais você está acostumado em uma aplicação local. ...

Quer ler esse conteúdo completo? Tenha acesso completo