代写C++代码 代做C++程序 C++辅导 C++教学

C++网络家教 远程写代码 在线Debug 讲解答疑 不是中介,本人直接写

微信: ittutor QQ: 14061936 Email: ittutor@qq.com

导航

COMPSCI 711 

The purpose of this assignment is to understand the techniques used by the CDN in 

reducing the amount of data transmission and practice developing distributed applications.  

 The system consists of three components as shown in the figure below. 

 

The server provides a service that allows users to browse and download files. The cache 

caches the data previously downloaded by the client. It should be assumed that the three 

components reside at different locations. The client program interacts with the server 

through the cache. That is, when the client wants to browse the list of files available on 

the server or to download a file from the server, the client’s requests are sent to the cache 

first and the cache forwards the requests to the server. Similarly, the server also sends the 

replies to the clients through the cache. 

Your implementation can be in either C# or Java. Client, cache and server MUST be 

implemented as separate programs. 

 

 

Part 1 (50 marks) 

In this part, you are required to implement the client program, the cache and the server. 

The requirements for the three programs are as below: 

  The client program should provide an interface that (a) allows the user to display the 

list of files that are available on the server, (b) allows the user to select a file from the 

list of available files to download, and, (c) allows the user to display the contents of 

the downloaded file. 

  The cache should cache the files previously downloaded by the client.  

o  If the user requests for  a file that has the same name as a previously 

downloaded file, the cached copy of the file should be returned to the user.  

o  The cache should keep a log to record of the activities of the cache. For each 

user’s file downloading request, the log should indicate whether the request is 

satisfied by a cached file or the requested file needs to be downloaded from 

the server. For example, when a user’s request is received, the following log 

entry might be created: 

user request: file xyz at 10:27:00 2015-08-01 

response: cached file xyz 

or 

user request: file xyz at 10:27:00 2015-08-01 response: file xyz downloaded from the server 

o  The cache should provide an interface that allows the user to view the 

contents of the cache’s log and the list of files that are cached on the server. 

o  The interface should provide a function  (e.g. a clear button) that allows the 

files in the cache to be cleared (i.e. deleted). 

o  It should be assumed that the cache has sufficient space to hold all the 

downloaded files. That is, you do not  need to consider cache replacement 

policy. 

  The server program should provide (a) an operation that allows the user to download 

a file with a given name, and, (b) an operation that lists the names of the files 

available on the server. 

 

 

Part 2 (30 marks) 

Modify the implementation of cache and server in part 1 to allow fragments of the files to 

be cached. In your implementation, the fragmentation of the files should be carried out 

automatically. That is, the users do not need to rewrite the files for caching purpose. The 

requirements for the client program are the same as in part 1. The requirements for the 

cache are as below: 

o  When a user requests for a file, if there are some cached data that can be used to 

construct the requested file, the cached data should be used, and, only the data that do 

not exist on the cache should be downloaded from the server.  

o  The cache should keep a log to record of the activities of the cache. For each user’s 

file downloading request, the log should indicate the percentage of the file that is 

constructed using the data cached on the server. The percentage is defined as “the size 

of the cached data used to construct the file / the size of the file” where the size is 

measured in bytes. For example, when a user’s request is received, the following log 

entry might be created: 

user request: file xyz at 10:27:00 2015-08-01 

response: 82% of file xyz was constructed with the cached data 

o  The cache should provide an interface that allows the user to view the contents of the 

cache’s log and the contents of the data being cached on the server. 

o  The interface should provide a function (e.g. a clear button) that allows the files in the 

cache to be cleared (i.e. deleted). 

o  It should be assumed that the cache has sufficient space. 

For the server program, in addition to the  requirements specified in part 1, the server 

program should also provide operations that are necessary to allow the cache to download 

fragments of the files. 

 

 Report (20 marks) 

Write a report about your implementation. Your report should include the following. 

(a) Clearly indicate whether you have tested your programs on a lab machine. 

(b) Instructions on how to run your programs. 

(c) For part 2, briefly describe the techniques that you use to determine which portions of 

a file need to be downloaded from the server. 

Save your report as a PDF file. Name it as report.pdf. 

 

 

Submission 

You MUST test your programs on a lab machine. If your program does not run on a lab 

machine, you will get NO marks. 

Pack your implementations and report into file A2.zip. Submit A2.zip  using the 

assignment dropbox. 

NO email submission will be accepted. 

 


相关推荐