Java代写:COMP4012 Corba Based P2P File Sharing Application

实现一个P2P文件共享系统,客户端从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:

  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 file-sharing 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.

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.