The main differences between web interfaces (for example, Spring MVC) and rich clients (and such RIAs as JavaFX) are that for web interfaces server logic works in one JVM as a web framework, while for rich clients, server logic and the client runs on two separate JVMs, one on the server machine and one on the client machine.
Rich clients are usually downloaded / installed completely before the user can launch it, and for web interfaces, each HTML page may be dynamically created first and then sent to the user as needed.
Since the user usually already has a full rich client from the very beginning, only the actual data (DTO) is sent back and forth using some remote service, such as web services.
Thus, this means that the JavaFX client cannot access server objects (for example, attached JPA objects). You need to wrap the data and send it to the JavaFX client using a service (see Service Facade and DTO Templates).
source share