Boas blogadas – novidades e atualidades Java EE 5/6

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).

REST e a evolução da arquitetura de software

[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 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):

JUG Cologne – painel sobre IDEs Java

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):

Liberado Java SE 6 Update 2

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).

Tendências Java por Eclipse e BEA

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:

Artigo PDF livre atualizado

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.