Introducción a los Agentes
Máster en Servicios Web y Comercio Electrónico
Curso 2006/2007
Curso de Web Semántica
Sergio Ilarri [email protected]
Índice
Introducción al concepto de agenteCaracterísticas de los agentesArquitecturas de agentesPlataformas de agentes
Tres Áreas Relacionadas
Teoría de agentesQué es un agente, cómo se pueden representar sus propiedades formalmente y razonar sobre ellas
Arquitecturas de agentes:Cómo diseñar componentes software que tengan propiedades de agente
Lenguajes de agentes:Cómo programar los agentes
¿Qué es un Agente?
“encapsulated computer system, situated in some environment, and capable of flexible
autonomous action in that environment in order to meet its design objectives” (Wooldridge)
¿Qué es un Agente?
“encapsulated computer system, situated in some environment, and capable of flexible
autonomous action in that environment in order to meet its design objectives” (Wooldridge)
• control sobre el estado interno y comportamiento
¿Qué es un Agente?
“encapsulated computer system, situated in some environment, and capable of flexible
autonomous action in that environment in order to meet its design objectives” (Wooldridge)
• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él
(actuadores)
¿Qué es un Agente?
“encapsulated computer system, situated in some environment, and capable of flexible
autonomous action in that environment in order to meet its design objectives” (Wooldridge)
• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él
(actuadores)• responde a cambios en el entorno (react./adapt.)
¿Qué es un Agente?
“encapsulated computer system, situated in some environment, and capable of flexible
autonomous action in that environment in order to meet its design objectives” (Wooldridge)
• control sobre el estado interno y comportamiento• “siente” el entorno (sensores) y actúa sobre él
(actuadores)• responde a cambios en el entorno (react./adapt.)• actúa para conseguir sus objetivos (proactivo)
OrígenesAgentes y sistemas multiagente:
Conceptos con origen en la Inteligencia ArtificialAuge en los 90 de los sistemas multiagente y los agentes móviles:
paradigma de software adecuado para el desarrollo y explotación de entornos altamente distribuidos y abiertos (ej.: Internet)
El área de los sistemas multiagentes estáinfluenciada e inspirada por muchos otros campos:
Teoría de juegos, lógica, ecología, ciencias sociales, economía, ...
Campos Relacionados
Inteligencia artificialIngeniería del softwareSistemas distribuidosCiencia de las organizacionesBases de datosEconomíaTeoría de juegosVida artificial
Agentes
Son programas:AutónomosActúan en representación de alguienTienen una agenda de objetivos“Inteligentes”, aprenden
Pueden también ser:CooperativosMóviles
Nuevo paradigma de diseño de software:AOSE = Agent Oriented Software Engineering
DefiniciónProblemática
¿Son Éstos Agentes?
Web crawler = spider = antCliente de e-mailVirus
Is it an Agent, or just a Program?: A Taxonomy for AutonomousAgents. Stan Franklin and Art Graesser. Proceedings of the ThirdInternational Workshop on Agent Theories, Architectures, and
Languages, Springer-Verlag, 1996.
Metáfora de los Agentes
Representante del usuarioAutonomíaPersistenciaÉnfasis en comunicación:
Con otros agentesCon el usuario
Especialmente importante si hay dinero en juego
Utilidad de los Agentes
Capacidad de operación en un entorno dinámico, abierto, impredeciblePotencial para utilizar los recursos de Internet Interacción con software legadoModelado de entornos complejosPotencial para software más inteligente (sinergia)Nivel de abstracción natural, modularidad, división de problemas…
Los Agentes No Son
AsistentesLenguajes de scriptLenguajes de programaciónRedes neuronalesSistemas basados en reglasSistemas expertosObjetos
Agentes vs. Objetos (I)
Fuente: Software Agent Technology, Summary Lecture, Heimo Laamanen, 2.5.2006
Agentes vs. Objetos (II)
Ambos encapsulan el estadoLos agentes, además, encapsulan un comportamiento
Los objetos no, dado que no tienen ningún control sobre la ejecución de sus métodos
Obsérvese la diferencia:Invocamos métodos de objetosPedimos a los agentes que ejecuten acciones
Características de los Agentes
Propiedad Otros nombres Significadoreactivos (sentir y actuar) responder a tiempo a cambios en el entorno
autónomos ejercer control sobre las propias accionesproactivos orientados a objetivos no actúan simplemente en respuesta al entorno
persistentes temporalmente continuos son procesos que se ejecutan continuamentecomunicativos sociables se comunican con otros agentes, quizá personas
adaptativos que aprenden cambian su comportamiento con experiencias previasmóviles se pueden mover de máquina a máquinaflexibles similar a adaptativos sus acciones no están pre-programadascarácter personalidad y estado emocional
Importante, por ejemplo en negociaciones
Clasificación(Jennings/Wooldridge)
Débiles Fuertes Otras propiedadesAutonomía Conocimiento/creencias RacionalidadSociabilidad Intenciones SinceridadReactividad Deseos/Objetivos BenevolenciaProactividad Obligaciones Movilidad[Puntualidad] Capacidades Emociones[Persistencia]
Podría ser un proceso UnixCaracterísticas humanas
Propiedades de Noción DébilAutonomía
Control sobre el estado interno y accionesOperación sin interacción directa con otros
Sociabilidad:Interacción entre agentesLenguajes de comunicación
ReactividadPerciben el entorno (GUI, red, etc.) y reaccionan
ProactividadObjetivosToman la iniciativa
Ejemplo de Noción Débil de Agente
SoftbotRobot softwarePercibe el entorno (ls, pwd, etc.)Ejecuta acciones sobre el entorno (mv, cp, etc.)
Noción Fuerte de Agente
Asigna a los agentes atributos humanosNociones mentalistas:
Conocimiento, creencia, intención, obligación, actitud
Incluso agentes emocionales
Actitudes de los Agentes
Actitudes de información:CreenciaConocimiento
Pro-actitudes:DeseoIntenciónObligaciónCompromisoElección…
Estado cognitivo
Estrechamenterelacionadas
Les llevan a ejecutar acciones
Utilidad de Esta VisiónUn interruptor puede considerarse un agente (hardware)
Tiene la capacidad de transmitir corriente a su voluntadPercibe nuestro deseo de encender/apagar la luz cuando lo movemosEs muy cooperativo, pues deja/para la corriente cuando cree que es eso lo que queremos
En este caso, es más fácil una visión mecanicistaPero en otros la visión de agente puede ayudarnos a describir y entender un sistema complejo
Otras Propiedades
Sinceridad/veracidadNo distribuyen información falsa a sabiendas
Benevolencia:No tienen objetivos en conflictoSiempre intentan hacer lo que se les pide
Racionalidad:Actúan para lograr sus objetivosNo hacen cosas que puedan evitarlos
Movilidad
Arquitecturas de Agentes (I)
Metodología para construir agentes:Cómo descomponer en módulosCómo deben esos módulos interaccionarCómo determinar las acciones a realizar a partir del estado interno y los estímulos…
Arquitecturas de Agentes (II)
Tipos:DeliberativasReactivasHíbridas
Deliberativas (I)
Interés en IA desde principios de 1970Inteligencia artificial simbólicaVen a los agentes como un tipo de sistema basado en el conocimiento
Objetivo: programación automáticaAgentes que planifican (deliberan):
Determinan las acciones que tienen que realizar para conseguir un determinado objetivo
Deliberativas (II): STRIPSSTRIPS (1971):
Estado actual/objetivo: fórmulas lógicas
Operadores: precondición, postcondición
Planificación: encontrar una secuencia de acciones que lleve al estado final
Ver cómo las acciones, a través de sus postcondiciones, nos acercan al objetivo
Deliberativas (III): STRIPS
Estado inicial:estado(horno,sucio) & estado(frigorífico, sucio) &
estado(suelo,limpio) & estado(fregadera, limpia) & estado(mesas, limpias)
Estado final:estado(horno, limpio) & estado(frigorífico, limpio) &estado(suelo, limpio) & estado(fregadera, limpia) &
estado(mesas, limpias)
Deliberativas (IV): STRIPS
limpiar_horno:Pre:estado(horno, sucio)Post: Borrar: estado(horno, sucio) & estado(suelo, X)
Añadir: estado(horno, limpio) & estado(suelo, sucio)barrer_suelo:
Pre: estado(suelo, sucio)Post: Borrar: estado(suelo, sucio)
Añadir: estado(suelo, barrido)
Deliberativas (V): STRIPS
STRIPS es:Muy simplePero ineficaz para problemas de complejidad moderada
Por ello, aparecen otras técnicas:Planificación jerárquicaPlanificación no lineal
Deliberativas (VI): BDI
Beliefs (creencias)Modelado del mundo
Desires (deseos)“Estados” que interesan
Intentions (intenciones)Determinación de llegar a un estadoobjetivoLos deseos seleccionados (limitados por losrecursos)
Perseguir lasintenciones hasta
lograrlas o descartarlaspor imposible
Deliberativas (VII): BDI
-
Deliberativas (VIII)
Agente deliberativoRepresenta un modelo simbólico del mundo y toma decisiones mediante razonamiento lógico
Dos problemas:Problema de traducción/representación: comotraducir el mundo real en símbolos (y a tiempo)Problema de razonamiento: cómo razonar con ellos
El agente decide mediante razonamiento lógico, basado en manipulación simbólicay emparejamiento de patrones
Deliberativas (IX)
Investigación en:Visión por computadorInterfaces oralesRepresentación del conocimientoAprendizajeRazonamiento automático Planificación automática
Los agentes deliberativos son demasiado “caros” para tiempo real
Reactivas (I)
Idea:La inteligencia depende del contextoSurge como resultado de la interacción con el entorno
“A reactive system is one whose purpose is to maintain some ongoing interaction with its environment”
(Fisher y Wooldridge)
No hay razonamiento simbólico
Reactivas (II)Entradas(sensores)
Registro deestados
Acciones(actuadores)
Rosenschein et al.
Reactivas (III)
“Intelligent behaviour is an emergent phenomenon arising from the interaction of societies of nonintelligent systems” (Maes)
Reactivas (IV)
Selección de acción:Objetivos que varían en el tiempoContingencias/oportunidadesObjetivos conflictivosSensores “ruidosos”Reaccionar rápido
Reactivas (V)
Brooks (subsumption architecture)Pionero en las arquitecturas reactivasJerarquía de comportamientosCada capa compite con el resto por obtener el controlCapas inferiores representan comportamientos más primitivos (como evitar obstáculos)
Híbridas
Ni completamente deliberativas ni completamente reactivas
Ejemplo: arquitecturas BDI
Híbridas: PRS (I)
PRS = Procedural Reasoning SystemPrimer sistema BDICreencias, objetivos, intenciones y biblioteca de planesEs híbrido porque es activo y reactivo al mismo tiempo
Híbridas: PRS (II)
Bucle de control:Determinar las creencias actuales, objetivos e intenciones
Encontrar planes aplicables en las circunstanciasactuales (biblioteca de planes)
Decidir qué plan aplicar
Ejecutar el plan
Sistemas multiagenteRed de agentes software que interactúan pararesolver problemas que van más allá de lascapacidades individuales o del conocimiento de cadauno (K. Sycara)
Capaces de desarrollar acciones autónomas parala realización de sus tareasCapaces de interaccionar (comunicarse, cooperar, coordinar, negociar) con otros para realizar sustareas
Comunicación:ACLs: KQML, FIPA-ACL, …Intercambio de conocimiento
Ejemplos de Aplicaciones (I)Resolución cooperativa de problemas e Inteligencia Artificial Distribuida
Control de tráfico aéreoRecuperación de información Fabricación asistida por computadorLogísticaControl de procesos de negocioComercio electrónico
Agentes Interface (asistentes personales)Filtro de noticias interesantes o de emailsAgentes “secretarios” (ej., planificación de reuniones)Trabajo cooperativo
Ejemplos de Aplicaciones (II)
Agentes de información y sistemas de información cooperativos:
Muchas fuentes de datos heterogéneas, distribuidas y dinámicas (bases de datos, otros agentes, etc.)
Juegos de ordenador, realidad virtual, cine interactivo
Agentes “creíbles”, con emociones, que parezcan reales
Ejemplos de Aplicaciones (III)
Sistemas complejosLos agentes son una abstracción útil (módulos autónomos especializados en resolver ciertos problemas)Permite abordar un diseño desde un punto de vista de especialistas que cooperan
Computación ubicuaAgentes autónomos (con un objetivo + o - claro)Proactivos (sugieren al usuario)Reactivos (al entorno y necesidades del usuario)Adaptativo (a las preferencias del usuario)
Ejemplos de Aplicaciones (IV)
Encapsulación de sistemas legados
Incorporándolos así en una comunidad de cooperación, permitiendo que otros componentes software los utilicen
Agent wrapper, agentification
Algunos Inconvenientes
No hay perspectiva globalEl control del sistema está distribuidoEl comportamiento detallado del agente sólo puede precisarse en tiempo de ejecuciónEl comportamiento del sistema emerge sólo en tiempo de ejecución
Dudas respecto a su uso en sistemas críticos (como control de tráfico aéreo)
www.multiagent.comAkiraAgent FactoryBee-gent FrameworkCougaarExcaliburJADE, Jadex BDIJATLiteJava Communicating Agents
JACKJESSMAPOAAPRSSIM_AGENTZeusAgent UMLBB1
Referencias (I)An Introduction to MultiAgent Systems, Michael Wooldridge, John Wiley and Sons, 2002
Multiagent Systems: Where game theory, artificial intelligence, distributed programming, and the semantic web meet:http://www.multiagent.com/
AgentLink.org: European Co-ordination Action for Agent-Based Computing:http://www.agentlink.org/
Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents, Stan Franklin and Art Graesser. Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996.
Referencias (II)Intelligent Agents: Theory and Practice, M. J. Wooldridge and N. R. Jennings, (1995), The Knowledge Engineering Review 10 (2) 115-152:http://www.csc.liv.ac.uk/~mjw/pubs/ker95.pdf
Agent-Based Software Development (slides), Michael Luck, Ronald Ashri, Mark d’Inverno:http://www.ecs.soton.ac.uk/~mml/absd/contents.html
UMBC AgentWeb:http://www.cs.umbc.edu/aw/
Enlaces de agentes:http://sid.cps.unizar.es/SILARRI/LINKS/agents.html
Fin
Estándares de Agentes
Máster en Servicios Web y Comercio ElectrónicoCurso 2006/2007
Curso de Web Semántica
Sergio Ilarri [email protected]
Índice
IntroducciónKQMLFIPAMASIF (agentes móviles)¿Otras propuestas?
Necesidades
Para que dos agentes puedan “hablar”:Sintaxis común (ej. KIF)Semántica común (ej. Ontolingua)
Interpretación de mensajesOntologías comunes
Pragmática común (ej. KQML)Saber con quién hablar y cómo encontrarloSaber cómo iniciar y mantener una conversación
Pig!!!
Bitch!Pig!
Je, je
Fuente: “A New Ph.D. Program in Computational Transportation Science”, Ouri Wolfson
La semántica es importante
Teoría Actos del Habla (I)
Estudia el lenguaje como acciónLos hablantes realizan “actos del habla”(informar, preguntar, sugerir, etc.), no sólo expresan sentencias verdaderas o falsasEs decir, tienen una intención, pretenden conseguir un efecto en el oyenteIdentificar el acto del habla es imprescindible para una buena comunicación
Teoría Actos del Habla (II)
En un acto del habla hay 3 elementos:Locución: contexto Ilocución: intenciónPerlocución: acto resultado
Ejemplo: “Cierra la ventana”Locución: quién es el emisor, hay ventana abierta, etc.Ilocución: el emisor quiere que el receptor cierre la ventanaPerlocución: el receptor cierra o no la ventana
Comunicación entre Agentes
Fuente: Software Agent Technology, Summary Lecture, Heimo Laamanen, 2.5.2006
Introducción (I)
Knowledge Query and Manipulation Language
Lenguaje y protocolo de comunicación de alto nivel orientado a mensajes para intercambio de información y conocimiento
Parte del ARPA Knowledge Sharing Effort(KSE), junto con KIF (Knowledge InterchangeFormat)
Introducción (II)
Independiente de:
Mecanismo de transporte: TCP/IP, SMTP, IIOP, etc.
Lenguaje del contenido
Ontología asumida por el contenido
Niveles en KQML
Organización en tres niveles:1) Contenido
Lenguajes de representación: texto, binario,
KIF, SQL, STEP, Prolog, etc.
2) ComunicaciónEmisor, receptor, id. de mensaje, etc.
3) MensajeCodifica los mensajes
Ejemplo de Petición en KQML
(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)
Sintaxis basada en las s-expresiones de Lisp
Ejemplo de Petición en KQML
(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)
Performative
Ejemplo de Petición en KQML
(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)
Argumentos: pares palabra clave/valor
Ejemplo de Petición en KQML
(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)
Nivel de contenido
Ejemplo de Petición en KQML
(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)
Nivel de comunicación
Ejemplo de Petición en KQML
(ask-one:sender joe:content (PRICE IBM ?price):receiver stock-server:reply-with ibm-stock:language LPROLOG:ontology NYSE-TICKS)
Nivel de mensaje
Ejemplo de Petición en KQML
(ask-one:sender joe:content “price(IBM, [?price, ?time])”:receiver stock-server:reply-with ibm-stock:language standard_prolog:ontology NYSE-TICKS)
Usando Prolog estándar
Ejemplo de Petición en KQML
(ask-all:sender joe:content “price(IBM, [?price, ?time])”:receiver stock-server:reply-with ibm-stock:language standard_prolog:ontology NYSE-TICKS)
Podemos pedir un conjuntode respuestas
Ejemplo de Petición en KQML
(stream-all:sender joe:content (PRICE ?VL ?price)…)
Si ?VL es un gran conjuntode símbolos
Ejemplo de Petición en KQML
(standby:content (stream-all
:sender joe:content (PRICE ?VL ?price)…)
)
-standby espera en contenido un mensaje KQML-next/reply-discard/rest
Ejemplo de Petición en KQML
(generate:sender joe:content (PRICE ?VL ?price)…)
Abreviatura de lo anterior
Ejemplo de Petición en KQML(subscribe:content (stream-all
:content (PRICE ?VL ?price))…)
(monitor:content (PRICE ?VL ?price)…)
subscribe perfomative
monitor perfomativeAbreviatura de la anterior
Ontologías
Un vocabulario y significados comunes
Utiliza símbolos/términos para referirse a objetos, atributos y relaciones
Utiliza reglas/restricciones para capturar aspectos significativos del dominio
Ontologías: Ejemplofruta
manzana cítrico
lima limón naranja
-Un agente le pide a otro que le busque fotos de cítricos
-No encuentra fotos de cítricos, pero sabe que los limones son cítricos y sí que encuentra fotos de limones
Performatives en KQMLIndican el tipo de mensaje: afirmación, consulta, petición, etc.También llamados actos de comunicación (speech acts)
Aunque en KQML no se usa este término
Teoría de los actos de comunicación:Teoría sobre cómo las expresiones verbales se utilizan para lograr ciertas intencionesSon “acciones” en el sentido de que pretenden lograr un cambio
Atributos Reservados
Nombre Breve Descripción
:content La información contenida en el mensaje
:sender El emisor del mensaje
:receiver El receptor del mensaje
:languageEl nombre de lenguaje de representación utilizado en el atributo :content
:ontology El nombre de la ontología utilizada en el atributo :content
:reply-with Etiqueta para la respuesta
:in-reply-to La etiqueta esperada en la respuesta, de acuerdo con :reply-with
Performatives (I)
Categoría TiposInformación tell, untell
Consulta evaluate, reply, ask-if, ask-about, ask-one, ask-all, sorryConsulta con respuesta múltiple stream-about, stream-all
Orden achieve, unachieve
Control de respuestas standby, ready, next, rest, discard
Capacidad advertise
Notificación subscribe, monitor
Red register, unregister, forward, broadcast, pipe, break
Facilitaciónbroker-one, broker-all, recommend-one, recommend-all, recruit-one, recruit-all
Performatives (II)
Nombre Breve Descripción
tell Se comunica una información al agente destino
evaluate Se pide al agente destino que evalúe una expresión
reply Se comunica al agente una respuesta que espera
ask-if Se pregunta al agente destino si sabe si cierto hecho es cierto
ask-about Se pregunta al agente destino todo lo que sepa acerca de una cierta expresión
ask-one Se hace una pregunta al agente destino
stream-about Versión en respuesta múltiple de ask-aboutachieve Se pide al destino que convierta en verdadera la expresión comunicada
Ejemplos
Performatives (III)
Nombre Breve Descripción
standby Se indica que se queda a la espera de respuestas
ready Indica que se está preparado para responder a un mensaje
nextSe pide la devolución de la siguiente respuesta de una pregunta con respuesta múltiple
advertiseAnuncia que se está preparado para responder a una determinada performative
register Se indica al destino la presencia y el nombre simbólico
broadcast Se pide al destino que envíe a todos los agentes que conozca
recommend-oneSe pide al destino la recomendación de un agente que pueda responder
recruit-one Se pide al destino un agente que pueda responder
Ejemplos
Ejemplo I
Pregunta
(ask-one :content (interested ‘(sobre, bloqueA, ?x)):language KIF :ontology bloques :reply-with q1)
Respuesta
(reply :content (sobre bloqueA bloqueB) :language KIF :ontology bloques :in-reply-to q1)
Ejemplo IIPregunta
(stream-about :content bloqueA :language KIF :ontology bloques :reply-with q1)
Respuestas
(tell :content (sobre bloqueA bloqueB) :language KIF :ontology bloques :in-reply-to q1)
(tell :content (sobre mesa bloqueA) :language KIF ::ontology bloques :in-reply-to q1)
(sorry :in-reply-to q1)
Ejemplo III
Pregunta
(achieve :content (sobre mesa bloqueB) :language KIF:ontology bloques :reply-with q1)
Respuesta (tras hacer la tarea pertinente)
(tell :language KIF :ontology bloques :in-reply-to q1 :content (sobre mesa bloqueB))
Criterio de DiseñoQue KQML pueda soportar una gran variedad de arquitecturas de agentes:
Pequeño número de performativesRouters KQML:
Punto de contacto entre el agente y la red (entrada/salida de mensajes)
Agentes facilitadores de comunicaciónPara el envío de mensajes cuyo destino no se especifica con precisión:
Registro de nombres de serviciosCada router se anuncia a su facilitador local
Algunos Protocolos Básicos
Agente 1 Agente 2ask-onereply
Agente 1 Agente 2
subscribereply
replyreply
Algunos Protocolos Básicos
Agente 1 Agente 2
query (ej., stream-all)
manejador
next
reply
next
reply
Agentes Facilitadores de Comunicación
Clase de agentes especial que realiza diversos tipos de servicios de comunicación como:
Mantener un registro de nombres de serviciosEnviar mensajes a servicios con nombreEncaminar mensajes en función del contenidoEmparejar proveedores de información y clientesProporcionar servicios de mediación y traducción
Ejemplo 1
Tell(X)
F
A B
Ask(X)
Si A conoce a B, puede preguntarle directamente
Ejemplo 2
tell(X)
Si A no conoce a B, puede preguntar a través del mediador
F
A B
subscribe(ask(X))tell(X)
1
2
3
Ejemplo 2
tell(X)
Si A no conoce a B, puede preguntar a través del mediador
F
A B
subscribe(ask(X))tell(X)
1
2
3
Performative subscribe
Ejemplo 3
tell(X)
F
A B
broker(ask(X))tell(X)
advertise(ask(X))
ask(X)
1’
1
2
3
4
Si A no conoce a B, puede preguntar a través del mediador
Ejemplo 3
tell(X)
F
A B
broker(ask(X))tell(X)
advertise(ask(X))
ask(X)
1’
1
2
3
4
Si A no conoce a B, puede preguntar a través del mediador
Performative broker
Ejemplo 4
F
A B
recruit(ask(X))advertise(ask(X))
ask(X)
1’
1
2
tell(X)3
Ejemplo 4
F
A B
recruit(ask(X))advertise(ask(X))
ask(X)
1’
1
2
tell(X)3
Performative recruit
Ejemplo 4
F
A B
recruit(ask(X))advertise(ask(X))
ask(X)
1’
1
2
tell(X)3
Las respuestas las envía B directamente al agente originalPiensa en el ejemplo: recruit(subscribe(ask-all(x)))
Ejemplo 5
Frecommend(ask(X))
A B
advertise(ask(X))1’
1
3
2
reply(B)
ask(X)
tell(X)4
Ejemplo 5
Frecommend(ask(X))
A B
advertise(ask(X))1’
1
3
2
reply(B)
ask(X)
tell(X)4
Performative recommend
Lenguajes de Contenido
Knowledge Interchange Format (KIF)
Knowledge Representation SpecificationLanguage (KRSL)
Lenguajes más tradicionales como SQL, etc.
Lenguajes de Contenido: KIFKnowledge Interchange FormatVersión extendida de una lógica de predicados de primer orden Ampliamente usado entre sistemas basados en el conocimientoEjemplos (notación prefija):
(exists ?person (mother mary ?person))(=> (apple ?x) (red ?x))(forall ?x (=> (P ?x) (Q ?x)))
Semántica en KQMLInicialmente, definida sólo parcialmente de modo informalElementos:
PrecondicionesPara que un agente envíe una performativePara que otro agente la reciba y procese con éxito (si no, devuelve error o sorry)
PostcondicionesEstado posterior de emisor y receptor
Condición de finalización
Lenguaje de actitudes mentales: creencia, conocimiento, deseo e intención
Introducción
robots, humanos
Foundation for Intelligent PhysicalAgentsAsociación sin ánimo de lucroObjetivo: promover la utilización de la tecnología de agentes y desarrollar especificaciones para posibilitar la interoperabilidad entre sistemas
Especificaciones FIPA (I)
Especificaciones FIPA (II)
FIPA ACL Message Structure Specification (2002-12-06)FIPA Ontology Service Specification (2001-08-15, experimental)
Especificaciones FIPA (III)
Protocolos de interacciónContract Net, Iterated Contract Net, Subscribe, Request, etc.
Actos de comunicación (2002-12-06)
accept, agree, confirm, query, query-ref, etc.
Lenguajes de contenidoSL (Semantic Language, 2006), CCL (Constraint ChoiceLanguage , 2001), KIF (Knowledge Interchange Format, 2003), RDF (Resource Description Framework , 2001)
Especificaciones FIPA (IV)
Gestión de agentesFIPA Agent Management Specification (2004-03-18)
Creación, registro, deregistro, búsqueda, comunicación, movimientos, etc.
FIPA Agent Discovery Service Specification(2003-11-10, preliminar)
Descubrimiento de servicios en redes ad-hoc
FIPA JXTA Discovery Middleware Specification(2003-11-10, preliminar)
Especificaciones FIPA (V)
Transporte de mensajes de agentesFIPA Agent Message Transport ServiceSpecification (2002/12/03)FIPA Messaging Interoperability ServiceSpecification (2002-04-22, experimental)
Agentes móviles FIPA00087, deprecado en Mayo de 2002
FIPA ACL (I)Sintaxis similar a KQML
Las primitivas de comunicación se llaman communicative acts (CAs) en lugar de performatives
Para definir la semántica de los CAs, se utiliza SL (Semantic Language)
FIPA ACL (II)Elementos en SL: creencias, deseos, creencias inciertas, intenciones (primitivas tipo BDI)
La semántica de un CA se especifica mediante fórmulas en SL que describen:
Precondiciones de realización (para el emisor)Efecto racional esperado
Podría producirse o no, según el receptor
Ejemplo(inform:sender (agent-identifier :name i):receiver (agent-identifier :name j):content ”door( now, open )":language Prolog)
Ejemplos de CAs¿Está abierta la puerta?
Abre la puerta
De acuerdo, abriré la puerta
La puerta está abierta
No puedo abrir la puerta
No abriré la puerta
Avísame cuando esté abierta la puerta
¿Alguien puede abrirme la puerta?
Puedo abrir la puerta por ti... a un cierto precio
¿Puerta? ¿Qué es eso? Lo siento, no te entiendo
query
request
agree
inform
failure
refuse
subscribe
cfp
propose
not-understood
los básicos
Ejemplo de Interacción: Query Interaction Protocol
Otro ejemplo de excepción: not-understood
Excepciones
conversation-id
KQML vs. FIPA ACL (I)Sintaxis idénticaNo especifican el lenguaje de contenidoDescripción semántica:
KQML (informal)Elementos: precondiciones, postcondiciones, condiciones de finalizaciónLenguaje: creencia, conocimiento, deseo e intención
FIPA (SL)Elementos: precondiciones de realización y efecto racionalLenguaje: creencias, deseos, creencias inciertas, intenciones
KQML vs. FIPA ACL (II)
FIPA no tiene primitivas de facilitación (variantes de broker, recommend, recruit)
Plataforma de Agentes FIPA
AMS DF ACC
Plataforma de transporte de mensajes
AAagentes
AP (Agent Platform)Los agentes residen en plataformas de agentes, que proporcionan ciertosservicios
IIOP
Plataforma de Agentes FIPA
AMS DF ACC
Plataforma de transporte de mensajes
AAagentes
AMS (Agent Management System): agente que proporciona servicios de gestión del ciclo de vida (creación, borrado, pausa, etc.), servicio de nombres(registro y búsqueda) y autentificación
IIOP
Plataforma de Agentes FIPA
AMS DF ACC
Plataforma de transporte de mensajes
AAagentes
DF (Directory Facilitator): agente que proporciona un servicio de páginas amarillas, que describe losatributos y capacidades de los agentes de la plataforma
IIOP
Plataforma de Agentes FIPA
AMS DF ACC
Plataforma de transporte de mensajes
AAagentes
ACC (Agent Communication Channel): agente que se encarga de la entrega de mensajes entre agentes situados en la misma o en distintas plataformas
Soporta IIOP para interoperar con otrasplataformas
IIOP
Algunas Plataformas FIPA
Tryllian Agent Development Kit (www.tryllian.org)
FIPA OS (http://fipa-os.sourceforge.net/)
Grasshopper (ya no es gratuita)
JADE (http://jade.cselt.it/)
LEAP (http://leap.crm-paris.com/)
Otras en: http://www.fipa.org/resources/livesystems.html
MASIF
Es un estándar para agentes móviles...
Por tanto, siento defraudaros pero lo comentaremos más adelante
Otras PropuestasInteragent Communication Language (OAA, Open Agent Architecture, de SRI International)
Lenguaje declarativo basado en lógica (sintaxis Prolog)Capaz de representar expresiones en lenguaje naturalSe expresa qué se desea, no cómo ni quién debe hacerlo (delegated computing, facilitator agents)Facilidades para comunicación humanos-agentes: voz/escritura, GUIs, etc.
Referencias (I)Agent Communication Languages: The Current Landscape, Y. Labrou, T. Finin, Y. Peng, IEEE Intelligent Systems 14(2): 45-52, 1999
KQML as an Agent Communication Language, T. Finin R. Fritzson, D. McKay, R. McEntire, Third International Conference on Information and Knowledge Management (CIKM’04)
Evaluation of KQML as an Agent Communication Language, Intelligent Agents Volume II -- Workshop on Agent Theories, Architectures, and Languages, Lecture Notes in Artificial Intelligence, Springer-Verlag, 1996
Referencias (II)KQML Papers and presentations, UMBC KQML Web, Tim Finin, UMBC Lab for Advanced Information Technology:http://www.cs.umbc.edu/kqml/papers/
The Foundation for Intelligent Physical Agents (FIPA): http://www.fipa.org/
MASIF, the OMG Mobile Agent System Interoperability Facility, Dejan Milojičić y otros, Mobility: processes, computers, and agents, 1999:http://www.hpl.hp.com/personal/Dejan_Milojicic/ma4.pdf
Mobile Agent Facility Specification (listado bajo la cabecera de CORBA Common Facilities):http://www.omg.org/cgi-bin/doc?formal/2000-01-02
Fin
Tecnología de Agentes Móviles
Máster en Servicios Web y Comercio Electrónico
Curso 2006/2007
Curso de Web Semántica
Sergio Ilarri [email protected]
Índice (I)
Caracterización de la Movilidad
Agentes Móviles: Definición, Ventajas, Aplicaciones
Movilidad: Fuerte y Débil
Plataformas de Agentes Móviles
Índice (II)
SPRINGSProxies DinámicosProblema de Livelock
MASIF
Ejemplos de Sistemas Basados en Agentes Móviles
Agentes vs. Agentes Móviles
Agentes: Inteligencia artificialSon “inteligentes”Pueden moverse o no
Agentes móviles:Computación distribuidaSon móvilesPueden ser inteligentes o no
Conflicto y esperada reconciliación
Agentes Móviles: DefiniciónAgentes software:
Se mueven de ordenador a ordenadorA petición del usuario, autónomamenteEjemplo: gestión de viajes
Soportan usuarios móviles
(asíncronos)
Los Ancestros...
Frente al paradigma clásico cliente/servidor, surge la idea de movilidad de código
Código móvil:Evaluación remotaCódigo bajo demandaProcesos móviles
Paradigma Cliente/ServidorAproximación clásica en sistemas distribuidosCliente y servidor estáticosEl cliente le pide algo al servidorEl servidor lo hace y le devuelve al cliente un resultadoConceptos de lenguajes de programación:
RPCRMIServicios web
Frente a C/S, los agentes móviles Paradigma de diseño alternativoParadigma de diseño complementario
Paradigma de Evaluación Remota
Remote Evaluation (REV)Extiende la idea de RPCEl cliente envía código al servidor para que lo ejecuteEjemplos:
El lenguaje Postscript para impresorasEl envío remoto de trabajos por lotesNCL (Network Command Language)SQL remoto
Paradigma de Código Bajo Demanda
Code-on-demandTambién se envía código... pero del servidor al clientePor tanto, se usan recursos del clienteEjemplo: applets de Java
Procesos Móviles
Área de los sistemas operativos distribuidos (finales de los 80)Migración de procesos para balancear cargaEjemplo: SpriteEjemplo de técnica de implementación: checkpointing
Imágenes periódicasEnvío de la imagen
Procesos vs. Agentes Móviles
Frente a los procesos móviles, los agentes móviles:
No sólo se mueven por balanceo de cargaAcceso a servicios
La migración no la inicia el SO o middleware
Agente autónomo
No sólo se mueven una vezMigración multi-salto, itinerario
Caracterización de la Movilidad
Códigomóvil
Com
puac
ión
móv
il
Estado
móvil
RPC, RSH, RMI, servlets,procedimientos almacenados
Instalación remota,applets
Checkpointing
Movilidaddébil
Movilidadfuerte
Migraciónde
procesos
Adaptado de una transparencia de Niranjan Suri([email protected])
Agentes Móviles
Programa que se ejecuta en un cierto contexto de ejecución o place, y viaja de place a place
Capaces de transportarse a sí mismos entre ordenadoresNecesita cierta infraestructura (plataforma de agentes)Agentes móviles ≠ código móvil
Alternativa a RPC, pero también es una tecnología complementaria
Agentes Móviles (I)
Espera un poco…Toma el resultadoUsando conexión inalámbrica
Agentes Móviles (II)
Agente móvil: programa que puede cambiar de ordenador (código+ datos+ estado) para llevar acabo su tarea
Entorno de ejecuciónEl entorno comprueba sus credencialesSe ejecuta autónomamentePara realizar su tarea: trasladarse a otras máquinas, usar recursos locales/remotos, interactuar con otros agentes, crear nuevos agentes y diseminarlos, etc..Una vez realizada su tarea, el agente lleva o envía los resultados al cliente, u otro servidor, destinatario, etc...
Características Básicas
Algunas características interesantes de los agentes (móviles)Autonomía: no/mínima interacción con el creadorInteroperabilidad: hardware, SO, etc.Reactividad: cambios/eventos del entornoCooperación: objetivo común“Inteligencia” (especialistas)Movilidad (code-shipping vs. data-shipping)
Agentes móviles en particular (sinergia)
VentajasEvitan instalaciones innecesarias“Salvan” la latencia de red: comunicación localEncapsulan protocolos (bases de datos, etc.)Asíncronos/autónomos: desconexionesAdaptativosReaccionar entornoMoverse: balanceado de carga, localidad datosIntegración de sistemas heterogéneosRobustez/tolerancia a fallosAdaptación de interfaces
Aplicaciones (I)Recuperación de información distribuida (ej., motores de búsqueda de música o gráficos)Procesamiento paraleloAsistente personalDiseminación de informaciónComercio electrónico (agentes que compran como nosotros)Gestión de red
heterogeneidad, monitorización, personalización, enrutamiento
Aplicaciones de workflowBrokeringEntornos distribuidos: entornos móviles, ubicuos, inteligentes, P2P, etc.Otros
Aplicaciones (II)
¿Y la killer application?No hay¿Cómo puede defenderse un lenguaje estructurado frente a un lenguaje ensamblador?
Agentes Móviles en Computación Móvil
Apropiados para computación inalámbrica:Desconexiones:
Breve conexión: se envía el agente a la red fijaPosteriormente: se recupera el agente de la red fija
Descarga de trabajo del clienteContribuyen a limitar el uso de las comunicaciones inalámbricas:
Reduce los datos a intercambiar por el enlace inalámbrico Evita interacciones entre cliente y servidorSólo hay que comunicar el agente y el resultado
Agentes Móviles y Java (I)
Normalmente, el lenguaje en que se implementa la plataforma de agentes móviles y los agentes coincide
Salvo Tacoma (plataforma en C; agentes en C, Tcl/Tk, Perl, Python, Scheme)D’Agents (plataforma en C; agentes en TCL, Scheme, Java)
La mayoría de plataformas de agentes móviles son en Java
Agentes Móviles y Java (II)
Ventajas:PortabilidadOrientado a objetosMuchas librerías (programación en red, etc.)Seguro:
Ejecutado en una JVM (no acceso directo al SO)No hay punterosByte-code verifierSecurity Manager (red, ficheros, etc.)Formato en código intermedio (fácil comprobación de violaciones de seguridad)
Agentes Móviles y Java (III)
Desventajas:No permite capturar el estado de ejecuciónCarencia de control de recursos (memoria, CPU)
Ataques de denegación de servicios
Movilidad: Cómo FuncionaLos agentes móviles se crean en places y viajan entre places
moveTo(newHost)Se interrumpe la ejecución del threadSe serializa el código, datos y (quizá) el estado de ejecución del agente (qué estaba ejecutando):
Movilidad fuerte y movilidad débil
El agente se reconstruye en el place destino y continúa su ejecución
Movilidad Fuerte
public class AgenteMovFuerte extends Agente{
public static void main(String[] args){
System.out.println(“En ordenador origen”);moveTo(destino);System.out.println(“En ordenador destino”);
}}
Dificultades:-No es posible con Java estándar-No todos los recursos son móviles: múltiples threads, ficheros abiertos, etc.
Movilidad Débil (Voyager)public class AgenteMovDebil extends Agent {
public void metodoDestino (Object init) {System.out.println (“En ordenador destino”);
}public void move(String destino) {
Iagent proxy = Agent.of(this);System.out.println (“En ordenador origen”);proxy.moveTo(destino, “metodoDestino”);
}}
public static void main(String[] args) {Voyager.startup("8000"); String serverClass = "AgenteMovDebil"; AgenteMovDebil ag = new AgenteMovDebil(); ag.move("tcp://fargo.sdsu.edu:8000");
}
Movilidad Fuerte vs. Débil (I)Movilidad débil
No se transfiere el estado de ejecuciónEn destino, se ejecuta siempre un método predefinido o un método callback especificado por el programadorEl programador guarda y restaura el estado de ejecución
Movilidad fuerteSe transfiere el estado de ejecuciónPlataformas basadas en lenguajes de scriptPlataformas basadas en Java:
Preprocesado para cambiar el código y capturar “a mano” el estadoModificaciones a la máquina virtual de Java
Movilidad Fuerte vs. Débil (II)
Baumann [1995] señala que la movilidad fuerte es inútil
Un movimiento es un gran cambio en la vida del agenteEl agente ejecuta “fases” y ninguna implica varios places
Cabri et. al. [2000] indica que la movilidad fuerte lleva a un código más limpioNosotros decimos que... la movilidad fuerte no es necesaria y es difícil de implementar (aunque podría ser útil)
Transferencia de CódigoVarias estrategias:
PushSe envía el agente y las clases que usa
PullEl agente irá pidiendo las clases que necesitaPeligra la autonomía
Estrategias híbridasLas clases que es más probable que necesite, con push,el resto con pull
Migraciones a menor granularidad: Kalong (Tracy)Permite especificar qué clases se transmiten de quéformaPermite transmitir datos bajo demanda
Reflexión
¿Puede, en algún caso, sobrecargarse la red más usando agentes móviles que no usándolos?¿Alguna otra cosa que haya que considerar?
Canales de comunicación asimétricos (ej., dispositivo móvil utilizando GPRS)
Modelos de Comunicación
Paso de mensajesAsíncronosSíncronos
Comunicación remotaInformation spaces
BlackboardCada dato tiene un identificador que debe especificar el lector
Espacio de tuplasPermite recuperar información de manera asociativa, usando pattern-matching
Plataformas de Agentes Móviles
AgletsVoyagerTryllianGrasshopperJade, Tracy, Mole, SeMoa, …Todas presentan muchos problemas...
Por ejemplo, de escalabilidad y concurrenciaPor ello, desarrollamos SPRINGS
SPRINGS
Escalable, mucho mejor rendimiento(3000 agentes en test exigente)Transparencia de localización:
Llamadas: proxies dinámicoscallAgentMethod(“MovingAgentExample”,”go” args);
Movimientos: callbacksmoveTo("C2","end");
Reintentos automáticosPrevención de livelock
http://sid.cps.unizar.es/SPRINGS/
Región k
Nodo k (RNS)
RNS
Region 1 Region nNode 1 (RNS) Node n (RNS)
RNS RNS
Agent1
Context1
Agent5
Node 2
Agent2
UpdaterProxy
UpdaterProxy
Proxy Collector
ProxyUpdater
UpdaterProxy
Context2Context4Context3
Node 3
Node 4
Agent7Agent3
Agent4
Agent6
ContextCollector
Proxy
ManagerContext
ContextManager
Proxy CollectorManager
Context
Manager
Proxy Collector
SPRINGS: Arquitectura
Proxies Dinámicos
Proxy a Agente1
Contexto C1
Contexto C2
C1
Estoy en C2
C2
Estoy en C3
C3
Contexto C4
Contexto C3
Problema de Livelock
Proxy a Agente1
Contexto C1
C1
Estoy en C2
C2ERROR
ERROR
Contexto C2Contexto C4
Contexto C3
Problema de Livelock
Contexto C1
Contexto C2Contexto C4
En SPRINGS
-Primero se actualizan los proxies, luego se renuda el agente
-Se retardan agentes muy rápidosContexto C3
Comparación con 100 Agentes
0500
100015002000250030003500400045005000
0:00
0:30
1:00
1:30
2:00
2:30
3:00
3:30
4:00
4:30
5:00
5:30
6:00
6:30
7:00
7:30
8:00
8:30
9:00
9:30
10:00
Test time (in minutes)
#ite
ratio
ns
SPRINGS Voyager Aglets Grasshopper Tryllian
Todos los agentes acaban4600, 89 acaban
2600, 0 acaban2040, 33 acaban
600, 1 acaban#ite
raci
ones
Tiempo de test (minutos)
Introducción (I)
Mobile Agent System Interoperability FacilityPrimer estándar para sistemas de agentes móviles (Grasshopper es el primero que lo considera)Especificación de OMGLa Request for Proposal se emitió en noviembre de 1995Se acepta en febrero de 1998 Última versión de la especificación: 2000
Introducción (II)Objetivo: lograr un cierto grado de interoperabilidad entre plataformas de agentes móviles de distintos fabricantesEstas especificaciones no son la base de un sistema de agentes, sino que pueden “añadirse” a sistemas ya existentesEstandariza:
Gestión de agentesSeguimiento de agentesTransporte de agentesNombrado
Niveles de Estandarización (I)
Gestión de agentes:Crear agentes remotamente, pararlos, arrancarlos, y otras funciones relacionadas con el ciclo de vida
Seguimiento de agentes:Localización de agentes en un entorno distribuido, consultas remotas a directorios de agentes en distintas plataformas
Transporte de agentes:Envío y recepción de ficheros de clases entreplataformas, hacerlas disponibles para ejecución
Niveles de Estandarización (II)
Nombrado:Sintaxis y semántica estandarizada para los nombres de agentes y sistemas de agentes
MASIF no considera la comunicación entre agentes
En cierto modo, ligado a CORBA
Terminología de Referencia
PlaceEntorno de ejecución de agentes
AgencySistema de agentesPuede tener varios placesPuede crear, ejecutar y transferir agentes
RegionConjunto de agencies que pertenecen a una misma unidad administrativa
Estándares MASIF (I)Definidos en términos de servicios CORBAestándar
De nombres, ciclo de vida, externalización, seguridad
Los estándares se recogen en dos IDLs:
MAFFinder
MAFAgentSystem
Estándares MASIF (II)
MAFFinderregister_agent, register_agent_system, register_place, lookup_agent, lookup_agent_system, lookup_place, unregister_agent, unregister_agent_system, unregister_place
Estándares MASIF (III)
MAFAgentSystemcreate_agent, fetch_classreceive_agentresume_agent, suspend_agent, terminate_agentlist_all_agents…
Algunas Plataformas MASIF
Grasshopper (ya no es gratuita, Enago Mobile, IKV++)
SOMA (http://www-lia.deis.unibo.it/Research/SOMA/)
Aglets (http://aglets.sourceforge.net/)
Próximamente... SPRINGS
Simulación de Entornos Móviles (I)
•Entorno móvil:
-Proxies
-Objetos móviles
Place
Agente móvil
•El agente móvil se ejecuta siempre en el proxyque daría cobertura al objeto que representa
•Pueden mezclarse en un mismo escenario objetosy proxies reales y simulados
Simulación de Entornos Móviles (II)
Simulación de Entornos Móviles (III)
Algunas ventajas de usar agentes móviles:
Mayor paralelismo con la realidadInteracciones locales, aumenta la precisiónPermite una fácil distribución de recursos, mayor escalabilidadPodríamos acceder a servicios de proxiesreales no disponibles remotamente
Simulación de Entornos Móviles (IV)
Reutilización del código original del servicio a testear (Plug & Simulate)Problema:
Si el objeto móvil a simular contiene agentes (móviles), tendremos en simulación agentes móviles que “contienen” agentes
S. Ilarri, E. Mena and A. Illarramendi, "Testing Agent-based Mobile Computing Applications Using Distributed Simulations", Seventh International DEXA Workshop on Mobility in Databases and Distributed Systems (MDDS'2004), Zaragoza (Spain), IEEE Computer Society, ISBN 0-7695-2195-9, ISSN 1529-4188, pp. 652-656, September 2004.
Integración de Referencias Bibliográficas (I)
Existen dos máquinas que almacenan citas bibliográficas en ficheros
Independientes, controladas por grupos distintos
Las citas pueden contener errores o inconsistencias, o estar duplicadasQueremos integrar la información de ambas fuentes de bibliografía en una tercera máquina
Integración de Referencias Bibliográficas (II)
Algunas ventajas de usar agentes móviles:
Pueden traernos sólo la información relevante (filtrado de datos)Podemos cerrar el navegador (e incluso apagar el ordenador) mientras el agente trabaja
ADUS (I)
Adaptación dinámica de interfaces de usuarioUn agente móvil llega al PDA y se crea el GUIen función de las capacidades del dispositivo y preferencias del usuarioEl GUI se crea localmente a petición del agente móvil que llega
Por tanto, no es preciso que el agente móvil sepa crear GUIs para distintos tipos de dispositivosLo único que trae es una especificación del GUIque necesita (en lenguaje XUL)
N. Mitrovic, J.A. Royo and E. Mena, "ADUS: Indirect Generation of User interfaces on Wireless Devices", Fifteentth International Workshop onDatabase and Expert Systems Applications (DEXA'2004), Seventh International Workshop Mobility on Databases and Distributed Systems (MDDS'2004), IEEE Computer Society, ISBN 0-7695-2195-9, ISSN 1529-4188, pp. 662-666, September 2004.
LRSLocker Rental ServiceUn usuario móvil puede alquilar espacio de disco en la red fijaConforme se mueve de un sitio a otro, puede ser conveniente que sus ficheros “le sigan”: agentes móviles
Interacciones más cercanas, ahorrando comunicaciones
Y. Villate, A. Illarramendi and E. Pitoura, "Keep Your Data Safe and Available While Roaming", International Journal of Mobile Networks and Application (MONET), Special Issue on Pervasive Computing, 7(4):315-328, August 2002.
SRS (I)
Software Retrieval ServiceAlternativa a sistemas tipo Tucows
Permite buscar software en base a requerimientos semánticosUna ontología contiene una descripción semántica del software disponible en distintos repositorios
SRS (II)
Se usan distintos tipos de agentes. Por ejemplo:
Un agente móvil trae un catálogo de software al dispositivo del usuario
Evita traer información de software no instalable (ej., para otro SO)
Un agente móvil trae finalmente el software deseado y lo instala
E. Mena, J.A. Royo, A. Illarramendi and A. Goñi, "An Agent-based Approach for Helping Users of Hand-Held Devices to Browse Software Catalogs", Cooperative Information Agents VI, 6th International Workshop CIA 2002, Lecture Notes on Artificial Intelligence (LNAI), ISBN 3-540-44173-5, pp. 51-65, September 2002.
LOQOMOTION (I)
LOcation-dependent
Queries
On
Moving
ObjecTs
In
mObile
Networks
2 tipos de elementos:•Proxies
-gestionan información de localización-alojan un place
•Objetos móviles-dispositivos móviles-acceden a los proxies y emiten preguntas-son objeto de preguntas
Ej.: Monitorizar la posición de los coches de policía cercanos a un coche robado
LOQOMOTION (II)
P2P5
P6
P4 P3
P1
Monitor
P0
(1)
(3)(3)
(2)(2)
(3)
(3)
(3)
DMS
MonitorTracker
Tracker
Updater
DMS
MonitorTracker
Tracker
Updater
Red de agentes
LOQOMOTION (III)
Ventajas de los agentes móviles:Seguimiento eficiente de los objetos móviles de interésOptimización de las comunicaciones inalámbricasSoporte para el procesamiento distribuidoNo necesidad de mantener servidores especializados en los proxies
LOQOMOTION (IV)
http://sid.cps.unizar.es/ANTARCTICA/LDQP/index.html
S. Ilarri, E. Mena and A. Illarramendi, "Location-Dependent Queries in Mobile Contexts: Distributed Processing Using Mobile Agents", IEEE Transactions on Mobile Computing, ISSN 1536-1233, 5(8):1029-1043, IEEE Computer Society, August 2006.
LOQOMOTION (V)
Prototipo: Juan Luis Serrano
S. Ilarri, J.L. Serrano, E. Mena and R. Trillo, "3D Monitoring of Distributed Multiagent Systems", International Conference on Web Information Systemsand Technologies (WEBIST’07), Barcelona (Spain), INSTICC Press, ISBN ???, pp. 4, March 2007.
Otros (I)
REMOTE: Request Management fOrTask Execution
Música/televisión que sigue al usuario
Andante (agentes móviles musicales)
Otros (II)
¡Incluso servicios de contactos!
Hi, what'syour name?
Sofia, andyours?
Conclusiones (I)
Los agentes móviles tienen ventajas muy atractivasSon un paradigma de programación complementario al de cliente/servidorSe han aplicado en distintos campos con buenos resultadosHay diversas plataformas... la mejor de las cuales es SPRINGS
Conclusiones (II)
Hemos presentado (por encima) diversos ejemplos de servicios... Y si tenéis interés en más detalles, ¡sólo tenéis que decirlo!
Referencias (I)Understanding Code Mobility, A. Fuggetta, GP. Picco, G. Vigna, IEEE Transactions on Software Engineering, Vol. 24, No. 5, May 1998, pp. 362-375
Mobile Agents for Mobile Computing, Kotz D., R. Gray, D. Rus, S. Nog, G. Cybenko, Technical Report PCS-TR96-285, May 1996, Computer Science Department, Dartmouth College
Seven Good Reasons for Mobile Agents, Danny B. Lange, Mitsuru Oshima, Communications of the ACM, Volume 42 , Issue 3 (March 1999), pp. 88-89, ACM Press, ISSN:0001-0782, 1999
Referencias (II)Wireless Computational Models: Mobile Agents to the Rescue, C. Spyrou, G. Samaras, E. Pitoura, P. Evripidou, DEXA99 International Workshop on Mobility in Databases and Distributed Systems, August 1999, pp 428-433, IEEE Computer Society
SPRINGS: A Scalable Platform for Highly Mobile Agents in Distributed Computing Environments, S. Ilarri, R. Trillo and E. Mena, 4th International WoWMoM 2006 workshop on MobileDistributed Computing (MDC'06), Buffalo, New York (USA), IEEE Computer Society, ISBN 0-7695-2593-8, pp. 633-637, June 2006
Mobile Agents: Basic Concepts, Mobility Models, and the Tracy Toolkit, Peter Braun and Wilhelm R. Rossak, Morgan KaufmannPub., 464 pages, ISBN 1558608176
Referencias (III)Mobile Agents and Security, Giovanni Vigna (Ed.), Lecture Notes in Computer Science 1419 Springer 1998, ISBN 3-540-64792-9
Research Group of Distributed Information Systems (SID),http://sid.cps.unizar.es/
Links About Mobile Agents, http://sid.cps.unizar.es/SILARRI/LINKS/mobileAgents.html
SPRINGS, http://sid.cps.unizar.es/SPRINGS/
Aglets, http://aglets.sourceforge.net/
Tryllian, http://www.tryllian.org/
Voyager, http://www.recursionsw.com/
Jade, http://jade.tilab.com/
Fin