Một số vấn đề về công nghệ Java

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.

pdf66 trang | Chia sẻ: haohao89 | Lượt xem: 2221 | Lượt tải: 4download
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ể