Finally, i lost my job and do have to time to focus my certification project.
After reads lots of posts in this form, i got 99% answers from this form. 1% for copy and paste.-
My FBN app has 4 packages, db, client, service and server.
In suncertify.db package:
public Interface DBInterface: It is the main interface which has all the public methods of Data.
public Interface DBRemoteInterface extends Remote, DBInterface.
public Class Data Add criteriaFind() method to data class.
public Class DBLocalImpl: This class wrap the Data and implements DBInterface.
public Class DBRemoteImpl: This class wrap the Data and implements DBRemoteInterface,Unreference
In suncertify.service package:
This package has two classes, ConnectionFactory and DataFacade.
public class DataFacade use facade
pattern to get the data, it acts as the model role. After it get the data, it will notify all the register views to upate itself.(obsever and observable pattern)
public class ConnectionFactory use factory pattern to get the object reference depends on local or remote mode.
In suncertify.sever:
The factory will binding to registry, and factory will generate unique DBRemoteImpl object for rmic call.
And it aslo implements the unreference ,so it will clean up the dead or crush clients.
There aslo has LockManager to master the lock mechansiam. It is totally sepearte with FBN application. It can lock mutiple database.
To this part, especailly thanks to Mark, Max, Peter and Andrew and Enguenue etc, i get lots of idea regarding the locking.
In suncertify.client:
Contains views. the most important part is in the views there has the "hook" method for controller, thanks to mark again.
Any comments is appreciate.