Вы находитесь на странице: 1из 106

Un servicio de movilidad de agentes

de software para JADE basado en OSGi


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 '#&#7 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 !&#1 #'%&& #!"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$ !#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 &#5sical 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<

Вам также может понравиться