Đề tài Nghiên cứu và phát triển hệ thống xây dựng và vận hành tự động webbot thu thập thông tin trên internet để cung ứng các dịch vụ web theo yêu cầu

MỤC LỤC Chương 1 Mở đầu. 1 1.1.Giới thiệu Web 2.0 và xu hướng phát triển. 1 1.2.Giới thiệu về đề tài2 1.3.Mục tiêu của đề tài2 1.4.Nội dung của luận văn. 3 Chương 2 Khảo sát hiện trạng. 5 2.1.Khảo sát các công cụ tự động hóa và rút trích thông tin trên web. 5 2.1.1.Kapow Mashup Server. 5 2.1.2.iMacros. 9 2.1.3.Newbie Web Automation. 13 2.1.4.Automation Anywhere. 15 2.1.5.SWExplorerAutomation (SWEA). 19 2.2.Bảng so sánh chức năng các hệ thống. 21 2.3.Kết luận. 22 Chương 3 Các vấn đề và giải pháp cho hệ thống xây dựng và vận hành robot thu thập thông tin trên internet23 3.1.Tạo và thực thi robot23 3.2.Môi trường tạo hướng dẫn cho robot24 3.3.Chọn lựa công cụ tương tác web. 26 3.3.1.WebBrowser control (.NET Framework). 27 3.3.2.AxWebBrowser (ActiveX). 27 3.3.3.csEXWB (opensource). 27 3.4.Các yêu cầu đặt ra cho môi trường tạo hướng dẫn. 27 3.4.1.Yêu cầu hiển thị trực quan cấu trúc trang web. 28 3.4.2.Yêu cầu thay đổi context menu. 29 3.4.3.Yêu cầu ghi nhận hành động của người dùng. 30 3.4.4.Yêu cầu thực hiện lại những thao tác của người dùng. 31 3.4.5.Yêu cầu rút trích dữ liệu. 31 3.4.6.Yêu cầu lưu lại các hành động để tạo robot31 3.5.Ghi nhận hành động của người dùng. 32 3.5.1.Click. 33 3.5.2.Chọn giá trị trong combobox. 33 3.5.3.Gõ văn bản. 33 3.5.4.Submit form33 3.6.Thực hiện lại hành động của người dùng. 33 3.6.1.Click. 34 3.6.2.Chọn giá trị trong combobox. 34 3.6.3.Gõ văn bản. 34 3.6.4.Submit form34 3.7.Rút trích dữ liệu. 34 3.7.1.Dữ liệu text34 3.7.2.Dữ liệu là hình ảnh. 35 3.7.3.Dữ liệu là một url35 3.8.Cách xác định HTML Element trong HTML Document35 3.8.1.HTML Element thông thường. 35 3.8.2.TableRow36 3.9.Trang web có sử dụng FRAME hoặc IFRAME36 3.10.Tương tác với các thành phần AJAX37 3.11.Các hộp thoại Javascript37 3.12.Session và cookie. 38 3.12.1.Vấn đề ghi nhớ đăng nhập. 38 3.12.2.Tải các dữ liệu yêu cầu đăng nhập. 38 3.13.Cung cấp kết quả cho người dùng. 38 Chương 4 Tổng quan toàn bộ hệ thống. 40 4.1.Giới thiệu tổng quan. 40 4.2.Kiến trúc hệ thống. 41 4.2.1.Tầng Data. 43 4.2.2.Tầng Business. 44 4.2.3.Tầng Data Presentation. 44 4.2.4.Tầng Application. 45 4.3.Kết luận. 45 Chương 5 Phân hệ WebBot Creator. 46 5.1.Giới thiệu. 46 5.2.Qui trình tạo WebBot48 5.3.Kiến trúc. 49 5.4.Quy trình sử dụng. 50 5.5.Kết luận. 55 Chương 6 Phân hệ WebBot Online Manager. 56 6.1.Giới thiệu. 56 6.2.Qui trình upload WebBot57 6.3.Qui trình gửi kết quả thực thi WebBot58 6.4.Kiến trúc. 60 6.5.Các chức năng trong phân hệ WebBot Online Manager. 61 6.5.1.Các chức năng thông dụng. 61 6.5.2.Các chức năng của quản trị viên. 62 6.5.3.Các chức năng của người dùng thông thường. 63 6.6.Kết luận. 65 Chương 7 Phân hệ WebBot Watcher. 66 7.1.Giới thiệu. 66 7.2.Qui trình theo dõi yêu cầu thực thi WebBot66 7.3.Qui trình thực thi WebBot67 7.4.Kiến trúc. 68 7.5.Các chức năng trong phân hệ WebBot Watcher. 69 7.6.Kết luận. 70 Chương 8 Phân hệ WebBot Services. 71 8.1.Giới thiệu. 71 8.1.1.Web service. 71 8.1.2.Feed. 73 8.1.3.Web clip. 74 8.2.Kiến trúc. 75 8.3.Kết luận. 76 Chương 9 Kết luận. 77 9.1.Các kết quả đạt được. 77 9.2.Hướng phát triển của đề tài TÓM TẮT KHÓA LUẬN Ngày nay, Internet đã trở thành một dịch vụ thông dụng và phổ biến trên thế giới. Cùng với sự phát triển của Internet, nhu cầu truy xuất thông tin qua mạng của con người ngày càng tăng. Với một khối lượng dữ liệu khổng lồ như hiện nay sẽ khiến cho người dùng vô cùng khó khăn khi muốn tìm kiếm một thông tin nào đó phục vụ cho nhu cầu của mình. Xuất phát từ thực tế này, nhu cầu tổng hợp và rút trích thông tin đã trở thành một nhu cầu cấp bách và không thể thiếu được. Đây cũng chính là mục tiêu trong đề tài nghiên cứu của chúng em. Nội dung đề tài tập trung vào việc nghiên cứu và phát triển hệ thống xây dựng và vận hành tự động WebBot thu thập thông tin trên Internet để cung ứng các dịch vụ web theo yêu cầu. Hệ thống này sẽ giúp cho người dùng có thể thu thập nhiều thông tin khác nhau một cách tự động. Quá trình thu thập thông tin sẽ được hệ thống ghi nhận lại dưới tập tin XML được gọi là WebBot. Hệ thống sẽ tự động vận hành các WebBot theo một chu kỳ định trước để thu thập các thông tin cần thiết theo yêu cầu của người dùng. Đồng thời, hệ thống cung cấp các dịch vụ để truyền dữ liệu đầu ra cho người dùng tại một địa chỉ nhất định theo các định dạng theo yêu cầu của mà người dùng hoặc các hệ thống khác. Dựa vào hệ thống xây dựng sẽ là một máy rút trích tổng quát phục vụ cho nhiều nhu cầu rút trích thông tin ứng dụng trong nhiều lĩnh vực khác nhau như chứng khoán, tổng hợp tin tức, tìm kiếm bài hát, phần mềm, Nội dung khóa luận bao gồm 9 chương: Chương 1: Mở đầu Chương 2: Khảo sát hiện trạng Chương 3: Các vấn đề và giải pháp cho hệ thống xây dựng và vận hành robot thu thập thông tin trên web Chương 4: Tổng quan toàn bộ hệ thống Chương 5: Phân hệ WebBot Creator Chương 6: Phân hệ WebBot Online Manager Chương 7: Phân hệ WebBot Watcher Chương 8: Phân hệ WebBot Services Chương 9: Kết luận và hướng phát triển hệ thống 78

