8
UNI VERSIDAD REGI ONAL AUTÓNOMA DE LOS ANDES ‘‘ UNI ANDES’’ TE MA DEL DOCUMENTO: ¿QUÉ ES EL RMI ? ESTUDI ANTE: J ONATHAN I SRAEL SALGUERO FLORES. DOCENTE: BERNABÉ ORTEGA 2015 Puyo-Pastaza

Rmi

Embed Size (px)

Citation preview

Page 1: Rmi

UNI VERSI DAD REGI ONAL AUTÓNOMA DE LOS

ANDES ‘ ‘ UNI ANDES’ ’

TEMA DEL DOCUMENTO:

¿ QUÉ ES EL RMI ?

ESTUDI ANTE: JONATHAN I SRAEL SALGUERO FLORES.

DOCENTE: BERNABÉ ORTEGA

2015

Puyo-Pastaza

Page 2: Rmi

¿ Qué es RMI ?

RMI es un paquet e de J AVA que per mi te manej ar obj et os (y sus respecti vos mét odos) de ma nera re mot a, para utilizar l os recursos de un servi dor de manera transparent e para el usuari o l ocal.

La manera en que RMI (y RPC en general) l ogra hacer est o, es por medi o de l o que se conoce co mo STUBs. En el caso del STUB servi dor, se conoce co mo SKELETON. Est os St ubs y Skel et ons per mi ten que al mo ment o de ser i nvocada l a f unci ón re mot a esta pueda ser "si mul ada l ocal ment e"

Para l a co muni caci ón entre el servi dor y el cli ente, se trabaj a con i nterf aces, que deben ser i mpl e ment adas por el servi dor y/o cli ente, para que l os STUBs puedan reali zar l a transparenci a para a mbos. Ade más est o evita que deba exi stir una defi ni ci ón l ocal real de la cl ase re mot a, val e decir, en el cli ente sol o debe est ar defi ni da l a i nterf ace, no l a cl ase re mot a. Ot ro punt o i mportant e en RMI, es el có mo se produce l a conecti vi dad entre el cli ent e y servi dor. Para est o se ocupa una herra mi ent a de J AVA, lla mada RMI Regi stry. El RMI Regi stry puede estar l ocali zado en un l ugar di sti nt o al servi dor, y se encarga de regi strar un det er mi nado obj et o y asi gnarl e un servi dor que se encargará de procesar di cho obj et o. El f unci ona mi ent o general es: 1. Se ej ecuta el RMI Regi stry, en al gún l ugar de l a red. 2. El servi dor que desea ma nej ar un obj et o, se registra en di cho servi dor, 3. El RMI Regi stry regi stra el par: OBJ ETO/SERVI DOR 4. El cli ente que necesita utilizar un det er mi nado obj et o, hace una consulta al RMI Regi stry, qui en devuel ve el STUB listo para l a comuni caci ón Est o es, a grandes rasgos, l o más i ndi spensabl e que se debe saber a l a hora de utilizar RMI. Se puede prof undi zar mucho más sobre el t e ma, en l a pági na ofi ci al de J AVA, en donde se pueden encontrar mas ej e mpl os sobre el t e ma, en la API se encuentran t odos l os mét odos y cl ases del paquet e RMI, y en I nternet. RMI Vent aj as Es REAL MENTE f ácil de usar si ya se conoce J AVA.

Page 3: Rmi

Portabl e a través de pl atafor mas con soporte J AVA. Baj o cost o al convertir siste ma exi stente. Soporta paso de obj et os por ref erenci a y/o val or. Desvent aj as A veces, no es tan i nt uiti vo. No soportado por otros l enguaj es Di s mi nuye el rendi mi ent o con el creci mi ent o del siste ma

