Java Remote Method Invocation, permite al programador crear aplicaciones distribuidas basadas en tecnología JAVA. RMI es un mecanismo similar a Corba ofrecido por Java que permite hacer una invocación a un método de forma remota, en otras palabras, un software X puede invocar un método que se esta ejecutando en una máquina remota. Si lo que se quiere es conectarse con aplicaciones desarrolladas en otras tecnologías, debemos usar Corba o Soap.
RMI usa la serialización de objetos (Debido a la persistencia ...ahh que recuerdos de estress aquellos con el profesor Donoso, pero se aprendia bien y rápido!) y también soporta polimorfismo orientado a objetos.
Según wikipedia la arquitectura RMI puede verse como un modelo de cuatro capas:
- Capa es la de aplicación y se corresponde con la implementación real de las aplicaciones cliente y servidor.
- Capa proxy, o capa stub-skeleton. Esta capa es la que interactúa directamente con la capa de aplicación.
- Capa de referencia remota responsable del manejo de la parte semántica de las invocaciones remotas.
- Capa de transporte es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una máquina a otra.
Ahora viendo un poco de historia de como aparecio Java, un lenguaje que en un principio iba a ser para "electrodomésticos", se ha espandido masivamente por la ventaja que ofrece a los desarrolladores, de crear software multiplataforma. Aquí entran los nanosatélites. No son electrodomésticos estos nanosatélites, aunque sean del tamaño de una taza de café!, trabajarían muy bien con Java. Luego viene el trabajo de hacer un desarrollo lo mas óptimo y confiable posible, sino toda la inversión, se va al basurero y estamos hablando de varios cientos de millones de pesos chilenos. Recuerdo en el Congreso Nacional de Computación del 2005 que en una de las charlas se toco un aspecto importante sobre las nuevas tendencias en desarrollo de algoritmos para compresión de fotos, en la cual recuerdo haber pedido la palabra haciendo una acotación respecto a imagenes procesadas para videos, donde hay secciones estáticas, por lo cual debiera permanecer estátias esas zonas, sin incrementar el tamaño del fichero.
El tamaño si importa. Me refiero a los nanosatélites, pues al ser tan pequeños (Mas pequeños que los desarrollados en EEUU, que pesan 1.5 toneladas), tienen restricciones en cantidad de memoria disponible a pesar de los increíbes avances en esta área. Voy a enviar un nanotatelite, con mi ipod nano, esa seria una solución clave!.
El punto es que aparte tener excelentes algoritmos de compresión, el usar RMI nos permitiría tener aplicaciones distribuidas no muy grandes, manejando algunos componentes de software remotos y que obviamente no sean de misión crítica.
El deber me llama, pero ya les conté un poco de estos nanosatélites que enviaremos en la Universidad Católica y que es un orgullo ser parte de algo que esta creciendo, y que va creciendo como un proyecto donde tienen parte escencial los alumnos.
Referencias:
Java RMI
Universidad Católica de Temuco













