Mag
1. an application specific method such as
public boolean book (int recno, int seats)
throws RemoteException, DatabaseException, BookingException;
Reason: "Booking" is a special kind of modification that involves only one data field.
Reason: I want to compare the original data to the database before writing the modifications to the database. I want to make sure that it is not possible to inadvertantly overwrite someone else's modifications.
If a ModificationException is thrown, the GUI will prompt the user and ask him to reload the data and modifying it again.
3. a callback mechanism for loading records:
Instead of returning an array of records, the records are individually passed to the client, which then adds them to the model.
Reason: Increasing the perceived performance.
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher
Mag
What I am not so sure about is whether I should have a single instance of Data, which is accessed by all existing DataAccess servers, or have an instance of Data for each DataAccess server.
Any comments on this are welcome!!!
For the Modification:
I have the following use case in mind:
...
I think that real-life applications must deal with such a use case.
On the callback functionality and performance:
I think that callbacks are a perfectly standard solution. But I am not so sure about this.
And finally, the LockManager:
While I am writing this, I have the idea of using the reference of the current thread as an ID within the lock manager! (I hope it's a good idea.)
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher
Originally posted by George Lawniczak
Maybe this approach is a bit much for this project, but it works, and it facilitates expansion of the application to encompass perhaps other tables, or databases.
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage - to move in the opposite direction. - Ernst F. Schumacher
One potential flaw is that you are creating a proprietary protocol for communicating with the abstraction layer. Not that that is necessarily a bad thing, but such communication schemes can become untenable over time and be difficult to extend. All in all though, as I stated earlier, I think it's a great approach.