Đề tài Xây dựng ứng dụng Gadget

Gadget lần đầu được Microsoft giới thiệu trên Windows Vista, được xây dựng nhằm hỗ trợ người sử dụng quản lý tài nguyên hệ thống, bộ nhớ, đĩa cứng, lịch, đồng hồ, xem thông tin về thời tiết, tỷ giá, tin tức…Các tiện ích này được đặt trên thanh Windown Sidebar properties chiếm một phần trên desktop và có thể dễ dàng tùy chỉnh. Không chỉ với vẻ hào nhoáng bề ngoài, những thuận tiện mà Gadget đem đến đã làm say mê rất nhiều người. Trong khóa luận tốt nghiệp này, tác giả đề cập đến việc xây dựng một ứng dụng Gadget trên các hệ điều phổ biến như Windowns XP, Vista. Kết nối đến các dich vụ web để truy xuất dữ liệu hiện thị cho người sử dụng những thông tin như thời tiết, tỷ giá ngoại tệ, tin tức cập nhật…Hiện nay có rất nhiều trang web cung cấp dich vụ này, ứng dụng trong KTTN cho phép người dùng tùy chọn lấy thông tin được cung cấp bởi những trang web uy tín. Ngoài phương pháp lấy tin phổ biến thường được sử dụng từ những trang web cung cấp dữ liệu với đinh dạng chuẩn chia sẻ dữ liệu như XML, RSS feed. Khóa luận tốt nghiệp cũng đề cập và nghiên cứu đến phương pháp để lấy thông tin từ một trang web bất kỳ và cố gắng giải quyết bằng cách sử dụng các kĩ thuật của Web Spider đọc và trích xuất thông tin dựa vào các từ khóa và biểu thức chính quy (regular expression) để bóc tách một trang HTML …

