Tôi đang bắt đầu xem xét Java doanh nghiệp và cuốn sách tôi đang đề cập rằng nó sẽ sử dụng JBoss. Netbeans tàu với Glassfish. Tôi đã sử dụng Tomcat trong quá khứ.
Sự khác biệt giữa ba chương trình này là gì?
Tôi đang bắt đầu xem xét Java doanh nghiệp và cuốn sách tôi đang đề cập rằng nó sẽ sử dụng JBoss. Netbeans tàu với Glassfish. Tôi đã sử dụng Tomcat trong quá khứ.
Sự khác biệt giữa ba chương trình này là gì?
Câu trả lời:
Tomcat chỉ là một thùng chứa servlet, tức là nó chỉ thực hiện các đặc tả của servlet và JSP. Glassfish và JBoss là các máy chủ Java EE đầy đủ (bao gồm các công cụ như EJB, JMS, ...), với Glassfish là triển khai tham chiếu của ngăn xếp Java EE 6 mới nhất, nhưng JBoss năm 2010 vẫn chưa hỗ trợ đầy đủ.
Tomcat chỉ đơn thuần là một máy chủ HTTP và bộ chứa Java servlet. JBoss và GlassFish là các máy chủ ứng dụng Java EE đầy đủ, bao gồm một bộ chứa EJB và tất cả các tính năng khác của ngăn xếp đó. Mặt khác, Tomcat có dung lượng bộ nhớ nhẹ hơn (~ 60-70 MB), trong khi các máy chủ Java EE có trọng lượng hàng trăm megs. Tomcat rất phổ biến cho các ứng dụng web đơn giản hoặc các ứng dụng sử dụng các khung như Spring không yêu cầu máy chủ Java EE đầy đủ. Quản trị một máy chủ Tomcat được cho là dễ dàng hơn, vì có ít bộ phận chuyển động hơn.
Tuy nhiên, đối với các ứng dụng yêu cầu ngăn xếp Java EE đầy đủ (hoặc ít nhất là nhiều phần có thể dễ dàng được gắn vào Tomcat) ... JBoss và GlassFish là hai trong số các dịch vụ nguồn mở phổ biến nhất (thứ ba là Apache Geronimo , trên đó phiên bản miễn phí của IBM WebSphere được xây dựng). JBoss có một cộng đồng người dùng lớn hơn và sâu hơn và một cơ sở mã hóa trưởng thành hơn. Tuy nhiên, JBoss tụt hậu đáng kể so với GlassFish trong việc triển khai các thông số kỹ thuật Java EE hiện tại. Ngoài ra, đối với những người thích hệ thống quản trị dựa trên GUI ... Bảng điều khiển quản trị của GlassFish cực kỳ trơn tru, trong khi hầu hết việc quản trị trong JBoss được thực hiện với trình soạn thảo dòng lệnh và văn bản. GlassFish đến trực tiếp từ Sun / Oracle, với tất cả những lợi thế có thể mang lại. JBoss KHÔNG chịu sự kiểm soát của Sun / Oracle, với tất cả những lợi thế mà THAT có thể mang lại.
Bạn nên sử dụng GlassFish cho các ứng dụng doanh nghiệp Java EE . Một số điều cần xem xét:
Một web server có nghĩa là: yêu cầu Xử lý HTTP (thường là từ các trình duyệt).
Một Servlet Container (ví dụ Tomcat ) có nghĩa là: Nó có thể xử lý các servlet & JSP.
Một máy chủ ứng dụng (ví dụ GlassFish ) phương tiện: * Nó có thể quản lý các ứng dụng Java EE (thường là cả servlet / JSP và EJB).
Tomcat - được điều hành bởi cộng đồng Apache - Nguồn mở và có hai hương vị:
Không có hỗ trợ thương mại có sẵn (chỉ hỗ trợ cộng đồng)
JBoss - Được điều hành bởi RedHat Đây là một hỗ trợ toàn bộ cho JavaEE và nó là một bộ chứa Java EE được chứng nhận. Điều này bao gồm Tomcat như web container bên trong. Điều này cũng có hai hương vị:
Glassfish - Được điều hành bởi Oracle Đây cũng là một Java EE Container được chứng nhận đầy đủ. Điều này có bộ chứa web riêng của nó (không phải Tomcat). Điều này xuất phát từ chính Oracle, vì vậy tất cả các thông số kỹ thuật mới sẽ được thử nghiệm và triển khai với Glassfish trước tiên. Vì vậy, luôn luôn nó sẽ hỗ trợ các thông số kỹ thuật mới nhất. Tôi không biết các mô hình hỗ trợ của nó.
jboss và cá thủy tinh bao gồm một thùng chứa servlet (như tomcat), tuy nhiên hai máy chủ ứng dụng (jboss và thủy tinh) cũng cung cấp một thùng chứa đậu (và một vài thứ khác mà tôi tưởng tượng)
JBoss và Glassfish về cơ bản là Máy chủ ứng dụng Java EE đầy đủ trong khi Tomcat chỉ là một thùng chứa Servlet. Sự khác biệt chính giữa JBoss, Glassfish mà còn cả WebSphere, WebLogic và đối với Tomcat mà cả Jetty, là ở chức năng mà một máy chủ ứng dụng đầy đủ cung cấp. Khi bạn có một máy chủ ứng dụng Java EE ngăn xếp đầy đủ, bạn có thể hưởng lợi từ tất cả việc triển khai nhà cung cấp mà bạn chọn và tất nhiên bạn có thể hưởng lợi từ EJB, JTA, CDI (JAVA EE 6+), JPA, JSF, JSP / Servlet và như thế. Mặt khác, với Tomcat, bạn chỉ có thể hưởng lợi từ JSP / Servlet. Tuy nhiên, cho đến nay với Khung nâng cao như Spring và Guice, nhiều lợi thế chính của việc sử dụng máy chủ ứng dụng ngăn xếp đầy đủ có thể được giảm thiểu và với giả định về một trong khung này một cách nam tính với Hệ sinh thái mùa xuân,
Có vẻ hơi nản khi sử dụng Tomcat khi bạn đọc những câu trả lời này. Tuy nhiên, điều mà hầu hết không đề cập đến là bạn có thể sử dụng các trường hợp sử dụng giống hệt hoặc gần như giống hệt với tomcat nhưng điều đó đòi hỏi bạn phải thêm các thư viện cần thiết (thông qua Maven hoặc bất kỳ hệ thống nào bạn sử dụng).
Tôi đã chạy tomcat với JPA, EJB với những nỗ lực cấu hình rất nhỏ.
Cả JBoss và Tomcat đều là các máy chủ ứng dụng Java, nhưng JBoss còn nhiều hơn thế. Sự khác biệt đáng kể giữa hai loại này là JBoss cung cấp một ngăn xếp Java Enterprise Edition (Java EE) đầy đủ, bao gồm Enterprise JavaBeans và nhiều công nghệ khác hữu ích cho các nhà phát triển làm việc trên các ứng dụng Java doanh nghiệp.
Tomcat hạn chế hơn nhiều. Một cách để nghĩ về điều đó là JBoss là một ngăn xếp Java EE bao gồm một thùng chứa servlet và máy chủ web, trong khi phần lớn Tomcat là một thùng chứa servlet và máy chủ web.
Apache tomcat chỉ là một thùng chứa serverlet duy nhất mà nó không hỗ trợ cho ứng dụng Java doanh nghiệp (JEE). JBoss và Glassfish đang hỗ trợ cho ứng dụng JEE nhưng Glassfish nặng hơn nhiều so với máy chủ JBOSS: Slide Slide