Hola:
Por un lado tienes la comuniciación normal con socket. RMI es un nivel más alto (como lo era RPC en C de unix). ¿Cuando se justifica un RMI en vez de un socket?
Desde mi punto de vista hay una diferencia básica entre un socket y un RMI. Cuando un cliente pide algo, puede tener que quedarse bloqueado o no esperando la respuesta, sin hacer nada mas.
Con sockets, se envia un mensaje de peticion y podemos seguir haciendo cosas, hasta que la respuesta esté lista para ir a recogerla. Podríamos bloquearnos si lo deseamos.
Con RMI, el cliente pide algo y se queda bloqueado hasta que se termine la respuesta. No hay posibilidad de seguir haciendo cosas.
Como te comenta rutger, cualquier aplicación cliente/servidor, podrías hacerla con rmi. De todas formas, yo creo que debería pensar si es mejor usar rmi o solo un socket normal. Yo creo que la decisión debe tomarse de acuerdo a lo que te he comentado. De hecho, la aplicación de la pizarra es algo más bien "asincrono", tu pintas cuando quieres y el servidor te va repintando las cosas. RMI yo creo que está más justificado en algo más "sincrono".
Más que una aplicación de pizarra o chat, en la que deberías poder seguir pintando mientras se va refrescando con lo de los demás, deberías pensar en algún tipo de aplicación en la que te quedes bloqueado y no puedas hacer nada más hasta que la petición termine.
Se me ocurren aplicaciones del siguiente estilo:
Un acceso a base de datos remota. Cuando un cliente hace una consulta, normalmente no debe hacer nada hasta que obtenga los resultados. De hecho creo que ODBC usa internamente este mecanismo. Quizás esta apliación queda descartada por lo que comentas de un software de gestión.
Un acceso a algún hardware que esté en fisicamente en otro pc. El servidor da funciones de acceso a ese hardaware por medio de rmi, por ejemplo, para obtener su estado, hacerle un reset, etc. El hardware puede ser cualquier cosa, desde un disco duro situado en el servidor en el que se quiera escribir o leer ficheros hasta una tarjeta de audio de la que quieres ir recogiendo una grabación que se esté haciendo en ella.
Un ordenador que esté especialmente preparado para hacer calculos rapidos (una CPU más potente que la de los clientes) y ofrezca diversos algoritmos de calculo a sus clientes.
De todas formas, es más mi opinión que algo que haya leido por ahi....
Se bueno.