docx97 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2559 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu và phát triển hệ thống xây dựng và vận hành tự động webbot thu thập thông tin trên internet để cung ứng các dịch vụ web theo yêu cầu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
kết với các hệ thống khác Giải pháp Dựa vào các chỉ thị của người dùng cần rút trích dữ liệu nào của đối tượng nào. Hệ thống sẽ tìm đến đúng HTML Element đó để rút dữ liệu. Dữ liệu cần rút trích có thể là text, url, HTML source, hay hình ảnh, nhạc, video, … Xem chi tiết ở mục 3.7 Yêu cầu lưu lại các hành động để tạo robot Vấn đề Một môi trường tạo hướng dẫn cho robot còn phải có khả năng cho người dùng lưu lại các hướng dẫn mà mình đã thực hiện để robot có thể thực thi lại.Yêu cầu đặt ra là ta phải lưu lại script hướng dẫn đó dưới định dạng lưu trữ nào: nhị phân, text, cơ sở dữ liệu hay XML, ...? Giải pháp Nếu tham khảo các công nghệ hiện tại thì đương nhiên XML sẽ làm một ứng cử viên sáng giá. Ta có thể dùng Seriallization để dễ dàng nhanh chóng đọc và lưu nội dung thành XML. Nhưng nếu tùy vào mục đích sử dụng chương trình hệ thống phải hỗ trợ các kiểu lưu robot khác nhằm tăng tính bảo mật của robot. Ngoài ra, môi trường còn nhiều yêu cầu khác nữa. Đó chỉ là những yêu cầu tối thiểu mà một môi trường tạo hướng dẫn và thực thi robot cần phải có để thực thi được việc rút trich thông tin tự động trên Internet. Và các yêu cầu đó cũng chính là những vấn đề mà nhóm gặp phải khi xây dựng hệ thống tự đông rút trích và so sánh thông tin giá cả các sản phẩm điện tử. Ghi nhận hành động của người dùng Ứng dụng phải có khả năng ghi nhận lại các hành động của người dùng để việc tạo robot trở nên hoàn toàn trong suốt với người dùng. Nghĩa là người dùng tương tác với ứng dụng như là một trình duyệt web thông thường, ứng dụng sẽ ngầm định lưu lại mọi hành động của người dùng để tạo robot. Hướng tiếp cận đầu tiên là theo dõi tất cả sự kiện của tất cả element trong một trang web. Đây là một cách đơn giản và không bỏ sót các sự kiện nào của trang web. Nhưng số lượng các element trong một trang web rất lớn và người dùng chỉ thao tác lên một số ít element do đó việc gắn các hàm theo dõi sự kiện vào tất cả các element gây mất nhiều thời gian và tốn nhiều tài nguyên. Một hạn chế cực kì nghiêm trọng của hướng tiếp cận này chính là việc theo dõi các element được tự động thêm vào khi trang web có sử dụng AJAX. Dẫn đến không thể ghi nhận các hành động khi người dùng thao tác trên các element mới này. Một cách nhẹ nhàng và nhanh chóng hơn là theo dõi sự kiện chuột và bàn phím của người dùng để phát sinh các hành động tổng quát của người dùng lên trang web. Sau đây là các hành động tiêu biểu khi duyệt web: Click Đây là thao tác khi người dùng kích chuột vào một đối tượng trên trang web hoặc hành động bấm Space, Enter khi có một đối tượng đang được kích hoạt. Để nhận biết hành động này ta xem xét sự kiện kích chuột trái lên đối tượng và sự kiện bấm phím Enter hay Space khi đối tượng đang được kích hoạt không được dùng để nhập text. Chọn giá trị trong combobox Đây là hành động người dùng thay đổi giá trị trong combobox, cũng chính là thay đổi giá trị chứa bên trong thẻ . Ứng dụng sẽ ghi nhận bằng cách theo dõi sự kiện onchange của element đang được kích hoạt. Gõ văn bản Đây là hành động người dùng điền giá trị vào một hoặc một . Ứng dụng sẽ theo dõi và so sánh giá trị ban đầu và giá trị mới do người dùng để biết được có sự thay đổi nội dung do người dùng nhập vào. Submit form Hành động này xảy ra khi người dùng bấm Enter để bắt đầu gửi dữ liệu lên trang web. Ta sẽ xác định form đang chứa element đang được kích hoạt từ đó biết được form nào sẽ được submit khi có hành động này. Thực hiện lại hành động của người dùng Sau khi ghi nhận các hành động của người dùng dĩ nhiên robot phải có khả năng lập lại các hành động đó để sử dụng cho các lần sau. Robot phải thông minh để có khả năng thực hiện tất cả mọi hành động có thể có của người dùng khi đang duyệt web tìm kiếm thông tin. Sau khi thực hiện bất cứ hành động nào nếu có sự chuyển trang ứng dụng cần phải đợi cho trình duyệt web đổi sang trang mới để có thể thực hiện hành động tiếp theo. Dưới đây là cách để thực hiện lại các hành động của người dùng, phần định nghĩa các hành động có thể xem tại mục 3.5. Click Thực hiện lại hành động Click lại dễ hơn rất nhiều so với việc ghi nhận hành động. Ta chỉ cần gọi hàm click() trong interface IHTMLElement của đối tượng mà ta cần click. Chọn giá trị trong combobox Ứng với hành động này ta thay đổi biến value trong interface IHTMLSelectElement thành giá trị mong muốn. Ngoài ra cũng cần phải kích hoạt sự kiện onchange của để trang web nhận biết và gọi các hàm Javascript tương ứng. Gõ văn bản Mỗi element đều có biến value của IHTMLElement, ta chỉ cần cập nhật lại biến này. Submit form Submit form bằng cách gọi hàm submit() của interface IHTMLFormElement. Rút trích dữ liệu Dữ liệu text Dữ liệu text bao gồm phần text của một hay nhiều element, hoặc phần mã HTML của một hay nhiều element. Để rút trích dữ liệu đầu tiên cần xác định được element cần rút trích dữ liệu sau đó thông qua các hàm innerText(), innerHTML(), outterText(), outterHTML() của IHTMLElement. Dữ liệu là hình ảnh Hình ảnh trên trang web tồn tại ở hai dạng, hình ảnh của thẻ hoặc là hình nền của một HTML element. Ta sẽ xác định url của ảnh và lấy nội dung của ảnh, đây cũng là cách lấy dữ liệu của một url ở mục sau. Dữ liệu là một url Để lấy dữ liệu trên một url ta có hai cách sau: Sử dụng chính csEXWB để tải nội dung của url. Cách này có ưu điểm là lấy được những dữ liệu yêu cầu cookie và session. Cách thứ hai là chuyển url sang một trình hỗ trợ download khác. Cách này sẽ quản lý và tăng tốc độ các file tải về. Nhưng lại mắc yếu điểm là không thể tải được dữ liệu yêu cầu cookie và session. Cách xác định HTML Element trong HTML Document HTML Element thông thường Để thao tác hoặc rút trích dữ liệu trên một trang web ta cần phải xác định đúng vị trí của element đó trong trang web. Ta có những các xác định element như sau: Xác định thông qua ID Trong một document nếu một element có ID thì ID đó là duy nhất do đó ta có thể dựa vào ID này để để xác định element đó. Xác định thông qua name Đối với chuẩn HTML cũ một element cũng có thể có trường name, nhưng không chắc rằng name này là duy nhất. Để xác định element thông qua trường name này ta cần phải thêm một tham số là index của element có cùng name trong document. Xác định thông qua một HTML element khác đã được xác định Nếu element không có trường ID lẫn trường name ? Ta phải xác định element dựa vào element cha của nó. Từ element cần xác định ta tuần tự lần lên element cha của nó cho đến khi element cha đó đã được xác định. Như vậy để xác định element này ta dựa vào element đã được xác định và đường đi từ element cha đến element cần xác định. TableRow Dữ liệu kiểu bảng là dữ liệu thường thấy trong việc thể hiện nội dung của một trang web (chứng khoán, …). Do đó để thuận tiện cho việc truy xuất nội dung của từng ô của Table ta định nghĩa các cách xác định một dòng của table như sau: Xác định thông qua chỉ số dòng Đây là cách thông thường nhất để xác định một dòng trong một bảng. Xác định thông qua giá trị của một cột xác định Trong trường hợp bảng có một cột để dùng để xác định chỉ mục cho từng dòng của bảng. Ví dụ : trong bảng giao dịch chứng khoán cột đầu tiên ghi mã cổ phiếu, ta dựa vào cột này để xác định các trường khác bao gồm giá tham chiếu, giá trần, giá sàn, … Trang web có sử dụng FRAME hoặc IFRAME Ở mục trên ta đã biết cách xác định một HTML Element trong một HTML Document. Một trang web có thể bao gồm nhiều FRAME hoặc IFRAME do đó để xác định HTML Element này trên trang web ta cần phải xác định được element này thuộc vào document nào. Vì thế ta cần phải ghi nhận thêm cấu trúc của document trong trang web và xác định document chứa element. Tương tác với các thành phần AJAX Vấn đề Các thành phần AJAX là các thành phần được hiển thị sau khi trang đã hiển thị hoàn tất. Ngoài vấn đề ghi nhận hành động của người dùng trên các thành phần AJAX ở mục 3.5, thì vấn đề thực hiện lại của người dùng cũng gặp phải khó khăn. Đó chính là phải biết được chính xác khi nào những element đó đã được thêm vào trang web. Thêm nữa việc rút trích dữ liệu AJAX cũng gặp khó khăn để nhận biết đâu là dữ liệu thực sự người dùng muốn lấy. Giải pháp Để xác định khi nào element được thêm vào trang web khi nội dung trang web đã tải hoàn tất ta phải liên tục kiểm tra sự tồn tại của element trên trang web và chỉ tương tác khi element đó được tải hoàn tất. Để xác định dự liệu bên trong element có phải là dữ liệu người dùng cần không ta dựa vào việc so sánh dữ liệu lấy được với mẫu dữ liệu người dùng muốn nhận. Các hộp thoại Javascript Vấn đề Vấn đề gặp phải khi trang web có hiển thị các hộp thoại thông báo hoặc xác nhận sẽ làm ngưng việc truy xuất trang web bên dưới. Một điều khá quan trọng nữa là khó có thể xác định người dùng đã chọn nút nào trong hộp thoại vì hộp thoại này nằm bên ngoài trang web. Giải pháp Cách đơn giản để giải quyết vấn đề này là ngăn chặn việc xuất hiện mọi hộp thoại Javascript bằng cách xử lý sự kiện WBDocHostShowUIShowMessage của csEXWB. Một cách tiếp cận khác là dùng CBT Hook để xác định và lặp lại hành động của người dùng lên các hộp thoại này. Session và cookie Vấn đề ghi nhớ đăng nhập Vấn đề Ta có một robot tự động gửi tin nhắn miễn phí thông qua trang web của Mobifone, robot này đầu tiên phải đăng nhập bằng số điện thoại của mình rồi bắt đầu gửi tin nhắn. Nhưng nếu ta thực hiện lại robot này lần nữa sẽ không còn ô để đăng nhập vì ở lần trước đã đăng nhập rồi, ta chỉ có thể đăng xuất mới có thể đăng nhập lại à Robot không hoạt động được. Giải pháp Để giải quyết vấn đề này ta có các cách giải quyết như sau: Trong quá trình tạo robot người dùng phải bấm vào nút đăng xuất khi kết thúc tạo robot. Xóa cookie trong mỗi lần robot hoạt động. Kiểm tra nếu tồn tại nút đăng xuất robot sẽ tự động bấm đăng xuất trước khi thực hiện tác vụ. Tải các dữ liệu yêu cầu đăng nhập Vấn đề này đã được đề cập ở mục 3.7.3. Cung cấp kết quả cho người dùng Vấn đề Người dùng ở đây có thể là một người sử dụng bình thường hoặc là một hệ thống khác. Đối với người sử dụng web thông thường kết quả trả về phải là định dạng có thể đọc hoặc xem ngay trên trình duyệt của họ. Nhưng đối với các hệ thống khác kết quả trả về phải được chuyển thông qua các dạng web service hoặc các giao thức truyền thông qua mạng khác. Thời gian xử lý và cung cấp kết quả theo yêu cầu của người dùng cũng là một vấn đề khá quan trọng. Giải pháp Tùy theo mục đích sử dụng hệ thống có thể trả về các định dạng khác nhau thông qua các dịch vụ khác nhau dựa vào mục đích của người dùng là chọn lọc thông tin thích hợp hoặc để tương tác với các hệ thống khác. Đối với người sử dụng web, hệ thống có các kiểu trả về theo dạng feed cho phép người dùng đọc nhanh các đầu đề cùng các mô tả ngắn về các chủ đề đó (đây là dạng thường gặp khi hệ thống lấy nội dung ở trang tin trên các trang báo hoặc các trang thông tin, tin tức). Đối với các hệ thống khác, hệ thống có thể cung cấp kết quả thông qua các dịch vụ web. Hệ thống hỗ trợ cả hai chuẩn SOAP web service và REST web service. Nhằm tăng tốc độ xử lý và gửi kết quả, hệ thống sẽ có cơ sở dữ liệu riêng nhằm lưu lại các kết quả thông dụng và trả kết quả nhanh chóng cho những yêu cầu sau. Tổng quan toàn bộ hệ thống ? Chương 4 sẽ giới thiệu tính năng của toàn bộ hệ thống đồng thời mô tả kiến trúc của toàn hệ thống. Ứng với mỗi phân hệ chính sẽ có những mô tả tổng quát. Giới thiệu tổng quan Hệ thống WebBot được xây dựng trên nhiều phân hệ riêng lẻ cho phép việc thay đổi và nâng cấp một cách nhanh chóng và tiện lợi nhất. Hệ thống không những có những tính năng của các hệ thống tự động hóa rút trích thông tin hàng đầu mà còn rất dễ sử dụng. Hệ thống có thể cung cấp và đáp ứng dễ dàng nhanh chóng những nhu cầu cơ bản của người sử dụng sử dụng bình thường đến những nhu cầu nâng cao cung cấp cho các hệ thống lưu trữ và xử lý thông tin khác. Sau đây là những tính năng chính của hệ thống WebBot: Giao diện trực quan sinh động dễ sử dụng Hỗ trợ tạo lập và lưu trữ các tập tin XML hướng dẫn hành động và rút trích dữ liệu Cho phép xử lý cách hành động theo các câu lệnh điều kiện, các câu lệnh lặp Hỗ trợ việc rút trích nhiều loại dữ liệu bao gồm văn bản, HTML, hình ảnh, tập tin nhị phân, … Có khả năng hoạt động tốt trên cả những trang web sử dụng frame, iframe và công nghệ AJAX Định dạnh dữ liệu xuất theo dạng cây thuận tiện cho việc gom nhóm dữ liệu, rút trích dữ liệu theo dạng bảng Có thể kết xuất dữ liệu xuống tập tin văn bản hoặc Excel Hỗ trợ trang web cho phép đăng kí và tải lên các WebBot giúp thuận tiện sử dụng hoặc chia sẻ Có thể thông qua trang web để dùng thử và xem trước kết quả cùng định dạng trả về Các định dạng hỗ trợ gồm SOAP web service, REST web service, RSS feed, ATOM feed, … Sử dụng cơ sở dữ liệu lưu trữ để ghi nhận, quản lý và tăng tốc độ thực thi và gửi kết quả đến người sử dụng Kiến trúc hệ thống Toàn bộ hệ thống WebBot bao gồm 4 thành phần chính: Thành phần Mô tả WebBot Creator Đây là thành phần cho phép tạo lập các tập tin hướng dẫn cho WebBot biết nơi cần lấy thông tin và thiết lập cấu trúc kết quả do WebBot tự động lấy về WebBot Online Manager Thành phần này cho phép upload và quản lý các WebBot tạo được ở WebBotCreator. Đồng thời cho người dùng biết địa chỉ và cách sử dụng các dịch vụ do hệ thống cung cấp. Thông qua WebBot Online Manager, người dùng có thể xem trước kết quả khi WebBot thực hiện WebBot Services Đây là thành phần chứa các dịch vụ của hệ thống bao gồm các nhóm dịch vụ sau: Liên lạc giữa các thành phần của hệ thống (gửi yêu cầu thực thi WebBot, ghi kết quả vào cơ sở dữ liệu, …) Chuyển dữ liệu do WebBot lấy về thành các dạng chuẩn tùy theo các loại dịch vụ mà hệ thống cung cấp để cung cấp cho người sử dụng hoặc các hệ thống khác WebBot Watcher Thành phần theo dõi và thực thi các yêu cầu rút trích dữ liệu được gửi đến hệ thống Bảng 41 Các thành phần chính của hệ thống WebBot Hình 41 Mô hình kiến trúc hệ thống Các thành phần của hệ thống được xây dựng trên nền tảng của nhiều công nghệ khác nhau nhằm sử dụng ưu điểm của công nghệ đó và tăng tính tiện lợi cho người sử dụng. Toàn bộ hệ thống có thể được phân thành bốn tầng bao gồm Data, Business, Data Presentation, Application. Tầng Data, tầng dưới cùng của hệ thống, chính là nơi chứa cơ sở dữ liệu của toàn bộ hệ thống. Hệ thống sẽ lưu trữ các tập tin hướng dẫn WebBot cùng với kết quả mà WebBot đó thực hiện với ứng với nhiều thông số đầu vào khác nhau. Ngoài ra hệ thống còn lưu trữ các thông tin định danh người sử dụng hệ thống, danh sách các WebBot của người sử dụng và các thông tin dùng để quản lý khác. Tầng thứ hai, Business, chính là nơi cung cấp các dịch vụ cho các thành phần của hệ thống cũng như các dịch vụ cơ bản cho người dùng. Khi có yêu cầu tầng này có nhiệm vụ tương tác với tầng Data bên dưới để cung cấp tài nguyên có các tầng bên trên. Tầng Data Presentation có nhiệm vụ chuyển đổi dữ liệu theo cấu trúc dữ liệu của hệ thống thành cấu trúc dữ liệu phù hợp với nhu cầu của người dùng. Tầng này còn là tầng cung cấp các dịch vụ trực tiếp đến người dùng hoặc các hệ thống khác bao gồm các dịch vụ Syndication Feed, các SOAP web service, REST web service. Tần trên cùng, Application, chứa các ứng dụng phục vụ người sử dụng cũng như các ứng dụng của hệ thống. Các ứng dụng chính bao gồm WebBot Creator chính là ứng dụng tạo WebBot cho phép thông qua các ứng dụng khác như WebBot Online Manger để upload lên cơ sở dữ liệu của hệ thống. Ứng dụng của hệ thống là WebBot Watcher khi hoạt động sẽ liên tục theo dõi các yêu cầu được gửi đến hệ thống, thực hiện các yêu cầu đó và gửi kết quả ngược về cơ sở dữ liệu cho các ứng dụng khác sử dụng. Dưới đây sẽ mô tả chi tiết các thành phần của hệ thống. Tầng Data Hệ thống sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2005 để lưu trữ và quản lý dữ liệu của hệ thống. Hình 42 Nội dung lưu trữ tầng Data Thành phần Mô tả WebBot script Lưu trữ các tập tin mô tả hành động và dữ liệu của WebBot WebBot result Lưu trữ nội dung kết quả thực hiện của WebBot để cung cấp cho người dùng User information Các thông tin quản lý người dùng, danh sách các WebBot mà người dùng đã upload Management information Các thông tin khác của hệ thống dùng để quản lý Bảng 42 Các thành phần ở tầng Data Tầng Business Đây là nơi cung ứng các dịch vụ cho các thành phần khác trong hệ thống. Các thành phần trong tầng này giữ nhiệm vụ liên lạc giữa cơ sở dữ liệu và các ứng dụng của hệ thống. Hình 43 Các thành phần ở tầng Business Thành phần Mô tả Upload WebBot Dịch vụ cho phép upload các WebBot của người dùng lên cơ sở dữ liệu của hệ thống Request WebBot result Dịch vụ yêu cầu lấy kết quả thực thi của WebBot với các thông số của người dùng và trả về kết quả thực hiện của WebBot từ cơ sở dữ liệu Get WebBot request Dịch vụ này được WebBotWatcher gọi để nhận các yêu cầu tại thời điểm hiện tại. WebBotWatcher sẽ thực hiện các yêu cầu đó và ghi lại cơ sở dữ liệu Write WebBot result Sau khi thực hiện các yêu cầu WebBotWatcher sẽ thông qua dịch vụ này để ghi kết quả vào cơ sở dữ liệu Bảng 43 Các thành phần ở tầng Business Tầng Data Presentation Dữ liệu sau khi qua tầng này sẽ được chuyển từ dữ liệu theo cấu trúc XML chứa kết quả của WebBot thành các chuẩn dữ liệu của các dịch vụ cung cấp cho khách hàng. Hình 44 Các thành phần ở tầng Data Presentation Thành phần Mô tả ATOM Feed Chuyển dữ liệu kết quả của WebBot theo chuẩn của ATOM feed RSS Feed Chuyển dữ liệu kết quả của WebBot theo chuẩn của RSS feed SOAP Web service Kết quả của WebBot sẽ được cung cấp thông qua một SOAP Web service REST Web service Kết quả của WebBot sẽ được cung cấp qua REST Web service Bảng 44 Các thành phần ở tầng Data Presentation Tầng Application Tầng Application chứa các ứng dụng của hệ thống tùy theo mục đích và nhu cầu sử dụng mỗi ứng dụng sẽ được xây dựng theo từng công nghệ khác nhau và thực thi trên các hệ thống khác nhau. Hình 45 Các ứng dụng chính ở tầng Application Thành phần Mô tả WebBot Creator Ứng dụng được xây dựng trên nền .NET Framework 2.0 cho phép tạo các tập tin thực thi WebBot để sử dụng cho các hệ thống bên dưới WebBot Online Manager Ứng dụng quản lý WebBot trực tuyến sử dụng công nghệ Silverlight 2.0 beta 2 để có thể chạy trên mọi hệ thống và trình duyệt web khác nhau. WebBot Online Manager cho phép upload WebBot, xem trước và hướng dẫn sử dụng dịch vụ của hệ thống WebBot Watcher Ứng dụng chạy ở máy chủ của hệ thống có nhiệm vụ theo dõi các yêu cầu của khách hàng và thực thi WebBot ghi kết quả và cơ sở dữ liệu nếu cần thiết Bảng 45 Các thành phần ở tầng Application Kết luận Trong chương này trình bày kiến trúc của toàn bộ hệ thống WebBot và các thành phần con trong từng tầng của hệ thống. Với kiến trúc hệ thống hiện tại ta thấy các thành phần của hệ thống được phân tách riêng biệt giúp khả năng nâng cấp và chỉnh sửa các thành phần của hệ thống mà không ảnh hưởng nhiều đến các thành phần khác. Điều này thuận tiện cho việc phát triển hệ thống sau này, bổ sung các chức năng cho hệ thống một cách dễ dàng và nhanh chóng. Phân hệ WebBot Creator ? Nội dung của chương 5 trình bày chi tiết qui trình thực hiện, kiến trúc hệ thống và các tính năng của phân hệ WebBot Creator cộng với các dịch vụ mà hệ thống này cung cấp trong việc hỗ trợ tạo WebBot. Giới thiệu Đây chính là phân hệ cho phép việc tạo WebBot bằng cách theo dõi và ghi nhận các hành động của người dùng trên web. Đồng thời người dùng thông qua phân hệ này để xác định dữ liệu cần rút trích và định dạng dữ liệu phù hợp với nhu cầu của mình. Phân hệ này có giao diện giống như một trình duyệt web thông thường cùng với các tiện ích hỗ trợ việc theo dõi và chọn lựa nội dung thích hợp. Vì thế các thao tác trên phân hệ này giống như việc truy cập web bình thường, các hành động của người dùng sẽ tự động được lưu lại. Các cửa sổ đặc biệt của chương trình sẽ giúp việc theo dõi và hỗ trợ lấy chính xác vùng dữ liệu theo yêu cầu. Các cửa sổ chính của chương trình bao gồm: Web browser: Đây chính là cửa sổ chính để người dùng duyệt web và xác định nguồn dữ liệu yêu cầu Thanh cấu trúc: Đây là thanh bên dưới Web browser cho biết chính xác địa chỉ của element mà người dùng đang tương tác để từ đó có thể xác định hoặc tương tác với element ở cấp cao hơn. HTML DOM: Cửa sổ hiển thị cấu trúc DOM của toàn bộ trang web, nhờ đó ta có thể xác định và theo dõi các element kế cận. Automation task: Cửa sở dưới cùng của chương trình có nhiệm vụ thể hiện các hành động của người dùng đồng thời quyết định nội dung của WebBot sẽ được lưu lại. Cửa sổ này bao ba thẻ tương ứng với các hành động của người dùng, tham số truyền vào và kết quả trả ra. Properties: Khi người dùng tương tác với một đối tượng có thể là một HTML Element, một hành động đã được lưu, tham số đầu vào, kết quả trả về… cửa sổ này sẽ hiện các thông tin chi tiết về đối tượng đó. Action Diagram: Nhằm hình tượng hóa các hành động của người dùng trong quá trình duyệt web, cửa sổ này sẽ hiển thị hình của trang web và các hành động ứng với từng trang web một cách trực quan nhất. Khi người dùng chuột phải vào một element Web Browser, HTML DOM hay ở thanh cấu trúc đều xuất hiện trình đơn ngữ cảnh thể hiện các hành động có thể làm đối với element này tùy theo element đó là element nào. Chẳng hạn nếu element là một thẻ sẽ có thêm tính năng Extract Image, nếu element là một thẻ sẽ có thêm tính năng Extract Table, … Hình 51 Trình đơn ngữ cảnh Ngoài ra trình đơn của chương trình còn hỗ trợ cho người dùng sử dụng các tính năng nâng cao như thêm các câu lệnh rẽ nhánh hoặc các câu lệnh lặp, tạo các nhóm để cấu trúc lại dữ liệu đầu ra, … Hình 52 Giao diện WebBot Creator Qui trình tạo WebBot Người sử dụng duyệt web thông qua WebBot Creator đến trang cần rút trích dữ liệu. Chương trình sẽ ngầm định lưu lại các hành động của người dùng ở thẻ Action của Automation Task Người sử dụng chọn vùng chứa dữ liệu muốn rút trích. Element chứa dữ liệu có thể được chọn bằng cách kích chuột phải trực tiếp lên trang web, thông qua thanh cấu trúc hoặc cửa sổ DOM Tree. Thông qua trình đơn ngữ cảnh được hiển thị, người dùng tiếp tục chọn loại dữ liệu muốn rút trích, tùy theo loại element mà người dùng chọn sẽ có các loại dữ liệu như văn bản, hình ảnh, bảng, … Chương trình dựa vào yêu cầu của người dùng thực hiện và hiển thị nội dung dữ liệu WebBot sẽ lấy về trong thẻ Output của Automation Task Ở bước này người dùng có thể tinh chỉnh hành động của WebBot bằng cách thêm vào các câu lệnh đều kiện các câu lệnh lặp Người dùng chọn các hành động trong Automation Task có chứa các giá trị có thể tách làm tham số của WebBot  Cuối cùng người dùng có thể thử để chương trình tự động chạy lại WebBot vừa tạo và lưu xuống tập tin XML Kiến trúc Phân hệ được xây dựa trên nền .NET Framework 2.0 nhằm đảm bảo tính tương thích cao nhất với các máy tính hiện nay đồng thời bảo đảm tính tiện dụng cao nhất cho người sử dụng. Sau đây là mô hình và mô tả chi tiết các thành phần trong phân hệ này. Hình 53 Kiến trúc WebBot Creator Nhiệm vụ chính của phân hệ này là giúp người dùng tạo các tập tin hướng dẫn WebBot để thực hiện các hành động trên web và chọn lọc rút trích thông tin người dùng quan tâm. Trong lúc người dùng duyệt web trên cEXWB Browser đến trang có chứa thông tin cần rút trích, người dùng xác định đối tượng cần rút trích hoặc thông qua DOM Tree control, thành phần Event Watcher của ứng dụng theo dõi mọi hành động của người dùng và ghi nhận những hành động cần thiết của người dùng. Thông qua WebBot Core, để tạo thành tập tin XML hướng dẫn của WebBot. Thành phần Mô tả WebBot Controls Các control cho phép người dùng tương tác với trang web và xác định dữ liệu cần rút trích WebBot Core Thành phần cốt lõi của hệ thống xác định cách định danh và lưu trữ các hành động của người dùng, xác định các cấu trúc dữ liệu dùng trong hệ thống. WebBot Core còn để thực thi WebBot và trả về kết quả thực hiện Event Watcher Đây là thành phần theo dõi các hành động của người dùng và trích các hành động cần thiết của người dùng để tạo thành tập tin hướng dẫn của WebBot WebBot XML Tập tin hướng dẫn WebBot sau khi kết thúc quá trình tạo WebBot Bảng 51 Các thành phần của phân hệ WebBot Creator Quy trình sử dụng Chương trình WebBot Creator được dùng để tạo các tập tin hướng dẫn WebBot. Để tạo WebBot ta thực hiện các bước sau: Nhập địa chỉ trang web cần rút trích thông tin vào thanh địa chỉ. Tương tác với WebBot Creator như đối với trình duyệt web thông thường để hướng dẫn WebBot đến nơi chứ dữ liệu cần rút trích hoặc để WebBot thực hiện các thao tác tự động. Chương trình sẽ tự động ghi nhận hành động của người dùng dưới cửa sổ Automation Actions. Hình 54 Sử dụng WebBot Creator Thêm vào đó cửa sổ Action Diagram sẽ giúp người dùng theo dõi một cách trực quan những hành động của mình trong quá trình duyệt web. Hình 55 Cửa sổ Action Diagram của WebBot Creator Người dùng dữ liệu cần rút trích bằng một trong bốn cách sau: Kích chuột phải vào đối tượng trên trang web Kích chuột phải vào đối tượng trong cửa sổ HTML DOM Kích chuột phải vào thanh cấu trúc bên dưới cửa sổ duyệt web Chọn hành động rút trích trên trình đơn chính Tùy theo loại HTML element trình đơn ngữ cảnh sẽ hiển thị cho phép thực hiện thao tác rút trích dữ liệu trên element này. Hình 56 Trình đơn ngữ cảnh của WebBot Creator Sau khi đã chọn được chính xác đối tượng cần rút trích người dùng có thể chọn rút trích chi tiết thuộc tính nào của đối tượng đó Hình 57 Rút trích chi tiết thuộc tính của element Để gom nhóm dữ liệu trả về của WebBot người dùng có thể sử dụng tạo các nhóm dữ liệu thông qua các nút Create Group, Close Group trên trình đơn chính. Ứng với mỗi hành động được lưu trong thẻ Action list người dùng có thể tách nội dung của hành động thành tham số của WebBot bằng cách kích chuột phải vào hành động đó và chọn List Replaceable values. Từ đó, ta có thể thay đổi tham số trước khi thực thi WebBot để rút trích dữ liệu khác liên quan. Có hai loại tham số để truyền vào cho hành động: Tham số được truyền vào từ lúc bắt đầu thực thi WebBot Tham số có nội dung từ kết quả của một hành động rút trích trước đó Hình 58 Đặt tham số cho hành động của WebBot Để thực hiện các câu lệnh rẽ nhánh và lặp cho các hành động của WebBot người dùng có thể sử dụng các chức năng Add Condition, Add Loop, End Command. Sau khi hoàn tất quá trình hướng dẫn WebBot, người dùng có thể bấm Run để xem WebBot tự thực hiện lại các yêu cầu và đưa dữ liệu rút trích vào thẻ Output. Tại thẻ Output người dùng có thể kết xuất dữ liệu hiện tại thành tập tin văn bản hoặc ra Excel. Hình 59 Kết quả thực thi WebBot trên WebBot Creator Cuối cùng người dùng bấm Save, để lưu WebBot vừa tạo. Hoàn tất quá trình tạo WebBot Kết luận Trong chương này đã giới thiệu về qui trình, kiến trúc và các chức năng của phân hệ WebBot Creator. Người dùng sử dụng phân hệ này để tạo và lưu các hành động cho WebBot. Ở chương sau phân hệ sau WebBot Online Manager, người dùng sẽ upload các WebBot vừa tạo xong lên hệ thống cơ sở dữ liệu của máy chủ. Phân hệ WebBot Online Manager ? Nội dung của chương 6 trình bày chi tiết qui trình thực hiện, kiến trúc hệ thống và các tính năng của phân hệ WebBot Manager cộng với các dịch vụ mà hệ thống này cung cấp trong việc quản lý các tài khoản người dùng, quản lý các WebBot, quá trình thực hiện Upload một WebBot lên hệ thống máy chủ và hiển thị nộp dung kết quả thực hiện của WebBot. Giới thiệu Phân hệ này có tên gọi là WebBot Online Manager. Đây là phân hệ quản lý cơ sở dữ liệu của toàn hệ thống. Thông qua chương trình này người dùng bình thường có thể thực hiện các chức năng upload các file thao tác được gọi là WebBot, định tham số thực thi và chu kỳ thực hiện cho các WebBot này. Đối với người dùng có quyền quản trị hệ thống - Admin, thông qua phân hệ này có thể quản lý trực tiếp các tài khoản của người dùng. Phân hệ này được xây dựng trên nền công nghệ Silverlight 2.0 beta 2 của Microsoft nên có giao diện thiện cảm và thân thiện với người dùng. Phân hệ gồm các chức năng sau: Account management:chức năng này cho phép người quản trị hệ thống quản lý các tài khoản người dùng trên toàn hệ thống. Sign In: truy cập vào vào hệ thống với tài khoản đã được đăng ký trước. Register: đăng ký một tài khoản mới trên hệ thống. Upload new WebBot: Thông qua đây, người dùng có thể upload và định các tham số thực thi, chu kỳ thực hiện cho một WebBot mới lên hệ thống Server. Config WebBot: định lại các thông số thực thi và chu kỳ thực hiện, cũng như trạng thái thực hiện cho các WebBot đã được upload lên hệ thống từ trước. Trên nền tảng công nghệ Silverlight 2.0 beta 2, thao tác của người dùng trên các chức năng của phân hệ sẽ được mô phỏng thành các hộp thoại thông báo như trên winform. Điều này sẽ đem lại sự thoải mái và tiện dụng trong quá trình thực hiện các chức năng. Bên cạnh đó, phân hệ được bao bọc bởi một giao diện đẹp, các hiệu ứng chất lượng cao tạo nên sự thân thiện với người dùng. Qui trình upload WebBot Hình 61 Qui trình Upload WebBot Người dùng phải đăng nhập vào hệ thống WebBot Manager thông qua mạng Internet. Nếu người dùng chưa có tài khoản thì phải đăng ký một tại khoản mới ngay tại hệ thống này. Sau khi đăng nhập vào hệ thống, người dùng sẽ thực hiện chức năng Upload New WebBot. Cung ứng các thông tin sau: tên WebBot, file nguồn WebBot, các tham số thực thi, chu kỳ thực thi, chú thích (nếu có). Hệ thống WebBot sẽ dùng đồi tượng OpenFileDialog để đọc nội dung của các file nguồn WebBot, các tham số thực thi thành kiểu dữ liệu string. Thông qua phân hệ WebBotDatabaseService (là một WCF Service) và phân hệ WebBotDatabase, WebBotWebManager sẽ thực hiện câu truy vấn SQL tạo một WebBot mới lưu xuống CSDL. Kết thúc quá trình thực hiện Upload WebBot mới. Qui trình gửi kết quả thực thi WebBot Hình 62 Qui trình gửi kết quả thực thi WebBot Khi có yêu cầu lấy thông tin từ phía người dùng hoặc ứng dụng bên ngoài của người dùng gởi tới hệ thống. Hệ thống sẽ thực hiện các bước sau đây: Kiểm tra yêu cầu của người dùng có kết quả trả ra chưa hoặc kết quả đó có còn trong thời gian hiệu dụng của chu kỳ thực hiện WebBot đó hay không? Nếu chưa thì hệ thống WebBot Server sẽ ghi nhận yêu cầu xuống cơ sở dữ liệu. Phân hệ WebBotWatcher sẽ tự động thực hiện WebBot của yêu cầu vừa được gửi đến để thực hiện việc lấy tin. Thông tin sau khi được lấy về sẽ được lưu trữ tại cơ sở dữ liệu của hệ thống dưới dạng XML. Thông sau khi được lấy về sẽ được định dạng lại dữ liệu đầu ra theo mẫu do người dùng đã cấu hình ban đầu. Trong trường hợp dữ liệu không được người dùng chọn định dạng đầu ra thì mặt định đầu ra sẽ là SOAP Web service. Để thực hiện định dạng dữ liệu đầu ra thì người dùng sẽ tiến hành thực hiện các bước sau: Bước 3.1: Đăng nhập vào hệ thống WebBot Online Manager với tài khoản đã thực hiện Upload WebBot cần định dạng dữ liệu đầu ra. Bước 3.2: Chọn WebBot cần định dạng dữ liệu đầu ra. Bước 3.3: Chọn định dạng dữ liệu đầu ra là : SOAP Web service, REST Web service, RSS Feed, ATOM Feed. Bước 3.4: Hệ thống sẽ thực hiện chạy và lấy một trường dữ liệu mẫu theo định dạng đã chọn hiển thị ra cho người dùng tham khảo. Bước 3.5: Kết thúc quá trình định dạng dữ liệu đầu ra. Tùy thuộc vào yêu cầu của ứng dụng bên ngoài của người dùng hay là yêu cầu của người dùng. Hệ thống sẽ trả về các thông tin của kết quả thực hiện WebBot theo định dạng đã chọn của người dùng. Ứng dụng của người dùng sẽ lấy và xử lý các dữ liệu do hệ thống trả về. Kết thúc quá trình gửi kết quả thực hiện WebBot. Kiến trúc Hình 63 Mô hình kiến trúc hệ thống phân hệ WebBot Online Manager Phân hệ này được xây dựng trên nền tảng công nghệ Silverlight 2.0 beta 2 của Microsoft đem lại cho người dùng một sự thoải mái và tiện dụng trong công việc. Khi người dùng tương tác với các phần của hệ thống WebBot Online Manager, các thành phần này sẽ gửi yêu cầu đến thành phần cung cấp dịch vụ của hệ thống để nhận hoặc thay đổi dữ liệu trên cơ sở dữ liệu của hệ thống. Phân hệ WebBot Online Manager bao gồm 4 thành phần chính: Thành phần Mô tả User Manager Đây là thành phần quản lý các tài khoản người dùng. Thông qua WebBot Database Service, quản trị viên có thể quản lý toàn bộ các tài khoản trên toàn hệ thống. WebBot Manager Thành phần này cho phép người dùng có thể quản lý tất cả các WebBot mà mình đã upload lên hệ thống. Upload WebBot Thành phần này được dùng để upload một WebBot lên hệ thống máy chủ trung tâm. Tại đây, các WebBot này sẽ được phân hệ WebBot Watcher giám sát, vận hành và lưu trữ kết quả vận hành. Preview Output Data Đây là thành phần xem trước định dạng dữ liệu đầu ra cho các WebBot Bảng 61 Các thành phần của phân hệ WebBot Online Manager Các chức năng trong phân hệ WebBot Online Manager Hình 64 Giao diện WebBot Online Manager WebBot Online Manager là một ứng dụng web. Tùy thuộc vào loại người dùng sẽ có mục đích khác nhau khi sử dụng phân hệ này. Các chức năng thông dụng Đăng nhập vào hệ thống Để đăng nhâp vào hệ thống, người dùng Click chuột lên nút Sign In. Một hộp thoại yêu cầu nhập User name và Password. Nếu bạn nhập sai 2 thông tin trên thì hệ thống sẽ báo lỗi "Username and password do not match."  yêu cầu người dùng đăng nhập lại. Và tùy thuộc vào tài khoản của người dùng vừa đăng nhập là loại quản trị hệ thống hay người dùng thường thì thanh tác vụ (Toolbar) sẽ thay đổi các chức năng sao cho phù hợp với nhu cầu làm việc của tài khoản. Đăng ký tài khoản mới Để đăng ký một tài khoản mới, người dụng chọn nút Register. Hộp thoại Register infomation xuất hiện, yêu cầu người dùng điền đầy đủ các thông tin cá nhân của tài khoản và sau đó chọn nút Submit để đồng ý xác nhận các thông tin vừa nhập vào và thiết lập một tài khoản mới. Tài khoản mà người dùng đăng ký ở đây chỉ thuộc quyền người dùng thông thường. Đối với các tài khoản quyền quản trị hệ thống thì phải được tạo bởi chức năng Create New User trong các tác vụ của tài khoản quản trị viên. Xem hướng dẫn sử dụng và thông tin của hệ thống Mỗi chức năng của website đều có hướng dẫn sử dụng chi tiết. Người dùng có thể truy cập vào mục này để tham khảo về hướng dẫn cụ thể. Các chức năng của quản trị viên Quản lý tài khoản  Hình 65 Giao diện quản lý tài khoản Quản trị viên sẽ chọn trực tiếp trên tài khoản muốn tương tác trong danh sách các tài khoản hiện có trong hệ thống. Sau đó, hệ thống sẽ hiển thị một trình đơn đưa ra các hành động tương tác lên tài khoản như : xóa (Delete), chuyển đổi quyền (Change Permission), cập nhật thông tin (Update), khóa tài khoản (Lock). Tạo và cấp quyền cho tài khoản mới Đối với với thao tác tạo một tài khoản quản trị viên mới thì chỉ tài khoản quản trị hệ thống mới có quyền tạo tài khoản dạng này. Người quản trị viên sẽ có 2 cách để tạo một tài khoản quản trị. Người quản trị viên có thể chuyển đổi quyền của một tài khoản người dùng thường thành tài khoản quản trị. Tạo một tài khoản mới và sao đó hế thống sẽ tự cấp quyền cho tài khoản này là tài khoản quản trị. Các chức năng của người dùng thông thường Upload một WebBot mới Hình 66 Hộp thoại Upload WebBot Để Upload một WebBot mới, người dùng phải cung cấp một số thông tin: Tên của WebBot (WebBot’s name), môt tả (Description), file WebBot (Source), chu kỳ chạy thực hiện lại WebBot (Renew Interval). Hệ thống sẽ thực hiện upload WebBot lên cơ sở dữ liệu của hệ thống. Sau khi WebBot được upload thành công lên cở sở dữ liệu của hệ thống. Hệ thống sẽ thông báo cho bạn một hộp thoại và kết thúc quá trình upload WebBot. Quản lý WebBot Hình 67 Giao diện quản lý WebBot Tương tự như quản lý người dùng trong nhóm tác vụ của quyền quản trị viên. Quản lý WebBot là một chức năng của người dùng thường. Người dùng chỉ có thể tương tác vào một trong các WebBot mình đã upload lên hệ thống. Để thực hiện chức năng này, người dùng click chuột vào nút WebBot manager. Một danh sách các WebBot người dùng đã upload lên hệ thống sẽ xuất hiện. Tại đây, người dùng có thể click chuột lên WebBot cần tương tác. Một danh sách các hành động có thể tương tác với WebBot đó sẽ xuất hiện cụ thể như sau : xóa (Delete), cập nhật thông tin của WebBot (Update), cập nhật thông chu kỳ thực hiện (Renew Interval), chọn định dạng dữ liệu đầu ra cho WebBot (Config output data), xem kết quả WebBot thực hiện (Review Result). Định dữ liệu đầu ra và thiết lập trạng thái hoạt động cho WebBot Để chọn chức này, người dùng cần phải chọn một WebBot cụ thể trong danh sách hiển thị các WebBot của người dùng đã upload lên hệ thống (xem phần hướng dẫn quản lý WebBot). Sau đó chọn mục Config output data. Hộp thoại Config output data xuất hiện. Tại đây, người dùng có thể thay đổi việc chọn các định dạng dữ liệu đầu ra như sau: SOAP Web Service, REST Web Service, RSS Feed, ATOM Feed. Tướng ứng với mỗi định dạng dữ liệu này, thì hệ thống sẽ phát sinh cho người dùng một địa chỉ truy cập để lấy thông tin đầu ra. Mặt định, khi một WebBot được upload lên hệ thống thì WebBot này được thiết lập tất cả các định dạng dữ liệu đầu ra. Để sử dụng dữ liệu đầu ra của WebBot, người dùng cần lưu lại địa chỉ của dạng định dữ liệu cần lấy tương ứng. Kết luận Ở chương này đã trình bày về các qui trình, kiến trúc và các chức năng của phân hệ WebBot Online Manager. Phân hệ này được sử dụng trực tiếp qua hệ thông mạng Internet. Với nền tảng công nghệ mới (Silverlight 2.0 beta 2), WebBot Online Manager đã đem lại cho người dùng một sự tiện dụng trong việc hỗ trợ cho người dùng upload các WebBot của người dùng lên hệ thống cơ sở dữ liệu trung tâm, quản lý các tài khoản người dùng, quản lý các WebBot đã upload lên hệ thống cơ sở dữ liệu và xem trước các định dạng dữ liệu (kết quả thực hiện của các WebBot). Tiếp theo, ở chương sau, WebBot Watcher sẽ cung cấp một cơ chế tự động vận hành các WebBot đã upload lên cơ sở dữ liệu khi có yêu cầu từ phía người dùng. Phân hệ WebBot Watcher ? Nội dung của chương 7 trình bày chi tiết qui trình thực hiện, kiến trúc hệ thống và các tính năng của phân hệ WebBot Watcher cộng với các dịch vụ mà hệ thống này cung cấp trong việc giám sát các yêu cầu thực thi của các WebBot và tự động vận hành các WebBot này khi có yêu cầu. Giới thiệu Đây là phân hệ được chạy trên máy chủ có nhiệm vụ theo dõi các yêu cầu thực thi WebBot và tự động thực hiện và ghi kết quả vào cơ sở dữ liệu. Phân hệ này khi hoạt động sẽ liên tục giám sát cơ sở dữ liệu để kiểm tra có yêu cầu nào mới được bổ sung. Chương trình sẽ tự động thực hiện yêu cầu và ghi nhận kết quả vào lại cơ sở dữ liệu để từ đó các phân hệ khác có thể cung cấp kết quả cho người dùng. Qui trình theo dõi yêu cầu thực thi WebBot Hình 71 Qui trình theo dõi yêu cầu thực thi WebBot WebBot Watcher sẽ liên tục theo dõi cơ sở dữ liệu để kiểm tra các yêu cầu thực thi WebBot mới. Các yêu cầu có thể là một yêu cầu mới chưa bao giờ được hệ thống thực hiện hoặc là một yêu cầu đã thực hiện rồi nhưng nội dung của dữ liệu đã quá hạn Từ yêu cầu nhận được ở cơ sở dữ liệu WebBot Watcher bao gồm tập tin hướng dẫn WebBot cùng các tham số, WebBot Watcher tiến hành thực thi WebBot Kết thúc quá trình thực thi WebBot Watcher nhận kết quả thi thực thi và ghi kết quả này vào cơ sở dữ liệu Qui trình thực thi WebBot Hình 72 Qui trình thực thi WebBot Đọc nội dung WebBot từ tập tin XML Truyền tham số đầu vào cho WebBot Chương trình sẽ thông qua web browser (csEXWB) để giả lập lại hành động của người dùng trong lúc tạo WebBot Chương trình tự động rút trích dữ liệu và lưu giữ theo cấu trúc dữ liệu dạng cây Kết thúc quá trình nếu không có lỗi xảy ra chương trình sẽ gửi thông báo hoàn tất. Kiến trúc Hình 73 Mô hình kiến trúc phân hệ WebBot Watcher Phân hệ được xây dựng trên .NET Framework 2.0, giữ vai trò theo dõi và thực thi các yêu cầu thực thi WebBot từ cơ sở dữ liệu. WebBot Watcher sử dụng các dịch vụ của hệ thống để theo dõi cơ sở dữ liệu và nhận danh sách các yêu cầu. Từ tập tin hướng dẫn WebBot và các thông số đầu vào nhận được từ yêu cầu, WebBot Watcher sẽ sử dụng WebBot Core để tiến hành thực thi WebBot trên Internet. Khi WebBot thực thi thành công, kết quả nhận về sẽ lần lượt được chuyển qua các thành phần của hệ thống cuối cùng được ghi vào cơ sở dữ liệu. Thành phần Mô tả WebBot Database Service Dùng để tiếp nhận các yêu cầu từ cơ sở dữ liệu và ghi nhận kết quả thực thi WebBot. Các dịch vụ truy xuất và cập nhật cơ sở dữ liệu WebBot Core Dùng để thực thi WebBot và trả về kết quả thực hiện. Thành phần cốt lõi của hệ thống xác định cách định danh và lưu trữ các hành động của người dùng, xác định các cấu trúc dữ liệu dùng trong hệ thống. Bảng 71 Các thành phần của phân hệ WebBot Watcher Các chức năng trong phân hệ WebBot Watcher Hình 74 Giao diện WebBot Watcher Đây là phân hệ được chạy trên máy chủ nhằm tự động thực thi WebBot khi có yêu cầu từ các dịch vụ của hệ thống. Chương trình bao gồm trình duyệt web cho biết trang web đang thực thi cùng bảng ghi nhận các yêu cầu đang được thực thi từ lúc bắt đầu đến thời điểm hiện tại. Người dùng cần phải bảo đảm trạng thái của WebBot Watcher là Watching chứng tỏ chương trình đang theo dõi các yêu cầu của hệ thống. Kết luận Trong chương này đã giới thiệu về phân hệ WebBot Watcher. Một phân hệ tự động giám sát các yêu cầu trên từng WebBot của hệ thống cơ sở dữ liệu trung tâm. Khi có yêu cầu thực hiện một WebBot nào đó từ phía người người dùng, hệ thống này sẽ tự động vận hành WebBot và lưu trữ các dữ liệu kết quả của quá trình vận hành này xuống cơ sở dụng liệu để kết xuất ra bên ngoài theo định dạng của người dùng. Trong chương sau, phân hệ WebBot Service sẽ cung cấp cho chúng ta các dịch vụ để truyền dữ liệu kết quả quả vận hành của các WebBot ra bên ngoài. Phân hệ WebBot Services ? Nội dung của chương 8 trình bày chi tiết qui trình thực hiện, kiến trúc hệ thống và các tính năng của phân hệ WebBot Services cộng với các dịch vụ mà hệ thống này cung cấp trong việc định dạng các kết quả thực hiện của WebBot và cung cấp các dịch vụ để kết xuất các kết quả này ra bên ngoài theo yêu cầu của người dùng. Giới thiệu Sau khi đã tạo và upload WebBot thì người dùng đã có thể sử dụng các tính năng của hệ thống. Tùy theo nhu cầu sử dụng, hệ thống sẽ thông qua phân hệ này cung cấp các dịch vụ dưới đây. Web service Đối với nhu cầu tích hợp kết quả của WebBot vào các hệ thống khác thì web service sẽ là lựa chọn hàng đầu. Hệ thống hỗ trợ hai loại web service thông dụng nhất hiện nay chính là SOAP web service và REST service. Ngay khi tạo và upload WebBot người dùng sẽ được cung cấp địa chỉ để sử dụng dịch vụ này. SOAP Web service Hệ thống cung cấp các API thông dụng để nhận kết quả thực thi WebBot. Sau đây là các API chính của dịch vụ : API Mô tả string GetResult(int WebBot_ID, List listParams) Hàm nhận kết quả thực thi của WebBot có ID là WebBot_ID và danh sách các tham số đầu vào listParams. Kết quả trả về là chuỗi có cấu trúc XML tuần tự hóa của cấu trúc AutmationTask string GetResultXML(int WebBot_ID, string xmlParams) Tương tự như GetResult nhưng danh sách các tham số đầu vào được là một chuỗi có cấu trúc XML tuần tự hóa của List string GetResultSingle(int WebBot_ID, string parameter) Hàm chuyên biệt dùng để lấy dữ liệu đơn giản, với chỉ một tham số đầu vào kiểu chuỗi, kết quả cũng là kết quả đầu tiên có kiểu chuỗi Bảng 81 Các API của SOAP Webservice REST Web service Dịch vụ REST Web service ngày càng được ưa chuộng nhờ tính đơn giản và độ tương thích cao của nó. Hệ thống cung ứng các dịch vụ REST thông qua các URI có cấu trúc www.yourwebsite.com/.../{WebBotID}/{Datatype}/{Parameters} Tham số Ý nghĩa WebBotID Số định danh của WebBot Datatype Kiểu dữ liệu kết xuất. Có thể là RSS, ATOM đối với các kết xuất Syndication Feed, hoặc Image đối với kết xuất hình ảnh, … Parameters Các thông số đầu vào để thực thi WebBot Bảng 82 Các tham số trong URI của REST Web service Feed Hình 81 Tạo WebBot Feed bằng WebBot Creator Người sử dụng thông thường có thể sử dụng dịch vụ này để tích hợp vào các trình đọc Feed hoặc vào các Gadget hiện có một cách nhanh chóng và tiện lợi. Hệ thống sẽ biến những trang tin tức không hỗ trợ Feed thành các dịch vụ ATOM Feed hoặc RSS Feed để người dùng theo dõi tin tức tiện lợi và cập nhật nhất. Hình 82 Xem Feed bằng Window Sidebar Web clip Bạn ưa thích một vùng nào đó trên trang web và muốn nó có ngay trên trang web của mình thì Web clip chính là tính năng bạn cần. Sau khi tạo WebBot chọn vùng cần sử dụng và upload, người dùng sẽ được cung cấp một đoạn mã để đưa lên website của mình. Hệ thống sẽ chuyển nội dung yêu thích từ trang web khác vào trang web của người dùng. Một ví dụ đơn giản của Web clip là nếu như bạn thích bảng tin Thời tiết, Giá vàng, Tỷ giá trên trang Thì với dịch vụ Web clip bạn có thể dễ dàng đưa nó lên trang chính của website cá nhân và nội dung của Web clip cũng tự động thay đổi khi nội dung của từ thay đổi. Hình 83 Ví dụ Web clip trên vnexpress.net Kiến trúc Ứng với mỗi loại dữ liệu cần kết xuất sẽ có một thành phần có nhiệm vụ chuyển dữ liệu theo cấu trúc kết quả của WebBot thành cấu trúc của loại dữ liệu cung cấp cho khách hàng. Để cung cấp kết quả cho người dùng, kết quả thực thi WebBot từ cơ sở dữ liệu được chuyển tới phân hệ WebBot Services thông qua WebBot Database Service. Sau đó WebBot Services sẽ tiến hành định dạng theo đúng giao thức dịch vụ và cung cấp dịch vụ tới người sử dụng. Hình 84 Mô hình kiến trúc phân hệ WebBot services Kết luận Ở chương này, nhóm đã trình bày các các dịch vụ kết xuất dữ liệu kết quả vận hành các WebBot ra bên ngoài cho người dùng. Thông qua phân hệ WebBot Service này, người dùng có lựa chọn các dịch vụ do phân hệ này cung cấp để lấy kết quả vận hành của các WebBot tùy theo nhu cầu của mình. Đây là phân hệ cuối cùng trong hệ thống WebBot. Các phân hệ này, tuy hoạt động độc lập với nhau nhưng bổ sung và hỗ trợ các kết quả cho nhau. Lập thành một hệ thống hoàn chỉnh. Kết luận ? Nội dung của chương 9 trình bày các kết quả đạt được và hướng phát triển của đề tài. Các kết quả đạt được Dựa vào khảo sát các công cụ tự động hóa và rút trích thông tin trên web hiện nay trên thế giới bao gồm Kapow Mashup Server, iMacros, NewBie Web Automation, Automation Anywhere, SWExplorerAutomation, …, cùng với nghiên cứu khả năng và độ hỗ trợ của công nghệ .NET Framework, Windows Communication Foundation, Silverlight nhóm đã xây dựng thành công hệ thống xây dựng và vận hành Soft-bot trên môi trường web thu thập thông tin trên Internet. Đồng thời ứng với mỗi tính năng chính của hệ thống nhóm đều có các ứng dụng minh họa bao gồm hệ thống tổng hợp thông tin giá chứng trực tuyến, ứng dụng chia sẻ tin tức web (Web Syndication), … Thông qua các qui trình mà nhóm đề xuất cho hệ thống cùng với quá trình nghiên cứu các công nghệ lập trình hiện đại của Microsoft: Silverlight, Windows Communication Foundation, các open source bao gồm csEXWB, DockDotNET, Profressional Ribbon, Office2007Renderer, đã xây dựng hệ thống bao gồm: Phân hệ xây dựng WebBot thu thập thông tin tự động trên Internet được xây dựng trên nền .NET Framework 2.0 sử dụng csEXWB làm trình duyệt web. Các tính năng chính bao gồm: Dễ dàng, nhanh chóng tạo tập tin hướng dẫn WebBot, hỗ trợ các câu lệnh điều kiện các câu lệnh lặp với các hành động của người dùng, gom nhóm dữ liệu đầu ra. Xem trước kết quả thực thi WebBot và kết xuất kết quả thực thi xuống tập tin văn bản (txt), tập tin Excel Phân hệ quản lý WebBot trực tuyến, phân hệ này được xây dựng trên nền Microsoft Silverlight 2 beta 2 với mục đích tạo giao diện sinh động và tiện dùng, quan trọng nhất cho phép người dùng có thể truy cập và sử dụng độc lập với hệ điều hành và trình duyệt. Các chức năng chính của phân hệ: Upload WebBot: dùng để tải WebBot do người dùng tạo lên hệ thống Quản lý tài khoản: cho phép người quản trị quản lý người dùng, người sử dụng thay đổi thông tin các nhân Quản lý WebBot: Cho phép người dùng quản lý và thay đổi thông tin WebBot của mình Hướng dẫn và xem trước kết quả thực thi WebBot của từng định dạng: hiển thị các địa chỉ cung cấp dịch vụ của WebBot đồng thời hiển thị kết quả thực thi WebBot đối với từng dịch vụ. Các dịch vụ hỗ trợ bao gồm SOAP Web service, REST Web service, RSS Feed, ATOM Feed Phân hệ theo dõi và thực thi yêu cầu, phân hệ này được chạy ở hệ thống máy chủ cung cấp dịch vụ. Phân hệ này liên tục theo dõi các yêu cầu được gửi đến hệ thống và thực thi ghi kết quả thực hiện vào cơ sở dữ liệu của hệ thống. Hướng phát triển của đề tài Cùng với sự phát triển của khoa học và công nghệ, hơn nữa là sự phát triển của Internet và các công nghệ web hiện nay, và nhu cầu của con người ngày càng cao, hệ thống của chúng em phải liên tục phát triển để đáp ứng các yêu cầu trên. Do sự hạn chế của công nghệ hiện tại cùng với thời gian phát triển hệ thống có hạn nên các tính năng của hệ thống vẫn có những thiếu sót và những dự định trong tương lai để phát triển hệ thống: Hoàn thiện các tính năng hiện có của hệ thống Hỗ trợ tốt hơn khả năng lập trình hành động của WebBot Phát triển một thành phần riêng biệt để thực thi WebBot trên server không thông qua các Web browser control nhằm tăng tốc độ xử lý và giảm sử dụng tài nguyên của hệ thống Kết xuất kết quả thực thi theo nhiều định dạng của các hệ thống khác, bao gồm các hệ thống Mashup như Microsoft Popfly, Yahoo Pipes, Google Mashup Editor, … Kết nối kết quả của nhiều WebBot để tạo thành một hệ thống Mashup chuyên biệt trực tuyến Đưa phân hệ xây dựng WebBot lên web cho phép người dùng tạo WebBot trực tuyến mà không cần phải cài đặt chương trình. DANH MỤC TÀI LIỆU THAM KHẢO [ 1 ] Bill Evjen, Scott Hanselman, Farhan Muhmad, Srimivasa Sivakumar, Devin Rader, Professional ASP.NET 2.0, Wiley Publishing, Inc, 2005. [ 2 ] Charles Petzold, Programming Microsoft Windows with C#, Microsoft, 2001 [ 3 ] Matthew MacDonald, Pro WPF Windows Presentation Foundation in dot NET 3.0, Apress, 2007 [ 4 ] Paolo Pialorsi, Marco RussoPaolo, Introducing Microsoft LINQ, Microsoft Press, 2007 [5 ] Raymond Yee, Pro Web 2.0 Mashups: Remixing Data and Web Services, Apress, 2008 [ 6 ] Victor Gaudioso, Foundation Expression Blend 2, Apress, 2008

Các file đính kèm theo tài liệu này:

  • docxBao cao khoa luan - Huy Khanh.docx