Một máy chủ web (web server) bao gồm tổng thể nhiều thành phần, dựa vào đó các ứng dụng web (web application) chạy. Ở đây ta giới hạn chỉ nói đến máy chủ web dành cho ứng dụng web dùng Java. Những thành phần của máy chủ web này có thể bao gồm :
- máy chủ HTTP (HTTP server)
- bộ chứa Servlet/JSP (Servlet/JSP container)
- gói hiện dựng JSF (bundled JSF implementation)
- máy chủ EJB (EJB server)
- bộ chứa EJB (EJB container)
- Các dịch vụ Java EE (JNDI Resources, JDBC DataSources, JMS, Web Services JAX-RS hay JAX-WS, JPA, JAAS ...)
- Các dịch vụ khác (SSI, SSL, Security Manager, ...)
- ...
* Máy chủ Apache HTTP (Apache HTTP server - httpd) hay gọi tắt là Apache : Máy chủ web (web server)
Apache không chỉ là máy chủ HTTP/1.1, nó còn hỗ trợ nhiều dịch vụ web khác thông qua các mô-đun (module), chẳng hạn :
- Hỗ trợ chức năng thông dịch các ngôn ngữ như Perl, PHP, Python, Rugby thông qua CGI (Common Gateway Interface). Máy chủ http uỷ nhiệm (delegate) cho phương thức này thông dịch các chương trình CGI và trả về kết quả dưới hình thức html. Các module liên quan : mod_alias, mod_cgi, mod_fcgid (FastCGI thường dùng cho PHP), mod_wsgi (WSGI - Web Server Gateway Interface thường dùng cho Python)
- Apache không hỗ trợ Java, Java Servlet, JSP (Java Server Pages), JSF (Java Server Faces), EJB (Enterprise Java Beans)
-...
* Apache Tomcat : Bộ chứa Servlet/JSP (Servlet/JSP container)
Tomcat bao gồm nhiều thành phần, trong đó đáng chú ý là các phần sau :
- Catalina : là bộ chứa servlet của Tomcat. Nó là một hiện dựng (implementation) tuân thủ đặc tả của Java Servlet.
- Coyote : là trình kết nối (connector) hỗ trợ giao thức HTTP/1.1, nó điều khiển (handle) các giao tiếp dùng giao thức HTTP với khách. Ngoài việc cho phép thực thi Servlet và các trang JSP, nó còn cho phép Catalina hoạt động như một máy chủ web độc lập (stand-alone web server).
- Jasper : là một máy JSP (JSP engine). Nó hiện dựng (implement) đặc tả của JavaServer Pages. Jasper phân tích cú pháp (parse) của tập tin JSP rồi phát sinh (generate) tập này thành servlet tương ứng trong mã Java. Sau đó servlet phát sinh này sẽ được chuyển cho Catalina xử lý (handle).
Được xem là bộ chứa Servlet/JSP, tuy có thể được sử dụng độc lập như một máy chủ web, Tomcat thường được dùng kết hợp với các máy chủ web khác như Apache HTTP. Ngoài ra nó còn được dùng nhúng (embed) trong các máy chủ web như một thành phần của máy này, chẳng hạn trong JBoss AS, Apache Geronimo, WebSphere, TomEE... Trong trường hợp này, máy chủ web quản lý những trang web truyền thống (.html, .php chẳng hạn) và nó uỷ nhiệm (delegate) cho Tomcat quản lý các ứng dụng web Java (servlet, JSP ...).
* Jetty : Máy chủ web bao gồm máy chủ HTTP và bộ chứa Servlet
Jetty, hiện do Eclipse Foundation phát triển, có thể được dùng như máy chủ web độc lập hay nhúng vào trong các máy chủ web khác như Apache Geronimo.
* Apache OpenEJB : Hệ bộ chứa EJB và máy chủ EJB (EJB container system and EJB server)
OpenEJB là một hiện dựng của đặc tả EJB (Enterprise JavaBeans). Nó hỗ trợ nhiều thành phần trong đó có:
- EJB
- JAX-RS (RESTful Web Services)
- JAX-WS (XML Web Services)
- JPA (Java Persistence API)
OpenEJB có thể được dùng như máy chủ EJB độc lập hoặc dùng kết hợp với máy chủ web khác, chẳng hạn dùng để cung cấp thêm khả năng EJB cho Tomcat. Nó được dùng nhúng trong các máy chủ ứng dụng như Geronimo, TomEE.
* Apache Geronimo : Máy chủ ứng dụng (application server)
Apache Geronimo bao gồm nhiều thành phần trong đó có :
- Apache Tomcat hoặc Jetty
- Apache OpenEJB
- Apache OpenJPA : là một hiện dựng của JPA (Java Persistence API), trong đặc tả Enteprise Java Beans, chỉ rõ việc tồn trữ (persistence) các đối tượng Java (Java object).
-....
WebSphere được xây dựng trên nền Apache Geronimo.
* Apache TomEE : Máy chủ ứng dụng (application server)
Apache TomEE gồm nhiều thành phần, trong đó có :
- Apache Tomcat : hỗ trợ Servlet, JSP, JSTL
- Apache OpenEJB : hỗ trợ EJB
- Apache OpenJPA : hỗ trơ JPA
- Apache MyFaces : cung cấp một hiện dựng JSF (JavaServer Faces)
TomEE+ gồm TomEE và có hỗ trợ thêm : Apache CXF để cung cấp JAX-RS, JAX-WS...
* Glassfish : Máy chủ ứng dụng (application server)
Glassfish gồm nhiều thành phần, trong đó có :
- Glizzly : bộ khung web (Web Framework) hỗ trợ nhiều thành phần trong đó có giao thức HTTP/S, Servlet
- Mojarra : là một hiện dựng tham chiếu của JSF.
- TopLink Essentials hoặc EclipseLink : là một hiện dựng của JPA.
- Jersey : hiển dựng tham chiếu (Reference implementation) cho việc xây dựng JAX-RS.
- Ngoài ra nó còn hỗ trợ nhiều chuẩn khác của Java EE như JPA, EJB, JAX-WS ...
* JBoss AS : Máy chủ ứng dụng (application server)
JBoss AS gồm nhiều thành phần, trong đó có :
- Apache Tomcat hoặc Jetty.
- Mojarra hoặc MyFaces : hỗ trợ JSF
- Hibernate : là một thư viện Ánh xạ Quan hệ - Đối tượng (ORM : Object-Relational Mapping) cho ngôn ngữ Java. Hibernate gợi hứng cho việc phát triển chuẩn JPA 1.0 của chuẩn EJB3.
- RESTEasy là một hiện dựng của JAX-RS
- JBossWS : là một hiện dựng cho JAX-WS
- Ngoài ra nó còn hỗ trợ nhiều chuẩn khác của Java EE như EJB, JMS ...
Trên đây là một số máy chủ web mã nguồn mở hoặc miễn phí. Ngoài ra còn nhiều máy chủ ứng dụng trả phí khác như WebSphere AS của IBM, WebLogic của Oracle, ...
tên miền miễn phí
Trả lờiXóa