Tecnologias Java

Concluído

Nesta unidade, nós fazemos a distinção entre os diferentes tipos de estruturas, servidores e plataformas Java.

Spring Framework

O Spring Framework é uma estrutura de aplicativo e um contêiner de IoC (inversão de controle). Historicamente, o Spring é usado para complementar o modelo EJB (Enterprise JavaBeans). Suas principais funcionalidades são:

  • Injeção de dependência
  • Programação orientada a aspectos
  • Abstração de negócios

Spring Boot

O Spring Boot é executado sobre o Spring Framework e tem uma configuração automática flexível. Os aplicativos Spring Boot são executados de maneira autônoma e são a opção ideal para os microsserviços.

Spring Data

O Spring Data simplifica o acesso a dados para bancos de dados relacionais e não relacionais, estruturas MapReduce e serviços de dados baseados em nuvem.

Spring Security

O Spring Security é o padrão de referência na proteção de aplicativos baseados em Spring. Ele oferece um alto nível de autenticação e controle de acesso. Por exemplo, o Spring Security se integra bem ao Active Directory.

Spring Cloud

O Spring Cloud é usado para sistemas distribuídos. O Spring Cloud vem com descoberta de serviço, gerenciamento de configuração, monitoramento e uma boa experiência para o desenvolvedor.

Spring Batch

O Spring Batch é uma estrutura leve para aplicativos em lote robustos, essenciais para as operações diárias.

MicroProfile e Jacarta EE

O MicroProfile e o Jacarta EE (Edição Enterprise) podem ser vistos como a continuação de software livre das especificações do Java EE.

O MicroProfile é um conjunto de especificações para arquiteturas de microsserviço. Ele se autodenomina um fórum aberto para otimizar o Java Enterprise em uma arquitetura de microsserviços. Seu objetivo é inovar em várias implementações e colaborar em áreas comuns de interesse.

O Jacarta EE é um conjunto de especificações para a criação de aplicativos empresariais. Sua estrutura modularizada possibilita aos desenvolvedores criar soluções de software eficientes. Você pode empacotar aplicativos Jakarta EE como arquivos EAR ou WAR.

O WebProfile é um subconjunto do Jakarta EE para serviços de back-end com foco na Web, mas não se preocupe! Você pode adicionar APIs específicas da plataforma Enterprise a ele.

Servidores de aplicativos

Os aplicativos Java EE precisam ser implantados em servidores de aplicativos compatíveis com Java EE (WebLogic, WebSphere, WildFly, GlassFish, Payara e outros).

  • O Apache Tomcat é um servidor HTTP e um contêiner de Servlet Java. Ele implementa as especificações do Servlet, das JSP (Java Server Pages), da Java Expression Language e do Java WebSocket.

  • O Oracle WebLogic Server é uma plataforma unificada e extensível para desenvolver, implantar e executar aplicativos empresariais. O WebLogic Server oferece uma implementação robusta e madura do Java EE e do Jacarta EE.

  • O Red Hat JBoss Enterprise Application Platform oferece segurança e desempenho de nível empresarial para implementações locais e virtuais ou em nuvens privadas, públicas ou híbridas.

  • O WildFly é o upstream de software livre para JBoss EAP. Essa variante controlada pela comunidade é ótima para desenvolvimento e teste.

  • O IBM WAS (WebSphere Application Server) é um ambiente de runtime de servidor Java flexível e seguro para aplicativos corporativos. Ele tem como foco a alta confiabilidade. Ele dá suporte a microsserviços e modelos de programação baseados em padrões. Você pode modernizar em seu próprio ritmo, obter maior visibilidade entre as cargas de trabalho, analisar aplicativos corporativos e avançar em sua jornada para o Kubernetes.

  • O Open Liberty é a versão de software livre e orientada pela comunidade do WAS.

  • O Oracle GlassFish é a implementação de referência de muitos padrões Web Java EE (incluindo o Servlet e o JSP).

Outras estruturas para arquiteturas orientadas a microsserviços

  • O Netty é uma estrutura cliente/servidor de NIO (E/S não bloqueada). Ele permite o desenvolvimento rápido e fácil de aplicativos de rede, como clientes e servidores de protocolo. Ele simplifica e agiliza muito a programação de rede, como servidores de soquete TCP e UDP. O Netty é uma estrutura de aplicativo de rede orientada a eventos assíncronos para desenvolvimento rápido de clientes e servidores de protocolo sustentáveis e de alto desempenho.

  • O Quarkus é uma pilha Java nativa do Kubernetes adaptada para OpenJDK HotSpot e GraalVM. O Quarkus está ganhando cada vez mais força. Aliás, há estruturas mais focadas em desempenho como essa, por exemplo, Vert.x, Helidon, Payara Micro e KumuluzEE.

  • O Micronaut é uma estrutura de pilha completa moderna baseada em JVM para a criação de microsserviços modulares facilmente testáveis e aplicativos sem servidor. O Micronaut apresenta uma injeção de dependência e runtime de programação orientado a aspectos que não usa reflexão. Isso facilita a execução de aplicativos Micronaut no GraalVM.