PDF de programación - Java RMI - las RPC de Java. Parte II

Imágen de pdf Java RMI - las RPC de Java. Parte II

Java RMI - las RPC de Java. Parte IIgráfica de visualizaciones

Publicado el 31 de Julio del 2017
611 visualizaciones desde el 31 de Julio del 2017
118,6 KB
15 paginas
Creado hace 18a (27/03/2006)
Java RMI

las RPC de Java. Parte II

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y Programación

Universidad Complutense de Madrid

27 de marzo de 2006

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases I

Es conveniente distinguir:

servidor . Necesarias para el registro (rmiregistry) y el

servidor.

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases II

Es conveniente distinguir:

servidor . Necesarias para el registro (rmiregistry) y el

servidor.servidor.jar

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases III

Es conveniente distinguir:

servidor . Necesarias para el registro (rmiregistry) y el

servidor.servidor.jar

cliente Necesita, al menos el interfaz del

servidor.

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases IV

Es conveniente distinguir:

servidor . Necesarias para el registro (rmiregistry) y el

servidor.servidor.jar

cliente Necesita, al menos el interfaz del

servidor.cliente.jar

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases V

Es conveniente distinguir:

servidor . Necesarias para el registro (rmiregistry) y el

servidor.servidor.jar

cliente Necesita, al menos el interfaz del

servidor.cliente.jar

stub Necesarios para el resgistro, el servidor y los clientes.

cliente.jar

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases VI

Es conveniente distinguir:

servidor . Necesarias para el registro (rmiregistry) y el

servidor.servidor.jar

cliente Necesita, al menos el interfaz del

servidor.cliente.jar

stub Necesarios para el resgistro, el servidor y los clientes.

cliente.jar

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases VII

< target name = " d i s t r i b u y e " d e p e n d s = " compile , c o m p i l e _ s t u b " >

< jar j a r f i l e = " c a n a l e s _ s t u b . jar "

b a s e d i r = " ${ build } " c o m p r e s s = " yes "
i n c l u d e s = " e j e m p l o s R M I /${ nombre }/ G e s t o r A n t a r e s _ S t u b . class ,

e j e m p l o s R M I /${ nombre }/ C a n a l S i n c _ S t u b . class " / >

< jar j a r f i l e = " s e r v i d o r . jar " c o m p r e s s = " yes "

b a s e d i r = " ${ build } "
i n c l u d e s = " e j e m p l o s R M I /${ nombre }/ Canal . class ,

e j e m p l o s R M I /${ nombre }/ G e s t o r A n t a r e s . class ,
e j e m p l o s R M I /${ nombre }/ G e s t o r A n t a r e s _ S t u b . class ,
e j e m p l o s R M I /${ nombre }/ Gestor . class "

/ >
< jar j a r f i l e = " c l i e n t e . jar " c o m p r e s s = " yes "

b a s e d i r = " ${ build } "
i n c l u d e s = " e j e m p l o s R M I /${ nombre }/ ,

e j e m p l o s R M I /${ nombre }/ Canal . class ,
e j e m p l o s R M I /${ nombre }/ C a n a l S i n c . class ,
e j e m p l o s R M I /${ nombre }/ Envia . class ,
e j e m p l o s R M I /${ nombre }/ Gestor . class ,
e j e m p l o s R M I /${ nombre }/ Prueba . class ,
e j e m p l o s R M I /${ nombre }/ Recibe . class "

/ >
</ target >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Distribución de clases VIII

# !/ b i n / sh
. ./ comun . sh

export C L A S S P A T H = s e r v i d o r . jar
CLASE = G e s t o r A n t a r e s
c o n t r o l A c c e s o = " - Djava . s e c u r i t y . policy =./ s e r v i d o r . policy "
url = " rmi :// " 1 2 7 . 0 . 0 . 1 : $ p u e r t o / gestor
$JAVA $ c o n t r o l A c c e s o e j e m p l o s R M I . c a n a l e s . G e s t o r A n t a r e s $url &
echo $ ! >> $ P I D F I L E

1
2
3
4
5
6
7
8
9

# !/ b i n / sh
. ./ comun . sh