La utili dad del RMI es poder ej ecut ar f unci ones en otro ordenador , i nt eresant e si quere mos por ej e mpl o hacer cál cul os dentro de un progra ma y nuestro client e no es l o sufi ci ente pot ent e, pues medi ant e RMI accedería mos a l os obj et os necesari os que resi di rí an en un ordenador más pot ent e y t odo co mo si est uvi esen nuestro propi o ordenador. La i nt erf az RMI decl ara cual es de est os mét odos son accesi bl es desde otras J ava Vi rt ual Mac hi nes (J VM). Necesitamos crear el si gui ent e escenari o para poder trabaj ar con RMI: Un i nterf az que i ndi que qué f unci ones son accesi bles, un obj et o que i mpl eme nt e di chas f unci ones, un servi dor que dé de alta a l a i nterf az y un cli ente que acceda a l a i nt erf az re mot a ment e. Exi sten vari as regl as que deben i mpl e ment arse para f unci onar correcta mente:

La i nterf az re mot a debe de cl ararse "public" El cli ente debe poder cargar el obj et o re mot o que i mpl e ment a l a i nterf az remot a,

sol o puede accederse si es publi c. La i nterf az re mot a debe extender l a i nterf az j ava. rmi . Re mot e Al defi ni r l a i nterf az esta debe t er mi nar con un extends j ava. r mi. Re mot e, pues

debe i mpl e ment ar a l a i nterf az Re mot e. Los mét odos deben decl arar j ava. r mi. Re mot eExcepti on En cada mét odo que se decl are en l a i nt erf az se añade t hrows

j ava. r mi. Re mot eExcepti on j unt o con l as excepci ones que quera mos. Ti pos de val ores seri alizarl es.

Page 4: Rmi

Todos l os ti pos que se pasan co mo argu ment o o se ret ornan deben ser Seri alizabl es o heredar de cl ases seri alizarl es.

Ej e mpl o: RMI v/s TCP/IP El si gui ent e ej e mpl o ti ene co mo obj et o ser una pequeña i ntroducci ón a RMI, trat ando un probl e ma co mún y corri ent e, de dos maneras di sti ntas, con una apli caci ón cli ente/servi dor usando TCP/I P y con RMI. El Probl e ma El probl e ma consi ste en cal cul ar l a su ma de t odos l os nú meros ent eros desde 1 hast a un nu mero pasado co mo pará metro, para ell o se utiliza una f or mul a tri vi al. La tarea debe ser realizada re mot a ment e, por un servi dor, que at enderá l as consultas, reali zará el cál cul o, y l uego devol verá l a sol uci ón. Ade más, debe t ener un regi stro de t odas l as operaci ones reali zadas, para responder i nmedi ata ment e, si n cal cular, cuando se realice una consulta repeti da. Cli ente/Servi dor La i dea de esta sol uci ón es crear un servi dor mul ti hil os, co mo l os vi st os en cl ases, que ati enda l as peti ci ones de múl ti pl es usuari os. A conti nuaci ón se muestra el di agra ma de cl ases de l a sol uci ón.

El f unci ona mi ent o a grandes rasgos es: oEl servi dor parte y crea un obj et o del ti po Tabl a el cual se encargará de guardar l os cál cul os reali zados. oLuego queda escuchando conexi ones en un deter mi nado puert o oCuando ll ega una conexi ón, se crea un obj et o Hil os, que i mpl e ment a l a i nt erf ace Runnabl e, se pasa l a ref erenci a al obj et o Tabl a y se echa a correr el Thread. oLuego se escucha l a peti ci ón del cli ente, se busca en l a tabl a (por si ya f ue calcul ado) oSe procesa (con un mét odo de Tabl a) oSe guarda el resultado en un atri but o de Tabl a oFi nal ment e, se devuel ve la respuesta al cli ente Se utilizó l a cl ase HashMap para guardar l os resultados. Co mo se puede ver no es muc ho l o que difi ere este progra ma de l os ya vi stos en cl ase.

Page 5: Rmi

