Java-tekniker

Slutförd

I den här lektionen diskuterar vi skillnaderna mellan olika typer av ramverk, servrar och plattformar för Java.

Spring Framework

Spring-ramverket är ett programramverk och en IOC-container (Inversion of Control). Spring har historiskt sett använts för att komplettera EJB-modellen (Enterprise JavaBeans). De viktigaste funktionerna är:

  • Beroendeinmatning
  • Aspektorienterad programmering
  • Affärsabstraktion

Spring Boot

Spring Boot körs ovanpå Spring Framework och har en styrd autokonfiguration. Spring Boot-appar körs fristående och passar perfekt för mikrotjänster.

Spring Data

Spring Data förenklar dataåtkomsten för relationsdatabaser och icke-relationsdatabaser, MapReduce-ramverk och molnbaserade datatjänster.

Spring-säkerhet

Spring Security är de facto-standarden för att skydda Spring-baserade program. Den ger en hög nivå för både autentisering och åtkomstkontroll. Till exempel integreras Spring-säkerheten på ett bra sätt med Active Directory.

Azure Spring Cloud

Spring Cloud används för distribuerade system. Spring Cloud har funktioner som tjänsteidentifiering, konfigurationshantering, övervakning och en intuitiv utvecklarmiljö.

Spring Batch

Spring Batch är ett enkelt ramverk för robusta batchprogram som är viktiga i den dagliga driften.

MicroProfile och Jakarta EE

MicroProfile och Jakarta EE (Jakarta Enterprise Edition) kan ses som en uppföljare till Java EE-specifikationerna med öppen källkod.

MicroProfile är en uppsättning specifikationer för mikrotjänstarkitekturer. De kallar sig för ett öppet forum där Enterprise Java optimeras för en mikrotjänstarkitektur. Målet med MicroProfile är att förnya över flera implementeringar och att samarbeta inom gemensamma intresseområden.

Jakarta EE är en uppsättning specifikationer för att skapa företagsprogram. Den modulära strukturen gör att utvecklare kan skapa effektiva programvarulösningar. Du kan paketera Jakarta EE-program som antingen EAR-filer eller WAR-filer.

WebProfile är en delmängd av Jakarta EE för serverdelstjänster med webbfokus, men oroa dig inte! Du kan lägga till specifika API:er för företagsplattformen ovanpå den.

Programservrar

Java EE-program måste distribueras till Java EE-kompatibla programservrar (WebLogic, WebSphere, WildFly, GlassFish, Payara m.fl.).

  • Apache Tomcat är en HTTP-server och en Java Servlet-container. Den implementerar specifikationerna för Servlet, Java Server Pages (JSP), Java Expression Language och Java WebSocket.

  • Oracle WebLogic Server är en enhetlig och utökningsbar plattform för utveckling, distribution och körning av företagsprogram. WebLogic Server ger en robust och väletablerad implementering av Java EE och Jakarta EE.

  • Red Hat JBoss Enterprise Application Platform ger säkerhet och prestanda i företagsklass för både lokala och virtuella implementeringar, eller i privata och offentliga moln samt hybridmoln.

  • WildFly är den överordnade miljön med öppen källkod för JBoss EAP. Den här communitybaserade varianten passar utmärkt för utveckling och testning.

  • IBM WebSphere Application Server (WAS) är en flexibel Java Server-miljö för företagsappar med avancerade säkerhetsfunktioner. Här ligger fokus på hög tillförlitlighet. Den har stöd för mikrotjänster och standardbaserade programmeringsmodeller. Du kan modernisera i din egen takt, få bättre insyn i arbetsbelastningar, analysera företagsappar och fortsätta resan mot Kubernetes.

  • Open Liberty är communityversionen av WAS med öppen källkod.

  • Oracle GlassFish är referensimplementeringen av många Java EE-webbstandarder (inklusive Servlet och JSP).

Andra ramverk för mikrotjänstarkitekturer

  • Netty är ett klient-/serverramverk som inte blockerar I/O (NIO). Det ger snabb och enkel utveckling av nätverksprogram som protokollservrar och klienter. Det förenklar och effektiviserar nätverksprogrammering, till exempel TCP- och UDP-socketservrar. Netty är ett asynkront och händelsestyrt ramverk för nätverksprogram som ger snabb utveckling av protokollservrar och klienter med höga prestanda som kan underhållas.

  • Quarkus är en Kubernetes-baserad Java-stack som är anpassad för OpenJDK HotSpot och GraalVM. Quarkus får mer och mer fart. Det finns förresten fler ramverk som det här med prestandafokus, som Vert.x, Helidon, Payara Micro och KumuluzEE.

  • Micronaut är ett modernt, JVM-baserat och komplett ramverk för att skapa modulära mikrotjänster och serverlösa appar som är enkla att testa. Micronaut har stöd för beroendeinmatning och aspektorienterad programmering utan reflektion. Det gör det enklare att köra Micronaut-appar i GraalVM.