export C L A S S P A T H = c l i e n t e . jar
r m i S e r v e r = " - Djava . rmi . server . c o d e b a s e = http :// a n t a r e s . sip . ucm . es /~ luis / clases / c a n a l e s _ s t u
c o n t r o l A c c e s o = " - Djava . s e c u r i t y . policy =./ c l i e n t e . policy "
url = " rmi : / / 1 2 7 . 0 . 0 . 1 : $ p u e r t o / gestor "
$JAVA $ c o n t r o l A c c e s o $ r m i S e r v e r e j e m p l o s R M I . c a n a l e s . Prueba $url e : ae : a e : be : b &
echo $ ! >> $ P I D F I L E
$JAVA $ c o n t r o l A c c e s o $ r m i S e r v e r e j e m p l o s R M I . c a n a l e s . Prueba $url r : ar : a r : br : b &
echo $ ! >> $ P I D F I L E

1
2
3
4
5
6
7
8
9
10
11

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Parametros I

Objetos normales: Son parámetros por valor.

¡NO siguen la regla general de Java!.
Se deben poder serializar: deben implementar
java.io.Serializable.

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Parametros II

Objetos remotos: Se comportan como los objetos normales: por

referencia.

¡No viajan! se quedan en el cliente.
El cliente necesita el Stub en su CLASSPATH.

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Parametros III

p a c k a g e s o p o r t e ;
import java . io . S e r i a l i z a b l e ;
public class Entero i m p l e m e n t s O b j e t o C o m p a r a b l e , S e r i a l i z a b l e {

public Entero ( int x )

{

c o n t e n i d o = x ;

}
public void inc () {

c o n t e n i d o ++;

}

}

1
2
3
4
5
6
7
8
9
10

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Parametros IV

p a c k a g e e j e m p l o s R M I . tienda ;
import java . rmi . Remote ;
import java . rmi . R e m o t e E x c e p t i o n ;
public i n t e r f a c e O b j e t o R e m o t o e x t e n d s Remote {

public void m o d i f i c a ()
public double valor () throws R e m o t e E x c e p t i o n ;

throws R e m o t e E x c e p t i o n ;

}

p a c k a g e e j e m p l o s R M I . tienda ;
import java . rmi . R e m o t e E x c e p t i o n ;
import java . rmi . server . U n i c a s t R e m o t e O b j e c t ;
public class E n t e r o R e m o t o e x t e n d s U n i c a s t R e m o t e O b j e c t i m p l e m e n t s O b j e t o R e m o t o {

p r i v a t e int c o n t e n i d o ;
public E n t e r o R e m o t o ( int n ) throws R e m o t e E x c e p t i o n {

c o n t e n i d o = n ;

}
public void m o d i f i c a () throws R e m o t e E x c e p t i o n {

c o n t e n i d o ++;

}
public double valor () {

return c o n t e n i d o ;

}

}

1
2
3
4
5
6
7

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Parametros V

p a c k a g e e j e m p l o s R M I . tienda ;

import java . rmi . Remote ;
import java . rmi . R e m o t e E x c e p t i o n ;
import s o p o r t e . Entero ;

public i n t e r f a c e S e r v i d o r T i e n d a e x t e n d s Remote {

public a b s t r a c t double precio ( Entero o )
public a b s t r a c t double precio ( O b j e t o R e m o t o o )

throws R e m o t e E x c e p t i o n ;

throws R e m o t e E x c e p t i o n ;

}

1
2
3
4
5
6
7
8
9
10

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI

Parametros VI

public class T i e n d a I n c e x t e n d s U n i c a s t R e m o t e O b j e c t

i m p l e m e n t s S e r v i d o r T i e n d a {
p r i v a t e String nombre ;
public T i e n d a I n c ( String _ n o m b r e ) throws R e m o t e E x c e p t i o n {

nombre = _ n o m b r e ;

}
public double precio ( Entero n )

throws R e m o t e E x c e p t i o n {

System . out . p r i n t l n ( " Valor en servidor -1: " + n . valor ());
n . inc ();
System . out . p r i n t l n ( " Valor en servidor -2: " + n . valor ());
return n . valor ();

}
public double precio ( O b j e t o R e m o t o n )

throws R e m o t e E x c e p t i o n {

System . out . p r i n t l n ( " Valor en servidor -1: " + n . valor ());
n . m o d i f i c a ();
System . out . p r i n t l n ( " Valor en servidor -2: " + n . valor ());
return n . valor ()*2;

}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

Luis Fernando Llana Díaz

Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Java RMI
  • Links de descarga
http://lwp-l.com/pdf5899

Comentarios de: Java RMI - las RPC de Java. Parte II (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad