Java được Sun MicroSystems giới thiệu lần đầu vào tháng 6 năm 1995 và nhanh chóng trở thành một ngôn ngữ lập trình chuyên nghiệp. 
Sơ khởi của Java là dự án "Oak", thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử do James Gosling và các đồng nghiệp tại Sun phụ trách. Được xây dựng trên nền tảng của C/C++ sau khi bỏ đi các đặc tính phức tạp, Java là ngôn ngữ hướng đối tượng thuần túy và độc lập với hệ nền, đặc biệt phù hợp với việc xây dựng các hệ thống hoạt động trên môi trường internet.
                
              
                                            
                                
            
                       
            
                 66 trang
66 trang | 
Chia sẻ: haohao89 | Lượt xem: 2433 | Lượt tải: 4 
              
            Bạn đang xem trước 20 trang tài liệu Một số vấn đề về công nghệ Java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Công ty TNHH Giải pháp Ngân hàng Tài chính HIPT 
MỘT SỐ VẤN ĐỀ VỀ CÔNG NGHỆ JAVA 
Nguyễn Xuân Trường 
Phòng Nghiên cứu phát triển và Đảm bảo chất lượng 
Hà Nội, 01 / 2007 
Java overview 
Trang 1/66 
BẢNG GHI NHẬN THAY ĐỔI 
Ngày Phiên bản Người cập nhật Nội dung cập nhật 
22/01/2007 0.1 Nguyễn Xuân Trường Phiên bản đầu tiên 
Java overview 
Trang 2/66 
MỤC LỤC 
1. Giới thiệu....................................................................................................................................5 
2. Một số vấn đề chung về Java ...................................................................................................5 
2.1. Ngôn ngữ Java ..................................................................................................................5 
2.1.1. Lịch sử phát triển.........................................................................................................5 
2.1.2. Đặc điểm chính............................................................................................................5 
2.1.3. Các ứng dụng Java .....................................................................................................6 
2.1.4. Sự phát triển của Java ................................................................................................7 
2.1.5. Chuẩn bị phát triển ứng dụng với Java .......................................................................7 
2.1.6. Tổ chức chương trình..................................................................................................7 
2.2. IDEs thông dụng................................................................................................................7 
2.2.1. Vai trò của IDEs...........................................................................................................7 
2.2.2. Các loại IDEs thông dụng cho Java ............................................................................8 
2.2.3. Lựa chọn IDEs.............................................................................................................9 
2.3. Các tiện ích, công cụ hỗ trợ .............................................................................................9 
2.3.1. Apache Ant ..................................................................................................................9 
2.3.2. Apache Maven...........................................................................................................10 
2.3.3. Test tools ...................................................................................................................11 
2.4. Đóng gói, tạo lập bộ cài đặt ứng dụng Java.................................................................11 
2.5. Vấn đề an toàn bảo mật trong Java...............................................................................12 
2.5.1. Kiến trúc ....................................................................................................................12 
2.5.2. Mã hóa.......................................................................................................................12 
2.5.3. Hạ tầng mã khóa công khai.......................................................................................12 
2.5.4. Chứng thực ...............................................................................................................13 
2.5.5. Bảo mật trên đường truyển .......................................................................................13 
2.5.6. Điều khiển truy nhập..................................................................................................13 
2.6. Database ..........................................................................................................................13 
2.6.1. PostgreSQL ...............................................................................................................14 
2.6.2. MySQL.......................................................................................................................14 
2.7. Server ...............................................................................................................................15 
2.7.1. Server ........................................................................................................................15 
2.7.2. Apache Tomcat .........................................................................................................15 
2.7.3. Jboss .........................................................................................................................16 
2.8. Hỗ trợ kiểm soát chất lượng (Convention, Test, CVS) ................................................19 
2.8.1. Java Convention........................................................................................................19 
Java overview 
Trang 3/66 
2.8.2. CVS ...........................................................................................................................20 
2.8.3. Testing.......................................................................................................................20 
2.9. Về máy ảo Java JVM .......................................................................................................21 
2.9.1. Định nghĩa JVM.........................................................................................................22 
2.9.2. Các vấn đề với JVM ..................................................................................................22 
3. Tổng quan về một số ứng dụng Java....................................................................................22 
3.1. Desktop application ........................................................................................................22 
3.1.1. Đặc điểm ứng dụng Desktop.....................................................................................22 
3.1.2. Lựa chọn component cho ứng dụng Java Desktop...................................................23 
3.1.3. Đóng gói và triển khai ứng dụng ...............................................................................24 
3.2. Web application...............................................................................................................24 
3.2.1. Đặc điểm ứng dụng Web...........................................................................................24 
3.2.2. Tổ chức ứng dụng Web.............................................................................................24 
3.2.3. Triển khai ứng dụng Web ..........................................................................................25 
3.3. J2EE application..............................................................................................................26 
3.3.1. Đặc điểm ứng dụng J2EE .........................................................................................26 
3.3.2. Tổ chức ứng dụng J2EE ...........................................................................................26 
3.3.3. Triển khai ứng dụng J2EE.........................................................................................27 
3.4. J2ME application .............................................................................................................28 
3.4.1. Đặc điểm ứng dụng J2ME.........................................................................................28 
3.4.2. Tổ chức ứng dụng J2ME...........................................................................................28 
3.4.3. Triển khai ứng dụng J2ME ........................................................................................28 
3.5. Distributed application ...................................................................................................28 
4. Tổng quan về một số công nghệ, Framework ......................................................................28 
4.1. Servlet / JSP.....................................................................................................................28 
4.1.1. Tổng quan .................................................................................................................28 
4.1.2. Servlet .......................................................................................................................28 
4.1.3. JSP............................................................................................................................29 
4.1.4. Quan hệ Servlet, JSP ................................................................................................30 
4.2. JavaScript, CSS, Ajax .....................................................................................................30 
4.2.1. JavaScript..................................................................................................................30 
4.2.2. CSS ...........................................................................................................................31 
4.2.3. Ajax............................................................................................................................32 
4.3. AWT, Swing......................................................................................................................34 
4.3.1. AWT...........................................................................................................................34 
4.3.2. Swing.........................................................................................................................34 
Java overview 
Trang 4/66 
4.3.3. AWT vs Swing ...........................................................................................................36 
4.4. Mô hình MVC....................................................................................................................36 
4.4.1. Mô hình ứng dụng Web với Servlet, JSP ..................................................................37 
4.4.2. Mô hình MVC.............................................................................................................38 
4.5. Struts ................................................................................................................................39 
4.5.1. Struts và MVC ...........................................................................................................39 
4.5.2. Đặc điểm của Struts ..................................................................................................40 
4.5.3. Cấu hình ứng dụng Struts .........................................................................................41 
4.6. EJB ...................................................................................................................................43 
4.6.1. EJB trong kiến trúc J2EE...........................................................................................43 
4.6.2. Khi nào sử dụng EJB.................................................................................................43 
4.6.3. Cài đặt EJB................................................................................................................44 
4.6.4. Phân loại EJB ............................................................................................................45 
4.7. Spring ...............................................................................................................................48 
4.7.1. Đặc điểm của Spring .................................................................................................49 
4.7.2. Các thành phần của Spring .......................................................................................49 
4.8. Hibernate..........................................................................................................................51 
4.8.1. Giới thiệu về Hibernate..............................................................................................51 
4.8.2. Kiến trúc Hibernate....................................................................................................52 
4.8.3. Phát triển ứng dụng với Hibernate ............................................................................53 
4.9. Web Services ...................................................................................................................54 
4.9.1. Lịch sử hình thành Web Services..............................................................................54 
4.9.2. Kiến trúc Web Services .............................................................................................54 
4.9.3. Các thành phần Web Services ..................................................................................56 
4.9.4. Web Services trong công nghệ Java.........................................................................59 
4.10. Portal ................................................................................................................................59 
4.10.1. Sự hình thành Portal .................................................................................................59 
4.10.2. Định nghĩa & đặc điểm của Portal .............................................................................60 
4.10.3. Các loại Portal ...........................................................................................................61 
4.10.4. Portal với công nghệ Java.........................................................................................62 
5. Tài liệu tham khảo ...................................................................................................................65 
Java overview 
Trang 5/66 
1. Giới thiệu 
Java is an island of Indonesia and the site of its capital city, Jakarta. 
Do not lose time here. Please go ahead and read my report right now. ☺ 
2. Một số vấn đề chung về Java 
2.1. Ngôn ngữ Java 
2.1.1. Lịch sử phát triển 
Java được Sun MicroSystems giới thiệu lần đầu vào tháng 6 năm 1995 và nhanh chóng trở thành 
một ngôn ngữ lập trình chuyên nghiệp. 
Sơ khởi của Java là dự án "Oak", thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử 
do James Gosling và các đồng nghiệp tại Sun phụ trách. Được xây dựng trên nền tảng của C/C++ 
sau khi bỏ đi các đặc tính phức tạp, Java là ngôn ngữ hướng đối tượng thuần túy và độc lập với hệ 
nền, đặc biệt phù hợp với việc xây dựng các hệ thống hoạt động trên môi trường internet. 
Java đi từ chỗ một ngôn ngữ lập trình đã trở thành một nền tảng công nghệ. Cùng với .NET của 
MicroSoft, Java trở thành một trong hai công nghệ chủ yếu cho việc phát triển phần mềm hiện nay. 
Các phiên bản chính thức được phát hành của Java (từ Wiki): 
• JDK 1.1.4 (Sparkler) September 12, 1997 
 JDK 1.1.5 (Pumpkin) December 3, 1997 
 JDK 1.1.6 (Abigail) April 24, 1998 
 JDK 1.1.7 (Brutus) September 28, 1998 
 JDK 1.1.8 (Chelsea) April 8, 1999 
