SlideShare una empresa de Scribd logo
1 de 3
Ejemplo del uso del RMI<br />Se hará una impresión de quot;
Mi Bibliotecaquot;
 en versión cliente/servidor<br />Los archivos necesarios serán:<br />Biblio.java (Una interface con lo básico)<br />BiblioImpl.java (El objeto servidor en sí mismo, con método main para poder ejecutarse)<br />BiblioClient.java (El cliente java)<br />Estos 3 archivos componen la parte servidora (objetos en el lado del servidor)<br />Biblio.java<br />import java.rmi.Remote;import java.rmi.RemoteException;     public interface Biblio extends Remote {        String mensaje() throws RemoteException;    }<br />  <br />BiblioImpl.java<br />        import java.rmi.Naming;        import java.rmi.RemoteException;        import java.rmi.RMISecurityManager;        import java.rmi.server.UnicastRemoteObject;        public class BiblioImpl extends UnicastRemoteObject implements Biblio {            public BiblioImpl() throws RemoteException {                super();            }            public String mensaje() {                return quot;
Esta es Mi Biblioteca.quot;
;            }            public static void main(String args[]) {                // Create and install a security manager                if (System.getSecurityManager() == null) {                    System.setSecurityManager(new RMISecurityManager());                }                try {                    BiblioImpl obj = new BiblioImpl();                    // Bind this object instance to the name quot;
BiblioServerquot;
                    Naming.rebind(quot;
//192.168.0.18/BiblioServerquot;
, obj);                    System.out.println(quot;
BiblioServer bound in registryquot;
);                } catch (Exception e) {                    System.out.println(quot;
BiblioImpl err: quot;
 + e.getMessage());                    e.printStackTrace();                }            }        }<br />policy<br />grant {        // Allow everything for now        permission java.security.AllPermission;};<br />Este es para la parte clienteBiblioClient.java<br />import java.rmi.Naming;import java.rmi.RemoteException;public class BiblioClient {        static String message = quot;
blankquot;
;        static Biblio obj = null;        public static void main(String args[]) {        try {            obj = (Biblio)Naming.lookup(quot;
//192.168.0.18quot;
 + quot;
/BiblioServerquot;
);            message = obj.mensaje();        } catch (Exception e) {            System.out.println(quot;
BiblioApplet exception: quot;
 + e.getMessage());            e.printStackTrace();        }        System.out.println(quot;
MENSAJE: quot;
 + message);        }}<br />Compilamos y generamos los proxys para que el cliente remoto pueda acceder al objeto servidor (que simplemente devuelve un mensaje).<br />javac Biblio.java BiblioImpl.java<br />rmic BiblioImpl<br />Lo cual nos genera los .class de Biblio.java y BiblioImpl.java. Además de esto, el comando rmic, genera unos proxys para copiar en el lado cliente son: BiblioImpl_Stub.class y BiblioImpl_Skel.class<br />El archivo policy lo necesitamos en el lado del servidor para dar seguridad al acceso a nuestro objeto. Ejecutamos el rmiregistry que levanta un servidor  escuchando en el puerto 1099, Este programa se encarga de recibir peticiones de Clientes que intentan localizar objetos servidores y les indica donde se encuentran físicamente.<br />Una vez que tenemos levantado el rmiregisty , Levantamos nuestro objeto de lado del servidor:<br />java -Djava.security.policy=$HOME/Programacion/java/rmi/policy BiblioImpl<br />haciendo referencia al archivo policy antes creado.<br />En el lado cliente compilamos BiblioClient.java y copiamos el Stub y el Skel generados en el servidor, de modo que tengamos:<br />BiblioClient.classBiblioImpl_Skel.classBiblioImpl_Stub.classy ejecutamos : java BiblioClient , que como resultado debería dar:<br />hp@hp:rmi$ java BiblioClient<br />MENSAJE: Esta es Mi Biblioteca.<br />
Semana 13   ejemplo del uso del rmi
Semana 13   ejemplo del uso del rmi

Más contenido relacionado

La actualidad más candente (9)

App en tiempo real con HTML5+Node.js+Socket.IO
App en tiempo real con HTML5+Node.js+Socket.IOApp en tiempo real con HTML5+Node.js+Socket.IO
App en tiempo real con HTML5+Node.js+Socket.IO
 
