实现一个 P2P
文件共享系统,客户端从P2P服务器查询文件信息后,下载文件。
Overview
You need to design and implement a lightweight CORBA-based P2P file-sharing
application. This application consists of a server program and a client
program. Before you begin, you need to discuss with your tutor which database
management system your program is going to use.
Requirements
The “lightweight” functions must include the following:
- The server program runs at a computer.
- The server program maintains a connection with a database management system.
* You need to discuss with your tutor which database management system your program is going to use.
* You need to provide the relevant database files or SQL Database Definition Language to your tutor to help your tutor establish the database needed to test your TME. - The user can run the client program at his/her computer (which may be different from the computer on which the server program is running).
* When your tutor tests the program, s/he may test two or more clients and test the file-sharing function among clients. - The user can choose which files s/he wants to share with other users.
* The client program then registers the files on the server via CORBA.
* The user can remove the files that s/he no longer wants to share with others. If the user does this, the client program will update the sharing status on the server via CORBA. - The user can search the filename which s/he wants to download from other users.
* The client program then searches on the server via CORBA.
* If the client program finds that anyone is sharing the file, the client program shows the file name to the user without revealing who owns the file.
* If the client program finds that no one is sharing the file, the client program shows “no match result” to the user. - If someone is sharing the file that the user wants to download, the user can click on the file name and download the file to his/her computer. When the user starts the download,
* the client program first asks the server who owns the file (via CORBA).
* the client program (i.e., client-A) then builds a socket connection with the other client program (i.e., client-B), which means that the client program is a socket server application as well as a socket client application.
* client-A then tells client-B which file it wants to have.
* client-B sends the file to client-A via a socket.
Deliverables
Your assignment must be zipped into one file and uploaded using the Assignment
Drop Box feature of Moodle. The file must include
- all source files.
- a complete test plan.
Before you submit your TME, please review Tutor-marked Exercise Requirements
for full details of TME requirements and to review the marking scheme. Please
contact your tutor if you have any questions.
Note: Your tutor will not accept TMEs by email.
Submitting your assignments
- Use the Add submission OR Edit submission button below to upload your completed assignment file(s).
- Remember to click the Save changes button after uploading files
- The maximum upload file size is 501MB
- You can upload a maximum of 1 files
- Remember to click the Submit assignment button after you upload your assignment file(s), enter your online text or record your audio file.