• Ready: đây là trạng thái sẵn sàng của Bot. Từ trạng thái này người sử dụng chỉ có thể có một lựa chọn ra lệnh đó là Start (khởi động chạy). Trạng thái Ready có thể đạt được bằng một trong những cách sau:
- Sau khi người sử dụng submit input XML, bot manager parse, xử lý input này thành các setting và lưu vào database, lúc này bot sẵn sàng cho lần chạy đầu tiên.
- Bot đang chạy và người sử dụng ra lệnh dừng (Stop), lúc này bot trở về trạng thái sẵn sàng cho lần chạy lại tiếp theo.
- Bot đang được tạm dừng (Paused) và người sử dụng quyết định hủy sự thực thi của bot (Cancel).
- Quá trình chạy của Bot gặp lỗi và người sử dụng quyết định ngừng không chạy tiếp bằng lệnh Cancel.
• Started: đây là trạng thái đang thực thi của Bot. Từ trạng thái này, người sử dụng có thể quay trở lại trạng thái Ready nếu sử dụng lệnh Stop, hoặc chuyển đến trạng thái Paused nếu sử dụng lệnh tạm dừng Pause. Nếu có lỗi xảy ra trong quá trình thực thi, Bot sẽ tự động chuyển đến trạng thái Error. Trạng thái Started có thể đạt được thông qua các cách sau:
- Người sử dụng ra lệnh start khi Bot đang ở Ready
- Bot đang bị tạm dừng (Paused) và người sử dụng quyết định chọn Resume để Bot tiếp tục quá trình thực thi.
- Bot đang ở trạng thái bị lỗi (Error) và người sử dụng quyết định chon
Resume để Bot tiếp tục quá trình thực thi.
• Paused: đây là trạng thái tạm dừng của Bot. Từ trạng thái này nếu người sử dụng hủy quá trình thực thi bằng Cancel thì Bot trở về trạng thái Ready, sẵn sàng cho một lần chạy lại khác; nếu người sử dụng cho Bot quay lại thực thi tiếp bằng Resume thì trạng thái của Bot sẽ trở lại Started. Để đến được trạng thái Paused này chỉ có một trường hợp đó là người sử dụng ra lệnh tạm dừng Bot bằng lệnh Pause.
• Error: trạng thái lỗi của Bot. Trong quá trình chạy nếu Bot gặp một lỗi (nặng) thì Bot sẽ tự động chuyển đến trạng thái Error. Trạng thái này cho người sử dụng hai lựa chọn đó là Resume – quay trở lại và tiếp tục quá trình thực thi và
Cancel – ngừng luôn quá trình thực thi, trở về trạng thái Ready.
1.6.2.2Thành phần back-end
Back-end là thành phần cốt lõi của DESS, thực hiện các chức năng chính của ứng dụng đó là crawl các trang web và trích xuất dữ liệu từ chúng. Đối tượng giúp back- end thực hiện các tác vụ này và cũng là đối tượng quan trọng nhất trong back-end, đó
là Robot. Có thể hiểu Robot như một đối tượng điều khiển, phối hợp hai đối tượng khác là Crawler và Extractor, đây là hai thực thể có chức năng tách bạch và cùng được Robot sử dụng để hoàn thành công việc trích xuất dữ liệu tự động. Để có thể vận hành được, Robot cũng cần đến các đối tượng trợ giúp, được gọi là các Helper. Các helper có thể hiểu là những đối tượng Wrapper của các thư viện quan trọng, hoặc là những đối tượng có các hàm trợ giúp như giúp đọc dữ liệu đầu vào XML. Ngoài ra Crawler và Extractor cũng cần đến một số thư viện ngoài để đem lại một số khả năng hữu ích cho ứng dụng. Chi tiết về các thành phần này sẽ được đề cập sâu hơn ở các phần sau.