Java e a conectividade: do applet à construção de uma Internet Ubíqua
Michela C. Limaco
michela@msitec.com.br
Abstract. This article demonstrates the utilization of internet’s protocols and concepts for development of applications based on J2EE technology.
Resumo. O presente artigo tem por finalidade demonstrar a utilização dos protocolos e conceitos de internet no desenvolvimento de aplicações baseadas no padrão J2EE – tecnologia JAVA.
1. Dados históricos
Em 1995 as páginas HTML estariam fadadas a serem estáticas e sem ações embutidas em si, se não houvesse uma linguagem padrão na qual fossem escritos programas que pudessem ser incluídos nas páginas. O Java demonstrou que isso era possível (ou seja, incluir um programa, escrito em Java, em uma página HTML rodando em um browser com suporte à execução do programa) – o HotJava (browser totaltemente escrito em Java).
A consolidação de tal descoberta veio logo após, quando a Netscape anunciou que sua próxima versão do browser, Netscape Navigator, iria dar suporte a aplicativos Java embutidos em documentos HTML. Em seguida, a Microsoft anunciou o mesmo para o seu Internet Explorer. E o Java estourou no mundo: a Sun Microsystems contabilizou inúmeros downloads de seu Java Development Kit (JDK); diversas empresas desenvolveram IDEs para a programação em Java, e vieram JavaScript, JavaBeans, a briga deste com ActiveX, e... a Internet jamais foi a mesma.
2. O browser de Internet e a applet
O aparecimento da Java Virtual Machine (JVM) e sua utilização pelos navegadores de Internet (Netscape, Mozilla, Internet Explorer e muitos outros) permitiu a execução dos programas em Java diretamente em páginas Web. Estes programas em Java, que podem ser interpretados pela Web, receberam o nome de applet.
A Figura 1 demonstra como um applet é interpretado diretamente no computador-cliente através de um navegador Web. Antes do surgimento da linguagem Java, a maioria dos programas relacionados com a Web eram executados no servidor.
O surgimento do applet foi, portanto, uma das grandes inovações na programação para a Web, pois além da portabilidade e da interatividade que estes programas oferecem, temos a possibilidade de trabalhar com imagens gráficas, permitido animações em tempo real diretamente de uma página Web.
Por questões de segurança, os applets não têm acesso à memória ou aos arquivos do computador-cliente.
3. Protocolos de Internet e aplicações Java – além dos applets
A evolução que a tecnologia Java trouxe para Internet vai muito além dos applets.
Em outras palavras, podemos dizer, por exemplo, que uma página HTML "Java-Powered", equivale a um vendedor equipado com um notebook+telefone celular, diretamente conectados a um programa servidor na distribuidora.
3.1. Instalação de um application server Java
Uma aplicação Java pode rodar em qualquer servidor web, mediante a instalação e configuração dos seguintes itens:
- Instalação da JDK na versão compatível com o Aplicattion Server/Web escolhido;
- Configuração da variável de ambiente JAVA_HOME apontando para o path da instalção do Java;
- Instalação de configuração do Application Server/Web;
Application Server mais utilizados no mercado: Jboss AS, WebSphere AS, Tomcat – application web.
3.2. Java over HTTP
Os Servlets são módulos que ampliam a funcionalidade de servidores baseados em requisições/respostas. Web servers são o exemplo típico, para o qual é usado um tipo especializado de Servlets, os HttpServlets. Um Servlet, por exemplo, pode receber dados de um form HTML por meio de uma requisição HTTP, processar os dados, atualizar a base de dados de uma empresa, e gerar alguma resposta dinâmica para o cliente que fez a requisição – Figura 2.
Os servlets geralmente utilizam o protocolo HTTP não sendo restritos a ele.
Java Server Pages (JSP) é uma tecnologia para desenvolvimento de aplicações WEB semelhante ao Microsoft Active Server Pages (ASP).
Ela permite ao desenvolvedor de sites produzir aplicações que tenham acesso a banco de dados, a arquivos-texto, a captação de informações a partir de formulários, a captação de informações sobre o visitante e sobre o servidor, o uso de variáveis e loops, entre outros recursos de programação.
Um JSP não oferece nada mais que um servlet. Entretanto, possui a vantagem de ser facilmente codificado, facilitando, assim, a elaboração e a manutenção de uma aplicação.
Além disso, essa tecnologia permite separar a programação lógica (parte dinâmica) da programação visual (parte estática), tornando menos árduo o desenvolvimento de aplicações mais robustas, onde programador e designer podem trabalhar no mesmo projeto, mas de forma independente.
Outra característica do JSP é produzir conteúdos dinâmicos que possam ser reutilizados. Quando uma página JSP é requisitada pelo cliente através de um Browser, esta página é executada pelo servidor, e, a partir daí, será gerada uma página HTML que será enviada de volta ao browser do cliente. A Figura 3 ilustra esse funcionamento.
3.3. Java over SMTP
A JavaMail API permite transformar qualquer aplicação Java em um cliente SMTP, POP3 ou IMAP, além de capacitar servlets, JSPs e outros componentes com recursos de e-mail. Com a integração de um serviço de mailing em qualquer aplicativo web/desktop é possível ir além dos e-mails.
Atualmente, os recursos de mailing são utilizados de diversas formas, como, por exemplo, em uma aplicação comercial, onde a cada novo produto cadastrado no estoque, o sistema envia um e-mail aos representantes avisando da novidade, sendo que o envio de e-mail é uma tarefa programada. Na Figura 4 vemos as etapas de envio de e-mail:
- Definição do servidor de SMTP;
- Definição da autenticação;
- Obtenção de login e senha para a conta;
- Criação da autenticação;
- Abertura de sessão no servidor;
- Definição do tipo (MIME) da mensagem;
- Envio da mensagem.
3.4. Java over FTP
O JDK não contém uma Application Programming Interface (API ) para utilização de serviços FTP, implementando classes com métodos como PUT ou GET. Por este motivo, existem vários projetos que tentam suprir esta necessidade criando API's para FTP utilizando as classes que fazem parte da API padrão do J2SDK.
A grande vantagem de se utilizar uma API Java para FTP é a de especializar sua aplicação Java sem a ajuda de um programa externo. Isso torna possível associar à sua aplicação uma rotina de backup para uma área no servidor FTP ou um Web Service que fornece informações de um servidor FTP remoto, por exemplo.
A API Commons-Net, da Apache, reúne a facilidade e a funcionalidade de se trabalhar com FTP e outros protocolos conhecidos, como NNTP, SMTP, POP3, Telnet. Observando a Figura 5, vemos as seguintes etapas do processo de conexões no servidor FTP:
- Conecta ao Servidor FTP;
- Eetua o login no Servidor;
- Muda o diretório de trabalho do servidor;
- Retorna uma lista de arquivos.
3.5. Java over LDAP – JNDI (Java Naming and Directory Interface)
Projetado para padronizar a forma de acesso a uma variedade de serviços de nomes e diretórios, a API Java Naming and Directory Interface (JNDI) fornece um mecanismo simples para os componentes J2EE localizarem objetos na rede. Exemplos de serviços de diretório são o LDAP, Novell Directory Server (NDS) e o Domain Name System (DNS). Com o JNDI você pode localizar um Enterprise JavaBean na rede ou usar uma impressora que está no Japão, além de poder usar o LDAP para gerenciar o perfil de usuários de sua aplicação.
Na Figura 6 são demonstradas a conexão e a criação de um diretório em um servidor LDAP através da JNDI.
4. Figuras
5. Conclusão
Em pouco mais de 12 anos (desde 1995 até a data deste artigo), a tecnologia Java tem consolidado e ditado padrões no desenvolvimento para web.
As API´s para Internet perfazem praticamente todos os protocolos e padrões conhecidos de Internet, mesclando-os de forma sofisticada e simples (aplicações web interagindo com servidores de e-mail).
A tecnologia Java torna possível o acesso via celular a webservices para ver previsões do tempo, condições do tráfego ou até a programação de cinemas.
O que vem a seguir?
Com o surgimento do termo “Internet ubíqua” (O Aurélio, define ubíqua como que está ao mesmo tempo em toda a parte), já se pode prever que em breve estaremos lendo e-mails na porta da geladeira.
Referências
Kurniawan, Budi, (2002) “Java para Web com Servlets, JSP e EJB”, Editora Ciência Moderna Ltda., p. 391-400, 401-427.
Horstmann, Cay S. e Cornell, Gary, () “Core Java – volume II”, Edita Makron Books Ltda., p. 127-175.
Alur, Deepak, (2004) “Core J2EE Patterns: as melhores práticas e estratégias de design”, Editora Campus., p.4, p. 503.
Jeveaux, Paulo C., (2004) “Tutorial de JSP”,
http://www.portaljava.com/home/modules.php?name=Content&pa=showpage&pid=29, Janeiro.
Silveira, Paulo, (2004) “Enviando emails com Java”, http://www.guj.com.br/java.tutorial.artigo.21.1.guj.
Por Michela Limaco
