I am getting ready to submit my assignment for fly by night.
Below is the overview summary for my major design decisions.
If you feel that I am in error, please challenge me, because I would like to discuss my decisions, in order validate them, and in order to prepare for the essay
test.
<h2>Issues</h2>
Record Locking - record locking is the responsibility of the client. The server blocks new lock requests
until the lock is available. If the client does not unlock the record, the server retains a lock on that record,
and blocks, effectively locking the client, any additional request for a lock on that record. <code>suncertify.db</code>
is threadsafe if interfaced with as intended.
Thread Safety - thread safety between the client and server is managed by rmi, rmi starts new threads for requesting
clients as needed.
Networking Choice - networking decision is rmi, because it takes less code to implement, and is easier to debug
Search Algorithm - Search algorithm searches database in <code>O(cn)</code> time for multiple field matches where
<code>c</code> is the number fields being searched, and <code>n</code> is the number of records.
This is as efficient as possible without building index tables into the database for every field possibly searched.
Expectation of future functionality enhancements - the GUI was built to dynamically build itself around the
current contents of the database. This will allow the GUI to interface with server-side changes to the database and its
schema seamlessly. GUI actions are implemented through dialog boxes, and menu items. If a new version of the GUI with more
actions is developed the way the user uses it will not change significantly.