PDF de programación - Desarrollo de Aplicaciones con Java RMI

<<>>
Imágen de pdf Desarrollo de Aplicaciones con Java RMI

Desarrollo de Aplicaciones con Java RMIgráfica de visualizaciones

Publicado el 21 de Enero del 2019
844 visualizaciones desde el 21 de Enero del 2019
492,1 KB
25 paginas
’HVDUUROORGH$SOLFDFLRQHV

FRQ-DYD50,

/DERUDWRULRGH,QJHQLHUtDGHO6RIWZDUH

&RQWHQLGR

• Antecedentes




Introducción a los Sistemas Distribuidos
– Sockets
– RPC
Java RMI
– Características
– Modelo de Objetos Distribuidos
– Visión del Sistema RMI
– Arquitectura RMI
– Pasos para desarrollar aplicaciones en RMI
– Ejemplos:

• P1) Cronometrar transferencia de datos
• P2) Cliente Descarga Códigos de un servidor
• P3) P2 + Polimorfismo y Sobrecarga









1

8QSRFRGHKLVWRULD

a

a



James Gosling, Patrick Naughton y Mike Sheridan
... (First Person Inc.)

http://java.sun.com/people/jag/index.html

................ 2$. ................ -$9$

• Sun Microsystems

........ Sistemas Distribuidos: CORBA

“A Note on Distributed Computing”
http://www.sunlabs.com/technical-reports/1994/abstract-29.html





¢ 4Xp EXVFDED681"

• Las diferencias entre la computación local y la

computación distribuida.

• En el caso de CORBA, “no existe” diferencia.

• SUN concluyó que los sistemas distribuidos deben tratar

de forma diferente a los objetos locales y a los remotos:

• Latencias
• Fallos en las comunicaciones
• Concurrencia
• Acceso a memoria





2

6LVWHPDV’LVWULEXLGRV

• Los sistemas distribuidos requieren la ejecución de

tareas en diferentes máquinas con capacidad de
comunicarse entre ellas.

• Desarrollo de Sistemas Distribuidos:

• Sockets

• Remote Procedure Calls (RPC)

• Remote Method Invocation (RMI)

6RFNHWV

• Permite las comunicaciones entre dos máquinas con IP.

• Existen varias alternativas:

– UDP
– TCP

– Java ..... Buffered, Typed, etc.

• Es necesario un protocolo sincronizado entre cliente y servidor

DEPENDIENTE de cada aplicación.

• Requiere gran cantidad de operaciones a la hora de un simple

intercambio de datos.










3

6RFNHWV


