5

Click here to load reader

DetaiBTL

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: DetaiBTL

IT4883 Môn học Phát triển phần mềm phân tán

Chủ đề Bài Tập Lớn

Giảng viên: Cao Tuấn Dũng – Trịnh Tuấn Đạt

I. Yêu cầu chung

Sinh viên vận dụng kiến thức môn học, tự tìm hiểu trang bị thêm các công nghệ cần thiết để hoàn thành nhiệm vụ. Các công nghệ sử dụng được yêu cầu bắt buộc sử dụng nếu có mô tả trong từng đề tài, hoặc sinh viên được tùy ý lựa chọn nếu không đề cập. Sinh viên có thể sử dụng công nghệ phát triển ứng dụng phân tán không được giới thiệu trong môn học (thông qua việc trao đổi trước với giảng viên) Nhóm sinh viên: Tối đa 5 – Tối thiểu 4. Sản phẩm cần nộp (Đóng gói trong đĩa CD/DVD):

- Báo cáo - Chương trình: Source code, Deploy File, các thư viện và hướng dẫn chi tiết (cài

đặt, sử dụng) để có thể chạy được chương trình trên một môi trường hoàn toàn mới.

- Slide trình bày - Video quay màn hình sử dụng (tối đa 10 phút – bắt buộc) – có biên tập nếu hệ

thống demo trên nhiều máy. Thời gian bảo vệ: Vào sáng thứ hai tuần 15: Lớp trưởng nộp sản phẩm của tất cả các nhóm cho giảng viên tại 327-C1. (Không chấp nhận sản phẩm nộp muộn vì bất kỳ lý do gì – sinh viên cần chuẩn bị nộp cho lớp trưởng từ tuần trước). Bảo vệ vào Tuần 15 (Hai buổi). Mỗi nhóm trình bày tối đa 15 phút. Giảng viên đặt câu hỏi trong 10 phút. Demo: môi trường

- Tự thiết lập mạng LAN WIFI, lớp tự tổ chức, mang thiết bị - Internet, SV chuẩn bị sẵn USB 3G.

Cấu trúc báo cáo

Đặt vấn đề : - Dẫn dắt đến bài toán lựa chọn, tại sao lựa chọn đề tài này, công nghệ sử dụng. - Nói rõ yêu cầu thành viên và phân công nhiệm vụ.

Mô tả hệ thống:

Page 2: DetaiBTL

Căn cứ trên các yêu cầu cơ bản của BTL, sinh viên mô tả lại chi tiết về hệ thống mà nhóm mình sẽ xây dựng. - Yêu cầu chức năng - Yêu cầu phi chức năng - Giao diện

Kiến trúc hệ thống

Trình bày sơ đồ kiến trúc Logic (bắt buộc) hoặc Vật lý (tùy chọn) của hệ thống. Giải thích ngắn gọn vai trò của từng thành phần, hệ thống con. Phương thức tương tác, truyền thông giữa chúng.

Mô hình, giao thức và thuật toán truyền thông

Giải thích các mô hình truyền thông, thuật toán sử dụng để xây dựng hệ thống. Phân tích ưu nhược điểm, lý do lựa chọn.

Xây dựng hệ thống

Giới thiệu ngắn gọn về công nghệ sử dụng, nhấn mạnh vào các điểm mấu chốt quan trọng sử dụng để giải quyết những vấn đề khó khăn của đề bài. Sơ đồ thiết kế các lớp (nếu sử dụng công cụ HĐT) Chụp ảnh màn hình minh họa các chức năng chính.

Kết luận và hướng phát triển

Nhận xét về sản phẩm của nhóm, về lựa chọn giải pháp công nghệ. Nêu rõ đóng góp của từng thành viên vào BTL (theo % công việc).

II. Danh sách đề tài

Đề 1: Hệ thống mua bán vé máy bay phân tán (3.5 sao) Phát triển một hệ thống mua bán vé máy bay phân tán. Hệ thống gồm một trung tâm lưu trữ, quản lý các chuyến bay và các đại lý bán vé máy bay. Yêu cầu cơ bản:

