0% encontró este documento útil (0 votos)
70 vistas21 páginas

Java Rmi 301 2024 3

Fui nlk shok iik
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas21 páginas

Java Rmi 301 2024 3

Fui nlk shok iik
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 21

JAVA RMI

Michael Alexander Arcos Murcia - 20242678046


Javier Santiago Ramírez Marín - 20242678010
Carlos Alberto Rubiano Olaya - 20242678019
Cristian Alejandro Bejarano Castellanos- 20242678033
CONTEXTO
Las aplicaciones distribuidas han evolucionado significativamente desde sus inicios.
Originalmente, las aplicaciones se ejecutaban en una sola máquina, limitando su
rendimiento y escalabilidad. Sin embargo, con el advenimiento de las redes y el
crecimiento explosivo de Internet, surgieron nuevas necesidades y desafíos. Se hizo
evidente que las aplicaciones en diferentes máquinas necesitaban comunicarse entre sí de
manera eficiente para aprovechar los recursos distribuidos, mejorar la escalabilidad y
aumentar la disponibilidad.

Este cambio de paradigma llevó al desarrollo de varias


tecnologías de comunicación entre procesos (IPC),
diseñadas para facilitar el intercambio de datos y la
coordinación entre procesos que operan en diferentes
sistemas operativos o máquinas. Entre estas tecnologías,
Java RMI (Remote Method Invocation) se destacó como
una solución potente y orientada específicamente para
aplicaciones desarrolladas en la plataforma Java.
Java RMI fue introducido por Sun Microsystems como parte del JDK 1.1 en 1997,
marcando un hito en la programación de aplicaciones distribuidas al permitir la invocación
de métodos de objetos remotos de manera similar a las llamadas a métodos locales. Esto
no solo simplificó el desarrollo de aplicaciones distribuidas en Java sino que también
integró de manera nativa el soporte para serialización y comunicación de red, abstrayendo
la complejidad y permitiendo a los desarrolladores concentrarse en la lógica de negocio.
RELEVANCIA
Java RMI es fundamental en este
contexto porque simplifica el desarrollo
de aplicaciones distribuidas dentro del
ecosistema Java. Al proporcionar un
mecanismo para la invocación de
métodos remotos, RMI permite que los
desarrolladores diseñen y implementen
servicios que pueden ser consumidos
por clientes en diferentes máquinas, sin
necesidad de lidiar directamente con la
complejidad subyacente de los
protocolos de red y la serialización de
datos.
¿QUE ES?
Java RMI (Remote Method Invocation) permite que un programa Java invoque métodos de
un objeto Java en otro espacio de direcciones, posiblemente en diferentes máquinas. Lo
que distingue a RMI de otros sistemas RPC (Remote Procedure Call) es que RMI está
diseñado específicamente para Java, permitiendo la invocación de métodos que operan
sobre objetos distribuidos.
IMPLEMENTACIÓN EN EL
SERVIDOR
Las clases que implementan estas interfaces deben manejar la lógica específica de la
aplicación de los métodos declarados. Además de implementar los métodos, la clase del
servidor usualmente extiende UnicastRemoteObject, lo que facilita la exportación del
objeto para que esté disponible para recibir invocaciones remotas. La instancia de esta
clase se registra en el RMI Registry con un nombre único, lo cual permite a los clientes
localizarla.
CLIENTE
El cliente RMI busca objetos remotos en el RMI Registry usando su nombre. Una vez
que un objeto es localizado, el cliente obtiene un 'stub', una representación local del
objeto remoto. Las invocaciones a métodos en este stub se redirigen
transparentemente al objeto remoto, facilitando al desarrollador operar como si el
objeto estuviera localmente disponible.

ARQUITECTURA BÁSICA
Stub y Skeleton
El stub en el cliente actúa como una fachada para el objeto remoto, encargándose de serializar los argumentos de los
métodos y enviar las invocaciones al servidor. En versiones modernas de Java, los skeletons han sido eliminados ya que
la JVM es capaz de deserializar directamente los llamados entrantes y dirigirlos al objeto apropiado.
RMI REGISTRY
El RMI Registry es crucial para la localización de objetos remotos. Funciona como un
directorio de nombres donde los objetos remotos se registran y pueden ser buscados
por los clientes. Funciona en un puerto específico y permite que múltiples objetos
estén registrados simultáneamente.

