Tổng quan về phát triển web với Java EE trong lập trình java
Mục tiêu bài học
- Giới thiệu Java EE
- Mô hình web service trên Java EE
- Web application,components, và Web container
- Cấu hình ứng dụng Web
- Giới thiệu về mẫu thiết kế MVC
- Một số web application framework
Mở đầu
Sự phát triển như vũ bão của công nghệ thông tin, nhất là mạng Internet đã khiến cho mô hình lập trình ứng dụng thay đổi rất nhiều.
Các chương trình cần phải tương tác được với người dùng, chia sẻ tài nguyên, kết nối từ xa, phân tán dữ liệu
… Với những yêu cầu trên mô hình khách/chủ (client- server) đã ra đời và tỏ ra rất hiệu quả trong thời gian dài
Tuy nhiên cả máy khách và máy chủ ngày càng trở nên quá tải bởi độ phức tạp và yêu cầu của người dùng. Từ đó phát sinh mô hình phát triển ứng dụng đa tầng (multi-tier).
Mục tiêu là làm cho máy khách trở nên gọn nhẹ, dễ cấu hình. Tất cả mã nguồn lõi, cài đặt, xử lý đều thực hiện trên máy chủ, do đó chương trình trở nên dễ quản lý, các máy khách luôn được phục vụ với phiên bản chương trình mới nhất
Web là một ví dụ điển hình nhất của mô hình ứng dụng đa tầng
Mô hình ứng dụng đa tầng đáp ứng được nhu cầu về mặt tốc độ, bảo mật, cũng như sự đáng tin cậy của ứng dụng
Java EE là gì
Java EE là viết tắt của Java Platform, Enterprise Edition là nền tảng tiêu chuẩn và mở để xây dựng, phát triển các ứng dụng doanh nghiệp lớn, bao gồm: ứng dụng mạng, web, đa tầng, phân tán… J2EE là mở rộng của J2SE
Các phiên bản
• J2EE 1.2 (December 12, 1999)
• J2EE 1.3 (September 24, 2001)
• J2EE 1.4 (November 11, 2003)
• Java EE 5 (May 11, 2006)
• Java EE 6 (December 10, 2009)
• Java EE 7 (May 28, 2013)
J2EE cung cấp các API cho việc phát triển ứng dụng nhằm:
• Giảm thời gian phát triển ứng dụng
• Giảm độ phức tạp của ứng dụng
• Tăng hiệu suất ứng dụng
Là kiến trúc ứng dụng đa tầng với ưu điểm:
• Khả năng mở rộng
• Khả năng truy cập
• Khả năng quản lý
Mô hình kiến trúc chia làm 2 tầng:
• Tầng trình diễn
• Tầng nghiệp vụ
Các thành phần Java EE
Java EE Container
Container cung cấp các dịch vụ :
• Dịch vụ bảo mật (security service)
• Dịch vụ giao dịch (transaction service)
• Dịch vụ JNDI (JNDI lookup service)
Java Application – component này là 1 chương trình standalone chạy bên trong Application Client container. Application Client container cung cấp những API hỗ trợ cho messaging, remote invocation, database connectivity và lookup service. Application Client container đòi hỏi những API sau: J2SE, JMS, JNDI, RIM-IIOP và JDBC. Container này được cung cấp bởi nhà cung cấp application server
Applet – Applet component là java applet chạy bên trong Applet container, chính là web browser có hỗ trợ công nghệ Java. Applet phải hỗ trợ J2SE API.
Servlet và JSP – đây là Web-based component chạy ở bên trong Web container, được hỗ trợ bởi Web Server. Web container là một môi trường run-time cho servlet và jsp. Web Container phải hỗ trợ những API sau: J2SE,
JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC. Serlet và JSP cung cấp một cơ chế cho việc chuẩn bị, xử lý, định dạng nội dung động
Enterprise JavaBean (EJB) – EJB component là business component chạy bên trong EJB container. EJB component là phần nhân, cốt lõi của ứng dụng J2EE. EJB container cung cấp các dịch vự quản lý transaction, bảo mật, quản lý trạng thái, quay vòng tài nguyên (resource pooling). EJB container phải hỗ trợ những API sau: J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC.
Web components
Web components: Servlet hoặc JSP (cùng với JavaBean và custom tags)
Các web components chạy trên 1 web container
Các web container phổ biến: Tomcat, Resin
Web container cung cấp các dịch vụ hệ thống (system services) cho các Web components
• Request dispatching, security, và quản lý vòng đời
Web Application là 1 gói triển khai, gồm:
• Web components (Servlet và JSP)
• Tài nguyên tĩnh như images
• Helper classes (sử dụng bởi web components)
• Thư việc Libraries
• Deployment desciptor (web.xml)
Web Application
Web Application có thể được tổ chức thành:
• Phân cấp các thư mục và files ( dạng chưa đóng gói)
• File *.WAR: dạng đóng gói ( bên trong có phân cấp ), sử dụng khi muốn triển khai trên một remote machine
Cấu hình ứng dụng web:
Thông số cấu hình được đặc tả trong file web.xml (Web Applications Deployment Descriptor)
Alias Path
Chú ý
Tham số khởi tạo và ngữ cảnh (Context and Initialization Parameters)
Event Listeners
Filter Mappings
Error Mappings
Referencs
Mẫu thiết kế phần mềm (Design Pattern)
Một design pattern là một giải pháp chung cho một vấn đề thông thường trong công nghiệp phát triển phần mềm
Đưa ra mô tả và cách giải quyết vấn đề trong các trường hợp khác nhau
Design Pattern là cách giải quyết vấn đề được chuẩn hóa cho việc phát triển ứng dụng
Một số Design Pattern
• OOP
• Connection pooling
• Observer pattern
• MVC
• …
Quá trình phát triển của kiến trúc ứng dụng Web
MVC 1: Page Centric
MVC 2: Server Centric
Web Application Framework
- Dựa trên kiến trúc MVC Model 2
- Hầu hết các ứng dụng Web phải cung cấp các chức năng
- Nhận ( receive ) và gửi tiếp ( Dispatching ) HTTP requests
- Gọi các phương thức từ tầng model
- Tổng hợp và chọn ra các views trả về cho client
- Cung cấp các classes và interfaces cho lập trình viên sử dụng / mở rộng
- Phân tách tầng presentation và các business logic thành các Components
- Cung cấp 1 điểm điều khiển trung tâm
- Cung cấp các tính năng mở rộng
- Dễ dàng kiểm thử unit ( unit - testing ) và bảo trì
- Nhiều công cụ hỗ trợ
- Ổn định
- Có cộng đồng hỗ trợ mạnh mẽ
• Đơn giản hóa chế độ đa ngôn ngữ ( internationalization )
• Đơn gián hóa việc validate đầu vào
- Frameworks đang phát triển mạnh mẽ
- JSP / Servlets vẫn còn khó sử dụng
- Frameworks định nghĩa các components chuẩn , cho phép tái sử dụng .
- Frameworks còn chỉ rõ cách thức phối hợp các components trong 1 ứng dụng
1 số Web Application Framework
Apache Struts I and II
Spring Framework MVC
JavaServer Faces
Echo
Tapestry
Wicket
…
Post a Comment