Tecnologias Java

Concluído

Nesta unidade, distinguemos entre os diferentes tipos de estruturas java, servidores e plataformas.

Spring Framework

O Spring Framework é uma estrutura de aplicativos e um contêiner de IoC (inversão de controle). O Spring tem sido usado historicamente 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 é baseado no Spring Framework e tem uma autoconfiguração opinada. Os aplicativos Spring Boot são executados autônomos e são perfeitos para microsserviços.

Dados do Spring

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 fato para proteger aplicativos baseados em Spring. Ele oferece um alto nível de autenticação e controle de acesso. Por exemplo, o Spring Security integra-se bem ao Active Directory.

Spring Cloud

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

Spring Batch

O Spring Batch é uma estrutura leve para aplicativos em lotes robustos que são vitais para operações diárias.

MicroProfile e Jakarta EE

Você pode encarar o MicroProfile e o Jakarta Enterprise Edition (EE) como a continuação em software livre das especificações do Java EE.

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

Jakarta EE é um conjunto de especificações para a criação de aplicativos empresariais. Sua estrutura modularizada permite que os desenvolvedores criem soluções de software eficientes. Você pode empacotar aplicativos Jakarta EE como arquivos EAR ou arquivos WAR.

O Perfil da Web é 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 empresarial sobre ela.

Servidores de aplicativos

Os aplicativos Java EE devem 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 do Java Servlet. Ele implementa as especificações Servlet, Java Server Pages (JSP), Java Expression Language e 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 Jakarta EE.

  • O JBoss Enterprise Application Platform (JBoss EAP) do Red Hat 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 variedade orientada pela comunidade é ótima para desenvolvimento e teste.

  • O IBM WebSphere Application Server (WAS) é um ambiente de runtime de servidor Java flexível e rico em segurança para aplicativos empresariais. Ele se concentra na 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.

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

Outras estruturas para arquiteturas orientadas a microsserviços

  • Netty é uma estrutura de cliente/servidor de E/S não bloqueante (NIO). Ele permite o desenvolvimento rápido e fácil de aplicativos de rede, como servidores de protocolo e clientes. Ele simplifica e agiliza a programação de rede, como servidores de soquetes TCP e UDP. Netty é um framework de aplicação de rede assíncrono e orientado a eventos para o rápido desenvolvimento de servidores e clientes de protocolo de alto desempenho e manuteníveis.

  • O Quarkus é uma pilha Java nativa do Kubernetes adaptado para OpenJDK HotSpot e GraalVM. Quarkus está ganhando cada vez mais impulso. A propósito, há estruturas mais focadas em desempenho como esta, como 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 um runtime de programação orientado a aspectos que não usa nenhuma reflexão, o que facilita a execução de aplicativos do Micronaut no GraalVM.