I chose to use RMI. If it is local model, do I need to run the RMI registry in localhost? If I don't use RMI for local model, it is meaningless to use a server. Is my understanding right?
True, you only need the server if you are working in server mode.
If you use local mode, just call the data, datainfo and fieldinfo classes directly. It is true that in that case you need two databases and they are getting out of synch (one for local and one for remote), but that is the nature of the implementation. The requirement only asks to implement both so they can see you problem solving ability. (and to see use of design
patterns)
In your case, for this problem, take a look at the factory pattern. One interface and two classes implementing this interface. One of the classes calls remote data methods via the server.
The other class calls local data class.
Since both of the classes implement the interface you can always call either of them through the interface methods. Please read the factory design pattern in a good book or search for it on this site.
hope this helps,
friso