Documente Academic
Documente Profesional
Documente Cultură
ORIENTADA
A
OBJETOS
II
CD.
11.55.305
https://sites.google.com/a/ufps.edu.co/borisperezg
Denicin
Servidor
RMI
Cliente
RMI
Ejemplos
UNIDAD 7: RMI
INTRODUCCIN
Obje;vo:
hacer
que
el
soAware
distribuido
se
programe
igual
que
una
aplicacin
no
distribuida.
Mediante
el
modelo
RPC
la
comunicacin
se
realiza
conceptualmente
igual
que
la
invocacin
de
un
procedimiento
local.
UNIDAD 7: RMI
INTRODUCCIN
Pasos:
A
llama
al
procedimiento
remoto
de
B
La
llamada
dispara
una
accin
de
un
procedimiento
de
B
Al
nalizar
el
procedimiento,
B
devuelve
el
valor
a
A
UNIDAD 7: RMI
INTRODUCCIN
Primera
aproximacin
al
uso
de
un
modelo
orientado
a
objetos
sobre
aplicaciones
distribuidas
Objetos
distribuidos
dentro
de
una
red.
Los
objetos
proporcionan
mtodos,
los
cuales
dan
acceso
a
los
servicios
Ejemplo:
Remote
method
invoca;on
(RMI)
de
Java
UNIDAD 7: RMI
INTRODUCCIN
El
mecanismo
RMI
(Remote
Method
Invoca;on)
permite
que
una
aplicacin
se
comunique
con
objetos
que
residen
en
programas
que
se
ejecutan
en
mquinas
remotas.
En
esencia,
en
lugar
de
crear
un
objeto,
el
programador
enlaza
el
objeto
remoto
con
un
objeto
local,
conocido
como
stub.
Los
mensajes
dirigidos
al
objeto
remoto
se
envan
al
stub
local,
como
si
fuera
el
objeto
real.
El
stub
acepta
los
mensajes
que
se
le
enven,
y
a
su
vez,
los
enva
al
objeto
remoto,
el
cual
invoca
sus
mtodos
apropiados.
El
resultado
de
la
invocacin
de
los
mtodos
en
el
objeto
remoto
se
enva
de
regreso
al
stub
local,
que
los
remite
al
emisor
original
de
la
llamada.
Aparte
de
enlazar
el
stub
con
el
objeto
remoto,
el
cdigo
escrito
por
el
programador
para
comunicar
con
el
objeto
remoto
es
igual
al
cdigo
que
se
u;lizara
si
el
objeto
se
encontrara
en
una
aplicacin
local.
UNIDAD 7: RMI
INTRODUCCIN
A
con;nuacin
se
muestra
una
aplicacin
cliente
ejecutndose
en
una
mquina
A,
que
enva
un
mensaje
a
un
objeto
remoto
en
una
aplicacin
servidor
que
se
ejecuta
en
una
mquina
B.
Cuando
la
aplicacin
cliente
enva
un
mensaje
al
stub
local
del
objeto
remoto,
la
pe;cin
se
transmite
a
la
mquina
que
con;ene
al
objeto
real,
donde
el
mtodo
es
invocado
y
cualquier
resultado
es
retornado
al
stub
local,
de
modo
que
la
aplicacin
cliente
puede
obtener
la
respuesta
apropiada.
UNIDAD 7: RMI
INTRODUCCIN
UNIDAD 7: RMI
INTRODUCCIN
El
soporte
para
RMI
en
Java
est
basado
en
las
interfaces
y
clases
denidas
en
los
paquetes
java.rmi
y
java.rmi.server.
RMI
ofrece:
Mecanismos
para
crear
servidores
y
objetos
cuyos
mtodos
se
puedan
invocar
remotamente.
Mecanismos
que
permiten
a
los
clientes
localizar
los
objetos
remotos.
Servicio
de
directorios:
rmiregistry,
servicio
de
directorios
de
Java
Se
ejecuta
en
la
mquina
servidor
objeto
UNIDAD 7: RMI
INTRODUCCIN
Comparacin
RMI
y
sockets
Ventajas:
Los
programas
RMI
son
ms
sencillos
de
disear
Servidor
RMI
concurrente
Inconvenientes:
Sockets
;enen
menos
sobrecarga
RMI
slo
para
plataformas
Java
UNIDAD 7: RMI
INTRODUCCIN
La
clase
java.rmi.Naming
La
clase
Naming
con;ene
los
siguientes
mtodos
est;cos
que
permiten
el
acceso
a
objetos
remotos
u;lizando
un
URL
para
especicar
el
nombre
y
lugar
del
objeto
remoto.
UNIDAD 7: RMI
INTRODUCCIN
La
clase
java.rmi.Naming
El
URL
se
presenta
en
la
forma
rmi://host:port/objectName,
donde:
UNIDAD 7: RMI
ARQUITECTURA RMI
UNIDAD 7: RMI
ARQUITECTURA
RMI
Nivel
de
resguardo
o
stub
Se
encarga
del
aplanamiento
de
los
parmetros.
Stub:
resguardo
local.
Cuando
un
cliente
realiza
una
invocacin
remota,
en
realidad
hace
una
invocacin
de
un
mtodo
del
resguardo
local.
Nivel
de
gesSn
de
referencias
remotas
UNIDAD 7: RMI
SERVIDOR RMI
UNIDAD 7: RMI
SERVIDOR
RMI
Interface
The
Remote
interface
serves
to
iden;fy
interfaces
whose
methods
may
be
invoked
from
a
non-local
virtual
machine.
Any
object
that
is
a
remote
object
must
directly
or
indirectly
implement
this
interface.
Only
those
methods
specied
in
a
"remote
interface",
an
interface
that
extends
java.rmi.Remote
are
available
remotely.
ImplementaSon
classes
can
implement
any
number
of
remote
interfaces
and
can
extend
other
remote
implementa;on
classes.
RMI
provides
some
convenience
classes
that
remote
object
implementa;ons
can
extend
which
facilitate
remote
object
crea;on.
These
classes
are
java.rmi.server.UnicastRemoteObject
and
java.rmi.ac;va;on.Ac;vatable.
UNIDAD 7: RMI
SERVIDOR
RMI
Server
UNIDAD 7: RMI
SERVIDOR
RMI
Server
Registry
is
a
remote
interface
to
a
simple
remote
object
registry
that
provides
methods
for
storing
and
retrieving
remote
object
references
bound
with
arbitrary
string
names.
Registry
enables
RMI
client
bootstrapping:
it
provides
a
simple
means
for
a
client
to
obtain
an
ini;al
reference
to
a
remote
object.
The
LocateRegistry
class
provides
a
programma;c
API
for
construc;ng
a
bootstrap
reference
to
a
Registry
at
a
remote
address
and
for
crea;ng
and
expor;ng
a
Registry
in
the
current
VM
on
a
par;cular
local
address.
UNIDAD 7: RMI
SERVIDOR
RMI
Server
A
Registry
implementa;on
may
choose
to
restrict
access
to
some
or
all
of
its
methods
(for
example,
methods
that
mutate
the
registry's
bindings
may
be
restricted
to
calls
origina;ng
from
the
local
host).
If
a
Registry
method
chooses
to
deny
access
for
a
given
invoca;on,
its
UNIDAD 7: RMI
SERVIDOR
RMI
Client
Boris Prez
borisperezg@ufps.edu.co