quinta-feira, 20 de março de 2014

Java EE 7 - Introdução

Java EE 7
Como a grande maioria dos desenvolvedores Java EE devem saber, a versão 7 dessa plataforma está disponível para trabalharmos com todas as suas novas funcionalidades. Porém o assunto ainda não foi muito bem diluído nos tutoriais ou blogs sobre o mesmo por ai.
Por esse motivo decidi fazer uma série de posts sobre o Java EE 7, esse primeiro será mais um overview sobre as novas funcionalidades, coisas que achamos com certa facilidade na Internet, e adiante veremos algumas funcionalidades novas de fato em um projeto em que eu estou fazendo para uso pessoal, mas que acho que para fins educativos será valido. Um projeto que eu resolvi refaze-lo usando todas as novas features do Java EE 7 que ele demanda.
Mas vamos agora um pouco mais afundo sobre o que essa plataforma Web disponibilizou para nós nessa nova versão.


Vamos as principais funcionalidades:

HTML 5
O principal foco do Java EE 7 está no HTML 5, ele foi lançado para entregar uma simplificação melhorada, produtividade e suporte para a especificação, que foi definida para habilitar aplicações Web enriquecidas com multimídia modernos. A conversação será feita através de acomodações para WebSocket e JSON.



Web Sockets
A atualização é focada em adicionar suporte "primeira classe" para WebSocket, considerado parte da família de tecnologias HTML5. WebSocket prevê a comunicação de duas vias com um host remoto e aplicações Web. Pode-se manter comunicações bidirecionais com os processos do servidor.


JSON
JSON ou JavaScript Object Notation, é um formato de intercâmbio de dados leve baseado em JavaScript e apresentando em um formato de texto independente de linguagem. Muitos serviços da Web usam JSON para chamar e retornar dados. "HTML5 e WebSockets, JSON, etc, são fundamentais para a área de trabalho de última geração e os clientes móveis".


JMS 2.0
A JMS (Java Message Service) 2.0 API irá fornecer mais facilidade de desenvolvimento. A API oferece meios para programas em Java criar, enviar, receber e ler mensagens do sistema de mensagens corporativas. A versão 2.0, foi entalhada como uma versão simplificada. 


"O maior mudança na JMS 2.0 é a introdução de uma nova API para enviar e receber mensagens que reduz a quantidade de código que um desenvolvedor deve escrever", segundo a Oracle. "Para aplicativos que são executados em um servidor de aplicativos Java EE, a nova API também suporta injeção de recursos. Isso permite que o servidor de aplicação cuide da criação e gerenciamento de objetos JMS, simplificando a aplicação ainda mais."


Batch
Um modelo novo de aplicações em lote e uma Runtime de programação e execução de jobs. JSR(Java Specification Request)  352.


Atualmente, uma das necessidades mais comuns em grandes operações de software é o desenvolvimento de processos batch (em lote). Processos batch são operações realizadas por um sistema que não necessitam de interação direta com o usuário.



Web Profile
Introduzido no Java EE 6 e utilizado para a implantação de aplicações Web, Web Profile foi atualizado no Java EE 7 e agora está voltado para o desenvolvimento de aplicativos "modernos", de acordo com Aron Gupta da Oracle. Se um engenheiro de Java não precisa de JMS, por exemplo, ele ou ela pode simplesmente usar o Web Profile. "JSON e WebSocket também fazem parte do Web Profile como parte do Java EE 7", diz Gupta. JAX-RS 2.0 é destaque no Web Profile, também.


Concurrency
Java EE 7 fornece uma API padronizada para o uso da simultaneidade de componentes da aplicação, sem comprometer a integridade do container e preservar os benefícios da plataforma Java EE. "Os utilitários de simultaneidade fornecer suporte para padrões de projeto de concorrência que tornam mais fácil para os programadores criar aplicações que tiram proveito do processamento paralelo. É bom ter algo em níveis superiores de gerenciamento de threads 'baixo nível'" Gartner.

CDI
Context Dependency Injection, introduzida no Java EE 6, foi aprimorado e está prevista para ser mais amplamente utilizada pelas tecnologias da plataforma Java EE. "[CDI] para a plataforma Java EE é um dos vários recursos que ajudam a tricotar juntos a camada Web e a camada transacional da plataforma Java EE. CDI é um conjunto de serviços que, usados ​​em conjunto, torna mais fácil para desenvolvedores usarem Beans corporativos, juntamente com a tecnologia JavaServer Faces em aplicações Web ", de acordo com a Oracle.

JAX-RS 2.0
Java API RESTful Web Services 2.0 permitirá invocação de um terminal REST de uma forma padrão, Gupta da Oracle disse em um post de seu blog. "Nós estamos fornecendo pontos de extensão, filtros de métodos e interceptores de entidade que melhoraram a forma de fazer request e response, e como fazer pré-e pós-processamento muito facilmente, o que será útil para enfrentar preocupações transversais, tais como a exploração logging ou de segurança , que você pode facilmente fazer como parte do seu REST endpoint."

Servlet 3.1
Java Servlet 3.1 oferece aos desenvolvedores Web um mecanismo para estender a funcionalidade do servidor Web e acessar sistemas comerciais. Um servlet pode ser visto como um applet do lado do servidor. Servlet 3.1 oferece non-blocking I / O, um mecanismo de atualização do protocolo HTTP, e melhorias de segurança.

Temos ainda algumas especificações novas que eu deixei para falar um pouco mais no nosso post de Hands On. Porém podemos ver várias novas funcionalidades adicionadas a plataforma Java EE de desenvolvimento e vemos que foram melhorias significativas no dia-a-dia do desenvolvedor. No próximo post sobre a plataforma Java EE 7, eu falarei sobre as ferramentas que serão usadas no nosso ambiente de trabalho.