• Jueves 14 de Noviembre de 2024, 20:52

Autor Tema:  Proyecto Rmi  (Leído 2543 veces)

dexter

  • Miembro activo
  • **
  • Mensajes: 28
    • Ver Perfil
Proyecto Rmi
« en: Jueves 7 de Julio de 2005, 05:13 »
0
Hola, soy nuevo en esto de RMI, y en la universidad nos dijeron que realicemos un Software q justifique el uso de esta Arquitectura, y de ya nos descartaron q hicieramos un Software de Gestion.

Asi que quisiera que me dieran sugerencias de q tipo de proyectos podria realizar, para asi tener una idea y escoger aquel que vaya a poder realizar.

Este software debe de ser portable, y cumplir con los 7 factores de calidad.

Ya habia pensado en una pizarra de dibujo, en la cual N usuarios puedan trabajar, cada modificacion q hace un usuario debe de ser vista al instante por todos los demas usuarios, quisiera saber si esto justifica el uso de la arquitectura RMI.

Gracias por su ayuda.

 :smartass:  :smartass:

rutger

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Proyecto Rmi
« Respuesta #1 en: Jueves 7 de Julio de 2005, 12:42 »
0
Hola. Pues prácticamente cualquier aplicación cliente/servidor que se te ocurra la vas a poder usar con tecnología RMI.

La q propones de la pizarra parece buena idea, puedes hacer un servidor q recoga las peticiones de dibujo de los usuarios, y las distribuya al resto (sería algo parecido a hacer un chat).

Luego cada uno actualiza la pizarra con todas los movimientos hasta la fecha.

Se me ocurre que puedas hacerte una clase con métodos sincronizados (monitor) para recoger las peticiones de dibujo (asi aseguras consistencia). Esta clase monitora podría ser remota y cada cliente accede a su método sincronizado para solicitar hacer una modificación en la pizarra a través de RMI.

Cada vez que se acepta una petición de dibujo en la pizarra (en el método sincronizado).. o un buffer de peticiones, según prefieras, el servidor distribuye las modificaciones a los clientes para q estos actualicen sus pizarras.

Para distribuir las modificaciones el servidor puede usar algún método remoto en los clientes.. es decir las distribuye tb. a través de RMI.

A ver si te sirve la idea

..Un Saludo..

chuidiang

  • Miembro MUY activo
  • ***
  • Mensajes: 123
  • Nacionalidad: es
    • Ver Perfil
    • http://www.chuidiang.com
Re: Proyecto Rmi
« Respuesta #2 en: Viernes 19 de Agosto de 2005, 17:23 »
0
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.