Zaczynam patrzeć na Enterprise Java, a książka, którą obserwuję, wspomina, że będzie korzystać z JBoss. Netbeans jest dostarczany z Glassfish. W przeszłości korzystałem z Tomcat.
Jakie są różnice między tymi trzema programami?
Zaczynam patrzeć na Enterprise Java, a książka, którą obserwuję, wspomina, że będzie korzystać z JBoss. Netbeans jest dostarczany z Glassfish. W przeszłości korzystałem z Tomcat.
Jakie są różnice między tymi trzema programami?
Odpowiedzi:
Tomcat to tylko kontener serwletów, tzn. Implementuje tylko serwlety i specyfikację JSP. Glassfish i JBoss są pełnymi serwerami Java EE (w tym takimi jak EJB, JMS, ...), przy czym Glassfish jest referencyjną implementacją najnowszego stosu Java EE 6, ale JBoss w 2010 roku jeszcze go nie wspierał.
Tomcat to tylko serwer HTTP i kontener serwletów Java. JBoss i GlassFish to pełnowymiarowe serwery aplikacji Java EE, w tym kontener EJB i wszystkie inne funkcje tego stosu. Z drugiej strony Tomcat ma mniejszy rozmiar pamięci (~ 60-70 MB), podczas gdy te serwery Java EE ważą setki megabajtów. Tomcat jest bardzo popularny w prostych aplikacjach internetowych lub aplikacjach wykorzystujących frameworki takie jak Spring, które nie wymagają pełnego serwera Java EE. Administrowanie serwerem Tomcat jest prawdopodobnie łatwiejsze, ponieważ jest mniej części ruchomych.
Jednak w przypadku aplikacji wymagających pełnego stosu Java EE (lub co najmniej większej liczby elementów, które można łatwo przykręcić do Tomcat) ... JBoss i GlassFish to dwie najpopularniejsze oferty open source (trzecia to Apache Geronimo , na którym zbudowana jest darmowa wersja IBM WebSphere). JBoss ma większą i głębszą społeczność użytkowników oraz bardziej dojrzałą bazę kodową. JBoss pozostaje jednak znacznie w tyle za GlassFish we wdrażaniu obecnych specyfikacji Java EE. Również dla tych, którzy wolą system administracyjny oparty na graficznym interfejsie użytkownika ... Konsola administracyjna GlassFish jest wyjątkowo sprytna, podczas gdy większość administracji w JBoss odbywa się za pomocą wiersza poleceń i edytora tekstu. GlassFish pochodzi prosto z Sun / Oracle, ze wszystkimi zaletami, jakie może zaoferować. JBoss NIE jest pod kontrolą Sun / Oracle, ze wszystkimi zaletami, jakie może zaoferować.
Powinieneś używać GlassFish dla aplikacji korporacyjnych Java EE . Kilka rzeczy do rozważenia:
A Web Server środki: wnioski obchodzenia HTTP (zwykle z przeglądarek).
Serwletów Pojemnik (np Tomcat ) oznacza: można obsługiwać serwletów i JSP.
Application Server (np GlassFish ) oznacza: * To może zarządzać aplikacjami Java EE (zwykle zarówno servlet / JSP i EJB).
Tomcat - jest zarządzany przez społeczność Apache - Open source i ma dwa smaki:
Brak dostępnego wsparcia komercyjnego (tylko wsparcie społeczności)
JBoss - uruchamiany przez RedHat Jest to obsługa pełnego stosu dla JavaEE i jest to certyfikowany kontener Java EE. Obejmuje to Tomcat jako wewnętrzny pojemnik internetowy. Ma to również dwa smaki:
Glassfish - prowadzony przez Oracle Jest to również pełny stos Java EE Container. Ma własny kontener internetowy (nie Tomcat). Pochodzi od samej Oracle, więc wszystkie nowe specyfikacje zostaną najpierw przetestowane i zaimplementowane w Glassfish. Więc zawsze będzie obsługiwał najnowszą specyfikację. Nie znam modeli wsparcia.
jboss i glassfish zawierają kontener serwletu (jak tomcat), jednak dwa serwery aplikacji (jboss i glassfish) również zapewniają pojemnik na fasolę (i kilka innych rzeczy, jak mi się wydaje)
JBoss i Glassfish są zasadniczo pełnym serwerem aplikacji Java EE, podczas gdy Tomcat jest tylko kontenerem serwletu. Główną różnicą między JBoss, Glassfish, ale także WebSphere, WebLogic i tak dalej w odniesieniu do Tomcat, ale także Jetty, była funkcjonalność oferowana przez pełny serwer aplikacji. Gdy masz serwer aplikacji Java EE z pełnym stosem, możesz skorzystać z całej implementacji wybranego przez siebie dostawcy, a także z EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet, oczywiście i tak dalej. Z drugiej strony Tomcat możesz korzystać tylko z JSP / Servlet. Jednak w dzisiejszych czasach w zaawansowanym frameworku, takim jak Spring i Guice, wiele głównych zalet korzystania z serwera aplikacji z pełnym stosem można złagodzić, a przy założeniu, że jeden z tych frameworków jest oparty wyłącznie na Spring Ecosystem,
Korzystanie z Tomcat podczas czytania tych odpowiedzi wydaje się nieco zniechęcające. Jednak najbardziej nie wspomina się o tym, że można uzyskać identyczne lub prawie identyczne przypadki użycia z tomcat, ale wymaga to dodania potrzebnych bibliotek (za pośrednictwem Maven lub dowolnego systemu, z którego korzystasz).
Uruchomiłem tomcat z JPA, EJB przy bardzo małych nakładach konfiguracyjnych.
Zarówno JBoss, jak i Tomcat są serwerami aplikacji serwletów Java, ale JBoss to o wiele więcej. Zasadnicza różnica między nimi polega na tym, że JBoss zapewnia pełny stos Java Enterprise Edition (Java EE), w tym Enterprise JavaBeans i wiele innych technologii, które są przydatne dla programistów pracujących na korporacyjnych aplikacjach Java.
Tomcat jest znacznie bardziej ograniczony. Jednym ze sposobów myślenia o tym jest to, że JBoss to stos Java EE, który zawiera kontener serwletu i serwer WWW, podczas gdy Tomcat, w przeważającej części, to kontener serwletu i serwer WWW.
Apache tomcat jest tylko kontenerem serwletowym, który nie obsługuje aplikacji Java Enterprise (JEE). JBoss i Glassfish obsługują aplikację JEE, ale Glassfish jest znacznie cięższy niż serwer JBOSS: Slide Slide