- Mỗi chuyến bay phải có các thông tin: Số hiệu chuyến bay, Ngày giờ bay, Nơi đi, Nơi đến, thời gian bay, Tổng số ghế, Số lượng ghế đã bán, Số lượng ghế còn trống.

- Các đại lý được quyền xem thông tin về chuyến bay, mua vé, trả vé theo yêu cầu - Trung tâm quản lý được tạo ra nhiều chuyến bay và lưu trữ lại để cho phép các

đại lý thực hiện các giao dịch trên chuyến bay cụ thể - Xây dựng thuật toán, hỗ trợ đặt chuyến bay qua nhiều điểm trung gian - Tự thiết kế Security cho hệ thống.

Yêu cầu về công nghệ: sử dụng công nghệ RPC (hoặc CORBA – DCOM) cho các đại lý.

Page 3: DetaiBTL

Đề 2: Bài toán cá bơi qua mạng (5 sao) Phát triển một ứng dụng hoạt họa phân tán. Xây dựng một hệ thống phần mềm screensaver phân tán (là ứng dụng độc lập - không yêu cầu tích hợp vào hệ điều hành) Hệ thống gồm nhiều máy tính kết nối với nhau. Mỗi máy tính là một phần của bể cá. Một con cá sẽ bơi từ màn hình máy tính này sang màn hình máy tính khác theo vòng tròn. Yêu cầu cơ bản:

- Máy chủ: quản lý số máy thành viên, hiện toàn cảnh bể cá. Hệ thống chỉ cần đáp ứng các yêu cầu về đồ hoạ cơ bản (Bể cá, cá có thể đơn giản). Tuy nhiên làm tốt sẽ được cộng điểm.

- Các các bơi theo 1 chiều (để đơn giản hóa việc điều khiển) - Cá sẽ bơi trên các máy được chọn, nửa người bên máy này, nửa người bên máy

kia, … - Server sẽ hiện toàn cảnh bể cá

Yêu cầu nâng cao

• Máy chủ: chọn loại cá, số lượng cá. • Màn hình client có khung nhỏ hiện toàn cảnh bể cá.

Yêu cầu công nghệ: Mô hình truyền thông không nhất thiết là mô hình Client- Server, có thể sử dụng mô hình P2P hoặc Group. JMS/RPC/RMI Đề 3: Thần bài (4 sao) Phát triển hệ thống trò chơi bài phân tán. Hệ thống gồm trung tâm điều khiển và các ứng dụng được triển khai trên máy người chơi. Yêu cầu cơ bản:

- Trung tâm điều khiển: Nhận kết nối của người chơi, quản lý danh sách trò chơi, phòng chơi, dữ liệu, thông tin về người chơi

- Người chơi: Xem danh sách phòng chơi, vào các phòng chơi như khách xem, thực hiện chơi

- Cài đặt được ít nhất game tá lả. Không cần đủ 4 người chơi. Yêu cầu nâng cao:

- Cài đặt thêm các loại card games khác. Yêu cầu về công nghệ: chọn JMS, RPC hoặc RMI Đề 4: Chia sẻ tài liệu học tập phân tán (5 sao)

Page 4: DetaiBTL

Xây dựng hệ thống chia sẻ tài liệu học tập phân tán. Hệ thống gồm 1 trung tâm điều khiển-Server, và các ứng dụng trên máy của sinh viên-Client. Yêu cầu cơ bản:

- Client: Đăng ký lên server các thư mục, file muốn chia sẻ - Client có thể xem danh sách các thư mục được chia sẻ, mỗi thư mục biết được ai

đang download, ai đang chia sẻ, … - Client có thể download các file, thư mục mà người khác chia sẻ trên server. Khi

đó, client đó sẽ liên hệ với tất cả các client có dữ liệu tương ứng để trao đổi - Server: Quản lý thông tin các client, các file chia sẻ, …

Yêu cầu nâng cao:

- Chia sẻ file theo ý tưởng của torrent. Client có thể chia sẻ các phần file mà mình đã download được với các client khác (Chưa cần download 100% cũng có thể thực hiện chia sẻ)

Yêu cầu về công nghệ: chọn JMS, RPC hoặc RMI Đề 5: Hệ thống dịch vụ ô tô (4 sao) Viết hệ thống các dịch vụ ô tô và 1 ứng dụng khai thác các hệ thống dịch vụ trên Yêu cầu cơ bản: Dịch vụ cơ bản

