A versão public draft da especificação da Java EE 6 Platform foi publicada e permanecerá aberta para revisão e feedback do público até 23 de Fev de 2009. Talvez a parte mais notável deste rascunho atrasado seja o Web Profile, que é o primeiro profile na história da plataforma Java EE.
Roberto Chinnici que é o líder da especificação dá uma idéia do Web Profile:
Após muita reflexão, o expert group escolheu seguir com uma versão média do Web Profile, próxima da opção B no meu relato antecipado.
As tecnologias requeridas são:
Servlet 3.0
JSP 2.2
EL 1.2
Suporte a Debug de outras linguagens (JSR-45) 1.0
JSTL 1.2
JSF 2.0
JSR-250 1.1
EJB 3.1 Lite
JTA 1.1
JPA 2.0Você pode notar que alguns do números de versão não condizem com a última API publicada (ex: EL 1.2). Isso acontece porque nós sestamos planejando pequenas mudanças na tecnologia correspondente, via revisões de manutenção. Daremos mais detalhes assim que elas se tornarem disponíveis.
A razão por traś do Web Profile é explicada no draft:
O Web Profile é destinado a desenvolvedores de aplicações web modernas.
Com o termo "moderno" queremos destacar o fato de que o mundo das aplicações web fez muito progresso desde a introdução da primeira especificação de Servlets. Inevitavelmente, o número de tecnologias usadas para criar até mesmo uma simples aplicação web cresceu além dos limites. De fato, poucas aplicações web atuais são escritas diretamente na API de servlets: mais e mais aplicações confiam em frameworks e bibliotecas padrões ou de terceiros, frequentemente desenvolvidas como open-source, que por fim, usam algum servlet container.
Além de gerenciar interações HTTP, a maioria das aplicações web tem requisitos significativos nas áreas de gerenciamento de transações, segurança e persistência. Tais requisitos podem ser prontamente tratados por tecnologias que são parte da plataforma Java EE por um bom tempo, como a tecnologia Enterprise JavaBeans (EJB) 3.x e a Java Persistence API, mas que são raramente suportadas por containers servlet "simples". Ao incorporar muitas dessas API, o Web Profile almeja definir o que seria um kit básico para o desenvolvimento de aplicações web usando a plataforma Java.
Direcionando para aplicações web modernas então, implica em oferecer um kit razoavelmente completo, composto por APIs padrão e capazes por si só de lidar com as necessidades de grande parte das aplicações web. Além disso, este kit deve ser fácil de extender e assim cobrir as necessidades remanscentes do desenvolvedor.
Contra esta orientação em direção ao "completo", deseja-se balancear o desejo para limitar os requisitos dos containers web, tanto em termos físicos quanto conceituais. Do ponto de vista dos desenvolvedores aprendendo o Web Profile, é mais valioso ter um profile pequeno e focado com pouca redundância de tecnologia quanto for posśivel, do que um mais poderoso porém extremamente complexo, com APIs redundantes.
Ao definir o Web Profile nós encontramos um meio termo entre essas dois conjuntos de requisitos.
Em termos de quão completo é, o Web Profile oferece um kit completo, com tecnologias que tratam desde a apresentação e gerenciamento de estado (Java Server Faces, Java Server Pages), funcionalidade padrão de um web container (servlet), lógica de negócio (Enterprise JavaBeans Lite), transactions (Java Transaction API), persistência (Java PErsistence API) e mais.
Por simplicidade, ele deixa de fora muitas das APIs corporativas de backend que são parte da plataforma Java EE. Ele também confia nas novas características de pluggability na especificação de servlets (veja ex: Secção 8.2 da especificação de servlets) para permitir às aplicações usarem bibliotecas que extendem o container servlet com o mínimo de configuração adicional. Por exemplo, uma tecnologia padrão como a Java API for Restfull Services (JAX-RS), que é parte da plataforma Java EE mas não do Web Profile, pode ser "plugado" em um container web sem exigir qualquer alteração no descritor web.xml de uma aplicação.
Finalmente, vale lembrar que os produtos do Web Profile podem ser entregues com mais tecnologias do que as exigidas. Isso permitirá que produtos ofereçam opção de diferentes configurações em tempo de instalação, algumas mais ricas em extenções, ou mesmo pormitir customização completa além do core requerido (instalação "a la carte").
Roberto também explica que JAX-RS não é um componente requerido do Web Profile porque o expert group sente que ainda é muito cedo para obrigar sua inclusão.
Algo que também está faltando são os Web Beans que não são listados com componentes requeridos nem no Web Profile e nem plataforma completa:
Web Beans não é listado como um componente requerido nem no Web Profile e nem na plataforma completa. Por outro lado ele é mencionado na seção EE.6.29 como um componente sob consideração para inclusão. O expert group gostaria de solicitar feedback da comunidade neste assunto.
Leitores atentos também notaram que a especificaçao de Web Beans, atualmente em public draft foi extensamente atualizada este mês. Oblog do Gavin King tem todos os detalhes das mudanças, que foram estimuladas por feedback vindo em ua maioria do experto group da JSR-316. Dentre as maiores mudanças, o termo "Web Beans" por si só desapareceu da espec. Enquanto isso pode chocar alguns, isso é bem positivo, já que isso significa a união da funcionalidade que os Web Beans oferecem com os conceitos de "containers" e "componentes" já estabelecidos no Java EE. Eu acredito que o resultado final será "Web Beans" mais fáceis de utilizar, melhor integrados, mais fácil de aprender, agora com suporte contextual e injeção de dependência para toda a plataforma Java EE.
Validação de Beans também não está listada como um componente da JSR Java EE 6:
Leitores ainda mais atentos notarão que a JSR-303 que está em revisão pública, ainda não é listada como um componente da JSR Java EE 6. Isso é simplesmente uma questão de tempo; o expert group da plataforma já começou a discutir a inclusão da JSR-303, então nenhuma decisão chegou a tempo de sair no public draft da especificação da plataforma que foi enviada para a imprensa (virtual). Eu devo dizer que o expert group da JSR-303, liderado por Emmanuel Bernard, teve muito trabalho para tratar as necessidades do JPA e JSF na área de validação, então estou bem confudente de que a JSR-303 será bem recebida pela comunidade.
O draft está disponível para download e contém tanto a espec do Java EE 6 quanto do Web Profile.
Há uma enquete rodando no java.net em relação ao o que a comunidade pensa sobre a nova especificação. Apesar da participaçao ainda ser pequena, os resultados tendem a mostrar que o draft publicado não causou excitação:
Eu gostei 12.1%
Eu acho que na espec principal faltam algumas JSRs importantes 3%
Eu acho que na espec do Web Profile faltam algumas JRSs Importantes 6%
Eu não gostei por outra razão 6%
Eu não li, mas pretendo ler 9%
Eu não li e não pretendo ler 63.6%
Você pode encontrar mais informação sobre Java Corporativo bem aqui no InfoQ.