Sto cercando di capire la differenza tra un server di applicazioni completo (ad esempio Weblogic, JBoss ecc.) E un contenitore servlet (Tomcat, Jetty ecc.).
In cosa differiscono e quando usare quale?
Grazie,
Sto cercando di capire la differenza tra un server di applicazioni completo (ad esempio Weblogic, JBoss ecc.) E un contenitore servlet (Tomcat, Jetty ecc.).
In cosa differiscono e quando usare quale?
Grazie,
Risposte:
Un servlet-container supporta solo l'API servlet (inclusi JSP, JSTL).
Un server delle applicazioni supporta l'intero JavaEE: EJB, JMS, CDI, JTA, l'API servlet (inclusi JSP, JSTL), ecc.
È possibile eseguire la maggior parte delle tecnologie JavaEE su un servlet-container, ma è necessario installare un'implementazione autonoma della particolare tecnologia.
In generale, un contenitore servlet si limita più o meno all'implementazione della specifica J2EE Servlet. Inoltre, si concentra sull'ambiente di runtime e non tanto sulla fornitura di strumenti aggiuntivi.
Al contrario, un application server completo implementa l'intero stack J2EE; inoltre viene fornito con tutti gli strumenti aziendali e le possibilità di integrazione. Un server delle applicazioni di solito ha interfacce di amministrazione avanzate, supporta il clustering e altre funzionalità utilizzate principalmente nello sviluppo di sistemi di fascia alta.
Per un principiante, probabilmente è meglio rimanere con un semplice contenitore servlet, poiché la curva di apprendimento è molto meno ripida.
modificare
@Apache Fan: Dipende dalle specifiche della tua situazione come i sistemi esistenti e i piani futuri tra le altre cose. Non penso che un approccio generico a un diagramma di flusso sia applicabile qui.
La selezione della piattaforma viene solitamente effettuata valutando requisiti specifici rispetto alla conoscenza diretta dei sistemi in esame.
Tuttavia la domanda non fornisce indizi su quali siano i criteri di valutazione. Dovrebbe essere open source? È necessario il supporto del fornitore 24 ore su 24? Con che tipo di ambiente aziendale dovrebbe integrarsi il sistema? I costi di licenza sono un problema? Qualche tecnologia o strumento indispensabile? Eccetera.
Senza sapere quanto sopra, si sta praticamente sparando al buio.
Fondamentalmente un server delle applicazioni nel contesto Java EE è un software installato su un server e che implementa una specifica Java EE (Java EE 7 per esempio). Ciò significa che tale software (server delle applicazioni) deve essere in grado di eseguire l'applicazione Java EE.
Java EE definisce 4 domini, i cosiddetti container :
Due contenitori fanno parte del server delle applicazioni (EJB e contenitore Web) e altri due fanno parte del computer client.
JBoss e Weblogic sono server di applicazioni, Tomcat e Jetty sono contenitori web. Ecco perché JBoss e Weblogic possono gestire più tecnologie di un contenitore Web. Il server delle applicazioni può gestire EJB.
Il contenitore servlet non è l'espressione appropriata per Tomcat e Jetty qualificati perché è più restrittivo. Tomcat può anche eseguire JSP e JSF, non solo servlet.
afaik, websphere e jboss sono j2ee-server completamente conformi che possono essere eseguiti oltre i servlet, come EJB, mentre Tomcat è solo un contenitore di servlet e non è possibile eseguire EJB su di esso.
In termini Layman: un server web significa: gestire le richieste HTTP (di solito dai browser).
Un Servlet Container (es.Tomcat) significa: Può gestire servlet e JSP.
Un Application Server (es. GlassFish) significa: * Può gestire applicazioni Java EE (solitamente sia servlet / JSP che EJB).
Per un principiante, probabilmente è meglio rimanere con un semplice contenitore servlet.