%!&
%
$
   (
   (

Envía datos al cliente

sesión TCP

Espera
nuevo
cliente

Envía datos al servidor

Cliente


 &%"% 



  !"
$

#

Servidor

nuevo thread

  !"


$
#





5HPRWH3URFHGXUH &DOO 53&

• Las RPC permiten la abstracción del sistemas de comunicaciones

a una simple llamada a un procedimiento.

• En lugar de trabajar con VRFNHWV, el programador cree que está
haciendo llamadas a métodos locales. Los parámetros de las
llamadas son empaquetados y enviados al destino.

• RPC utiliza la codificación XDR el envío y recepción de los datos.

• Principal inconveniente: NO ORIENTADO A OBJETOS

)



4













#


'












5HPRWH3URFHGXUH &DOO 53&

&OLHQWH

*&+

-.0/

23

@AB

C DE F

GH

LNM"O

P"QSRUT

V"W

R"W"XY

M&Z&VW

-07:7-<;08 =>2.,

;0?0;,

8 .-

6HUYLGRU

EHIJ

AK GH

4-5

6,

78 5

23





¢ 4Xp HV-DYD50,"

• Es una especificación desarrollada por JavaSoft desde la

implementación del JDK 1.1

– Permite la ejecución de métodos localizados en objetos remotos que a su

vez se ejecutan en una máquina virtual Java diferente.

– La invocación de métodos no es más que paso de mensajes.

Cliente

Servidor

Máquina Virtual Java

r e d

Máquina Virtual Java

[



5

,
-
1
/
1
/
9
1
B
B
F
O
O
T
&DUDFWHUtVWLFDVGH50,

• Orientado a Objetos: Java.

• Permite la invocación de métodos de objetos remotos Java entre

diferentes máquinas virtuales.



Incorpora el modelo de objetos distribuido en el modelo Java
manteniendo su semántica.

• Uso de las APIs de Java, con todas sus posibilidades.

• Permite un desarrollo sencillo de las aplicaciones distribuidas.
• Permite que un DSSOHW pueda llamar a un programa Java en el

servidor.

• Mantiene el esquema de seguridad de Java.

0RGHORGH2EMHWRV’LVWULEXLGRV50,

• Aplicaciones de Objetos Distribuidos:

– Servidor:

– Crear objetos
– Permitir referencias a ellos
– Esperar por peticiones de los clientes

– Cliente:

– Obtener referencia a los objetos remotos
– Invocar a los métodos de los objetos remotos

• RMI ofrece el mecanismo de comunicaciones para el paso de

información entre el cliente y el servidor



0

0

0

6

0RGHORGH2EMHWRV’LVWULEXLGRV50,

• Las aplicaciones de Objetos Distribuidos requieren:

– Localizar objetos remotos:

– El servidor debe registrar el objeto remoto para que los

clientes obtengan sus referencias.

– Comunicarse con objetos remotos:

– El sistema RMI lleva a cabo todas las comunicaciones

existentes en las llamadas y retornos de resultados entre
cliente y servidor.

– Cargar los bytecodes de las clases de los objetos que son

pasados como argumentos o devueltos como resultados.

– Liberar objetos no referenciados a través del JDUEDJH

FROOHFWRU distribuido.

– Excepciones nuevas: “Remote Exception”

9LVLyQGHOVLVWHPD50,

2 5

0 ,

registry

0 ,

5

1

Cliente

3

5

0 ,

5/\

8

Servidor web

Servidor

85/]

Servidor web



0

 

0

7

$UTXLWHFWXUDGHO6LVWHPD50,

Cliente

resultados=obj.metodo(parametros)

UHVXOWDGRV

SDUiPHWURV

Servidor

Stub

`

%
ab

% $"(
c"dfeg

Esqueleto

`

%
ab

% $"(
c"dfeg

^


0

Arquitectura:........&DSDVWXE \HVTXHOHWR

Cliente

Servidor

Stub

Esqueleto

• Características:

de una serialización.

– Los objetos se transmiten entre emisor y receptor a través
– El VWXE implementa la inicialización de la llamada a la capa
de referencia remota, la serialización de los argumentos del
método remoto llamado y la deserialización de los
resultados.

– El esqueleto cumple la función complementaria para el

programa servidor responsable del objeto.

• El compilador UPLF genera tanto el VWXE como el esqueleto a
partir de la definición del objeto en el programa fuente Java.

 

0

8

_




_

_




_

c




h
e
c




h
e
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
{
|
}
~

€

}
‚
ƒ
}
€
ƒ
„
…

|
†
‚
ƒ
Arquitectura:........&DSDGH5HIHUHQFLD5HPRWD

Cliente

Servidor

Stub

Esqueleto

• Responsable de los detalles de transmisión de la llamada a los

métodos remotos.



Implementa varios protocolos de comunicaciones. Estos
permiten:

– Invocación punto a punto.
– Invocación a un grupo de objetos.
– Soporte de persistencia y activación de objetos remotos en

el servidor.

– Estrategias de Recuperación de conexión.

 

0

Arquitectura:........&DSDGH7UDQVSRUWH

Cliente

Servidor

Stub

Esqueleto

• La capa de transporte se encarga de crear y mantener las
conexiones existentes entre las capas de referencia de
diferentes máquinas virtuales Java.