- Dịch vụ từ phía các công ty sản xuất ô tô: cung cấp service lấy các thông tin về các loại ô tô, về công ty tương ứng, …

- Dịch vụ từ phía công ty sản xuất phụ tùng ô tô: cung cấp service lấy các thông tin về các loại phụ tùng ô tô cung cấp, về công ty tương ứng, …

Từ các loại dịch vụ trên, các tổng công ty ô tô & phụ tùng đăng ký sử dụng dịch vụ cung cấp từ các công ty sản xuất ô tô & công ty sản xuất phụ tùng ở trên để triển khai thành các dịch vụ mới (tổng hợp các kết quả từ các dịch vụ cũ):

- Cung cấp dịch vụ tìm kiếm, truy cập thông tin, … Cuối cùng, ở nơi cung cấp dịch vụ bán hàng sẽ đăng ký và sử dụng các dịch vụ từ các tổng công ty, và:

- Cung cấp giao diện trang web cho người dùng truy cập, tìm kiếm, xem chi tiết thông tin

Yêu cầu công nghệ: có cài đặt security trong các dịch vụ. Ví dụ, các tổng công ty phải đăng ký & được duyệt mới được sử dụng các dịch vụ trên. Đề 6: Remote Calculator (5 sao) Viết hệ thống cho phép điều khiển và thực hiện tính toán từ xa. Hệ thống gồm 1 server và các client. (Ý tưởng tương tự như Remote Computer, nhưng đơn giản hơn)

Page 5: DetaiBTL

Yêu cầu cơ bản:

- Server: Chạy 1 chương trình calculator (tự viết) & Quản lý các client - Client: Sau khi kết nối với server, client sẽ thấy được hình ảnh calculator trên máy

chủ, và có thể thao tác được trên calculator của máy chủ. Khi 1 client thao tác, tất cả các client khác đều thấy được hình ảnh như trên Server.

Yêu cầu về công nghệ: chọn JMS, RPC hoặc RMI Đề 7: Game bắn cung Olympic. (4sao)

Xây dựng ứng dụng phân tán cho phép người dùng thi đấu bắn cung qua mạng. Thể thức thi đấu theo từng lượt bắn. Mỗi đợt thi đấu một đấu thủ bắn năm lượt. Có hạn chế thời gian ngắm bắn cho một đấu thủ. Yêu cầu: đồ họa tương đối đẹp (không quá sơ sài). Điều khiển bắn cung bằng chuột (chọn điểm ngắm bắn – lực bắn – sinh viên tham khảo trò chơi bắn cung trên mạng). Có lưu vết cung bắn trên hồng tâm cho đến hết một game. Trên server có màn hình chia ô hiển thị kết quả của các đấu thủ. Đề 8 : Phần mềm vẽ hình cộng tác - Con đường gốm sứ (4sao)

Xây dựng phần mềm cho phép các họa sỹ các vị trí địa lý phân tán có thể tham gia vẽ một bức tranh tổng thể (có kích thước lớn). Server: Chia ô tường vẽ - phân công họa sỹ - hiển thị bức tranh tổng thể. Điểm cộng: Có chức năng phóng to màn hình một ô để xem chi tiết bức vẽ (của client). Client: Cơ bản: Chọn ô – vẽ. Nội dung bức tranh luôn được cập nhật giữa client – server. Một họa sỹ có thể vẽ ở nhiều ô (đang vẽ ô này chuyển sang vẽ ô khác). Một ô có thể đồng thời nhiều người vẽ.

Đề 9 : Mô phỏng bài toán Dining Philosopher (3.5 sao) Nghiên cứu định nghĩa về bài toán Dining Philosopher trên Wikipedia. Số nhà triết học có thể từ ba trở lên. Hệ thống cho phép minh họa được trường hợp xảy ra deadlock và giải pháp xử lý deadlock. Mô hình truyền thông: P2P, Multicast, Client-Server… Trên màn hình mỗi máy hiện lên bàn ăn, các nhà triết học và highlight nhà triết học mình đại diện.