CSCE 790A: Problem Set 1

Due: Monday 5 February 2001, before class.

Back in the early days, before the Internet bubble burst, there were a lot of companies claming that pretty soon everyone will be using their product. I remember one (or where there a couple?) company who had the idea of selling a browser which would add comments to all web pages for all other users to see without, of course, actually changing the web pages.

The way this worked was with a "comment"-server that stored all the comments associated with each web page. The users used a special browser (really, a plug-in to their own browser) which would fetch the appropiate web page and would then visit the server and ask it to return any comments that existed for that URL. Also, if the user wanted to add a comment to a web page the browser would simply send the comment to the comment-server.

For this problem set you will implement such a system. I have already implemented a simple browser that you can use: Browser.java, Browser.java.html. You will need to implement both the comment-server and make extensions to Browser in order to make it work with the server. Your implementation will use TCP sockets for sending/receiving information between the client and server. The basic system should:

  1. Ask the user for a username, no password is needed.
  2. Show web pages along with any comments they might have. The comments should be preceeded by the username of the poster.
  3. If the user presses the "add comment" button, which you will add, he will be prompted for a new comment which will then be sent to the comment-server.
  4. The comment-server needs to be able to handle any number of Browser.java browsers.

Bonus point for naming the companies who thought this would make them rich. Also, you will need to use the jdk 1.3 to compile the Browser. Do not use Microsoft's J++ since it is not compatible.

Handing it in: Like all problem sets in this class, this one can be done by groups of 1-3. To hand it in you will:

  1. One member of the group must create an account on source.cse.sc.edu, using the same username as your engineering username.
  2. Place all your .java files (and nothing else) on your home directory on source, on a folder called "ps1". This should be accessible from any Engineering machine by accessing source from the network neighborhood---when you do this you should see your home directory.
  3. Place a README file that explains exactly how to run your server and clients, and how to compile them. The file should give the exact commands. The file should look like (replace the well-known names for your own):
    Names: George Bush, Bill Clinton, Hillary Clinton
    Email: bush@whitehouse.gov, billg@hotmail.com, hillary.rodham@whitehouse.gov
    Instructions:
    
    ..this is how you run it...
    
    Make sure the emails are correct!
  4. Turn in a printout of your code (try to use a small font) with a signed coversheet.
The PS is due before class starts, a second later you will lose 30%. You are responsible for copying it in time, so make sure you can do so now.



Jose M. Vidal
Last modified: Fri Feb 16 12:46:33 -0500 2001