3.1.1. Đặc điểm ứng dụng Desktop
Theo đánh giá chung thì Java không phải là lựa chọn tối ưu nhất cho việc phát triển các ứng dụng Desktop, trừ phi đó là yêu cầu từ phía người dùng hay hướng công nghệ của người phát triển.
Tuy nhiên, sự cải tiến các phiên bản mới của J2SDK (hiện tại là 1.6), cùng với cộng đồng phát triển đông đảo, IDE phong phú,... việc xây dựng ứng dụng Desktop bằng Java hiện tại không quá vất vả như trước đây và có nhiều ưu điểm nổi trội như:
• Ứng dụng ổn định
• Không phụ thuộc nền (đặc điểm chung của các ứng dụng Java)
• Giao diện đồ họa được cải tiến đáng kể, dễ bảo trì
• Nhiều tools, components, plugin open source hỗ trợ
• Phát triển nhanh vì có nhiều IDE hỗ trợ mạnh
3.1.2. Lựa chọn component cho ứng dụng Java Desktop
Component là một bộ các lớp cho phép chúng ta tạo GUI và chấp nhận các nhập liệu của người dùng thông qua bàn phím và chuột. Component cung cấp các thành phần khác nhau để tạo GUI hiệu quả và lôi cuốn người sử dụng. Các thành phần cơ bản của Component là:
• Container: Để chứa các components
• Component: Label, Tab, Button, TextField, Frame,...
• Layout
• Draw
• Font
• Event
Có nhiều sự lựa chọn components cho ứng dụng Java Desktop, đó là a. AWT
AWT (Abstract Window Toolkit) là bộ các thành phần đầu tiên được Sun phát triển cho các ứng dụng Desktop trong thư viện JFC (Java Foundation Classes).
Vì được ra đời sớm nên còn có nhiều hạn chế: Xử lý sự kiện phức tạp, tính thẩm mỹ không cao.
Tuy nhiên do các thư viện AWT có kích thước nhẹ, được viết bằng mã native Java nên phù hợp với các ứng dụng nhỏ và hiện vẫn được sử dụng nhiều cho các Applet.
b. Swing
Cũng là một thành phần trong JFC và mang đầy đủ những đặc điểm của AWT. Nhưng Swing là một thư viện vô cùng mạnh mẽ, có nhiều cải tiến so với AWT với các components ở cấp độ cao hơn. Swing được Sun khuyển cáo sử dụng cho các ứng dụng Desktop.
c. SWT
Là sản phẩm của IBM. Cũng là thư viện mạnh mẽ nhưng không được dùng nhiều bằng Swing d. Các components khác
- Thinlet: Đây là thư viện nhỏ nhất trong tất cả các thư viện GUI (thư viện chỉ 36KB, không kế thừa từ Swing hay AWT, chạy rất nhanh, source code chỉ có 1 file duy nhất), components cũng hạn chế, thường được sử dụng cho applet nhưng viết bằng XML
e. Tự định nghĩa components
3.1.3. Đóng gói và triển khai ứng dụng Phần 2.4
Đóng gói bằng tay, hoặc bằng các chương trình đóng gói chuyên nghiệp Chạy từ dòng lệnh
Chạy từ file EXE
3.2. Web application 3.2.1. Đặc điểm ứng dụng Web
Java đặc biệt phù hợp khi lựa chọn để phát triển các ứng dụng web, chạy trên môi trường mạng.
Ứng dụng web: Giao thức HTTP (HTTPS - bảo mật) cho thao tác Request/Response nhờ Web container quản lý các tài nguyên.
Đặc điểm chung của các ứng dụng web dựa trên Java:
• Nhiều framework, server hỗ trợ
• Nhiều IDE hỗ trợ
• Components, plugin phong phú
• Triển khai dễ dàng, thuận lợi hơn do chỉ phải cài đặt chủ yếu trên các máy Server (Ưu thế chung của các ứng dụng web).
• Các công nghệ để sử dụng trong ứng dụng web có thể đơn giản như HTML, JSP/Servlet đến những công nghệ mang tính nâng cao và phức tạp hơn như CSS, JavaScript, Ajax.
3.2.2. Tổ chức ứng dụng Web
Các thành phần điển hình của ứng dụng web bao gồm: Servlet, JSP, HTML, Image. Bên cạnh các thành phần căn bản đó thì một ứng dụng web trên Java có thể được xây dựng trên một framework (ví dụ như struts), khi đó còn cần các thư viện của framework đi kèm: taglib, xml configuration,...
Các thành phần này của ứng dụng được tổ chức theo cấu trúc thư mục như sau:
• Thư mục gốc chứa các file JSP, HTML, Image. Tất nhiên các file này cũng có thể tổ chức trong các thư mục riêng biệt để dễ dàng quản lý. Ví dụ: các file HTML chứa riêng trong thư mục html, các file Image chứa riêng trong thư mục images, các file JSP chứa trong thư mục jsp,…
• Thư mục gốc cũng chứa một thư mục đặc biệt WEB-INF, bao gồm file mô tả ứng dụng web (web.xml), các class Servlet trong thư mục classes, các thư viện jar trong thư mục lib.
3.2.3. Triển khai ứng dụng Web Phần 2.4
File .war (Web Archive Component) dùng để đóng gói các thành phần trong ứng dụng web Java.
Để triển khai ứng dụng, người phát triển chỉ cần copy file .war vào thư mục triển khai tương ứng của các Web Server: Tomcat, Jboss,...
Hỗ trợ triển khai từ các IDE thông dụng.
3.3. J2EE application 3.3.1. Đặc điểm ứng dụng J2EE
Ứng dụng J2EE (Java 2 Enterprise Edition) là một nền tảng (platform) phức tạp chứa đựng nhiều thành phần (component) đảm nhiệm những chức năng riêng biệt và cùng làm việc với nhau. Đây là 1 công cụ mạnh, dùng cho những ứng dụng lớn với những đòi hỏi cao nhất về số luợng nguời sử dụng cùng lúc, thời gian thấp nhất cho việc bảo hành, giao tiếp đuợc với nhiều hệ thống có từ truớc đang vận hành, và nhiều tính ưu việt khác.
Tuy nhiên J2EE không phải là chìa khoá vạn năng cho mọi loại ứng dụng vì bản thân nó cồng kềnh, đắt tiền, đòi hỏi người phát triển phải có nhiều kinh nghiệm. J2EE cũng không phải là một loại mì ăn liền. Nó chỉ cung cấp những vật liệu cần thiết với đầy đủ lời chỉ dẫn.
• J2EE là một tập hợp nhiều thành phần công nghệ ra đời vào những thời điểm khác nhau:
Từ những thành phần căn bản của ứng dụng web (JSP/Servlet), đến công nghệ phức tạp hơn như EJB.
• Theo đặc tả ban đầu của Sun, J2EE là sự kết hợp của các công nghệ Servlet/JSP và EJB
• Hiện nay các framework như Struts, Spring, Hibernate,... cũng được coi là một thành phần của ứng dụng J2EE (tranh luận).
• Ranh giới giữa Web app và J2EE không thật rõ ràng khi một ứng dụng web được tổ chức theo mô hình MVC (như Struts) cũng có thể được coi như là một ứng dụng J2EE?
• J2EE Container, J2EE Server: Hỗ trợ đầy đủ các thành phần J2EE (JBoss, Orion,...).
• Có nhiều IDE hỗ trợ phát triển ứng dụng J2EE.
3.3.2. Tổ chức ứng dụng J2EE
J2EE là nền tảng ứng dụng do Sun đề xuất. Theo Sun, cấu trúc điển hình của một ứng dụng J2EE bao gồm Web components và EJB components. Các thành phần đó được mô tả trong cấu trúc thư mục như sau:
• WAR: Đóng gói các thành phần web của ứng dụng J2EE
• JAR: Đóng gói các thành phần EJB của ứng dụng J2EE
• Thành phần mô tả ứng dụng: application.xml
Các thành phần trong ứng dụng j2EE có thể được tổ chức thành nhiều tầng, mỗi tầng đảm nhận các vai trò độc lập nhằm thuận lợi cho mục đích phát triển trong một nhóm, và thuận lợi cho hoạt động chỉnh sửa, bảo trì,...
Với Sun, EJB là hạt nhân của ứng dụng J2EE. Tuy nhiên có thể sử dụng nhiều công nghệ khác để thay thế cho vai trò của EJB mà vẫn đảm bảo ứng dụng tuân theo cấu trúc j2EE ví dụ như Spring.
3.3.3. Triển khai ứng dụng J2EE Phần 2.4
File .ear (Enterprise Archive Component) là chuẩn để đóng gói các thành phần J2EE bao gồm cả Web components và EJB components. Do vậy trong file .ear đã được đóng gói cả file .war, .jar và thành phần mô tả ứng dụng J2EE (application.xml).
Để triển khai ứng dụng, người phát triển chỉ cần copy file .ear vào thư mục triển khai tương ứng của các J2EE Server: Jboss,...
Hỗ trợ triển khai từ các IDE thông dụng.
3.4. J2ME application 3.4.1. Đặc điểm ứng dụng J2ME
J2ME (Java 2 Micro Edition) là nền tảng cho các ứng dụng nhỏ gọn, với tài nguyên, và bộ nhớ hạn chế: Thẻ cá nhân, Mobile, PDA, Embedded system,...
3.4.2. Tổ chức ứng dụng J2ME 3.4.3. Triển khai ứng dụng J2ME 3.5. Distributed application
4. Tổng quan về một số công nghệ, Framework