Tìm hướng tối ưu cho bài làm thiết kế hệ thống

Chào anh chị và các bạn,
Hiện tại mình có một đề bài như thế này, vì mình chưa tìm hiểu kĩ về mạng, nên mình muốn hỏi ý kiến mọi người xem bài này cần những kiến thức gì? ( về mạng server, sử dụng CSDL nào phù hợp (SQL, NoSQl, …), C#, oop, …) và mọi người có thể trả lời các câu hỏi cuối bài được không ạ?
Cách của mình hiện tại là viết một hệ thống bằng C# or C++ sau đó mình sẽ lưu nhưng trữ dữ liệu về về database rồi mới dùng chương trình để xử lí.
Thanks
Bài :
Thiết kế một hệ thống để thu thập dữ liệu và sao chép tất cả Wikipedia bằng một mạng máy phân tán.
Cụ thể hơn, giả sử máy chủ của bạn có quyền truy cập vào một bộ máy khách. Máy khách của bạn có thể thực thi mã bạn đã viết để truy cập các trang Wikipedia, tải xuống và phân tích dữ liệu của họ và ghi kết quả vào cơ sở dữ liệu.

Một số câu hỏi bạn có thể muốn xem xét như một phần của giải pháp của mình là:
Làm thế nào bạn sẽ đạt được càng nhiều trang càng tốt?
Làm thế nào bạn có thể theo dõi các trang đã được truy cập?
Làm thế nào bạn sẽ đối phó với các máy khách của bạn bị đưa vào danh sách đen?
Làm thế nào bạn có thể cập nhật cơ sở dữ liệu của mình khi các trang Wikipedia được thêm hoặc cập nhật?

Thực hiện việc crawl dữ liệu ở trang nào khác thì bàn, còn Wikipedia là một trang cho phép bạn download toàn bộ về để sử dụng offline, nên cách làm trên thuộc loại “tự làm khó” bản thân. Tất nhiên, khi dùng bản offline sẽ khó có thể nghe ngóng được nếu có sự thay đổi trên trang. Nhưng, Wikipedia là một tổ chức rất hào phóng, gửi email cho họ để xin trợ giúp, các lập trình viên của họ sẵn sàng chia sẻ API để nghe ngóng sự thay đổi, mã nguồn Wikipedia đã mở sẵn cho download.

Túm lại: hỏi câu gì khác thú vị hơn, câu hỏi vừa rồi lẩn thẩn chỗ server kết nối tới client <= mô hình gì lạ vậy?

2 Likes

Ý hỏi của đề bài là chưa hẳn là Wiki ạ mà có thể là trang khác có chức năng tương tự ạ,
Em nghĩ mục đích cảu bài là sử dụng mạng máy chủ khách để tải và sử lí, chứ không sử dụng trức tiếp main server ạ, giống như kiểu search của google ấy ạ, thay vì dùng máy chủ của gg search trực tiếp thì sẽ dùng kiểu mạng máy phân tán truyền dữ liệu đến các máy trạm khu vực, or các máy khách để xử lí tìm kiếm và trả về kết quả.
Và có nhiều cách làm thì cách làm sẽ trả lời được cho 4 câu hỏi ở trên kia ạ?
Làm thế nào để máy chủ theo dõi được các trang web máy khách or máy trạm đã truy nhập ?
Làm thế nào để máy chủ có thể cập nhật được khi có nhiều nguồn cùng thay đổi một lúc trên Wiki ạ?
Cám ơn anh

Đọc thì thấy liên quan đến map-reduce trong hệ thống phân tán. Em xem qua map-reduce(Hadoop) xem thế nào.

3 Likes

Để em thử,
Cám ơn anh

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?