Tecnologias Java

Concluído

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.