Thanks Bob for your helpful advice so far, and best of luck with your assignment. I am sure you'll do just great.
Some more final notes:
1) I used RMI since it is straightforward to implement and there are plenty of good threads in this forum analyzing the topic.
2) I used minimal logging only during the remote connection phase, just as an indicator that the connection was successfully established.
3) My assignment required cookies, and I used
System.currentTimeMillis(); to generate the cookie with
notifyAll(); in the unlock method. The design was based in two different classes (FileManager and LockManager). This is discussed in a lot of detail in past conversations.
4) Used
this to check my locking design
5) Minimal GUI, just two text case-sensitive fields, and only three buttons: search, book and unbook - (Well, I lost some points here, so perhaps they do expect a more elaborate user interface)
I know searching this forum requires some effort, but you will really find all you need in here. I found out later I didn't even need to ask several of my questions in the first place, since they were already answered.