CODI GOS: Cli ente.j ava Servi dor.j ava Hil os.j ava Tabl a.j ava DOCUMENTACI ON: javadoc RMI Para se segunda sol uci ón, se utilizó RMI (si no, no t endrí a graci a estar exponi endo). La i dea es utilizar l as vent ajas de RMI, para hacer que el servi dor utilice su propi a CPU para utilizar l os mét odos i mpl eme nt ados en l a cl ase del obj et o cli ente. A conti nuaci ón se presenta el di agra ma de cl ases de la sol uci ón RMI:

Co mo se expli có ant erior ment e, el cli ente y el servi dor j a más trabaj an con l as i mpl e ment aci ones re mot as, si no que, ti enen que trabaj ar y co muni carse por medi o de i nterf aces. Se puede apreciar en el di agra ma, que existen dos i nterf aces: Cal cul o y Proceso. Asi co mo, Mot or Cal cul o Hereda de Cal cul o, mi entras que cal cul oSumat ori a hereda de Proceso. El f unci ona mi ent o a grandes rasgos es: El servi dor ( Mot orCal cul o) se regi stra en RMI Regi stry guardando su di recci on. El cli ente que necesite hacer un cal cul o, consulta al RMI Regi stry, en busca del obj et o deseado. Si exi ste, le es devuelta una i nstanci a de Mot orCal cul o. Luego crea un obj et o: Proceso t = (Proceso) cal cul oSu mat ori a(i nt n); Con estas dos i nstanci as, se ej ecut a el met odo i nt ej ecut arProceso( Proceso t) de l a cl ase Mot orCal cul o. El servi dor reci be un obj eto Proceso, que en reali dad es una i nstanci a de cal cul oSu mat ori a y co mi enza a ej ecut ar l os met odos de cal cul oSumatori a en el servi dor, pese a que es una cl ase en el cli ente!!! Una vez que el cal cul o es reali zado, el servi dor devuel ve un ent ero co mo resultado del met odo ej ecutarProceso(Proceso t). Una de l as i deas pri nci pales de r mi, es l a de poder separar l as f ases de desarroll o, en base a est o, nace l a i dea de dej ar l as cl ases de obj et os re mot os di sponi bl es para cada l ado (servi dor y/o cli ente), a t raves de un WebServer. La i dea general se present a en el si gui ent e di agra ma:

Page 6: Rmi

