What is the general feeling:
-If in network mode:
When calling the find method in the server (the same would go for the other methods too though); Is it in order to connect from the GUI to the RMI server, call find(with a value_object) and then let the server call a util/dao class to convert the value_object to a String, and then the server would in-turn call the Data class with the String. The locking and unlocking code is in the server then and not in the GUI - which makes it definitely safer.
- I feel the value_object could make the code easier to read etc., but is this step really necessary (to use a value_object) ?
I used value (transfer) objects between my business service and the GUI, because like you already indicated it is easier to read, but also less error-prone (no messing around with indexes),... With a value object you can have an appropriate data type for each member (for example: a boolean for smoking property), which gives you a more fancy rendering of the JTable (completely out of the box).
I think it definitely has a lot of added value and will make your life as a developer a lot easier. But you can keep working with a String, nothing wrong with that approach.