Tecnologias Java
Nesta unidade, distinguimos entre os diferentes tipos de frameworks, servidores e plataformas Java.
Spring Framework
O Spring Framework é uma estrutura de aplicativo e contêiner de inversão de controle (IoC). O Spring tem sido historicamente usado para complementar o modelo Enterprise JavaBeans (EJB). As suas principais funcionalidades são:
- Injeção de dependência
- Programação orientada a aspetos
- Abstração Empresarial
Spring Boot
O Spring Boot é executado em cima do Spring Framework e tem uma configuração automática opinativa. Os aplicativos Spring Boot são executados de forma autônoma e são perfeitos para microsserviços.
Dados da primavera
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.
Segurança da primavera
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 com o Ative Directory.
Nuvem de primavera
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 aplicações em lote robustas que são vitais para as operações diárias.
MicroProfile e Jacarta EE
Pode considerar o MicroProfile e o Jakarta Enterprise Edition (EE) como a continuação de código aberto das especificações Java EE.
MicroProfile é um conjunto de especificações para arquiteturas de microsserviços. Ele se autodenomina um fórum aberto para otimizar o Enterprise Java para uma arquitetura de microsserviços. A MicroProfile tem como objetivo inovar em várias implementações e colaborar em áreas comuns de interesse.
Jacarta EE é um conjunto de especificações para a construção de aplicações 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.
Web Profile é um subconjunto de 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 corporativa sobre ela.
Servidores de aplicativos
Os aplicativos Java EE devem ser implementados em servidores de aplicativos compatíveis com Java EE (Weblogic, WebSphere, WildFly, GlassFish, Payara e outros).
Apache Tomcat é um servidor HTTP e um contêiner Java Servlet. Ele implementa as especificações Servlet, Java Server Pages (JSP), Java Expression Language e Java WebSocket.
Oracle Weblogic Server é uma plataforma unificada e extensível para desenvolver, implantar e executar aplicativos corporativos. O Weblogic Server oferece uma implementação robusta e madura de Java EE e Jacarta EE.
Red Hat JBoss Enterprise Application Platform (JBoss EAP) oferece segurança e desempenho de nível empresarial para implementações locais e virtuais, ou em nuvens privadas, públicas ou híbridas.
WildFly é o upstream de código aberto para o JBoss EAP. Esta variedade orientada pela comunidade é ótima para desenvolvimento e testes.
IBM WebSphere Application Server (WAS) é um ambiente de tempo de execução de servidor Java flexível e rico em segurança para aplicativos corporativos. Ele se concentra em alta confiabilidade. Ele suporta microsserviços e modelos de programação baseados em padrões. Você pode modernizar ao seu próprio ritmo, obter maior visibilidade entre cargas de trabalho, analisar aplicações empresariais e avançar na sua jornada para o Kubernetes.
Open Liberty é a versão de código aberto do WAS orientada pela comunidade.
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 cliente/servidor de E/S (NIO) sem bloqueio. Permite o desenvolvimento rápido e fácil de aplicações de rede, tais como servidores de protocolo e clientes. 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 assíncrona e orientada a eventos para o desenvolvimento rápido de servidores e clientes de protocolo de alto desempenho e manutenção.
Quarkus é uma pilha Java nativa do Kubernetes adaptada para OpenJDK HotSpot e GraalVM. Quarkus está ganhando cada vez mais impulso. A propósito, existem frameworks mais focados em desempenho como este, como Vert.x, Helidon, Payara Micro e KumuluzEE.
Micronaut é uma estrutura moderna, baseada em JVM, para a construção de aplicativos full-stack, modulares e facilmente testáveis de microsserviços e adequados a ambientes sem servidor. O Micronaut apresenta um sistema de injeção de dependências e um tempo de execução para programação orientada a aspetos que não usa reflexão, o que facilita a execução das aplicações Micronaut no GraalVM.