Kódelemzés
Belső architekturájuknak a felrajzolása
Jetty architektúra
Az architektúra elemei és kapcsolódásuk:
Internet: A külső világot reprezentálja, amelyen keresztül a klienskérések érkeznek.
HTTP/1.1 Connector: Egy kapcsolódási pont, amely a HTTP/1.1 protokollt kezeli. A felhasználói kéréseket fogadja be az internetről.
HTTP/2 Connector: Egy modern, hatékonyabb kapcsolódási pont, amely a HTTP/2 protokollt kezeli, támogatva a multiplexálást és gyorsabb adatátvitelt.
Jetty Server: A központi szerver komponens, amely feldolgozza a beérkező HTTP kéréseket, továbbítja azokat a belső komponenseknek, és előállítja a válaszokat.
WebApp Store: Az alkalmazásokhoz tartozó erőforrásokat, fájlokat tároló komponens, amelyből a Jetty szükség esetén betöltheti az alkalmazás elemeit.
WebApp Catalog: Az elérhető alkalmazások vagy modulok katalógusa, amely segíti a Jetty szervert az alkalmazások kezelésében.
Kapcsolatok:
Az Internet kapcsolatot létesít a HTTP/1.1 és HTTP/2 Connectorokkal, amelyek a különböző protokollok szerint fogadják a kéréseket.
Mindkét Connector továbbítja a beérkező kéréseket a Jetty Server-hez.
A Jetty Server a kérések feldolgozása során a WebApp Store és WebApp Catalog komponenseket használja az alkalmazás elemeinek kiszolgálásához.
GlassFish architektúra
Az architektúra elemei és kapcsolódásuk:
Internet: A kliens oldali kérések forrása.
HTTP Connector (Grizzly): A GlassFish által használt HTTP-kapcsolódási pont, amely fogadja az internet felől érkező kéréseket.
GlassFish Server: A fő szerver komponens, amely három fő alrendszerből áll:
Web Container (Servlets, JSP): Kezeli a webkomponenseket, például servlet-eket és JSP-ket.
EJB Container (Enterprise Beans): Kezeli az üzleti logikát tartalmazó Enterprise Java Beans komponenseket.
Java EE Services (JTA, JMS, JPA, stb.): Szolgáltatásokat biztosít, mint tranzakciókezelés, üzenetküldés, perzisztencia.
Database: Az adatbázis, amelyhez a Java EE szolgáltatások kapcsolódnak.
External Services: Külső rendszerek vagy szolgáltatások, amelyek integrálhatók a GlassFish környezetbe.
Kapcsolatok:
Az Internet kapcsolatot létesít a HTTP Connectorral.
A HTTP Connector továbbítja a kéréseket a Web Containernek.
A Web Container továbbítja a kéréseket az EJB Containernek.
Az EJB Container hívja a Java EE Services komponenseket, amelyek kapcsolatban állnak az adatbázissal és külső szolgáltatásokkal.
Tomcat architektúrája
Az architektúra elemei és kapcsolódásuk:
Internet: A külső klienskérések forrása.
HTTP Connector (Coyote): Tomcat HTTP kapcsolatkezelő komponense, amely fogadja a bejövő kéréseket.
Tomcat Server: A fő szerver komponens, amely a következő alrendszerekből áll:
Engine: A legfelső szintű komponens, amely a kérések feldolgozását irányítja.
Host: Egy konkrét virtuális hoszt, amely több kontextust (alkalmazást) tartalmaz.
Context: Egy adott webalkalmazás egysége.
Servlet Container: Kezeli a servlet-eket, amelyek feldolgozzák a HTTP kéréseket.
JSP Engine (Jasper): A JSP-ket feldolgozó komponens.
Kapcsolatok:
Az Internet kapcsolatot létesít a Coyote Connectorral.
A Coyote Connector továbbítja a kéréseket az Engine komponensnek.
Az Engine irányítja a kéréseket a Host, majd a Context komponens felé.
A Context a kéréseket kiszolgálja a Servlet Container vagy JSP Engine segítségével.
Geronimo architektúrája
Az architektúra elemei és kapcsolódásuk:
Internet: Klienskérések forrása.
HTTP Connector: A Geronimo szerver HTTP-kapcsolati pontja.
Geronimo Server: Szerverkomponens, mely az alábbiakat tartalmazza:
Web Container (Servlets, JSP): Kezeli a webes komponenseket.
EJB Container (Enterprise Beans): Kezeli az üzleti logikát tartalmazó Enterprise Beans komponenseket.
Java EE Services (JTA, JMS, JPA, stb.): Szolgáltatásokat nyújt.
Database: Az adatbázis backend.
Kapcsolatok:
Az Internet kapcsolatot létesít a HTTP Connectorral.
A Connector továbbítja a kéréseket a Web Containernek.
A Web Container kommunikál az EJB Containerrel, amely a Java EE szolgáltatásokat használja.
A Java EE szolgáltatások kapcsolatban állnak az adatbázissal.
WildFly (JBoss EAP) architektúrája
Az architektúra elemei és kapcsolódásuk:
Internet: Klienskérések forrása.
HTTP Connector (Undertow): WildFly által használt HTTP kapcsolatkezelő.
WildFly Server: Fő szerver komponens, mely a következő alrendszereket tartalmazza:
Management Console / CLI: Adminisztrációs felület és parancssoros kliens.
Web Subsystem (Servlets, JSP): Webalkalmazások kiszolgálása.
EJB Container: Enterprise Beans kezelés.
Messaging Subsystem (JMS): Üzenetküldési szolgáltatások.
Database: Adatbázis backend.
Kapcsolatok:
Az Internet a Connectoron keresztül kapcsolódik a Web Subsystemhez, EJB Containerhez és Messaginghez.
Mindhárom komponens kapcsolódik az adatbázishoz.
A Management Console/CLI kapcsolatban áll a Web Subsystemmel és az EJB Containerral az adminisztráció során.
Oracle WebLogic architektúrája
Az architektúra elemei és kapcsolódásuk:
Internet: Klienskérések forrása.
HTTP Channel: WebLogic HTTP kapcsolatpontja.
WebLogic Server: Szerverkomponens, amely tartalmazza:
Web Container (Servlets, JSP): Webkomponensek kezelése.
Application Runtime (EJB, JMS, JPA): Alkalmazásfutási környezet.
Security & Transactions: Biztonsági és tranzakciókezelési komponens.
Admin Server: Adminisztrációs komponens.
Database: Adatbázis backend.
Kapcsolatok:
Az Internet a HTTP Channelon keresztül érkezik.
A HTTP Channel továbbítja a kéréseket a Web Containernek.
A Web Container kommunikál az Application Runtime komponenssel.
Az Application Runtime kapcsolódik a Security & Transactions komponenshez.
Ez utóbbi kapcsolatban áll az adatbázissal.
Az Admin Server az adminisztráció során kapcsolódik a Web Containerhez és az Application Runtime-hoz.
IBM WebSphere architektúrája
Az architektúra elemei és kapcsolódásuk:
Internet: Külső kérések forrása.
HTTP Endpoint: WebSphere HTTP kapcsolatkezelő komponense.
WebSphere Server: Szerverkomponens, amely a következő részekből áll:
Web Container (Servlets, JSP, JSF): Webkomponensek kezelése.
Business Logic (EJB, CDI): Üzleti logika kezelése.
Integration Services (JMS, JPA, JTA): Integrációs szolgáltatások.
Admin Console: Adminisztrációs felület.
Database: Adatbázis backend.
Kapcsolatok:
Az Internet a HTTP Endpointon keresztül érkezik.
A HTTP Endpoint továbbítja a kéréseket a Web Containernek.
A Web Container továbbítja azokat az üzleti logikát kezelő komponensnek.
Az üzleti logika kapcsolatban áll az integrációs szolgáltatásokkal.
Az integrációs szolgáltatások kapcsolódnak az adatbázishoz.
Az Admin Console kapcsolódik a Web Containerhez és az üzleti logikához.
Konfigurációs lehetőségek (pl.: limitek, cache méretek)
Eclipse Jetty
Jetty konfigurációját XML fájlokon keresztül vagy programozott módon is meg lehet adni. A fő konfigurációs fájl a jetty.xml.
Főbb konfigurációs lehetőségek:
Thread pool: maxThreads, minThreads, idleTimeout
Request buffer size, response buffer size
Session cache és timeout
Példa:
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Set name="ThreadPool">
<New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
<Set name="minThreads">10</Set>
<Set name="maxThreads">200</Set>
<Set name="idleTimeout">60000</Set>
</New>
</Set>
</Configure>
GlassFish
GlassFish esetén a konfiguráció az admin konzolon keresztül vagy az domain.xml fájlban történik.
Főbb konfigurációk:
Thread pool limit: max-thread-pool-size, min-thread-pool-size
HTTP listener tuning
JVM memória beállítások
Cache méretek (pl. EJB, JMS, Web)
Példa (domain.xml):
<thread-pool name="http-thread-pool" max-thread-pool-size="200" min-thread-pool-size="10"/>
Apache Tomcat
Tomcat konfigurációja főként a server.xml és web.xml fájlokban történik.
Főbb beállítások:
Connector szálkezelés: maxThreads, minSpareThreads
Session timeout és cache
JVM heap, PermGen, metaspace méretek
Példa (server.xml):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="150"
minSpareThreads="25" />
Apache Geronimo
Geronimo konfigurációja XML fájlokon keresztül (pl. config.xml) és admin konzolon keresztül végezhető.
Főbb beállítások:
Thread pool és queue limitek
Caching beállítások (GBeans)
Web konténer tuning
Példa (részlet):
<gbean name="ThreadPool">
<attribute name="coreThreads">10</attribute>
<attribute name="maxThreads">200</attribute>
</gbean>
Red Hat JBoss / WildFly
WildFly (korábban JBoss AS) konfigurációja a standalone.xml vagy domain.xml fájlban történik.
Főbb konfigurációk:
Thread pool: max-threads, core-threads
Connection pool méretek
JVM heap és GC beállítások
Web és EJB cache
Példa:
<subsystem xmlns="urn:jboss:domain:threads:1.1">
<thread-pool name="default">
<max-threads count="200"/>
<core-threads count="20"/>
</thread-pool>
</subsystem>
Oracle WebLogic
WebLogic Server beállításai a WebLogic Console-on vagy config.xml fájlban történnek.
Főbb konfigurációk:
Execute thread count
Work Manager beállítások
Cache tuning (Web, EJB)
Connection pool size
IBM WebSphere
WebSphere esetén a konfiguráció elsősorban az adminisztrációs konzolon (Admin Console) keresztül történik, de lehetőség van szkriptelésre is (wsadmin).
Főbb konfigurációk:
Thread pool méretek (WebContainer, ORB, JMS, stb.)
Cache méretek (Web, dynacache)
Session és connection pool beállítások
Naplózás
Eclipse Jetty
Jetty a Java util logging (JUL) rendszert, vagy külső SLF4J/Logback könyvtárakat támogat.
Főbb jellemzők:
start.ini vagy jetty-logging.properties fájlban konfigurálható
Támogatja a Slf4jBridgeHandler használatát is
Példa:
org.eclipse.jetty.LEVEL=INFO
org.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
GlassFish
GlassFish a Java Logging (JUL) rendszert használja, amit a logging.properties fájl szabályoz.
Konfiguráció:
domain-dir/config/logging.properties
Admin Console-ból is módosítható
Logfájlok: server.log, error.log
Példa:
com.sun.enterprise.server.logging.GFFileHandler.level=FINE
java.util.logging.ConsoleHandler.level=WARNING
Apache Tomcat
Tomcat a JUL-t és a org.apache.juli kiterjesztést használja.
Konfiguráció:
logging.properties a conf/ mappában
Alternatíva: SLF4J + Logback
Példa:
1catalina.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
java.util.logging.ConsoleHandler.level = INFO
Apache Geronimo
Geronimo az Apache Commons Logging-et (JCL) használja SLF4J vagy Log4j hátérrel.
Beállítás:
var/log/server.log
Konfigurációs fájl: log4j.xml vagy log4j.properties
Red Hat JBoss / WildFly
WildFly egy saját fejlesztésű loggolási alrendszert használ, amely SLF4J, Log4j és JUL átjárókat is tartalmaz.
Konfiguráció:
standalone.xml vagy CLI (Command Line Interface)
Több handler, filter, formatter állítható be
Oracle WebLogic
WebLogic a saját WebLogic Logging Services rendszert használja, de kompatibilis a Java Logging API-val.
Naplók:
AdminServer.log, ManagedServer.log, domain.log
Beállítások:
WebLogic Console → Servers → Logging
Támogatja: stdout, rotating file, SNMP forwarding
IBM WebSphere
WebSphere a High Performance Extensible Logging (HPEL) rendszert használja.
Főbb naplók:
SystemOut.log, SystemErr.log
HPEL vagy klasszikus mód (váltható)
Konfiguráció:
Admin Console → Troubleshooting → Logs and trace
CLI (wsadmin) is használható