• Jueves 2 de Mayo de 2024, 20:59

Autor Tema:  RMI con NetBeans  (Leído 16619 veces)

cachorro

  • Miembro MUY activo
  • ***
  • Mensajes: 196
  • Nacionalidad: ec
    • Ver Perfil
    • http://www.pumamix.com
RMI con NetBeans
« en: Domingo 1 de Agosto de 2010, 21:07 »
0
Saludos a todos....estoy aprendiendo java y utilizo NetBeans, ahora debo manejar lo que es RMI, pero quisiera saber si alguien me puede ayudar con algun ejemplo practico del uso de RMI hecho con NetBeans, agradesco mucho su ayuda....gracias de antemano....
La Vida es un Reto..Enfrentala....

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: RMI con NetBeans
« Respuesta #1 en: Domingo 29 de Agosto de 2010, 18:45 »
0
:huh: hola... pues yo he manejado RMI pero tengo la triste experiencia que netbeans no te facilita esa tarea, me ha tocado desarrollar toda GUI y la logica en netbeans, y despues si hacer lo de RMI por aparte, yo no encontre manera de q netbeans me manejara el rmiRegistry y todo esta cuestion.... si necesitas algun ejemplo no mas me dices y hay te lo hago llegar....  :beer:
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

cachorro

  • Miembro MUY activo
  • ***
  • Mensajes: 196
  • Nacionalidad: ec
    • Ver Perfil
    • http://www.pumamix.com
Re: RMI con NetBeans
« Respuesta #2 en: Lunes 30 de Agosto de 2010, 15:44 »
0
Bueno si me puede ayudar con algun ejemplo le agradeceria mucho...
La Vida es un Reto..Enfrentala....

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: RMI con NetBeans
« Respuesta #3 en: Lunes 30 de Agosto de 2010, 19:56 »
0
claroooo esta noche que llegue a mi casa te lo posteo... Saludos
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: RMI con NetBeans
« Respuesta #4 en: Lunes 30 de Agosto de 2010, 19:59 »
0
claroooo esta noche que llegue a mi casa te lo posteo... Saludos
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: RMI con NetBeans
« Respuesta #5 en: Lunes 30 de Agosto de 2010, 20:04 »
0
claroooo esta noche que llegue a mi casa te lo posteo... Saludos
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: RMI con NetBeans
« Respuesta #6 en: Jueves 2 de Septiembre de 2010, 07:37 »
0
Hola Cachoro, que pena el retraso en darte la respuesta... pues mira, tengo un ejemplo, tratare de ser lo mas consiso posible...

para manejar RMI es como manejar sockets, solo que es de mas alto nivel y no tienes q preocuparte por sincronizar informacion ni nada, el jvm se encarga de todo...... entonces de la parte servidor :

debes crear una interface y su implementacion, como por ejemplo esta :
Código: Java
  1.  
  2. import java.rmi.Remote;
  3. import java.rmi.RemoteException;
  4. import java.io.*;
  5. //aqui definimos los metodos que seran usados compartidos entre cliente y servidor.
  6. public interface Banco_Interface extends Remote {
  7.    
  8.     public String Crea_Usuario(String Cedula,String Oficina,String Cuenta,String Nombre) throws RemoteException;
  9.     public String Eliminar_Usuario(String cedula) throws RemoteException;
  10.     public boolean  Consulta_Usuario(String cedula) throws RemoteException;
  11.     public boolean Login(String usuario,String Password) throws RemoteException;
  12.     public String get_usuario(String Cedula) throws RemoteException;
  13.    
  14. }
  15.  
  16.  