pdf47 trang | Chia sẻ: nhungnt | Lượt xem: 2127 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng ứng dụng Gadget, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
[ ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Minh Hưng XÂY DỰNG ỨNG DỤNG GADGET KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Minh Hưng XÂY DỰNG ỨNG DỤNG GADGET KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hướng dẫn:Nguyễn Thị Hậu HÀ NỘI - 2010 iLỜI CẢM ƠN Trước tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc đến cô giáo Nguyễn Thị Hậu người đã tận tình chỉ bảo hướng dẫn tôi trong suốt quá trình thực hiện khoá luận tốt nghiệp. Tôi xin bày tỏ lời cảm ơn sâu sắc đến các thầy cô giáo đã giảng dạy tôi trong suốt bốn năm học qua, đã cho tôi nhiều kiến thức quý báu để tôi vững bước trên con đường học tập của mình. Tôi xin gửi lời cảm ơn tới các bạn trong lớp K51CD, và K51CHTTT đã ủng hộ khuyến khích tôi trong suốt quá trình học tập tại trường. Với lòng biết ơn chân thành, tôi xin gởi lời chúc sức khoẻ và những gì tốt đẹp nhất đến các thầy cô trong khoa, trong nhà trường, những bậc cha mẹ, anh chị đáng kính và toàn thể các bạn bè hiện đang còn học hoặc không còn học tại trường Đại Học Công Nghê-Đại Học Quốc Gia Hà Nội. Hà Nội, ngày 10 tháng 05 năm 20010 Trần Minh Hưng ii TÓM TẮT NỘI DUNG Gadget lần đầu được Microsoft giới thiệu trên Windows Vista, được xây dựng nhằm hỗ trợ người sử dụng quản lý tài nguyên hệ thống, bộ nhớ, đĩa cứng, lịch, đồng hồ, xem thông tin về thời tiết, tỷ giá, tin tức…Các tiện ích này được đặt trên thanh Windown Sidebar properties chiếm một phần trên desktop và có thể dễ dàng tùy chỉnh. Không chỉ với vẻ hào nhoáng bề ngoài, những thuận tiện mà Gadget đem đến đã làm say mê rất nhiều người. Trong khóa luận tốt nghiệp này, tác giả đề cập đến việc xây dựng một ứng dụng Gadget trên các hệ điều phổ biến như Windowns XP, Vista. Kết nối đến các dich vụ web để truy xuất dữ liệu hiện thị cho người sử dụng những thông tin như thời tiết, tỷ giá ngoại tệ, tin tức cập nhật…Hiện nay có rất nhiều trang web cung cấp dich vụ này, ứng dụng trong KTTN cho phép người dùng tùy chọn lấy thông tin được cung cấp bởi những trang web uy tín. Ngoài phương pháp lấy tin phổ biến thường được sử dụng từ những trang web cung cấp dữ liệu với đinh dạng chuẩn chia sẻ dữ liệu như XML, RSS feed. Khóa luận tốt nghiệp cũng đề cập và nghiên cứu đến phương pháp để lấy thông tin từ một trang web bất kỳ và cố gắng giải quyết bằng cách sử dụng các kĩ thuật của Web Spider đọc và trích xuất thông tin dựa vào các từ khóa và biểu thức chính quy (regular expression) để bóc tách một trang HTML … iii MỤC LỤC LỜI CẢM ƠN .................................................................................................... i TÓM TẮT NỘI DUNG .................................................................................... ii MỤC LỤC........................................................................................................ iii BẢNG CÁC KÍ HIỆU VIẾT TẮT....................................................................v DANH MỤC HÌNH VẼ....................................................................................vi MỞ ĐẦU ............................................................................................................1 Chương 1: Giới thiệu Gadget............................................................................2 1.1. Gadget ..........................................................................................................2 1.2. Cấu trúc một Gadget.....................................................................................3 1.3. Phân loại.......................................................................................................5 1.4. Dữ liệu mà Gadget sử dụng ..........................................................................6 Chương 2: Các kiến thức nền tảng và công nghệ liên quan ............................7 2.1. Giới thiệu về XML .......................................................................................7 2.1.2. Tại sao lại sử dụng XML....................................................................8 2.1.3. Những thành phần của một tài liệu XML ...........................................8 2.1.4. Một tài liệu XML hợp lệ ....................................................................9 2.2. Tìm hiểu RSS .............................................................................................10 2.2.1. Tại sao nên sử dụng RSS..................................................................10 2.2.2. Những điểm mạnh của RSS .............................................................11 2.2.3. Ứng dụng RSS trong việc xây dựng Gadget .....................................12 2.3. Xpath..........................................................................................................13 2.3.1. Giới thiệu .........................................................................................13 2.3.2. Cú pháp của Xpath...........................................................................13 2.3. Tìm hiểu về AJAX......................................................................................15 2.3.1. Mô hình DOM .................................................................................16 2.3.2. Cơ chế hoạt động của AJAX ............................................................17 iv 2.5. Web Spider.................................................................................................20 2.5.1. Trích xuất thông tin sử dụng Web Spider .........................................21 2.5.2. HTML Tidy .....................................................................................22 2.5.3. CURL ..............................................................................................23 2.5.4. Regular Expression ..........................................................................24 Chương 3: Xây dựng ứng dụng Gadget .........................................................26 3.1. Mô tả chức năng .........................................................................................26 3.1.1. Chức năng xem thông tin thời tiết ....................................................26 3.1.2. Chức năng xem thông tin về ngoại tệ ...............................................26 3.1.3. Chức năng xem thông tin về giá vàng ..............................................26 3.1.4. Chức năng xem tin tức .....................................................................27 3.1.5. Chức năng tìm kiếm thông tin từ trang web bất kỳ ...........................27 3.2. Cấu trúc của chương trình...........................................................................27 3.3. Xây dựng luật để tìm kiếm thông tin từ trang web bất kỳ............................29 3.4. Một số giao diện của ứng dụng ...................................................................30 Chương 4: Cài đặt và thực nghiệm.................................................................35 4.1. Cài đặt ứng dụng ........................................................................................35 4.2. Kết quả thực nghiệm...................................................................................35 4.2.1 Thực nghiệm chức năng chương trình ...............................................35 4.2.2 Thực nghiệm trên hệ điều hành .........................................................36 Chương 5: Kết Luận và hướng phát triển......................................................37 5.1. Kết luận ......................................................................................................37 5.2.Các hạn chế của ứng dụng ...........................................................................37 5.3. Hướng phát triển tiếp theo ..........................................................................37 Tài liệu tham khảo...........................................................................................39 vBẢNG CÁC KÍ HIỆU VIẾT TẮT Kí hiệu Diễn giải AJAX Ansynchronous Javascript and XML API Application Programming Interface CSS Cascading Style Sheet DOM Document Object Model HTML Hyper Text Markup Language HTTP Hyper Text Transfer Protocol REGEXP Regular Expression RSS Really Simple Syndication XML Extensible Markup Language XHTML Extensible HyperText Markup Language W3C World Wide Web Consortium vi DANH MỤC HÌNH VẼ Hình 1: Minh họa Gadget ....................................................................................3 Hình 2: Các file chính của một Gadget. ...............................................................5 Hình 3: Phân loại Gadget.....................................................................................5 Hình 4: Các nguồn dữ liệu mà Gadget sử dụng....................................................6 Hình 5: Mô hình một Data application Gadget.....................................................7 Hình 6: Minh họa cấu trúc dạng cây của file XML. ...........................................15 Hình 7: Minh họa cấu trúc DOM của một trang HTML. ....................................17 Hình 8: Mô hình tương tác trong một ứng dụng web truyền thống.....................18 Hình 9: Mô hình tương tác trong ứng dụng web dùng AJAX.............................19 Hình 10: So sánh hai mô hình ứng dụng web: truyền thống và sử dụng AJAX ..20 Hình 11 : Cấu trúc của ứng dụng Gadget. ..........................................................28 Hình 12 : Giao diện hiện thị thông tin thời tiết...................................................30 Hình 13 : Giao diện hiện thị thông tin tỷ giá ngoại tệ.........................................30 Hình 14 : Giao diện hiện thị thông tin giá vàng..................................................31 Hình 15 : Giao diện hiện thi tin tức và cửa sổ flyout. .........................................31 Hình 16 : Giao diện hiện thị thông tin thời tiết từ trang bất kỳ. ..........................32 Hình 17: Giao diện tùy chọn thông tin thời tiết. .................................................32 Hình 18: Giao diện tùy chọn thông tin về tỷ giá ngoại tệ. ..................................33 Hình 19: Giao diện tùy chọn thông tin về giá vàng. ..........................................33 Hình 20: Giao diện tùy chọn về tin tức. .............................................................34 Hình 21: Giao diện tùy chọn thông tin từ trang web bất kỳ. ...............................34 1MỞ ĐẦU Với sự phát triển mạnh mẽ của Internet trong những năm gần đây, đặc biệt là sự bùng nổ của World Wide Web, Internet đang làm thế giới thay đổi từng ngày, từng giờ. Internet cùng với các dịch vụ hỗ trợ đã trở nên không thể thiếu cho hoạt động của từng cá nhân cho đến từng doanh nghiệp.Tuy nhiên cùng với sự phát triển và phổ cập của Internet thì thông tin ngày càng trở nên đa dạng và có sự trùng lặp.Việc lựa chọn và cập nhật thông tin một cách chính xác, nhanh chóng và thuận tiện là một vấn đề đặt ra.Gadget là một ứng dụng mà ngay từ khi ra mắt trên hệ điều hành Windowns Vista đã không chỉ thể hiện được sự hữu ích và thuận tiện của nó mà còn góp phần trang trí cho màn hình destop của bạn. Gadget đem lại rất nhiều lợi ích và việc sử dụng nó hiện nay đã trở thành một nhu cầu rất phổ biến và thiết thực. Vì vậy mục tiêu của khóa luận là “Xây dựng ứng dụng Gadget” kết nối đến các dich vụ web để truy xuất dữ liệu và hiện thị ra cho người dùng cuối như: khai thác dịch vụ RSS, tỉ giá trao đổi ngoại tệ, tỉ giá vàng, thông tin thời tiết các vùng, miền…Ứng dụng cho phép người sử dụng chọn nguồn lấy thông tin từ các trang web uy tín hay một trang web khác mà người sử dụng mong muốn. Khóa luận tập chung nghiên cứu các phương pháp lấy thông tin từ các nguồn như RRS, XML feed, các Webservices hay Web page, tìm hiểu cách mà Gadget kết nối đến các dịch vụ để lấy thông tin cập nhật mới nhật và tương tác với người sử dụng. Kết cấu của khoá luận bao gồm các chương sau: - Chương 1: Giới thiệu về Gadget. Nêu các khái niệm cơ bản, phân loại, cấu trúc, và nguồn dữ liệu mà Gadget sử dụng. - Chương 2: Tìm hiểu, phân tích các kiến thức nền tảng và các công nghệ liên quan. AJAX, XML, RSS, Xpath, và các kĩ thuật sử dụng của Web Spider lấy thông tin từ một trang web bất kỳ. - Chương 3: Xây dựng ứng dụng Gadget. Mô tả các chức năng, các module, giao diện của chương trình. - Chương 4: Cài đặt và thực nghiệm Gadget. - Chương 5: Kết luận và hướng phát triển. 2Chương 1: Giới thiệu Gadget Gadget có thể chạy trên nhiểu nền tảng khác nhau, Có 3 dạng nền tảng Gadget của Microsoft đó là [8] :  Sidebar Gadget hay còn gọi là Windown Sidebar: sử dụng trên màn hình desktop của máy tính để bàn hay xách tay.  Web Gadget: chạy trên bất cứ trình duyệt web nào và thường được lưu trữ trong Live.com hoặc Live Spaces.  SideShow Gadget: là các thiết bị phần cứng sử dụng trên máy tính xách tay hay các thiết bị thông minh di động… Trong khóa luận chỉ đề cập đến các ứng dụng Sidebar Gadget và gọi tắt Gadget. Trong chương này tác giả sẽ trình bày nhưng khái niệm cơ bản về Gadget, cấu trúc, phân loại, nguồn dữ liệu mà Gadget sử dung. 1.1. Gadget Gadget là một tiện ích nhỏ gắn trên thanh sidebar hay bất kỳ vị trí nào bạn muốn trên màn hình desktop, cung cấp nhiều thông tin hữu ích như lịch, đồng hồ, nhật kí, CPU… ngoài ra có thể kết nối với dịch vụ web để cung cấp những dữ liệu doanh nghiệp, tỷ giá ngoại tệ,thông tin chứng khoán, thông tin thời tiết, tin tức cập nhật, bản đồ giao thông hay các album ảnh trực tuyến....Gadget cũng có thể tích hợp với các chương trình khác để cung cấp sự sắp xếp, tương tác hợp lý. 3Hình 1: Minh họa Gadget Gadget cho phép bạn truy cập nhanh vào các ứng dụng web hay truy cập vào chính chiếc máy tính của bạn. Nó làm giảm khoảng cách giữa thông tin hữu ích và người sử dụng bằng cách cung cấp thông tin trong một định dạng sẵn sàng trên Gadget, qua đó giúp người sử dụng tiết kiệm được thời gian và cũng như thao tác. Đối với nhiều người Gadget là một tiện ích tuyệt vời với nhiều tính năng mới trong hệ điều hành Windowns Vista. Gadget cung cấp các thông tin mà người dùng cần truy cập thường xuyên hay các công cụ với đa dạng chức năng sẵn sàng để sử dụng và dễ dàng truy nhập được thiết kế tiết kiệm tối đa bộ nhớ của CPU. Thực chất nó không phải một dạng file thực thi kiểu mới mà nó bao gồm HTML, CSS, XML, JavaScript,và các tập tin hình ảnh tất cả phối hợp để làm nên một Gadget. Có thể lưu trữ một trang web mini, gọi một dich vụ web, tích hợp một ứng dụng kinh doanh thương mại, hoặc thậm chí gọi các API hệ thống để tạo ra một ứng dụng tùy chỉnh. 1.2. Cấu trúc một Gadget Gadget là một tiện ích được phát triển bằng cách sử dụng công nghệ web như là HTML, CSS, và JavaScript hoặc có thể sử dụng các công nghệ DHTML, AJAX và ActiveX COM cho chức năng cao cấp. Một tiện ích có thể được dùng như một ứng dụng HTML với các tính năng tiên tiến. Tất cả các giao diện sử dụng trong các tiện ích, các tiện ích chính của cửa sổ, các trang cài đặt, cũng như cửa sổ flyout, tất cả đều là trang HTML. Các file chính của một Gadget : -Gadget.xml : Đây là file rất quan trọng , nó lưu trữ các thông số cấu hình của Gadget, tên tác giả, phiên bản sản phẩm, bản quyền, thông tin URL.. dưới dạng thức XML. full 4 -Dòng bôi đen đầu tiên cho biết file html được đưa lên Gadget là file gadget.html ở cùng thư mục, dòng bôi đen thứ 2 xác định quyền hạn Gadget này là toàn quyền truy xuất hệ thống, nếu không đặt là full thì các chức năng truy xuất hệ thống của gadget có thể sẽ không dùng được do bị lỗi cấm truy nhập. -File [Gadget_Name].html : hầu hết các Gadget đều có 3 tập tin HTML cho cửa sổ chính (đây là file được xác định thông qua tag : src trong file XML chính, file HTML này sẽ được hiện thị khi Gadget được cài đặt), trang cài đặt và cửa sổ flyout. Mỗi trang HTML này include đến các file CSS và JavaScript tương ứng. -Các file .CSS : viết tắt của chữ Cascades Style Sheet, các file này được dùng để mô tả cách trình bày của các phân tử trong file HTML tương ứng, rất quen thuộc với các ứng dụng web. -Các file .JS : là thành phần cốt lõi của ứng dụng Gadget. Nếu như coi các thành phần HTML và cách trình bày CSS là khung xương và cơ thể thì Javascript là thành phần làm nên sức sống cho các ứng dụng Gadget. Nó chứa các đoạn mã thực thi các chức năng của Gadget, xử lí thông tin và hiện thị cho người dùng cuối. 5Hình 2: Các file chính của một Gadget. 1.3. Phân loại Nếu dựa trên tiêu chí là các công nghệ để cấu thành lên gadget thì có tất cả 3 loại Gadget [8]: -Mini web application: ứng dụng web nhỏ sử dụng HTML,CSS và các script ( Vbscript,Javascript...) -Data application : ứng dụng có truy xuất dữ liệu sử dụng HTML ,DHTML, DOM, AJAX. Gadget loại này có thể kết nối đến các dịch vụ web để truy xuất dữ liệu và hiển thị ra cho người dùng cuối như: khai thác dịch vụ RSS, chỉ số chứng khoán, thông tin thời tiết các vùng miền…Đây cũng là Gadget mà khóa luận sẽ xây dựng ở các chương tiếp theo của khóa luận. -Mini utilities : có tác dụng như một tiện ích dùng ActiveX object, Gadget API và DHTML…ví dụ như các Gadget đo CPU, hiển thị đồng hồ số… hay thậm chí là các tiện ích truy xuất tài nguyên hệ thống và rất nhiều công việc khác. Hình 3: Phân loại Gadget 61.4. Dữ liệu mà Gadget sử dụng Gadget cung cấp thông tin và tương tác với người sử dụng một cách độc đáo. Nó có thể truy xuất thông tin từ nhiều nguồn khác nhau :  RSS/XML .  Các trang web.  Các dịch vụ web.  Tài nguyên hệ thống : file, folder.  Và đương nhiên truy xuất được vào các hệ quản trị dữ liệu nhờ ActiveX object [8]… Hình 4: Các nguồn dữ liệu mà Gadget sử dụng. 7Chương 2: Các kiến thức nền tảng và công nghệ liên quan Trong chương trước chúng ta đã biết ứng dụng mà khóa luận hướng đến là một Data application Gadget truy xuất đến các nguồn dữ liệu là XML, RSS hay các trang web sử dụng DOM, AJAX, Xpath…để phân tích lấy dữ liệu trả về sau đó hiện thị trên Gadget. Hình 5: Mô hình một Data application Gadget. Trong chương này khóa luận sẽ trình bày những nét cơ bản về các công nghệ này, những điểm nội bật nhất và vai trò của chúng trong việc xây dựng ứng dụng Gadget. 2.1. Giới thiệu về XML Như trình bày trong phần trước thì một trong những nguồn truy xuất dữ liệu chính của Gadget là các file XML. Vậy thì XML là gì? Và vì sao nó lại được sử dụng trong việc lấy thông tin từ các trang web? XML (Extensible Markup Language) ra đời tháng 2/1998, là ngôn ngữ có kiến trúc gần giống HTML nhưng XML nhanh chóng trở thành một chuẩn phổ biến trong 8việc chuyển đổi thông tin qua các trang web sử dụng giao thức HTTP. Trong khi HTML là ngôn ngữ chủ yếu về hiện thị dữ liệu thì XML lại phát triển mạnh về việc truyền tải ,trao đổi và thao tác dữ liệu bằng XML. XML đưa ra một định dạng chuẩn cho cấu trúc của dữ liệu hoặc thông tin bằng việc tự định nghĩa định dạng của tài liệu. Bằng cách này dữ liệu được lưu trữ bằng XML sẽ độc lập với việc xử lí.Vì vậy XML ra đời đáp ứng được yêu cầu ngày càng cao của các nhà lập trình trong vấn đề trao đổi và xử lí thông tin. Bản thân của XML tuy không có gì khó hiểu, nhưng các công cụ chuẩn được định ra để làm việc với XML như Document Object Model - DOM, XPath, XSL, v.v.. thì rất hữu hiệu, và chính các chuẩn nầy được phát triển không ngừng . 2.1.2. Tại sao lại sử dụng XML Trong qua trình xây dựng và phát triển, XML đã đối mặt và đối đầu với nhiều thử thách trong việc thuyết phục người lập trình rằng XML là sự lựa chọn hàng đầu vì nó dễ hiểu, dễ đọc và dễ dàng thực hiện. Sau đây là một số lợi ích mà việc sử dụng XML đem lại: -XML có thể tách rời dữ liệu . Sử dụng XML, dữ liệu được chứa trong các tập tin XML riêng biệt. -XML có thể mô tả thông tin của những đối tượng phức tạp mà cơ sở dữ liệu quan hệ không thể giải quyết được. -XML có thể dùng để chuyển đổi dữ liệu giữa các hệ thống không tương thích. -XML được dùng để chia sẻ dữ liệu với những tập tin văn bản đơn giản dễ hiểu . -XML cũng được dùng để lưu trữ dữ liệu, có thể