Assignment: CORBA-based P2P File-Sharing Application
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:
1. The server program runs at a computer.
2. 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.
3. 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 filesharing function among clients.
4. 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.
5. 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.
6. 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.