I have a pretty good experience in developing Java standalone applications . But, right now, I am faced to a new challenge ... I have to develop a new application which can have two different client: a thin client and a rich client client. I need to develop a rich client due to 3D requirements (and to access to the micro device). The server application will need to perform string analysis (user sentences, ...), build and explore directed graphs,.. but there is no heavy computation to perform.
I have some difficulties to build the best design and to choose the right technologies.
So my first question is : is the development of REST-WS a good option to develop the server-side in order to requested by my both types of client? Do you see any better alternative?
About the technologies, I have a pretty good experience about Spring and Spring RCP (+ Maven, Hibernate, ...) for developping desktop application. Are Spring MVC or Grails a good choice to develop my server application ?
Any advice would be good for me because this is a first time I need to develop a thin client and an heavy client for the same server-side application.
Any advice about the techonologies to be used would be great too since I only have a poor experience in developing web application.
Please let me know if you need more information to be able to help me.
The thin client is an application which runs in a web browser. The user should be able to interact with a 2D scene and with a directed graph (and more additionnal features). The user can also enter text messages.
Interactions with the 2D scene and text messages are sent to server to be "interpreted".
The rich cient is pretty similar to the thin client. It includes the directed graph and some other common features. But it will include a 3D scene that requires a powerful graphic card, and a speech recognition system that requires access to the microphone. In order to support the requirements (3D and access to the micro devices), this client will be installed as a desktop application.
Hope that it is more clear ... please let me know if my explanations are not clear enough.