OBJETOS DISTRIBUIDOS - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

OBJETOS DISTRIBUIDOS

Description:

Un objeto RMI es un objeto remoto java cuyos m todos pueden ser ... Tiene que cargar las clases del servidor y luego crear instancias de objetos remotos ... – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 16
Provided by: Inf58
Category:

less

Transcript and Presenter's Notes

Title: OBJETOS DISTRIBUIDOS


1
OBJETOS DISTRIBUIDOS
  • RMI

2
Remote Method Invocation
  • Es parte de JDK 1.1 o sup.
  • RMI directamente integra un modelo de objetos
    distribuidos en el lenguaje.
  • Un objeto RMI es un objeto remoto java cuyos
    métodos pueden ser invocados desde otra MV a
    través de la red.
  • Los clientes RMI interactuan con los objetos
    remotos vía su las interfaces publicadas.
  • Una invocación RMI pasa los objetos locales en
    parámetros por valor en vez de por referencia.

3
Remote Method Invocation (cont.)
  • RMI usa la serialización de objetos para guardar
    el estado actual de un objeto local en un flujo
    serial que es pasado como un parámetro dentro de
    un mensaje.
  • RMI pasa una referencia al objeto remoto, no
    copiando la implementación remota.
  • RMI provee interfaces y clases para localizar
    objetos remotos, cargarlos y ejecutarlos
    seguramente.
  • RMI actualmente posee un muy primitivo servicio
    de nombres (que no es persistente)

4
Proceso de desarrollo con RMI
Definir su interfaz remota
1
Implemente la interfaz
2
javac
3
4
rmic
Server class (.class)
Implemente el cliente
Client stub (.class)
Server Skeleton (.class)
8
Iniciar el RMI Registry
javac
5
9
Iniciar objetos del servidor
6
Inicie cliente
10
Registrar objetos remotos
7
5
1. Definir la interfaz remota
  • El servidor de objetos tiene que declarar sus
    servicios via una interfaz remota
  • se hereda de la interfaz java.rmi.remote
  • cada método en la interfaz remota tiene que
    capturar la excepcion java.rmi.RemoteException

6
  • // CalcRMI.java
  • import java.rmi.
  • public interface CalcRMI extends java.rmi.Remote
  • int sumar(int a, int b) throuws
    java.rmi.RemoteException
  • int restar(int a, int b) throuws
    java.rmi.RemoteException
  • int multiplicar(int a, int b) throuws
    java.rmi.RemoteException
  • int dividir(int a, int b) throuws
    java.rmi.RemoteException

7
2. Implementar la interfaz remota
  • Se debe implementar la interace
  • Tiene que derivar esta clase de
    java.rmi.UnicastRemoteObject

8
  • // CalcRMIImpl.java
  • import java.rmi.
  • public class CalcRMIImpl extends
    UnicastRemoteObject implements CalcRMI
  • public CalcRMIImpl(String name) throws
    RemoteException
  • super()
  • try
  • Naming.rebind(name, this)
  • catch (Exception e)
  • System.out.println(Error)
  • public int sumar(int a, int b) throws
    RemoteException
  • return ab

9
3. Compilar la clase del servidor
  • Promptgt javac CalcRMI.java
  • Promptgt javac CalcRMIImpl.java

10
4. Correr el compilador de stubs
  • RMI provee un compilador de stubs llamado rmic
  • Se debe correr rmic contra los archivos .class
    para generar los stubs y los skeletons
  • promptgtrmic CalcRMIImpl

11
5. Iniciar el RMI Registry en el servidor
  • RMI define interfaces para un servicio de nombres
    no persistente llamado Registry
  • promptgtrmiregistry

12
6. Iniciar los objetos del servidor 7. Registrar
los objetos remotos con el Registry
  • Tiene que cargar las clases del servidor y luego
    crear instancias de objetos remotos
  • Se debe un programa servidor que para lanzar los
    objetos remotos y se debe poner a ejecutar
  • promptgt javac CalcRMIServer.java
  • promptgtstart java CalcRMIServer

13
  • import java.rmi.
  • import java.rmi.server.
  • public class CalcRMIServer
  • public static void main(String args)
  • try
  • CalcRMIImpl calc new CalcRMIImpl(calc)
  • System.out.println(CalcRMI Server ready)
  • catch (Exception e)
  • System.out.println(Error)

14
8. Escribir el código del cliente
  • import java.rmi.
  • import java.rmi.registry.
  • import java.rmi.server.
  • public class CalcRMIClient
  • public static void main(String args)
  • int a, b, result
  • try
  • CalcRMI calc (CalcRMI)Naming.lookup(rmi//a
    rgs0 / calc)
  • a 10 b 20
  • result calc.sumar(a,b)
  • System.out.println(el resultado de la suma
    remota es result)
  • catch (Exception e)
  • System.out.println(error)
  • System.exit(0)

15
9. Compilar el cliente
  • Promptgt javac CalcRMIClient.java
  • 10. Ejecutar el cliente
  • promptgtjava CalcRMIClient
Write a Comment
User Comments (0)
About PowerShow.com