Este documento apresenta uma introdução sobre Web2.0, Ajax e como utilizar Ajax com Java, resumindo: 1) O que é Ajax e como funciona; 2) As vantagens de usar Ajax, como melhorar a interatividade de aplicações web; 3) Frameworks para Ajax com Java como DWR e JSON que permitem executar código Java através de chamadas JavaScript.
2. Agenda
2
Introdução Por que usar Ajax?
Internet Problemas e Benefícios
Web 1.0 Frameworks Ajax
Web 2.0 JavaScript Utils
O que é Ajax? Cases
Ajax é Java? Usando Ajax com Java
Web2.0 e Ajax com Java 31/07/2007
3. Paulo César M. Jeveaux
3
Javanês desde 2000;
Mantenedor do Portal Java e do ESJUG
http://www.portaljava.com
https://esjug.dev.java.net
Consultor Arquiteto Java EE;
Palestrante nos principais eventos Java do país e
participante de diversos grupos e comunidades de
Java, Linux e Software Livre em geral.
Web2.0 e Ajax com Java 31/07/2007
4. Introdução
4
Uma velha novidade
Web2.0 e Ajax com Java 31/07/2007
5. Introdução
5
Desenvolvimento Web
Criação de interfaces (páginas) que dão acesso a
funcionalidades dinâmicas (software) em um servidor
acessível na Internet ou numa Intranet por meio de
interação requisição resposta.
Web2.0 e Ajax com Java 31/07/2007
6. Introdução
6
Ajax não é nenhuma novidade, já existe há
varios anos e sempre foi uma técnica bastante
conhecida por programadores JavaScript;
Recentemente ganhou muita visibilidade e
então a técnica foi batizada de Ajax;
Sua base é composta por um componente
chamado XMLHttpRequest, que foi criado pela
Microsoft para o seu Outlook Web Access;
Web2.0 e Ajax com Java 31/07/2007
8. A internet
8
1993: Lançamento do navegador Mosaic,
implementando suporte ao protocolo HTTP e a
processamento de páginas HTML;
1994: Início das linguagens para criação de conteúdo
dinâmico para Web: Macromedia Coldfusion, PHP;
1995: Microsoft ASP;
1996: Java Servlets;
1999: JavaServer Pages (JSP);
Hoje: Web 2.0 e Ajax;
Web2.0 e Ajax com Java 31/07/2007
10. Web 1.0
10
Formada basicamente por conteúdo editorial;
Concentração de (poucas) informações relevantes e
(muitas) informações não relevantes;
Publicidade excessiva, não direcionada e
incômoda;
Falta de organização e dificuldade em encontrar o
que realmente se deseja;
Web2.0 e Ajax com Java 31/07/2007
14. Web 2.0
14
Web 2.0 é
Ajax?
Web2.0 e Ajax com Java 31/07/2007
15. Web 2.0
15
NÃO
Web 2.0 não
é Ajax
[10]
Web2.0 e Ajax com Java 31/07/2007
16. Web 2.0
16
Formada por conteúdo editorial + conteúdo do
usuário + conteúdo filtrado + organização;
Foco em informações relevantes;
Publicidade filtrada e direcionada;
Conteúdo criado e organizado pelos usuários (A
Web 2.0 Somos Nozes – Shoes [10]);
Web2.0 e Ajax com Java 31/07/2007
17. Web 2.0
17
Web 2.0 é conteúdo de todas as fontes de
informações durante o tempo todo e on-
demand;
Web 2.0 é participação ativa do usuário;
Web 2.0 é o SOA aplicado ao extremo;
Web 2.0 é feita por usuários para usuários;
Web2.0 e Ajax com Java 31/07/2007
18. Web 2.0
18
Web 2.0 é feita [por
– para] usuários;
E quem organiza e
mantém tudo isso?
Vovô viu a uva
Vovô tageou a uva
Web2.0 e Ajax com Java 31/07/2007
19. Web 2.0
19
Vovó procura
a uva
Vovó acha uva
Web2.0 e Ajax com Java 31/07/2007
20. O que é Ajax?
20
Web2.0 e Ajax com Java 31/07/2007
21. O que é Ajax?
21
Apresentação baseada em padrões, usando XHTML
e CSS;
Exposição e interação dinâmica usando o DOM;
Intercâmbio e manipulação de dados usando XML e
XSLT;
Recuperação assíncrona de dados usando o objeto
XMLHttpRequest;
E JavaScript unindo tudo isso em um único conjunto;
Web2.0 e Ajax com Java 31/07/2007
22. O que é Ajax?
22
Ajax, ou Asynchronous JavaScript and XML
(JavaScript Assíncrono e XML) é um termo que
descreve uma técnica de desenvolvimento
Web para a criação de aplicativos interativos;
Document Object Model (DOM) manipulado
através do JavaSript para mostrar e interagir
dinamicamente com a informação
apresentada;
Web2.0 e Ajax com Java 31/07/2007
23. O que é Ajax?
23
“O Objeto XMLHttpRequest troca dados
assincronamente com o servidor web,
geralmente utilizando-se XML, HTML, texto
puro e JSON(JavaScript Object Notation)”.[4]
Web2.0 e Ajax com Java 31/07/2007
25. Ajax é Java?
25
Não!
Ajax não é Java, Ajax é JavaScript, XHTML, DOM
e XML rodando em browsers modernos;
Ajax porém, encaixa-se perfeitamente com Java e
com várias outras linguagens de programação
como PHP, ASP, .Net, Python, Ruby, etc;
Web2.0 e Ajax com Java 31/07/2007
26. Por que usar Ajax?
26
Web2.0 e Ajax com Java 31/07/2007
27. Por que usar Ajax?
27
Forte crescimento de aplicações na web;
Necessidade de passar aplicações tipicamente
desktop para a web;
Interface gráfica rica e impressionante;
Atualizar páginas web com novos dados sem o
temível e terrível Refresh;
Browser passa a fornecer uma aplicação, não
mais apenas conteúdo;
Web2.0 e Ajax com Java 31/07/2007
28. Por que não usávamos JavaScript?
28
Porque era visto apenas com uma linguagem de
validação para formulários HTML Web;
JavaScript Orientado a Objetos era pouco
conhecido;
Frameworks JavaScript eram menos conhecidos
ainda e existiam em menor quantidade;
Trabalhoso, difícil de depurar e sem um ambiente
de desenvolvimento adequado;
Web2.0 e Ajax com Java 31/07/2007
29. Por que usar JavaScript?
29
Forte apelo visual para aplicações web;
Migrar aplicações desktop para a web;
Muito além de validação de formulários;
Disponibilidade de Editores, bibliotecas e
depuradores de alta qualidade;
Produtividade;
Web2.0 e Ajax com Java 31/07/2007
30. Uso real de Ajax
30
Validação;
Com Ajax é possível manter as regras de validação apenas em um
lugar (no servidor), evitando assim duplicação de dados e a não
exposição das regras de negócio ao usuário mais curioso;
Interface mais sofisticada;
Páginas feitas para rodar em um browser podem ser bastante
sofisticadas por si próprias, mas perdem boa parte da elegância e
praticidade quando a mesma precisa ser recarregada para buscar
informações no servidor;
Com Ajax, pode-se facilmente tornar a página mais natural, menos fria
e impessoal, utilizando JavaScript para buscar no servidor a porção de
dados que precisam ser modificados, como o texto da próxima página
de um artigo, as informações complementares de um formulário, ou
mesmo o processamento de alguma ação mais importantes, como salvar
informações cadastrais; [4]
Web2.0 e Ajax com Java 31/07/2007
32. Ganhos com o uso de Ajax
32
Resposta mais rápida;
Há muita concorrência na internet, uma resposta rápida
pode ser o diferencial necessário para tornar um
concorrente mais popular que o outro;
Maior interatividade;
Páginas com mais recursos que antes estavam disponíveis
apenas em aplicações desktop, fazem parte das aplicações
com Ajax;
Economia de banda;
É possível fazer chamadas ao servidor carregando apenas
a porção da página que deseja-se atualizar. Poupando
assim a banda do servidor e diminuindo os custos de
hospedagem;
Web2.0 e Ajax com Java 31/07/2007
33. Problemas em usar Ajax
33
Código fonte desprotegido (protegido apenas por Obfuscators);
Permite que programadores desavisados exponham métodos
importantes por engano (exemplo do uso de * nas configurações
do DWR);
Parte da Lógica de Negócio visível;
Ajax adiciona complexidade na arquitetura da aplicação;
Regras de controle na camada cliente e uso massivo de Facades;
Não faz parte de nenhuma especificação oficial (ainda);
Debug difiícil;
Aplicação se torna frágil e passiva de erros do usuário, por
exemplo: nada funciona se o browser estiver com JavaScript
desabilitado;
Web2.0 e Ajax com Java 31/07/2007
35. Frameworks Ajax - Java
35
DWR – Direct Web Remoting - kit de
desenvolvimento Ajax. Um dos mais populares para
Java. Se integra com vários frameworks Java;
Google Web Toolkit - kit de APIs e utilitários Ajax
para o desenvolvimento de aplicações web;
ZK – Framework para aplicações Ajax/XUL;
ThinWire – Framework swing-like para aplicações
Web/Ajax;
OpenLaszlo – Framework para criação de
aplicações RIA (Flash e Ajax);
Web2.0 e Ajax com Java 31/07/2007
36. Frameworks Ajax
36
JSon
JSon é apenas JavaScript, portanto, o seu código
JavaScript poderá utiliza-lo facilmente. Porém, outras
linguagens como PHP, PERL, Java, etc não conseguirão
entendê-la, para usarmos o Json precisaremos de uma
integração com a linguagem. JSon já integra
facilmente com: ActionScript, C/C++, C#, Delphi,
ColdFusion, Java, JavaScript, Objective CAML, Perl,
PHP, Python, Ruby, e Lua;
Web2.0 e Ajax com Java 31/07/2007
37. Frameworks Ajax
37
JSon-RPC-Java
JSon-RPC-Java é uma implementação dinâmica do
JSON-RPC em Java. Desta forma é possível executar
códigos Java no servidor através de chamadas via
JavaScript no cliente;
Para usar o JSon-RPC-Java é preciso um servidor de
aplicações Java (Tomcat, Jboss, WebLogic, etc). É
possível executar métodos de um POJO, Actions (Struts,
Webwork, JSF, etc) e métodos de negócio/serviço de
EJBs;
Web2.0 e Ajax com Java 31/07/2007
47. Configurando JSon-RPC-Java
47
Baixar o JSon-RPC-Java;
http://oss.metaparadigm.com/jsonrpc/
Ter uma aplicação Web configurada para
funcionar em qualquer servidor de aplicações Java;
Fazer o mapeamento do JSon no web.xml da
aplicação;
Usar =)
Web2.0 e Ajax com Java 31/07/2007
49. Usando JSon
49
Criar uma classe com alguma operação que se deseja
executar;
package com.jeveaux;
public class JSonExemplo {
public JSonExemplo() {
}
public int soma(int a, int b) {
return a+b;
}
}
Web2.0 e Ajax com Java 31/07/2007
50. Usando JSon
50
Na página registra-se o objeto que é a ponte de
comunicação do JavaScript com a aplicação Java;
<jsp:useBean id=quot;JSONRPCBridgequot; scope=quot;sessionquot;
class=quot;com.metaparadigm.jsonrpc.JSONRPCBridgequot; />
Usamos esse objeto para instanciar a classe que
desejamos usar;
<%JSONRPCBridge.registerObject(quot;objquot;, new
com.jeveaux.JSonExemplo());%>
Web2.0 e Ajax com Java 31/07/2007
51. Usando JSon
51
E por fim, fazemos a execução de um método na classe
Java registrada no JSon através do JavaScript;
<script type=quot;text/javascriptquot; src=quot;js/jsonrpc.jsquot;></script>
<script type=quot;text/javascriptquot;>
jsonrpc = new JSONRpcClient(quot;JSON-RPCquot;);
alert(jsonrpc.obj.soma(3, 5));
</script>
Web2.0 e Ajax com Java 31/07/2007
52. ESJUG, Participe
52
https://esjug.dev.java.net
Web2.0 e Ajax com Java 31/07/2007
53. Referências
53
[1] JS templates - http://www.trimpath.com/project/wiki/
[2] Ajax Patterns http://ajaxpatterns.org/wiki/index.php?title=Main_Page
[3] Ajaxian – http://www.ajaxian.com
[4] Revista Mundo Java, Dez 2005 (Rafael Steil)
[5] Portal Java – http://www.portaljava.com
[6] Effective Java - http://www.robsanheim.com/Ajax
[7] Script.aculo.us - http://script.aculo.us
[8] Mir.aculo.us - http://mir.aculo.us/
[9] AJAX e DWR, 2006 (Franklin Samir)
[10] A Web 2.0 Somos Nozes, 2007 (Phillip Calçado “Shoes”)
[11] Wikipedia – http://wikipedia.org
Esta apresentação usa a licensa Creative Commons de: Atribuição-
Uso Não-Comercial-Compatilhamento
Web2.0 e Ajax com Java 31/07/2007
54. That’s all folks!
54
Muito Obrigado a todos;
Contatos:
Paulo César M. Jeveaux (Jevô)
jeveaux@portaljava.com / paulo@jeveaux.com
www.portaljava.com / www.jeveaux.com
Web2.0 e Ajax com Java 31/07/2007