Java EE - nó là gì?
Java EE là một nền tảng được xây dựng dựa trên Java SE, cung cấp API và môi trường thời gian chạy để phát triển và chạy các ứng dụng mạng quy mô lớn, nhiều tầng, có thể mở rộng, đáng tin cậy và an toàn. Những ứng dụng như vậy được gọi là ứng dụng doanh nghiệp vì chúng giải quyết các vấn đề mà các doanh nghiệp lớn gặp phải. Tuy nhiên, không chỉ các tập đoàn lớn và cơ quan chính phủ mới có thể hưởng lợi từ các loại ứng dụng này và những lợi ích mà Java EE mang lại. Các giải pháp mà nền tảng Java EE cung cấp rất hữu ích và đôi khi đơn giản là cần thiết đối với các nhà phát triển cá nhân và tổ chức nhỏ.Phát triển Java EE
Java EE được phát triển thông qua Quy trình cộng đồng Java (JCP), được hình thành vào năm 1998. Nó cho phép các bên quan tâm tham gia vào việc định hình các phiên bản tương lai của đặc tả nền tảng ngôn ngữ Java. Cơ sở của quy trình này là JSR (Yêu cầu đặc tả Java), các tài liệu chính thức mô tả các đặc tả và công nghệ được đề xuất bổ sung vào nền tảng Java. Những yêu cầu như vậy được thực hiện bởi các thành viên cộng đồng - các nhà phát triển và công ty bình thường. Sau này bao gồm Oracle, Red Hat, IBM, Apache và nhiều hãng khác. Những thứ kia. những người này đề xuất các tính năng và tính năng mới để xem xét mà họ muốn đưa vào Java. Và sau đó họ tổ chức một cuộc bỏ phiếu, trên cơ sở đó đưa ra quyết định về những gì sẽ đưa vào phiên bản tiếp theo. Lịch sử phiên bản Java EE trông như thế này:- J2EE 1.2 (tháng 12 năm 1999)
- J2EE 1.3 (tháng 9 năm 2001)
- J2EE 1.4 (Tháng 11 năm 2003)
- Java EE 5 (tháng 5 năm 2006)
- Java EE 6 (tháng 12 năm 2009)
- Java EE 7 (tháng 5)
- Java EE 8 (tháng 8 năm 2017)
- Jakarta EE 8 (tháng 9 năm 2019)
Kiến trúc ứng dụng Java EE
Giới thiệu ngắn gọn. Để dễ hiểu hơn, chúng ta hãy nói về cấu trúc của ứng dụng Java EE và một số thuật ngữ mà chúng ta sẽ sử dụng sau. Các ứng dụng Java EE có cấu trúc có hai phẩm chất chính:- Thứ nhất, đa cấp. Các ứng dụng Java EE có nhiều tầng và chúng ta sẽ nói về vấn đề này chi tiết hơn;
- thứ hai, làm tổ. Có một máy chủ Java EE (hoặc máy chủ ứng dụng), với các thùng chứa thành phần nằm bên trong nó. Những thùng chứa này chứa các thành phần (bingo!).
Cấp độ ứng dụng
Ứng dụng nhiều tầng là các ứng dụng được phân chia theo nguyên tắc chức năng thành các mô-đun (cấp độ, lớp) biệt lập. Thông thường (bao gồm cả trong bối cảnh phát triển Java EE), các ứng dụng doanh nghiệp được chia thành ba cấp độ:- khách hàng;
- mức trung bình;
- mức truy cập dữ liệu.
-
Lớp máy khách là một ứng dụng yêu cầu dữ liệu từ máy chủ Java EE (lớp giữa). Đến lượt máy chủ sẽ xử lý yêu cầu của khách hàng và trả về phản hồi cho yêu cầu đó. Ứng dụng khách có thể là trình duyệt, ứng dụng độc lập (di động hoặc máy tính để bàn) hoặc các ứng dụng máy chủ khác không có giao diện đồ họa.
-
Cấp độ trung bình lần lượt được chia thành cấp độ web và cấp độ logic nghiệp vụ.
-
Lớp web bao gồm một số thành phần cung cấp sự tương tác giữa máy khách và lớp logic nghiệp vụ.
Các công nghệ Java EE sau đây được sử dụng ở cấp độ web:
- Công nghệ JavaServer Faces (JSF);
- Trang máy chủ Java (JSP);
- Ngôn ngữ biểu thức (EL);
- Servlet;
- Bối cảnh và nội dung phụ thuộc cho Java EE (CDI).
-
Lớp logic nghiệp vụ bao gồm các thành phần thực hiện tất cả logic nghiệp vụ của ứng dụng. Logic nghiệp vụ là mã cung cấp chức năng đáp ứng nhu cầu của một số lĩnh vực kinh doanh cụ thể (ngành tài chính, ngân hàng, thương mại điện tử). Cấp độ này có thể được coi là cốt lõi của toàn bộ hệ thống.
Các công nghệ liên quan ở cấp độ này:
- JavaBean doanh nghiệp (EJB);
- Dịch vụ web JAX-RS RESTful;
- Các thực thể API liên tục của Java;
- Dịch vụ tin nhắn Java.
-
-
Cấp độ truy cập dữ liệu Cấp độ này đôi khi được gọi là cấp độ hệ thống thông tin doanh nghiệp (EIS). EIS bao gồm nhiều máy chủ cơ sở dữ liệu khác nhau, hệ thống hoạch định nguồn lực doanh nghiệp ERP (Lập kế hoạch nguồn lực doanh nghiệp) và các nguồn dữ liệu khác. Lớp logic nghiệp vụ truy cập lớp này để lấy dữ liệu.
Ở cấp độ này, bạn có thể tìm thấy các công nghệ như:
- API kết nối cơ sở dữ liệu Java (JDBC);
- API kiên trì Java;
- Kiến trúc trình kết nối Java EE;
- API giao dịch Java (JTA).
Máy chủ ứng dụng, bộ chứa, thành phần
Chúng ta hãy xem định nghĩa của Java EE từ Wikipedia. Java EE là một tập hợp các thông số kỹ thuật và tài liệu liên quan dành cho ngôn ngữ Java, mô tả kiến trúc của nền tảng máy chủ phục vụ các nhiệm vụ của các doanh nghiệp vừa và lớn. Để hiểu rõ hơn ý nghĩa của “bộ thông số kỹ thuật” trong ngữ cảnh này, hãy vẽ một sự tương tự với giao diện Java. Bản thân giao diện Java không có chức năng. Nó chỉ đơn giản xác định một số hợp đồng theo đó một số chức năng được triển khai. Nhưng các lớp khác thực hiện giao diện. Hơn nữa, một giao diện có thể có nhiều cách triển khai, mỗi giao diện có thể khác nhau ở một số chi tiết. Các đặc điểm kỹ thuật là hoàn toàn giống nhau. Java EE trần trụi chỉ là một tập hợp các thông số kỹ thuật. Các thông số kỹ thuật này được triển khai bởi nhiều máy chủ Java EE khác nhau. Máy chủ Java EE là một ứng dụng máy chủ triển khai các API nền tảng Java EE và cung cấp các dịch vụ Java EE tiêu chuẩn. Máy chủ Java EE đôi khi được gọi là máy chủ ứng dụng. Dữ liệu máy chủ có thể chứa các thành phần ứng dụng, mỗi thành phần tương ứng với cấp độ riêng của nó trong hệ thống phân cấp nhiều cấp. Máy chủ Java EE cung cấp nhiều dịch vụ khác nhau cho các thành phần này dưới dạng một thùng chứa. Bộ chứa là giao diện giữa các thành phần mà chúng lưu trữ và chức năng độc lập với nền tảng cấp thấp hỗ trợ thành phần đó. Các container cung cấp các dịch vụ cụ thể cho các thành phần mà chúng lưu trữ. Ví dụ: quản lý vòng đời phát triển, chèn phụ thuộc, đồng thời, v.v. Các vùng chứa che giấu sự phức tạp về mặt kỹ thuật và tăng tính di động. Có bốn loại vùng chứa khác nhau trong Java EE :-
Các thùng chứa Applet được hầu hết các trình duyệt triển khai. Khi phát triển các applet, bạn có thể tập trung vào khía cạnh trực quan của ứng dụng, trong khi vùng chứa cung cấp một môi trường an toàn.
-
Bộ chứa ứng dụng khách (ACC) chứa một tập hợp các lớp, thư viện Java và các tệp khác cần thiết để triển khai các tính năng như dịch vụ chèn, quản lý bảo mật và đặt tên trong các ứng dụng Java SE.
-
Bộ chứa web cung cấp các dịch vụ cốt lõi để quản lý và thực thi các thành phần web (servlet, thành phần EJB Lite, trang JSP, bộ lọc, trình nghe, trang JSF và dịch vụ web). Nó chịu trách nhiệm khởi tạo, khởi tạo và gọi các servlet cũng như hỗ trợ các giao thức HTTP và HTTPS. Vùng chứa này được sử dụng để phục vụ các trang web cho trình duyệt máy khách.
-
Bộ chứa EJB (Enterprise Java Bean) chịu trách nhiệm quản lý và thực thi các thành phần mô hình EJB chứa lớp logic nghiệp vụ của ứng dụng. Nó tạo ra các thực thể đậu EJB mới, quản lý vòng đời của chúng và cung cấp các dịch vụ như giao dịch, bảo mật, đồng thời, phân phối, đặt tên hoặc khả năng gọi không đồng bộ.
-
Applet là các ứng dụng giao diện đồ họa người dùng (GUI) chạy trên trình duyệt. Họ tận dụng API Swing phong phú để tạo ra giao diện người dùng mạnh mẽ.
-
Ứng dụng là các chương trình chạy ở phía máy khách. Chúng thường là giao diện đồ họa người dùng (GUI) và được sử dụng để xử lý hàng loạt.
-
Các ứng dụng web (bao gồm các servlet và bộ lọc của chúng, trình xử lý sự kiện web, trang JSP và JSF) - chạy trong vùng chứa web và phản hồi các yêu cầu HTTP từ máy khách web. Servlets cũng hỗ trợ các điểm cuối dịch vụ web SOAP và RESTful.
-
Các ứng dụng doanh nghiệp (được xây dựng bằng Đậu Java doanh nghiệp, Dịch vụ tin nhắn Java, API giao dịch Java, Cuộc gọi không đồng bộ, Dịch vụ thời gian) chạy trong vùng chứa EJB. EJB do container quản lý xử lý logic kinh doanh giao dịch. Chúng có thể được truy cập cục bộ hoặc từ xa thông qua RMI (hoặc HTTP cho các dịch vụ web SOAP và RESTful).
Công nghệ
Vì vậy, chúng tôi đã sắp xếp kiến trúc. Cấu trúc tổng thể phải rõ ràng. Trong quá trình mô tả các thành phần kiến trúc, chúng ta đã đề cập đến một số công nghệ Java EE như EJB, JSP, v.v. Chúng ta hãy xem xét kỹ hơn về chúng. Bảng dưới đây cho thấy các công nghệ được sử dụng chủ yếu ở cấp độ khách hàng:Công nghệ | Mục đích |
---|---|
Servlet | Các lớp Java xử lý động các yêu cầu của máy khách và tạo phản hồi (thường là các trang HTML). |
Các mặt máy chủ Java (JSF) | Một framework để xây dựng các ứng dụng web có giao diện người dùng. Cho phép bạn bao gồm các thành phần giao diện người dùng (ví dụ: các trường và nút) trên một trang, chuyển đổi và xác thực các thành phần này, đồng thời lưu trữ dữ liệu này trong bộ lưu trữ phía máy chủ. |
Công nghệ Facelets của Java Server Facelets | Nó là một kiểu con của ứng dụng JSF sử dụng các trang XHTML thay vì các trang JSP |
Trang máy chủ Java (JSP) | Các tài liệu văn bản được biên dịch thành servlet. Cho phép bạn thêm nội dung động vào các trang tĩnh (chẳng hạn như trang HTML) |
Thư viện thẻ tiêu chuẩn của trang máy chủ Java (JSTL) | Thư viện thẻ đóng gói chức năng cốt lõi trong ngữ cảnh của các trang JSP. |
Ngôn ngữ biểu thức | Một tập hợp các thẻ tiêu chuẩn được sử dụng trong các trang JSP và Facelets để truy cập các thành phần Java EE. |
Bối cảnh và nội xạ phụ thuộc cho Java EE (CDI) | Biểu thị một tập hợp các dịch vụ được cung cấp bởi các bộ chứa Java EE để quản lý vòng đời của các thành phần, cũng như đưa các thành phần vào đối tượng máy khách một cách an toàn. |
Thành phần đậu Java | Các đối tượng đóng vai trò lưu trữ dữ liệu tạm thời cho các trang ứng dụng. |
Công nghệ | Mục đích |
---|---|
Các thành phần Enterprise Java Beans (enterprise Bean) | EJB là các hạt được quản lý có chứa chức năng cốt lõi của ứng dụng. |
Dịch vụ web RESTful JAX-RS | Nó là một API để phát triển các dịch vụ web tuân theo phong cách kiến trúc REST. |
Điểm cuối dịch vụ web JAX-WS | API để tạo và sử dụng các dịch vụ web SOAP. |
Các thực thể Java Persistence API (JPA) | API để truy cập dữ liệu trong kho lưu trữ dữ liệu và chuyển đổi dữ liệu đó thành các đối tượng ngôn ngữ lập trình Java và ngược lại. |
Đậu được quản lý Java EE | Các Bean được quản lý cung cấp logic nghiệp vụ của ứng dụng nhưng không yêu cầu các tính năng giao dịch hoặc bảo mật của EJB. |
Dịch vụ tin nhắn Java | API Dịch vụ tin nhắn Java (JMS) là một tiêu chuẩn nhắn tin cho phép các thành phần ứng dụng Java EE tạo, gửi, nhận và đọc tin nhắn. Điều này đảm bảo giao tiếp phân tán, đáng tin cậy và không đồng bộ giữa các thành phần. |
Công nghệ | Mục đích |
---|---|
API kết nối cơ sở dữ liệu Java (JDBC) | API cấp thấp để truy cập và truy xuất dữ liệu từ kho lưu trữ dữ liệu. Cách sử dụng JDBC điển hình là viết các truy vấn SQL dựa vào cơ sở dữ liệu cụ thể. |
API kiên trì Java | API để truy cập dữ liệu trong kho lưu trữ dữ liệu và chuyển đổi dữ liệu đó thành các đối tượng ngôn ngữ lập trình Java và ngược lại. API cấp cao hơn nhiều so với JDBC. Ẩn tất cả sự phức tạp của JDBC đối với nhà phát triển. |
Kiến trúc trình kết nối Java EE | API để kết nối các tài nguyên khác của công ty, chẳng hạn như:
|
API giao dịch Java (JTA) | API để xác định và quản lý giao dịch, bao gồm giao dịch được phân phối và giao dịch trên nhiều kho dữ liệu. |
GO TO FULL VERSION