Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
0,98 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN Xây dựng framework JOO lập trình ứng dụng RIA: Xây dựng thành phần quản lý luồng diễn tiến ứng dụng Sinh viên thực hiện : Bùi Anh Dũng Lớp Công nghệ phần mềm A – K51 Giáo viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng HÀ NỘI 6-2011 Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1. Thông tin về sinh viên Họ và tên sinh viên: Bùi Anh Dũng Điện thoại liên lạc: 0127 506 5837 Email: griever.se51@gmail.com Lớp: Công nghệ phần mềm Hệ đào tạo: Đại học chính quy Đồ án tốt nghiệp được thực hiện tại: Bộ môn Công nghệ phần mềm, Viện CNTT & Truyền Thông – Đại học Bách Khoa Hà Nội Thời gian làm ĐATN: Từ ngày 15 / 01 / 2011 đến 25 / 05 /2011 2. Mục đích nội dung của ĐATN Xây dựng framework JOO để đơn giản hóa và chuẩn hóa việc lập trình các ứng dụng RIA bằng HTML/Javascript. 3. Các nhiệm vụ cụ thể của ĐATN • Xây dưng phiên bản 1.0 của framework • Ứng dụng framework để xây dựng hệ thống cụ thể (BKProfile) 4. Lời cam đoan của sinh viên: Tôi – Bùi Anh Dũng - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS.TS Huỳnh Quyết Thắng. Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác. Hà Nội, ngày 12 tháng 4 năm 2011 Tác giả ĐATN Bùi Anh Dũng 5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ: Hà Nội, ngày tháng năm Giáo viên hướng dẫn PGS.TS Huỳnh Quyết Thắng Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Mục tiêu của người viết luận văn là xây dựng JOO - framework nhằm chuẩn hóa lại mô hình lập trình các ứng dụng web, quản lý và tối ưu hóa hiệu năng xử lý dữ liệu ở máy chủ, truyền dữ liệu phân tán qua mạng… JOO ra đời giải quyết những trở ngại còn tồn tại trong quá trình xây dựng các ứng dụng này: có khả năng tương đương với những ứng dụng thông thường trên máy tính cá nhân, tương thích với nhiều loại nền tảng và phần cứng, hiệu năng truyền tải dữ liệu qua mạng, hiệu năng xử lý dữ liệu ở máy chủ, khả năng phân tán Người viết luận văn đã nghiên cứu trên các mô hình lập trình web truyền thống và một số framework tiêu biểu, sau đó thiết kế các giải pháp nhằm kế thừa những ưu điểm, khắc phục nhược điểm của những mô hình này. Kiến trúc hệ thống của JOO là kết quả của quá trình nghiên cứu và tích hợp các giải pháp thu được – đáp ứng hầu hết các thuộc tính về mặt chất lượng của ứng dụng web. JOO đồng thời chuẩn hóa mô hình lập trình và mô hình xử lý dữ liệu ở các ứng dụng loại này. JOO đã được triển khai thực tế trên hệ thống BKProfile, hệ thống kết nối chia sẻ tri thức. Với những lí do trên, JOO có khả năng tạo ra một hướng tiếp cận hiệu quả cho việc lập trình ứng dụng web, đáp ứng được những hệ thống phân tán cỡ lớn, đồng thời giải quyết những trở ngại trong lĩnh vực này. Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A ABSTRACT OF THESIS The goal of this thesis is to develop JOO Framework for normalizing web application programming model, managing and optimizing server performance, data transfer on the Internet, etc. JOO deals with the many difficulties and problems which are still existed when building high performance rich web applications: the application must provide the same functionalities, same interactivity with these of normal desktop applications, must be compatible with as many platforms and hardware as possible, must provide a high performance in data transfer, server processing, scalability, etc. The author has researched some major and featured platforms and frameworks, as well as the traditional programming model, designed a solution which made use of some advantages of those platforms and remedy their disadvantages. The architecture of JOO Framework is the result of a long progress of researching, implementing and testing; it satisfies most quality criteria in web programming framework, also normalizes the programming model to help developers to build web applications more quickly and efficiently. JOO has been deployed and tested in some real systems, such as: BKProfile, IDEE, Joob Location-based Social Network. To conclude, JOO has potential to promote a new approach of programming web applications. Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A LỜI CẢM ƠN Đầu tiên, em xin gửi lời cảm ơn chân thành sâu sắc đến các thầy cô giáo trong trường đại học Bách Khoa Hà Nội nói chung và các thầy cô giáo trong Viện Công nghệ thông tin và truyền thông nói riêng, nhất là các thầy cô giáo trong bộ môn Công nghệ phần mềm, đã tận tình giảng dạy, cho em niềm đam mê với ngành học, đồng thời truyền đạt cho em nhiều kiến thức, kinh nghiệm quý báu trong suốt 5 năm vừa qua. Đặc biệt, em xin gửi lời cảm ơn đến thầy Huỳnh Quyết Thắng và thầy Lê Quốc, những người đã hướng dẫn và chỉ bảo em trong suốt giai đoạn thực tập chuyên ngành và toàn bộ quá trình làm đồ án tốt nghiệp. Làm việc với thầy, em không chỉ nhận được những kiến thức chuyên ngành cần có, mà ở thầy em còn nhận được nhiệt huyết tìm hiểu, sự đam mê công việc, tình cảm của một người anh, và nhất là những định hướng, động viên. Nhờ đó em đã hình thành cho mình một định hướng tương lai đầy đủ, vững chắc. Một lần nữa, xin cảm ơn thầy! Không thể thiếu được là lời cảm ơn em muốn gửi tới thầy Lê Quốc – bộ môn Công nghệ phần mềm, Viện Công nghệ thông tin và truyền thông, ĐH Bách Khoa Hà Nội, và công ty Cazoodle Việt Nam, cùng với tất cả các thành viên trong nhóm BKProfile Team. Thời gian làm việc cùng nhóm BKProfile tại công ty Cazoodle dưới sự hướng dẫn, động viên và góp ý của thầy Lê Quốc cùng với sự cổ vũ và nhiệt huyết làm việc đầy đam mê, sáng tạo của các thành viên trong đội ngũ phát triển BKProfile, em đã học hỏi được rất nhiều từ tinh thần và cách làm việc của các bạn. Không có thầy và các bạn, có lẽ đồ án này của em không bao giờ hoàn thành tốt được. Cuối cùng, em xin gửi lời cảm ơn chân thành nhất tới tất cả bạn bè, đồng nghiệp, và người thân… Những người đã bên em, động viên, đóng góp ý kiến và giúp đỡ em trong suốt khoảng thời gian vừa qua. Hà Nội, tháng 5 năm 2011 Chân thành cảm ơn! Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A MỤC LỤC PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2 TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 3 ABSTRACT OF THESIS 4 LỜI CẢM ƠN 5 MỤC LỤC 6 DANH MỤC CÁC BẢNG 7 DANH MỤC CÁC TỪ VIẾT TẮT 8 DANH MỤC CÁC HÌNH MINH HỌA 9 PHẦN MỞ ĐẦU 10 CHƯƠNG 1 – ĐẶT VẤN ĐỀ VÀ GIẢI PHÁP 11 CHƯƠNG 2 – JOO FRAMEWORK 20 2.4.Kết chương 43 CHƯƠNG 3 - ỨNG DỤNG JOO XÂY DỰNG HỆ THỐNG BKPROFILE 44 CHƯƠNG 4 - KẾT LUẬN VÀ ĐÁNH GIÁ 48 4.1.Kết quả đạt được 48 4.2.Những khó khăn và thuận lợi 48 4.3.Phương hướng phát triển 49 TÀI LIỆU THAM KHẢO 50 Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A DANH MỤC CÁC BẢNG Bảng 1 – So sánh tốc độ tải trang trung bình của ứng dụng web khi xây dựng bằng Zend Framework & khi xây dựng bằng Joo framework 47 Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A DANH MỤC CÁC TỪ VIẾT TẮT STT Tên Giải thích 1 RIA Rich Internet Application, chỉ các ứng dụng chạy trên nền web nhưng mang đầy đủ đặc tính của một ứng dụng desktop. Được nhắc đến ở chương 1. 2 AJAX Asynchronous Javascript and XML. Thuật ngữ được ra đời năm 2005 dùng để chỉ một tập hợp các công nghệ hỗ trợ việc phát triển ứng dụng web theo cơ chế bất đồng bộ. 3 JSON Javascript Object Notation. Là định dạng để ký hiệu các đối tượng của ngôn ngữ Javascript, nhưng rất hay được dùng trong việc trao đổi dữ liệu, đặc biệt là trong mô hình AJAX. 4 SPA Single Page Application hay ứng dụng web một trang, chỉ những ứng dụng web chỉ chạy trên một trang HTML duy nhất, sử dụng AJAX để truyền tải dữ liệu. 5 MVC Model – View – Controller. Là một kiến trúc, đồng thời cũng là một mẫu thiết kế trong lập trình hướng đối tượng. MVC hay được sử dụng trong các hệ thống web. 6 GWT Google Web Toolkit. Một framework được phát triển bởi Google, cho phép xây dựng ứng dụng một trang bằng Java 7 JSP JavaServer Pages. Là một nền tảng được phát triển bởi Sun, được xây dựng trên ngôn ngữ Java, được sử dụng để phát triển các trang web động. 7 HTML Hypertext Markup Language. Một loại ngôn ngữ đánh dấu sử dụng các thẻ quy ước để hiển thị nội dung. 8 HTTP Hypertext Transfer Protocol. Giao thức truyền tải các dữ liệu siêu văn bản. Là giao thức cơ bản của truyền tải dữ liệu trên Internet 9 DOM Document Object Model. Là một quy chuẩn độc lập nền tảng dành cho các nhà phát triển ứng dụng được dùng để biểu diễn và tương tác với các ngôn ngữ HTML, XHTML, XML. 10 CSS Cascading Style Sheets, là một ngôn ngữ để biểu diễn mặt hiển thị của các ngôn ngữ đánh dấu. 11 URL Uniform Resource Locator: Là một định dạng được sử dụng để xác định một tài nguyên trên Internet, chỉ ra vị trí cũng như phương thức để truy cập tài nguyên đó. 12 UI User Interface: Giao diện người dùng. Chỉ các thành phần hiển thị và cung cấp tương tác giữa người dùng và hệ thống. 13 API Application Programming Interface. Là một giao diện cung cấp cho các nhà phát triển ứng dụng để thao tác với một hệ thống nào đó mà không cần phải quan tâm cách thức hoạt động bên trong hệ thống đó. Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A DANH MỤC CÁC HÌNH MINH HỌA Hình 1 – Ví dụ về văn bản web đơn giản 12 Hình 2 – Mô hình lập trình web động 13 Hình 3 – Ajax ứng dụng trong mô hình web truyền thống 14 Hình 4 – Mô hình xử lý dữ liệu của Spiar 21 Hình 5 – Mô hình xử lý dữ liệu của GWT 22 Hình 6 – Kiến trúc Joo framework 23 Hình 7 - Biểu đồ luồng diễn tiến của chương trình 25 Hình 8 - Các lớp đồ họa chính trong JOO 26 Hình 9 – Biểu đồ trạng thái Porlet trong Joo framework 28 Hình 10 – Biểu đồ tuần tự mô tả tương tác của portlet 29 với các thành phần giao diện trong Joo 29 Hình 11 – Biểu đồ trạng thái plugin trong Joo framework 30 Hình 12 – Biểu đồ thành phần mô tả tương tác giữa Porlet, Plugin và Template trong Joo framework 33 Hình 13 – Biểu đồ thành phần của thành phần quản lý chương trình Application 35 Hình 14 – Biểu đồ lớp của thành phần Bootstrap 36 Hình 15 – Biểu đồ lớp thành phần Resource Manager 37 Hình 16 – Biểu đồ lớp thành phần Request Handler 38 Hình 17 – Biểu đồ lớp thành phần Porlet & Plugin Manager 39 Hình 18 – Biểu đồ tuần tự mô tả hoạt động của framework 40 Hình 19 – Mối liên hệ giữa tiêu chí chất lượng với các đặc tính của mô hình lập trình ứng dụng web 43 Hình 20 – Kiến trúc thành phần hệ thống BKProfile 45 Hình 21 – Giao diện hệ thống BKProfile (www.bkprofile.com) 46 Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A PHẦN MỞ ĐẦU Tóm tắt các nhiệm vụ đề ra trong ĐATN • Tìm hiểu mô hình lập trình ứng dụng web và các framework lập trình • Xây dưng phiên bản 1.0 của JOO framework • Ứng dụng framework để xây dựng hệ thống cụ thể (BKProfile) Môi trường thực hiện đồ án: • Bộ môn công nghệ phần mềm, Viện CNTT & TT – Đại học Bách Khoa Hà Nội Bố cục đồ án • Phần mở đầu : giới thiệu tóm tắt nhiệm vụ đề tài, xác định mục tiêu và phạm vi thực hiện. • Phần nội dung : có kết cấu bốn chương, nội dung chính như sau: Chương 1. Đặt vấn đề và giải pháp. Giới thiệu về mô hình xây dựng web truyền thống, giới thiệu về ứng dụng RIA và các công nghệ hiện tại. Đề xuất mục tiêu của một framework xây dựng ứng dụng web hiệu quả và nhiệm vụ của đồ án tốt nghiệp. Chương 2. Joo framework. Giới thiệu và đánh giá ưu nhược điểm của kiến trúc một số framework xây dựng ứng dụng web. Từ đó đề xuất mô hình xây dựng ứng dụng web Joo framework, bao gồm kiến trúc tổng quan của Joo framework và kiến trúc chi tiết thành phần quản lý luồng diễn tiến của ứng dụng trong Joo framework. Chương 3. Ứng dụng Joo xây dựng hệ thống BKProfile. Sau khi phân tích mô hình của Joo framework, để làm rõ tính hiệu quả của Joo, chương này trình bày việc xây dựng BKProfile trên Joo, bao gồm: giới thiệu sơ lược hệ thống BKProfile, vai trò của Joo framework trong việc xây dựng BKProfile. Đánh giá Joo framework qua thực tiễn. Chương 4. Kết luận và đánh giá. Đánh giá kết quả đạt được trong quá trình làm đồ án. Các nhận định toàn bộ công việc đồ án và đề ra phương hướng phát triển tiếp theo. Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A [...]... xây dựng RIA bằng HTML/Javascript • Xây dựng ứng dụng sử dụng framework nhằm minh họa cho sức mạnh của framework Ứng dụng xây dựng minh họa: BKProfile 1.2.2 Nhiệm vụ cụ thể trong phạm vi đồ án • Nghiên cứu và đánh giá về các mô hình xây dựng ứng dụng web, cách xây dựng framework, Javascript, HTML5, CSS3, RIA • Thiết kế và xây dựng Joo framework: Xây dựng thành phần quản lý luồng diễn tiến của ứng dụng. .. kiến trúc một số framework xây dựng ứng dụng web truyền thống • Đề xuất mô hình xây dựng ứng dụng web Joo Framework o Kiến trúc tổng quan o Kiến trúc chi tiết thành phần quản lý luồng diễn tiến của ứng dụng 2.1 Kiến trúc của các framework xây dựng ứng dụng web truyền thống và phân tích đánh giá Trước khi phân tích ưu nhược điểm của các framework trước, chúng ta sẽ xem xét lại mô hình lập trình web truyền... dụng • Xây dựng ứng dụng BKProfile sử dụng Joo framework: cụ thể là minh họa việc sử dụng các thành phần quản lý luồng diễn tiến trong ứng dụng BKProfile 1.3 Kết chương Tóm lại trong chương một, người viết luận văn đã giới thiệu sơ qua về mô hình xây dựng web truyền thống, bài toán xây dựng các ứng dụng RIA và các công nghệ hiện tại Từ đó có thể thấy mô hình lập trình web truyền thống khi áp dụng vào... nghệ phần mềm A 2.2.2 Kiến trúc chi tiết thành phần quản lý luồng diễn tiến của ứng dụng 2.2.2.1 Portlet, Plugin, Template Nhằm phân chia ứng dụng thành các thành phần độc lập, có khả năng mở rộng cao và dễ dàng tùy biến, JOO Framework đưa ra 3 khái niệm chính: 1 Portlet: Là các thành phần được những người phát triển ứng dụng viết một cách độc lập, quá trình xử lý dữ liệu cũng được thực hiện độc lập. .. vào trình bày cụ thể hơn những phân tích, đánh giá trên những framework lập trình ứng dụng RIA hiện tại, từ đó đưa ra ý tưởng và phân tích về kiến trúc tổng quan của Joo framework và phần nội dung chính của đồ án: kiến trúc chi tiết của thành phần quản lý luồng diễn tiến của ứng dụng trong Joo framework Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A CHƯƠNG 2 – JOO FRAMEWORK. .. chức cấu trúc chương trình thành các thành phần độc lập, liên kết lỏng lẻo với nhau và dễ dàng cấu hình Phần sau sẽ phân tích rõ hơn kiến trúc của framework cũng như cấu trúc của một ứng dụng được xây dựng trên nền framework 2.2 Đề xuất một framework hiệu quả - JOO Framework JOO Framework là một framework hỗ trợ xây dựng các ứng dụng web một trang trên máy khách (chạy trên các trình duyệt hỗ trợ Javascript)... hơn cách thức hoạt động của framework và lý giải được tại sao các thành phần có thể tương tác được với nhau như vậy 2.2.2.2 Thành phần quản lý chương trình: Application Để kết nối các thành phần trên, quản lý diễn tiến của ứng dụng và trừu tượng hóa những chi tiết sâu bên dưới của framework, framework đóng gói thông qua thành phần Application Thông thường khi phát triển ứng dụng, các nhà phát triển sẽ... • Thành phần quản lý tài nguyên (Resource Manager) Mối liên hệ giữa các thành phần này được mô tả thông qua sơ đồ sau: Sinh viên thực hiện: Bùi Anh Dũng - 20060543 Khóa 51 Lớp Công nghệ phần mềm A Hình 13 – Biểu đồ thành phần của thành phần quản lý chương trình Application Bootstrap: Đầu tiên nói về thành phần bootstrap Đây là thành phần quyết định diễn tiến của chương trình Như tên gọi của thành phần, ... Lớp Công nghệ phần mềm A Hình 14 – Biểu đồ lớp của thành phần Bootstrap Resource Manager: thành phần quản lý tài nguyên Thành phần tiếp theo, Resource Manager có nhiệm vụ quản lý các tài nguyên DOM và các biến toàn cục Để quản lý DOM, Joo framework sử dụng thư viện JQuery (xem thêm ở phụ lục) để quản lý các node DOM dưới dạng đối tượng Các thành phần khác, như Portlet hay Plugin sẽ sử dụng Resource... cần quan tâm nhiều tới phần này, nhưng với những người phát triển framework, cũng như những người muốn tối ưu hóa nền tảng bên dưới cho ứng dụng của mình thì phần này khá quan trọng Tầng Application bao gồm các thành phần chính sau: • Thành phần khởi tạo hệ thống và điều khiển diễn của chương trình (Bootstrap) • Thành phần quản lý xử lý yêu cầu (Request Handler) • Thành phần quản lý portlet & plugin (Portlet . và xây dựng Joo framework: Xây dựng thành phần quản lý luồng diễn tiến của ứng dụng. • Xây dựng ứng dụng BKProfile sử dụng Joo framework: cụ thể là minh họa việc sử dụng các thành phần quản lý. CÔNG NGHỆ THÔNG TIN Xây dựng framework JOO lập trình ứng dụng RIA: Xây dựng thành phần quản lý luồng diễn tiến ứng dụng Sinh viên thực hiện : Bùi Anh Dũng Lớp Công nghệ phần mềm A – K51 Giáo. hình xây dựng ứng dụng web Joo framework, bao gồm kiến trúc tổng quan của Joo framework và kiến trúc chi tiết thành phần quản lý luồng diễn tiến của ứng dụng trong Joo framework. Chương 3. Ứng