BT

Experimente a nova interface visual do InfoQ! Veja o novo design do InfoQ 3.0 e nos diga o que você achou.

Java EE, passado, presente e futuro com Jakarta EE e NoSQL

| por Otavio Santana Seguir 3 Seguidores em 23 nov 2018. Tempo estimado de leitura: 4 minutos |

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.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
BT