O Java EE é uma plataforma cujo o seu objetivo é facilitar a criação de programas para ambientes corporativos utilizando Java. Ele tem pontos importantes e especificações que permitem a escolha de multi-vendors, preocupação com retrocompatibilidade, além da sua maior força que é uma comunidade forte e vibrante. Nesse momento, o projeto está passando por diversas mudanças, dentre elas a migração para o Eclipse Foundation com o novo nome, Jakarta EE, e uma nova estrutura de trabalho. Descubra um pouco da história do Java EE, o atual cenário da plataforma, além do futuro como Jakarta EE.
As gerações do Java EE
O mundo do Java EE pode ser dividido em quatro gerações:
- Primeira geração: Nesse primeiro passo da tecnologia, a maior característica se dá pelo fato que os componentes como JAX-WS estão embarcados no JDK. Esses módulos são os mesmos que foram removidos na versão 11 do JDK;
- Segunda geração: A segunda geração é caracterizada pela nova nomenclatura, o J2EE além de uma plataforma específica é a primeira interação do Java EE fora do JDK. Ele começou com o J2EE 1.2 em dezembro de 1999 e foi até a versão J2EE 1.4, em novembro de 2003;
- A terceira geração: Nessa época existiam dois pontos principais, o primeiro foi a nova nomenclatura do Java EE, JEE sem o '2', além da transição da Sun para a Oracle. Teve início com o Java EE 5 em maio de 2006 e foi evoluindo até 31 de agosto de 2017 com o Java EE 8.Quarta geração: A quarta e última geração é caracterizada, pela submissão da Oracle para o Eclipse Foundation. Com isso, todo código, especificação e TCKs são enviados para o Eclipse Foundation, além de uma nova estrutura organizacional o projeto tem um novo nome, Jakarta EE, e um novo logo, ambos selecionados de maneira transparente e com a contribuição da comunidade.
O que é NoSQL?
O banco de dados não relacional é um novo conceito de persistência que provê mecanismo de modelagem que vai além da tecnologia relacional. Esse tipo de banco de dados possui velocidade e alta escalabilidade. Uma das maneiras de categorizá-lo são pelos tipos, cujos os mais famosos são: chave valor, família de coluna, documentos e grafos. Essa tecnologia de persistência estão se tornando cada vez mais relevantes em diversos tipos de aplicações, que incluem as financeiras, por exemplo, no ranking do DB-Engines quatro dos dez bancos mais populares são NoSQL e hoje existem aproximadamente duzentos e vinte cinco bancos de dados não relacionais.
Java EE e NoSQL
Como consequência dessa relevância e dessa popularidade, diversas discussões foram iniciadas numa maneira de padronizar as chamadas dos bancos NoSQL. Uma API para NoSQL, que inclusive foi alvo de proposta para o Java EE 9 pela Oracle, os pontos levantados nessa proposta foram:
- O JPA não foi desenhado para o NoSQL;
- JPA para o NoSQL implica no uso inconsistente de anotações;
- Um grupo de APIs não são adequados para todos os tipos de bancos de dados;
- A diversidade do NoSQL é uma característica importante e preponderante para essa tecnologia.
Porém, assim como Java EE 9, essa proposta nunca foi concluída.
Com o objetivo de ocupar essa lacuna deixada pela proposta do Java EE 9 para o NoSQL algumas implementações de JPA iniciaram extensões que permitem o uso de NoSQL com o JPA é o caso do Hibernate OGM e do Eclipse Link NoSQL.
Jakarta EE e NoSQL
Com o objetivo de trazer novidades para a plataforma e facilidades no desenvolvimento, o assunto Java e NoSQL se demonstrou evidente novamente, dessa vez, tornando esse desafio como a primeira especificação dentro do Jakarta EE. O Jakarta EE utilizará o Eclipse JNoSQL cuja abordagem destaca:
- O seu foco que será o suporte aos bancos NoSQL do tipo chave valor, família de colunas, documentos e grafos;
- Possuirá uma camada de comunicação, como o JDBC, para cada tipo mencionado com exceção do Grafo que irá utilizar o Apache TinkerPop;
- Existirá uma camada de Mapeamento, como o JPA, para cada tipo suportado, sendo que será necessário um grande esforço para compartilhar as mesmas anotações entre os tipos;
- As APIs tanto de comunicação quanto de mapeamento serão extensíveis o suficiente para suportar comportamentos específicos de vendors.
Mais informações sobre o Eclipse JNoSQL estão disponíveis neste artigo.
O objetivo desse artigo é falar um pouco sobre o histórico do Java EE e sua relevância no mercado para os desenvolvedores Java, agora nas mãos do Jakarta EE, o Java EE demonstra um futuro cada vez mais vibrante olhando para as novas necessidades dentro do mundo Java. Com o crescimento da adoção do NoSQL no mundo corporativo, a escolha de uma nova especificação visando facilitar esse desafio, certamente, será muito recebida pela comunidade.