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 |
Chia sẻ: haohao89 | Lượt xem: 2221 | 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ể