WebSockets
WebSocketsWebSockets
WebSockets
 
Desarrollo web con JAVA: Introduccion a los Servlets
Desarrollo web con JAVA: Introduccion a los ServletsDesarrollo web con JAVA: Introduccion a los Servlets
Desarrollo web con JAVA: Introduccion a los Servlets
 
SALUDOS EN INGLES
SALUDOS EN INGLESSALUDOS EN INGLES
SALUDOS EN INGLES
 
Modulo13 Web Services
Modulo13 Web ServicesModulo13 Web Services
Modulo13 Web Services
 
Presentacion node
Presentacion nodePresentacion node
Presentacion node
 
Aplicaciones en tiempo real con nodejs y html5
Aplicaciones en tiempo real con nodejs y html5Aplicaciones en tiempo real con nodejs y html5
Aplicaciones en tiempo real con nodejs y html5
 
ASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web apiASP.NET MVC - introduccion al web api
ASP.NET MVC - introduccion al web api
 
Java servlets
Java servletsJava servlets
Java servlets
 

Destacado (7)

Semana 11 pruebas unitarias
Semana 11   pruebas unitariasSemana 11   pruebas unitarias
Semana 11 pruebas unitarias
 
Semana 10 eventos excepciones y errores
Semana 10   eventos excepciones y erroresSemana 10   eventos excepciones y errores
Semana 10 eventos excepciones y errores
 
Выездные проверки Резников Сколково
Выездные проверки Резников СколковоВыездные проверки Резников Сколково
Выездные проверки Резников Сколково
 
Dia de la tierra
Dia de la tierraDia de la tierra
Dia de la tierra
 
FRASES CÉLEBRES
FRASES CÉLEBRESFRASES CÉLEBRES
FRASES CÉLEBRES
 
Ch el hambre como problema de salud comunitaria
Ch el hambre como problema de salud comunitariaCh el hambre como problema de salud comunitaria
Ch el hambre como problema de salud comunitaria
 
State of innovation Thomson Reuters 2016
State of innovation Thomson Reuters 2016 State of innovation Thomson Reuters 2016
State of innovation Thomson Reuters 2016
 

Similar a Semana 13 ejemplo del uso del rmi

Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
Sergi Almar i Graupera
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
Steven Gomez
 

Similar a Semana 13 ejemplo del uso del rmi (20)

Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!Php Bitter Sweet Symfony!
Php Bitter Sweet Symfony!
 
Suarez l 2001 el paquete java io
Suarez l 2001 el paquete java ioSuarez l 2001 el paquete java io
Suarez l 2001 el paquete java io
 
Java Rmi
Java RmiJava Rmi
Java Rmi
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Hands-on Spring 3: The next generation
Hands-on Spring 3: The next generationHands-on Spring 3: The next generation
Hands-on Spring 3: The next generation
 
Acceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-phpAcceso a-base-de-datos-en-php
Acceso a-base-de-datos-en-php
 
Java
JavaJava
Java
 
Ejemplo Java Rmi
Ejemplo Java RmiEjemplo Java Rmi
Ejemplo Java Rmi
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Aplicación RMI
Aplicación RMIAplicación RMI
Aplicación RMI
 
mysql y visual c++.pdf
mysql y visual c++.pdfmysql y visual c++.pdf
mysql y visual c++.pdf
 
Java script
Java scriptJava script
Java script
 
Ejemplosencillocon rmi
Ejemplosencillocon rmiEjemplosencillocon rmi
Ejemplosencillocon rmi
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Tema4[php]
Tema4[php]Tema4[php]
Tema4[php]
 

Más de TerryJoss

Semana 13 sistemas distribuidos
Semana 13   sistemas distribuidosSemana 13   sistemas distribuidos
Semana 13 sistemas distribuidos
TerryJoss
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuario
TerryJoss
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuario
TerryJoss
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
TerryJoss
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
TerryJoss
 
Proyecto biblioteca
Proyecto bibliotecaProyecto biblioteca
Proyecto biblioteca
TerryJoss
 

Más de TerryJoss (9)

