You may assume that at any moment, at most one program is accessing the database file; therefore your locking system only needs to be concerned with multiple concurrent clients of your server.
Heh, yeah I've read this about a dozen times. I honestly believe that each section is written by a different person. I have seen terrible specifications before but nothing like the scrap that comes with this cert.
Hey, I think your graph is quite informative. I kind have a similar picture of my assignment. Only difference is that what you mean the datalayer may be the data server. I haven't program the server part and know that client in alone mode really doesn't need start up server however, I think many code in server can be used in this mode.
My Datalayer is where I store all of the business logic (including locking and unlocking of records). I also only use Contractor Objects (Javabeans) on the Client side and String on the server side. This layer translates between the two.
I've been testing threading and if the above graph is correct, then I am good to go for deadlock, critical sections, etc.
My goal is to have blocking at the minimum possible. However, it seems to me that it would be better to have non-optimal blocking and no risk of deadlock. I am not too strong on threading.