• J2SE 1.2 (Playground) December 4, 1998 
 J2SE 1.2.1 (none) March 30, 1999 
 J2SE 1.2.2 (Cricket) July 8, 1999 
• J2SE 1.3 (Kestrel) May 8, 2000 
 J2SE 1.3.1 (Ladybird) May 17, 2001 
• J2SE 1.4.0 (Merlin) February 13, 2002 
 J2SE 1.4.1 (Hopper) September 16, 2002 
 J2SE 1.4.2 (Mantis) June 26, 2003 
• J2SE 5.0 (1.5.0) (Tiger) September 29, 2004 
• Java SE 6 (1.6.0) (Mustang) December 11, 2006 
• Java SE 7 (1.7.0) (Dolphin) anticipated for 2008 
2.1.2. Đặc điểm chính 
• Kế thừa từ C/C++ sau khi loại bỏ các đăc tính phức tạp: đa kế thừa, con trỏ, quản lý bộ 
nhớ,… 
Java overview 
Trang 6/66 
• Hướng đối tượng thuần túy 
• Độc lập với hệ nền, thông dịch ra bytecode chạy trên JVM, "Write One, Run Any Where" 
(Debug any where, :d) 
• Hỗ trợ cho các ứng dụng chạy trên mạng, ứng dụng phân tán. 
• An toàn - Bảo mật 
• … 
2.1.3. Các ứng dụng Java 
Ban đầu, Java chủ yếu dùng để phát triển các applet, các ứng dụng nhúng vào trình duyệt, góp 
phần làm sinh động các trang web tĩnh vốn hết sức tẻ nhạt hồi dó. Tuy nhiên, cùng với sự phát 
triển của công nghệ thông tin và nhu cầu của xã hội, Java applet đã dần mất đi vị trí của nó và thay 
vào đó, các công ty, cộng đồng ủng hộ Java đã phát triển nó theo một hướng khác, còn vai trò của 
applet hiện nay đã mờ nhạt dần với sự phát triển của JavaScript. Hiện nay, công nghệ Java được 
chia làm ba bộ phận: 
a. J2SE 
Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứng dụng trên desktop và định 
nghĩa các phần thuộc nhân của Java. 
b. J2EE 
Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụng qui mô xí nghiệp, chủ yếu 
để chạy trên máy chủ (server). 
c. J2ME 
Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng Java chạy trên điện thoại di 
động, thẻ thông minh, thiết bị điện tử cầm tay, robot và những ứng dụng điện tử khác. 
Java overview 
Trang 7/66 
2.1.4. Sự phát triển của Java 
Java vẫn đang chiếm thị phần lớn nhất, nhưng có sự đi lên rất mạnh mẽ của các ngôn ngữ khác. 
Chuẩn bị phát triển ứng dụng với Java 2.1.5. 
• J2SDK 
• Thiết lập biến môi trường 
• IDEs, Editor (Phần 2.2) 
• Các tiện ích, công cụ (Phần 2.3) 
2.1.6. Tổ chức chương trình 
(v) 
Tổ chức cấu trúc của ứng dụng (BluePrints, Jakarta) 
Tổ chức code trong một lớp 
2.2. IDEs thông dụng 
2.2.1. Vai trò của IDEs 
Các môi trường phát triển tích hợp thường bao gồm: 
Một trình soạn thảo mã (source code editor): dùng để viết mã, hỗ trợ tính năng tự động sinh 
mã (code generator). 
• 
Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter). • 
Java overview 
Trang 8/66 
• Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện 
liên kết (linking), và có thể chạy chương trình một cách tự động. 
• Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi. 
• Ngoài ra, còn có thể bao gồm hệ thống quản lí phiên bản. 
• Các công cụ nhằm đơn giản hóa công việc xây dựng giao diện người dùng đồ họa (GUI). 
• Nhiều môi trường phát triển hợp nhất hiện đại còn tích hợp trình duyệt lớp (class browser), 
trình quản lí đối tượng (object inspector), lược đồ phân cấp lớp (class hierarchy diagram),... 
để sử dụng trong việc phát triển phần mềm theo hướng đối tượng. 
Việc sử dụng các môi trường phát triển tích hợp giúp người phát triển tăng tính hiệu quả và giảm 
thời gian thực hiện công việc của mình. Ngoài ra, người mới học cũng có thể tận dụng những tiện 
ích của các môi trường phát triển tích hợp để giảm bớt thời gian học của mình, vì những cấu hình, 
những dòng lệnh phức tạp (mà nếu không có môi trường phát triển tích hợp phải thực hiện bằng 
tay) đều đã được che dấu và tự động hóa. 
2.2.2. Các loại IDEs thông dụng cho Java 
IDE Developer 
Lastest 
Realese 
OS Cost Features 
BEA 
Workshop 
BEA 
3.2.1 / 
October, 
2006 
Windows, 
GNU/Linux 
$899 
WebSphere 
Development 
Studio 
IBM 
6.0.1 / 
January 31, 
2006 
Windows 
$1500 (Standard), 
$4500 (Advanced 
Edition) 
JBuilder Borland 
6 (2006) / 
September, 
2005 [6]
Cross-platform 
Free (Foundation), 
$499 (Developer), 
$3,500 (Enterprise) 
- Phiên bản free 
( Foundation) chỉ hỗ 
trợ các tính năng 
căn bản nhất 
JDeveloper Oracle 
10 g 
(10.1.3) / 
January, 
2006 
Cross-platform Free 
- Hỗ trợ mạnh J2EE 
(EJB, Struts), đặc 
biệt phù hợp cho 
ứng dụng sử dụng 
công nghệ Oracle. 
NetBeans Sun 
5.5 / 
October 27, 
2006 
Cross-platform Free 
- Hỗ trợ nhiều ứng 
dụng: Desktop, 
Web, Enterprise, 
Mobile. 
Java overview 
Trang 9/66 
KDevelop 
KDevelop 
Team 
3.3.5 (Oct 
11, 2006) 
GNU/Linux, 
Cygwin, other 
platforms 
offering X11 
Free 
- Là IDE trên Linux 
không chỉ cho Java 
(C, Pascal, PHP, 
Ruby, SQL,…) 
Eclipse 
Eclipse 
Foundation 
3.2.1 / 
September 
21, 2006 
Cross-platform Free 
- Tính năng ban đầu 
còn hạn chế 
- Nhưng có rất 
nhiều plugin hỗ trợ: 
MyEclipse, M7,… 
JCreator 
Xinox 
Software 
4.00.026 / 
16 October 
2006 
Windows 
Free (JCreator LE), 
$69 (JCreator Pro) 
- Phù hợp cho phát 
triể