Semana 13 sistemas distribuidos
Semana 13   sistemas distribuidosSemana 13   sistemas distribuidos
Semana 13 sistemas distribuidos
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuario
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuario
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
 
Memento
MementoMemento
Memento
 
Facade
FacadeFacade
Facade
 
Prototype
PrototypePrototype
Prototype
 
Proyecto biblioteca
Proyecto bibliotecaProyecto biblioteca
Proyecto biblioteca
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Semana 13 ejemplo del uso del rmi

  • 1. Ejemplo del uso del RMI<br />Se hará una impresión de quot; Mi Bibliotecaquot; en versión cliente/servidor<br />Los archivos necesarios serán:<br />Biblio.java (Una interface con lo básico)<br />BiblioImpl.java (El objeto servidor en sí mismo, con método main para poder ejecutarse)<br />BiblioClient.java (El cliente java)<br />Estos 3 archivos componen la parte servidora (objetos en el lado del servidor)<br />Biblio.java<br />import java.rmi.Remote;import java.rmi.RemoteException;     public interface Biblio extends Remote {        String mensaje() throws RemoteException;    }<br />  <br />BiblioImpl.java<br />        import java.rmi.Naming;        import java.rmi.RemoteException;        import java.rmi.RMISecurityManager;        import java.rmi.server.UnicastRemoteObject;        public class BiblioImpl extends UnicastRemoteObject implements Biblio {            public BiblioImpl() throws RemoteException {                super();            }            public String mensaje() {                return quot; Esta es Mi Biblioteca.quot; ;            }            public static void main(String args[]) {                // Create and install a security manager                if (System.getSecurityManager() == null) {                    System.setSecurityManager(new RMISecurityManager());                }                try {                    BiblioImpl obj = new BiblioImpl();                    // Bind this object instance to the name quot; BiblioServerquot;                     Naming.rebind(quot; //192.168.0.18/BiblioServerquot; , obj);                    System.out.println(quot; BiblioServer bound in registryquot; );                } catch (Exception e) {                    System.out.println(quot; BiblioImpl err: quot; + e.getMessage());                    e.printStackTrace();                }            }        }<br />policy<br />grant {        // Allow everything for now        permission java.security.AllPermission;};<br />Este es para la parte clienteBiblioClient.java<br />import java.rmi.Naming;import java.rmi.RemoteException;public class BiblioClient {        static String message = quot; blankquot; ;        static Biblio obj = null;        public static void main(String args[]) {        try {            obj = (Biblio)Naming.lookup(quot; //192.168.0.18quot; + quot; /BiblioServerquot; );            message = obj.mensaje();        } catch (Exception e) {            System.out.println(quot; BiblioApplet exception: quot; + e.getMessage());            e.printStackTrace();        }        System.out.println(quot; MENSAJE: quot; + message);        }}<br />Compilamos y generamos los proxys para que el cliente remoto pueda acceder al objeto servidor (que simplemente devuelve un mensaje).<br />javac Biblio.java BiblioImpl.java<br />rmic BiblioImpl<br />Lo cual nos genera los .class de Biblio.java y BiblioImpl.java. Además de esto, el comando rmic, genera unos proxys para copiar en el lado cliente son: BiblioImpl_Stub.class y BiblioImpl_Skel.class<br />El archivo policy lo necesitamos en el lado del servidor para dar seguridad al acceso a nuestro objeto. Ejecutamos el rmiregistry que levanta un servidor  escuchando en el puerto 1099, Este programa se encarga de recibir peticiones de Clientes que intentan localizar objetos servidores y les indica donde se encuentran físicamente.<br />Una vez que tenemos levantado el rmiregisty , Levantamos nuestro objeto de lado del servidor:<br />java -Djava.security.policy=$HOME/Programacion/java/rmi/policy BiblioImpl<br />haciendo referencia al archivo policy antes creado.<br />En el lado cliente compilamos BiblioClient.java y copiamos el Stub y el Skel generados en el servidor, de modo que tengamos:<br />BiblioClient.classBiblioImpl_Skel.classBiblioImpl_Stub.classy ejecutamos : java BiblioClient , que como resultado debería dar:<br />hp@hp:rmi$ java BiblioClient<br />MENSAJE: Esta es Mi Biblioteca.<br />