Sáb 9 Jun 2007
[Atualizado em 16 de agosto e 20 de dezembro de 2007, 27 de abril de 2008.]
Em meu artigo Novo impulso ao JavaScript, estive comentando como a onda de alta interatividade da Web 2.0 e o mecanismo AJAX estão impulsionando a evolução de componentes dinâmicos na web.
AJAX, acrônimo para Asynchronous Javascript And XML (JavaScript Assíncrono e XML), é a técnica de uso combinado de tecnologias existentes — JavaScript, XML e o objeto XMLHttpRequest — que visa propiciar mais dinamismo a páginas web, de forma a melhorar a experiência da interação do usuário. Assim, não chega a ser uma nova tecnologia em si, mas uma ampliação das técnicas de HTML Dinâmico (DHTML) no cliente web, agora interagindo também com o lado servidor.
O princípio de AJAX é, a partir de uma página web no navegador, submeter assincronamente pequenas requisições adicionais ao servidor web, e utilizar seu resultado em manipulações dinâmicas na página atual, sem a necessidade do usuário navegar para uma página inteiramente nova.
A organização OpenAjax Alliance, que reúne mais de 80 dos principais fornecedores e projetos de software livre relacionados a tecnologias para web, é dedicada a promover a adoção de AJAX de forma aberta e interoperável.
No campo estrito do HTML dinâmico com JavaScript, aplicável a páginas web independente da tecnologia no servidor, há excelentes frameworks — livres e gratuitos — de componentes web com suporte a AJAX:
- TIBCO General Interface, mais de 100 componentes Ajax e ferramentas visuais para codificação e montagem rápida, em um arquitetura server-less de fácil integração a sistemas já existentes (veja General Interface Developer Center e TIBCO General Interface whitepaper);
- Dojo Toolkit (veja demos, manual, FAQ);
- Qooxdoo (veja showcase);
- Yahoo! User Interface (YUI) Library (veja exemplos e YUI Blog);
- Prototype JavaScript framework (veja livro Prototype and script.aculo.us, por Christophe Porteneuve);
- Rico - JavaScript for Rich Internet Applications (veja demos);
- Ext JS (veja Ext 2.0 Samples e Comunidade brasileira EXTJS).
Destaque também para as bibliotecas de apoio jQuery (dica do leitor Renato Silva; veja também docs, blog, refcard, tutorial, jQuery Brasil, exemplos) e Scriptaculous (veja Wiki com documentação e demos). Veja também Other Frameworks (mootools, Prototype, jQuery, YUI Library, MochiKit, Tibco General Interface, Scriptaculous, Dojo Toolkit, Base2, ExtJS), por Qooxdoo; e Ajax Compilation (dica de Frank Alcantara), uma extensa coletânea de scripts Ajax.
Falar de AJAX em aplicações web dinâmicas implica rapidamente em avaliar quais ferramentas no lado servidor se adequam melhor e mais facilmente ao tratamento de páginas e componentes dinâmicos. Este já foi tema de artigo meu em novembro de 2006, AJAX cresce rápido em Java.
Partindo dos componentes do Dojo Toolkit e outros, já existem plataformas e frameworks abertos e flexíveis para o suporte a AJAX em Java. As seguintes referências de destaque são software livre:
- DWR - Direct Web Remoting, Easy Ajax for Java: projeto patrocinado pela TIBCO. Largamente utilizado, podendo-se citar como cases de destaque o Walmart, o software de incidentes JIRA, o portal de tecnologia InfoQ e muitos outros. Veja Desenvolvendo aplicações Web 2.0 com Java e AJAX (FrameWork DWR), por Augusto Marinho, maio 2007, portal Viva o Linux; e Using DWR with TIBCO General Interface, por Joe Walker, dezembro 2007.
- jMaki: projeto membro da comunidade GlassFish (servidor de aplicações, software livre que é implementação de referência suportada pela Sun para a plataforma Java EE). O segundo artigo da série em SDN sobre “AJAX em Java EE” cobre o jMaki em profundidade: New Technologies for Ajax and Web Application Development: Project jMaki, por Jennifer Ball, novembro 2006 (visão geral no primeiro artigo). Veja também jMaki.com: Resources, Sister sites, Blogs; Introduction to jMaki, por Carla Mott, Sun Java EE Tech Tips, janeiro 2007; jMaki Extensions, junho 2007, por Greg Murray, arquiteto AJAX da Sun e criador do Projeto jMaki; jMaki wrappers for ExtJs, por Carla Mott, dezembro 2007; jMaki and GWT : Kissing Cousins, por Greg Murray — arquiteto Ajax da Sun e criador do Projeto jMaki, 2007-12-21.
- ThinkCAP JX, por ClearNova: plataforma de desenvolvimento Ajax e Java com ambiente RAD/visual para construção de aplicações Internet ricas, baseado em Ajax, Java EE e bibliotecas de software livre (Struts, Hibernate, JFreeChart, prototype.js e outras). Veja também ClearNova’s ThinkCAP JX, a Comprehensive AJAX Platform Released as Open Source, por Hatem, 2006-01-26, AJAX Magazine; e ClearNova open sources ThinkCAP JX, its AJAX platform, por Joseph Ottinger, 2006-01-10, TheServerSide.COM.
Diversos frameworks web MVC oferecem suporte a componentes Ajax. Em Java, uma das primeiras iniciativas de porte neste sentido foi o do Google Web Toolkit (GWT), poderoso, prático e livre, que já nasceu com foco em Ajax. Frameworks como Wicket — veja Interview: How Wicket Does Ajax, Javalobby, 2008-04-25 –, Struts 2 (WebWork) e NextApp Echo2, entre outros, incorporaram suporte a Ajax ao longo de suas evoluções. Para Tapestry, existe a biblioteca Tacos de componentes Ajax.
Contudo, creio que o uso dos componentes dinâmicos AJAX está atingindo o seu auge quando aplicado ao padrão JavaServer Faces (JSF), que tem como fundamento exatamente a programação web em Java orientada a componentes e eventos. Estão surgindo componentes JSF cada vez mais ricos e com melhor suporte a AJAX. Cito as principais bibliotecas/frameworks JSF livres que conheço, com suporte a AJAX:
- ICEfaces (veja components showcase): tornado software livre este ano pela empresa criadora ICEsoft, o framework ICEfaces é muito rico. A página de download oferece também pacotes de integração para os principais IDEs como Eclipse, Netbeans, JDeveloper e outros.
- MyFaces Trinidad, originado do Oracle ADF Faces: tornados open source, em doação ao Projeto Apache MyFaces, os vastos componentes ricos ADF Faces da Oracle para JSF, baseados no framework ADF, originaram o projeto Apache Trinidad. Veja Developing Smart Web UIs with Ajax, JSF, and ADF Faces, por Andrei Cioroianu, fevereiro 2006; Ajax Transactions Using ADF and JavaServer Faces, por Duncan Mills, junho 2006; How-to configure Apache Trinidad components in Oracle JDeveloper, por Frank Nimphius, Oracle Corporation, abril 2007.
- JBoss Ajax4jsf e JBoss RichFaces: recentemente tornados open source em pareceria estratégica entre sua criadora Exadel e a JBoss/Red Hat. Veja RichFaces live demo.
- Dynamic Faces: parte do projeto JSF Extensions, componente da comunidade GlassFish. Tem com principal desenvolvedor o engenheiro sênior da Sun Ed Burns, a partir da idéia inicial de JSF Avatar de Jacob Hookom. Provê extensões à implementação de referência JSF 1.2 para suportar AJAX. Veja Introducing Project Dynamic Faces, por Ed Burns, agosto 2006; o terceiro artigo da série citada na SDN New Technologies for Ajax and Web Application Development: Project Dynamic Faces, por Jennifer Ball e Ed Burns, dezembro 2006; Setting Up Your Application to Use Project Dynamic Faces, no Sun Web Developer Pack Tutorial; e Adding Ajax to JavaServer Faces Technology With Dynamic Faces, por Ed Burns, março 2007, SDN.
- Projeto Woodstock: componentes JSF com suporte a AJAX, integram o NetBeans Visual Web Pack. Veja Project Woodstock: Next Generation of Smarter UI Components, 2007-06-27; All About Component Libraries do NetBeans, por Edwin Goei; e Delving Into Components, maio 2007.
Uma tabela comparativa de várias bibliotecas pode ser encontrada em AJAX JSF Comparison Matrix.
Veja também as indicações em Uma centena de sugestões para programação Ajax e Javascript, por Cid Andrade, 2008-04-16.
Para saber mais (em inglês):
- AJAX (programação) em Português; e Ajax (programming) em Inglês, por Wikipédia.
- Ajax: A New Approach to Web Applications, por Jesse James Garrett, 2005-02-18, Adaptive Path.
- 30 Of The Best AJAX Tutorials, 2007-12-20, em Designs Advice.
- The ABCs of RIA — An InfoWorld survey of the applications and technologies we call ‘rich’ –, por Martin Heller, 06/08/07, InfoWorld.
- Rich Internet applications - RIA TechIndex, índice de artigos técnicos da InforWorld para os temas de RIA, Ajax e Web 2.0.
- Ajax in Practice, Ajax Developer Resource Center, Sun Developer Network (SDN).
- Ajax Patterns, portal sobre Ajax, padrões recomendados e o livro originado destes. Veja também as listagens Javascript Multipurpose Frameworks, Ajax Frameworks e Java Ajax Frameworks.
- Asynchronous JavaScript Technology and XML (Ajax) With the Java Platform, por Greg Murray, junho 2005, atualizado em outubro 2006, SDN.
- AJAX FAQ for the Java Developer, por Greg Murray, Java Enterprise Blueprints.
- AJAX Magazine, membro da PHP Magazine Network.
- AJAXWorld Magazine, publicação da SYS-CON Media.
- Ajax Matters, tutoriais e artigos sobre AJAX em profundidade. Nascido em 2004 como um blog sobre AJAX, desde julho 2007 teve o foco redirecionado para criação de uma base de conhecimento mais detalhada para desenvolvedores AJAX.
- Ajax Blog, técnicas de codificação HTML, Javascript e XML para Web 2.0.
- Ajax em MDC, Mozilla Developer Center.
- Ajaxian: blog de notícias, podcasts, showcases, recursos. Planet Ajaxian: blog de conteúdo.
- AJAX is the future of Web app development — But security, reliability and performance are Achilles’ heels. –, por Thomas Powell, 2006-07-17, Network World.
- Top AJAX tools deliver rich GUI goodness — Backbase, Bindows, JackBe, and Tibco General Interface bring fat features to enterprise Web clients –, por Peter Wayner, 2006-11-27, InfoWorld.
- Surveying open-source AJAX toolkits — Packages from Dojo, Zimbra, Yahoo, Microsoft, Google, and OpenRico/Prototype showcase the variety of libraries available to AJAX developers –, por Peter Wayner, 2006-07-31, InfoWorld.
- AJAX breathes new life into Web apps — Forget what you knew about JavaScript, DHTML, and the browser; it’s a whole new ball game –, por Peter Wayner, 2005-05-23, InfoWorld.
- The AjaxComponent strategy for JSF: The best of both worlds — Ajax-enable your components with a phase listener, por Matthew Tyson, 2007-12-20, JavaWorld.com.
- Ajax in Apache MyFaces (PDF) — A new Approach to Web Applications, apresentação em ApacheCon Asia 2006. Veja também o projeto MyFaces Tomahawk, de extensões à especificação JSF.
- Building Custom JSF UI Components, por Chris Schalk, gerente de produto e evangelista do Oracle JDeveloper, agosto 2005, TheServerSide.COM.
- Introduction to Javaserver Faces - What is JSF?, por Chris Schalk, abril 2005, OTN.
- Ajax for Java developers: Build dynamic Java applications, por Philip McCarthy, setembro 2005, IBM developerWorks; e Java object serialization for Ajax, outubro 2005.
- Open Source AJAX Frameworks with Server-Side Java Support, listagem atualizada em 2007-02-25, Manageability.
- Ajax Forms with jQuery, por Trevor Davis, 2007-09-08.
Enviar por e-mail. Hits para esta publicação: 4151.
Junho 12th, 2007 at 00:42
[…] Frank Coelho de Alcântara deu a dica sobre coleção de scripts Ajax, que foi prontamente adicionada em atualização do meu artigo sobre Ajax em Java do dia 9. […]
Julho 18th, 2007 at 23:20
Descobri o anúncio NetBeans do dia 27 de junho, Project Woodstock: The Next Generation of Smarter User Interface Components
http://www.netbeans.org/servlets/NewsItemView?newsItemID=1064
Lá estava uma informação que me faltava. Os componentes JSF do NetBeans Visual Web Pack têm identidade própria. Constituem o Projeto Woodstock. Os componentes foram inicialmente desenvolvidos pelo time da Sun para o Studio Creator 2 IDE. Com a doação de código do Studio Creator para o projeto NetBeans Visual Web Pack, estes componentes foram tornados código aberto como o Projeto Woodstock hospeado no java.net, desde fevereiro de 2007.
Este artigo foi atualizado para citar os componentes do Projeto Woodstock e, não apenas o NetBeans Visual Web Pack que os inclui.
https://woodstock.dev.java.net/
Agosto 16th, 2007 at 13:23
[…] Atualizei, então, estas novas referências no artigo Ajax em Java - coletânea de referências, 09/06/2007. […]
Agosto 26th, 2007 at 21:10
[…] TeamDev anunciou release de manutenção 1.2.1 do seu QuipuKit, biblioteca comercial de componentes JSF com suporte a AJAX. Para mais informações sobre componentes AJAX e JSF, com enfoque em software livre, veja meu artigo Ajax em Java - coletânea de referências, atualizado em 16 de agosto. […]
Novembro 8th, 2007 at 02:26
[…] Para fechar as novidades, o portal InfoQ destacou o lançamento das bibliotecas Prototype 1.6.0 e script.aculo.us 1.8.0, ambas bibliotecas JavaScript software livre, trazendo melhor desempenho e melhorias para Ajax. […]
Dezembro 23rd, 2007 at 13:52
[…] Criando uma lista na sessão com DWR - Parte 3, por Handerson Brito Frota - WEB2.0, 2007-12-21, mostra que tipos de métodos criar no FacadeAjaxSession explicado na Parte 2, 2007-12-16. A Parte 1 desta série de artigos havia apresentado conceitos iniciais sobre uso de Sessão com o popular framework AJAX DWR. Veja mais sobre bibliotecas e frameworks Ajax e JavaScript em meu artigo Ajax em Java - coletânea de referências. […]
Janeiro 5th, 2008 at 00:29
[…] Já existem também boas bibliotecas de componentes JSF livres disponíveis para os desenvolvedores. Tudo isso contribui para a adoção da tecnologia ser cada vez mais rápida, ampla e fácil. […]
Janeiro 26th, 2008 at 13:03
Tibco General Interface ganhou o prêmio de Melhor open source em desenvolvimento de software (InfoWorld BOSSIE Awards) na categoria AJAX toolkit:
http://www.infoworld.com/slideshow/2007/09/116-best_of_open_so-4.html
No InfoWorld 2007 Technology of the Year Awards, App Dev, Dojo Toolkit levou Melhor Kit AJAX Open Source:
http://www.infoworld.com/slideshow/2007/01/25-2007_technology-7.html
http://www.infoworld.com/article/06/07/31/31FEajax_1.html
Na mesma premiação, o Melhor Kit AJAX incluindo ferramentas comerciais foi Backbase 3.2:
http://www.infoworld.com/slideshow/2007/01/25-2007_technology-6.html
http://www.infoworld.com/article/06/11/27/48FEajax_1.html
No Tech of the Year Awards em janeiro 2007, Adobe Flex foi escolhida a melhor plataforma RIA:
http://www.infoworld.com/slideshow/2007/01/25-2007_technology-8.html
http://www.infoworld.com/article/06/08/10/33TCflex_1.html
Mas em setembro o BOSSIE Awards premiou OpenLaszlo, superando Flex, na categoria Rich Internet Application framework:
http://www.infoworld.com/slideshow/2007/09/116-best_of_open_so-3.html
Março 2nd, 2008 at 02:35
[…] Além da Coletânea de referências JavaScript Ajax que reuni de junho a dezembro de 2007, destaco agora o trabalho de Kevin van Zonneveld, no projeto que ele denomina “Portando PHP para Javascript”. Desde o início de 2008, ele já escreveu em Javascript 113 funções originárias do PHP, trabalho disponibilizado como software livre na biblioteca PHP.js. [Nota: não confundir com phpjs, interpretador JavaScript em PHP.] […]
Maio 12th, 2008 at 00:20
Autocomplete para rails com jquery muito fácil!
Por Rodrigo Urubatan, 2008-05-02.
- Artigo com impressões sobre o uso de jQuery — através do plugin jRails — em Ruby on Rails.