En l a secci ón de descargas se encuentran a mbos progra mas co mpri mi dos con un archi vo de t ext o que i ndi ca co mo co mpil ar y ej ecutar. El pri mer progra ma se ej ecuta de manera nor mal, mi entras que para el segundo se deben segui r un par de pasos más co mpl ej os. Est án t odos debi da ment e expli cados en l os l ee me. txt correspondi ent es. A conti nuaci ón se muestran l os pasos para co mpil ar y ej ecutar el código: COMPI LACI ON: En El Servi dor Lo pri mero que se hace es co mpil ar l as i nterf aces, y crear un archi vo un archi vo j ar, para facilitar el traspaso de i nfor maci ón. cd /ho me/cvasquez/el o330/r mi / j avac src/cal cul o/Cal cul o. j ava j avac src/cal cul o/Proceso.java j ar cvf src. cal cul o.j ar src/cal cul o/*. cl ass Luego, se mueve el archivo j ar reci en creado hacia el servi dor web, para que pueda ser descargado por el /l os cli ent e/s. mv src. cal cul o.j ar /pub/WWW/cl ases/ Luego, ca mbi a el cl asspath de j ava, para que reconosca el archi vo j ar con l a i nterf aces, y l os archi vos del servi dor. CLASSPATH=/ho me/cvasquez/el o330/r mi: /pub/WWW/cl ases/src. cal cul o. j ar A conti nuaci ón se compil a el servi dor: j avac src/server/ Mot orCalcul o.j ava Se crean l os St ubs y Skel eton. En este caso, sol o se genera un STUB para el client e, debi do a que el servi dor no l o necesita. Y se copi a al servi dor web, para que el cli ente pueda acceder a el. r mi c - d . src. server. Mot orCal cul o mkdi r /pub/ WWW/cl ases/src mkdi r /pub/ WWW/cl ases/src/server cp src/server/ Mot orCal cul o_*. cl ass /pub/ WWW/cl ases/src/server/ Fi nal ment e se extrae el archi vo j ar para que sea accedi do por el Cli ente una vez ej ecut ado el progra ma. cd /pub/ WWW/cl ases/ j ar xvf src. cal cul o.j ar En El Cli ente:

Page 7: Rmi

Lo pri mero que se hace, es descargar el archi vo j ar: src. cal cul o.j ar del We bServer sel servi dor, al WebServer del cli ente. Luego se agrega al cl asspath, tant o el archi vo reci en descargado co mo el pat h de trabaj o. CLASSPATH=/ho me/al m2000/cvasquez/el o330/rmi : /ho me/al m2000/cvasquez/ WWW/cl ases/src. cal cul o.j ar Fi nal ment e se compil a el Cli ente, y se dej a l a cl ase que utilizará el servi dor al We bServer. cd /ho me/al m2000/cvasquez/el o330/r mi j avac src/cli ente/testSumat ori a.j ava j avac - d /ho me/al m2000/cvasquez/ WWW/cl ases src/cli ente/cal cul oSumat ori a.j ava EJ ECUCI ON En El Servi dor Lo pri mero que hay que hacer es correr l a apli caci on " poli cyt ool " de J AVA, y crear l as politicas de seguri dad, y dej arl as en al gun archi vo en el di rect ori o del progra ma (t ant o para el server como para el cli ente): grant { per mi ssi on j ava. net. Socket Per mi ssi on "*: 1024- 65535", "accept, connect, listen, resol ve"; per mi ssi on j ava. net. Socket Per mi ssi on "*: 80", "connect"; per mi ssi on j ava. i o. Fil ePer mi ssi on "<>", "read"; }; Luego hay que baj ar el CLASSPATH con ( UNI X): CLASSPATH= A conti nuaci on hay que abri r el regi stro RMI para poder regi strar el servidor. Se puede o mi tir el puert o, en cuyo caso, al puert o por omi si on sera el 1099. r mi regi stry [PUERTO] & Se act uali za el cl asspat h para que encuentre l os archi vos del servi dor web. CLASSPATH=/ho me/cvasquez/el o330/r mi: /pub/WWW/cl ases/src. cal cul o. j ar Ahora, se puede l evant ar el servi dor j ava - Dj ava. r mi. server. codebase=htt p: //200. 1. 27. 172/cl ases/ - Dj ava. security. policy=java. policy src. server. Mot orCal culo 200. 1. 27. 172 12345 En el Cli ente Reali zar el mi s mo paso de la politica de seguri dad reali zada para el servi dor. En el cli ente se act uali za el cl asspat h. CLASSPATH=/ho me/al m2000/cvasquez/el o330/rmi : /ho me/al m2000/cvasquez/ WWW/cl ases/src. cal cul o.j ar Ahora hay que correr el progra ma cli ente y li sto. Est o se puede hacer desde el di rect ori o de este archi vo, con l a sentenci a: j ava - Dj ava. r mi. server. codebase=htt p: //al umnos. elo. utfs m. cl /~cvasquez/cl ases/ - Dj ava. security. policy=java. policy src. cli ente. testSumat oria 200. 1. 27. 172 12345 145 Bi bli ografi a: " Re mot e Met hod I nvocation I ni ci o" . Oracl e Technol ogy Net work para desarroll adores de Java . Redwood Shores, CA, EE. UU. : Oracl e Corporati on . Consultado el 14/07/2014 .

Page 8: Rmi

El t ut ori al de J ava RMI - un buen punt o de parti da para aprender RMI. Ta mbi én puedes ver el Hol a Mundo en RMI la for maci ón en lí nea de Java RMI - Muy bueno para f or maci ón JavaRMI y como ref erenci a La pági na de RMI en l a document aci ón de J DK