Tecnologias Java
Nesta unidade, distinguimos entre os diferentes tipos de estruturas, servidores e plataformas Java.
Spring Framework
O Spring Framework é uma arquitetura de aplicações e um contentor de inversão de controlo (IoC). Historicamente, o Spring tem sido utilizado como complemento ao modelo Enterprise JavaBeans (EJB). As suas funcionalidades principais são:
- Injeção de dependência
- Programação orientada para o aspeto
- Abstração empresarial
Spring Boot
O Spring Boot é executado sobre o Spring Framework e tem uma configuração automática dogmática. As aplicações Spring Boot são executadas de forma autónoma e são perfeitamente adequadas para 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 facto para proteger aplicações baseadas em Spring. Este oferece um elevado nível de autenticação e controlo do acesso. Por exemplo, o Spring Security integra-se bem com o Active Directory.
Spring Cloud
O Spring Cloud é utilizado para sistemas distribuídos. O Spring Cloud inclui deteção de serviço, gestão de configuração, monitorização e uma boa experiência de programador.
Spring Batch
O Spring Batch é uma arquitetura simples para aplicações em lote robustas e é fundamental para as operações diárias.
MicroProfile e Jakarta EE
O MicroProfile e o Jakarta Enterprise Edition (EE) podem ser considerados um seguimento open source das especificações do Java EE.
O MicroProfile é um conjunto de especificações para arquiteturas de microsserviços. Auto-intitula-se um fórum aberto para otimizar o Java para Empresas de uma arquitetura de microsserviços. O MicroProfile tem como objetivo inovar através de múltiplas implementações e colaborar em áreas de interesse comuns.
O Jakarta EE é um conjunto de especificações para criar aplicações empresariais. A estrutura modular permite que os programadores criem soluções de software eficientes. Você pode empacotar aplicativos Jakarta EE como arquivos EAR ou arquivos WAR.
WebProfile é um subconjunto de Jakarta EE para serviços de back-end com foco na web, mas não se preocupe! Pode adicionar-lhe APIs específicas da plataforma Enterprise.
Servidores de aplicações
As aplicações Java EE têm de ser implementadas em servidores de aplicações compatíveis com Java EE (WebLogic, WebSphere, WildFly, GlassFish, Payara e outros).
O Apache Tomcat é um servidor HTTP e um contentor Servlet Java. 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 desenvolvimento, implementação e execução de aplicações empresariais. O WebLogic Server proporciona uma implementação avançada e madura para o Java EE e para o Jakarta EE.
A Red Hat JBoss Enterprise Application Platform proporciona desempenho e segurança de nível empresarial tanto nas implementações locais como virtuais ou em clouds privadas, públicas ou híbridas.
O WildFly é uma origem open source para o JBoss EAP. Esta variedade orientada para a comunidade é ótima para programação e testes.
O IBM WebSphere Application Server (WAS) é um ambiente de runtime de servidor Java seguro e flexível para aplicações empresariais. Centra-se na elevada fiabilidade. Suporta microsserviços e modelos de programação com base em normas. Pode modernizá-lo ao seu ritmo, obter maior visibilidade nas cargas de trabalho, analisar aplicações empresariais e avançar no seu percurso para o Kubernetes.
O Open Liberty é a versão open-source baseada na comunidade do WAS.
O Oracle GlassFish é a implementação de referência de muitas normas Web do Java EE (incluindo Servlet e JSP).
Outras estruturas para arquiteturas orientadas para microsserviços
A Netty é uma arquitetura de cliente/servidor de E/S não bloqueada (NIO). Permite desenvolver uma rede de aplicações de forma rápida e fácil, tais como clientes e servidores de protocolo. Simplifica bastante a programação de redes, tais como servidores socket TCP e UDP. A Netty é uma arquitetura de aplicações de rede orientada para eventos assíncronos para permitir o desenvolvimento rápido de servidores e clientes de elevado desempenho passíveis de manutenção.
A Quarkus é uma pilha de Java nativa do Kubernetes concebida para o OpenJDK HotSpot e GraalVM. Quarkus está ganhando cada vez mais impulso. A propósito, existem mais arquiteturas como esta focadas no desempenho, como a Vert.x, Helidon, Payara Micro e KumuluzEE.
A Micronaut é uma arquitetura moderna de pilha completa e baseada no JVM para criar aplicações sem servidor e microsserviços modulares e fáceis de testar. A Micronaut inclui uma injeção de dependência e runtime de programação orientado para o aspeto que não utiliza reflexão. Isso facilita a execução de aplicações da Micronaut no GraalVM.