Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.67 MB, 91 trang )
3.2. Môi trường tạo hướng dẫn cho robot
• Vấn đề
Như chúng em đã nói ở giải pháp cho vấn đề 1 thì tạo robot nghĩa là hướng dẫn cho
robot các hành động, các công việc mà robot cần làm đối với một nguồn thông tin
(tức một website) có sẵn chẳng hạn nhữ gõ một dòng text vào hộp textbox, chọn
một lựa chọn trong ô selectbox, hay click lên một link, một button, … Như vậy việc
hướng dẫn robot cần có một môi trường có khả năng online nghĩa là có khả năng
truy cập và thể hiện website để người dùng dựa trên website đó mà đưa ra hướng
dẫn cho robot các hành động cần thiết để robot có thể thực thi tự động nhằm đáp
ứng nhu cầu của mình. Rõ ràng, vấn đề đặt ra ở đây là làm thế nào để ta có được
một môi trường vừa trực quan lại vừa có khả năng online để việc hướng dẫn của
người dùng cho robot trở nên dễ dàng nhất có thể? Nhưng trước khi đi vào giải
pháp chúng ta cần phải tìm hiểu thế nào là một môi trường tạo hướng dẫn cho
Robot?
“Môi trường tạo hướng dẫn cho Robot chính là nơi mà người sử dụng hướng dẫn
cho các Robot các hành động mà Robot sẽ tương tác khi thực thi. Hay nói cách khác
nó chính là nơi ghi nhận lại các nhu cầu mà người sử dụng muốn Robot sẽ làm.”
• Giải pháp
Thông qua việc khảo sát chức năng cũng như giao diện của các hệ thống tương tự ở
chương 2 cùng với việc nghiên cứu sự hỗ trợ của các công nghệ hiện đại, hai giải
phải đã được đề xuất như sau:
• Giải pháp 1
Môi trường tạo robot phải có khả năng online để có thể đưa ra những hướng dẫn
cho robot đối với một website. Xuất phát từ yêu cầu này, giải pháp đầu tiên được đề
xuất: Môi trường tạo robot sẽ hoàn toàn dựa trên nền web người sử dụng sẽ thao tác
và hướng dẫn robot trên chính trình duyệt web của họ. Đối với giải pháp này hai
công nghệ nhóm xem xét là Silverlight và XBAP.
36
• Ưu điểm
Người sử dụng có thể dùng chính trình duyệt web của họ để tạo robot.
Có thể độc lập với hệ điều hành do ứng dụng chỉ phụ thuộc vào trình duyệt
web.
• Khuyết điểm
Tốc độ ắt hẳn chậm hơn so với hệ thống trên destop do phải thông qua
Internet và tương tác giữa máy khách và máy chủ.
Yêu cầu cao đối với hệ thống cung cấp dịch vụ. Máy chủ của hệ thống cung
cấp dịch vụ phải được cài đặt hỗ trợ các công nghệ mới như Silverlight hay
XBAP, đồng thời phải đủ mạnh để giao tiếp vời nhiều người dùng cùng lúc
đồng thời xử lý nhanh để đáp ứng yêu cầu của người dùng.
-
Máy tính của người sử dụng dịch vụ phải được cài đặt phần mềm để tương
thích với hệ thống. Ví dụ như plugin đối với Siverlight và .NET
Framework 3.5 đối với XBAP.
Không thể kiểm soát được các hành động của người dùng tương tác bên
ngoài trang web (tương tác với các hộp thoại tạo nên bởi javascript).
Không thể nhận biết được các hành động chuột và bàn phím.
• Giải pháp 2
Cũng xuất phát từ hai yêu cầu đối với việc tạo môi trường robot như thế nào, cùng
với tìm hiểu sự hỗ trợ của các công nghệ hiện tại, nhóm đã đề xuất giải pháp thứ 2
như sau. Công cụ tạo robot sẽ là một ứng dụng trên nền winform cho phép hệ thống
ghi nhận hành động của người dùng và người dùng tùy biến chức năng của robot.
• Ưu điểm
-
Tốc độ xử lý nhanh do các nghiệp vụ đều nằm trên máy của người dùng.
Có thể kiểm soát gần như tất cả hành động của người dùng bên trong hoặc
cả bên ngoài trang web bằng cách theo dõi các event của trang web hoặc
hook các sự kiện chuột và bàn phím.
• Khuyết điểm
37
-
Phụ thuộc vào hệ điều hành xây dựng ứng dụng.
Như vậy, hai giải pháp trên đã đáp ứng được cả hai yêu câu của vấn đề đặt ra
trong khi tạo môi trường hướng dẫn robot là môi trường phải có khả năng online
đồng thời phải có tính trực quan để việc hướng dẫn trở nên dễ dàng nhất có thể cho
người dùng.
Nhận xét
Mặc dù, cả hai giải pháp đều có thể đáp ứng được yêu cầu. Nhóm đã xem xét khả
năng của các công nghệ hiện tại và nhận thấy hiện nay các việc hỗ trợ cho ứng dụng
hoàn toàn trên web còn khá mới mẻ nên còn nhiều hạn chế đồng thời nếu thực hiện
theo giải pháp 1 sẽ mắc phải những vấn đề cố hữu của ứng dụng web, dẫn đến sẽ
không thực hiện được một số tính năng chính của hệ thống. Nhóm đã quyết định sử
dụng giải pháp 2 để xây dựng ứng dụng tạo robot, các phần còn lại của hệ thống vẫn
xây dựng trên nền web.
3.3. Chọn lựa công cụ tương tác web
Trong giai đoạn khảo sát nhóm đã tìm hiểu nhiều cách thức cho phép tương tác và
ghi nhận hành đồng của người dùng lên trang web. Nhóm đã đúc kết được cả hai
hướng tiếp cận vấn đề.
Hướng tiếp cận đầu tiên là sử dụng chính trình duyệt web có sẵn trên máy người
dùng để người dùng thao tác đồng thời ứng dụng sẽ ghi nhận lại các thao này để tạo
robot. Vấn đề gặp phải ở hướng tiếp cận này là gây khó khăn với người sử dụng do
phải tương tác với trình duyệt web đồng thời lại hướng dẫn và quản lý trên ứng
dụng tạo robot. Hơn nữa việc giao tiếp giữa trình duyệt web và ứng dụng rất hạn
chế đồng thời tốn nhiều tài nguyên.
Hướng tiếp cận thứ hai là sử dụng control để có thể tích hợp vào ứng dụng tạo robot
tạo nên một giao diện đồng nhất thân thiện với người dùng đồng thời việc tương tác
giữa ứng dụng và control duyệt web trở nên dễ dàng hơn. Sau thời gian tìm hiểu lợi
điểm và hạn chế của các control dùng để duyệt phép nên nền winform nhóm chọn
được ba control tiêu biểu sau:
38
3.3.1. WebBrowser control (.NET Framework)
.NET Framework hỗ trợ sẵn một control đóng vai trò như một trình duyệt web và
cũng cấp các lớp cho phép tương tác và điều khiển, ghi nhận các hành động của
người dùng. Tuy nhiên các lớp và hàm cung cấp sẵn của .NET Framework rất ít chỉ
vừa đủ đối với người sử dụng bình thường.
3.3.2. AxWebBrowser (ActiveX)
Đây chính cách sử dụng activeX Microsoft WebBrowser Control trong .NET. Việc
sử dụng đến tầng lõi của một web browser này cho phép chúng ta có thể sử dụng
được rất nhiều các tính năng đồng thời quản lý chặt chẽ hơn web browser control
này. Tuy nhiên vì đây là một ActiveX control nên được xây dựng bằng unmanagedcode, do đó việc thao tác với control này khá rườm rà để có thể sử dụng một cách
dễ dàng cần phải xây dựng các wrapper class cho phép dễ dàng sử dụng control này.
Việc bọc lại các tất cả interface và các lớp của ActiveX là một công việc tỉ mẫn và
rất nhiều thời gian do số lượng các interface và lớp của ActiveX control này không
hề ít.
3.3.3. csEXWB (opensource)
Đây có thể được xem là một wrapper đầy đủ nhất của Microsoft WebBrowser
Control. csEXWB cho phép thực hiện việc cấu hình cao cấp và điểu khiển toàn bộ
các tài nguyên của activeX. Hơn nữa từ csEXWB ta có thể dễ dàng thêm và tùy
chỉnh các chức năng cần thiết cho ứng dụng. Việc sử dụng csEXWB sẽ khiến cho
các đoạn mã chương trình ở nên mạch lạc rõ ràng và dễ hiểu vì hoàn toàn sử dụng
managed-code để điều khiển, nhận, xử lý các sự kiện.
Đây cũng chính là control mà nhóm chọn để phát triển hệ thống.
3.4. Các yêu cầu đặt ra cho môi trường tạo hướng dẫn
Liệu csEXWB có đáp ứng được các yêu cầu mà một một trường tạo hướng dẫn cho
robot đặt ra hay không? Đó là vấn đề mà nhóm cần phải giải quyết. Thế nhưng các
yêu cầu mà một môi trường hướng dẫn cần phải có là gì?
39
Thông qua việc tìm hiểu chức năng của các hệ thống phần mềm hàng đầu trên thế
giới về lĩnh vực này, nhóm đã rút ra được một số yêu cầu tối cần thiết – mà một môi
trường tạo hướng dẫn cho Robot phải có - để có thể tạo ra được các robot có khả
năng rút trích thông tin tự động trên Internet như sau:
3.4.1. Yêu cầu hiển thị trực quan cấu trúc trang web
• Vấn đề
Yêu cầu của một môi trường hướng dẫn robot là phải trực quan. Vì vậy, làm thế nào
môi trường phải có khả năng cho người dùng thấy được mã HTML của thành phần
mà mình đã chọn hay nói cách khác phải cho người dùng thấy được mã HTML của
nó trong toàn bộ source HTML của một trang web. Sở dĩ yêu cầu này được đưa ra
là do: khi ta click chọn một thành phần nào đó nhưng bên trong thành phần đó lại là
thành phần mà ta muốn lưu lại để cho robot tương tác trong quá trình thực thi.
(chẳng hạn như một image bên trong một hyperlink và thành phần mà ta muốn
robot tương tác là image chứ không phải hyperlink nhưng khi người dùng click
chọn thì nó chỉ biết đó là một hyperlink chứ không phải là image - do hyperlink là
thành phần cha của image).
• Giải pháp
Đối với toàn thể một trang web khi toàn bộ trang đã được tải về dựa vào interface
IHTMLDOMNode ta sẽ lần lượt duyệt từng node trong trang web và từ đó xây
dựng được một DOM Tree hiển thị cấu trúc của trang web đang hiển thị. Dựa vào
đó ta sẽ biết được cấu trúc tổng thể của một trang web bao gồm toàn bộ element của
trang web, element nào trước element nào, element nào chứa element nào, … Khi
người dùng tác động vào một element của trang web, ta dựa vào interface
IHTMLElement để lần vết xác định tọa độ của element đó trong trang web. Mỗi
IHTMLElement đều có mã HTML cho biết nội dung trong element đó trong mã
HTML của trang.
40
Hinh 3 Hiển thị trực quan cấu trúc trang web
̀
3.4.2. Yêu cầu thay đổi context menu
• Vấn đề
Do nguồn gốc của csEXWB dựa trên activeX Microsoft WebBrowser control nên
context menu mặc định sẽ là context menu của chính trình duyệt Internet Explorer
của máy. Tuy nhiên, do yêu cầu trên mà nảy sinh một yêu cầu khác là cần phải có
một context menu khác bao gồm các công việc khác nhau như click lên một thành
phần nào đó và lưu lại, hay rút trích toàn bộ text bên trong một thành phần nào đó…
mà một môi trường tạo robot cần phải có. Do vậy yêu cầu đặt ra là làm sao thay thế
context menu mặc định có sẵn của csEXWB bằng một context menu mà một môi
trường tạo hướng dẫn cho robot đòi hỏi.
41
• Giải pháp
Để thay đổi context menu đơn giản chỉ là tắt context menu mặc định và cho hiển thị
context menu tự tạo. Để làm điều này trong csEXWB ta chặn và xử lý sự kiện
WBContextMenu.
Hinh 3 Context menu đã được thay đổi
̀
3.4.3. Yêu cầu ghi nhận hành động của người dùng
• Vấn đề
Làm sao trong quá trình hướng dẫn cho robot khi người dùng click lên một thành
phần (element) nào đó trên trang web thì môi trường phải biết được người dùng đã
click lên thành phần nào của trang web. Mục đích của việc này là để có thể phục vụ
cho việc lưu lại các thành phần mà robot cần tương tác trong quá trình thực thi của
mình sau này.
42
• Giải pháp
Yêu cầu này sẽ được giải thích chi tiết ở mục 3.5
3.4.4. Yêu cầu thực hiện lại những thao tác của người dùng
• Vấn đề
Song song với việc ngăn chặn các kết quả khi click chọn một thành phần thì rõ ràng
một môi trường tạo hướng dẫn cho robot phải có thể thực thi được các sự kiện của
một thành phần nào đó của một trang web chẳng hạn như có khả năng kích hoạt sự
kiện click của một thành phần, hay có thể tự động đánh dấu chọn hay bỏ chọn của
một radio button, hay một checkbox trên trang web… Và đây là một yêu cầu khác
mà một môi trường tạo hướng dẫn cho robot cần phải đáp ứng.
• Giải pháp
Yêu cầu này sẽ được giải thích chi tiết ở mục 3.6
3.4.5. Yêu cầu rút trích dữ liệu
• Vấn đề
Robot không những có khả năng thực hiện lại mọi thao tác của người dùng mà phải
có khả năng rút trích dữ liệu từ nội dung của trang web. Đây mới chính là mục tiêu
chính của hệ thống nhằm biến đổi dữ liệu của mọi trang web thành dữ liệu chuẩn
nhằm sử dụng lại và gắ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
3.4.6. Yêu cầu lưu lại các hành động để tạo robot
• Vấn đề
43
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ử.
3.5. 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.
44
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:
3.5.1. 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.
3.5.2. 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ẻ