3.4. Cài đặt và thử nghiệm Phần cứng Phần cứng Yêu cầu về máy chủ: - Ram: 16GB - Bộ nhớ trong: 1TB - CPU 24 core - Tốc độ mạng 100MHz Phần mềm
- Máy tính cài hệ điều hành Window server 2012 - Apache 2.4.41
- MariaDB 10.4.8 - PHP 7.3.10
- phpMyAdmin 4.9.1 - Dotnet framework 4.0 - AutoIT 3.0
- Selenium Web Driver - Chromedriver
Mặc dù tính khả thi của việc giải quyết bài tốn đã được chứng mình, nhưng do đặc thù của mỗi sàn thương mại điện tử khác nhau nên quá trình tạo script cho mỗi sang lại có những vẫn đề khác nhau như:
Lazada.vn: trang này có rất nhiều biện pháp để chống spam sản phẩm lên
trang, ví dụnhư nhận dạng được trình duyệt là trình tựđộng hoặc hành động nhập dữ liệu là của autobot. Khi đó trang lazada sẽ khóa chức năng đăng nhập và yêu cầu người dùng kéo trượt để mở khóa. Giải pháp đề ra là không dùng selenium mà AutoIT để giả lập y hệt thao tác của người dùng
Shopee.vn: Trang này cũng nhận dạng được trình duyệt tự động giống như Lazada nên giải pháp đặt ra là sử dụng AutoIT để giả lập thao tác người dùng.
Tiki.vn: Form nhập của tiki.vn nhập thông tin sản phẩm theo kiểu wizard
setup, tức là tồn bộ q trình nhập thông tin sản phẩm được chia thành nhiều bước và mỗi bước là 1 màn hình. Vậy nên các hành động sẽ phức tạp hơn so với các trang nhập thơng tin đơn.
Sendo.vn: Tác giả khơng gặp khó khăn gì trong việc sử dụng Selenium để
điều khiển.
Vatgia.com: Trang này rất đơn giản, số lượng trường nhập cũng ít nên khơng gặp khó khăn gì.
3.5. Kết quả
Thời gian đăng sản phẩm lên Tiki là 2 phút 1 sản phẩm, lên Shopee là 1 phút 50 giây, với Vật giá là 1 phút. Với lazada là 3 phút.
3.6. Định hướng phát triển trong tương lai
Hiện tại admin đang thống kê số lượng người dùng, số lượng sản phẩm của hệ thống bằng việc lọc cơ sở dữ liệu. Việc làm này tốn khá nhiều thao tác và yêu cầu người quản trị phải có 1 chút kiến thức về truy vấn cơ sở dữ liệu. Vậy nên thời gian tới tác giả dự định sẽ xây dựng 1 trang quản trị nhỏ giúp cho người quản trị hệ thống thông kê được dễ dàng hơn.
Hiện tại hệ thống mới chỉ hỗ trợ đăng sản phẩm lên các sàn. Vì các thao tác được thực hiện như người dùng thật nên gần như khơng có giới hạn các thao tác. Tác giả dự kiến sẽ hỗ trợ 1 số thao tác khác như:
- Sửa thông tin sản phẩm trên sàn - Xóa bỏ sản phẩm.
Sau khi xây dựng mơ hình mẫu của hệ thống và đã chứng minh được tính khả của hệ thống thì tác giả thấy hệ thống đang có 1 vấn đề khá lớn đó là hiệu năng của hệ thống rất chậm do việc thực hiện thao tác giả lập người dùng là tuần tự. Để giải quyết vấn đề này có 2 giải pháp được đề xuất đó là:
-Thực hiện các thao tác theo mơ hình đa luồng, tức là có nhiều hơn 1 luồng thực hiện thao tác trong 1 thời điểm. Giải pháp này rất hay nhưng không thực hiện được do trình quản lý thao tác sử dụng cả AutoIT và Selenium, khi sử dụng AutoIT thì trình điều khiển chiếm chuột để theo tác. Nếu có hơn 1 trình u cầu sử dụng chuột tại một thời điểm sẽ xảy ra xung đột và gây ra việc thực hiện các thao tác sai.
-Phát triển hệ thống theo mơ hình phân tán, trong đó 1 máy chủ chịu trách nhiệm master sẽ xử lý thông tin để đưa ra các tập thao tác (lưu trữ dưới dạng mã
kịch bản) sau đó chuyển đi cho các máy chủ Slave thực hiện như hình bên dưới. Phương pháp này giải quyết triệt để được vấn đề về hiệu năng nhưng cần cân nhắc vấn đề về chi phí, hiệu quả.
Ngồi ra Server Farm cịn giải quyết được một vấn đề lớn nữa đó là các trang chặn nếu gửi quá nhiều request từ 1 địa chỉ IP. Một số trang web ngày này sẽ thiết lập các chính sách để tránh việc bị bot (máy tự động) tấn công. Phương pháp khá phổ biển là lọc địa chỉ nguồn, nếu thấy từ một địa chỉ nguồn gửi đến quá nhiều request (u cầu) thì máy chủ có thể từ chối phục vụ.