esta clase herada de la clase Remote de RMI, que segun entiendo cuando se compila con RMI hace la comunicacion y el stub que es como el esqueleto de la comunicacion RMI... eso si tendrias que documentarte un poco mas......
debes  crear la implementacion de cada metodo... de la clase anterior, ya que son las operaciones que va a consumir el RMI, esta interfaces es el medio que usuara para comunicarse cliente y servidor en el RMI
para lanzar el servidor que quede en espera debes  usar el siguiente codigo :
Código: Java
  1.  
  2. try {
  3.       System.setSecurityManager(new RMISecurityManager());
  4.       Banco_Impl c = new Banco_Impl("C:\");
  5.       Naming.rebind("rmi://"+Ip+"/ServerBanco", c);
  6. } catch (Exception e) {
  7.       System.out.println("Problema: " + e);
  8. }
  9.  
  10.  
donde, Banco_Impl es mi clase implementada de la interface del punto anterior. toda la url que queda en Naming.rebind, es como el nombre de tu RMI que publicaste. asi es como se encontrara al ser consumido tu RMI.... donde la Ip puede se la ip del servidor o el hostname, como en sockets, y el ServerBanco es el nombre q tu le das al RMI... entonces!!!... ahora te voy a mostrar como se generaria el codigo de cliente...

yo siempre suelo crear un metodo llamado conexion, dentro de todaaaa la logica que haga del lado cliente, con esto me refiero a que puedes hacer toda tu GUI para el cliente y ponerle al evento de un boton "conectar" la logica para que se conecte al servicio RMI...
Código: Java
  1.  
  2. Banco_Interface c;
  3. public void Conexion()
  4. {
  5.      try{
  6.             c = (Banco_Interface)
  7.             Naming.lookup("rmi://"+Ip+"/ServerBanco");        
  8.      }catch (Exception e ) {
  9.             System.out.println(e);
  10.     }                
  11. }
  12.  
  13.  
como puede ver, el cliente utiliza la interface generada en el servidor, es importante tenerla en cliente y servidor compilada con RMI, entonces que hacemos aca. pues la interfaz c, le asignamos el resultado del Naming.lookup con el nombre del servicio RMI el mismo que se definio en el servidor.... y simplemente para poder hacer uso de las operaciones que creamos en el servidor. usamos el objeto c...  con su correspondiente try catch en caso de que halla algun fallo de conexion poderlo controlar.....

con esto ya se tiene la codificacion del cliente y del servidor... pero entonces como compilamos y ejecutamos... es simple el cliente se compila como un proyecto java normal, teniendo presente de tener una copia de la interfaz RMI que creamos en el inicio.... la compilacion del servidor si tiene unos pasos adicionales
Citar
Archivo Policy
Código: XML
  1.  
  2. grant {
  3. // Allow everything for now
  4. permission java.security.AllPermission;
  5. };
  6.  
  7.  
es necesario Generar el archivo policy que es donde se especifica las politicas de seguridad
Citar
Compilacion Servidor
Código: Perl
  1.  
  2.      Primero : Compilamos todos los fuentes, como normalmente los hagas... javac o netbeans solito o como sea....
  3.      Segundo : es necesario compilar la implementacion de la interfaz rmi, para ello usamos el comando
  4.                rmi fuente_implementacion
  5.      Tercero : Inicializamos en rmiRegytry que es algo asi como el encargado de las politicas de seguridad de RMI o algo asi....
  6.                start rmiregistry 1099
  7.      Cuarto, ahora ejecutamos el servidor...
  8.                java -Djava.security.policy=policy Servidor
  9.  
  10.  
en policy=policy  es donde se especifica que archivo policy debe tomar al ejecutar el servidor RMI.
el 1029 que se especifica en el rmiregistry, es el puerto, segun entiendo este 1099 es el puerto por defecto del RMI.

 :clown:  espero haber sido lo suficientemente claro... el manejo de RMI es realmente algo muy sencillo... una vez se logra generar el primero... y comprenderlo todo sale por adicion, y espero te des cuenta por q no se puede o bueno no di con el chiste de hacer esto en netbeans....

 :lol:  bye.....

pdt (si necesitas el codigo completo de un ejemplo lo publicare esa semana en mi nuevo blog  :alien: )
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964