实现一个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.