1 / 15

RMI JAVA

RMI JAVA. Implementación. Características. Bajar dinámicamente componentes de java de un URL a JVM, ejecutándose en un proceso diferente. RMI baja y ejecuta el bytecode de clases que no están instaladas en el disco.

arlene
Télécharger la présentation

RMI JAVA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RMI JAVA Implementación

  2. Características • Bajar dinámicamente componentes de java de un URL a JVM, ejecutándose en un proceso diferente. • RMI baja y ejecuta el bytecode de clases que no están instaladas en el disco. • RMI baja los clases especializadas stub, que habilita las llamadas a métodos remotos. • La noción de codebase origina el uso de ClassLoaders en java.

  3. ClassLoader • Los ClassLoaders necesitan saber la ubicación en donde va a serle permitido carga la clase. Es usado en conjunción con un servidor HTTP que contiene las clases compiladas.

  4. Codebase • Es la fuente o lugar desde donde se descargan clases a un JVM. • CLASSPATH es un codebase local.

  5. RMI • Usando RMI aplicaciones pueden objetos remotos que aceptan llamada a métodos desde otros clientes en otros JVM. • El cliente para que pueda invocar un método remoto necesita una manera de comunicarse. • RMI usa una clase especial llamada stub, que es bajada del codebase.

  6. Server public class CalcServer{ public static void main(String args[]){ try { CalcImpl cal = new CalcImpl(); Naming.rebind("calculo", cal); } catch(Exception e){ e.printStackTrace(); } } }

  7. Implementacion public class CalcImpl extends UnicastRemoteObject implements Calc { public CalcImpl() throws RemoteException { operador1 = 0; operador2 = 0; } public double suma(double x, double y) throws RemoteException { operador1 = x; operador2 = y; return operador1 + operador2; }

  8. Registrar metodo remoto • start rmiregistry • cd \myjava\rmi\server • start java -Djava.rmi.server.codebase=http://localhost:8080/download/ CalcServer

  9. Interfase import java.rmi.*; public interface Calc extends Remote { double suma(double x, double y) throws RemoteException; double resta(double x, double y) throws RemoteException; double multiplica(double x, double y) throws RemoteException; double divide(double x, double y) throws RemoteException; }

  10. Cliente public class CalcClient { public static void main(String[] args) { System.setProperty("java.security.policy", "client.policy"); System.setSecurityManager(new RMISecurityManager()); try { Calc c1 = (Calc)Naming.lookup ("rmi://127.0.0.1:1099/calculo"); System.out.println(c1.suma(8,5)); } catch(Exception e) { e.printStackTrace(); } }

  11. Policy grant { permission java.net.SocketPermission "127.0.0.1:1-65535", "connect"; permission java.net.SocketPermission "127.0.0.1:8080", "connect"; };

  12. Estructura • Server • CalcServer (-Djava.rmi.server.codebase= http://localhost:8080/download/) • Calc • CalcImpl • Download • Calc • CalcImpl_Stub (rmic –keep) • Client • Calc • CalcClient • Client.policy (seguridad)

  13. Conclusión • Deshabilitar las NIC que no se utilizan. • Ejecutar start rmiregistry en el DOS shell. • Verificar permisos en policy file • Instalar un WEB server (apache). • Deshabilitar/reconfigurar firewall

  14. Preguntas y respuestas • Que es lo que sigue?

More Related