7/23/2019 12121212121212121 1212 1221212 12
1/39
RMI(Java Remote Method
Invocation)Ketnia Nataly Navarrete Mndez
Stephany Guadalupe Contreras BahenaDaniel Alberto Peralta Guzmn
ernando Cano G!mez
7/23/2019 12121212121212121 1212 1221212 12
2/39
"#$# Cara%ter&sti%as y 'stru%tura de (M) "#*# 'l AP) +ava (M)# "#"# +erar,u&a de ob-etos (M)#
"#.# 'l Sistema de Nombrado (e/istry# "#0# Desarrollo de Apli%a%iones Distribuidas# "#1# Paso de parmetros a travs de la red# "#2# Callba%3s 4(es/uardos5#
Temas
7/23/2019 12121212121212121 1212 1221212 12
3/39
's un me%anismo o6re%ido por +ava parainvo%ar un mtodo de manera remota#
orma parte del entorno estndar dee-e%u%i!n de +ava y propor%iona unme%anismo simple para la %omuni%a%i!n deservidores en apli%a%iones distribuidas
basadas exclusivamente en Java.
Defnicin
7/23/2019 12121212121212121 1212 1221212 12
4/39
Caractersticas y
estructura de RMI
7/23/2019 12121212121212121 1212 1221212 12
5/39
a%ilidad de uso en la pro/rama%i!n porestar espe%&7%amente dise8ado para +A9A#
Propor%iona paso de ob-etos por re6eren%ia#
(e%ole%%i!n de basura distribuida# Paso de tipos arbitrarios#
Caractersticas
7/23/2019 12121212121212121 1212 1221212 12
6/39
$5 'n%apsulado de los parmetros#*5 )nvo%a%i!n del mtodo 4del %liente %on el
servidor5# 'l invo%ador se ,ueda
esperando una respuesta#"5 Al terminar la e-e%u%i!n: el servidorserializa el valor de retorno y lo env&a al%liente#
.5 'l %!di/o %liente re%ibe la respuesta y%ontin;a %omo si la invo%a%i!n hubierasido lo%al#
Invocacin
7/23/2019 12121212121212121 1212 1221212 12
7/39
Puede verse %omo un modelo de %uatro%apas#
rimera Ca!a" es la de apli%a%i!n y
%orresponde %on la implementa%i!n real delas apli%a%iones %liente y servidor# #e$unda Ca!a" es la ,ue intera%t;a
dire%tamente %on la %apa de apli%a%i!n# Se
en%uentran las llamadas a ob-etos remotosy a%%iones -unto %on sus parmetros yretornos de ob-etos#
%r&uitectura
7/23/2019 12121212121212121 1212 1221212 12
8/39
Tercera Ca!a" es la de re6eren%ia remota:y es responsable del mane-o de la partesemnti%a de las invo%a%iones remotas# 'sresponsable de la repli%a%i!n de ob-etos#
Cuarta Ca!a" es la de transporte< es laresponsable de realizar las %one=ionesne%esarias y mane-o del transporte de los
datos de una m,uina a otra#
%r&uitectura II
7/23/2019 12121212121212121 1212 1221212 12
9/39
%r&uitectura de RMI
7/23/2019 12121212121212121 1212 1221212 12
10/39
Dota a %lientes y servidores de una inter6az,ue les permite lo%alizar ob-etos remotospara invo%ar sus mtodos %omo si 6ueranlo%ales#
#'eleton y #tu
7/23/2019 12121212121212121 1212 1221212 12
11/39
l %I *ava RMI
7/23/2019 12121212121212121 1212 1221212 12
12/39
's una inter6az de pro/rama%i!n deapli%a%iones provistas por los %readores dellen/ua-e -ava: y ,ue da a los pro/ramadoreslos medios para desarrollar apli%a%iones
+ava#
>A AP) de +ava provee un %on-unto de %lases
utilitarias para e6e%tuar toda %lase de tareasdentro de un pro/rama#
%I de Java
7/23/2019 12121212121212121 1212 1221212 12
13/39
)mplementa 0 pa,uetes#
Java.rmi? %ontiene Clases: )nter6a%es y
'=%ep%iones vistas por los %lientes#Java.rmi.server? Contiene %lases:)nter6a%es y '=%ep%iones vistas por losservidores#
Java.rmi.re$istry? Contiene Clases:)nter6a%es y '=%ep%iones ;tiles paralo%alizar y re/istrar ob-etos remotos#
Inter+aces y Clases RMI
7/23/2019 12121212121212121 1212 1221212 12
14/39
Java.rmi.d$c? Contiene Clases: )nter6a%esy '=%ep%iones para la re%ole%%i!n debasura#
Java.rmi.activation? Contiene Clases:)nter6a%es y '=%ep%iones para la a%tiva%i!nde ob-etos remotos#
Inter+aces y Clases RMI (,)
7/23/2019 12121212121212121 1212 1221212 12
15/39
%I *ava.rmi
Inter+ace Descri!cin
(emote >a inter6a%e remotasirve para identi7%arinter6a%es %uyosmtodos pueden serinvo%ados desde unam,uina lo%al o virtual#
7/23/2019 12121212121212121 1212 1221212 12
16/39
Clase Descri!cin
Marshalled@b-e%t n Marshall@b-e%t %ontiene unbyte %on una representa%i!nserializada de un ob-eto dado porel %onstru%tor#
Namin/ >a %lase Namin/ propor%ionamtodos para alma%enamiento yobtener re6eren%ias de ob-etosremotos en un ob-eto remotore/istrado#
(M)Se%urityMana/er na sub%lase de Se%urityMana/erusada por apli%a%iones (M) ,ueusa %!di/o des%ar/ado#
%I *ava.rmi (,)
7/23/2019 12121212121212121 1212 1221212 12
17/39
Jerar&ua de o*etos
RMI
7/23/2019 12121212121212121 1212 1221212 12
18/39
+ava#lan/#@b-e%t
+ava#rmi#server#(emote@b-e%t
+ava#rmi#server#(emoteServer
+ava#rmi#sever#n
i%ast(emote@b-e%t
Mi ob-etoremoto
Mi inter6a%e
remota
+ava#rmi#(emote
7/23/2019 12121212121212121 1212 1221212 12
19/39
#istema de
-omrado Re$istry
7/23/2019 12121212121212121 1212 1221212 12
20/39
's un servidor simple ,ue permite ,ue unaapli%a%i!n vea los ob-etos lo %uales estnsiendo importados por un (M)#
na vez ,ue se tiene un ob-eto ,ue estsiendo e=portado por un servidor ,ue utilizamtodos de (M): la %omuni%a%i!n esenton%es %omo una simple llamada a
mtodos de un ob-eto ,ue puede e=istir enuna m,uina di6erente#
Defnicin
7/23/2019 12121212121212121 1212 1221212 12
21/39
'ste setup re,uiere al/unos parmetros delo%aliza%i!n de los ob-etos remotos#
's 6%il llamar a ob-etos remotos si se tienesu ubi%a%i!n#
na vez ,ue el ob-eto ha sido lo%alizado:usarlo de manera remota es relativamente6%il#
Para poder ini%ializar ob-etos remotos: hay,ue utilizar los servi%ios de re/istry#
Caractersticas
7/23/2019 12121212121212121 1212 1221212 12
22/39
Desarrollo de%!licaciones
Distriuidas
7/23/2019 12121212121212121 1212 1221212 12
23/39
Clientes" Condu%en el Eu-o de la apli%a%i!n#>o%alizan e invo%an mtodos o6ertados %omoremotos por los servidores#
#ervidores" Con-unto de ob-etos de o6re%en
inter6a%es remotas p;bli%as %uyos mtodospueden ser invo%ados por %lientes de%ual,uier pro%esador de la plata6orma#
Re$istro" Servi%io estti%o ,ue se estable%e
en %ada nudo: en el ,ue se re/istran losservidores %on un nombre: y donde los%lientes los lo%alizan#
Com!onentes de a!licacionesdistriuidas
7/23/2019 12121212121212121 1212 1221212 12
24/39
Com!onentes de a!licacionesdistriuidas
7/23/2019 12121212121212121 1212 1221212 12
25/39
@b-eto remoto? @b-eto %uyos mtodos pueden invo%arse desde
otras m,uinas virtuales# Des%rito por una o ms inter6a%es (emotas en las
,ue se de%laran los mtodos ,ue pueden serinvo%ados por ob-etos desde otras m,uinasvirtuales#
)nvo%a%i!n a mtodos remotos?
A%%i!n de invo%ar un mtodo de una inter6azremota en un ob-eto remoto# iene la misma sinta=is de un mtodo lo%al#
Conce!tos
7/23/2019 12121212121212121 1212 1221212 12
26/39
aso de armetros a
trav/s de la Red
7/23/2019 12121212121212121 1212 1221212 12
27/39
Fay " me%anismos bsi%os0) Ti!os !rimitivos" se pasan por valor
4%opia5# odos son serializables#,)
1*etos Remotos? Se pasan porre6eren%ia 4talones: usados para invo%armtodos remotos5#
2) 1*etos locales? Se pasan por valor 4s!lo
si son serializables5: se %rea un nuevoob-eto en la m,uina virtual ,ue re%ibe la%opia#
aso de !armetros a m/todosremotos
7/23/2019 12121212121212121 1212 1221212 12
28/39
Callac's
7/23/2019 12121212121212121 1212 1221212 12
29/39
'l %liente ins%ribe un ob-eto remoto parare%ibir una invo%a%i!n remota# Al o%urrir %ierto evento: el servidor realiza una
devolu%i!n a %ada %liente interesado#
Callac's en RMI
7/23/2019 12121212121212121 1212 1221212 12
30/39
Interacciones cliente3servidor
7/23/2019 12121212121212121 1212 1221212 12
31/39
Des!lie$ue
7/23/2019 12121212121212121 1212 1221212 12
32/39
'l servidor o6re%e un mtodo remoto para ,ue el%liente re/istre sus %allba%3s
Fay ,ue dise8ar una inter6az remota para el%allba%3
>a inter6az debe in%luir un mtodo ,ue serinvo%ado en el %allba3% desde el servidor ' %liente deber ser una sub%lase de (emote@b-e%t
e implementar la inter6az de %allba%3 'l %liente se re/istrar 6rente la %lase remota para
ser rellamado# 'l servidor invo%a el mtodo remoto del %liente en
%aso de apare%er el evento indi%ado#
Inter+a4 de callac'
7/23/2019 12121212121212121 1212 1221212 12
33/39
Dia$rama de eventos !ara laa!licacin 5hello6
7/23/2019 12121212121212121 1212 1221212 12
34/39
7Cmo se e*ecuta8
7/23/2019 12121212121212121 1212 1221212 12
35/39
$5 Se e-e%uta el servidor de re/istro (M):rmire/istry: en la m,uina ,ue %ontendral ob-eto servidor#
*5 Se %rea un ob-eto en el servidor: see=porta: y se re/istra en el servi%iormire/istry %on un nombre# 4ser %reainstan%ia s3eleton5#
"5 Se %rea el ob-eto %liente: ,ue llamar a unmtodo de la inter6az del ob-eto remoto#
asos
7/23/2019 12121212121212121 1212 1221212 12
36/39
.5 'l servidor de re/istro env&a al pro%eso %lienteuna re6eren%ia remota al ob-eto 4stub5#'ste stub%ontiene la dire%%i!n )P del host donde reside elob-eto remoto: el numero de puerto de es%u%ha y
el )D del ob-eto#05 'l stub serializa los ar/umentos y env&a a la %apade re6eren%ias remotas una peti%i!n de %one=i!n#
15 >a %apa de re6eren%ias remotas indi%a a la %apade transporte ,ue ne%esita abrir una %one=i!npara enviarle el Eu-o de datos resultante del pasoanterior#
asos (II)
7/23/2019 12121212121212121 1212 1221212 12
37/39
25 >a %apa de transporte %rea un so%3et de%liente para enviar di%ho Eu-o#
5 'n el host remoto los datos lle/an a la%apa de transporte y el so%3et servidoraso%iado los lee#
H5 >a %apa de re6eren%ias remotas pasa losdatos al s3eleton#
$I5 'l s3eleton e=trae del Eu-o de datosserializado los ob-etos in%luidos y pasa lallamada al ob-eto remoto#
asos (III)
7/23/2019 12121212121212121 1212 1221212 12
38/39
$$5 'l ob-eto remoto e-e%uta el mtodo invo%ado%on los ar/umentos propor%ionados y: si%orresponde devuelve un valor al ob-etos3eleton#
$*5 'l s3eleton env&a una peti%i!n de %one=i!n ala %apa de re6eren%ias remotas y dele/a enella el env&o de la respuesta#
$"5 >a %apa de re6eren%ias remotas serializa la
respuesta y env&a el Eu-o de bytes resultantea la %apa de transporte indi%ndole ,uene%esita %one=i!n#
asos (I9)
7/23/2019 12121212121212121 1212 1221212 12
39/39
$.5 >a %apa de transporte remota abre unso%3et de %liente y env&a la respuesta alhost lo%al#
$05 Jsta lle/a a la %apa de transporte del hostlo%al y all& un so%3et servidor lo transmitea la %apa de re6eren%ias remotas#
$15 >a %apa de re6eren%ias remotas e=tra la
in6orma%i!n serializada y la env&a al stub#$25 'l stub env&a el valor devuelto al ob-etolo%al#
asos (9)
Top Related