julho 2007
Monthly Archive
dom 8 jul 2007
Java EE 5.0, que teve sua especificação (JSR 244) concluída em maio de 2006, ainda está se estabelecendo no mercado e nos ambientes de produção.
Os elementos que impulsionam a adoção do JEE5 são centrados em maior facilidade. Há a grande simplificação do EJB 3.0 (JSR 220) e suas práticas anotações em POJOs, em relação à burocracia do EJB2; a nova API de Persistência Java (JPA) (veja [1], [2], [3], [4]) — que também tira muito proveito das anotações e simplifica a persistência dos Entity Beans de EJB3 –; o refinamento e integração entre JSF 1.2 (JSR 252) e JSP 2.1 (JSR 245) com a Linguagem de Expressão Unificada (veja [5], [6], [7], [8], [9], [10]).
Enquanto Wonseok Kim implementa melhorias no TopLink Essentials (TLE) (6 de julho), Implementação JPA do servidor GlassFish (Java EE 5), e Carol McDonald exemplifica o uso de JSF, JBoss Seam e JPA no GlassFish (6 de julho), os desenvolvedores mais visionários já estão um passo além, de olho no futuro Java EE 6, cujo foco deve ser extensibilidade.
Rajiv Mordani cita em seu blog (6 de julho) a recente aprovação da JSR 315 para especificação Servlet 3.0.
Jitendra Kotamraju aborda compressão na JAX-WS RI (6 de julho), a Implementação de Referência (RI) de JAX-WS 2.0, Java API for XML-Based Web Services 2.0 (JSR 224). Veja também o artigo de Young Yang JAX-WS Web Services Without Java EE Containers (3 de julho).
sáb 7 jul 2007
[Atualizado em 2008-10-18.]
Já ouviu falar em REST?
É o acrônimo para o termo em inglês Representational State Transfer, ou Transferência de Estado Representacional. O termo foi introduzido por Roy Thomas Fielding — um dos principais autores da especificação HTTP e autoridade em arquitetura de redes de computadores — no ano de 2000, em sua tese de doutorado (Ph.D.): Architectural Styles and the Design of Network-based Software Architectures, Universidade da Califórnia, Irvine, EUA. O capítulo 5 da tese versa sobre Representational State Transfer (REST).
De 2000 até agora, o conceito vem se difundido e se popularizando como um estilo de arquitetura de software moderno para sistemas hipermídia distribuídos, em especial as aplicações na World Wide Web (WWW, ou simplesmente web “para os íntimos”).
O conceito de REST e os sistemas RESTful (aderentes aos princípios de REST) refletem, em minha opinião, uma das muitas facetas do aumento da abstração e complexidade na arquitetura das aplicações via Internet.
Desde que a web surgiu no início da década de 1990 — criada por Tim Berners-Lee no CERN — até hoje, acompanhamos seu aumento de abrangência e complexidade. Surgiu como um meio simples e prático de disponibilização de conteúdo hipermídia na Internet.
Ao longo dos anos, por um lado o conteúdo da web se tornou mais rico e multimídia com a introdução de imagem, animações, áudio e vídeo etc. Por outro, sua interatividade cresce em ritmo acelerado, tornando a web um canal de interação, aplicações e serviços cada vez mais amplo.
As aplicações na web também deram os primeiros passos com o protocolo Common Gateway Interface (CGI) até chegarem à era atual dos Web Services (WS), da Arquitetura Orientada a Serviços (Service-Oriented Architecture – SOA) e seu uso nos sistemas de Gerenciamento de Processos de Negócio (Business Process Management – BPM).
Assim, a web deixa de ser a camada de mais alto nível de abstração na pilha das aplicações Internet (WWW → HTTP → TCP/IP). Acima dela se posicionam sistemas complexos que tem a web como “mera” base de infraestrutura. Neste topo entram princípios e mecanismos como REST, WS, SOA e AJAX, bem como os frameworks de aplicação web de alto nível — baseados em componentes — como Java EE (JSF → JSP → Servlets), Microsoft .NET Framework e o Zend Framework do PHP 5.
Isso me traz à mente a comparação com o que li tempos atrás. A constatação — que então me impressionou — de que os mecanismos de Mapeamento Objeto-Relacional e frameworks de persistência como o Hibernate estavam fazendo a linguagem SQL se tornar commodity, vista como uma camada de “baixo nível” na interação com bancos de dados. Concordo. Eis aí mais um exemplo do aumento no nível de abstração e complexidade dos sistemas.
Para saber mais:
- REST – Representational State Transfer (em inglês), por Roger L. Costello, 2002-07-26, xFront. Veja também Building Web Services the REST Way.
- Introduction to REST (em inglês), por Bill Burke, 2008-08-18, em Javalobby DZone.
- REST (em português) e Representational State Transfer (em inglês), por Wikipédia, a enciclopédia livre.
- Uma Arquitectura Web para Serviços Web (PDF, em português), por Sérgio Nunes e Gabriel David, Universidade do Porto, Portugal, 2005-01-25 (ver catalogação e resumo).
- REST wiki (em inglês).
- Livro (em inglês) RESTful Web Services, por Leonard Richardson e Sam Ruby, 446 p., maio 2007, O’Reilly Media. Veja também RESTful Web Services: the book, Sun BabelFish Blog, 7 de junho de 2007; e Interview and Book Excerpt: RESTful Web Services (em inglês), por Stefan Tilkov, 2007-06-01.
- RESTful Web Services (PDF, em inglês), por John Cowan, 2005.
- RESTful Web Services (em inglês), por Sameer Tyagi, agosto 2006, Sun Developer Network (SDN).
- A RESTful approach to Web services (em inglês), por Robert McMillan, 2003-02-17, Network World.
- The Restful Web – How to Create a REST Protocol, por Joe Gregorio, 1º de dezembro de 2004; What Is Service-Oriented Architecture, por Hao He, 2003-09-30; e REST and the Real World, por Paul Prescod, 2002-02-20; (todos em inglês), O’Reilly XML.com.
- Relationship to the World Wide Web and REST Architectures, in: Web Services Architecture (em inglês), W3C Working Group Note, 2004-02-11. Veja também Architecture of the World Wide Web, Volume One, W3C Recommendation, 2004-12-15.
- REST != HTTP (em inglês), por Ted Neward, 2008-11-06, em seu blog; artigo também reproduzido em Javalobby.
REST em Java
Para intergrar a futura plataforma Java EE 6, em fevereiro de 2007 foi proposta a nova especificação JSR 311 – JAX-RS: The Java API for RESTful Web Services, Java Community Process (JCP). A JSR 311 teve sua versão final lançada em 2008-10-10.
Implementações de Web Services RESTful em Java:
Para saber mais (todos em inglês):
- REST for Java developers, Part 1: It’s about the information, stupid — A resource-oriented approach to Web services, por Brian Sletten, 2008-10-16, JavaWorld.com.
- RESTful @ Sun, putting it all together, por Alexis Moussine-Pouchkine, 2007-07-25.
- The REST of the Web (artigo), por Jason R. Briggs, 2005-04-27; e REST for Java (blog), por Shashank Tiwari, 2006-09-13; ambos em ONjava.com.
- Sun moving away from SOAP to embrace REST, por Alex Handy, 2008-10-13, SD Times. Leia também o artigo SOAP and REST – both equally important to Sun, por Arun Gupta, 2008-10-17.
sex 6 jul 2007
Dia 3 passado ocorreu um evento muito interessante no JUG Cologne, em Cologne, quarta maior cidade da Alemanha.
Foi o IDE Shootout, um painel sobre IDEs Java, com represententes oficiais dos quatro IDEs líderes atuais: Eclipse, NetBeans, IntelliJ (JetBrains) e JDeveloper (Oracle).
- Wayne Beaton — Eclipse Evangelist, Eclipse Foundation, Ottawa, Canadá.
- Roman Strobl — NetBeans Evangelist, Sun Microsystems, Praga).
- Maxim Shafirov — JetBrains, Responsible for IntelliJ IDEA, São Petersburgo –, Mike Aizatsky — JetBrains, Responsible for Web Development IntelliJ IDEA, São Petersburgo –, Ann Oreshnikova — Marketing Director JetBrains, São Petersburgo.
- Frank Nimphius (também em Orablogs) — Principal Product Manager Oracle/JDeveloper, Alemanha.
Alguns chegaram a considerarar a expectativa de uma uma batalha no evento. Mas na verdade, com apenas 30 minutos de apresentação para cada IDE, cada representante destacou pontos fortes e singularidades da sua ferramenta, sem objetivo de “atacar” os demais. A grande vencedora é a comunidade Java, que ganhou um evento interessante e produtivo.
Representantes e participantes comentam o evento em seus blogs (em inglês):
sex 6 jul 2007
Fonte: JavaFree, por Dalton Camargo, ontem.
Uma nova atualização do Java 6 SE acaba de ser publicada, trazendo 181 bugs corrigidos. Apesar de muitas coisas ainda faltarem neste update, ele supre várias necessidades que a comunidade Java há muito tempo pedia para a Sun.
Dentre as melhorias que este update contém, há melhor suporte para Look And Feel em Linux GTK.
Veja a lista completa de bugfixes em Release Notes – Changes in 1.6.0_02.
Baixar: Java SE 6 Update 2 (JDK, JDK mais NetBeans, JRE).
seg 2 jul 2007
A revista Java Developer’s journal (JDJ) publicou ontem a matéria on-line The Evolution of Java (em inglês) – Entrevistas com Mike Milinkovich (Eclipse Foundation) e Bill Roth (BEA), por Joe Winchester.
Mike Milinkovich, diretor executivo da Fundação Eclipse, fala sobre o recente ingresso da Fundação Eclipse no Java Community Process (JCP), com especial interesse no projeto Eclipse Equinox como possível implementação de referência para o JSR-291 – Dynamic Component Support for Java SE, submetido pela IBM. Mike também fala sobre a evolução do Eclipse IDE, cujo uso cresceu 20% no Brasil segundo medições recentes.
A aprovação do JSR 291 teve votos contra e preocupações. Foi questionado se este JSR não seria desnecessário ou redundante, pois se baseia inteiramente no padrão já existente OSGi Service Platform, da OSGi Alliance – The Dynamic Module System for Java. Leia os comentários da votação inicial de Revisão do JSR.
Além do Eclipse Equinox, o projeto Apache Felix implementa o padrão OSGi.
Bill Roth, o outro entrevistado, já foi líder de especificação JEE da Sun nas primeiras versões de EJB, e atualmente é vice-presidente da unidade de negócios Workshop na BEA. Fala sobre tendências e perspectivas futuras de Java na visão da BEA.
Para saber mais:
- Eclipse, Equinox and OSGi, por Jeff McAffer e Simon Kaegi, janeiro 2007, TheServerSide.COM.
- JSR 291 Passes Public Review Ballot with 2 No Votes, notícia/discussão da comunidade postada por Kirk Pepperdine, 23 janeiro 2007, TheServerSide.COM.
- JSR 291 – Dynamic Component Support for Java™ SE, OSGi Alliance.
- OSGi/JSR291 accepted — but does Sun care?, por Alex Blewitt, 23 maio 2007, Eclipse Zone.
- Eclipse Foundation.
- BEA Systems.
dom 1 jul 2007
Meu artigo PDF livre com Ghostscript foi revisado hoje, passando a refletir as versões mais atuais dos utilitários GPL Ghostscript 8.57 e FreePDF XP 3.24.
À época da revisão anterior do artigo, o FreePDF XP 3.07 não havia funcionado com a versão livre (open source) GPL Ghostscript 8.54, gerando o erro: GhostScript Error 1. Erro, nenhum arquivo PDF produzido! (False). O FreePDF 3.07 funcionava apenas com o Ghostscript 8.54 na licença AFPL, que é gratuita apenas para uso pessoal.
Com a atual versão 3.24 do FreePDF XP, que passou a ser compatível também com Windows Vista, o GPL Ghostscript 8.57 funcionou sem problemas, garantindo assim o uso das versões mais atuais livremente, para qualquer fim (pessoal, profissional ou comercial).
Se você quer mais poder e flexibilidade de configuração na geração de PDF, pode experimentar substituir o FreePDF XP pelo PDFCreator. Apesar de não ter a mesma interface fácil e atrativa do primeiro, o PDFCreator é software livre e aberto (projeto open source em SourceForge) e oferece mais opções de configuração e geração de PDF.
Utilitários como FreePDF XP e PDFCreator são uma forma fácil e gratuita para se gerar documentos PDF a partir de qualquer aplicação Windows capaz de imprimir. Basta direcionar o conteúdo desejado para a “impressora PDF” criada pelo utilitário.
Aproveitando o ensejo, foi também atualizada a página de referências (links) sobre Portable Document Format (PDF), Ferramentas de software PDF, PDF/Archive (PDF/A) – ISO 19005 e PostScript (PS):
Hyperlink: Multimídia: Texto: PDF.
« Página anterior