SERIALIZACIÓN DE OBJETOS
La serialización juega un papel crítico en Java RMI ya que todos los argumentos y valores retornados de los métodos
invocados remotamente deben ser convertidos a un formato binario para su transporte a través de la red. Java
proporciona una serialización nativa que facilita este proceso, pero es esencial asegurar que todos los objetos que se
van a transmitir implementen la interfaz Serializable.
CARACTERISTICAS
Transparencia en la Modelo de objetos
invocación remota distribuidos
permite a un programa invocar Los objetos distribuidos
métodos en un objeto remoto de la pueden ser pasados entre las
misma forma que invocaría
máquinas en la red.
métodos en un objeto local
CARACTERISTICAS
Serialización de Independencia de la
objetos plataforma
El proceso de convertir un objeto en Cualquier aplicación RMI
un formato que pueda ser puede ejecutarse en cualquier
transmitido a través de una red
sistema operativo que
soporte Java
CARACTERISTICAS
RMI Registry Seguridad
Servicio de directorio simple que Java RMI permite el uso de
permite que los objetos remotos se mecanismos de seguridad a
registren bajo un nombre
través del Security Manager
específico.
de Java.
FÁCIL DE USAR Y INTEGRADO CON EL
DESARROLLAR ECOSISTEMA JAVA

VENTAJAS Simplifica el desarrollo


de aplicaciones
Permite aprovechar
toda la plataforma y las
distribuidas. herramientas de Java.

INVOCACIONES INTERFACES
SERIALIZACIÓN SÍNCRONAS Y REMOTAS
AUTOMÁTICA ASÍNCRONAS PERSONALIZADAS

Los objetos no
necesitan convertirse a
un formato intermedio.
DEPENDENCIA COMPLEJIDAD
EXCLUSIVA DE JAVA
En sistemas distribuidos
No es adecuado para
arquitecturas donde
a gran escala la
administración puede
DESVENTAJAS
existen otros lenguajes volverse más compleja.
de programación.

RENDIMIENTO DE ESCALABILIDAD MANEJO DE FALLOS


RED LIMITADA
el manejo de fallos más
El rendimiento puede no es la opción ideal complejo, la
ser inferior al de otras para sistemas que recuperación de fallos o
tecnologías. necesitan escalar a nivel la reconexión
global. automática.
EJEMPLO
Interfaz

Extiende interfaz remota (Invocación remota)

}
Excepción de errores durante invocación

Módulos de división, multiplicación, suma y resta

numero 1 número 2
EJEMPLO
Cliente

LocateRegistry adquiere el registro del server en


este caso el localhost en el puerto 1099

Naming.lookup, devuelve una referencia al objeto


que esta convertido en tipo Calculadora

RMI
RMI actua como un objeto remoto que puede ser
invocado, desde un cliente RMI

Implementa interfaz de calculadora


EJEMPLO
SERVER

Locate Registry actúa como un directorio en donde se registran objetos remotos para
que los clientes lo busquen.

r.rebind, registra la instancia Rmi que implementa la interfaz de Calculadora (rebind,


vincula y registra un objeto remoto en el registro)
CONCLUSIONES
Comunicación Abtracción
Revoliciono la forma en la Gran parte de la complejidad
que aplicaciones Java se de la comunicación en red es
comunican en entornos ocultada, permitiendo
distribuidos con su forma de centrarse más en la lógica
invocar metodos. que en la implementación

Impacto
CONCLUSIONES
Estandarización Evolución
RMI se convierte en parte Con el paso del tiempo, se
integral de la plataforma han adoptado nuevas
Java, generando una caracteríasticas, mejoras en
estandarización entre sus seguridad, IIOP (Internet
aplicaciones distribuidas. Inter-OBR Protocol) buscando
interoprabilidad con otros
lenguajes.

Desarrollo
CONCLUSIONES

El impacto que ha generado Java RMI ha sido significativo en el


desarrollo de sistemas distribuidos, proporcionando un enfoque
efectivo y simplificado para la comunicación entre objetos en
red.
¡Muchas gracias por tu
atención!

También podría gustarte