12121212121212121 1212 1221212 12

download 12121212121212121 1212  1221212 12

of 39

Transcript of 12121212121212121 1212 1221212 12

  • 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)