Tesis de Grado de Ingeniera en Informtica Orientacin en Sistemas Distribuidos Tesista Matas I. San Martn Director Prof. Ing. Osvaldo Cla Facultad de Ingeniera Universidad de Buenos Aires !"o #$%# San Martn, Matas Ignacio I Lo haremos... no porque sea fcil, sino porque es difcil &. '. (enned) *Presidente de los +stados ,nidos de !m-rica. res/ecto del /roceso 0ue finalmente llevara al 1ombre a la 2una3 San Martn, Matas Ignacio Resumen +l /aradigma de agentes mviles de soft4are define entidades *los agentes3 ca/aces de moverse entre distintos lugares de una red. de forma autnoma ) en busca del cum/limiento de sus ob5etivos /articulares. +l 1ec1o de contar con estos agentes. ca/aces de acercarse a los recursos 0ue deben utili6ar ) de des/la6arse a otro sitio cuando as lo re0uieran. ofrece grandes venta5as frente a /aradigmas ms tradicionales como /ueden ser a0uellos basados en ar0uitecturas del ti/o cliente7 servidor8 siendo /articularmente destacables9 el a1orro en la transmisin de datos ) la /revencin de latencias. Para /ermitir la e5ecucin de los agentes de soft4are ) ofrecer un con5unto de servicios bsicos. es necesario una /lataforma de e5ecucin. &!D+ *&ava !gent D+velo/ment 'rame4or:3 ofrece dic1a /lataforma ). adems. un con5unto de 1erramientas 0ue /osibilitan el desarrollo de los agentes 0ue se e5ecutarn en ella. +ntre todas las tecnologas de este ti/o. &!D+ resalta /or su tra)ectoria. comunidad creciente ) /or el 1ec1o de estar liberada ba5o una licencia de cdigo abierto *2GP23. ! /esar de contar con a"os de desarrollo ) uso en su 1aber. &!D+ es un /ro)ecto todava en evolucin ) con /osibilidad de me5oras. +n /articular. en el /resente traba5o se /ro/one una nueva versin de un com/onente de la /lataforma *servicio de movilidad38 nueva versin 0ue tiene como ob5etivo /ermitir la movilidad de los agentes de forma ms eficiente ) robusta. a/untando a /revenir inco1erencias en la definicin de los mismos ) la transmisin innecesaria de datos. Para lograr el ob5etivo descri/to. la solucin se vali de otra tecnologa con madure6 ) en crecimiento. OSGi. 0ue se enfoca en facilitar la definicin de las a/licaciones en forma de com/onentes reutili6ables ) dinmicos. 2as bondades de esta /ermitirn llegar a una solucin sim/le ) robusta. 0ue cum/la con los ob5etivos establecidos. +n los /rimeros ca/tulos de este traba5o se desarrolla una introduccin a los conce/tos ) tecnologas 0ue dan marco al desarrollo del mismo. +m/e6ando /or el /aradigma de los agentes mviles de soft4are *ca/tulo %3. /ara luego seguir con &!D+ *ca/tulo #3 ) com/letar con OSGi *ca/tulo ;3. 2uego. se 1ace un anlisis de las limitaciones encontradas en &!D+ ) 0ue busca com/ensar la solucin /ro/uesta en esta obra *ca/tulo <3. Con esto se da introduccin al anlisis del conte=to. tecnologas ) restricciones tenidas en cuenta en el desarrollo de la solucin *ca/tulo >3 ). finalmente. se /resenta el /rototi/o im/lementado con ob5eto de verificar la /ro/uesta *ca/tulo ? ) @3. +ste es com/arado con la funcionalidad ofrecida /or &!D+ en un con5unto de /ruebas cu)os resultados son /resentados en el ca/tulo A. Se da cierre a esta tesis con una reca/itulacin en forma de conclusiones de lo II San Martn, Matas Ignacio /resentado. ) una descri/cin de contenidos com/lementarios al /resente8 conformados /or el inventario de traba5os relacionados. la descri/cin de una alternativa a la solucin e=/uesta. ) la /ro/uesta de ideas /ara la evolucin de lo a0u ofrecido *ca/tulo B3. III San Martn, Matas Ignacio Abstract T1e mobile soft4are agents /aradigm defines entities *agents3 ca/able of moving autonomousl) among /laces in a net4or: and follo4ing t1eir o4n agenda. Caving t1ese agents. 41o are able to go closer to t1e resources necessar) to accom/lis1 t1eir goals and of moving else41ere 41en needed. offers great advantages over more traditional /aradigms suc1 as t1ose based on client7server arc1itectures. In /articular. it can be mentioned t1e savings in data transmission and latenc) avoidance. To allo4 t1e e=ecution of soft4are agents and to offer t1em a set of basic services. an e=ecution /latform is needed. &!D+ *&ava !gent Develo/ment 'rame4or:3 /rovides suc1 a /latform and. also. a frame4or: for develo/ing t1e agents t1at can be e=ecuted b) it. &!D+ stands out from ot1ers because of its 1istor). gro4ing communit) and t1e fact of being released under an o/en source license *2GP23. Des/ite 1aving man) )ears of develo/ment and use to its credit. &!D+ is still an in7/rogress /ro5ect and 1as man) features t1at can be develo/ed or im/roved. In t1is 4or:. a ne4 version of an e=isting com/onent *agent mobilit) service3 is /ro/osed. aiming for a more efficient and robust functionalit). tr)ing to avoid inconsistencies in t1e agentDs definitions and /reventing unnecessar) data transmission. To ac1ieve t1e described ob5ective. anot1er mature and gro4ing tec1nolog) 4as used. OSGi. 41ic1 focuses on facilitating t1e com/onenti6ation of soft4are modules and a//lications. T1e benefits /rovided b) t1is tec1nolog) 4ill ma:e it /ossible to build a sim/le and robust solution t1at meets t1e ob5ectives set. !t t1e beginning of t1is 4or: some conce/ts and tec1nologies are introduced to give some conte=t. 'irst. t1e mobile soft4are agents /aradigm is described *in c1a/ter %3. follo4ing 4it1 &!D+ *c1a/ter #3 and t1e introduction is com/leted 4it1 OSGi *c1a/ter ;3. !fter t1at. *in c1a/ter <3 t1e limitations found in &!D+ are described *focusing in t1e ones concerned b) t1is 4or:3. T1is 4ill serve as introduction for t1e stud) of t1e conte=t. tec1nologies and restrictions ta:en into account 41en develo/ing t1e solution *c1a/ter >3. to finall) lead to t1e /resentation of t1e /rotot)/e im/lemented to test t1e /ro/osal *c1a/ters ? and @3. T1is /rotot)/e is later com/ared against t1e service offered b) default in &!D+ t1roug1 a set of tests cases from 41ic1 t1e results are detailed in c1a/ter A. 'inall) t1is t1esis is ended 4it1 some conclusions about t1e information /resented and a com/lementar) descri/tion of related 4or:. an alternative solution to t1e one given. and some ideas for furt1er 4or: t1at can be made *c1a/ter B3. IE San Martn, Matas Ignacio Agradecimientos ! mis /adres /or 1aber invertido en mi educacin ) /or su a/o)o a lo largo de toda mi vida. ! Silvina /or su infinito amor ) /aciencia. ! mi tutor. Osvaldo Cla. /or 1aber sabido guiarme en el desarrollo de este /ro)ecto. ! todos los 0ue durante este tiem/o me brindaron su a/o)o ) com/a"a. ) me motivaron a seguir ) cum/lir mis ob5etivos. E San Martn, Matas Ignacio ndice de Contenido Fesumen 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777II !bstract 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777IE !gradecimientos 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777E Gndice de Ilustraciones 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777H Gndice de Tablas 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777HI Ca/tulo %9 Introduccin a los agentes mviles de soft4are 77777777777777777777777777777777777777777777% %.% 7Definicin de agentes 77777777777777777777777777777777777777777777777777777777777777777777777777777777777% %.%.% 7!gente de soft4are 7777777777777777777777777777777777777777777777777777777777777777777777777777777% %.%.# 7!gente mvil 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777# %.# 7Caractersticas de los agentes mviles de soft4are 77777777777777777777777777777777777777777777; %.#.% 7Eenta5as I1eredadasJ de los agentes de soft4are 7777777777777777777777777777777777777777; %.#.# 7Eenta5as asociadas a la movilidad 777777777777777777777777777777777777777777777777777777777777< %.#.; 7Dificultades asociadas a los agentes mviles 777777777777777777777777777777777777777777777> %.; 7!s/ectos t-cnicos asociados con la tecnologa de agentes mviles de soft4are 777777> %.;.% 7!s/ectos t-cnicos /ro/ios del agente 7777777777777777777777777777777777777777777777777777777> %.;.# 7!s/ectos t-cnicos /ro/ios de la /lataforma de e5ecucin 777777777777777777777777777777? %.;.; 7!s/ectos t-cnicos /ro/ios de la e5ecucin del agente 7777777777777777777777777777777777? Fe0uerimiento de nica e5ecucin *e=actl)7once3 77777777777777777777777777777777777777777777? Deteccin de casos de e=ce/cin 77777777777777777777777777777777777777777777777777777777777777777@ %.;.< 7!s/ectos t-cnicos de la comunicacin 777777777777777777777777777777777777777777777777777777A Problemas /or ser distribuidos 777777777777777777777777777777777777777777777777777777777777777777777A Problemas /or movilidad 77777777777777777777777777777777777777777777777777777777777777777777777777777B %.;.> 7!s/ectos t-cnicos relacionados con la seguridad 7777777777777777777777777777777777777777B Ca/tulo #9 Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are 777777777777777%% #.% 7!ntecedente 1istrico 7777777777777777777777777777777777777777777777777777777777777777777777777777777777%% #.# 7Caractersticas de &!D+ 777777777777777777777777777777777777777777777777777777777777777777777777777777%# #.#.% 7Com/onentes 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777%# #.#.# 7!r0uitectura 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%# #.#.; 7Protocolo de comunicacin entre contenedores 77777777777777777777777777777777777777777%< #.#.< 7!gentes 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%< Im/lementacin de agentes 77777777777777777777777777777777777777777777777777777777777777777777777%< Comunicacin entre agentes 7777777777777777777777777777777777777777777777777777777777777777777777%> #.; 7'IP! 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777%? #.;.% 7+s/ecificacin de ar0uitectura abstracta 7777777777777777777777777777777777777777777777777%? #.;.# 7+s/ecificacin de administracin de agentes 77777777777777777777777777777777777777777777%@ #.;.; 7+s/ecificacin del servicio de trans/orte de mensa5es de agentes 7777777777777777%A Ca/tulo ;9 OSGi9 un sistema de com/onentes dinmicos /ara &ava 777777777777777777777777777777#$ ;.% 7Introduccin a OSGi 77777777777777777777777777777777777777777777777777777777777777777777777777777777777#$ ;.# 7Class2oaders de &ava 777777777777777777777777777777777777777777777777777777777777777777777777777777777#$ ;.#.% 7Ob5etivos de la ar0uitectura de Class 2oaders 7777777777777777777777777777777777777777777#% ;.#.# 7Feglas de los Class 2oaders 77777777777777777777777777777777777777777777777777777777777777777## ;.#.; 7Dificultades en el uso de los class loaders 777777777777777777777777777777777777777777777777#; Class loaders concurrentes 77777777777777777777777777777777777777777777777777777777777777777777777#; EI San Martn, Matas Ignacio 2as clases 1omnimas en distintos class loaders no son la misma clase 777777777777#; Perdidas de memoria significativas 7777777777777777777777777777777777777777777777777777777777777#< 2a regla de delegacin /uede rom/erse *Conte=t Class 2oader3 77777777777777777777777#< ;.; 7Introduccin a OSGi ) sus conce/tos /rinci/ales 7777777777777777777777777777777777777777777777#< ;.< 72imites de la modularidad en la /lataforma &ava 7777777777777777777777777777777777777777777777#? ;.<.% 7So/orte /ara la definicin de interfaces e=/ortadas 777777777777777777777777777777777777#? ;.<.# 7So/orte /ara la definicin de interfaces im/ortadas 777777777777777777777777777777777777#@ ;.<.; 7So/orte /ara el des/liegue ) mantenimiento de las a/licaciones 777777777777777777#@ ;.> 7Ca/as de OSGi 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777#A ;.>.% 7Ca/a de mdulos *Module 2a)er3 77777777777777777777777777777777777777777777777777777777777#A ;.>.# 7Ca/a de ciclo de vida *2ifec)cle 2a)er3 7777777777777777777777777777777777777777777777777777#A ;.>.; 7Ca/a de servicios *Service 2a)er3 7777777777777777777777777777777777777777777777777777777777;$ ;.? 7Felacin de OSGi con el /aradigma de agentes mviles de soft4are 7777777777777777777;% ;.?.% 7Modularidad 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;% ;.?.# 7Dinamismo 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;# ;.?.; 7Control de de/endencias 7777777777777777777777777777777777777777777777777777777777777777777777;# ;.?.< 7Portabilidad 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777;# Ca/tulo <9 Servicio de movilidad en &!D+ 7777777777777777777777777777777777777777777777777777777777777777;; <.% 7Introduccin a los servicios de movilidad de &!D+ 77777777777777777777777777777777777777777777;; <.# 7Servicio de movilidad intra7/lataforma 777777777777777777777777777777777777777777777777777777777777;; <.#.% 7Generalidades 777777777777777777777777777777777777777777777777777777777777777777777777777777777777;; <.#.# 7Im/lementacin actual 77777777777777777777777777777777777777777777777777777777777777777777777777;; <.; 7Servicio de movilidad inter7/lataforma 777777777777777777777777777777777777777777777777777777777777;? <.;.% 7Generalidades 777777777777777777777777777777777777777777777777777777777777777777777777777777777777;? <.;.# 7Im/lementacin actual 77777777777777777777777777777777777777777777777777777777777777777777777777;? <.< 72imitaciones en el servicio de movilidad *intra7/lataforma3 777777777777777777777777777777777<$ <.<.% 7Dificultad % K Lo se /uede actuali6ar el agente 77777777777777777777777777777777777777777<$ <.<.# 7Dificultad # K Transmisin innecesaria de las clases 7777777777777777777777777777777777<$ <.> 7Servicio de movilidad inter7/lataforma 77777777777777777777777777777777777777777777777777777777777<% Ca/tulo >9 OSGi /ara /otenciar a &!D+. /ro/uesta de solucin 77777777777777777777777777777777777<# >.% 7Pre7anlisis de solucin 7777777777777777777777777777777777777777777777777777777777777777777777777777777<# >.# 7Solucin /ro/uesta 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777<# >.; 7Pre7re0uisitos /ara la solucin 7777777777777777777777777777777777777777777777777777777777777777777777<# >.;.% 7Fe0uisito de no modificar el ncleo de &!D+ 77777777777777777777777777777777777777777777<; >.;.# 7Fe0uisito de trans/arencia en el uso 7777777777777777777777777777777777777777777777777777777<; >.< 7Decisiones de dise"o 7777777777777777777777777777777777777777777777777777777777777777777777777777777777<; >.<.% 7Integracin del frame4or: de OSGi ) &!D+ 7777777777777777777777777777777777777777777777<< !lternativa % K OSGi ) &!D+ en /aralelo 777777777777777777777777777777777777777777777777777777<< !lternativa # K &!D+ sobre OSGi 7777777777777777777777777777777777777777777777777777777777777777<> !lternativa ; K OSGi em/otrado en &!D+ 7777777777777777777777777777777777777777777777777777<? >.<.# 7Determinacin de 0ue bundles son necesarios /ara los agentes 777777777777777777<@ Fesolucin de de/endencias dadas las asociaciones en el origen 77777777777777777777<@ Fesolucin de de/endencias mediante 1eurstica de anlisis de encabe6ados 7777<@ Fesolucin de de/endencias con OSGi Mundle Fe/ositor) *OMF3 77777777777777777777<A >.<.; 7Transferencia de datos entre contenedores de la migracin 7777777777777777777777777<B >.<.< 7So/orte /ara migracin de agentes no em/a0uetados en bundles 7777777777777777<B >.<.> 7Mantenimiento de distintas versiones de un mismo bundle o actuali6acin 77777<B EII San Martn, Matas Ignacio Ca/tulo ?9 Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ 777777777777>% ?.% 7Desarrollo del /rototi/o 7777777777777777777777777777777777777777777777777777777777777777777777777777777>% ?.%.% 7Tecnologas usadas 77777777777777777777777777777777777777777777777777777777777777777777777777777>% ?.%.# 7!cceso al /rototi/o 777777777777777777777777777777777777777777777777777777777777777777777777777777># ?.# 7Detalle del /rototi/o de solucin 77777777777777777777777777777777777777777777777777777777777777777777># ?.#.% 7Servicio de movilidad basado en OSGi 7777777777777777777777777777777777777777777777777777># ?.#.# 7Comunicacin entre contenedores de &!D+ 777777777777777777777777777777777777777777777>; ?.#.; 7Fesolucin de de/endencias necesarias /ara la migracin 7777777777777777777777777>< Mundle /ara la transmisin de recursos 77777777777777777777777777777777777777777777777777777777>< Mundle /ara la rece/cin de recursos 7777777777777777777777777777777777777777777777777777777777>< Mundle /ara la resolucin ) /edido de de/endencias 77777777777777777777777777777777777777>> Mundle /ara el envo de de/endencias 77777777777777777777777777777777777777777777777777777777>> ?.; 7Dificultades en la im/lementacin de la solucin 7777777777777777777777777777777777777777777777>? ?.;.% 7+l ncleo de &!D+ de/ende del servicio de movilidad ) de su interfa6 77777777777>? ?.;.# 7OMF no estandari6ado 7777777777777777777777777777777777777777777777777777777777777777777777777>A ?.;.; 7OMF usa solo re/ositorios basados en HM2 777777777777777777777777777777777777777777777>A ?.< 7'acilidades en la im/lementacin de la solucin 77777777777777777777777777777777777777777777777>B ?.<.% 7!r0uitectura modular de &!D+ 777777777777777777777777777777777777777777777777777777777777777>B ?.<.# 7Mecanismo de carga de clases con /ro/iedades es/ecficas 7777777777777777777777>B ?.<.; 7!r0uitectura de com/osition filters 7777777777777777777777777777777777777777777777777777777777>B ?.<.< 7Ca/acidad de em/otrar un frame4or: OSGi 777777777777777777777777777777777777777777777?$ ?.<.> 7OSGi administra sus class loaders sin im/oner restricciones sobre los dems ?$ Ca/tulo @9 'uncionamiento del /rototi/o im/lementado 77777777777777777777777777777777777777777777777?% @.% 7 Soluciones a las limitaciones del servicio de movilidad de &!D+ 777777777777777777777777?% @.%.% 7Solucin a la dificultad % K Posibilidad de actuali6ar el agente 7777777777777777777777?% @.%.# 7Solucin a la dificultad # K Solo se transmiten los com/onentes 0ue no est-n /resentes en destino 777777777777777777777777777777777777777777777777777777777777777777777777777777777777?% @.# 7Eenta5as adicionales de la solucin /ro/uesta 7777777777777777777777777777777777777777777777777?# @.#.% 7Ca/acidad de definir re0uerimientos 0ue no son clases 777777777777777777777777777777?# @.#.# 7'uncionalidad dinmica de un agente basada en de/endencias o/cionales 7777?; @.#.; 7Posibilidad de uso de ca/a de servicios de OSGi 77777777777777777777777777777777777777?; @.#.< 7Solucin como /unto inicial /ara im/lementar &!D+ sobre OSGi 777777777777777777?; Ca/tulo A9 Desem/e"o del /rototi/o de solucin /ro/uesta 77777777777777777777777777777777777777777?< A.% 7Ob5etivo de las /ruebas 7777777777777777777777777777777777777777777777777777777777777777777777777777777?< A.# 7+ntorno de /ruebas 777777777777777777777777777777777777777777777777777777777777777777777777777777777777?< A.; 7Pruebas reali6adas 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777?< A.;.% 7Detalle de las /ruebas reali6adas 77777777777777777777777777777777777777777777777777777777777?> A.;.# 7Sobre las mediciones 777777777777777777777777777777777777777777777777777777777777777777777777777?? A.< 7Fesultados 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?? A.<.% 7Sobre los resultados e=/uestos 77777777777777777777777777777777777777777777777777777777777777?? A.<.# 7!nlisis de resultados 77777777777777777777777777777777777777777777777777777777777777777777777777?@ Caso % 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777?@ Caso # 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@$ Caso ; 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@# Caso < 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@; Caso % con m=imos valores medidos 777777777777777777777777777777777777777777777777777777777@> A.> 7Conclusiones 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@? EIII San Martn, Matas Ignacio Ca/tulo B9 Conclusiones 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@A B.% 7Traba5o relacionado ) alternativa a la solucin /ro/uesta 77777777777777777777777777777777777@B B.%.% 7Plug7in OSGi /ara &!D+ 77777777777777777777777777777777777777777777777777777777777777777777777@B B.%.# 7Servicio de movilidad inter7/lataforma 77777777777777777777777777777777777777777777777777777A$ B.%.; 7Solucin alternativa mediante uso e=/lcito de class loaders 777777777777777777777777A% B.# 7Traba5o futuro e ideas 777777777777777777777777777777777777777777777777777777777777777777777777777777777A; B.#.% 7,so de re/ositorio de recursos estandari6ado 7777777777777777777777777777777777777777777A; B.#.# 7Modulari6ar &!D+ a /artir de OSGi 777777777777777777777777777777777777777777777777777777777A; B.#.; 7,so de los mecanismos de seguridad ofrecidos /or OSGi 777777777777777777777777777A; Introduccin al modelo de seguridad en OSGi 77777777777777777777777777777777777777777777777A; ,so en &!D+ del modelo de seguridad de OSGi 77777777777777777777777777777777777777777777A< Glosario 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777A? Mibliografa 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777B$ !ne=o I9 Prueba de transmisin en 2+!P IMTP 7777777777777777777777777777777777777777777777777777777777B; IH San Martn, Matas Ignacio ndice de Ilustraciones N Ilustracin %9 !r0uitectura Distributed Coordinated 'ilters 77777777777777777777777777777777777777777%; N Ilustracin #9 !r0uitectura en ca/as de OSGi 777777777777777777777777777777777777777777777777777777777#> N Ilustracin ;9 Ciclo de vida de un bundle 777777777777777777777777777777777777777777777777777777777777777#B N Ilustracin <9 +s0uema de /roceso de migracin intra7/lataforma 777777777777777777777777777777;> N Ilustracin >9 +s0uema del /roceso de migracin inter7/lataforma 777777777777777777777777777777;B N Ilustracin ?9 Integracin OSGi en /aralelo con &!D+ 7777777777777777777777777777777777777777777777<< N Ilustracin @9 Integracin &!D+ sobre OSGi 77777777777777777777777777777777777777777777777777777777777<> N Ilustracin A9 Integracin con OSGi em/otrado en &!D+ 777777777777777777777777777777777777777777<? N Ilustracin B9 !r0uitectura de mecanismo de resolucin de de/endencias en el /rototi/o im/lementado 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777>? N Ilustracin %$9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados. /ara cada tecnologa usada /ara la migracin. Caso de agente 0ue /ermanece vivo en el destino 777777777777777777777777777777777777777777777777777777777777777777?A N Ilustracin %%9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados. /ara cada tecnologa usada /ara la migracin. Caso de agente 0ue finali6a en el destino 777777777777777777777777777777777777777777777777777777777777777777777777777777@% N Ilustracin %#9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados. /ara cada tecnologa usada /ara la migracin. Caso de agente 0ue /ermanece vivo en el destino ) 0ue la definicin de este se encuentra en destino /reviamente a la migracin 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777@; N Ilustracin %;9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados. /ara cada tecnologa usada /ara la migracin. Caso de agente 0ue finali6a en el destino ) 0ue la definicin de este se encuentra en ob5etivo. /reviamente a la migracin 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777@< N Ilustracin %<9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados. /ara cada tecnologa usada /ara la migracin. Caso de agente 0ue /ermanece vivo en el destino. M=imos valores de re/eticiones /ara las ca/turas reali6adas 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@? H San Martn, Matas Ignacio ndice de Tablas N Tabla %9 Modificadores de accesibilidad /ara la funcionalidad ofrecida /or una clase en &ava. en funcin de 0uien /uede acceder a dic1a funcionalidad. IPac:ageJ se encuentra entre /ar-ntesis /ara indicar 0ue no se trata de un modificador. es la o/cin /or defecto cuando no se indica ninguno. 7777777777777777777777777777777777777777777777777777777777777777777777777777777777#? N Tabla #9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados ) la tecnologa usada /ara la migracin. Caso de agente 0ue /ermanece vivo en el destino 7777777777777777777777777777777777777777777777777777777777777777777777777777777777?@ N Tabla ;9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados ) la tecnologa usada /ara la migracin. Caso de agente 0ue finali6a en el destino 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@% N Tabla <9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados ) la tecnologa usada /ara la migracin. Caso de agente 0ue /ermanece vivo en el destino ) 0ue la definicin de este se encuentra en destino /reviamente a la migracin 7777777777777777777777777777777777777777777777777777777777777777777777777777777777777@# N Tabla >9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados ) la tecnologa usada /ara la migracin. Caso de agente 0ue finali6a en el destino ) 0ue la definicin de este se encuentra en el ob5etivo. /reviamente a la migracin 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@< N Tabla ?9 Cantidad de b)tes transmitidos /ara la migracin de agentes. segn la cantidad de agentes migrados ) la tecnologa usada /ara la migracin. Caso de agente 0ue /ermanece vivo en el destino. M=imos valores de re/eticiones /ara las ca/turas reali6adas 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777@> HI Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio Captulo 1 Introduccin a los agentes mviles de software +n este ca/tulo se /resenta un marco terico 0ue sirve como introduccin al /aradigma de los agentes mviles de soft4are. 1.1 - efinicin de agentes 1.1.1 - Agente de software Se considera un agente a a0uello 0ue tiene la ca/acidad de /roducir un efecto. +sta definicin sim/le es la 0ue se obtiene al consultar en la Feal !cademia +s/a"ola. /ero tambi-n es la base sobre la cual diversos autores /arten al momento de /recisar lo 0ue es un agente OMrads1a4 %BB@8 Fot1ermel ) Co1l %BBAP. +s/eciali6ando a /artir del conce/to de agente /resentado. se dice 0ue un agente de software es un /rograma informtico 0ue im/lementa la funcionalidad de un agente OMrads1a4 %BB@P. Ms all de esta definicin bsica. resulta difcil encontrar un consenso absoluto sobre a 0ue se debe llamar agente *de a0u en ms. se usar este t-rmino significando agente de software3. /rinci/almente debido a 0ue la /alabra no est asociada a un conte=to es/ecfico ). tambi-n. /or causa de la gran variedad de soluciones a las 0ue se titul como agente de software OL4ana %BB?8 Mrads1a4 %BB@P. Sin embargo. es /osible definir a un agente a /artir del com/ortamiento ) caractersticas 0ue se es/era 0ue tenga. Se entiende 0ue un agente debe funcionar de manera autnoma */or cuenta /ro/ia3 ) en re/resentacin de su usuario8 tomando informacin ) /osiblemente modificando su entorno. actuando en /ersecucin de sus ob5etivos ) tomando la iniciativa cuando resulte a/ro/iado OMrads1a4 %BB@8 L4ana %BB?8 'ran:lin ) Graesser %BB?8 Tanenbaum ) Steen #$$#P. +ntre los atributos 0ue suelen tener *en ma)or o menor medida3 los agentes de software. se encuentran OL4ana %BB?8 Mrads1a4 %BB@8 'ran:lin ) Graesser %BB?P9 Reactivo9 +s ca/a6 de actuar en base al estado de su entorno o a /arte de -l. Autnomo9 Puede funcionar sin necesidad de interaccionar con un ser 1umano. solo guiado *de forma /roactiva3 /or sus ob5etivos. Colaborativo9 Tiene la 1abilidad de actuar en con5unto con otros agentes ) *0ui6s3 seres 1umanos. intercambiando informacin en un lengua5e de alto % Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio nivel ) con el fin de cum/lir su ob5etivo )Qo un ob5etivo con5unto. Capaz de inferir un ob5etivo a /artir de una es/ecificacin abstracta o incom/leta. Cabe mencionar 0ue no todos los autores indican esto como un atributo 0ue debe tener un agente de software. ongevo9 Mantiene su identidad ) estado durante un largo /erodo de tiem/o *relativo al tiem/o 0ue lleva una tarea com/utacional estndar3. Inteligente9 Debe tomar decisiones en base a cierta lgica con el fin de lograr sus ob5etivos ). adems. se es/era 0ue tenga cierto grado de a/rendi6a5e a medida 0ue interacciona con el entorno *aun0ue no todos los autores coinciden con 0ue este sea un re0uerimiento3. +=tendiendo estas atribuciones elementales. se /ueden dar mlti/les sub7 clasificaciones de agentes de software8 )a sea /or su grado de movilidad. /or si son ms deliberativos o reactivos. /or sus roles *ob5etivos3. /or su nivel de inteligencia. /or cuanto colaboran. /or su autonoma. etc. OL4ana %BB?8 Fot1ermel ) Co1l %BBA8 Mrads1a4 %BB@P. 1.1.! - Agente mvil ,n agente mvil de software. es un agente de software con la ca/acidad de moverse en una red8 interaccionando con hosts *nodos de la red3 remotos. obteniendo informacin ) actuando en re/resentacin de su due"o. +l agente. luego de com/letar sus tareas. /uede *) suele3 Ivolver al usuarioJ. OL4ana %BB?P 2a migracin de un agente consiste en la transmisin de su cdigo ) estado /ara 0ue /ueda continuar con su e5ecucin en el destino OFot1ermel ) Co1l %BBAP. Se /ueden diferenciar dos ti/os de migracin. strong migration *se /odra traducir como Imigracin com/letaJ3 ) weak migration *en la misma linea de traduccin. sera Imigracin /arcialJ3. +n la /rimera. se trans/orta com/letamente al agente. inclu)endo su funcionalidad *cdigo3. estado de variables ) el estado de e5ecucin. +n la segunda. solo se trans/orta su funcionalidad ) el estado de sus variables OFot1ermel ) Co1l %BBAP. +n weak migration. /or el 1ec1o de no trans/ortar el estado de e5ecucin. se fuer6a inevitablemente a tener 0ue reiniciar la e5ecucin del agente en cada nuevo host */ero. /osiblemente. a /artir de un estado distinto3 O'uggetta. Picco. ) Eigna %BBAP. Claramente la /rimer alternativa /ermite ma)or fle=ibilidad en la migracin. sin embargo. el segundo m-todo es til cuando no es necesaria dic1a fle=ibilidad ) se desea evitar el traba5o ) tiem/o de transferencia e=tras asociados al guardado ) recu/eracin del estado de la e5ecucin. Cabe diferenciar el conce/to de agente mvil de los de objetos mviles *mobile objects). ejecucin remota *remote execution3 ) cdigo mvil *mobile code). ,n agente mvil. a diferencia de un objeto mvil. acta en re/resentacin de un usuario. 2a ejecucin remota ) el cdigo mvil. son conce/tos ms limitados 0ue el de agente mvil. 2a /rimera consiste en reali6ar un /edido de e5ecucin de una funcionalidad a # Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio un servidor remoto. /ara luego obtener los resultados. +l cdigo mvil. en cambio. consiste en obtenerQenviar un fragmento de cdigo o funcionalidad deQa un servidor remoto /ara ser e5ecutado localmenteQremotamente OLilc1i. Eafaei. ) Camidi #$$AP. +n contraste a lo mencionado. el conce/to de agente mvil inclu)e la movilidad del estado. la funcionalidad ) de uno o varios ob5etivos. Sumado a esto. no solo se limita a un solo IsaltoJ *movimiento de un lugar a otro3 OFot1ermel ) Co1l %BBAP. !l traba5ar con sistemas 0ue utili6an agentes mviles. se suelen diferenciar dos ti/os de entidades9 los places *este es el t-rmino ms ado/tado. sin embargo. en algunas /ublicaciones se lo suele nombrar de otras formas3 ) los agentes *agents). ,n place es una entidad /asiva *no reali6a acciones /or cuenta /ro/ia3 0ue le /rovee a los agentes un entorno de e5ecucin. ,n agente. en cambio. es una entidad activa 0ue /ueden moverse entre places /ara encontrarse con otros agentes )Qo utili6ar recursos /rovedos /or los /rimeros OFot1ermel ) Co1l %BBAP. 1.! - Caractersticas de los agentes mviles de software 1.!.1 - "enta#as $%eredadas& de los agentes de software 2os agentes mviles 1eredan las facilidades ofrecidas /or los agentes de software8 entre las /rinci/ales. se /uede mencionar 0ue sim/lifican las com/le5idades de las tareas distribuidas ) 0ue /ermiten su/erar las limitaciones asociadas al uso de interfaces de usuario de mani/ulacin directa OMrads1a4 %BB@P. !sociado a la resolucin de tareas distribuidas. la /rimer ganancia surge del 1ec1o de 0ue uno /odra delegar en el agente la bs0ueda ) mani/ulacin de los recursos distribuidos necesarios /ara com/letar la tarea asignada. sin necesitar saber cuales son ni como se usan OCarrison. C1ess. ) (ers1enbaum %BB>P. !dems. mediante la coo/eracin de mlti/les agentes distribuidos. surge cierta IinteligenciaJ 0ue es ma)or a la 0ue se /odra tener con el uso de cual0uier agente de forma aislada OL4ana %BB?P. Por otro lado. al usar un agente. uno /uede asignarle ob5etivos. evitndose es/ecificar de forma e=1austiva como deben com/letarse. +sto sim/lifica la reali6acin de tareas res/ecto a las interfaces de usuario de mani/ulacin directa )a 0ue. en estas. uno debe acceder a los distintos elementos ImanualmenteJ /ara reali6ar las acciones necesarias. Como resultado. el usuario /odr delegar en el agente las tareas tediosas 0ue no 0uiere reali6ar OMrads1a4 %BB@P. !dicionalmente. en algunos casos. la visin de un agente como un sistema con intenciones /ermite facilitar la com/rensin del mismo. +s /or este motivo 0ue algunos autores consideran 0ue /ara 0ue algo sea considerado como un agente. debe ser lo suficientemente com/le5o como /ara 0ue no /ueda ser inter/retado a un ; Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio nivel ms bsico. OMrads1a4 %BB@P 1.!.! - "enta#as asociadas a la movilidad 2a movilidad de los agentes en estudio. agrega los siguientes beneficios a los )a mencionados OCarrison. C1ess. ) (ers1enbaum %BB>8 Milo5icic. 2a'orge. ) C1au1an %BBA8 Fot1ermel ) Co1l %BBA8 2ange ) Os1ima %BBBP9 Reducen el uso de la red! /ermitiendo e=/lotar el /rinci/io de /ro=imidad es/acial. +s decir. si los recursos no se /ueden mover cerca de donde deben ser traba5ados *)a sea /or su tama"o o /or otro ti/o de limitaciones3. se mueve el /rocesamiento cerca de los recursos. "ermiten evitar latencias en la red! /reviniendo las demoras debidas a las comunicaciones a ma)or distancia. gracias a 0ue se acerca al agente al recurso 0ue se desea acceder. "ermiten encapsular protocolos! usando un /rotocolo conocido /ara des/la6ar al agente 1acia un host remoto ). una ve6 a1. /osibilitando la utili6acin de /rotocolos /ro/ietarios. "ermiten e#ecutar tareas de manera asincrnica $ autnoma! enviando al agente a Ila redJ /ara 0ue o/ere de forma unilateral. Mientras este se e5ecuta. el usuario /uede desconectarse ). ms tarde. re7conectarse /ara obtener los resultados. %e pueden adaptar de forma din&mica! reaccionando *de forma autnoma3 a los cambios en el entorno ) reorgani6ndose *idealmente3 de manera /tima /ara resolver sus ob5etivos. Facilitan la e#ecucin de tareas distribuidas en plataformas 'eterog(neas! /rove)endo condiciones /timas /ara la integracin de sistemas /or ser. en general. solo de/endientes de su entorno de e5ecucin *) /or lo tanto inde/endientes de las ar0uitecturas ) /rotocolos de trans/orte utili6ados3. )frecen facilidades a la 'ora de construir sistemas robustos $ tolerantes a fallas! a/rovec1ando su 1abilidad /ara Idarse cuentaJ de la e=istencia de situaciones o sucesos desfavorables ) reaccionando ante ellos. Por e5em/lo9 un agente /uede evitar fallas si se mueve ms cerca de los recursos o si se ale5a de un nodo 0ue est entrando en un estado inconsistente *est /or fallar3. "ermiten realizar tareas de forma m&s escalables! e5ecutando un des/liegue dinmico de agentes mviles ). de esta forma. /ermitiendo escalar a/licaciones de manera ms sim/le. +s im/ortante notar 0ue. si bien muc1as de las funcionalidades 0ue facilitan los agentes mviles de software son alcan6ables *) 1asta su/erables3 con m-todos < Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio im/lementados /ara el fin. la gran venta5a del /aradigma estudiado es 0ue las incor/ora a todas ellas OCarrison. C1ess. ) (ers1enbaum %BB>P. 1.!.' - ificultades asociadas a los agentes mviles +ntre los /roblemas asociados a los agentes mviles de software. algunos corres/onden a dificultades asociadas a los agentes de software en general. otros corres/onden a /roblemas conocidos de los sistemas distribuidos ) otros surgen debido a las /articularidades de los agentes mviles. 2os as/ectos t-cnicos se tratarn en la siguiente seccin. /ero a continuacin se mencionan dificultades 0ue van ms all de lo t-cnico. ,na de las cuestiones 0ue debern ser su/eradas antes de 0ue sea /osible una ado/cin masiva de los agentes de software. surge a /artir de ra6ones sociales en lugar de tecnolgicas. Ra 0ue un usuario debe de/ositar su confian6a en el agente /ara 0ue realice la tarea encomendada en su re/resentacin. este no estar dis/uesto a 1acerlo a menos 0ue entienda como actuar el agente o. al menos. 0ue /ueda conocer en un momento determinado cuales son sus intenciones ) las acciones 0ue llevar a cabo. Por otro lado. tambi-n ser necesario 0ue el usuario entienda cuales son las ca/acidades ) limitaciones del agente. en orden de 0ue no e=ceda sus e=/ectativas res/ecto de lo reali6able /or este OMrads1a4 %BB@P. Por otro lado. resulta com/licado definir cuanta res/onsabilidad tendr el usuario /or las o/eraciones 0ue 1iciera el agente con la autoridad otorgada /ara actuar en su nombre. !dems. 1abr 0ue definir 0uien se 1ar cargo de las dis/utas legales 0ue res/ondan a las interacciones entre los agentes. ) 0ue /odran llevar a /er5uicios /ara algn usuario. Por ltimo. es necesario /recisar 0ue reglas de Ieti0uetaJ debe seguir un agente /ara 0ue se /ueda lograr una armona entre los usuarios ) 0uienes brindan los servicios 0ue los agentes consumen OL4ana %BB?P. 1.' - Aspectos t(cnicos asociados con la tecnologa de agentes mviles de software 1.'.1 - Aspectos t(cnicos propios del agente +ntre las dificultades ) re0uerimientos asociados al agente mvil /ro/iamente dic1o. se /uede mencionar9 ,n agente debe degradarse con elegancia *degrade gracefully. es un t-rmino utili6ado /ara significar un deterioro /aulatino a medida 0ue el entorno se vuelve ms inadecuado /ara el sistema3 en orden de ser confiable /ara delegarle tareas OMrads1a4 %BB@P. +l agente debe /oder e5ecutarse sobre distintas ) variadas arquitecturas. > Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio !dems. es necesario 0ue no e=ista el re0uerimiento de 0ue todos los agentes 0ue va)an a coo/erar en la resolucin de la tarea asignada 1a)an sido /re/arados 5untos OFot1ermel ) Co1l %BBAP. ,n agente debe ser ca/a6 de descubrir ) administrar los recursos necesarios /ara cum/lir con su ob5etivo OFot1ermel ) Co1l %BBAP. +l usuario debe saber definir cuando es conveniente usar agentes mviles. +l uso de agentes mviles. si bien cuenta con muc1as venta5as. no es una solucin general. !l igual 0ue con cual0uier tecnologa. 1a) 0ue balancear las venta5as ) desventa5as al momento de tomar la decisin sobre la conveniencia de esta /or sobre otras. +ntre otras cosas. son notables los siguientes /untos9 +l transmitir un agente tiene un costo de comunicacin 0ue. en caso de 0ue la o/eracin a reali6ar no re0uiera muc1o intercambio de informacin. /odra ser ma)or 0ue el de reali6ar la o/eracin directamente desde el cliente o con alguna otra tecnologa. 2as com/le5idades asociadas a la im/lementacin de los mecanismos de seguridad ) control sobre el agente /ara o/eraciones crticas. /ueden re/resentar un ma)or costo 0ue los beneficios otorgados /or el /aradigma O&ansen ) (ar)giannis %BBBP. 1.'.! - Aspectos t(cnicos propios de la plataforma de e#ecucin 2a /lataforma sobre la cual se e5ecutan los agentes. es la encargada de brindarles toda la funcionalidad necesaria /ara 0ue estos /uedan com/letar correctamente sus tareas. Para esto. debe /oder so/ortar la escalabilidad asociada al /aradigma o. al menos. debe degradarse con elegancia de modo de /oder informar a los agentes asociados 0ue no se les /odr ofrecer la calidad de servicios es/erada O&ansen ) (ar)giannis %BBBP. Dada la longevidad 0ue /ueden tener los agentes mviles. es im/ortante 0ue est-n dise"ados /ara minimi6ar el IrastroJ *informacin de control. referencias. etc.3 asociados a ellos al moverse de nodo a nodo OMilo5icic. 2a'orge. ) C1au1an %BBAP. 1.'.' - Aspectos t(cnicos propios de la e#ecucin del agente Re)uerimiento de *nica e#ecucin +exactly-once) ! /artir de la abstraccin de agente mencionada en la introduccin. seria sensato /ensar 0ue. cuando un usuario le designa una tarea. este es/erar 0ue la susodic1a se realice e=actamente una ve6 *es/ecialmente si se est 1ablando de transacciones comerciales3. ! este re0uerimiento se lo suele referir como la semntica o propiedad de exactly-once. +sta es crtica /ara la utilidad de los agentes en ? Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio a/licaciones donde sus acciones modifican el estado de terceros. )a 0ue. de no cum/lirse. no sera seguro su uso. +l fundamento es 0ue /odra suceder de forma aleatoria 0ue un agente se e5ecute una o mlti/les veces. cuando en realidad se es/eraba 0ue solo lo 1aga una ve6. 2a propiedad de exactly-once se defini originalmente /ara los sistemas FPC *Remote Procedure Call3 % como semntica ante el fallo en la e5ecucin de un /rocedimiento. Como e=tensin. en el conte=to de agentes mviles. se debe tener en cuenta 0ue un agente /uede reali6ar una secuencia de /asos en lugar de un nico /rocedimiento OFot1ermel ) Strasser %BBAP. Para /oder res/etar la /ro/iedad mencionada. ser necesario algn mecanismo de e5ecucin /or transacciones ) de tolerancia a fallas. +sto tiene */or lo menos3 dos com/le5idades asociadas9 /rimero. los agentes suelen tener tiem/os de vida largos8 segundo. un agente /uede afectar el estado de terceros 0ue tambi-n debern ser tenidos en cuenta OFot1ermel ) Co1l %BBAP. eteccin de casos de e,cepcin Debido a 0ue los agentes reali6an tareas de /rocesamiento distribuido. sus actividades /ueden estar su5etas a distintas situaciones e=ce/cionales. +ntre las ms 1abituales ) /roblemticas se /uede mencionar9 la terminacin abrupta de un agente *crash3. el surgimiento de agentes hurfanos ) los inter-bloqueos *deadlocks3. Cada una a detallarse a continuacin. ,na terminacin abrupta de un agente *crash3. su/one 0ue el agente funciona correctamente 1asta 0ue en un determinado momento de5a de o/erar /or com/leto *este ti/o de falla es e0uivalente a la 0ue e=iste en los sistemas distribuidos /ara los com/onentes 0ue lo integran. una definicin se /uede encontrar en OEerssimo ) Fodrigues #$$%. %@@P3. +ste caso de e=ce/cin es el considerado ms 1abitualmente en las soluciones de tolerancia a fallas. ,n agente tambi-n /uede fallar /resentando un com/ortamiento indeseable ) /otencialmente /er5udicial /ara su entorno8 sin embargo. este caso se /uede considerar como una forma de ata0ue a la /lataforma de e5ecucin /or /arte de los agentes *defectuosos3 O&ansen ) (ar)giannis %BBBP. +l conce/to de agentes hurfanos *orphans3 se des/rende del de I/rocesamiento 1u-rfanoJ e=istente en la com/utacin distribuida. !ll se llama I/rocesamiento 1u-rfanoJ a una com/utacin 0ue se contina reali6ando cuando el cliente 0ue la solicit *nomenclatura utili6ada en el conte=to de una ar0uitectura cliente7servidor3 )a no est dis/onible /ara recibir los resultados OEerssimo ) Fodrigues #$$%. #<AP. Manteniendo la misma idea. se llama agentes hurfanos a a0uellos cu)a tarea )a no es re0uerida /or la a/licacin 0ue los cre *notar 0ue en la /alabra Ia/licacinJ se % Puede referirse a 1tt/9QQen.4i:i/edia.orgQ4i:iQFemoteS/rocedureScall /ara ms informacin. @ Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio est inclu)endo /osiblemente a un agente I/adreJ3 OMaumann %BB@P. ,n inter-bloqueo o deadlock surge cuando dos o ms /rocesos es/eran /or el otro en una configuracin desde la cual no se /uede /rogresar. ,n deadlock se /uede dar siem/re 0ue se den las siguientes condiciones OEerssimo ) Fodrigues #$$%. ?BP9 !lgunos recursos no son com/artibles ) solo /ueden ser mantenidos /or un /roceso a la ve6. !l menos un /roceso es/era /or recursos adicionales mientras mantiene un recurso no com/artible. ,n /roceso 0ue mantiene un recurso est autori6ado a mantenerlo 1asta 0ue est- listo /ara de5arlo *no se le /uede IsacarJ el recurso al /roceso3. +=iste una cadena circular en donde todos los /rocesos 0ue forman /arte de ella es/eran /or un recurso 0ue tiene el siguiente /roceso de la cadena. +stos casos e=ce/cionales debern ser resueltos /or algn mecanismo de la /lataforma o infraestructura sobre la cual se e5ecutan los agentes 0ue los sufren. debido a 0ue estos no tienen forma de remediarlos /or cuenta /ro/ia. Ra 0ue todos los casos mencionados tienen su e0uivalente en los sistemas distribuidos convencionales. e=isten diversos algoritmos 0ue intentan solucionarlos *o. al menos. aminorarlos3. Sin embargo. dada la naturale6a asincrnica de los agentes mviles ) las intrincadas de/endencias 0ue /ueden e=istir entre ellos *no necesariamente del mismo usuario3. 1a) una in1erente com/le5idad en la tarea O&ansen ) (ar)giannis %BBBP. 1.'.- - Aspectos t(cnicos de la comunicacin Debido a 0ue los agentes mviles funcionan de manera distribuida ) */rinci/almente3 asincrnica. una efectiva ) eficiente comunicacin es /rimordial /ara su funcionamiento ) ado/cin generali6ada O!1n #$%$P. Por otra /arte. en orden de /ermitir intero/eratividad entre distintos agentes de distintos usuarios. debe definirse un lengua5e /ara la interaccin entre agentes ) con las /lataformas de e5ecucin. +ste lengua5e debe ser lo suficientemente fle=ible como /ara no limitar la funcionalidad de 0uienes lo usen ). adems. su semntica no /uede ser ambigua. de modo 0ue todos los usuarios inter/reten lo mismo al anali6ar un mensa5e OMrads1a4 %BB@P. .roblemas por ser distribuidos 2as fallas en la comunicacin a las 0ue estn su5etos los sistemas distribuidos *) 0ue 1eredan los agentes mviles3. se /ueden clasificar en OEerssimo ) Fodrigues #$$%. %@@.%@AP9 'alla /or omisin *omission fault39 estas ocurren cuando 1a) una omisin es/ordica en la emisin de un mensa5e. A Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio 'alla /or cada *crash fault39 este ti/o de falla ocurre cuando un com/onente de5a de o/erar /ermanentemente. 'alla en tiem/o de res/uesta *timing fault39 son fallas en el cum/limiento del tiem/o de envo del mensa5e. 'allas de /remisas *assertive fault39 son en las 0ue un com/onente reali6a una interaccin de una manera no es/ecificada. +stas a su ve6 se sub7 clasifican en9 'allas sintcticas *syntactic fault3 cuando la construccin es incorrecta */or e5em/lo. si se es/era un dgito ) se recibe un letra3 'allas semnticas *semantic faults3 cuando el significado es incorrecto */or e5em/lo. si se es/era un valor entre $ ) %$ ) se recibe un 7%3. 'allas arbitrarias *arbitrary faults o Byzantine faults39 este corres/onde al ti/o ms general de falla. en el cual no se /uede clasificar el com/ortamiento 0ue tendr el com/onente. +n estas /uede suceder 0ue se generen mensa5es es/ontneamente. se enven mensa5es mal formados. se descarten mensa5es. etc. +sts fallas son bien conocidas en los ambientes distribuidos ) e=isten todo ti/o de soluciones a/licables a las mismas. +l detalle de estos ) la /rofundi6acin en los conce/tos asociados 0uedan fuera del alcance del /resente traba5o. se refiere al lector a OEerssimo ) Fodrigues #$$%P 0ue 1ace un tratamiento e=1austivo de estos ) otros /roblemas relacionados con los sistemas distribuidos. .roblemas por movilidad 2as nuevas dificultades 0ue surgen con el /aradigma vienen de la mano con la movilidad. +l 1ec1o de 0ue los agentes mviles /uedan des/la6arse r/idamente de un nodo a otro. /lantea. entre otros. los siguientes as/ectos 0ue deben ser tenidos en cuenta O!1n #$%$8 T1ao74en ) Uei7dong #$$B8 Gme67Martne6. Ilarri. ) Merseguer #$$@P9 Como se locali6a al agente con el cual se 0uiere entablar una comunicacin. Como se trata la informacin 0ue fue enviada a un agente 0ue )a no se encuentra en la ubicacin donde se dirigi el mensa5e. Como asegurar un desem/e"o ace/table /ara la comunicacin entre agentes 0ue /ueden des/la6arse a lugares mu) ale5ados unos de otros. Se refiere al lector a las fuentes citadas /ara /rofundi6ar sobre estos conce/tos. 1.'./ - Aspectos t(cnicos relacionados con la seguridad 2a seguridad en los agentes mviles merece un a/artado es/ecial debido a 0ue es B Introduccin a los agentes mviles de soft4are San Martn. Matas Ignacio una de las /rinci/ales dificultades asociadas a estos ) 0ue. adems. tiene as/ectos 0ue an estn sin resolver OSreedevi et al. #$$BP. 2os autores suelen clasificar las amena6as a la seguridad e=istentes en el /aradigma segn el origen ) el destino de los ata0ues. las categoras resultantes son OFot1ermel ) Co1l %BBAP9 %. !ta0ues entre agentes. #. !ta0ues entre un agente ) una /lataforma de e5ecucin. +stos a su ve6 involucran los casos a. !ta0ues de un agente a la /lataforma. b. !ta0ues de la /lataforma al agente 0ue se e5ecuta en ella. ;. !ta0ues entre /lataformas de e5ecucin. <. !ta0ues de terceros a la /lataforma de e5ecucin. +n t-rminos generales. como base. un agente debe seguir las siguientes reglas de seguridad OP1am ) (armouc1 %BBAP9 2as /artes involucradas en una o/eracin. en /rimera instancia. no /ueden confiar en la otra. 2as decisiones crticas debern ser tomadas en hosts confiables *neutrales /ara la o/eracin3 o. en su defecto. debern tomarse el recaudo suficiente como /ara 0ue estas no se vean influenciadas /or el lugar donde se toman. 2os com/onentes del estado 0ue sean estticos *no cambien3 debern ser /reservados cri/tograficamente. !dems de los nodos individuales. es im/ortante /roteger a los gru/os de hosts contra ata0ues de Iba5o /erfilJ */or e5em/lo. consumo de recursos3 0ue no seran detectados /or cada uno /or se/arado OClaessens. Preneel. ) Eande4alle #$$;P. Se refiere al lector a O&ansen ) (ar)giannis %BBBP donde se 1ace un anlisis detallado de los as/ectos relacionados con la seguridad en el /aradigma en estudio. %$ Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio Captulo ! .lataforma 0A1 para el desarrollo de agentes mviles de software +n este ca/tulo se brinda una introduccin a &!D+ OV&!D+W #$%#P. Se anali6arn sus /rinci/ales caractersticas 0ue son de relevancia /ara el /resente traba5o. !.1 - Antecedente %istrico 2a 'undacin /ara !gentes Inteligentes 'sicos *o 'IP! /or sus sigla en ingl-s3 fue creada en %BB? como una asociacin internacional sin fines de lucro. con el ob5etivo de /roducir una es/ecificacin estndar /ara la tecnologa de agentes 1eterog-neos 0ue interaccionen entre s ) sistemas basados en agentes OV'IP!W #$%#P. 2o 0ue luego se convertira en &!D+. em/e6 a finales de %BBA /ro/ulsado /or Telecom Italia *TI2!M. antes CS+2T3 como una im/lementacin 0ue buscaba validar las es/ecificaciones iniciales creadas /or 'IP! O'. 2. Mellifemine. Caire. ) Green4ood #$$@. #BK;$P. !un0ue TI2!M es el creador del /ro)ecto &!D+. este tiene una comunidad creciente 0ue /artici/a en todo el /roceso de desarrollo de la /lataforma. +sta comunidad se basa en dos /untos /rinci/ales. el 1ec1o de 0ue el /ro)ecto es de cdigo abierto # . ) la e=istencia de una 5unta de gobierno /ara /romover la tecnologa O'. Mellifemine et al. #$$;P. +l /ro)ecto &!D+ se distribu)e ba5o la licencia de cdigo abierto 2GP2 *Lesser !" Public License3 en su versin #.%. +n sntesis. esta /ermite el uso de la tecnologa con cual0uier fin *sea comercial o no38 /ero e=ige 0ue cual0uier traba5o derivado de esta. debe ser /ublicado con la misma licencia OV2GP2 v#.%W #$%#P. +sta asegura 0ue cual0uiera /ueda utili6ar el /roducto ). adems. 0ue todas las correcciones ) me5oras sern retribuidas a la comunidad /ara 0ue otros /uedan a/rovec1arlas. 2a 5unta de gobierno de &!D+ fue creada en Ma)o del #$$; como iniciativa de TI2!M ) Motorola. +sta conforma una organi6acin sin fines de lucro con el ob5eto de /romover la evolucin ) ado/cin de &!D+ como /lataforma /ara el desarrollo de a/licaciones basadas en agentes /or /arte de las industrias de telecomunicaciones mviles. 2a 5unta es una organi6acin abierta a cual0uier com/a"a u organi6acin 0ue tenga un concreto inter-s de negocio en la e=tensin de &!D+. ) 0ue se # Se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQO/enSsource /ara /rofundi6ar sobre este conce/to. %% Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio com/rometa a contribuir a su desarrollo ) /romocin OV&!D+ 7 T1e Moard MembersW #$%#P. !.! - Caractersticas de 0A1 ,n framework es una abstraccin 0ue re/resenta cdigo 0ue /rovee funcionalidades gen-ricas ) 0ue /uede ser reem/la6ado o es/eciali6ado /or el usuario /ara /roveer funcionalidades es/ecificas OVSoft4are frame4or: 7 Ui:i/edia. t1e free enc)clo/ediaW #$%%P. +n ese sentido. &!D+ es un framework de agentes mviles de software. )a 0ue /ermite crear agentes es/ecficos /ara satisfacer las necesidades del usuario 0ue lo utili6a. !dems del framework /ara el desarrollo de agentes. &!D+ ofrece una plataforma donde estos /odrn ser e5ecutados. +n las siguientes subsecciones se /resentarn las /rinci/ales caractersticas de &!D+ en su versin actual *<.#3. con el ob5eto de /roveer una visin general de la 1erramienta. ) /ara luego /oder 1acer un anlisis /ertinente al /resente traba5o. !.!.1 - Componentes +l /rinci/al com/onente 0ue define &!D+ es la plataforma *platform3 0ue re/resenta las funcionalidades necesarias /ara 0ue los agentes /uedan o/erar *notar la e0uivalencia con los places /resentados en la seccin %.%.#3. ,na plataforma en &!D+ est com/uesta /or contenedores *containers3 0ue /ueden estar distribuidos en la red ) /roveen todos los servicios necesarios /ara albergar ) e5ecutar los agentes. 2os agentes son las entidades con las cuales &!D+ re/resenta a los agentes mviles de software O'. Mellifemine. Poggi. ) Fimassa %BBBP. +=iste un contenedor es/ecial conocido como el contenedor principal #main container) 0ue re/resenta el /unto de inicio de la plataforma, es decir. es el /rimer contenedor en ser lan6ado ). adems. todos los dems contenedores 0ue va)an a /ertenecer a la plataforma deben registrase con este O'. 2. Mellifemine. Caire. ) Green4ood #$$@. ;#P. !.!.! - Ar)uitectura Para facilitar los cambios a su ncleo *funcionalidad elemental3. &!D+ utili6a una arquitectura llamada distributed coordinated filters. +sta resulta de una me6cla entre la arquitectura Composition $ilters */ro/uesta en O!:sit et al. %BB<P3 ) el modelo de distribucin de una plataforma en mlti/les contenedores. +n la arquitectura distributed coordinated filters. un contenedor de &!D+ reside /or encima de un nodo* ,n nodo alo5a servicios 0ue im/lementan funcionalidades 0ue son co1erentes entre s *a nivel de plataforma3. Por e5em/lo. en &!D+ e=iste un servicio encargado de todo lo concerniente al envo de mensa5es. otro 0ue engloba todos los mecanismos necesarios /ara la migracin de agentes. etc. OGiovanni #$$<P. %# Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio +n la Ilustracin % se es0uemati6a el mecanismo de /rocesamiento de llamadas a servicios desde un contenedor. +n este mecanismo. toda accin relacionada con un agente es re0uerida */or el contenedor en 0ue este reside3 al servicio res/onsable de im/lementarla. Dic1o servicio /uede resolver la o/eracin directamente o /uede emitir un comando vertical *vertical command3. Cuando se emite este comando. se delega la resolucin del /edido a un com/onente del servicio llamado sumidero fuente o de salida *outgoing%source sink3. !ntes de llegar al sumidero fuente. el comando *vertical3 atraviesa una cadena de filtros de salida *outgoing filters3. Todos los servicios instalados en el nodo /ueden /roveer un filtro con el cual reaccionar *de una manera es/ecifica al servicio3 a cual0uiera de los comandos verticales en el nodo. ,n servicio /uede decidir si generar un comando vertical o no. /ero. cuando lo 1ace. crea un /unto de e=tensinQmodificacin en la plataforma en donde se /uede agregar /rocesamiento e=tra al comando. ,n filtro /uede modificar e incluso blo0uear un comando vertical. ,n servicio /uede estar distribuido entre varios nodos de la plataforma. 2as interacciones entre distintos nodos se llevan a cabo mediante comandos horizontales *horizontal commands3. +l com/onente del servicio 0ue es res/onsable de ace/tar comandos horizontales *entrantes3 se llama slice. !l igual 0ue en el caso de un flu5o saliente. un slice /uede reali6ar la o/eracin relacionada al comando horizontal directamente o /uede emitir un comando vertical. +n caso de 0ue se emita un comando vertical. la resolucin de la o/eracin es delegada a otro com/onente del servicio 0ue se conoce como sumidero destino o de entrada *incoming%target sink3. De manera anloga al caso del sumidero fuente. antes de llegar al sumidero destino. el comando vertical atraviesa una cadena de filtros de entrada *incoming filters3. Todos los servicios instalados en el nodo /ueden /roveer un filtro de entrada. %; Ilustracin 1: Arquitectura Distributed Coordinated Filters Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio !.!.' - .rotocolo de comunicacin entre contenedores Para la comunicacin entre contenedores de la misma plataforma. &!D+ dis/one de un /rotocolo interno de trans/orte de mensa5es *&nternal 'essage (ransport Protocol o IMTP3. +ste es utili6ado tanto /ara el envo de mensa5es entre agentes. como tambi-n /ara el de comandos internos necesarios /ara la administracin de la plataforma distribuida ) el monitoreo del estado de los contenedores O'. 2. Mellifemine. Caire. ) Green4ood #$$@. <%P. !ctualmente se ofrecen dos im/lementaciones de IMTP con &!D+. una 0ue est basada en &ava FMI ) la otra *conocida como 2+!P3 0ue utili6a un /rotocolo /ro/ietario sobre cone=iones TCP. &!D+ /ermite elegir al lan6ar la plataforma cual IMTP se utili6ar ). adems. ofrece un con5unto de configuraciones /ara a5ustar el IMTP a las caractersticas es/ecficas de la red ) dis/ositivos sobre los 0ue se des/liegue la misma O'. 2. Mellifemine. Caire. ) Green4ood #$$@. <%P. !.!.- - Agentes +n &!D+. el conce/to de agente de software se define como Iun /roceso com/utacional 0ue 1abita una plataforma ). /or lo general. ofrece uno o mas servicios 0ue /ueden ser /ublicados mediante una descri/cin del mismoJ O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %>P. Para este framework. un agente tiene las siguientes /ro/iedades /rinci/ales O'. 2. Mellifemine. Caire. ) Green4ood #$$@P9 Tiene una identidad nica /ara toda la plataforma. Feside en un contenedor de la plataforma. Tiene asociado un con5unto de comportamientos *behaviours3 0ue son los 0ue im/lementan la lgica es/ecfica del agente. Se comunica con otros agentes mediante mensa5es asincrnicos *se a1ondar sobre esto ms adelante en esta seccin ) en la #.;.;3. Tanto la definicin como las caractersticas /rinci/ales enunciadas. estn basadas en las mismas definidas en los estndares creados /or 'IP!. sobre la cual se /rofundi6ar en la seccin #.;. Implementacin de agentes &!D+ es un framework im/lementado com/letamente en el lengua5e de /rogramacin &ava O'. Mellifemine et al. #$$A. >%P. ) toda la funcionalidad 0ue se e5ecuta sobre este debe estar im/lementada en el mismo lengua5e. Lo se im/one ninguna restriccin sobre las caractersticas del lengua5e 0ue se /ueden utili6ar. sin embargo. en orden de /oder brindar la funcionalidad es/ecfica asociada a la /lataforma de agentes mviles de software. es necesario tener en cuenta algunas %< Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio /ro/iedades ) seguir ciertos lineamientos O'. Mellifemine. Poggi. ) Fimassa %BBBP9 Toda im/lementacin de agente debe ser una es/eciali6acin de la clase Agent. 2os agentes tienen su /ro/io 1ilo de e5ecucin 0ue lo usan /ara controlar su ciclo de vida ) decidir de forma autnoma cuando se llevarn a cabo las distintas acciones. ,n agente e5ecuta mlti/les comportamientos concurrentemente *al mismo tiem/o3. Sin embargo. es im/ortante tener en cuenta 0ue la metodologa de /rogramacin de e5ecucin *scheduling3 es coo/erativa. esto es. a cada comportamiento se le da la o/ortunidad de e5ecutar 1asta 0ue este decida cederla *indicando 0ue desea blo0uearse3. o 1asta 0ue se com/lete el blo0ue de instrucciones 0ue este defini /ara llevar a cabo en el ciclo de e5ecucin. +l 1ec1o de 0ue los agentes est-n asociado a un nico 1ilo de e5ecucin. /ermite9 el a1orro de recursos *necesarios /ara el mantenimiento de mlti/les 1ilos38 un ms r/ido cambio entre com/ortamientos *res/ecto al 0ue se obtendra si es necesario el cambio entre 1ilos en e5ecucin38 elimina /roblemas de sincroni6acin en el acceso de recursos *al no ser /osible 0ue distintas tareas est-n accediendo al mismo recurso concurrentemente38 ). /rinci/almente. /ermite asegurar 0ue cuando finali6a la e5ecucin de un com/ortamiento. el estado del agente sea bien conocido *no /ueden ocurrir cambios3. +sto ltimo es lo 0ue /osibilita im/lementar la /ersistencia del estado del agente. )a sea /ara continuar luego con su e5ecucin. o /ara reali6ar una migracin 1acia otra ubicacin O'. Mellifemine et al. #$$A8 '. Mellifemine. Poggi. ) Fimassa %BBBP. Sin embargo. como se mencion /reviamente. &!D+ no im/one ninguna restriccin res/ecto a las ca/acidades del lengua5e de /rogramacin &ava ). /or lo tanto. un /rogramador es libre de crear otros 1ilos de e5ecucin segn lo re0uiera. +n este caso. es menester tener en cuenta 0ue las venta5as /reviamente mencionadas )a no seguirn en /ie. Para sim/lificar el desarrollo de las a/licaciones. con &!D+ se /roveen un con5unto de es/eciali6aciones de comportamientos 0ue ofrecen caractersticas es/ecficas. +stos /ermiten reali6ar tareas re/etitivas. de una nica ve6. /eridicas e. incluso. /ara e5ecutar tareas en 1ilos inde/endientes O'abio Mellifemine et al. #$%$P. De esta forma. el /rogramador solo necesita concentrarse en la lgica necesaria /ara su a/licacin ) /uede de5ar 0ue la funcionalidad se e5ecute de acuerdo a algunos de los criterios )a /re7definidos. +=iste gran cantidad de otras facilidades listas /ara usar 0ue se les ofrece a los /rogramadores como /arte de &!D+. sin embargo. su tratamiento en /rofundidad 0ueda fuera del alcance del /resente traba5o. Comunicacin entre agentes Como )a se antici/. en &!D+ la comunicacin entre agentes est basada en %> Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio mensa5es asincrnicos. +n este conte=to. cada agente cuenta con una casilla de mensajes *mailbox3 en la cual el entorno de e5ecucin de &!D+ /one los mensa5es enviados /or otros agentes. 0uienes solo deben indicar el identificador del destinatario O'. Mellifemine et al. #$$AP. Cunado un mensa5e es /uesto en la casilla de mensajes. el agente destinatario es notificado de forma tal 0ue /ueda reaccionar al evento. Sin embargo. dado 0ue se trata de un modelo asincrnico. no est determinado cuando el rece/tor mane5ar el mensa5e e. incluso. /uede no 1acerlo nunca. siendo esto solo determinado /or la lgica interna de dic1o agente O'. 2. Mellifemine. Caire. ) Green4ood #$$@. ?>P. !.' - 2I.A Como se mencion en la seccin #.%. &!D+ es una im/lementacin 0ue res/eta las es/ecificaciones de 'IP!. 'IP! busca la I/romocin de tecnologas ) es/ecificaciones de intero/erabilidad 0ue faciliten la intercone=in /unto a /unto de sistemas de agentes inteligentes en ambientes comerciales e industriales modernosJ OV'IP! 7 Statement of IntentW #$%#P. Para esto. define un con5unto de es/ecificaciones ; 0ue /recisan ar0uitecturas /ara so/ortar la comunicacin entre agentes. lengua5es de comunicacin ) de contenido /ara e=/resar los mensa5es intercambiados. ) /rotocolos de interaccin /ara e=/andir el alcance de un nico mensa5e a transacciones com/letas OV'IP! 7 Statement of IntentW #$%#P. ! continuacin se describen brevemente algunas de las es/ecificaciones creadas /or 'IP! de forma tal de generar un conte=to ) una base /ara el entendimiento de 0ue lineamientos se definen en estas ). /or lo tanto. 0ue criterios siguen las funcionalidades brindadas /or &!D+. !.'.1 - 1specificacin de ar)uitectura abstracta 2a es/ecificacin de ar0uitectura abstracta e=iste con el ob5eto de /roveer un /unto de referencia comn e invariante /ara las im/lementaciones 0ue cum/lan con 'IP! OVO'IP!$$$$%PW #$%#P. +ste documento ca/tura las funcionalidades ms crticas ) sobresalientes de un sistema de agentes. mientras 0ue. a su ve6. /rovee cierto aislamiento ante /e0ue"os e iterativos cambios 0ue /uedan im/actar a las es/ecificaciones sub)acentes *) ms detalladas3. conocidas como realizaciones O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %?P. Con este traba5o se busca fomentar la intero/erabilidad ) reusabilidad de distintas ar0uitecturas concretas 0ue im/lementen sistemas de agentes OVO'IP!$$$$%PW #$%#P. 2a ar0uitectura /ro/uesta en est es/ecificacin define de forma abstracta como dos agentes /ueden locali6arse ) comunicarse entre ellos. registrndose e ; 2as es/ecificaciones generadas /or 'IP! se /ueden acceder en 1tt/9QQ444.fi/a.orgQs/ecificationsQinde=.1tml %? Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio intercambiando mensa5es 0ue re/resentan actos de 1abla < ) estn codificados en un cierto lengua5e de comunicacin entre agentes #agent communication languaje o AC3. +n la ar0uitectura abstracta. adems de los lineamientos bsicos 0ue todo sistema 0ue cum/la con esta debe obedecer. se describen algunos elementos o/cionales. Sin embargo. se debe tener en cuenta 0ue. aun0ue un elemento sea o/cional a nivel abstracto. /uede ser obligatorio en una de las es/ecificaciones ms /articulares *realizacin3 O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %?K#?P. !.'.! - 1specificacin de administracin de agentes 2a es/ecificacin de administracin de agentes a/unta /rinci/almente a definir interfaces estndares /ara acceder a los servicios de administracin de agentes *creacin. registro. locali6acin. comunicacin. migracin ) retiro3 /ero e=clu)e el dise"o interno e im/lementacin de su infraestructura OVO'IP!$$$#;PW #$%#P. +l modelo de referencia consiste en los siguientes com/onentes lgicos OVO'IP!$$$#;PW #$%#P9 Agente9 es un /roceso com/utacional 0ue im/lementa la funcionalidad autnoma ) comunicativa de una a/licacin. 2os agentes se comunican /or medio de un lenguaje de comunicacin entre agentes *!C23. ,n agente /uede ofrecer un con5unto de servicios. /ublicndolos en un modelo de e5ecucin unificado e integrado. mediante el uso de una descripcin de servicio. ,n agente debe tener /or lo menos un due"o ) so/ortar al menos una nocin de identidad. +sta identidad. conocida como identificador de agente *agent identifier o !ID3. eti0ueta al agente de forma tal 0ue /ueda ser distinguido de forma unvoca dentro del universo de agentes. ,n agente /uede ser registrado en una o ms direcciones de trans/orte en las cuales /uede ser contactado. "lataforma de agentes *)gent Platform o !P39 /rovee la infraestructura fsica *m0uina. sistema o/erativo. soft4are de so/orte. etc3 en donde un agente /uede ser des/legado. +l dise"o interno de una !P no est es/ecificado /or 'IP!. Directory Facilitator (DF)9 /rovee un servicio de I/ginas amarillasJ a los agentes. +stos /ueden registrar all sus servicios ) consultarlo /ara encontrar cuales son ofrecidos /or otros. Pueden e=istir mlti/les D' en una !P ) ser configurados /ara 0ue sean visibles como una nica unidad *federados3. +l D' es un com/onente o/cional de la !P. < Puede referirse a 1tt/9QQes.4i:i/edia.orgQ4i:iQTeorXC;X!DaSdeSlosSactosSdeS1abla /ara ms informacin. %@ Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio %istema de administracin de agentes *)gent 'anagement *ystem o !MS39 su/ervisa el acceso ) uso de una !P. +l !MS /ermite a los agentes de la !P obtener */revio registro3 un !ID vlido. !dems. ofrece un servicio de I/ginas blancasJ 0ue /ermite a los agentes consultar la direccin de trans/orte de los otros. +ste es un com/onente obligatorio en la !P ) solo un nico !MS e=iste /or cada una de estas. %ervicio de transporte de mensa#es *'essage (ransport *ervice o MTS39 es el m-todo de comunicacin /or defecto entre agentes de distintas !Ps. Se /rofundi6ar sobre este servicio en la siguiente seccin. !.'.' - 1specificacin del servicio de transporte de mensa#es de agentes 2a es/ecificacin del servicio de trans/orte de mensa5es de agentes se ocu/a del trans/orte de mensa5es entre agentes 0ue interaccionan OVO'IP!$$$?@PW #$%#P. Define el conce/to de canal de comunicacin entre agentes *)gent communication channel o !CC3 0ue es la entidad 0ue /rovee el servicio de trans/orte de mensa5es directamente a los agentes de la !P. +l modelo de referencia /ara el trans/orte de mensa5es est com/uesto /or los siguientes niveles9 %. +l protocolo de transporte de mensajes *'essage (ransport Protocol o MTP3 0ue es usado /ara el trans/orte fsico de mensa5es entre dos !CCs. #. +l servicio de transporte de mensajes *'essage (ransport *ervice o MTS3 0ue es un servicio /rovedo /or la !P. ) 0ue so/orta el trans/orte de mensa5es !C2 entre agentes en una misma o distintas !P. Se indica tambi-n 0ue el uso dentro de una misma !P es o/cional ) /odra elegirse usar cual0uier m-todo */ro/ietario3 de intercomunicacin. ;. +l AC re/resenta el contenido del mensa5e trans/ortado /or el MTS ) el MTP. ,n mensa5e est formado /or dos /artes. el sobre *envelope3 0ue contiene la informacin de trans/orte8 ) el contenido. 0ue est com/uesto /or el mensa5e !C2 del agente. 2os MTP /ueden usar una re/resentacin interna /ara describir el sobre del mensa5e. /ero deben e=/resar los mismos t-rminos. re/resentar la misma semntica ) reali6ar las corres/ondientes acciones asociadas a este. ,n !CC debe transmitir los mensa5es 0ue recibe de acuerdo a las instrucciones de trans/orte contenidas en el sobre del mensa5e8 ) solo es re0uerido 0ue inter/rete el sobre. no as el contenido del mismo. Cada !CC 0ue mani/ule un mensa5e /uede agregar nueva informacin al sobre. /ero no est /ermitida la sobre7escritura de la informacin e=istente. +s vlido. sin embargo. 0ue se re7defina algn /armetro del sobre mediante el agregado de un nuevo /armetro con el mismo nombre. siendo el %A Plataforma &!D+ /ara el desarrollo de agentes mviles de soft4are San Martn. Matas Ignacio mecanismo /ara elegir la versin considerada como actual de/endiente de la sinta=is de cada sobre concreto. %B OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio Captulo ' 345i6 un sistema de componentes din7micos para 0ava +n este ca/tulo se /resenta la tecnologa OSGi ) se da un marco terico de las dificultades de &ava 0ue esta busca solucionar. 'inalmente se cierra el ca/tulo con una com/arativa entre las caractersticas de esta tecnologa ) los re0uerimientos del /aradigma de agentes mviles de soft4are. '.1 - Introduccin a 345i OSGi es un con5unto de es/ecificaciones 0ue definen un sistema de com/onentes dinmicos /ara &ava OVOSGi !lliance Y Tec1nolog) Q T1e OSGi !rc1itectureW #$%#P. +stas es/ecificaciones facilitan un modelo de desarrollo en donde las a/licaciones son conformadas *dinmicamente3 /or una variedad de com/onentes reutili6ables. OSGi /ermite 0ue estos com/onentes oculten el detalle de su im/lementacin de otros mediante el uso de servicios. favoreciendo as la reutili6acin ) el dinamismo. +n las siguientes secciones se describirn las caractersticas /rinci/ales de OSGi. enfati6ando es/ecialmente en a0uellas relevantes /ara el /resente traba5o8 /ero. /revio a esto. se /resenta un conte=to de referencia relacionado a la tecnologa &ava. '.! - Class8oaders de 0ava Para aclarar cual es la ra6n de ser de OSGi. es til entender como funciona el mecanismo de administracin de clases en &ava ) cuales son sus limitaciones. +n &ava se llama class loader a un objeto > res/onsable de cargar clases ? . +ste conce/to est re/resentado /or la 5erar0ua de clases 0ue tienen como ra6 a ClassLoader. ) 0ue son las encargadas de locali6ar o generar los datos 0ue constitu)en la definicin de las clases ) 1acerlas dis/onibles al /rograma 0ue se est e5ecutando. 2a ar0uitectura de class loaders /ermite construir o e=tender una > Conce/to definido en el /aradigma de /rogramacin orientada a ob5etos. /ara ms informacin se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQClassS X#Acom/uterS/rogrammingX#B. ? Conce/to definido en el /aradigma de /rogramacin orientada a ob5etos. /ara ms informacin se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQOb5ectSX#Aob5ect7 orientedS/rogrammingX#B. #$ OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio a/licacin de forma dinmica. mediante la obtencin de recursos *tanto clases como datos3 en tiem/o de e5ecucin OVClass2oader 7 &S+@W #$%%P. '.!.1 - 3b#etivos de la ar)uitectura de Class Loaders 2a ar0uitectura de class loaders de &ava busca cum/lir los siguientes ob5etivos OCallo4a) #$$#. %<K%@P9 Transparencia9 +n general. un /rograma debe /oder ser im/lementado en &ava sin conocimiento e=/lcito de la e=istencia de los class loaders. +,tensibilidad9 +l mecanismo de class loading debe /oder e=tenderse /ara /oder ada/tarse a las necesidades es/ecficas de los usuarios. Capacidad9 Se deben /roveer las funcionalidades necesarias /ara satisfacer los re0uerimientos ms comunes. como ser8 /oder re7cargar en tiem/o de e5ecucin los cambios 0ue se reali6aran al cdigo siendo utili6ado. ) cargar cdigo desde diversidad de fuentes */or e5em/lo. desde la red o un arc1ivo com/rimido3. !dems. este com/ortamiento debe ser lo suficientemente sim/le como /ara 0ue los desarrolladores /uedan determinar desde 0ue fuente son obtenidos los recursos utili6ados. Configurabilidad9 Se debe /oder definir ciertos /armetros 0ue ri5an la obtencin de los recursos /or /arte de la ar0uitectura de class loaders. +sto no solo debe /oder reali6arse /or los desarrolladores del /rograma. sino 0ue tambi-n deben estar dis/onible como configuraciones /ara un administrador *usuario3 del sistema. -ane#o de conflictos de nombres $ diversidad de versiones9 Diversas clases con el mismo nombre deben /oder coe=istir en un /rograma. as como tambi-n distintas versiones de una misma clase. !dicionalmente. se debe /oder com/artir las clases 0ue no cambien frecuentemente. de forma 0ue no sea necesario cargarlas mlti/les veces. %eguridad9 Deben e=istir ciertas garantas de seguridad /ara 0ue sea confiable el traba5o con clases obtenidas desde diferentes fuentes. +n &ava todas las clases guardan una referencia al class loader 0ue las carg OVClass2oader 7 &S+@W #$%%P. !s. cuando una clase 1ace referencia a otra 0ue no fue cargada an. est ltima es obtenida im/lcitamente /or medio del class loader asociado a la /rimera O2ind1olm et al. #$%#. ;<$K;<#P. +ste mecanismo de carga de clases im/lcito es el 0ue /ermite cum/lir con el ob5etivo de transparencia. +l 1ec1o de 0ue se /ueda redefinir la funcionalidad /ara la carga de clases *mediante la es/eciali6acin de la clase ClassLoader3 es lo 0ue brinda gran e,tensibilidad a esta ar0uitectura. ,n e5em/lo de esto es la clase URLClassLoader *dis/onible en la /lataforma &ava desde su versin %.#3. 0ue #% OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio ofrece la capacidad de obtener los recursos desde mlti/les fuentes8 como ser una direccin dentro del sistema de arc1ivos o una direccin remota. +l classpath consiste en un con5unto de rutas *referidas al sistema de arc1ivos3 0ue se configura /ara indicarle a la /lataforma &ava donde debe buscar las clases a utili6ar en el /rograma al momento de e5ecutarlo OVSetting t1e class /at1W #$%#P. +sto /ermite influenciar al mecanismo de class loading sin necesidad de im/lementar o modificar cdigo del /rograma. 'inalmente. el uso de distintos class loaders define un conte=to /ara las distintas clases. +stos /ermiten la coe,istencia de m.ltiples versiones $ clases 'omnimas sin /resentar conflictos *cada una /uede ser bien diferenciada3 ). adicionalmente. asegurando 0ue se dis/ondr de los controles necesarios /ara /oder e5ecutar las a/licaciones de forma segura ) libre de inconsistencias. Sobre estos /untos se /rofundi6ar en la siguiente seccin. '.!.! - Reglas de los Class Loaders Para /osibilitar 0ue las clases cargadas /or diferentes class loaders /uedan ser utili6adas /or un mismo /rograma ). a su ve6. mantener cierta diferenciacin entre cada uno de forma tal 0ue /uedan utili6arse clases 1omnimas sin incurrir en com/ortamientos ines/erados. la ar0uitectura de class loaders *en general3 se rige /or las siguientes reglas OCallo4a) #$$#. #;K#BP9 %. Fegla de consistencia9 ,n class loader nunca carga la misma clase ms de una ve6. #. Fegla de delegacin9 ,n class loader debe consultar a sus antecesores */adres3 antes de cargar una clase */ara verificar si )a fue o /uede ser cargada /or alguno de ellos3. ;. Fegla de visibilidad9 2as clases solo /ueden IverJ otras clases cargadas /or su delegacin de class loaders asociada *conformada /or el class loader 0ue la carg ) los /adres de este3. 2a regla de consistencia establece 0ue. una ve6 0ue un class loader carg una clase. un sucesivo /edido /or dic1a clase obtendr como resultado la instancia )a cargada. +sto /ermite determinar ine0uvocamente 0ue versin de la clase se est utili6ando ) asegurar 0ue esta no cambiar durante la e5ecucin. De no cum/lirse esta /remisa. la estabilidad del /rograma estara en riesgo )a 0ue no se /odra confiar en la estructura de una clase. /udiendo esta cambiar dinmicamente ) sin aviso. Por otro lado. la regla de delegacin /ermite utili6ar clases )a cargadas /or otros class loaders siendo 0ue estas sern com/artidas con todos los 0ue lo tengan como /adre. Por ltimo. la regla de visibilidad brinda la /osibilidad de 0ue coe=istan mlti/les ## OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio versiones *1omnimas3 de la misma clase en un /rograma. +sto es debido a 0ue la versin cargada /or un class loader no ser IvistaJ /or el cdigo 0ue 1a)a sido cargado /or otro class loader ) 0ue no lo tenga como /arte de su delegacin. +sta regla. adems. ofrece ciertas garantas de seguridad. al /revenir 0ue se utilice /or error una clase cargada desde una fuente no confiable *desde otro class loader3. Cabe resaltar 0ue las reglas de delegacin ) visibilidad *en con5unto3 definen 0ue /ara /oder utili6ar distintas versiones de una misma clase desde otra. la ltima necesariamente deber utili6ar una interfa6 comn a ambas *definida /or una su/er7 clase o interfaz @ 0ue im/lementen ) 0ue 1a)a sido cargada /or un class loader comn a la clase usuario ) a las distintas versiones de la clase siendo utili6ada3. '.!.' - ificultades en el uso de los class loaders +l uso de class loaders re0uiere tener /resente algunas cuestiones 0ue. de lo contrario. /odra llevar a com/ortamientos Ie=tra"osJ en la e5ecucin del /rograma. Class loaders concurrentes Se debe tener es/ecial cuidado al intentar cargar clases concurrentemente o al es/eciali6ar la funcionalidad de un class loader de forma tal 0ue /ueda incurrir en llamadas re7entrantes durante los /edidos de carga de clases *es decir. cuando el /roceso de carga de una clase re0uiere 0ue se carguen otras ) estas. a su ve6. llevan a reali6ar otro /edido de carga al class loader original. 0ue an no termina de cargar la clase inicial3. +ste ti/o de com/ortamiento /uede llevar a blo0ueos ines/erados en la e5ecucin del /rograma A . 8as clases %omnimas en distintos class loaders no son la misma clase De la regla de visibilidad antes mencionadas. 0ueda claro 0ue una clase con nombre A */or e5em/lo3 cargada en un class loader. no tiene relacin */ara la /lataforma &ava3 con otra clase 1omnima cargada /or otro class loader. +sto /uede llevar a situaciones en las 0ue. durante la e5ecucin de un /rograma. se generen errores cu)a descri/cin ser *algo similar a3 I) cannot be cast to )+ *lo 0ue se /odra traducir como Ila clase ! no /uede ser inter/retada como la clase !J3. Claramente este ti/o de errores resultan desconcertantes al momento de de/urar los errores /resentes. ) demuestran la com/le5idad al momento de traba5ar *e=/lcitamente3 con diferentes class loaders. @ Conce/to definido en el /aradigma de /rogramacin orientada a ob5etos. /ara ms informacin se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQInterfaceSX#Aob5ect7 orientedS/rogrammingX#B. A Zueda fuera del alcance del /resente traba5o a1ondar en la discusin de este /roblema. Se /uede encontrar ms informacin al res/ecto en OVMultit1readed Custom Class 2oaders in &ava S+ @W #$%%P #; OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio .erdidas de memoria significativas 2as consecuencias de mantener referencias obsoletas *0ue en &ava re/resentan /erdidas de memoria. )a 0ue significan objetos 0ue no sern recolectados /or el mecanismo de garbage collector3 son /articularmente severas cuando se est traba5ando con class loaders. Cada instancia *objeto3 en &ava guarda una referencia a su clase *objeto de ti/o Class3 ). a su ve6. *como se mencion /reviamente3 cada clase guarda una referencia al class loader 0ue la carg. !dems. cada class loader guarda una coleccin con las clases 0ue carg *esto /ermite cum/lir con la regla de consistencia mencionada /reviamente3. Todo esto lleva a 0ue la sola e=istencia de una instancia *obsoleta o no3 de una clase. /revenga la liberacin de la memoria asociada a todas las clases cargadas /or su delegacin de class loader asociada OCallo4a) #$$#. ;>K;?P. 8a regla de delegacin puede romperse +Context Class Loader9 2a regla de delegacin *enunciada /reviamente3 determina 0ue un class loader debe re0uerir a su /adre la carga de una clase antes de intentar cargarla /or su cuenta. Sin embargo. &ava /rovee un mecanismo alternativo /ara la carga de clases. Mediante este. se /uede asociarle a un (hread B *1ilo de e5ecucin de un /rograma3 un class loader *conocido como context class loader) a utili6ar /ara la carga de clases re0ueridas /or dic1o hilo. 2a /resencia de este mecanismo alternativo agrega una nueva variable al momento de anali6ar ) de/urar un /rograma OCallo4a) #$$#. <BK >>P. '.' - Introduccin a 345i : sus conceptos principales Teniendo un ma)or conte=to referente a las dificultades 0ue /uede traer el traba5ar con el mecanismo de class loading de &ava. resulta ms claro el /or0ue /odra /referirse el uso de una tecnologa 0ue /ermita abstraerse del mismo. ,na tecnologa 0ue e=tiende la funcionalidad de &ava ) 0ue *comnmente3 /ermite ignorar las dificultades del class loading. es OSGi. +n esta seccin se dar una breve introduccin a OSGi ) en las subsiguientes se /rofundi6ar en los as/ectos ms relevantes de este. +n t-rminos generales. un mdulo re/resenta un lmite lgico. de tal forma 0ue su im/lementacin interna est oculta del e=terior ) solo se e=/one *o/cionalmente3 una interfa6 bien definida a /artir de la cual se /uede interactuar con -l. 2os mdulos son /ie6as inde/endientes */ueden e=istir sin necesidad de otros3 ) reutili6ables B Para ms informacin sobre este conce/to. se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQT1readSX#Acom/utingX#B ) 1tt/9QQdocs.oracle.comQ5avaseQ@QdocsQa/iQ5avaQlangQT1read.1tml. #< OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio *utili6ables en distintas combinaciones con otros mdulos3. ! /artir de la definicin de OSGi dada al comien6o de este ca/tulo. se /uede observar 0ue su ob5etivo es facilitar la im/lementacin de sistemas modulares *0ue utili6an mdulos3. +n OSGi el conce/to de mdulo esta re/resentado /or lo 0ue se conoce como bundle. ) estos enca/sulan la funcionalidad desarrollada /or los usuarios de OSGi OT1e OSGi !lliance #$%#a. #;P. !l entorno de e5ecucin 0ue im/lementa ) /rovee la funcionalidad de OSGi se lo conoce como el framework. +ste esta com/uesto /or tres ca/as /rinci/ales OF. Call et al. #$%$. BK%#P9 /* Capa de mdulos9 se ocu/a del em/a0uetado ) com/articin del cdigo. +s en esta en la 0ue se define el conce/to de bundle. #. Capa de ciclo de vida0 /rovee la funcionalidad de administracin en tiem/o de e5ecucin de los bundles ) el acceso al framework sub)acente. 1* Capa de servicios9 facilita la interaccin ) comunicacin entre los mdulos. 2a arquitectura de OSGi est re/resentada en la Ilustracin # OVOSGi !lliance Y Tec1nolog) Q T1e OSGi !rc1itectureW #$%#P. Gracias a la arquitectura en ca/as. es /osible utili6ar las ca/as inferiores sin conciencia de las su/eriores. Por e5em/lo. es factible utili6ar el conce/to de bundle *ca/a de mdulos3 sin necesidad de utili6ar el com/ortamiento dinmico ofrecido /or la ca/a de ciclo de vida. !dems del framework. OSGi define un con5unto de servicios est&ndares *en lo 0ue se conoce como la es/ecificacin Compendium3 0ue ofrecen funcionalidades generales. como /or e5em/lo. logging ) configuracin de /referencias OVOSGi !lliance Y Tec1nolog) Q T1e OSGi !rc1itectureW #$%#P. #> Ilustracin 2: Arquitectura en capas de OSGi Sistema Operativo Mquina Virtual de Java Entorno de Ejecucin Mdulos Ciclo de Vida Servicios Bundles S e g u r i d a d OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio '.- - 8imites de la modularidad en la plataforma 0ava 2a /lataforma &ava /rovee las abstracciones de clase *0ue re/resentan el mismo conce/to de la /rogramacin orientada a ob5etos3. paquete *agru/acin de clases3 ) arc1ivo 2AR *agru/acin de clases. paquetes. recursos e informacin adicional en un arc1ivo3 0ue se /ueden reconocer como mdulos *cum/len con la definicin dada /reviamente3 OGosling et al. #$%#. %?;.%@B8 F. Call et al. #$%$. >K?P. Sin embargo. la fle=ibilidad de estos mdulos es limitada en cuanto a lo 0ue /uede llegar a ser necesario en el desarrollo de a/licaciones. ! continuacin se re/asarn algunos as/ectos claves 0ue /ermitirn /rofundi6ar en el entendimiento de 0ue funcionalidades OSGi busca com/lementar. '.-.1 - 4oporte para la definicin de interfaces e,portadas +n &ava el nivel de acceso a las funcionalidades brindadas /or una clase est dado /or distintos modificadores de accesibilidad resumidos en la Tabla % OGosling et al. #$%#. %>#K%>BP. Si bien estos modificadores /ermiten es/ecificar con gran detalle la accesibilidad a la interfa6 ofrecida /or una clase. esto no se e=tiende a nivel de paquete. Por e5em/lo. si dos clases /ertenecen lgicamente a distintos paquetes ) se 0uiere /ermitir 0ue com/artan cierta funcionalidad entre ellas. la nica forma de resolverlo sera definiendo 0ue dic1as funciones sean /blicas. +l inconveniente reside en 0ue. de esta forma. estas tambi-n sern IvisiblesJ /or cual0uier otro paquete o clase. +sto tiene el efecto adverso de 0ue. al no 0uedar e=/licita la de/endencia entre los distintos mdulos. /uede dificultar la evolucin de las a/licaciones OF. Call et al. #$%$. >P. OSGi com/lementa las ca/acidades de la /lataforma estndar de &ava /ermitiendo definir a nivel de bundle 0ue paquetes son visibles *e=/ortados3 /ara los dems. +n adicin al nombre del paquete e=/ortado. se /ueden definir distintos atributos /ara detallar e=actamente cual es la funcionalidad ofrecida. +stos atributos /ueden ser9 la versin del paquete8 e incluso 1asta /ares nombre7valor #? Tabla 1: Modificadores de accesibilidad para la funcionalidad ofrecida por una clase en a!a" en funcin de quien puede acceder a dic#a funcionalidad$ %&ac'a(e) se encuentra entre par*ntesis para indicar que no se trata de un +odificador" es la opcin por defecto cuando no se indica nin(uno$ Modificador Pro/ia Clase Pa0uete Subclases Otras Clases Permitido Permitido Permitido Permitido Permitido Permitido Permitido Pro1ibido Permitido Permitido Pro1ibido Pro1ibido Permitido Pro1ibido Pro1ibido Pro1ibido public protected */ac:age3 private OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio arbitrarios. cu)o significado esta dado /or una convencin con el usuario de la interfa6 OT1e OSGi !lliance #$%#a. ;@K>%P. '.-.! - 4oporte para la definicin de interfaces importadas +n &ava la forma general /ara definir 0ue clases estn dis/onibles /ara ser utili6adas /or una a/licacin es mediante el classpath *descri/to en la seccin ;.#.%3. +ste mecanismo no favorece la modularidad )a 0ue no /ermite diferenciar entre los distintos recursos incluidos en el classpath *0ue. en ltima instancia. sern los 0ue se utili6arn en la a/licacin3. +sto dificulta el reconocimiento de las de/endencias 0ue utili6ar una a/licacin al momento de e5ecutarse. Por e5em/lo. ante la /resencia de dos versiones distintas de una de/endencia. el mecanismo de class loading obtendr la /rimer instancia *de acuerdo al orden de inclusin en el classpath3 del recurso buscado. +ste /roblema es tan 1abitual 0ue incluso tiene nombre /ro/io. classpath hell *o. similar. &!F hell3 OF. Call et al. #$%$. @P. !s como OSGi /ermite definir con gran detalle la interfa6 e=/ortada /or un bundle. tambi-n /ermite es/ecificar las de/endencias de estos. Por e5em/lo. se /uede indicar 0ue un bundle solo /uede funcionar con un rango es/ecfico de versiones de un paquete. o con un paquete 0ue 1a)a sido e=/ortado con un un atributo cu)o valor es el es/ecificado. 2uego ser el framework el 0ue se encargar de 0ue nicamente est-n dis/onibles en la a/licacin a0uellos bundles 0ue tengan sus de/endencias satisfec1as OT1e OSGi !lliance #$%#a. >%K>#P. '.-.' - 4oporte para el despliegue : mantenimiento de las aplicaciones Como se mencion en secciones anteriores. en la /lataforma estndar de &ava no 1a) forma de des/legar una a/licacin ) confiar 0ue sus de/endencias sern satisfec1as e=actamente con los mdulos re0ueridos. Si en donde se desea des/legar la a/licacin e=isten otras versiones de las de/endencias. /uede darse un /roblema del ti/o classpath hell *mencionado /reviamente3. Por otro lado. a menos 0ue se recurra a im/lementaciones es/eciali6adas 0ue utilicen e=/lcitamente mecanismos de class loading *con todos sus /otenciales inconvenientes. segn lo descri/to en la seccin ;.#.;3. no 1a) forma de reali6ar mantenimiento *correccin de errores. actuali6acin de versiones o de/endencias. etc.3 sin detener la a/licacin. Ra se coment 0ue el framework de OSGi asegura 0ue un bundle solo /odr ser utili6ado /or una a/licacin si sus de/endencias son e=actamente satisfec1as. /ero adems de esto. es /osible reem/la6ar bundles sin necesidad de detener la a/licacin *ni el framework3. Incluso se asegura 0ue. mientras se satisfagan las de/endencias. no im/orta cual bundle ofre6ca la interfa6 re0uerida. +sto /ermite e=/lotar al m=imo la modularidad de la im/lementacin. #@ OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio './ - Capas de 345i +n la introduccin a la tecnologa OSGi *ver seccin ;.;3 se mencion 0ue el framework est dividido en tres ca/as /rinci/ales. la de mdulos. la de ciclo de vida ) la de servicios. +n esta seccin se /rofundi6ar sobre cada una de ellas. './.1 - Capa de mdulos +Module Layer9 2a ca/a de mdulos es la 0ue define el conce/to de bundle. Para &ava un bundle es un arc1ivo &!F con metadatos *datos acerca de los datos3 adicionales. Mientras 0ue tradicionalmente todo el contenido de un &!F es com/letamente visible /ara el resto de las clases de la a/licacin. en OSGi nada es visible a menos 0ue sea e,portado */or medio de los metadatos3 e=/lcitamente. Para 0ue un bundle /ueda acceder a la funcionalidad ofrecida /or otro. debe importar e=/lcitamente las /artes 0ue desee utili6ar. +n &ava *generalmente3 un &!F enca/sula todas las clases 0ue conforman la a/licacin. OSGi. en cambio. busca un enfo0ue ms modular. en el cual la a/licacin se arma a /artir de un con5unto de bundles interconectados /or sus de/endencias e interfaces ofrecidas. ) 0ue /ueden ser com/artidos /or varias a/licaciones. +l /roceso /or el cual los distintos bundles son interconectados segn los paquetes 0ue e=/ortan e im/ortan. es nombrado como resolucin de bundles. 2as intercone=iones reali6adas en la resolucin de los bundles son conocidas como wiring. OT1e OSGi !lliance #$%#a. ;@K;BP './.! - Capa de ciclo de vida +Lifecycle Layer9 +sta ca/a es la 0ue define los distintos estados en los 0ue se /uede encontrar un bundle ). adems. /ermite administrarlos *re0uerir el cambio de su estado3. +s gracias a esta ca/a 0ue las a/licaciones /ueden ser e=tendidas *mediante el agregado de nuevos bundles3 )Qo actuali6adas *mediante el cambio o remocin de bundles3 dinmicamente *sin necesidad de detenerla3. ,n bundle /uede ser instalado. actualizado. iniciado. detenido ) desinstalado del framework. +stas transiciones 5unto con los /osibles estados de un bundle se es0uemati6an en el diagrama de estados en la Ilustracin ;. #A OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio 2os /osibles estados de un bundle son OT1e OSGi !lliance #$%#a. ABKB$P9 /* Instalado 3installed40 Cuando un bundle es agregado al framework, este comien6a en el estado instalado. +ste indica 0ue el framework debe verificar las de/endencias del bundle antes de 0ue /ueda /asar a estar resuelto. 5* Resuelto 3resolved40 ,n bundle solo /uede estar en este estado mientras todas sus de/endencias est-n satisfec1as. Para /asar un bundle al estado resuelto. el framework verifica si los bundles )a resueltos satisfacen *e=/ortan3 los re0uerimientos del /rimero- +s factible 0ue otros bundles deban ser resueltos /revio a 0ue el bundle siendo verificado /ueda satisfacer sus de/endencias. +n este caso. se resolvern /rimero estos antes de com/letar la resolucin del original. Cabe resaltar 0ue. si /or algn motivo. un bundle de5a de tener sus de/endencias satisfec1as. este volver al estado instalado *caso /osible debido a la naturale6a dinmica de OSGi3. 1* Iniciando 3starting40 +ste es un estado tem/oral /revio a 0ue el bundle sea iniciado. +n este. el framework se encarga de 0ue se creen todos los recursos /ara 0ue el bundle /ueda activarse. 6* Activo (active): +n este estado el bundle esta iniciado ) dis/onible /ara cum/lir su funcin. 7* Deteni(ndose 3stopping40 +ste es un estado tem/oral en el cual el framework libera los recursos 0ue se tomaron /ara /oder iniciar el bundle. 8* Desinstalado 3uninstalled40 +l bundle )a no est dis/onible /ara las a/licaciones. Para 0ue /ueda dis/onerse nuevamente de este. debe ser #B Ilustracin ,: Ciclo de !ida de un bundle OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio /rimero *e=/lcitamente3 instalado ) luego resuelto. ,na accin de actualizar *update3 le indica al framework 0ue debe IrecargarJ el bundle *en general. /ara obtener una versin ms actuali6ada3. +sto obligar al framework a tener 0ue verificar las de/endencias del nuevo bundle ). as. /oder /asarlo nuevamente al estado en 0ue se encontraba /revio a la actuali6acin. Cuando se actualiza un bundle del cual otros de/enden *im/ortan paquetes3. el framework carga la nueva versin. /ero tambi-n de5a los paquetes de la anterior 0ue estaban siendo usados OT1e OSGi !lliance #$%#a. B>KB?P. +sto se 1ace con el fin de /revenir una reaccin en cadena 0ue 1ara 0ue todas los bundles de/endientes de este tengan 0ue volver a ser verificados al instante. lo cual /odra llevar a 0ue otros bundles deban tambi-n ser verificados. ) as sucesivamente. 2a accin de refrescar *refresh) le indica al framework 0ue realice nuevamente la verificacin de de/endencias *a1ora si. /udiendo llevar a una reaccin en cadena 0ue afecte a otros bundles adems del 0ue est siendo refrescado3. +sto /ermite 0ue las versiones obsoletas de un bundle 0ue fue actualizado. /uedan ser liberadas8 ) 0ue los bundles 0ue de/endan de esta *0ue son los 0ue se estn refrescando3. /asen a utili6ar la versin actual. Cabe mencionar 0ue la versin obsoleta solo se mantiene relacionada a los bundles 0ue $a estaban resueltos *o activos3. siendo 0ue un nuevo bundle solo /odr asociarse a la versin actuali6ada OT1e OSGi !lliance #$%#a. B>K B?.%<#K%<;P. Cuando un bundle es instalado en el framework. se le asigna un identificador nico 0ue no cambia durante todo su ciclo de vida *solo cambiar si este es desinstalado ) vuelto a instalar3. +ste identificador es el 0ue /ermite administrarlo dentro del framework. !dems de /or medio de este identificador. el bundle /uede ser identificado /or lo 0ue se conoce como location8 0ue es un nombre asignado /or 0uien lo instal *normalmente relacionado con la direccin de origen o ,F2 desde donde se lo obtuvo. aun0ue esto no es obligatorio3. Por ltimo. el /ar symbolic name *nombre simblico3 ) versin del bundle. tambi-n sirve como identificador unvoco del mismo OT1e OSGi !lliance #$%#a. ABP. 2os bundles no solo /ueden ser administrados de manera e=terna a la a/licacin. internamente el framework es re/resentado /or un conte!to 0ue es mediante el cual la a/licacin *otros bundles3 /uede modificar los estados de los /rimeros OT1e OSGi !lliance #$%#a. %$$P. Dic1o contexto tiene una interfa6 estandari6ada. /or lo 0ue se asegura la /ortabilidad de las a/licaciones inde/endientemente de sobre 0ue im/lementacin del framework se e5ecuten. './.' - Capa de servicios +Service Layer9 2a ca/a de servicios /rovee la funcionalidad necesaria /ara crear a/licaciones basadas en el uso de servicios. +n OSGi cada bundle /uede registrar una o ms interfaces 0ue re/resentan un contrato de servicio. 2uego. todo bundle 0ue se e5ecute en el mismo framework /uede acceder a los servicios registrados. sin necesidad de ;$ OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio conocer 0ue bundle o bundles los /roveen OT1e OSGi !lliance #$%#a. %%>P. Como los bundles. los servicios /ueden a/arecer ) desa/arecer dinmicamente del framework. +sto da una gran fle=ibilidad ) dinamismo a la funcionalidad ofrecida /or esta ca/a. )a 0ue /ermite 0ue uno o ms bundles ofre6can un servicio determinado e. incluso. 0ue se utilicen distintas im/lementaciones *de forma trans/arente3 con el /aso del tiem/o. +n OSGi los bundles /ueden registrar. buscar ) ser notificados ante los cambios *registracin ) desregistracin3 en los servicios re0ueridos OT1e OSGi !lliance #$%#a. %%;P. 2a es/ecificacin de un servicio est caracteri6ada /or un con5unto de propiedades. algunas de las cuales estn estandari6adas ) otras son es/eciales /ara cada uno. Mediante la es/ecificacin de filtros. los bundles /ueden referirse a los servicios en los cuales estn interesados *)a sea /ara la bs0ueda o rece/cin de notificaciones3 OT1e OSGi !lliance #$%#a. %%<K%#$P. '.; - Relacin de 345i con el paradigma de agentes mviles de software Con la base de conocimiento sobre la tecnologa OSGi reali6ada 1asta el momento. es /osible anali6ar cuales son sus virtudes ) 1acer una contra/osicin con el /aradigma de los agentes mviles de software. +n esta seccin se busca destacar 0ue las ca/acidades de OSGi son adecuadas /ara la im/lementacin de la funcionalidad necesaria /ara un framework 0ue so/orte el conce/to de agente mviles de software. '.;.1 - <odularidad OSGi est ntimamente relacionado con desarrollos modulares. 2os bundles en OSGi re/resentan el conce/to de mdulo. donde lo /rimordial es una interfa6 bien definida. Con la definicin de mdulo utili6ada. es /osible caracteri6ar a un agente de software como un mdulo en si mismo. 2os agentes son entidades auto7contenidas 0ue e=/onen un com/ortamiento ). desde el /unto de vista de otros agentes. no im/orta nada ms 0ue las interacciones 0ue /ueden reali6arse entre ellos *un agente no de/ende de como funciona otro. sim/lemente le interesa 0ue es lo 0ue /uede 1acer o 1ace3. Por como modela &!D+ los agentes. se/arando los comportamientos *re/resentados /or los behaviours3 ) la entidad en si *re/resentado /or los agents3. en ocasiones es /osible tomar a cada uno. o un subcon5unto de ellos. como mdulos individuales. Si los comportamientos no estn fuertemente aco/lados a la im/lementacin /articular del agente *es decir. cum/le funciones comunes a varios ti/os de agentes3. estos /ueden ser tomados como mdulos 0ue estn dis/onibles ;% OSGi9 un sistema de com/onentes dinmicos /ara &ava San Martn. Matas Ignacio /ara ser com/artidos entre distintos agentes. '.;.! - inamismo 2a ca/a de ciclo de vida de OSGi /ermite insertar ) eliminar dinmicamente los bundles del framework. +sta misma fle=ibilidad es necesaria /ara un framework 0ue /ermita im/lementar el /aradigma de agentes mviles. )a 0ue su /rinci/al caracterstica es 0ue /ueden des/la6arse de un lugar a otro de forma dinmica *siendo necesario 1acer dis/onible su definicin cuando esto ocurre3. '.;.' - Control de dependencias 2a tecnologa OSGi /ermite es/ecificar 0ue de/endencias tiene un bundle ). luego. des/legar la a/licacin teniendo la seguridad de 0ue solo ser admisible /or el framework si se cum/len e=actamente los re0uerimientos 0ue esta im/one. +l tener esta seguridad es /rimordial /ara un conte=to como el de los agentes mviles de software. donde. /or su naturale6a dinmica. /ueden coe=istir mlti/les definiciones asociadas a distintos /roveedores. '.;.- - .ortabilidad OSGi est dise"ado /ara ser liviano *la versin < del framework /uede ser im/lementada ) contenida en un &!F de a/ro=imadamente ;$$ :iloM)tes OVOSGi !lliance Y !bout Q Menefits of ,sing OSGiW #$%%P3 ) funcionar en mlti/les /lataformas *gracias a 0ue est im/lementado en &ava3. as como tambi-n no de/ender de un framework /articular *siem/re 0ue el framework cum/la con el estndar. toda a/licacin estndar /uede ser e5ecutada en -l sin temor a incom/atibilidades3. +stas caractersticas coinciden con las necesidades de la infraestructura 0ue aco5a a los agentes mviles. /rinci/almente /or0ue es menester 0ue estos /uedan des/la6arse /or la ma)or cantidad de entornos /osibles *de modo de no limitar su movilidad3. ;# Servicio de movilidad en &!D+ San Martn. Matas Ignacio Captulo - 4ervicio de movilidad en 0A1 +n este ca/tulo se describen los servicios de &!D+ asociados con la movilidad de los agentes de software. Se discutir su im/lementacin actual ) algunas de sus limitaciones 0ue ins/iraron el desarrollo del /resente traba5o . -.1 - Introduccin a los servicios de movilidad de 0A1 &!D+ cuenta con dos servicios de movilidad. uno 0ue /ermite migrar agentes entre contenedores de la misma plataforma *conocido como servicio de movilidad intra9 plataforma3 ) otro 0ue /ermite trans/ortar agentes entre diferentes plataformas *servicio de movilidad inter9plataforma o I"-% /or su sigla en ingl-s3. +l /rimero se encuentra incluido como /arte del ncleo /rinci/al del framework. en cambio. el ltimo corres/onde a un com/lemento *plug.in3 0ue se /uede agregar al framework. /ero 0ue no se inclu)e con la versin /or defecto. -.! - 4ervicio de movilidad intra- plataforma -.!.1 - 5eneralidades +l Iservicio de movilidad intra7plataformaJ o Iservicio de movilidad de agentesJ. como se lo nombra en la literatura O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %%@K %%BP. es un servicio *ver seccin #.#.#3 0ue /rovee a los agentes de software la ca/acidad de moverse entre distintos contenedores dentro de la misma plataforma. Como este servicio /rovee nicamente movilidad dentro de una misma plataforma. es /osible im/lementar la comunicacin de forma eficiente ) /ro/ietaria. /ermitido /or0ue 'IP! no re0uiere el uso de /rotocolos estndar en esta situacin *ver ca/tulo #.;3. +ste servicio a/rovec1a la fle=ibilidad del Iservicio de comunicacin entre contenedoresJ de &!D+ *ver seccin #.#.;3 /ara reali6ar la transferencia de datos necesaria /ara la migracin de agentes. De esta forma. se logra el ob5etivo sin necesidad de agregar un nuevo modelo de trans/orte de informacin. -.!.! - Implementacin actual 2a siguiente descri/cin est basada en O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %%@K%%BP ) en el cdigo fuente de &!D+. dis/onible en OV&!D+W #$%#P. Cuando el Iservicio de movilidad de agentesJ recibe el re0uerimiento de migrar un agente a otro contenedor. la /rimera accin 0ue se lleva a cabo es modificar el estado ;; Servicio de movilidad en &!D+ San Martn. Matas Ignacio del agente /ara indicar 0ue se encuentra Ien transitoJ. +sto causa. a su ve6. 0ue el agente de5e de e5ecutar sus actividades *im/idiendo 0ue se siga /rogramando la activacin de sus comportamientos3. de forma tal 0ue /ueda ser migrado a destino. !ntes de trans/ortar al agente a destino. el Iservicio de movilidad de agentesJ genera un comando vertical ofreciendo un /unto de e=tensin *de acuerdo a la ar0uitectura de distributed coordinated filters. introducida en la seccin #.#.#3 ) /ermitiendo saber al resto de los servicios 0ue el agente est a /unto de cambiar de contenedor. Como se mencion en la introduccin a agentes mviles *seccin %.%.#3. la migracin de un agente debe involucrar la transmisin de su cdigo ) estado. /udiendo ser este ltimo solo el estado de las variables *weak migration3 o tambi-n el estado de e5ecucin *strong migration3. +n &!D+. un agente se migra nicamente cuando no se est e5ecutando ninguno de sus comportamientos asociados. Sin embargo. dado 0ue el estado de las variables de los comportamientos ) del agente re/resentan cual es el siguiente /aso en su e5ecucin. /or ms 0ue no se trans/orte el estado de e5ecucin per se. se dice 0ue el ti/o de migracin es not.so./eak O'. Mellifemine et al. #$$AP. Para la migracin ) reconstruccin del agente en destino. se usa el mecanismo de seriali6acin ofrecido /or &ava. +ste /ermite /ersistir un objeto como un arreglo de b)tes /ara luego. con esta informacin ) la definicin de la clase asociada. /oder crear otra instancia 0ue re/resente el mismo estado OV&ava Ob5ect Seriali6ation S/ecification9 ContentsW #$%#P. Como /arte de la migracin. la informacin seriali6ada es transmitida mediante un comando horizontal al contenedor destino. Como el contenedor destino /uede estar ubicado en una m0uina virtual de &ava distinta al contenedor de origen. es necesario asegurarse 0ue las mismas clases 0ue utili6aba el agente en la fuente est-n tambi-n dis/onibles en la meta. +sto es re0uerido /ara 0ue /ueda llevarse a cabo de forma correcta el /roceso de deseriali6acin del estado del agente. Para lograr esto. el Iservicio de movilidad de agentesJ usa una es/eciali6acin de un class loader *ver seccin ;.#3 0ue im/lementa la ca/acidad de re0uerir clases de un contenedor remoto mediante el uso de comandos horizontales. Dic1as clases son /edidas unicamente cuando son necesitadas ) deben ser cargadas en el corres/ondiente class loader. Se mantiene un class loader inde/endiente asociado a un /ar Onombre de agente . identificador de contenedor origenP. lo 0ue /ermite evitar conflictos entre distintas clases 1omnimas 0ue definan a diversos agentes. 'inalmente. cuando el agente es correctamente deseriali6ado. un 1ilo es creado /ara e5ecutarlo. 2uego. se da inicio al /roceso de IreinicioJ del agente. 0ue es el encargado de activar su funcionamiento en el nuevo contenedor. Por ltimo. todos los mensa5es 0ue se 1ubieran generado con destino al agente migrado. son redirigidos a su nueva ubicacin. /ermitiendo 0ue el contenedor origen /uede indicar 0ue la migracin fue e=itosa ) eliminar su co/ia local del agente. De esta forma se com/leta ;< Servicio de movilidad en &!D+ San Martn. Matas Ignacio el /roceso de migracin. +n la Ilustracin < se /resenta un es0uema del /roceso reci-n descri/to. Como informacin adicional. cabe mencionar 0ue &!D+ ofrece. adems de la ;> Ilustracin -: .sque+a de proceso de +i(racin intra/platafor+a Servicio de movilidad en &!D+ San Martn. Matas Ignacio ca/acidad de migrar un agente de un contenedor a otro. la /osibilidad de clonar al agente en otro contenedor. +sto es. crear una co/ia 0ue solo difiera en su identificador. +l /roceso de clonacin es e0uivalente al de migracin. difiriendo unicamente en 0ue se evita eliminar la instancia local del contenedor de origen. -.' - 4ervicio de movilidad inter- plataforma -.'.1 - 5eneralidades +l Iservicio de movilidad inter7plataformaJ *&P'*3 se distribu)e como un com/lemento de &!D+ 0ue /uede ser instalado con el ob5eto de ofrecer a los agentes la ca/acidad de des/la6arse entre distintas plataformas [!bout " #$%&' ()*(+. 2a comunicacin entre plataformas *necesaria /ara la migracin3 fue im/lementada intentando mantener com/atibilidad con la es/ecificacin de 'IP! /ara el Iso/orte de movilidad en la administracin de agentesJ *cabe aclarar 0ue fue definida como obsoleta en Ma)o del #$$# OVO'IP!$$$A@PW #$%#P3. Solo se reali6aron algunos cambios 0ue /ermitieron diferenciar la fase de trans/orte del agente res/ecto de la de activacin en destino O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %%BK%#%P. Para la transferencia del agente a la plataforma destino. se utili6a el servicio de trans/orte de mensa5es im/lementado en &!D+ *MTS3. 0ue cum/le con la es/ecificacin de 'IP! /ara el trans/orte de mensa5es de agentes *ver seccin #.;.;3. +sto tiene como venta5as 0ue no es necesario un canal de transmisin adicional entre las plataformas ). /or otro lado. 0ue cual0uier plataforma 0ue cum/la con dic1a es/ecificacin de 'IP! /odr /rocesar los mensa5es involucrados *inde/endientemente de si es ca/a6 de inter/retarlos /ara una migracin e=itosa3. Como desventa5a se tiene 0ue. al usar un formato de mensa5e de /ro/sito general. la transmisin de datos no se /uede 1acer de forma tan eficiente como /odra lograrse si se utili6ara uno /ro/ietario ) /ara el fin es/ecfico. -.'.! - Implementacin actual 2a siguiente descri/cin est basada en O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %%BK%#%P ) en el cdigo fuente del com/lemento. dis/onible en OVDo4nloads Y IPMSW #$%#P. +n la actual im/lementacin. el /roceso de migracin de los agentes es coordinado /or un agente es/ecial conocido como Iagente administrador de la movilidadJ *)gent 'obility 'anager o !MM3 0ue es el 0ue se encarga del envo de los mensa5es !C2 *segn lo es/ecificado /or 'IP!3. +l servicio de migracin de un agente 1acia otra plataforma fue im/lementado tratando de ser lo ms trans/arente /osible /ara el usuario ) los desarrolladores de los agentes. +n /articular. /ara indicar 0ue un agente desea migrarse a una plataforma distinta. solo basta utili6ar el identificador de la plataforma destino. !s. ) gracias a ;? Servicio de movilidad en &!D+ San Martn. Matas Ignacio 0ue e=iste una diferenciacin entre un indicador de contenedor ) uno de plataforma. es /osible /ara el servicio de migracin inter7plataforma darse cuenta 0ue debe actuar en lugar de 0ue se utilice el mecanismo de movilidad intra7plataforma. +n &!D+ el /unto de inicio de un /edido de migracin *)a sea inter o intra7 plataforma3 es el servicio de movilidad intra7plataforma. Gracias a 0ue dic1o servicio genera un /unto de e=tensin mediante el uso de un comando vertical. es /osible /ara el servicio de movilidad inter7plataforma interce/tar los /edidos de migracin 1acia una plataforma distinta ) tratarlos /or su cuenta. De esta forma es 0ue se logra la solucin trans/arente 0ue se mencion en /rrafos anteriores. +n su ltima versin %$ el IPMS /ermite utili6ar distintas estrategias /ara la transmisin de las clases 0ue com/onen la definicin del agente. Mrevemente. estas son *descri/cin obtenida de un arc1ivo de te=to 0ue funciona como documentacin distribuida 5unto con el cdigo del com/lemento39 %. Push Cache (ransfer Protocol *PCTP39 todo el cdigo es transmitido en un nico mensa5e cada ve6 0ue el agente se des/la6a. Se im/lementa un mecanismo *cache3 /ara evitar tener 0ue transferir el cdigo si el agente )a fue migrado /reviamente al mismo destino. 0- 1n 2emand (ransfer Protocol *ODTP39 solo las /artes re0ueridas del cdigo son transmitidas cuando son necesarias *este enfo0ue es e0uivalente al usado /or el Iservicio de movilidad intra7plataformaJ3. 3- $ragment (ransfer Protocol *'TP39 es e0uivalente a PCTP. /ero el cdigo es transmitido en mlti/les mensa5es en lugar de uno solo */ara evitar utili6ar mensa5es demasiado grandes3. 4- R5*( (ransfer Protocol *F+STTP39 en este caso. se usan dos cone=iones 6((P 77 /ara la transmisin de la informacin. +l mecanismo de comunicacin mediante mensa5es !C2 *'(*3 se usa /ara coordinar el /roceso. Salvo en la estrategia ODTP. todas cuentan con la venta5a de 0ue una ve6 terminado el /roceso de migracin. no 1a) necesidad de mantener la plataforma de origen activa /ara asegurar 0ue el agente /ueda ser e5ecutado correctamente *)a 0ue se dis/one de la definicin com/leta del mismo3. 2a estrategia F+STTP resulta la ms eficiente de las 0ue ofrecen inde/endencia con la plataforma origen. debido a %$ 2a ltima versin de IPMS se /uede acceder en 1tt/9QQ5i/ms.svn.sourceforge.netQvie4vcQ5i/msQtrun:7develQ. sin embargo. cabe resaltar 0ue dic1a versin corres/onde a un /ro)ecto en desarrollo *no 1a) /roducto liberado oficialmente3 ) actualmente no /resenta actividad *su ltimo cambio tiene dos a"os de antig[edad3. %% 6ypertext (ransfer Protocol. Se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQC)/erte=tSTransferSProtocol /ara ms informacin. ;@ Servicio de movilidad en &!D+ San Martn. Matas Ignacio 0ue el modelo F+ST %# /uede transmitir la informacin de una forma ms /tima 0ue los mensa5es !C2- +n contra/osicin. el m-todo F+STTP tiene la desventa5a de re0uerir un nuevo canal de transmisin de datos. 'inalmente. la estrategia ODTP tiene la gran venta5a de evitar la transmisin de datos 0ue no son necesarios. /ero mantiene una de/endencia con la plataforma origen en caso de 0ue se re0uiera una clase 0ue an no 1a)a sido transmitida. Para /oder determinar cual es todo el cdigo 0ue define a un agente. el IPMS ofrece dos enfo0ues9 en el /rimero se re0uiere 0ue el desarrollador del agente agru/e de forma manual dic1o cdigo en un arc1ivo de ti/o &!F *&ava )rchive3 ). en el segundo. se ofrece un mecanismo 0ue detecta automticamente las clases usadas /or un agente ) genera el /a0uete sin intervencin del usuario. Si bien la ltima alternativa resulta la ms cmoda. la lgica im/lementada cuenta con algunas limitaciones ) /uede no ser ca/a6 de reconocer todas las clases necesarias */or e5em/lo. en caso de 0ue se usen mecanismos de refle=in /ara cargar clases3 O!metller7+s0uerra ) Cucurull7&uan #$%#P. +n lo 0ue res/ecta a la seguridad. 1asta la corriente im/lementacin del servicio. no e=iste un mecanismo de control integrado. !ctualmente. el control de acceso solo /uede lograrse mediante el uso de un modelo de trans/orte de mensa5es seguro o mediante otras 1erramientas e=ternas 0ue no estn directamente relacionadas con la /lataforma de &!D+ O!metller7+s0uerra ) Cucurull7&uan #$%#P. +n la Ilustracin > se /resenta un es0uema del /roceso de migracin inter7 plataforma. %# Puede referirse a 1tt/9QQ444.ibm.comQdevelo/er4or:sQ4ebservicesQlibrar)Q4s7restfulQ /ara ms informacin. ;A Servicio de movilidad en &!D+ San Martn. Matas Ignacio ;B Ilustracin 0: .sque+a del proceso de +i(racin inter/platafor+a Servicio de movilidad en &!D+ San Martn. Matas Ignacio -.- - 8imitaciones en el servicio de movilidad +intra-plataforma9 +l /resente traba5o est acotado al servicio de movilidad intra7plataforma. sin embargo. a fin de obtener un anlisis ms com/leto. se discutir de manera ms su/erficial el servicio de movilidad inter7plataforma. Como fue descri/to en la seccin corres/ondiente al servicio de movilidad intra7 plataforma *<.#.#3. este mantiene un class loader /or cada /ar Onombre de agente . identificador de contenedor origenP. lo 0ue /reviene conflictos ante la migracin de dos agentes cu)as clases 0ue lo definen son distintas /ero con el mismo nombre. +sto es vlido debido a 0ue el nombre *!ID. ver seccin #.;.#3 identifica a un agente de forma unvoca en toda la plataforma ). /or lo tanto. no e=iste la /osibilidad 0ue dos de ellos com/artan esta /ro/iedad en un momento determinado. Sin embargo. esto /resenta un con5unto de dificultades 0ue se describen en las siguientes subsecciones. -.-.1 - ificultad 1 = >o se puede actuali?ar el agente +l 1ec1o de Ienca/sularJ las clases en distintos class loaders /ermite mantener distintas versiones de clases 1omnimas /ara distintos /ares Onombre de agente . identificador de contenedor origenP. Sin embargo. no diferencia entre distintas versiones de clases 1omnimas /ara el mismo par. +sto 1ace 0ue sea im/osible migrar una versin actuali6ada de un agente manteniendo su nombre ) desde el mismo contenedor origen. +n general. este caso de uso es /oco comn )a 0ue &ava no /ermite actuali6ar la versin de una clase 0ue )a 1a sido cargada *segn lo descri/to en la seccin ;.#.#3 ). adems. en &!D+ las clases son cargadas *mediante el classpath3 al iniciar la e5ecucin de la &EM *m0uina virtual de &ava3 0ue contendr al contenedor. Por lo tanto. durante la e5ecucin de una instancia de un contenedor. se est seguro 0ue la versin de la clase no /uede cambiar. Lo obstante. esta consideracin e=clu)e el caso 0ue corres/onde al reinicio de un contenedor. +n la im/lementacin actual de &!D+. es vlido detener la e5ecucin de un contenedor ) luego volver a iniciarlo manteniendo el mismo identificador. Si esto se combina con la creacin de un agente con el mismo nombre 0ue uno )a migrado anteriormente ) 0ue utilice una clase 1omnima */ero 0ue sea distinta3 con alguna usada /or este ltimo. el mecanismo de class loaders descri/to no /ermitira utili6ar la Inueva versinJ de la clase. +sto /uede /rovocar un com/ortamiento ines/erado del agente ante la migracin. debido a 0ue en el contenedor destino se estara usando una versin incorrecta de la clase. -.-.! - ificultad ! = Transmisin innecesaria de las clases +l 1ec1o de 0ue cada /ar Onombre de agente . identificador de contenedor origenP <$ Servicio de movilidad en &!D+ San Martn. Matas Ignacio est- asociado a un class loader ). gracias a la regla de consistencia de estos *descri/ta en la seccin ;.#.#3. ante una nueva migracin del agente. no ser necesario transmitir las clases )a transferidas al contenedor destino. Por el contrario. debido a 0ue no se utili6a una 5erar0ua de class loaders 0ue /ermita reutili6ar estas definiciones *ver la regla de delegacin en la seccin ;.#.#3. la migracin de otro agente *con distinto nombre3 im/licar 0ue todas las clases 0ue lo definen sern transmitidas. inde/endientemente de si estas son las mismas 0ue )a se encuentran en otro class loader *utili6ado /ara otro agente3. +sto re/resenta un uso innecesario de anc1o de banda entre los contenedores. 0ue /odra /revenirse mediante el uso de un mecanismo ms sofisticado de class loading. -./ - 4ervicio de movilidad inter- plataforma +l IPMS *en su versin actual3 asocia cada &!F transmitido a la plataforma. con una suma de verificacin *checksum 73 3 0ue /ermite re7utili6arlo o diferenciarlo entre otros 1omnimos. +sto 1ace 0ue no e=ista /osibilidad de conflicto de versiones. como s ocurre en el servicio intra7plataforma. Sin embargo. el /roblema de transmisin innecesaria de clases sigue siendo *en /arte3 vlido. debido a 0ue distintos &!F /ueden contener clases en comn /or ser necesarias /ara distintos agentes. %; Puede referirse a 1tt/9QQen.4i:i/edia.orgQ4i:iQC1ec:sum /ara ms informacin. <% OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio Captulo / 345i para potenciar a 0A1@ propuesta de solucin +ste ca/tulo es introductorio a la /ro/uesta de solucin a las limitaciones encontradas en el servicio de movilidad de &!D+ elaborada en el /resente traba5o. !0u se describir el anlisis ) decisiones de dise"o 0ue se reali6aron /ara definir como sera la solucin /ro/uesta. /.1 - .re-an7lisis de solucin !nali6ando las limitaciones en los servicios de movilidad de &!D+ */resentadas en la seccin <.< ) <.>3. ) conociendo las caractersticas de la tecnologa OSGi *introducidas en el ca/tulo ;3. se deduce 0ue esta /uede servir como cimiento /ara una solucin ms robusta en lo 0ue res/ecta a la administracin de las clases 0ue definen a un agente im/lementado en &!D+. +l uso de OSGi /ermitira 0ue las dificultades asociadas al versionado de las clases sea resuelta en forma trans/arente. lo cual. adems de salvar los /roblemas descri/tos. sim/lificara la im/lementacin del servicio de movilidad. +n las siguientes subsecciones se /resenta la solucin /ro/uesta ) se anali6an las decisiones 0ue llevaron al dise"o final. /.! - 4olucin propuesta +n lineas generales. la solucin /ro/uesta consiste en im/lementar un servicio de movilidad *intra7plataforma3 0ue utilice OSGi /ara la administracin de las clases 0ue definen a los agentes. 2uego. cada desarrollador de un agente agru/ar sus clases en distintos mdulos *bundles3 como crea conveniente. 'inalmente. el servicio de movilidad basado en OSGi */ro/uesto como solucin3 se encargar. de forma automtica ) trans/arente /ara el usuario. de detectar cuales bundles estn /resentes en el contenedor destino ) si estos alcan6an /ara definir al agente migrado. De no contar con los bundles necesarios. se transferirn *sin intervencin del usuario3 los 0ue faltaren desde el contenedor origen de la migracin. /.' - .re-re)uisitos para la solucin Se definieron dos /re7re0uisitos fundamentales al momento de dise"ar la solucin /ro/uesta. estos son9 <# OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio %. Lo modificar el ncleo de la /lataforma *&!D+3. #. Trans/arencia en el uso de la solucin. +l ob5etivo de im/oner dic1as necesidades es 0ue la solucin sea /rctica /ara ser utili6ada /or la comunidad de usuarios de &!D+. ! continuacin se detallan los fundamentos de las mismas. /.'.1 - Re)uisito de no modificar el n*cleo de 0A1 Gracias a 0ue &!D+ utili6a la licencia 2GP2. es /osible modificar su im/lementacin siem/re ) cuando el traba5o derivado este licenciado ba5o los mismos t-rminos. !l no 1aber restricciones res/ecto de los cambios 0ue se /ueden reali6ar. se dis/one de gran fle=ibilidad al momento de im/lementar me5oras o funcionalidades alternativas a las ofrecidas /or la versin oficial de la /lataforma. Por otro lado. el iniciar una bifurcacin *o fork 74 3 del /ro)ecto /ara /oder a"adir los cambios necesarios /ara una solucin aleda"a. im/lica 0ue se deben mantener /ara dic1a versin las correcciones 0ue se reali6aran en el /ro)ecto /rinci/al o. de lo contrario. resignarse a 0ue esta 0uede obsoleta con el /asar del tiem/o. Para evitar 0ue el mantenimiento de la solucin ofrecida de/enda de la administracin de una versin alternativa de la /lataforma &!D+. se im/uso como re0uisito fundamental 0ue el ncleo central de esta no se vea modificado *eliminando la necesidad de crear un fork3. De esta forma. las correcciones o cambios reali6ados en el ncleo de &!D+ /ueden evolucionar de forma inde/endiente a las 0ue se realicen en la solucin ). adems. los /ro)ectos 0ue de/endan de cada una no necesariamente se vern afectados /or los cambios reali6ados en la otra. /.'.! - Re)uisito de transparencia en el uso Si bien el uso de la tecnologa OSGi *aun0ue sea de forma indirecta3 re0uiere cierto conocimiento sobre esta OF. S. Call #$%%P8 /ara /ermitir una am/lia ado/cin de la solucin /ro/uesta. es deseable 0ue se e=i5a la menor cantidad de conocimientos *e=tras3 /osibles. ) se ofre6ca un modelo de traba5o similar al 0ue se usa en la versin regular de &!D+. +s /or esto 0ue se defini como /arte de los re0uisitos 0ue. dentro de las limitaciones concebibles. la nueva funcionalidad ofre6ca un uso familiar al servicio de movilidad e=istente de forma nativa *trans/arencia3. /.- - ecisiones de diseAo !l momento de tomar las decisiones 0ue finalmente definiran el dise"o a usar. se siguieron los lineamientos 0ue /ermitieran cum/lir con los re0uisitos im/uestos *ver %< Puede referirse a 1tt/9QQen.4i:i/edia.orgQ4i:iQ'or:SX#Asoft4areSdevelo/mentX#B /ara ms informacin. <; OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio seccin >.;3 ). adems. se busc /roveer una solucin modular ) 0ue /udiera evolucionar a lo largo del tiem/o. +n los distintos ttulos de esta seccin se discuten las /rinci/ales decisiones tomadas. evaluando las alternativas consideradas ) describiendo la ra6n /or la cual se termin eligiendo una /or sobre las dems. /.-.1 - Integracin del framework de 345i : 0A1 2a funcionalidad de OSGi es ofrecida en forma de frameworks /or distintas im/lementaciones de la es/ecificacin. ! /artir de la versin <.# de OSGi OT1e OSGi !lliance #$$BP se definieron mecanismos de uso gen-ricos 0ue /ermiten traba5ar de manera inde/endiente a la im/lementacin es/ecfica del framework. Gracias a esto. al definir la integracin con la a/licacin. no es necesario establecer restricciones en cuanto a cual im/lementacin se va a utili6ar. Por otro lado. e=isten distintas alternativas res/ecto de como acceder al framework desde el /unto de vista de una a/licacin *en este caso. &!D+3. ! continuacin se /resentan las variantes contem/ladas al reali6ar este traba5o. Alternativa 1 = 345i : 0A1 en paralelo +n OPo7C1eng Cuang et al. #$$BP ) OLam7Co (im et al. #$$@P se /ro/one el modelo de integracin entre &!D+ ) OSGi es0uemati6ado en la Ilustracin ?. +n este modelo de integracin. el framework de OSGi ) &!D+ se e5ecutan en /aralelo como dos /rocesos inde/endientes. ) la comunicacin entre ambos se reali6a mediante el intercambio de mensa5es. +sta /ro/uesta resulta vlida si se desea utili6ar OSGi /ara consumir servicios desde &!D+. !dems. tiene la gran venta5a de 0ue no re0uiere ninguna alteracin sobre &!D+. sino 0ue solo basta con im/lementar un agente encargado de las interacciones con OSGi. Sin embargo. en esta o/cin no se est integrando la solucin al modelo de agentes. sino 0ue se est re/resentando un modelo de servicios ofrecidos a estos. Si << Ilustracin 1: Inte(racin OSGi en paralelo con AD. OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio bien es /osible simular una solucin al /roblema */or e5em/lo. ofreciendo la funcionalidad real de los agentes mediante bundles 0ue evolucionan en lugar de cambiar la im/lementacin de los /rimeros3. se estara cambiando el /aradigma de traba5o. +sta solucin se ada/ta correctamente al re0uerimiento de no modificar &!D+ *ver seccin >.;.%3. /ero no resulta sim/le de utili6ar *como lo re0uiere el /unto enunciado en la seccin >.;.#3 )a 0ue demanda 0ue los usuarios de &!D+ comiencen a contem/lar los /roblemas desde un enfo0ue ms orientado a los servicios 0ue a uno basado en los agentes de software. Por este motivo. se considera 0ue esta /ro/uesta no resulta conveniente /ara la /roblemtica /resentada en este traba5o. Alternativa ! = 0A1 sobre 345i +n OS/anouda:is ) Moraitis #$$AP ) OFibeiro ) Soares #$%%P /ro/onen un es0uema en el 0ue &!D+ es des/legado como un bundle ) se e5ecuta dentro de un framework OSGi. +n la Ilustracin @ se es0uemati6a esta /ro/uesta. Gracias a 0ue en esta solucin los agentes se im/lementan como bundles. es /osible un correcto versionado de los mismos ). /or lo tanto. no deberan /resentarse los /roblemas mencionados en la seccin <.<. +sta /ro/uesta cuenta con la venta5a adicional 0ue. al no ser trans/arente /ara &!D+ el 1ec1o de 0ue se est traba5ando con OSGi. este /odra utili6ar alguna de las otras caractersticas de dic1a tecnologa */or e5em/lo. la ca/a de servicios /resentada en la seccin ;.>.;3. Como inconveniente. este enfo0ue im/one la necesidad de generar un des/liegue alternativo de &!D+ *en forma de bundle /ara OSGi3. lo cual entra /arcialmente en conflicto con el re0uerimiento im/uesto en la seccin >.;.%. !dems. esta solucin e=ige 0ue los usuarios de &!D+ traba5en directamente con el framework de OSGi */ara /oder iniciar la plataforma sobre -l3. ) esto se contra/one <> Ilustracin 2: Inte(racin AD. sobre OSGi OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio con el re0uerimiento definido en la seccin >.;.#. Alternativa ' = 345i empotrado en 0A1 +=iste otra forma de integrar una a/licacin con un framework de OSGi. 0ue consiste en em/otrar este en la a/licacin. +sto se logra 1aciendo 0ue el framework sea iniciado de forma e=/lcita dentro de la a/licacin OF. Call et al. #$%$. <#@P. Dic1o es0uema es el re/resentado en la Ilustracin A. !l utili6ar este es0uema. la e=istencia del framework de OSGi 0ueda oculta dentro de &!D+ ). gracias a la /osibilidad de instalar servicios como com/lementos. no es necesario modificar el ncleo de este ltimo. Debido a 0ue e=iste una distincin entre lo 0ue se e5ecuta dentro del framework de OSGi ) /or fuera de -l. es necesario definir una interfa6 comn 0ue /ermita comunicar a ambos OF. Call et al. #$%$. <#@K<;$P. +sto es lo 0ue se re/resenta en el es0uema de la Ilustracin A diferenciando a I!gente MaseJ ) ICom/*ortamiento3 MaseJ res/ecto de I!gente *Mundle3J ) ICom/. *Mundle3J. I!gente MaseJ ) ICom/. MaseJ re/resentan las clases base 0ue se encuentra en la distribucin oficial de &!D+ ) de la cual derivan todas las im/lementaciones de agentes ) com/ortamientos *ver seccin #.#.<3. Por otro lado. lo indicado como I!gente *Mundle3J ) ICom/. *Mundle3J re/resentan las clases es/ecficas 0ue definen la funcionalidad de los agentes *creadas /or los desarrolladores. usuarios de &!D+3. !s. OSGi se ocu/a de administrar las distintas versiones es/ecficas de las clases. ) el ncleo de &!D+ solo traba5a con las clases bases. +sta es la o/cin elegida /ara la solucin /ro/uesta )a 0ue brinda trans/arencia *el usuario no mane5a e=/lcitamente el framework de OSGi3 ) no es necesario modificar al ncleo de &!D+. Para /oder reali6ar la integracin. se creo un servicio 0ue iniciar el framework de OSGi ) se ocu/ar de identificar cuales bundles son re0ueridos /or cada agente ) cuales 1acen falta trans/ortar /ara /oder migrar a cada <? Ilustracin 3: Inte(racin con OSGi e+potrado en AD. OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio uno de estos. /.-.! - eterminacin de )ue bundles son necesarios para los agentes Gracias a la definicin e=/licita de las inter7de/endencias entre bundles. el framework de OSGi es ca/a6 de identificar 0ue asociaciones debe reali6ar /ar resolver cada uno *ver seccin ;.>.%3. Sin embargo. *1asta el momento de im/lementar la solucin /ro/uesta3 esta lgica no es e=/uesta /or el framework mediante una interfa6 0ue /ueda consumirse de forma tal de identificar. dado un bundle. cuales otros son suficientes como /ara resolverlo ). en caso de no /oder 1acerlo. cuales seran necesarios incor/orar. +=isten distintas alternativas /ara im/lementar esta lgica. en lo restante de esta seccin se /resentan las anali6adas al momento de decidir cual usar en el /rototi/o reali6ado. Resolucin de dependencias dadas las asociaciones en el origen 2a lgica ms sim/le 0ue /odra utili6arse /ara asegurar 0ue los bundles 0ue im/lementan un agente /uedan ser correctamente resueltos en destino. consiste en determinar cuales son los bundles asociados en el contenedor origen ) verificar 0ue e=istan los mismos en la meta. +sta solucin es factible ) sim/le de im/lementar )a 0ue el framework de OSGi /ermite identificar cuales son las asociaciones */ires3 e=istentes. dado un bundle es/ecfico 0ue est- resuelto. 2uego. sim/lemente se verificara en destino cuales de la lista de bundles indicados e=iste. ) se re0ueriran al origen a0uellos 0ue no se encontraran. +l /roblema 0ue /resenta esta lgica es 0ue /uede significar la transmisin innecesaria de datos. ,n bundle /odra resolverse utili6ando otros 0ue no sean e=actamente los mismos 0ue los 0ue se usaban en el origen. /ero 0ue ofrecieran los paquetes necesarios. ,na de las /rinci/ales venta5as de OSGi es 0ue /ermite definir de/endencias a nivel de paquetes en lugar de a nivel de bundle *ver seccin ;.<3 ). al usar el ti/o de resolucin de de/endencia mencionado. no se estara a/rovec1ando esta ca/acidad. Resolucin de dependencias mediante %eurstica de an7lisis de encabe?ados +sta solucin /ro/one a/rovec1ar el 1ec1o de 0ue los bundles indican e=/lcitamente 0ue /a0uetes re0uieren ) e=/ortan. /ara im/lementar una lgica ca/a6 de inter/retar estos encabe6ados ) decidir cuales bundles sern suficientes o 1arn falta /ara resolver al indicado. +ste es el enfo0ue 0ue sigue actualmente la 1erramienta !/ac1e 'eli= Ueb Console %> *esto /udo verificarse mediante ins/eccin de la im/lementacin corres/ondiente a la versin <.$.$. no est documentado en la 1erramienta3. Sin %> 1tt/9QQfeli=.a/ac1e.orgQsiteQa/ac1e7feli=74eb7console.1tml <@ OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio embargo. este ti/o de anlisis /uede llegar a ser mu) com/le5o debido a 0ue se /ueden definir de/endencias mu) intrincadas entre bundles. Resolucin de dependencias con OSGi Bundle Repository +OBR9 2a OSGi F'C %? %%# 7 Mundle Fe/ositor) OF. S. Call ) T1e OSGi !lliance #$$?P describe un repositorio de recursos 0ue /ueden ser e=/lorados /ara ser obtenidos ) des/legados a necesidad. +ste documento traba5a con el conce/to gen-rico de recurso *resource3 0ue e=/one capacidades *capabilities3 ) tiene requerimientos *re8uirements3. /or lo 0ue un recurso /uede re/resentar un bundle. /ero tambi-n cual0uier otra cosa 0ue a/li0ue al conce/to. +l conce/to e=/uesto /or dic1a F'C fue im/lementado ) su interfa6 e=tendida /ara el frame/ork !/ac1e 'eli= %@ en forma del bundle I!/ac1e 'eli= OSGi Mundle Fe/ositor)J OV!/ac1e 'eli= OSGi Mundle Fe/ositor)W #$%#P. De acuerdo al documento sobre el cual se basa. esta im/lementacin /ermite traba5ar con repositorios *descri/tos en formato HM23 0ue /osean diferentes recursos *en /articular. bundles3 ). entre otras cosas. 1abilita la reali6acin de consultas res/ecto de cuales de dic1os recursos son necesarios /ara /oder satisfacer los requerimientos de otro. +=actamente la funcionalidad descri/ta es la 0ue se busca /ara /oder identificar 0ue bundles son necesarios /ara definir al agente migrado. Solo ser necesario asegurarse 0ue en cada contenedor *&!D+3 e=istan los repositorios *OMF3 0ue describan todos los bundles dis/onibles en ellos ). as. /oder identificar si se encuentran los necesarios /ara el agente. +n caso de 0ue los bundles /resentes no cum/lieran los requerimientos. se /odr buscar en el contenedor origen *mediante consultas a la im/lementacin de OMF3 cuales bundles sern suficientes /ara satisfacerlos. +n la versin > de la es/ecificacin OSGi OT1e OSGi !lliance #$%#aP. se cre la IResource )P& *pecificationJ 0ue estandari6a conce/tos e0uivalentes a los de la F'C mencionada. ) 0ue se com/leta con la IResolver *ervice *pecificationJ ) IRepository *ervice *pecificationJ OT1e OSGi !lliance #$%#bP. De esta forma. se /ermite 0ue dic1a funcionalidad se /uede im/lementar de forma gen-rica /ara cual0uier framework 0ue cum/la con la es/ecificacin. eliminando la necesidad de de/ender de una solucin en /articular *como es !/ac1e 'eli= OSGi Mundle Fe/ositor)3. 2amentablemente. al momento de reali6ar el /rototi/o /resentado *a detallar en la seccin ?.#3. no se encuentraba dis/onible una im/lementacin 0ue cum/la con esta es/ecificacin. ) se tuvo 0ue o/tar /or la integracin con la solucin es/ecfica dis/onible /ara el framework !/ac1e 'eli=. %? Para ms informacin sobre el conce/to de Re8uest for Comments *R$C3 se /uede referir a 1tt/9QQen.4i:i/edia.orgQ4i:iQFe0uestSforSComments %@ 1tt/9QQfeli=.a/ac1e.orgQsiteQinde=.1tml <A OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio /.-.' - Transferencia de datos entre contenedores de la migracin Para la transmisin de los datos necesarios /ara la migracin */or e5em/lo. los bundles 0ue 1icieran falta3. era necesario decidir 0ue enfo0ue se deseaba seguir9 usar IMTP. 0ue es el mecanismo interno 0ue utili6a &!D+ /ara la comunicacin entre los contenedores de una misma plataforma *ver seccin #.#.;3. o utili6ar un canal de comunicacin alternativo. ,tili6ar un canal de comunicacin alternativo /ermitira elegir uno 0ue fuera /timo /ara las necesidades de la solucin /ro/uesta. Como lado negativo. esta o/cin *en general3 re0uiere 0ue se dis/onga de /ermisos o necesidades es/eciales /ara el uso del mismo */or e5em/lo. la a/ertura de nuevos /uertos3. ) esto no siem/re es fcilmente ase0uible en todos los conte=tos. +n contra/osicin. el uso de IMTP /uede resultar en transferencias 0ue no son /timas. /ero resulta trans/arente a nivel administrativo *no se e=igen re0uisitos e=tra3. Siguiendo con el conce/to im/uesto /or el re0uerimiento de trans/arencia en el uso *ver seccin >.;.#3. se decidi utili6ar el canal basado en IMTP como mecanismo /re7establecido de comunicacin. /.-.- - 4oporte para migracin de agentes no empa)uetados en bundles +n el servicio ofrecido de forma nativa /or &!D+. todos los agentes 0ue e5ecute el contenedor deben estar definidos /or clases locali6ables /or medio del classpath *introducido en la seccin ;.#.%3. o /or a0uellas obtenidas como resultado de una migracin. +n cambio. la solucin /ro/uesta define /or medio de bundles las clases 0ue utili6an los agentes. siendo 0ue estos /ueden ser versionados ) utili6ados /or OSGi. Si bien es factible diferenciar 0ue clases se obtuvieron del classpath ) cuales de un bundle. el /ermitir 0ue se migren agentes definidos con la /rimer o/cin. im/lica 0ue coe=istan dos com/ortamientos o/uestos *el antiguo. sin versionado8 ) el nuevo. 0ue s /osee esta ca/acidad3. Como con la solucin /ro/uesta se busca /revenir los /roblemas e=istentes en la o/cin ofrecida de forma nativa. se decidi no dar so/orte a la migracin de agentes 0ue no fueran definidos a /artir de clases locali6adas en bundles. +m/ero. )a 0ue el uso local de agentes definidos con clases del classpath no /resenta los inconvenientes 0ue si /resenta la migracin de estos. /ara agentes 0ue no se desean migrar. se /osibilita el uso de esta forma de definicin. /.-./ - <antenimiento de distintas versiones de un mismo bundle o actuali?acin !l contar con dos versiones distintas de un bundle. e=isten dos alternativas /ara <B OSGi /ara /otenciar a &!D+. /ro/uesta de solucin San Martn. Matas Ignacio su des/liegue. actuali6ar el original *reem/la6ndolo3 o. /or otro lado. instalar el nuevo en simultneo con el anterior *e=tendiendo los bundles dis/onibles3. +l actuali6ar un bundle /osibilita 0ue los 0ue re0uieren sus ca/acidades /uedan utili6ar su nueva versin ). adems. libera al framework de mantener la instancia antigua. +n contra/osicin. esto e=ige 0ue los bundles )a resueltos sean refrescados ) necesiten /asar /or la eta/a de resolucin nuevamente *segn lo descri/to en la seccin ;.>.#3. +n este ltimo caso. es factible 0ue. con la versin actuali6ada. no se satisfagan todas las dependencias 0ue si lo 1acan con la versin anterior *lo 0ue. /osiblemente. llevara a demandar 0ue se instale el mismo bundle con su versin anterior. u otro 0ue satisfaga las dependencias insatisfec1as3. Instalar una nueva versin del bundle. /or otro lado. ca/acita a /osteriores bundles /ara utili6ar la versin actuali6ada8 /ero. los 0ue se encuentren )a resueltos ) asociados a la versin anteriormente dis/onible. no se vern afectados /or la ltima. +sto tiene la venta5a de 0ue los mdulos )a resueltos no se ven /erturbados ante el cambio. Por el contrario. tiene la desventa5a de 0ue el framework necesita mantener un bundle adicional ). adems. se limita la reutili6acin de los recursos. siendo 0ue es factible 0ue todos los bundles )a resueltos /udieran traba5ar con la versin actuali6ada *eliminando la necesidad de conservar la /revia3. !dems de los /untos anteriores. al usar un framework em/otrado como /arte de la solucin /ro/uesta. /arte de las clases de la a/licacin *&!D+3 no son administrada /or OSGi. !s es 0ue. si se usa el mecanismo de actuali6acin. es menester resolver de forma /articular la lgica necesaria /ara 0ue todas las clases 0ue de/enden *aun0ue sea de forma indirecta3 del bundle actuali6ado. recono6can el cambio ) /uedan em/e6ar a usar la nueva versin *es decir. estas clases deben ser IrefrescadasJ mediante un mecanismo im/lementado /or fuera del framework OSGi3. 2a actuali6acin de bundles /ermite 0ue una a/licacin /ueda sufrir modificaciones sin necesidad de detenerla com/letamente *ver seccin ;.>.#3. Por otro lado. en el conte=to de agentes mviles de software. si se desea reali6ar una tarea con una lgica actuali6ada. es factible designar a un nuevo agente *con dic1a lgica3 /ara 0ue resuelva la tarea en lugar del /recedente *0ue im/lementa la lgica )a obsoleta3. Debido a 0ue la actuali6acin de los bundles /resenta inconvenientes en cuanto a la administracin de las clases de la a/licacin. ) 0ue su venta5a /rinci/al *de actuali6ar a/licaciones sin necesidad de una detencin total3 se ve su/lida /or el /aradigma tratado en este traba5o. se determina 0ue resulta ms conveniente seguir un enfo0ue en el cual las distintas versiones de un bundle son instaladas en coe=istencia. frente a uno en 0ue se actuali6an. >$ Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio Captulo ; Implementacin del servicio de movilidad basado en 345i para 0A1 Ra contando con una base de las consideraciones reali6adas al momento de dise"ar la solucin /ro/uesta. en este ca/tulo se detalla como se im/lement una versin 0ue sirva como /rueba de conce/to /ara verificar la factibilidad del es0uema /resentado. Se describe el /roceso de desarrollo. los com/onentes /rinci/ales del /rototi/o. ) las facilidades ) dificultades 0ue se encontraron al llevarlo a cabo. ;.1 - esarrollo del prototipo +l /rototi/o se desarroll con dedicacin no e=clusiva a lo largo de a/ro=imadamente tres meses de traba5o. +l ob5etivo fue crear una versin funcional 0ue /ermitiera cum/lir con la migracin de los agentes ) a/rovec1ar las ca/acidades de la tecnologa OSGi. !dems. se busc 0ue el mismo sirva como base /ara una versin 0ue /ueda ser utili6ada en forma /roductiva /or la comunidad de &!D+. ;.1.1 - Tecnologas usadas Para la im/lementacin de este traba5o. se utili6aron las siguientes tecnologas9 Sistema o/erativo 2inu=. distribucin Ubuntu en su versin %$.$< *2ucid 2)n=3 ?< bits. +ntorno de desarrollo +clipse OV+cli/seW #$%#P en su versin <.% ) distribucin clsica. Plug7in /ara el entorno +cli/se. %ubclipse OVsubcli/se.tigris.orgW #$%#P en su versin %.A.A. +ste da so/orte al entorno +cli/se /ara el traba5o con la tecnologa Subversion. %ubversion OV!/ac1e SubversionW #$%#P en su versin %.?.?. +sta ofrece un sistema de control de versiones. Se cre un re/ositorio local con el ob5eto de facilitar el control a los cambios reali6ados en las sucesivas iteraciones de desarrollo de los com/onentes del /rototi/o im/lementado. 2ava %tandard +dition Development :it OV&ava S+ Overvie4W #$%#P versin ?. +s/ecficamente. se utili6 la versin del /a0uete /ara la distribucin ,buntu open#d;989#d; 38b569/*//*69/ubuntu<*/<*<6*/4. $rame/ork OSGi Apac'e Feli, OV!/ac1e 'eli=W #$%#P versin <.$.#. &ava !gent D+velo/ment 'rame4or: *2AD+3 versin <.%. Cabe se"alar 0ue >% Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio la solucin es funcional tambi-n en la nueva versin <.#. Pro)ecto =oogle =uava OVguava7librariesW #$%#P. +ste consiste en un con5unto de bibliotecas utilitarias en &ava. +n realidad. se utili6 el /ro)ecto Guava7OSGi OVguava7osgiW #$%#P 0ue es un em/a0uetado en forma de bundle del /rimero. +n /articular. la de/endencia es con los /a0uetes com.google.common.hash ) com.google.common.io. en su versin %%.$.% *0ue es la 0ue est dis/onible en guava7osgi3. Apac'e Feli, Bundle Repositor$ >?Apac'e Feli, )%=i Bundle Repositor$@ 5</5A. Mundle7Eersion %.?.?. +ste corres/onde al bundle 0ue im/lementa la funcionalidad de OMF mencionada en la seccin >.<.#. Dis/onible como /arte de la distribucin del framework !/ac1e 'eli=. mencionado /reviamente. ;.1.! - Acceso al prototipo +l /rototi/o im/lementado es distribuido ba5o la licencia !" Lesser eneral Public License *2GP23 versin #.% OV2GP2 v#.%W #$%#P ) /uede ser accedido desde la /gina del /ro)ecto en 1tt/s9QQsourceforge.netQ/ro5ectsQ5ade7osmosesQ. ;.! - etalle del prototipo de solucin 2as funcionalidades 0ue conforman la /ro/uesta. se /ueden clasificar en tres grandes /artes9 %. +l servicio de movilidad #. 2a comunicacin entre contenedores ;. 2a resolucin de dependencias faltantes +stos se describen en las siguientes subsecciones. ;.!.1 - 4ervicio de movilidad basado en 345i +l servicio de movilidad es el ncleo de la solucin /ro/uesta. +ste consisten en un servicio de &!D+ *ver seccin #.#.#3 ) est basado en el de movilidad intra7 plataforma 0ue se dis/one /or defecto en dic1o framewor, */resentado en la seccin <.#3. Para ofrecer el ma)or grado de com/atibilidad /osible con las funcionalidades basadas en el servicio de movilidad /re7e=istente. la im/lementacin reali6ada se 1i6o manteniendo intactas sus interfaces. !s. es /osible utili6ar el servicio /rovisto de igual forma 0ue el anterior *algunos de los /roblemas ) facilidades relacionadas a este /unto se discutirn en las secciones ?.; ) ?.<3. +l servicio de movilidad im/lementado se encarga de iniciar el framework OSGi em/otrado *ver seccin >.<.%3. de forma de /oder utili6ar las funcionalidades ofrecidas /or esta tecnologa. 2uego de iniciado. se /rocede a la carga de los bundles ># Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio necesarios /ara el funcionamiento del servicio ) de los 0ue se utili6arn /ara definir los agentes a ser lan6ados de forma local. De manera nativa. &!D+ /ermite asociar /ro/iedades a las clases 0ue se utili6arn /ara definir los agentes a iniciar. Para /oder inter/retar ) actuar en res/uesta a /ro/iedades /articulares. es necesario registrar en el framework una instancia 0ue im/lemente la interfaz jade.util.ObjectManager.Loader. !/rovec1ando esta ca/acidad. al inicio del servicio de movilidad /ro/uesto. se registra un Loader encargado de inter/retar las clases 0ue se caractericen *mediante /ro/iedades3 /or /oseer la es/ecificacin de un bundle desde donde se obtendr dic1o recurso. +s as como se logra diferenciar entre las clases /ara agentes 0ue sern administrados /or OSGi *) /odrn ser migrados con el servicio ofrecido3 ) las 0ue corres/onden a agentes 0ue se debern resolver /or medio del mecanismo de classpath *0ue funciona en la versin original del servicio de movilidad3. +l ltimo cambio esencial 0ue se 1i6o al servicio de movilidad intra7plataforma ofrecido /or &!D+. corres/onde a la forma de actuar al momento de la migracin de las clases asociadas al agente. +sta o/eracin fue modificada /ara 0ue 5unto con la informacin del agente seriali6ado *ver el /roceso de migracin. descri/to en la seccin <.#.#3. se transmita el identificador *nombre simblico ) versin3 del bundle al cual est asociado *es decir. donde se define la sub7clase de Agent asociada3. De este modo. el contenedor 0ue recibe al agente /uede reali6ar las verificaciones *) /edidos3 necesarios /ara asegurarse 0ue dic1o bundle sea resuelto *ver la descri/cin sobre resolucin de bundles en la seccin ;.>.#3. ;.!.! - Comunicacin entre contenedores de 0A1 Como se mencion en la seccin >.<.;. la transferencia de datos necesarios /ara el servicio de movilidad /ro/uesto es reali6ada mediante IMTP *comandos horizontales3. !l no modificar la interfa6 del servicio de movilidad nativo de &!D+. no fue /osible agregarle los comandos horizontales necesarios /ara la transmisin de la informacin relacionada a la nueva funcionalidad. +s /or este motivo 0ue se decidi im/lementar otro servicio accesorio *nombrado ImtpConnectionTransport3. 0ue /ermitiera definir tales comandos. +l servicio Imt/ConnectionTrans/ort se im/lemento de tal forma 0ue /ermitiera a sus usuarios obtener Icone=ionesJ con otros contenedores *en &ava. definidas mediante un /ar de clases derivadas de java.io.InputStream ) java.io.OutputStream3. +stas se crean con el mismo es0uema con 0ue se reali6an cone=iones /ara comunicaciones basadas en el /rotocolo TCP *es decir. mediante un e=tremo 0ue se conecta activamente a otro 0ue es/era de forma /asiva3. 2uego. los 0ue traba5en con dic1as Icone=ionesJ /odrn 1acerlo sin tener en cuenta 0ue. de forma sub)acente. las transmisiones se reali6an mediante IMTP. Masndose en el 1ec1o de 0ue todas las transmisiones se reali6an /or medio de >; Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio una interfa6 uniforme 0ue usa Icone=ionesJ. el servicio de movilidad im/lementado ofrece la ca/acidad de definir *mediante configuracin3 mecanismos de comunicacin alternativos. De esta forma. se da la /osibilidad de cambiar el /rotocolo utili6ado */or e5em/lo. /ara 0ue use uno ms eficiente /ara su fin3. sin necesidad de cambiar el IMTP usado en toda la plataforma. !/rovec1ando la abstraccin mencionada ) con ob5eto de dis/oner de un mecanismo alternativo /ara la comunicacin. 0ue no de/enda de un servicio e=terno ) 0ue no re0uiera contenido adicional /ara la transmisin de datos *como s lo 1ace el mecanismo basado en IMTP. 0ue debe incluir los datos necesarios /ara su funcionamiento38 se ofrece. 5unto al /rototi/o. una im/lementacin de la interfa6 de comunicacin basada en sockets TCP. Ra 0ue las Icone=ionesJ e=/uestas son similares a las usadas /ara o/erar con TCP. la im/lementacin de las clases 0ue /ermiten utili6ar esta tecnologa /ara la comunicacin. no /resenta ma)ores dificultades. ;.!.' - Resolucin de dependencias necesarias para la migracin +s necesario una lgica de resolucin de de/endencias debido a 0ue. de igual forma como ocurre con el servicio de migracin intra7plataforma nativo de &!D+ *ver seccin <.#.#3. en la solucin /ro/uesta /uede suceder 0ue el contenedor destino no dis/onga de todos los recursos necesarios /ara definir al agente migrado. +sta lgica se im/lement como bundles. a/rovec1ando la modularidad ) fle=ibilidad 0ue ofrece la tecnologa OSGi. 2a ar0uitectura de este mecanismo se es0uemati6a en la Ilustracin B *al final de la subseccin3 ) los bundles im/lementados se detallan a continuacin. Bundle para la transmisin de recursos +n este mdulo se define la interfa6 necesaria /ara recibir re0uerimientos ) enviar los recursos asociados. !mbos conce/tos est ntimamente relacionados con los del mismo nombre definidos /or la es/ecificacin de OMF descri/ta en la seccin ?.#.;. +n la im/lementacin del /rototi/o. este bundle /ublica un servicio OSGi *ver descri/cin de la ca/a de servicios de OSGi en la seccin ;.>.;3 0ue /ermite reali6ar un handshaking 79 /or el cual se acuerda la versin del /rotocolo de intercambio de informacin 0ue se va a usar en la comunicacin. +l uso de este mecanismo /ermite la evolucin de dic1o /rotocolo ) asegura la com/atibilidad entre distintas versiones. gracias a 0ue es /osible identificar cual versin so/orta el otro e=tremo de la comunicacin. Bundle para la recepcin de recursos +ste re/resenta la contra/artida al IMundle /ara la transmisin de recursosI ) %A Se refiere al lector a 1tt/9QQen.4i:i/edia.orgQ4i:iQCands1a:ing /ara ms informacin sobre este conce/to. >< Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio define la interfa6 necesaria /ara re0uerir ) recibir recursos. !l igual 0ue el otro e=tremo. este /ublica un servicio OSGi 0ue /ermite decidir cual /rotocolo de transmisin de datos se utili6ar. Bundle para la resolucin : pedido de dependencias +ste bundle im/lementa la lgica necesaria /ara determinar. dado un bundle es/ecfico. 0ue de/endencias faltan satisfacer /ara /oder resolverlo. Para lograr su cometido. esta lgica consume la funcionalidad ofrecida /or la im/lementacin de OMF dis/onible *ver seccin >.<.#3. Cabe resaltar 0ue las de/endencias se refieren a paquetes faltantes *ver seccin ;.>.%3 ) no a mdulos *bundles3 com/letos. Traba5ando de esta forma se ma=imi6a la modularidad ) se minimi6a la transmisin de datos *como se describi en la seccin <.<.#3. +sta funcionalidad consume el servicio /ublicado /or el IMundle /ara la rece/cin de recursosJ /ara /oder reali6ar los /edidos /or los recursos 0ue determinase 0ue 1icieran falta. Por otro lado. este bundle /ublic un servicio OSGi 0ue /ermite acceder a su funcionalidad ) 0ue finalmente es consumido /or el servicio *&!D+3 de movilidad 0ue corres/onde a la solucin /ro/uesta. Lotar 0ue es el contenedor destino el 0ue utili6a este servicio. siendo este 0uien debe satisfacer las dependencias necesarias /ara /oder definir al agente recibido. Bundle para el envo de dependencias +ste es el encargado de recibir los /edidos reali6ados /or el IMundle /ara la resolucin ) /edido de de/endenciasJ ) de res/onder con los recursos dis/onibles 0ue sirvan /ara satisfacer dic1os re0uisitos. +ste consume el servicio /ublicado /or el IMundle /ara la transmisin de recursosJ ) se a/o)a en OMF /ara determinar cuales de los recursos dis/onibles sern adecuados /ara cum/lir con el /edido recibido. +l servicio *OSGi3 /ublicado /or este bundle ser a/rovec1ado /or el contenedor 0ue desea migrar un agente. /ara ofrecer cual0uier recurso 0ue el destino de la transferencia /udiera necesitar /ara com/letarla correctamente. >> Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio ;.' - ificultades en la implementacin de la solucin Debido a las tecnologas involucradas ) a las caractersticas de la solucin /ro/uesta. e=istieron algunas dificultades durante la im/lementacin de la /rueba de conce/to. +n las siguientes subsecciones se detallan las /rinci/ales ) se describen 0ue medidas se tomaron /ara sobrellevar los inconvenientes. ;.'.1 - 1l n*cleo de 0A1 depende del servicio de movilidad : de su interfa? +n &!D+ un servicio se com/one a /artir de los siguientes elementos *esta descri/cin esta basada en el libro O'. 2. Mellifemine. Caire. ) Green4ood #$$@. %;?K%<<P ) solo detalla los as/ectos /ertinentes a la /resente discusin. /ara un tratamiento ms detallado. se refiere al lector a dic1a bibliografa39 Im/lementacin de la interfaz jade.core.Service o es/eciali6acin de la clase jade.core.BaseService *0ue im/lementa la /rimera ) ofrece definiciones /or defecto /ara la ma)ora de sus m-todos39 +sta es la clase principal del servicio ) es la nica clase indis/ensable /ara la e=istencia del mismo. Si se desea 0ue el servicio /ueda ser distribuido entre m.ltiples contenedores *notar 0ue esto no es obligatorio3. se debe crear una interfaz *conocida como Iinterfaz 'orizontalJ3 0ue e=tienda a >? Ilustracin 4: Arquitectura de +ecanis+o de resolucin de dependencias en el prototipo i+ple+entado Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio jade.core.Service.Slice ) 0ue defina todos los m-todos 0ue /ueden ser invocados remotamente *desde otro contenedor3. Para un servicio distribuido. la clase 0ue ofrece el acceso al servicio en el contenedor remoto *conocida como proxy3. debe e=tender jade.core.SliceProxy e im/lementar la interfa6 1ori6ontal *mencionada en el tem anterior3. +sta clase tiene el /rinci/al /ro/sito de convertir las llamadas a sus m-todos en comandos horizontales 0ue sern enviados al contenedor destino. 2os proxies son cargados dinmicamente cuando son necesarios ) su clase debe llamarse como el nombre del servicio al 0ue estn asociados ) terminados con la /alabra IPro=)J */or e5em/lo. si el servicio nombrado Iar.uba.fi.servicioFooJ define un proxy. la clase del ltimo debe llamarse ar.uba.fi.servicioFooProxy3. Implementacin de la Binterfaz 'orizontalC 3Slice4. +sta recibe ) e5ecuta la funcionalidad asociada a los comandos horizontales enviados /or el proxy *descri/to en el tem anterior3. Si se desea 0ue los agentes puedan utilizar de forma directa el servicio. este debe ofrecer una clase au=iliar *conocida como helper3 0ue defina los m-todos /ara acceder al mismo. Como el servicio de movilidad intra7plataforma *descri/to en la seccin <.#3 es utili6ado /or el ncleo de &!D+ /ara la migracin de los agentes mviles. distintas /artes de este de/enden de las clases es/ecficas 0ue definen al /rimero *en es/ecial. del proxy ) helper3. Dado 0ue se desea 0ue el servicio im/lementado /ueda ser integrado al ncleo de &!D+ de la forma ms trans/arente /osible. no se debe modificar su interfa6 *con5unto de m-todos ) comandos asociados3. /or0ue. en caso contrario. las clases 0ue de/enden de esta de5aran de funcionar. +sta limitacin 1i6o 0ue no se /udieran agregar nuevos comandos horizontales /ara el servicio im/lementado. for6ando. /or e5em/lo. la necesidad de crear el servicio adicional descri/to en la seccin ?.#.#. Tambi-n fue /reciso mantener comandos 0ue /ierden el sentido con la solucin /resentada. ,n e5em/lo de esto. es el comando 0ue se utili6a /ara la transmisin de una clase en /articular. siendo 0ue. en la solucin /ro/uesta. las transferencias se 1acen de a mdulos com/letos *bundles3. Para /revenir com/ortamientos indefinidos. los comandos 0ue no a/lican a la nueva versin del servicio. fueron im/lementados de tal forma 0ue su llamada /rovocara una error *ms es/ecficamente. lan6an una es/eciali6acin de java.lang.Exception3. /ara indicar una falla en la lgica. +sto. entre otras cosas. /ermite asegurar 0ue no e=istirn /roblemas en caso de 0ue distintos contenedores usen diferentes servicios de movilidad. siendo 0ue esto /rovocara un error al intentar utili6ar un comando 0ue )a no a/lica. >@ Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio ;.'.! - 3BR no estandari?ado !l momento de im/lementar el /rototi/o. no e=ista es/ecificacin estndar de la funcionalidad /ro/uesta /ara OMF *descri/ta en el a/artado IFesolucin de de/endencias con OSGi Mundle Fe/ositor) *OMF3I de la seccin >.<.#3. Por otro lado. s se /oda acceder a una interfa6 esbo6ada %B . /ero esta no ofreca la funcionalidad necesaria como /ara im/lementar la solucin /resentada */or e5em/lo. no /ermita buscar un recurso a /artir de un IfiltroJ 0ue re/resentase un requerimiento3. +sto 1i6o finalmente 0ue se tenga 0ue traba5ar sobre la im/lementacin es/ecfica /ara el framework !/ac1e 'eli= *mencionada en el a/artado indicado /reviamente3. Dic1a versin fue suficiente /ara lograr llevar a cabo la tarea re0uerida. /ero im/lic 0ue la solucin ofrecida deba utili6arse nicamente con esta im/lementacin de OSGi. +l 1ec1o de 0ue el /rototi/o actual est- Iaco/ladoJ al framework 'eli=. no re/resenta ma)ores inconvenientes en /rimera instancia debido a 0ue dic1o framework se encuentra IocultoJ dentro de la im/lementacin. ) no resulta una limitacin /ara el usuario. +n adicin. como se mencion en la seccin >.<.#. la funcionalidad del re/ositorio de bundles fue estandari6ada ). /or lo tanto. futuras versiones se /odrn im/lementar de forma 0ue funcionen sobre cual0uier framework OSGi com/atible con la corres/ondiente versin del la es/ecificacin. ;.'.' - 3BR usa solo repositorios basados en C<8 Como la im/lementacin de OMF usada *ver seccin ?.;.#3 est basada en la OSGi F'C %%# *introducida en la seccin >.<.#3. los re/ositorios de bundles son definidos a /artir de un arc1ivo HM2. +sto /resenta el inconveniente de 0ue todos los bundles recibidos /or medio de la funcionalidad de migracin im/lementada. deben ser descri/tos en formato HM2 /ara /oder ser utili6ados /or la lgica asociada al repositorio. Por un lado. la escritura de la informacin de los bundles recibidos a un arc1ivo HM2 agrega una carga e=tra al traba5o de la transferencia del agente8 /ero. /or otro. /ermite 0ue dic1a informacin 0uede almacenada /ara /oder volver a ser utili6ada en una sucesiva e5ecucin de la a/licacin. !fortunadamente. en la versin > de la es/ecificacin de OSGi. la definicin de repositorio de bundles fue generali6ada. 1aciendo vlido el utili6ar otros medios /ara re/resentarlos. !s. en un futuro. se /odr agili6ar el /rocesamiento de la migracin. /ermitiendo 0ue la informacin del bundle recibido sea incluida en un repositorio con res/aldo en memoria ). eventualmente. luego /ersistida a un medio 0ue /osibilite recu/erarla en una sucesiva e5ecucin. %B Dis/onible en 1tt/9QQmirrors.dcarsat.com.arQa/ac1eQQfeli=Qorg.osgi.service.obr7%.$.#.5ar >A Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio ;.- - 2acilidades en la implementacin de la solucin !s como las tecnologas involucradas ) las caractersticas de la solucin /ro/uesta /resentaron algunas dificultades durante la im/lementacin de la /rueba de conce/to. otras /articularidades /ermitieron resolver ciertos /roblemas de forma sencilla. +n las /resentes subsecciones se describirn estas fortale6as ) como fueron a/rovec1adas en la im/lementacin reali6ada. ;.-.1 - Ar)uitectura modular de 0A1 Gracias a la arquitectura modular de &!D+ *descri/ta en la seccin #.#.#3. fue /osible reem/la6ar el servicio de movilidad sin ningn cambio en el ncleo de la /lataforma. +sta ca/acidad es esencial /ara /ermitir cum/lir con el ob5etivo de 0ue no fuera necesario crear una versin alternativa de &!D+. im/uesto a la solucin /ro/uesta en la seccin >.;.%. Sobre esta ca/acidad se fundamenta la /osibilidad de utili6ar el servicio im/lementado sim/lemente es/ecificando su clase al iniciar el contendor de &!D+. +sto ) las caractersticas de la solucin reali6ada *descri/tas en la seccin ?.#3. /ermiten 0ue cum/la con el re0uerimiento de trans/arencia en el uso *definido en el a/artado >.;.#3. ;.-.! - <ecanismo de carga de clases con propiedades especficas Como )a se antici/ en la seccin ?.#.%. &!D+ cuenta con un mecanismo 0ue /ermite asociarle /ro/iedades a las clases 0ue definen los agentes. 2uego. un com/onente conocido como ObjectManager. se encarga de delegar a un Loader asociado la inter/retacin de dic1as /ro/iedades ) la carga de la clase a la 0ue /ertenecen. De esta forma. /ara /oder determinar en 0ue bundle se deben buscar las clases indicadas. se definieron un /ar de /armetros Ibundle_snJ ) Ibundle_vJ 0ue indican el nombre simblico *symbolic name3 ) la versin de dic1o bundle. Contando con este /ar. es suficiente /ara identificar de forma unvoca a un bundle en OSGi OT1e OSGi !lliance #$%#a. ABP. 2uego. un Loader im/lementado /ara tal fin. se encarga de buscarlo dentro de los bundles resueltos en el framework OSGi em/otrado en el servicio. ;.-.' - Ar)uitectura de composition filters 2a arquitectura de composition filters /ermite 0ue las interacciones entre los distintos servicios 0ue com/onen a &!D+ sean mediante mensa5es *comandos horizontales ) verticales3. Por esto es 0ue. manteniendo dic1os comandos. es /osible reem/la6ar un servicio sin 0ue el resto se vean afectados. >B Im/lementacin del servicio de movilidad basado en OSGi /ara &!D+ San Martn. Matas Ignacio Dentro de las limitaciones mencionadas en la seccin ?.;.%. al im/lementar el nuevo servicio de movilidad. se intent mantener com/atibilidad con los comandos e=istentes *0ue utili6a el servicio ofrecido /or &!D+3 ). as. /ermitir 0ue los 0ue de/endieran de estos /udieran seguir funcionando. Si bien la integracin no lleg a ser /erfecta *)a 0ue se tuvieron 0ue descartar algunos comandos. como se mencion en la seccin ?.;.%3. esta arquitectura /ermiti 0ue el cambio 1a)a sido trans/arente /ara todos los servicios 0ue utili6an los comandos 0ue s se mantuvieron. ;.-.- - Capacidad de empotrar un framework 345i 2a ca/acidad de em/otrar un framework OSGi en una a/licacin *) con mecanismos estndares3. fue la 0ue /ermiti 0ue el uso de OSGi 0uedara oculto dentro del servicio de movilidad ofrecido como solucin en el /resente traba5o. De no ser /or0ue la es/ecificacin de esta tecnologa considera dic1a funcionalidad. esto no 1ubiera sido /osible ). /robablemente. no se 1ubiera /odido llegar a una solucin tan Itrans/arenteJ como la 0ue se logr. ;.-./ - 345i administra sus class loaders sin imponer restricciones sobre los dem7s !l integrar un framework OSGi en una a/licacin. e=iste una distincin entre como son administradas las clases /or OSGi res/ecto de como lo son en la a/licacin contenedora. +l 1ec1o de 0ue el framework de OSGi no im/onga ninguna limitacin sobre como la a/licacin contenedora debe 1acer uso de sus mecanismos de class loading. /ermiti el uso de OGSi /ara la administracin de las clases 0ue definen a los agentes mviles. sin ma)ores conflictos con el resto de &!D+. ?$ 'uncionamiento del /rototi/o im/lementado San Martn. Matas Ignacio Captulo D 2uncionamiento del prototipo implementado +n el ca/tulo anterior se describieron los detalles del /rototi/o 0ue fue im/lementado con el ob5eto de /robar la funcionalidad /ro/uesta como solucin a las limitaciones del servicio de movilidad 0ue ofrece &!D+. +n las siguientes subsecciones se /resentan los resultados obtenidos mediante el uso del servicio de movilidad basado en OSGi */rototi/o3 ) se com/aran contra el funcionamiento de la versin oficial. D.1 - 4oluciones a las limitaciones del servicio de movilidad de 0A1 +n la seccin <.< se e=/licaron las limitaciones 0ue /resenta el servicio de movilidad de agentes de software 0ue ofrece /or defecto la /lataforma &!D+. ) 0ue motivaron el desarrollo del /resente traba5o. +n las siguientes subsecciones se anali6a como el /rototi/o im/lementado resuelve dic1as restricciones. D.1.1 - 4olucin a la dificultad 1 = .osibilidad de actuali?ar el agente 2a solucin a la /rimer dificultad *descri/ta en la seccin <.<.%3. relativa al 1ec1o de 0ue una ve6 migrado un agente. las clases 0ue lo definen no /ueden ser actuali6adas8 viene de la mano con 0ue. en la solucin /ro/uesta. las clases estn siem/re asociadas a un bundle. De esta forma. /uede es/ecificarse e=actamente 0ue versin de la clase se debe utili6ar. /or medio de la identificacin del bundle asociado. Como fue descri/to en la seccin ?.#.%. al migrar un agente. se enva 5unto con sus datos seriali6ados el identificador *nico3 del bundle 0ue lo define. !s es 0ue. si en una futura migracin 1an cambiado las clases 0ue definen a un agente *identificado /or su nombre dentro de la plataforma3. se /uede asegurar 0ue se usarn las correctas. )a 0ue estas /ertenecern a otro bundle. D.1.! - 4olucin a la dificultad ! = 4olo se transmiten los componentes )ue no est(n presentes en destino 2a segunda dificultad *descri/ta en la seccin <.<.#3 0ue surge /or0ue. en el servicio de movilidad intra7plataforma ofrecido /or &!D+. una misma clase /uede ser ?% 'uncionamiento del /rototi/o im/lementado San Martn. Matas Ignacio transmitida mlti/les veces a un contenedor destino. es solucionada a/rovec1ando el identificador de bundle 0ue se transmite 5unto con los datos seriali6ados del agente en migracin. !l contar con el identificador del bundle 0ue contiene las clases 0ue definen al agente 0ue se est recibiendo. el servicio de movilidad basado en OSGi /uede determinar si dic1o bundle )a se encuentra resuelto en el contenedor destino. Si se da el caso afirmativo. no es necesario transmitir ningn otro dato /ara la definicin del agente. +n caso contrario. solo se transmitirn los bundles necesarios /ara /oder resolver al indicado. De esta forma. si agentes migrados /reviamente /rovocaron la resolucin de bundles 0ue se /ueden a/rovec1ar /ara el agente 0ue se est transmitiendo actualmente. no ser necesaria la transmisin de datos /ara satisfacer las de/endencias relativas a los paquetes )a dis/onibles. +st claro 0ue el 1ec1o de transmitir el identificador del bundle 0ue contiene las clases 0ue definen al agente migrado. im/lica un costo 0ue no e=ista en el servicio de movilidad ofrecido /or defecto en &!D+. Sin embargo. en general. el tama"o de dic1a informacin es muc1o menor 0ue el de la definicin de las clases 0ue seran transmitidas innecesariamente de no utili6arse este es0uema. +n el ca/tulo A se /resentan mediciones 0ue /rofundi6an sobre esta idea. D.! - "enta#as adicionales de la solucin propuesta +l uso de OSGi como /arte de la solucin /ro/uesta. adems de resolver las dificultades )a mencionadas *en la seccin <.<3. cuenta con un con5unto de venta5as adicionales 0ue se describirn en las siguientes subsecciones. D.!.1 - Capacidad de definir re)uerimientos )ue no son clases 2a es/ecificacin de OSGi define la /osibilidad de crear requerimientos /ara los bundles 0ue no necesariamente sean clases. +n /articular. establece la /osibilidad de indicar 0ue un bundle solo /odr ser resuelto en caso de encontrarse en un entorno de e5ecucin *versin de la &EM3 determinado OT1e OSGi !lliance #$%#a. ;>K;@P o. /or otro lado. donde e=istan ciertas bibliotecas nativas *es/ecficas /ara un determinado sistema o/erativo. ar0uitectura del /rocesador. etc.3 OT1e OSGi !lliance #$%#a. ?$K?<P. +sta ca/acidad ofrece la /osibilidad de. /or e5em/lo. definir ciertos comportamientos 0ue solo se /odrn activar si el contenedor al cual se migr est ubicado en un nodo 0ue cuente con las caractersticas definidas. ?# 'uncionamiento del /rototi/o im/lementado San Martn. Matas Ignacio D.!.! - 2uncionalidad din7mica de un agente basada en dependencias opcionales ,n requerimiento /ara un bundle /uede ser caracteri6ado como obligatorio u o/cional OT1e OSGi !lliance #$%#a. ;>P. +n el ltimo caso. el bundle /odr ser resuelto inde/endientemente de si el requerimiento es satisfec1o o no. siendo 0ue. de no cum/lirse. las clases no estarn dis/onibles /ara ser usada /or este. +l uso de requerimientos o/cionales 5unto con el servicio de movilidad im/lementado. /ermite definir agentes 0ue /odrn migrar a los distintos contenedores ) 0ue tendrn a su dis/osicin ca/acidades de/endientes de los bundles 0ue )a e=istan en cada uno de ellos *sin for6ar la transferencia de datos3. +sto crea la /osibilidad de im/lementar agentes mu) IlivianosJ *0ue no re0uieren gran cantidad de datos /ara migrarse3 ) 0ue a/rovec1en las funcionalidades 0ue IencuentrenJ en cada /aso de su travesa. D.!.' - .osibilidad de uso de capa de servicios de 345i Si bien &!D+ cuenta con la ca/acidad de ofrecer servicios a los agentes 0ue alo5a *ver seccin #.#.#3. OSGi cuenta con su /ro/ia ca/a de servicios *descri/ta en la seccin ;.>.;3. +sta ca/a de servicios /odra ser utili6ada de forma com/lementaria /or los agentes /ara acceder a ciertas funcionalidades es/ecficas del contenedor en el cual residan actualmente. D.!.- - 4olucin como punto inicial para implementar 0A1 sobre 345i +n el ca/tulo ; se /resent brevemente la tecnologa OSGi ) algunas de sus bondades */ara un tratamiento ms detallado de las mismas. se refiere al lector a OF. Call et al. #$%$P3. Tambi-n se indic 0ue el /rinci/al ob5etivo de dic1a tecnologa es la de ofrecer facilidades /ara im/lementar a/licaciones modulares. Por otro lado. como fue descri/to en la seccin #.#.#. &!D+ busca tener una ar0uitectura modular. Partiendo de la gran com/atibilidad 0ue e=iste entre los ob5etivos de las distintas tecnologas involucradas. el introducir un framework OSGi /ara la solucin /ro/uesta /uede servir de a/ro=imacin inicial /ara 0ue. en un futuro. toda la /lataforma &!D+ /ueda basarse sobre OSGi /ara im/lementar una modularidad 0ue a/rovec1e toda su /otencia. ?; Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio Captulo E esempeAo del prototipo de solucin propuesta +n este ca/tulo se /resentan los resultados obtenidos /or medio de un con5unto de /ruebas reali6adas utili6ando la im/lementacin */rueba de conce/to3 de la solucin /ro/uesta en el /resente traba5o. ) com/arndola contra la versin ofrecida de forma nativa en &!D+. E.1 - 3b#etivo de las pruebas 2as /ruebas fueron reali6adas con el ob5eto de determinar el desem/e"o del servicio de movilidad /ro/uesto frente al ofrecido /or defecto en &!D+. Se 1i6o es/ecial foco en anali6ar las diferencias en la cantidad de datos transmitidos /ara la migracin. )a 0ue la nueva lgica tiene como /rinci/al im/acto un cambio en la determinacin ) consecuente e5ecucin de 0ue recursos deben ser transmitidos. E.! - 1ntorno de pruebas 2as /ruebas se e5ecutaron con el siguiente entorno9 Sistema o/erativo 2inu= ?< bits con :ernel versin #.?.;#. Distribucin ,buntu en su versin %$.$<. &ava versin %.?.$S#<. O/en&D( Funtime +nvironment *IcedTea? %.%%.<3. O/en&D( ?<7Mit Server EM *build #$.$7b%#. mi=ed mode3. ,na PC con dos contenedores *&!D+3 e5ecutados en m0uinas virtuales &ava inde/endientes. &!D+ versin <.# OV&!D+W #$%#P. !/ac1e 'eli= 'rame4or: *OSGi frame4or:3 versin <.$.; OV!/ac1e 'eli=W #$%#P. E.' - .ruebas reali?adas +n sntesis. la /ruebas reali6adas se basan en la migracin de agentes definidos nicamente /or su clase *es decir. la es/eciali6acin de Agent. como es re0uerido /or &!D+3 ) un comportamiento *es/eciali6acin de la clase Behaviour3. Todos los agentes migrados com/arten la misma definicin *clases3. /ero varan su nombre *identificador dentro de la plataforma3. ?< Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio Toda la informacin relativa a las /ruebas reali6adas se encuentra en OV&!D+ OsMoSes Q Ui:i Q metricsW #$%#P. !ll se /uede acceder a las clases im/lementadas /ara el fin. as como tambi-n a los scripts */e0ue"os /rogramas3 0ue /ermiten re/roducir la e5ecucin reali6ada ) /resentada en las siguientes secciones. E.'.1 - etalle de las pruebas reali?adas +n la /rueba /artici/an un contenedor principal *ver seccin #.#.%3. 0ue ser el destino de los agentes migrados8 ) otro contenedor aleda"o. 0ue ser el 0ue crea los agentes ) los enva al /rimero. 2uego. una e#ecucin de la /rueba consistir en crear consecutivamente una cantidad de agentes ) migrarlos a destino. ,na ve6 transmitida una cantidad /reestablecida de agentes. la /rueba conclu)e. +l con#unto de /ruebas consiste en varias e5ecuciones. donde se migran desde uno a veinte agentes. Cada con5unto de /ruebas fue reali6ado utili6ando el servicio de movilidad nativo de &!D+ ) el /ro/uesto en este traba5o en dos variedades9 usando como canal de comunicacin la versin basada en TCP. ) la 0ue utili6a IMTP de forma sub)acente *ver seccin ?.#.#3. Cada con5unto de /ruebas se re/iti con dos versiones de la definicin del agente migrado. +n una versin. luego de migrar. el agente se auto7elimina *se da de ba5a del contenedor3. +n la segunda versin. el agente /ermanece vivo en el destino. 2as /ruebas reali6adas *reci-n descri/tas3 se /ueden re/resentar con el siguiente algoritmo9 ?> Para cada una de las cantidades Mi de agentes a migrar Repetir una cantidad R de veces Ejecutar prueba con servicio de movilidad S migrando Mi agentes que implementan la lgica L Donde, en las pruebas realizadas, los parmetros son: Mi variando desde 1 a 2 R con un valor de ! S variando entre: El servicio de movilidad nativo o"recido por #$DE El servicio de movilidad basado en %&'i con comunicaciones realizadas por medio de ()*P El servicio de movilidad basado en %&'i con comunicaciones realizadas directamente sobre *+P L variando entre: $gente que "inaliza luego de llegar a destino $gente que permanece ejecutando luego de llegar a destino Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio E.'.! - 4obre las mediciones 2as mediciones del trfico utili6ado /ara la migracin de los agentes se reali6aron mediante la definicin de reglas en el fire/all 0: *netfilter OVT1e netfilter.org /ro5ectW #$%#P3 del sistema o/erativo *2inu=3. /or medio de la a/licacin iptables OVT1e netfilter.org Ii/tablesJ /ro5ectW #$%#P. Zueda fuera del alcance del /resente traba5o el detalle de como funcionan los filtros utili6ados *se refiere al lector a OV&!D+ OsMoSes Q Ui:i Q Transmission Met4een ContainersW #$%#P donde se /resentan las /ruebas ) su detalle3. /ero cabe aclarar 0ue estos se definieron de forma tal de contabili6ar todo el trfico TCP 0ue se transmitiera dentro de la misma interfa6 de red *localhost 07 3. De esta forma. el valor final obtenido es el total de las transmisiones entre los dos contenedores. 0ue se e5ecutaron cada uno en /rocesos inde/endientes dentro de la misma instancia del sistema o/erativo . E.- - Resultados E.-.1 - 4obre los resultados e,puestos Como se describi /reviamente. se midieron las e5ecuciones con el servicio de movilidad nativo de &!D+ ) el /ro/uesto en este traba5o. utili6ando comunicacin basada en IMTP ) directamente sobre TCP. 2os datos se obtuvieron /ara la migracin desde uno a veinte agentes. ) cada caso se e5ecut cincuenta veces antes de /asar al siguiente. +stas re/eticiones sirvieron /ara verificar la estabilidad ) confiabilidad de los valores medidos. Como resultado de la e5ecucin re/etida de cada caso de /rueba. se detect 0ue e=iste variabilidad en las mediciones reali6adas. llegando en algunas ocasiones a diferir el valor m=imo obtenido en casi un %@X res/ecto del mnimo medido /ara el mismo caso. ,n anlisis detallado de las e5ecuciones *mediante ca/tura de los /a0uetes transmitidos en la red3. llevo a determinar 0ue estas variaciones se deben a la e=istencia de segmentos TCP de ackno/ledgment *!C(3. 0ue en ocasiones son transmitidos ) en otras no */robablemente debido a cambios en los tiem/os de transmisin de la informacin3. Cada segmento de !C( individual *sin transferencia de datos3 agrega un conteo de ?? M)tes *suma total de los datos necesarios /ara el con5unto de /rotocolos 0ue conforman TCPQIP versin < sobre +t1ernet3 a la ca/tura. /or lo 0ue /ueden llegar a ser significativos res/ecto del total. siendo 0ue la informacin transmitida en las /ruebas no es de gran tama"o. +n OV&!D+ OsMoSes Q Ui:i Q Transmission Met4een ContainersW #$%#P. se #$ Puede referirse a 1tt/9QQen.4i:i/edia.orgQ4i:iQ'ire4allSX#Acom/utingX#B /ar ms informacin sobre el conce/to de fire/all. #% Puede referirse a 1tt/9QQen.4i:i/edia.orgQ4i:iQ2ocal1ost /ara ms informacin sobre este conce/to. ?? Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio /ueden acceder a todas las mediciones obtenidas. Por otro lado. dado 0ue /ara el anlisis de los resultados no todas son de utilidad ). con el fin de sim/lificar la informacin /resentada. solo se tomarn como referencia los valores mnimos del con5unto de re/eticiones /ara cada caso reali6ado. Si bien. a fines de entender el desem/e"o de cada alternativa. sera til anali6ar el /eor caso /osible8 las mediciones sin *o con /ocas3 variaciones */rovocadas /or los !C(s Isu/erfluosJ3. /ermiten identificar tendencias con ma)or claridad. /or no e=istir la variable adicional 0ue re/resenta la cantidad de datos Ie=traJ transmitidos. Por ltimo. /ara no ignorar la realidad de la e=istencia de las variaciones )a mencionadas. al finali6ar la inter/retacin de los datos /ara las mediciones IsinJ /erturbaciones. se 1ar un anlisis de como su /resencia afecta al funcionamiento real de las alternativas estudiadas. E.-.! - An7lisis de resultados Caso 1 +n la Ilustracin %$ se /resenta la cantidad de b)tes transmitidos en funcin de la cantidad de agentes migrados /ara el caso en 0ue el agente migrado contina su e5ecucin luego de arribado a destino *no finali6a3. 2a Tabla # e=/one los valores medidos *a /artir de los cuales se gener la Ilustracin %$3. ?@ Tabla 2: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados 5 la tecnolo(7a usada para la +i(racin$ Caso de a(ente que per+anece !i!o en el destino Migrados OSGi/IMTP OSGi/TCP Svc nativo 1 17!" 1#!$! 1%&7 $ $$#"' $&$#' $&&1! % $71$ $"'"" $7&&! " %1!7 $'#77 %%'"" # %!"" %"$1& "&$ ! "11%% %"% "7$& 7 "#7!! "%#$ #"7# #&%'' "$1% !$1$ ' ##&%$ #$' !7% 1& #'717 #7#%1 7!&&" 11 !"%#! !$""! %&&$ 1$ !''# !71%7 ''! 1% 7%!! 7177! '!'" 1" 7$7% 7!"!7 1&%'$ 1# $'!" 11# 11&'& 1! 7!&% #7'7 117%! 17 '$$'" '&"%! 1$"%" 1 '!'%% '#&7# 1%17& 1' 1&1#7$ ''7!! 1%77 $& 1&!$11 1&""#7 1"#7$" Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio Como se /uede observar a /artir de la Tabla #. el servicio de movilidad /ro/uesto en el /resente traba5o resulta ms costoso en un /rinci/io. /ero luego es com/ensado cuando es necesaria la migracin de otros agentes 0ue de/enden de la misma definicin *cdigo3. 2a e=/licacin detrs de estos resultados es 0ue el enfo0ue basado en OSGi re0uiere el intercambio de informacin adicional *res/ecto de la usada /or el servicio nativo de &!D+3. 0ue est asociada a la descri/cin del bundle en el cual se define el agente. !s. al transmitir /or /rimera ve6 un agente. se incurre en un costo e=tra res/ecto al 0ue se tiene si solo se transmitieran las clases del mismo *como lo 1ace el servicio de movilidad nativo ofrecido /or &!D+3. Por otro lado. al migrar un segundo agente definido con las mismas clases. el enfo0ue seguido /or el servicio ofrecido de forma nativa en &!D+ */resentado en la seccin <.#.#3. 1ace 0ue las clases 0ue definen al agente deban ser transmitidas nuevamente. +n contra/osicin. la solucin a0u /ro/uesta detecta 0ue el agente /uede ser definido a /artir de los bundles )a e=istentes en destino *transmitidos en la migracin del /rimer agente3. ) evita incurrir en el costo de comunicarlo nuevamente. !s es 0ue. con las sucesivas migraciones. el costo inicial se com/ensa. llevando a 0ue luego de unas /ocas. la lgica basada en OSGi em/iece a resultar ms econmica *en t-rmino de b)tes transmitidos3 0ue la nativa. 'inalmente resultando 0ue. /ara la migracin de veinte agentes distintos. se a1orra 1asta un <$X del total de b)tes transmitidos. +s vlido clarificar 0ue la cantidad de b)tes necesaria /ara migrar dos agentes no resulta el doble 0ue /ara migrar uno solo debido a 0ue en estas mediciones tambi-n ?A Ilustracin 18: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados" para cada tecnolo(7a usada para la +i(racin$ Caso de a(ente que per+anece !i!o en el destino 1 $ % " # ! 7 ' 1&111$1%1"1#1!1711'$& & $&&&& "&&&& !&&&& &&&& 1&&&&& 1$&&&& 1"&&&& 1!&&&& OS(i)*M+, OS(i)+C, Svc nativo cantidad a-entes transmitidos c a n t i d a d
d e
d a t o s
t r a n s m i t i d o s Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio se estn teniendo en cuenta costos de iniciali6acin de la plataforma *registro de contenedores de &!D+. etc.3. Por otro lado. es interesante notar la diferencia e=istente entre el servicio de movilidad basado en OSGi con transmisin de datos /or medio de IMTP. res/ecto de la 0ue usa directamente TCP8 siendo 0ue se observa 0ue la /rimera resulta siem/re ms costosa 0ue la ltima. +sto es as /or0ue. como se mencion en secciones anteriores. el uso del IMTP 0ue se configura /or defecto en la /lataforma &!D+ *este es conocido como I2+!P IMTPJ ) su tratamiento 0ueda fuera del alcance del /resente traba5o3. tiene un costo adicional sobre TCP )a 0ue re0uiere informacin e=tra /ara la im/lementacin de su /ro/ia lgica *notar 0ue el /rimero se transmite sobre este ltimo3. Se debe recordar 0ue se /uede definir un IMTP alternativo /or configuracin. /ero /ara las /ruebas se utili6 este /or ser la alternativa recomendada ) dis/onible /or defecto. +n mediciones 0ue se 1icieron /ara determinar el costo e=tra de transmitir datos /or medio de 2+!P IMTP. se lleg a determinar 0ue /ara el envo de un mensa5e *comando horizontal3. es necesaria la transmisin de dos segmentos TCP. uno usado /ara el envo del comando ) otro /ara la res/uesta. Para el servicio im/lementado /ara esta medicin. se obtuvo 0ue el /rimer /a0uete transmitido */edido3. tiene un costo e=tra de %?? b)tes. Por otro lado. la res/uesta *segundo /a0uete3 re0uiere %B b)tes. Lotar 0ue estos son los valores de la informacin adicional a los datos. ) 0ue estos valores /ueden variar de/endiendo del servicio 0ue los genere. !dems. a estos se les /ueden sumar de forma o/cional *) de/endiendo de condiciones de tiem/o ) as/ectos a5enos a la a/licacin3 el adicional de dos segmentos de !C( de TCP *uno /ara el /edido ) otro /ara la res/uesta3 0ue suman cada uno ?? b)tes *ver seccin A.<.% /ara otros comentarios relativos a estos3. +l detalle de esta /rueba se /uede encontrar en el !ne=o I. Para concluir con el anlisis de este /rimer caso. es conveniente refle=ionar sobre el 1ec1o de 0ue estos resultados fueron obtenidos /ara un agente cu)a definicin es mu) sim/le *involucra /ocas clases3. De estar definido /or ma)or cantidad de clases. con distintas nter7de/endencias entre cada una ) una lgica ms com/le5a. los resultados variaran. /udiendo inclinar la balan6a del desem/e"o /ara una u otra im/lementacin en cada caso. Por e5em/lo. si se im/lementara un agente definido /or una gran cantidad de clases. /ero 0ue solo usara unas /ocas en el comn de los casos. la im/lementacin basada en OSGi se vera I/er5udicadaJ debido a 0ue esta demanda 0ue se dis/onga de la definicin com/leta del agente /ara /oder iniciarlo *es necesario resolver el bundle 0ue lo define3. +n contra/osicin. la im/lementacin nativa de &!D+ solo I/ideJ las clases a medida 0ue son necesitadas. /or lo cual. el no uso de alguna im/licara la no transmisin de la misma. Como segundo e5em/lo. se /uede considerar una im/lementacin 0ue de/ende de muc1as clases ) en la cual la ma)ora o todas ellas son usadas regularmente. +n este caso. la solucin /ro/uesta en este traba5o resultara en un a1orro de transmisin de datos )a con ?B Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio menor cantidad de agentes migrados. siendo 0ue el costo de la informacin e=tra relativa a OSGi resultara /oco significativo frente al costo del envo del con5unto *e=tenso3 de clases 0ue definen al agente. Cabe aclarar 0ue. /or un lado. en todo caso es es/erable 0ue e=ista un /unto en el cual la im/lementacin basada en OSGi comience a resultar ms eficiente 0ue la nativa de &!D+. debido a 0ue. en la ltima. cada agente nuevo re0uerir el envo de las clases utili6adas. cuando en la /rimera no es as. Por otro lado. el mencionado caso /atolgico /odra ser subsanado con formas alternativas de modulari6ar la definicin del agente. as es 0ue. /or e5em/lo. si este agente /uede a/rovec1ar bundles 0ue fueron transmitidos /ara la definicin de otro. no ser necesaria la transferencia de estos /ara 0ue el agente /ueda ser migrado ). as. se a1orrar el asociado costo de envo. Caso ! +n la Tabla ; e Ilustracin %% se /resenta la cantidad de b)tes transmitidos en funcin de la cantidad de agentes migrados /ara el caso en 0ue el agente migrado finali6a su e5ecucin luego de arribado a destino. Si bien este caso es mu) similar al /rimero /resentado. se /uede destacar el 1ec1o de 0ue. a0u. el servicio de movilidad /ro/uesto en este traba5o resulta ms eficiente 0ue el nativo de &!D+ /ara una cantidad menor de agentes migrados *dos /ara TCP. frente a tres en el caso anterior8 ) tres /ara IMTP. frente a cuatro en el /rimero3. 2a ra6n de 0ue esto suceda es 0ue. en este caso. el servicio de movilidad nativo de &!D+ emite un comando horizontal adicional al finali6ar el agente. +ste comando es usado /ara /ermitir la lim/ie6a de los recursos necesarios /ara 0ue dic1o servicio /ueda asegurar la transmisin de las clases 0ue definen al agente. +s este adicional el 0ue aumenta la transmisin de datos ) 1ace 0ue la solucin /ro/uesta en este traba5o su/ere en desem/e"o a la nativa /ara una cantidad menor de agentes migrados. +s 5usto aclarar 0ue en el /rototi/o im/lementado *a /artir del cual se obtuvieron las mediciones a0u /resentadas3. no est incluida la lgica necesaria /ara la desinstalacin de los bundles 0ue )a no son necesarios /ara definir a los agentes restantes. Sin embargo. debido a 0ue en la solucin basada en OSGi. una ve6 migrado el agente. este se inde/endi6a del origen *)a 0ue toda la informacin necesaria /ara su definicin debe 1acerse dis/onible en destino antes de com/letarla3. no e=iste necesidad de nuevos intercambios de informacin cuando este finalice. !s es 0ue se es/era 0ue una solucin com/leta no re0uiera ms intercambio de informacin 0ue la 0ue se usa /ara el /rototi/o /robado. 1aciendo 0ue la tendencia /resente en este caso siga siendo vlida. @$ Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio @% Tabla ,: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados 5 la tecnolo(7a usada para la +i(racin$ Caso de a(ente que finali9a en el destino Migrados 1 177"$ 1#!& 1%1!1 $ $17# $&1' $&$%" % $7&& $"$$ $7$## " %1!'% $'#&7 %"$7! # %!$7" %"& "1$'7 ! "1&11 %77 "%1 7 "#!"" "%"# ##%'1 #&$77 "&'1 !$7'$ ' #"'1& #%&#$ !'1% 1& #'#'# #77%7 7!! 11 !"$%" !$"$ %'1! 1$ !7% !7&!7 '&'"! 1% 7%#1$ 711& '&$ 1" 7$&% 7!%'7 1&#&# 1# $"$ 1& 11$1'$ 1! 7## #77' 11'$$$ 17 '$17$ '&%!! 1$!$#$ 1 '!11 '# 1%%%%" 1' 1&1#&$ ''!'! 1"&"1! $& 1&!1"1 1&"$% 1"7"' OSGi/IMTP OSGi/TCP Svc nativo Ilustracin 11: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados" para cada tecnolo(7a usada para la +i(racin$ Caso de a(ente que finali9a en el destino 1 $ % " # ! 7 ' 1&111$1%1"1#1!1711'$& & $&&&& "&&&& !&&&& &&&& 1&&&&& 1$&&&& 1"&&&& 1!&&&& OS(i)*M+, OS(i)+C, Svc nativo cantidad a-entes transmitidos c a n t i d a d
d e
d a t o s
t r a n s m i t i d o s Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio Caso ' +n la Tabla < e Ilustracin %# se /resentan los resultados obtenidos /ara el caso en 0ue. a diferencia de los anteriores. la definicin del agente se encuentra de antemano en destino. +sto con la versin del agente 0ue una ve6 migrado contina su e5ecucin *no finali6a3. +l caso /resentado se dara si /ara el servicio de movilidad nativo de &!D+. la definicin de los agentes migrados 1ubiera sido incluida en el classpath ). /ara el basado en OSGi. si e=istieran bundles suficientes /ara satisfacer sus de/endencias *)a sea /or 1aberse instalado Ia manoJ en el destino. o /or estar all de la migracin de otros agentes 0ue necesitaran dic1os bundles3. +n este caso no e=iste cantidad de agentes a migrar a /artir de la cual el servicio de movilidad basado en OSGi resulte ms eficiente 0ue el nativo de &!D+. +l motivo de esto es 0ue *como se mencion anteriormente3 el /rimero re0uiere de informacin adicional /ara /oder identificar el bundle 0ue define al agente migrado ). /or lo tanto. tiene un costo adicional 0ue no /resenta la solucin nativa de &!D+. Sin embargo. como es claramente observable a /artir de la Ilustracin %#. el costo e=tra necesario /or la solucin basada en OSGi es constante /ara cada agente migrado. ) no afecta a la /endiente de la recta 0ue re/resenta el costo de migracin @# Tabla -: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados 5 la tecnolo(7a usada para la +i(racin$ Caso de a(ente que per+anece !i!o en el destino 5 que la definicin de este se encuentra en destino pre!ia+ente a la +i(racin Migrados 1 1"&7 1$"$ '!" $ 1711 1711% 1#1!& % $%%'! $17"! 1'7" " $&$' $!%7' $"$" # %$!!$ %1&1$ $$& ! %7$'# %#!"# %%%#! 7 "1'$ "&%%& %%$" "!#!1 "#11' "$!& ' #11'" "'7&& "7"" 1& ##7' #"!!1 #1'" 11 ! #'%&& #!"7" 1$ !#1#7 !%'%' !11$& 1% !'7'! !!%& !#!!$ 1" 7""7 7%$!' 7&$&" 1# 7'17 77'!& 7"7"! 1! %17 $#'' 7'%"& 17 "#! 7$% %$ 1 '%&'# '177 "7! 1' '77%" '!#! '%&1 $& 1&$"$# 1&1$&7 '7#!& OSGi/IMTP OSGi/TCP Svc nativo Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio *en t-rmino de datos transmitidos3 en funcin de la cantidad de agentes migrados. Por otro lado. tambi-n es vlido aclarar 0ue este costo no de/ende de la cantidad de clases 0ue definan al agente. /or lo 0ue resultar des/reciable /ara casos de agentes ms elaborados *con un con5unto ms e=tenso de clases3. Caso - Siguiendo con el caso en 0ue las definiciones de los agentes migrados se encuentran en destino. en la Tabla > e Ilustracin %; se /resenta dic1a situacin /ara los agentes 0ue finali6an su e5ecucin luego de la migracin. Como se /uede notar. a0u la e=istencia en el servicio de movilidad nativo de &!D+ del costo e=tra del mensa5e 0ue informa la finali6acin del agente *introducido /reviamente en esta subseccin3. 1ace 0ue e=ista un /unto de infle=in en el cual la solucin /ro/uesta su/era en desem/e"o al /rimero. @; Ilustracin 12: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados" para cada tecnolo(7a usada para la +i(racin$ Caso de a(ente que per+anece !i!o en el destino 5 que la definicin de este se encuentra en destino pre!ia+ente a la +i(racin 1 $ % " # ! 7 ' 1&111$1%1"1#1!1711'$& & $&&&& "&&&& !&&&& &&&& 1&&&&& 1$&&&& OS(i)*M+, OS(i)+C, Svc nativo cantidad a-entes transmitidos c a n t i d a d
d e
d a t o s
t r a n s m i t i d o s Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio @< Tabla 0: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados 5 la tecnolo(7a usada para la +i(racin$ Caso de a(ente que finali9a en el destino 5 que la definicin de este se encuentra en el ob:eti!o" pre!ia+ente a la +i(racin Migrados 1 1"&7 1$"$ 1&'$# $ 17!% 17&!1 1#7%7 % $%%'! $17"! $&!#1 " $&$' $!%7' $#" # %$!!$ %1&1$ %&%$# ! %7$'# %#!"# %#1!$ 7 "1'$ "&$7 "&"%1 "!!1% "#&1# "#$! ' #1$"! "'!" #&1#7 1& ##7' #"!&' #"''" 11 ! #'$" #'% 1$ !#1#7 !%'%' !"!$ 1% !'" !!%& !'#7 1" 7""7 7%$!' 7""$$ 1# 7'17 77'!& 7'%1 1! %17 $#'' "$1" 17 "#! 7%"$ '&# 1 '%1"7 '177 '%'&$ 1' '77! '!#! '7' $& 1&$"$# 1&1$&7 1&%!"$ OSGi/IMTP OSGi/TCP Svc nativo Ilustracin 1,: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados" para cada tecnolo(7a usada para la +i(racin$ Caso de a(ente que finali9a en el destino 5 que la definicin de este se encuentra en ob:eti!o" pre!ia+ente a la +i(racin 1 $ % " # ! 7 ' 1&111$1%1"1#1!1711'$& & $&&&& "&&&& !&&&& &&&& 1&&&&& 1$&&&& OS(i)*M+, OS(i)+C, Svc nativo cantidad a-entes transmitidos c a n t i d a d
d e
d a t o s
t r a n s m i t i d o s Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio Caso 1 con m7,imos valores medidos Para finali6ar con la /resentacin de los resultados obtenidos. se /resenta nuevamente el caso en 0ue el agente migrado contina su e5ecucin luego de arribado a destino *no finali6a3 ) no se dis/one de la definicin del agente en el ob5etivo */resentados en la Tabla # e Ilustracin %$38 /ero. esta ve6. tomando los valores m=imos medidos en las re/eticiones de cada migracin de agentes *ver seccin A.<.% /ara las consideraciones mencionadas /reviamente3. +stos valores se /ueden observar en la Tabla ? e Ilustracin %<. +n estos datos se /uede notar la variabilidad de los valores obtenidos a causa de la sucesin de segmentos !C( del /rotocolo TCP. +sta variacin se /uede /resentar es/ecialmente en la solucin basada en OSGi. debido a 0ue el /rotocolo de resolucin de de/endencias *ver seccin ?.#.;3 intercambia un con5unto de mensa5es /ara lograr su cometido. ) esto 1ace 0ue e=istan ms /a0uetes 0ue /ueden causar la generacin de !C(s. Cabe resaltar 0ue en los resultados mostrados. las variaciones resultan significativas debido al tama"o reducido de los datos 0ue se estn transmitiendo *estado ) definicin del agente Isim/leJ3. De tratarse de datos ms im/ortantes. el costo asociado a cada !C( /odra ser @> Tabla 1: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados 5 la tecnolo(7a usada para la +i(racin$ Caso de a(ente que per+anece !i!o en el destino$ M;<i+os !alores de repeticiones para las capturas reali9adas Migrados 1 1$$ 1#'% 1%&7 $ $$!#% $1$" $&&! % $7%% $#!& $7"'& " %$7!' %$#1 %""$ # %!!&" %7'7" "1"1 ! "1$%7 "%&%' "%#! 7 "!!1# ""'& ##%"! #&### #$"&' !$% ' ##1 #1&" !'%$! 1& #'7% !$1$& 7!$1$ 11 !"#1$ !$'%& %1# 1$ !'$## 7$1%$ '&1#! 1% 7%'" 777%' '71&$ 1" 7!#% 1&!' 1&"1&& 1# %$$" "&&! 111$&$ 1! 711 '!7 11&'! 17 '%!&% '&!'! 1$#&'" 1 '7%!# ''%%! 1%$&'$ 1' 1&$'&! 1&$!!! 1%'$' $& 1&!"1' 1&#%$1 1"!$"" OSGi/IMTP OSGi/TCP Svc nativo Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio des/reciado frente al total *notar 0ue la ma)or /arte de los mensa5es intercambiados /or el /rotocolo mencionado. son inde/endientes al volumen del contenido de los bundles3. E./ - Conclusiones De los resultados reci-n /resentados. se /uede concluir 0ue. si bien el servicio de movilidad /ro/uesto en el /resente traba5o. ) con res/ecto al ofrecido de forma nativa /or &!D+. re0uiere ma)or cantidad de informacin /ara transmitir la definicin de los agentes a destino *debido a 0ue es necesario diferenciar ) resolver las de/endencias de los bundles 0ue la com/onen38 a medida 0ue se migran otros agentes 0ue /ueden a/rovec1ar estas definiciones. el costo se em/ie6a a com/ensar /or evitar la re7emisin de la informacin )a dis/onible. +sto 1ace 0ue. a largo /la6o. resulte ms eficiente la solucin basada en OSGi. Por otro lado. debido a 0ue los bundles transmitidos son /ersistidos al llegar a destino. se /reviene 0ue. ante una cada del nodo. esta informacin deba ser transferida nuevamente. +sto ofrece una facilidad de des/liegue 0ue no se encuentra con el servicio nativo de &!D+. siendo 0ue en este. /ara 0ue la informacin /ueda ser a/rovec1ada en el destino desde el inicio. tiene 0ue configurarse mediante el mecanismo de classpath *ver seccin ;.#.%3. Si bien e=isten casos en los 0ue la solucin basada en OSGi siem/re /resentar desventa5a en la cantidad de datos transmitidos en la migracin */or e5em/lo. el caso @? Ilustracin 1-: Cantidad de b5tes trans+itidos para la +i(racin de a(entes" se(6n la cantidad de a(entes +i(rados" para cada tecnolo(7a usada para la +i(racin$ Caso de a(ente que per+anece !i!o en el destino$ M;<i+os !alores de repeticiones para las capturas reali9adas 1 $ % " # ! 7 ' 1&111$1%1"1#1!1711'$& & $&&&& "&&&& !&&&& &&&& 1&&&&& 1$&&&& 1"&&&& 1!&&&& OS(i)*M+, OS(i)+C, Svc nativo cantidad a-entes transmitidos c a n t i d a d
d e
d a t o s
t r a n s m i t i d o s Desem/e"o del /rototi/o de solucin /ro/uesta San Martn. Matas Ignacio ; /resentado3. es menester recordar 0ue esta solucin ofrece adems el beneficio de /ermitir la actuali6acin de las definiciones de los agentes sin /osibilidad de conflictos /or clases ) agentes 1omnimos. ) sin necesidad de reiniciar los contenedores de la plataforma &!D+. Por otro lado. si bien los resultados /resentados )a resultan alentadores ) muestran una me5ora en la eficiencia de la migracin de los agentes mviles. es necesario recordar 0ue la im/lementacin usada /ara estas /ruebas fue reali6ada como un /rototi/o o /rueba de conce/to. ) 0ue re0uiere de traba5o futuro /ara /oder /ulir detalles ) o/timi6arla de forma tal de lograr an me5ores resultados. @@ Conclusiones San Martn. Matas Ignacio Captulo F Conclusiones +n el /resente traba5o se dio una introduccin al /aradigma de agentes mviles de software ) sus /rinci/ales venta5as e inconvenientes asociados *ca/tulo %3. !dems. se describi uno de los ms im/ortantes ) activos /ro)ectos 0ue /ermiten traba5ar con estos. &!D+ *ca/tulo # ) <3. +l uso de dic1o framework llevo a detectar algunas limitaciones 0ue /resenta en su versin actual. siendo. a los o5os de 0uien escribe ) tomando como conte=to el /aradigma en estudio. la inca/acidad de traba5ar con versiones actuali6adas de los agentes ) el no a/rovec1amiento de informacin e=istente /ara /oder agili6ar la migracin de los mismos. uno de los ms interesantes /ara atacar *seccin <.<3. !s fue como en el /roceso de la bs0ueda /or una solucin /ara las limitaciones mencionadas. se lleg a encontrar la tecnologa OSGi ) conocer todas sus virtudes *ca/tulo ;3. 2uego de e=/licar las dificultades 0ue conlleva traba5ar de forma directa con el mecanismo de class loading de &ava *seccin ;.#3. se /udo resaltar al lector la im/ortancia de contar con una tecnologa como OSGi /ara sim/lificar la modulari6acin ) versionado de los com/onentes de una a/licacin. Caciendo una com/arativa entre las /osibilidades de OSGi. las caractersticas ) re0uerimientos del /aradigma en estudio ). es/ecialmente. del as/ecto de &!D+ 0ue se buscaba me5orar. se /udo determinar 0ue la /rimera es una tecnologa 0ue tiene la ca/acidad de ofrecer muc1o valor si se integrase con la ltima *seccin ;.?3. !ntes de buscar una forma de solucin a las limitaciones encontradas en &!D+. se /re7estableci 0ue una im/lementacin satisfactoria debera resultar Itrans/arenteJ en el uso ) no re0uerir cambios en el ncleo del framework8 entendi-ndose estas como condiciones necesarias /ara lograr 0ue la solucin /udiera salir del mbito terico. /ara ser a/rovec1ada /or toda la comunidad de &!D+ *seccin >.;3. Con estas demandas en mente. se 1i6o un estudio de las distintas formas en 0ue /odran coordinarse /ara llegar al ob5etivo establecido. conclu)endo 0ue lo ms adecuado sera utili6ar un framework OSGi IocultoJ dentro de un servicio de &!D+ *seccin >.<.%3. Sobre esta idea fue 0ue se reali6 un dise"o 0ue /ermitira llegar a una im/lementacin funcional *seccin >.<3. ,na ve6 0ue se tuvo un dise"o construido. se /rocedi a la im/lementacin de un /rototi/o 0ue cum/liera con las funciones elementales de la solucin /ro/uesta. con el ob5eto de validar si esta /oda ser llevada a la /rctica ) no languideca en alguna de sus caractersticas *ca/tulo ?3. 'inalmente. )a con un /rototi/o de solucin im/lementado. se /udo /oner a /rueba su funcionamiento ) contrarrestarlo con la o/cin de servicio de movilidad de agentes ofrecido /or defecto en &!D+. Con los resultados de estas /ruebas. se logr @A Conclusiones San Martn. Matas Ignacio observar 0ue el desem/e"o del servicio /ro/uesto resulta ms 0ue satisfactorio. siendo 0ue se /uede obtener un a1orro significativo ) creciente en la transmisin de datos. con las sucesivas migraciones de agentes 0ue a/rovec1asen las definiciones )a /uestas a dis/osicin en el destino. Cabiendo tambi-n resaltar 0ue a este beneficio 1a) 0ue adicionarle la nueva /osibilidad de actuali6ar las definiciones de los agentes. sin necesitar reiniciar los contenedores ) desec1ando la /osibilidad de inconsistencias debido a colisiones con los nombres ) clases de los mismos *ca/tulo @ ) A3. Cabiendo /resentado el ncleo del traba5o reali6ado. en las siguientes secciones se 1ace una /resentacin de traba5os 0ue en ma)or o menor medida se relacionan con el a0u /resente. ). /or otro lado. se e=/one una solucin alternativa 0ue se consider /ara solventar las limitaciones )a enunciadas en el servicio de movilidad /redefinido de &!D+. 'inalmente. se conclu)e el /resente con una descri/cin de o/ciones sobre las cuales se /uede evolucionar la solucin /ro/uesta ) la integracin de las tecnologas OSGi ) &!D+. F.1 - Traba#o relacionado : alternativa a la solucin propuesta F.1.1 - .lug-in 345i para 0A1 +=iste un com/lemento ## de &!D+ 0ue lo integra con la tecnologa OSGi. /ro/oniendo e5ecutar la /lataforma como un bundle dentro de un framework OSGi *como fue descri/to /ara el caso de integracin I!lternativa # K &!D+ sobre OSGiI en la seccin >.<.%3. +ste tiene como ob5etivos OZuarantotto ) Caire #$%$P9 Crear contenedores &!D+ dentro de un framework OSGi. Crear agentes a /artir de bundles /resentes en el framework OSGi. +m/a0uetar el cdigo de los agentes dentro de distintos bundles ) a/rovec1ar la funcionalidad de actualizacin de bundles 0ue /rovee OSGi. /ara /oder actuali6ar los agentes. Ofrecer a los agentes acceso a las funcionalidades de OSGi. Por e5em/lo. el registro ) uso de servicios OSGi. Como se discuti en la seccin >.<.%. este enfo0ue tiene la desventa5a de re0uerir 0ue el usuario *de &!D+3 com/renda como funciona un framework OSGi. !dems. en /articular /ara el com/lemento en tratamiento. e=ige 0ue se entienda como definir *a trav-s del framework OSGi3 las /ro/iedades /ara 0ue el bundle de &!D+ /ueda ser activado con configuraciones necesarias /ara el funcionamiento deseado. Por ms 0ue el com/lemento a0u descri/to a/rovec1a las bondades de la ## Todos los com/lementos /ara &!D+ /ueden accederse en 1tt/9QQ5ade.tilab.comQcommunit)7addons./1/. /revio registro de una cuenta gratuita. @B Conclusiones San Martn. Matas Ignacio tecnologa OSGi. este no ofrece una solucin /ara la movilidad de los agentes. +sto /rovoca 0ue las limitaciones mencionadas en la seccin <.< sigan estando /resentes. Por ltimo. si bien la integracin entre &!D+ ) OSGi /uede ser /ositiva *como se estableci en la seccin @.#.<3. el enfo0ue seguido en la solucin reci-n /resentada falla en no a/rovec1ar */ara la ar0uitectura de &!D+3 las facilidades de administracin de mdulos 0ue ofrece OSGi. !0u la modularidad de &!D+ se resuelve de la misma forma 0ue la alternativa sin OSGi *ver seccin #.#.#3 ). adems. la a/licacin com/leta es vista como un nico mdulo desde el /unto de vista del framework OSGi. F.1.! - 4ervicio de movilidad inter- plataforma +l servicio de movilidad inter7plataforma *o IPMS. introducido en la seccin <.;3 fue tratado de forma limitada en el /resente traba5o. Sin embargo. cabe anali6ar como se com/ara la solucin /ro/uesta a dic1a funcionalidad. ) cuan com/atibles son entre ellas. !mbas soluciones re0uieren 0ue las clases de los agentes sean agru/adas /ara su migracin. +n el caso del IPMS. dic1o em/a0uetado se reali6a mediante la creacin de un &!F con todas las clases necesarias /ara el agente. +n contra/osicin. el servicio /ro/uesto en este traba5o. /ro/one reali6ar agru/aciones en forma de mdulos *bundles3. diferenciados segn su co1erencia lgica. ) /udiendo com/onerse varios /ara ofrecer toda las definiciones necesarias /ara un agente. Fesulta evidente 0ue el enfo0ue /ro/uesto ofrece ma)or fle=ibilidad /ara el usuario ). en ltima instancia. /uede limitarse al mismo agru/amiento 0ue en el caso contrastado. De/endiendo de la estrategia usada /ara la transferencia de datos *descri/tas en la seccin <.;.#3. el IPMS utili6ar el servicio de trans/orte de mensa5es *entre plataformas3 im/lementado en &!D+ ). 0ui6s. otro canal *como ser cone=iones CTTP3. Gracias a la abstraccin del uso de Icone=ionesJ en la solucin /ro/uesta *ver seccin ?.#.#3. es /osible utili6ar la misma im/lementacin ) 0ue la transmisin de datos se 1aga sobre cual0uier ti/o de canal e. incluso. sobre mlti/les de ellos *siem/re ) cuando se ofre6ca la visin de una nica Icone=inJ 1acia la funcionalidad cliente3. +sto /ermite 0ue la lgica im/lementada en dic1a Icone=inJ se ocu/e de coordinar *mediante mensa5es !C23 el /roceso de migracin con la plataforma destino. De esta manera. la solucin /ro/uesta no ofrece restricciones en cuanto a su uso intra o inter7plataforma. Debido a 0ue el servicio de movilidad basado en OSGi traba5a con bundles como mnima unidad de transferencia de datos *no se /uede trans/ortar una clase individual3. no es /osible im/lementar la misma variedad de estrategias de transferencia 0ue se ofrece en la solucin de IPMS. +sto /uede significar 0ue. ba5o A$ Conclusiones San Martn. Matas Ignacio ciertas condiciones. el IPMS re0uiera menor cantidad de transmisin de datos. Sin embargo. como se /udo concluir de las /ruebas reali6adas en la seccin A.<.#. el servicio basado en OSGi. al tener la ca/acidad de definir la funcionalidad como com/osicin de mdulos. /ermite a1orrar transferencias a largo /la6o. +sto es gracias al 1ec1o de 0ue dic1os mdulos /ueden ser com/artidos entre distintos agentes. eliminando la necesidad de una nueva transmisin. Por ltimo. cabe mencionar algunas bondades e=tras 0ue ofrece el servicio /ro/uesto en el /resente traba5o. ) 0ue no son factibles *o son difciles de obtener3 con IPMS9 Por ser la solucin basada en OSGi un servicio inde/endiente ) 0ue reem/la6a al intra7plataforma. es /osible condensar en el mismo la funcionalidad de este ) la de IPMS. +sto 1ara 0ue no fuera necesario des/legar dos servicios de movilidad distintos /ara obtener ambas clases de movilidad ). as. lograr una trans/arencia absoluta del ti/o a usar. Como se mencion en la seccin @.#. las caractersticas de OSGi ofrecen la ca/acidad de variar la dis/onibilidad de funcionalidades *bundles3 de/endiendo de las /articularidades del nodo sobre el cual se des/liegan. De necesitarse estas mismas en una im/lementacin 0ue no fuese basada en OSGi. deberan resolverse con mecanismos im/lementados /ara tal fin ). /robablemente. con lgica es/ecfica dentro del agente migrado. !dems de agregarle una carga al desarrollador del agente. la /resencia de dic1a lgica 1ara 0ue el agente contenga ms informacin 0ue deber ser transmitida *) e=igir ms recursos /ara su migracin3. OSGi ofrece de forma nativa mecanismos /ara ofrecer seguridad en lo 0ue res/ecta al des/liegue de bundles *sobre estos se /rofundi6ar en la seccin B.#.;3. +stas facilidades /ermiten incor/orar seguridad en el /roceso de migracin. la cual no est resuelta en IPMS O!metller7+s0uerra ) Cucurull7 &uan #$%#P. F.1.' - 4olucin alternativa mediante uso e,plcito de class loaders Como alternativa al enfo0ue seguido /ara la solucin /ro/uesta. se /odran 1aber resuelto las limitaciones descri/tas en la seccin <.<. mediante un mane5o ms elaborado de class loaders. +sta /otencial solucin /odra 1aber tomado las siguientes medidas /ara solventar los /roblemas descri/tos9 Para /revenir la transmisin innecesaria de clases. se re0uerira im/lementar una red de class loaders. de forma tal 0ue las versiones de las clases sean cargadas una nica ve6 ) luego Icom/artidasJ. !s. al /recisar una clase 0ue no fuera conocida /or un class loader /articular. antes de cargarla /odra I/reguntarJ a los dems si alguno )a la 1ubiese obtenido ). de ser el caso. utili6ar dic1a instancia en lugar de tener 0ue re0uerir la transmisin de la A% Conclusiones San Martn. Matas Ignacio definicin de la clase. Por otro lado. /ara diferenciar entre versiones de clases 1omnimas. una /osible alternativa sera calcular una funcin hash #; sobre la definicin de cada una *cu)o formato es descri/to en O2ind1olm et al. #$%#. ?BK%<%P3. 0ue /ermita identificar cambios en la misma. 2uego. con el /ar Onombre de la clase. hash calculadoP se /odra diferenciar entre clases 1omnimas *notar 0ue es necesario un anlisis detallado /ara identificar 0ue funcin hash se debe a/licar /ara minimi6ar la /robabilidad de colisiones 0ue llevaran a /ensar 0ue dos clases son la misma. cuando en realidad no lo son3. +ste enfo0ue cuenta con dos grandes venta5as /or sobre el utili6ado en el /resente traba5o9 %. +s totalmente trans/arente /ara el usuario de &!D+. ,na solucin como la descri/ta ofrecera un uso id-ntico al 0ue /rovee el servicio de movilidad intra7plataforma *) 1asta se la /odra considerar como una me5ora sobre el mismo. en lugar de un cambio3. #. Fe0uiere la mnima cantidad de transmisin de datos debido a 0ue solo se transferiran las clases estrictamente necesarias *) 0ue nunca antes fueron transmitidas3. Si bien las venta5as enunciadas 1acen 0ue la solucin sea mu) atractiva. este acercamiento cuenta con grandes desventa5as 0ue 1icieron 0ue finalmente no se tomara como solucin /ro/uesta9 Presenta una gran com/le5idad en su im/lementacin )a 0ue 1a) 0ue crear un mecanismo elaborado de colaboracin entre distintos class loaders. Como se describi en la seccin ;.#.;. el traba5o e=/lcito con class loaders resulta mu) dificultoso ) /ro/enso a errores. esto 1ace 0ue la solucin obtenida sea difcil de entender ) mantener. ! diferencia de la versin basada en OSGi. una solucin como la descri/ta a0u no es fcilmente ada/table al servicio de movilidad inter7plataforma. +sto 1ace 0ue deba encontrarse una solucin inde/endiente /ara los /roblemas relacionados con el ltimo. 2a tecnologa OSGi tiene venta5as 0ue ofrecerle a toda la /lataforma &!D+ *como se discuti en la seccin @.#.<3. +n cambio. la solucin enfocada solo en los re0uerimientos del servicio de movilidad intra7plataforma, no a/orta beneficios a/licables a los com/onentes aleda"os. +stas desventa5as 1icieron 0ue se o/tara /or basarse en una tecnologa madura como es OSGi. frente a una solucin 0ue a/untara a ser ms eficiente /ero 0ue. /robablemente. ca)era en decadencia con el tiem/o /or su com/le5idad ) dificultad de mantenimiento. #; Puede referirse a 1tt/s9QQen.4i:i/edia.orgQ4i:iQCas1Sfunction /ara ms informacin. A# Conclusiones San Martn. Matas Ignacio F.! - Traba#o futuro e ideas +l /rototi/o /resentado en este traba5o sirve como /unto inicial /ara una solucin a los /roblemas descri/tos en &!D+. Sin embargo. e=iste la /osibilidad de evolucionar sobre esta versin. +n las siguientes subsecciones se /resentan algunas ideas sobre otras me5oras 0ue /udieran reali6arse. tomando como /unto de /artida la im/lementacin /resentada. F.!.1 - Gso de repositorio de recursos estandari?ado +n la seccin >.<.# se introdu5o al lector al conce/to /resentado /or la OSGi R$C %%# ) su evolucin 1asta convertirse en /arte de la es/ecificacin estndar de la tecnologa OSGi en su versin >. Tambi-n se indic 0ue debido a las limitaciones /resentes al momento de reali6ar el /rototi/o /ara el /resente traba5o. este finalmente se bas en una versin del re/ositorio de bundles 0ue es de/endiente del framework de OSGi I!/ac1e 'eli=J. ,na /rimera evolucin sobre el traba5o reali6ado debera ser modificar la im/lementacin /ara 0ue utilice la interfa6 estndar del re/ositorio de recursos *ver seccin >.<.#3. de forma tal 0ue no est- limitada al uso de un framework OSGi es/ecfico. Por otro lado. como fue adelantado en la seccin ?.;.;. el uso de dic1a es/ecificacin /ermitira im/lementar una solucin 0ue no re0uiera el almacenado de la informacin en formato HM2 como /aso inicial /ara el /roceso de migracin de un agente. /ermitiendo una solucin ms eficiente. F.!.! - <odulari?ar 0A1 a partir de 345i Ra se mencion en la seccin @.#.< 0ue toda la /lataforma &!D+ /odra verse beneficiada con la tecnologa OSGi. Por este motivo es 0ue se considera 0ue sera conveniente como traba5o futuro. 0ue se em/iece a reali6ar una re7estructuracin de &!D+ de forma tal 0ue se a/rovec1en las bondades e=/licadas. Cabe resaltar 0ue dic1o traba5o deber ser coordinado con los desarrolladores de este framework. /ara as evitar la necesidad de crear una versin /aralela 0ue /resentara los inconvenientes descri/tos en la seccin >.;.%. F.!.' - Gso de los mecanismos de seguridad ofrecidos por 345i Introduccin al modelo de seguridad en 345i OSGi define una ca/a de seguridad o/cional basada en la ar0uitectura de seguridad de &ava # #< OT1e OSGi !lliance #$%#a. BP. +n resumen. este modelo #< Se refiere al lector a 1tt/9QQdocs.oracle.comQ5avaseQ%.<.#QdocsQguideQsecurit)Qs/ecQsecurit)7 s/ec.doc.1tml /ara ms informacin al res/ecto. A; Conclusiones San Martn. Matas Ignacio /ermite asociar a determinadas entidades. /ermisos /ara reali6ar ciertas acciones *0ueda fuera del alcance del /resente traba5o el /rofundi6ar en los conce/tos involucrados en esta ar0uitectura3. 2a es/ecificacin de OSGi define distintas formas de identificar a las entidades a las cuales asignar los /ermisos *mencionadas a continuacin3 ). adems. un con5unto de /ermisos 0ue sern verificados /or el framework- OSGi ofrece la ca/acidad de identificar a los bundles a los cuales asignarles /ermisos9 /or medio su location */ro/iedad introducida en la seccin ;.>.#3. o /or medio de la firma digital #> de los mismos OT1e OSGi !lliance #$%#a. BK%AP. Por otro lado. como /arte de la es/ecificacin corres/ondiente a funcionalidades o/cionales de OSGi. se establece la o/cin de dar /ermisos basados en el usuario 0ue e5ecuta las funciones OT1e OSGi !lliance #$%#b. %$BK%#@P. 2os /ermisos a designar a las distintas entidades se /ueden clasificar de acuerdo a la ca/a del framework OSGi a la 0ue /ertenecen *estas fueron introducidas en la seccin ;.;39 Para la capa de mdulos. e=isten los /ermisos necesarios /ara es/ecificar 0ue ca/acidades de un bundle /ueden ser ofrecidas /or este )Qo consumidas /or otro *esto es. /or e5em/lo. 0ue paquetes se /ueden e=/ortar o im/ortar3 OT1e OSGi !lliance #$%#a. @<K@@P. Para la capa de ciclo de vida. se dan los /ermisos necesarios /ara indicar 0ue o/eraciones relacionadas al ciclo de vida de los bundles /ueden ser reali6adas. Por e5em/lo. e=isten /ermisos /ara /ermitir desinstalar. resolver. o actualizar un bundle OT1e OSGi !lliance #$%#a. %$AK%%$P. Para la capa de servicios. se definen los /ermisos /ara /recisar 0ue servicios /ueden ser registrados )Qo utili6ados /or los bundles OT1e OSGi !lliance #$%#a. %#>P. OSGi otorga un modelo mu) fle=ible /ara la asignacin de /ermisos. este se basa en delimitar un con5unto de condiciones 0ue deben ser cum/lidas /ara 0ue a/li0uen los mismos OT1e OSGi !lliance #$%#a. #@@K;%%P. !dems de las condiciones )a mencionadas *0ue /ermiten verificar 0ue el bundle tenga una location determinada. o este firmado digitalmente /or una o un con5unto de entidades3. este modelo /osibilita crear nuevas condiciones 0ue sern incluidas en el /roceso de verificacin. 2as reglas asociadas a estas /ueden ser definidas de forma tal 0ue otorgen la a/licacin del /ermiso o 0ue la denieguen. ofreciendo as una alternativa entre un es0uema de definicin de /ermisos /or inclusin o /or e=clusin. Gso en 0A1 del modelo de seguridad de 345i Ra /resentado el modelo de seguridad 0ue es/ecifica OSGi. resulta claro 0ue este /odra brindar grandes beneficios a una /lataforma 0ue im/lemente el #> Para ms informacin sobre este conce/to. se /uede referir a 1tt/9QQen.4i:i/edia.orgQ4i:iQDigitalSsignature. A< Conclusiones San Martn. Matas Ignacio /aradigma de agentes mviles de software *como es &!D+3. !/rovec1ando este. en con5unto con el servicio de movilidad /ro/uesto en el /resente traba5o. se /ueden definir /olticas 0ue /ro1ban la migracin de agentes de fuentes no confiables *identificables mediante firma digital3. o 0ue no cum/lan con otras caractersticas es/ecficas /ara las necesidades del contenedor 0ue los recibe *mediante el uso de condiciones de OSGi im/lementadas /ara tal fin3. Para concluir. cabe destacar el 1ec1o de 0ue. /or ser un mecanismo resuelto /or OSGi. esta funcionalidad /uede 1acerse dis/onible sin ma)ores /roblemas ) sin incurrir en soluciones es/ecficas ) com/le5as 0ue debieran ser mantenidas en con5unto con el servicio de movilidad im/lementado. A> Glosario San Martn. Matas Ignacio 5losario ACL (agent communication languaje) .en-uaje en el cual se codi/ican los mensajes intercam0iados entre a-entes de so/t1are 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222217 Activo En OS(i3 respecto de un 0undle3 indica el estado en que este se encuentra listo para ser usado 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$' Actuali!ar En OS(i3 respecto de un 0undle3 es la accin por la cual se le indica al /rame1or4 que de0e reempla5arlo con otra versin del mismo 2222222222222222222222222222222222222222222222222222222%& Agente 6quello que tiene la capacidad de producir un e/ecto 2222222222222222222222222222222222222222222222221 Agente de so"t#are En J67E3 un proceso computacional que 8a0ita una plata/orma 93 por lo -eneral3 o/rece uno o mas servicios que pueden ser pu0licados mediante una descripcin del mismo 2221" ,ro-rama in/ormtico que implementa la /uncionalidad de un a-ente 2222222222222222222222222221 Agente m$vil de so"t#are 6-ente de so/t1are con la capacidad de moverse en una red in/ormtica 222222222222222222222$ Agentes %u&r"anos 7esi-nacin que se le da a los a-entes que contin:an con la ejecucin de su tarea lue-o de que 9a no es requerida por la aplicacin que los cre 22222222222222222222222222222222222222222227 AMM En J67E3 ;a-ente administrador de la movilidad; <6-ent Mo0ilit9 Mana-er=3 es el a-ente encar-ado de coordinar el proceso de mi-racin inter2plata/orma 222222222222222222222222222222%! Ar'uitectura (entorno) >tili5ado para si-ni/icar el conjunto de componentes <8ard1are3 sistema operativo3 aplicaciones3 etc.= que de/inen el conte?to en el cual se ejecutar el a-ente de so/t1are 2 # Bundle En OS(i3 nom0re que se le da al concepto de mdulo 22222222222222222222222222222222222222222222$# Canal de comunicaci$n entre agentes (ACC) En @*,63 es la entidad que provee el servicio de transporte de mensajes directamente a los a-entes de la plata/orma 22222222222222222222222222222222222222222222222222222222222222222222222222222221 Ca(acidad En OS(i OAB3 un conjunto de propiedades asociadas a un recurso 22222222222222222222222222"7 Casilla de mensajes (mail)o*) En J67E3 estructura que -uarda los mensajes destinados para los a-entes 9 que posi0ilita el tratamiento asincrnico de los mismos 222222222222222222222222222222222222222222222222221! Clase En el paradi-ma de pro-ramacin orientada a o0jetos3 a0straccin que representa el estado 9 comportamiento de una entidad 22222222222222222222222222222222222222222222222222222222222222$& Class loader En Java3 o0jeto responsa0le de car-ar clases para que puedan ser usadas por la aplicacin 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$& Class loading En Java3 /uncionalidad o/recida por los class loaders 2222222222222222222222222222222222222222222222$1 Class(at% Conjunto de rutas <re/eridas al sistema de arc8ivos= que se con/i-ura para indicarle a la plata/orma Java donde de0e 0uscar las clases a utili5ar en el pro-rama al momento de ejecutarlo 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$$ Class(at%/+A, %ell En Java3 se usa para descri0ir las di/icultades que pueden sur-ir en la ejecucin de aplicaciones de0ido a con/i-uraciones errneas del classpat8 2222222222222222222222222222222222$7 C$digo m$vil A? Glosario San Martn. Matas Ignacio Consiste en o0tener)enviar un /ra-mento de cdi-o o /uncionalidad de)a un servidor remoto para ser ejecutado localmente)remotamente 2222222222222222222222222222222222222222222222222$ Comando vertical En J67E3 comando emitido por un servicio para dele-ar la resolucin de un pedido a un sumidero 9 -enerar un punto de e?tensin que otros servicios pueden aprovec8ar para reaccionar ante el evento 222222222222222222222222222222222222222222222222222222222222222222222222222222222221% Comandos %ori!ontal En J67E3 mensaje enviado entre las distintas instancias de un servicio distri0uido entre los nodos de una plata/orma3 para poder completar la accin pedida 22222222222222222222222221% Com(ortamiento ()e%aviour) En J67E3 a0straccin que implementa <parte de= la l-ica especC/ica del a-ente 22222222221" Contenedor (rinci(al En J67E3 instancia especial de contenedor3 que representa el punto de inicio de la plata/orma 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221$ Contenedores En J67E3 en su conjunto componen la plata/orma so0re la que se ejecutan los a-entes de so/t1are3 9 proveen todos los servicios necesarios para al0er-arlos 9 ejecutarlos 2222222221$ Conte*t class loader En Java3 se trata de un class loader especial que est asociado al 8ilo en ejecucin 22222$" Conte*to de un )undle En OS(i3 representa el conte?to de ejecucin de un 0undle en el /rame1or4 9 /unciona como inter/a5 de acceso al :ltimo 222222222222222222222222222222222222222222222222222222222222222222222222%& -egradaci$n con elegancia +Drmino utili5ado para si-ni/icar un deterioro paulatino a medida que el entorno se vuelve ms inadecuado para el sistema 222222222222222222222222222222222222222222222222222222222222222222222222222# -elegaci$n de class loaders En Java3 asociada a una clase3 corresponde a la jerarquCa de class loaders con/ormada por el que la car- 9 los padres de este 2222222222222222222222222222222222222222222222222222222222222222$$ -escri(ci$n de servicio En @*,63 conjunto de caracteri5aciones que descri0en un servicio 0rindado por un a-ente de la plata/orma 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222217 -esinstalado En OS(i3 respecto de un 0undle3 indica que este no est ms disponi0le para ser utili5ado 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$' .jecuci$n remota Consiste en reali5ar un pedido de ejecucin de una /uncionalidad a un servidor remoto3 para lue-o o0tener los resultados 22222222222222222222222222222222222222222222222222222222222222222222222222$ /iltro de entrada En J67E3 l-ica re-istrada por un servicio para reaccionar a un comando vertical asociado 9 previo a que este sea resuelto por el sumidero destino 222222222222222222222222222221% /iltro de salida En J67E3 l-ica re-istrada por un servicio para reaccionar a un comando vertical asociado 9 previo a que este sea resuelto por el sumidero de salida 222222222222222222222222221% /IPA .a @undacin para 6-entes *nteli-entes @Csicos es una asociacin internacional sin /ines de lucro3 con el o0jetivo de producir una especi/icacin estndar para la tecnolo-Ca de a-entes 8etero-Dneos que interaccionen entre sC 9 sistemas 0asados en a-entes 2222222211 /irma digital Esquema matemtico que sirve para demostrar la autenticidad de un mensaje di-ital. >na /irma di-ital da al destinatario se-uridad de que el mensaje /ue creado por el remitente <autenticidad de ori-en=3 9 que no /ue alterado durante la transmisin <inte-ridad= 22222222$ /or0 Bespecto de un pro9ecto de desarrollo de so/t1are3 representa una 0i/urcacin del ori-inal3 es decir3 un pro9ecto derivado de la misma raC5 222222222222222222222222222222222222222222"$ /rame#or0 60straccin que representa cdi-o que provee /uncionalidades -enDricas 9 que puede ser reempla5ado o especiali5ado por el usuario para proveer /uncionalidades especi/icas 2221$ A@ Glosario San Martn. Matas Ignacio En OS(i3 es el entorno de ejecucin que implementa 9 provee la /uncionalidad asociada a esta tecnolo-Ca 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$# 1ands%a0ing ,roceso automati5ado de ne-ociacin que esta0lece de /orma dinmica los parmetros de un canal de comunicaciones esta0lecido entre dos entidades antes de que comience la comunicacin normal por el canal 222222222222222222222222222222222222222222222222222222222222222222222222#% Identi"icador de agente (AI-) En @*,63 identi/icador -lo0al para la plata/orma que permite identi/icar de /orma unCvoca a un a-ente dentro de esta 2222222222222222222222222222222222222222222222222222222222222222222222222222222222217 IMTP <*nternal Messa-e +ransport ,rotocol= es el protocolo utili5ado en J67E para la comunicacin entre los contenedores de una plata/orma 222222222222222222222222222222222222222221" Instalado En OS(i3 respecto de un 0undle3 indica el estado en que el 0undle es conocido por el /rame1or43 pero no est resuelto 2222222222222222222222222222222222222222222222222222222222222222222222222$' Inter2)lo'ueo o deadloc0 Situacin de /alla que sur-e cuando dos o ms procesos esperan por el otro en una con/i-uracin desde la cual no se puede pro-resar 222222222222222222222222222222222222222222222222222 Inter"a! En el paradi-ma de pro-ramacin orientada a o0jetos3 de/ine un protocolo de uso 9 comportamiento que de0en cumplir las clases que la implementen 2222222222222222222222222222$% IPMS En J67E3 servicio de movilidad inter2plata/orma que3 como su nom0re lo indica3 permite mi-rar a-entes entre distintas plata/ormas 222222222222222222222222222222222222222222222222222222222222%% Location En OS(i3 propiedad de un 0undle que corresponde a un nom0re que le asi-na quien sea que lo instal. Eormalmente est asociado a la direccin <>B.= de la cual se o0tuvo el mismo3 pero esto no es o0li-atorio 22222222222222222222222222222222222222222222222222222222222222222222222%& Migraci$n Bespecto de un a-ente3 consiste en la transmisin de su cdi-o 9 estado para que pueda continuar con su ejecucin en el destino 22222222222222222222222222222222222222222222222222222222222222222$ M$dulo Bepresenta un lCmite l-ico3 de tal /orma que su implementacin interna est oculta del e?terior 9 solo se e?pone <opcionalmente= una inter/a5 0ien de/inida a partir de la cual se puede interaccionar con Dl 222222222222222222222222222222222222222222222222222222222222222222222222222222222$" 3odo En el conte?to de una red de computadoras3 corresponde a una de las computadoras que componen la red 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$ En J67E3 de /orma equivalente al concepto en una red de computadoras3 corresponde a un entorno que da sustento a un contenedor 2222222222222222222222222222222222222222222222222222222221$ 34cleo Belativo a una aplicacin o especi/icacin3 corresponde a la parte esencial 9 o0li-atoria sin la cual esta no puede /uncionar 22222222222222222222222222222222222222222222222222222222222222222222221$ O)jeto En el paradi-ma de pro-ramacin orientada a o0jetos3 instancia de una clase 2222222222222$& O)jeto m$vil +ipo de ejecucin distri0uida en la que se transporta cdi-o 9 estado a destino. 6 di/erencia de un a-ente mvil de so/t1are3 este concepto no implica la actuacin en representacin de un usuario 2222222222222222222222222222222222222222222222222222222222222222222222222222222$ Pa'uete En Java3 representa una a-rupacin de tipos <ej. clases= 22222222222222222222222222222222222222222$! Place Entidad pasiva <no reali5a acciones por cuenta propia= que le provee a los a-entes un entorno de ejecucin 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222% Plata"orma En J67E3 representa las /uncionalidades necesarias para que los a-entes puedan operar 22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221$ AA Glosario San Martn. Matas Ignacio Protocolo de trans(orte de mensajes (MTP) En @*,63 es usado para el transporte /Csico de mensajes entre dos 6CCs 22222222222222222221 ,eali!aci$n En @*,63 corresponde a una especi/icacin que descri0e una /uncionalidad particular 93 en -eneral3 ms detallada que en el caso a0stracto 22222222222222222222222222222222222222222222222222221! ,ecurso En OS(i OAB3 representa un concepto -enDrico con capacidades 9 requerimientos 22222"7 ,e"rescar En OS(i3 respecto de un 0undle3 es la accin por la cual se le indica al /rame1or4 que de0e volver a resolverlo 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222%& ,e(ositorio En OS(i OAB3 representa un conjunto de recursos 222222222222222222222222222222222222222222222222"7 ,e'uerimiento En OS(i OAB3 a/irmaciones so0re las capacidades necesarias para un recurso 2222222222"7 ,esoluci$n de un )undle ,roceso por el cual el 0undle se interconecta con los dems se-:n los paquetes que e?porta e importa 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$ ,esuelto En OS(i3 respecto de un 0undle3 estado en el que todas sus dependencias estn satis/ec8as 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$' Sem5ntica o (ro(iedad de e*actl62once 6sociada a la ejecucin de una tarea3 indica el requerimiento de que esta se realice e?actamente una sola ve5 22222222222222222222222222222222222222222222222222222222222222222222222222222222222! Servicio En J67E3 implementan /uncionalidades que son co8erentes entre sC <a nivel de plata/orma= 9 son alojados en un nodo 222222222222222222222222222222222222222222222222222222222222222221$ En OS(i3 /uncionalidad o/recida por un 0undle3 representada por una o ms inter/aces 2%& Servicio de trans(orte de mensajes (MTS) En @*,63 servicio proveCdo por la plata/orma para el transporte de mensajes 6C. entre a-entes. En J67E es utili5ado solo para la comunicacin entre distintas plata/ormas 22221 Slice En J67E3 componente del servicio que es responsa0le de aceptar comandos 8ori5ontales <entrantes= 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221% So)re En @*,63 parte del mensaje que contiene la in/ormacin de transporte 222222222222222222222221 Strong migration +ipo de mi-racin de un a-ente en la que este se transporta completamente3 inclu9endo su /uncionalidad <cdi-o=3 estado de varia0les 9 el estado de ejecucin 222222222222222222222222$ Sumidero destino o de entrada En J67E3 componente del servicio encar-ado de resolver una operacin cuando el slice de dic8o servicio -enera un comando vertical 222222222222222222222222222222222222222222222222222222221% Sumidero "uente o de salida En J67E3 componente de un servicio que es el encar-ado de resolver un pedido cuando el primero -ener un comando vertical 222222222222222222222222222222222222222222222222222222222222222221% S6m)olic name En OS(i3 propiedad de un 0undle que representa un nom0re sim0lico asi-nado por su desarrollador 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222%& Terminaci$n a)ru(ta de (cras%) Belativo a un a-ente de so/t1are3 indica la situacin en la cual este /unciona correctamente 8asta que en un determinado momento deja de operar por completo <deteniDndose de /orma anormal= 222222222222222222222222222222222222222222222222222222222222222222222222227 7ea0 migration +ipo de mi-racin de un a-ente en la que solo se transporta su /uncionalidad 9 el estado de sus varia0les 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222$ 7iring *ntercone?iones entre 0undles reali5adas en su resolucin 222222222222222222222222222222222222222$ AB Mibliografa San Martn. Matas Ignacio Bibliografa F60out G *,MSH. $&1$. About = Inter/&latfor+ Mobilit5 &ro:ect. 6ccedido Julio 7. 8ttpsI))tao.ua0.cat)ipmp). 68n3 Jin8o. $&1&. F6tomic Mo0ile 6-ent (roup CommunicationH. En 2818 2t# I... Consu+er Co++unications and >et?or'in( Conference3 1J#. .as Ve-as3 EV3 >S6. doiI1&.11&')CCEC.$&1&.#"$1#'#. 64sit3 Me8met3 Ken La4ita3 Jan Aosc83 .ode1ij4 Aer-mans3 9 64inori Mone5a1a. 1''". F60stractin- O0ject *nteractions >sin- Composition @iltersH. 6metller2Esquerra3 J.3 9 J. Cucurull2Juan. $&1$. F*,MS 7ocumentationH. Inter/&latfor+ Mobilit5 Ser!ice Docu+entation for t#e AD. &latfor+. 6ccedido Julio $'. 8ttpsI))tao.ua0.cat)ipmp)/iles)BE67ME. F6pac8e @eli?H. $&1$. 6ccedido 6-osto ". 8ttpI))/eli?.apac8e.or-)site)inde?.8tml. F6pac8e @eli? OS(i Aundle Bepositor9H. $&1$. 6ccedido 6-osto ". 8ttpI))/eli?.apac8e.or-)site)apac8e2/eli?2os-i20undle2repositor9.8tml. F6pac8e Su0versionH. $&1$. 6ccedido 6-osto ". 8ttpI))su0version.apac8e.or-). Aaumann3 J. 1''7. F6 protocol /or orp8an detection and termination in mo0ile a-ent s9stemsH. @ni!ersitAt Stutt(art" Fa'ultAt Infor+ati'" Fa'ultAtsberic#t. Aelli/emine3 @a0io3 Caire (iovanni3 +rucco +i5iana3 9 Bimassa (iovanni. $&1&. FJade ,ro-rammerNs (uideH. 8ttpI))jade.tila0.com)doc)pro-rammers-uide.pd/. Aelli/emine3 @a0io .ui-i3 (iovanni Caire3 9 7ominic (reen1ood. $&&7. De!elopin( Multi/ A(ent S5ste+s ?it# AD.. Lile9. Aelli/emine3 @.3 (. Caire3 6. ,o--i3 9 (. Bimassa. $&&%. FJ67E 2 6 L8ite ,aperH <Septiem0re=. 8ttpI))sites.-oo-le.com)site)a-entesunsl)L8ite,aperJ67EEO,.pd/. PPP. $&&. FJ67EI 6 so/t1are /rame1or4 /or developin- multi2a-ent applications. .essons learnedH. Infor+ation and Soft?are Tec#nolo(5 #& <12$=I 1&J$1. Aelli/emine3 @.3 6. ,o--i3 9 (. Bimassa. 1'''. FJ67EJ6 @*,62compliant a-ent /rame1or4H. En &roceedin(s of &AAM3 ''I'7J1&. 8ttpI))111.dia./i.upm.es)Qp8ernan)6-entes*nteli-entes)re/erencias)0elli/emine''.pd/. Arads8a13 J. M. 1''7. F6n introduction to so/t1are a-entsH. Soft?are a(entsI %J"!. Claessens3 Joris3 Aart ,reneel3 9 Joos Vande1alle. $&&%. F<Ro1= can mo0ile a-ents do secure electronic transactions on untrusted 8ostsS 6 surve9 o/ t8e securit9 issues and t8e current solutionsH. ACM Trans$ Internet Tec#nol$ % <1=I $J". doiI1&.11"#)!"%"77.!"%"7'. FClass.oader 2 JSE7H. $&11. ClassBoader Ca!a &latfor+ S. 2 D. 6ccedido Eoviem0re 1'. 8ttpI))do1nload.oracle.com)javase)7)docs)api)java)lan-)Class.oader.8tml. F7o1nloads G *,MSH. $&1$. Do?nloads = Inter/&latfor+ Mobilit5 &ro:ect. 6ccedido Octu0re 1. 8ttpsI))tao.ua0.cat)ipmp)node)1!. FEclipseH. $&1$. 6ccedido 6-osto ". 8ttpI))111.eclipse.or-). F@*,6H. $&1$. Eelco+e to t#e Foundation for Intelli(ent sical A(ents. 6ccedido Julio 1". 8ttpI))111./ipa.or-). FT@*,6&&&&1UH. $&1$. FI&A Abstract Arc#itecture Specification. 6ccedido Julio 1. 8ttpI))111./ipa.or-)specs)/ipa&&&&1). FT@*,6&&&$%UH. $&1$. FI&A A(ent Mana(e+ent Specification. 6ccedido Junio %&. 8ttpI))111./ipa.or-)specs)/ipa&&&$%). FT@*,6&&&!7UH. $&1$. FI&A A(ent Messa(e Transport Ser!ice Specification. 6ccedido Julio 1. 8ttpI))111./ipa.or-)specs)/ipa&&&!7). FT@*,6&&&7UH. $&1$. FI&A A(ent Mana(e+ent Support for Mobilit5 Specification. 6ccedido Julio 7. 8ttpI))111./ipa.or-)specs)/ipa&&&7)inde?.8tml. F@*,6 2 Statement o/ *ntentH. $&1$. State+ent of Intent. 6ccedido Julio 1. 8ttpI))111./ipa.or-)a0out)mission.8tml. B$ Mibliografa San Martn. Matas Ignacio @ran4lin3 Stan3 9 6rt (raesser. 1''!. F*s it an 6-ent3 or just a ,ro-ramSI 6 +a?onom9 /or 6utonomous 6-entsHI $1J%#. @u--etta3 6l/onso3 (ian ,ietro ,icco3 9 (iovanni Vi-na. 1''. F>nderstandin- Code Mo0ilit9H. I... Transactions on Soft?are .n(ineerin( $"I %"$J%!1. (iovanni3 Caire. $&&". FJ67EI t8e ne1 4ernel and last developmentsH. 8ttpI))jade.tila0.com)papers)Jade2t8e2services2arc8itecture.pd/. (me52MartCne53 Elena3 Ser-io *larri3 9 JosD Merse-uer. $&&7. F,er/ormance anal9sis o/ mo0ile a-ents trac4in-H. En &roceedin(s of t#e 1t# international ?or's#op on Soft?are and perfor+ance3 11J1. Auenes 6ires3 6r-entinaI 6CM. doiI1&.11"#)1$1!''%.1$17&$". (oslin-3 J.3 A. Jo93 (. Steele3 (. Arac8a3 9 6. Auc4le9. $&1$. T#e a!a lan(ua(e specification 2 .dition. 7. a ed. 6ddison2Lesle9. 8ttpI))111.cs.s9su.edu.cn)Qlc1)re/)J.S2 JavaSE7.pd/. F-uava2li0rariesH. $&1$. 6ccedido 6-osto ". 8ttpI))code.-oo-le.com)p)-uava2li0raries). F-uava2os-iH. $&1$. 6ccedido 6-osto ". 8ttpI))code.-oo-le.com)p)-uava2os-i). Rallo1a93 Stuart 7a00s. $&&$. Co+ponent De!elop+ent for t#e a!a &latfor+. 6ddison2 Lesle9 ,ro/essional. Rall3 Bic8ard3 Karl ,auls3 Stuart McCulloc83 9 7avid Sava-e. $&1&. Os(i in Action: Creatin( Modular Applications in a!a. Mannin- ,u0lications. Rall3 Bic8ard S. $&11. F.earnin- to i-nore OS(iH Enero $#. 8ttpI))/eli?.apac8e.or-)site)presentations.data).earnin-VtoVi-noreVOS(i.pd/. Rall3 Bic8ard S.3 9 +8e OS(i 6lliance. $&&!. FB@C2&11$ Aundle Bepositor9H. 8ttpI))111.os-i.or-)do1nload)r/c2&11$VAundleBepositor9.pd/. Rarrison3 Colin (.3 7avid M. C8ess3 9 6aron Kers8en0aum. 1''#. FMo0ile 6-entsI 6re t8e9 a -ood ideaSH FJ67EH. $&1$. ade / a!a A(ent D.!elop+ent Fra+e?or'. 6ccedido Julio ". 8ttpI))jade.tila0.com). FJ67E OsMoSes ) Li4i ) metricsH. $&1$. 6ccedido Octu0re 1$. 8ttpI))source/or-e.net)p)jade2 osmoses)1i4i)metrics). FJ67E OsMoSes ) Li4i ) +ransmission Aet1een ContainersH. $&1$. 6ccedido Octu0re 1$. 8ttpsI))source/or-e.net)p)jade2 osmoses)1i4i)metricsVnvoVdataVtransmissionV0et1eenVcontainers). FJ67E 2 +8e Aoard Mem0ersH. $&1$. ade / a!a A(ent D.!elop+ent Fra+e?or' / T#e Foard Me+bers. 6ccedido Julio 1". 8ttpI))jade.tila0.com)t8e0oard2mem0ers.8tm. Jansen3 L.3 9 +. Kar9-iannis. 1'''. FMo0ile a-ent securit9H. Gait#ersbur(" MD: >ational Institute of Standards and Tec#nolo(5. FJava O0ject Seriali5ation Speci/icationI ContentsH. $&1$. 6ccedido Julio 7. 8ttpI))docs.oracle.com)javase)!)docs)plat/orm)seriali5ation)spec)serial+OC.8tml. FJava SE Overvie1H. $&1$. 6ccedido 6-osto ". 8ttpI))111.oracle.com)tec8net1or4)java)javase)overvie1)inde?.8tml. .an-e3 7ann9 A.3 9 Mitsuru Os8ima. 1'''. FSeven -ood reasons /or mo0ile a-entsH. Co++un$ ACM "$ <%=I J'. doiI1&.11"#)$'#!#.$'1%!. F.(,. v$.1H. $&1$. 6ccedido Octu0re 1. 8ttpI))111.-nu.or-)licenses)l-pl2$.1.8tml. F.(,. v%.&H. $&1$. 6ccedido Julio 1". 8ttpI))111.-nu.or-)licenses)l-pl.8tml. .ind8olm3 +im3 @ran4 Mellin3 (. Arac8a3 9 6le? Auc4le9. $&1$. T#e a!a Girtual Mac#ine Specification 2 .dition. 7. a ed. 6ddison2Lesle9. Milojicic3 7ejan S3 Lilliam .a@or-e3 9 7eepi4a C8au8an. 1''. FMo0ile O0jects and 6-ents <MO6=H. In &roc$ Of T#e Fourt# @seni< Conference On Ob:ect/Oriented Tec#nolo(ies And S5ste+sI 17'J1'". FMultit8readed Custom Class .oaders in Java SE 7H. $&11. 6ccedido 7iciem0re 1&. 8ttpI))docs.oracle.com)javase)7)docs)tec8notes)-uides)lan-)cl2mt.8tml. Eam2Ro Kim3 Mi2Seo4 Jeon-3 San-2R1an B9u3 9 7on-2B9eol S8in. $&&7. FMo0ile Realt8care S9stem 0ased on Colla0oration 0et1een J67E and OS(i /or Scala0ilit9H. En Multi+edia and @biquitous .n(ineerin(" 2882$ M@. H82$ International Conference on3 1$!J1$'. doiI1&.11&')M>E.$&&7.1#%. 1&.11&')M>E.$&&7.1#%. B% Mibliografa San Martn. Matas Ignacio Eilc8i3 6. B.E3 6. Va/aei3 9 R. Ramidi. $&&. FEvaluation o/ Securit9 and @ault +olerance in Mo0ile 6-entsH. E1ana3 R. S. 1''!. FSo/t1are a-entsI 6n overvie1H. Ino?led(e .n(ineerin( Je!ie? 11 <%=I 1J"'. FOS(i 6lliance G 60out ) Aene/its o/ >sin- OS(iH. $&11. 6ccedido 7iciem0re 1&. 8ttpI))111.os-i.or-)60out)L89OS(i. FOS(i 6lliance G +ec8nolo-9 ) +8e OS(i 6rc8itectureH. $&1$. 6ccedido Julio 1$. 8ttpI))111.os-i.or-)+ec8nolo-9)L8at*sOS(i. ,8am3 V. 63 9 6. Karmouc8. 1''. FMo0ile so/t1are a-entsI 6n overvie1H. I... Co++unications +a(a9ine %! <7=I $!J%7. ,o2C8en- Ruan-3 C8en-2Mi C8ien3 Kuan2Bon- .ee3 Mau2R1an- Kuo3 9 Min-2Woo Lu. $&&'. F6n inte-ration plat/orm /or developin- conte?t2a1are applications 0ased on conte?t reasonin- and service automation tec8niquesH. En 11t# International Conference on Ad!anced Co++unication Tec#nolo(5" 2884$ ICACT 28843 &%I11'J1$%. *EEE. Xuarantotto3 Elena3 9 (iovanni Caire. $&1&. FJ67E OS(i (uideH. 8ttpI))jade.tila0.com)doc)tutorials)JadeOs-i(uide.pd/. Bi0eiro3 B. A.C3 9 B. A Soares. $&11. F+8e application o/ J67E and OS(i tec8nolo-ies in t8e telecommunications services arc8itectureH. En 2811 I... .@JOCO> / International Conference on Co+puter as a Tool C.@JOCO>D3 1J". *EEE. doiI1&.11&')E>BOCOE.$&11.#'$'%'. Bot8ermel3 K.3 9 @. Ro8l. 1''. Mobile a(ents. Bot8ermel3 K.3 9 M. Strasser. 1''. F6 /ault2tolerant protocol /or providin- t8e e?actl92once propert9 o/ mo0ile a-entsH. En Jeliable Distributed S5ste+s" 1443$ &roceedin(s$ Se!enteent# I... S5+posiu+ on3 1&&J1&. doiI1&.11&')BE.7*S.1''.7"&"&. 1&.11&')BE.7*S.1''.7"&"&. FSettin- t8e class pat8H. $&1$. 6ccedido Julio 1'. 8ttpI))docs.oracle.com)javase)!)docs)tec8notes)tools)1indo1s)classpat8.8tml. FSo/t1are /rame1or4 2 Li4ipedia3 t8e /ree enc9clopediaH. $&11. 6ccedido 7iciem0re 1&. 8ttpI))en.1i4ipedia.or-)1i4i)So/t1areV/rame1or4. Spanouda4is3 E.3 9 ,. Moraitis. $&&. F6n am0ient intelli-ence application inte-ratin- a-ent and service2oriented tec8nolo-iesH. Jesearc# and De!elop+ent in Intelli(ent S5ste+s KKIGI %'%J%'. Sreedevi3 B.E3 >.E (eeta3 >.,. Kul4arni3 9 6.B. Mardi. $&&'. FEn8ancin- Mo0ile 6-ent 6pplications 1it8 Securit9 and @ault +olerant Capa0ilitiesH. En 2884 I... International Ad!ance Co+putin( Conference3 ''$J''!. ,atiala3 *ndia. doiI1&.11&')*67CC.$&&'."&'1#&. Fsu0clipse.ti-ris.or-H. $&1$. 6ccedido 6-osto ". 8ttpI))su0clipse.ti-ris.or-). +anen0aum3 6ndre1 S.3 9 Maarten van Steen. $&&$. Distributed S5ste+s: &rinciples and &aradi(+s. >S ed. ,rentice Rall. F+8e net/ilter.or- Yipta0lesZ projectH. $&1$. 6ccedido Septiem0re $%. 8ttpI))111.net/ilter.or-)projects)ipta0les)inde?.8tml. F+8e net/ilter.or- projectH. $&1$. 6ccedido Septiem0re $%. 8ttpI))111.net/ilter.or-). +8e OS(i 6lliance. $&&'. OSGi Ser!ice &latfor+ Core Specification: Jelease -" Gersion -$2. 6qute ,u0lis8in-. PPP. $&1$a. OSGi Ser!ice &latfor+ Core Specification: Jelease 0. 6qute ,u0lis8in-. PPP. $&1$0. OSGi .nterprise Jelease 0. 6qute ,u0lis8in-. VerCssimo3 ,aulo3 9 .uCs Bodri-ues. $&&1. Distributed s5ste+s for s5ste+ arc#itects. Sprin-er. FLires8ar4H. $&1$. 6ccedido Septiem0re $7. 8ttpI))111.1ires8ar4.or-). W8ao21en3 L.3 9 L. Lei2don-. $&&'. FMo0ile 6-ent *ntercommunicatin- Model Aased on Messa-e ,ro?9H. B# Prueba de transmisin en 2+!P IMTP San Martn. Matas Ignacio Ane,o I .rueba de transmisin en 81A. I<T. Para a/ro=imar el costo e=tra en el 0ue se incurre al enviar informacin mediante un comando horizontal utili6ando el /rotocolo de comunicacin entre contenedores de &!D+ conocido como 2+!P *de Light/eight 5xtensible )gent Platform3. se im/lement un servicio sim/le cu)o nico ob5etivo es enviar comandos conteniendo un nico b)te de informacin. +ste servicio. luego de unos segundos de crearse. comien6a con el envo de una secuencia de b)tes 1asta com/letar un total de mensa5es configurable. 2os mensa5es son enviados al contenedor principal *no se dio o/cin de configuracin /ara el destino )a 0ue se trata de una /rueba sim/le. ) este contenedor es el nico bien conocido ) 0ue es obligatorio /ara la e=istencia de la plataforma3. 'inalmente. se utili6 la 1erramienta ;ireshark OVUires1ar:W #$%#P /ara ca/turar ) anali6ar el intercambio /roducido entre dos contenedores *el /rinci/al ) uno aleda"o38 ambos e5ecutando en m0uinas virtuales &ava inde/endientes. dentro de la misma instancia del sistema o/erativo *las caractersticas del entorno de e5ecucin son e0uivalentes a las descri/tas en la seccin A.#3. Como resultado del anlisis descri/to. se /udo identificar 0ue. en el caso ms frecuente. cada comando horizontal llevaba asociado tres segmentos TCP9 %. Con sentido desde el contenedor aleda"o al /rinci/al ) con una longitud de datos *payload del segmento TCP3 de %?@ b)tes. el mensa5e corres/ondiente al comando horizontal *conteniendo el b)te transmitido3. #. Con sentido desde el contenedor principal al aleda"o ) con una longitud de datos de %B b)tes. el mensa5e corres/ondiente a la res/uesta del comando horizontal *notar 0ue dic1a res/uesta es generada /or &!D+ ) no fue determinada /or el servicio im/lementado3. ;. ,n segmento TCP corres/ondiente al !C( del tem anterior *sin datos3. De estos resultados. se entiende 0ue. /ara la /rueba reali6ada. el costo e=tra *en contenido de segmentos TCP3 de transmitir la informacin deseada es de9 %?? b)tes *usados en cam/os de control del comando horizontal3. ms %B b)tes *necesarios /ara la res/uesta3. ! esto se le /ueden sumar los ?? b)tes re0ueridos /ara la informacin de control del con5unto de /rotocolos TCPQIP sobre +t1ernet. /or mensa5e transmitido. Se debe tener en cuenta 0ue. si bien en la ca/tura reali6ada el caso ms frecuente constaba de los tres segmentos mencionados. en rigor. la cantidad de segmentos /uede variar entre dos ) cuatro8 siendo 0ue los nicos obligatorios son los corres/ondientes al comando horizontal ) su res/uesta. ) e=istiendo de forma o/cional dos segmentos ms debido a los res/ectivos !C( B; Prueba de transmisin en 2+!P IMTP San Martn. Matas Ignacio *donde el ltimo !C( solo ser necesario en el caso de 0ue no se re0uiera enviar ms informacin3. 'inalmente. cabe resaltar 0ue los valores a0u /resentados son de/endientes de la /rueba reali6ada. ) 0ue /ara otra informacin transmitida /or otro servicio. los resultados cambiarn. +n /articular. sin 1acer un anlisis detallado del /rotocolo 2+!P IMTP ) de como este re/resenta los datos transmitidos. se /udo observar 0ue /arte del contenido de los segmentos anali6ados *corres/ondientes al comando horizontal3. incluan el nombre del servicio 0ue los originaba. as como tambi-n el nombre de la clase 0ue defina su informacin. B<