1. Customer selects browse catalog
2. System presents the main page the catalog that has a list of categories and a list manufacturers
2. Make 1 interface that has all the public methods of the new Data class or the modified one, depending on which you chose in statement #1.
Interface extends Remote, throws only Exceptions
Your user interface should be designed with the expectation of future functionality enchancements, and it should establish a control scheme that will support this with minimal descruption to the users when this occurs.
[Andrew]: You will have noticed that most of the methods of Data class call invariant() to verify that nothing untoward has happened to the database between accesses. I think that this is all Sun require in the way of verifying that only one application is modifying the database at any given time.
[Andrew]: Personally I think it would be very difficult to guarantee that only one application could access the database at any given time. There are some things you could do, but most of them would require changing the provided classes. Sun have told us that those classes "are complete". I take that as meaning that we should not go changing existing functionality if we can avoid it.
The remote client code that you write must provide all the public methods of the suncertify.db.Data class.
So although you can get away with dynamically downloading your code (and even using a web server) because it is not specifically disallowed, you might want to think about whether you really want to do something that Sun are explicitly stopping people from doing in later assignments.