• Además mantiene las tablas de correspondencias entre
máquinas virtuales y objetos disponibles en una dirección
URL dada.

)

0

9

i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
{
|
}
~

€

}
‚
ƒ
}
€
ƒ
„
…

|
†
‚
ƒ
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
{
|
}
~

€

}
‚
ƒ
}
€
ƒ
„
…

|
†
‚
ƒ
3DVRVSDUDHVFULELUDSOLFDFLRQHVFRQ-DYD50,

0

Œ^Ž
^–

0—

’N“
<”
‘

•^˜U—
0™š–

•‘

0™U0^–
™N”
0—
“
<”
•N
^–
•^˜

’

0—

Ÿ


“0š—

0^–

±²U³<²
§
¨ª©

0^–
•^¢^¢£

‘
”

¬0­
•^¢^¢£

‘
”

¢¯¬0”
^–
•^¢^¢£
‘
”

0—
‘
”

Ÿ

“0š—
•^¢^¢£

‡ˆ‰

Š0ˆ

,QVWUXFFLRQHVSDUD&203,/

¶ $5ODVDSOLFDFLRQHV

• Compilar Interfaz, Implementación, Servidor y Cliente:

MDYDF PL,QWHUID]MDYD PL,PSOMDYD PL&OLHQWHMDYD PL6HUYMDYD

• Crear el VWXE y el esqueleto:

UPLF PL,PSO

Cliente

Servidor

Stub

Esqueleto

‡µ‰

Š0ˆ

10

‹

•

Ž
•
›
œ
Ž
ž
 
¡
¤
”


 
¡
¥
¤
”


¦
ž
«
ž
–
 
¡
®
š
 
¡
°
«
´
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
i
j
k
j
l
j
m
n
o
p
i
j
q
r
s
p
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
t
l
p
m
u
v
r
l
s
j
t
w
x
y
z
x
{
|
}
~

€

}
‚
ƒ
}
€
ƒ
„
…

|
†
‚
ƒ
,QVWUXFFLRQHVSDUD(-(&87$5ODVDSOLFDFLRQHV

• Ejecutar el servicio de registro de objetos:

VWDUW UPLUHJLVWU\ (windows),

UPLUHJLVWU\ (unix)

• Ejecutar servidor:

MDYD’MDYDVHFXULW\SROLF\ PLMDYDSROLF\ PL6HUY

• Ejecutar cliente:

MDYDPL&OLHQWH

miCliente

2

º0»



º0»

rmiregistry

º0»

1

miServidor

Servidor web

Servidor web

·0¸‰

Š0ˆ

6HJXULGDGHQ50,

• Directiva a la máquina virtual ‡’MDYDVHFXULW\SROLF\· indicando el

fichero con la política de seguridad: ‡PLMDYDSROLF\·

• Ejemplos de fichero de seguridad:

grant {

// permitir todo
permission java.security.AllPermission;

};

grant {

permission java.net.SocketPermission "*:1024-65535","connect, accept";
permission java.net.SocketPermission "*:80", "connect";

}

·‡‰

Š0ˆ

11

¹
¹
¼
¹
½
¾
¿
À
(MHPSORV3UiFWLFRV

30HGLUWLHPSRVHQWUDQVIHUHQFLDGHGDWRV
3&OLHQWHGHVFDUJDFyGLJRVGHXQVHUYLGRU
333ROLPRUILVPR\6REUHFDUJD

·0·‰

Š0ˆ

30HGLUWLHPSRVHQWUDQVIHUHQFLDGHGDWRV

• 2%-(7,92

– Transferencia de datos entre dos ordenadores haciendo uso

de RMI.

• 3$626:

– Crear el servicio para el cliente ---> interfaz
– Implementar los servicios ---------> implements ...
– Crear el servidor
– Crear e
  • Links de descarga
http://lwp-l.com/pdf14934

Comentarios de: Desarrollo de Aplicaciones con Java RMI (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