arquitectura y funcionalidad de salsa presentado por marcela rodríguez [email protected]...

53
Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez [email protected] Noviembre, 2004

Upload: fidel-vasconcelos

Post on 28-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Arquitectura y funcionalidad de SALSA

presentado porMarcela Rodríguez

[email protected]

Noviembre, 2004

Page 2: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Cómputo Ubicuo• Agentes• Arquitectura de SALSA• Sistema basado en SALSA• API de SALSA• Hola Mundo de SALSA

Page 3: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Definiciones

“La creación de ambientes saturados de computación y comunicación inalámbrica, integrados en forma natural a la actividad humana”

M. Satyanarayanan

“…realza el uso de la computadora, ya que hace posible que muchas computadoras estén disponibles en un ambiente físico, y a la vez, de forma invisible al usuario.”

Mark Weiser

Cómputo Ubicuo

Page 4: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Características Extiende la capacidad

computacional al entorno del usuario

La información está presente en todas partes en forma de dispositivos de todas escalas conectados en red Muchos dispositivos

conectados Lo mas transparente

posible para el usuario.“omnipresencia” de la computación

Cómputo Ubicuo

Page 5: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004
Page 6: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Términos relacionados

• Realidad aumentada• Cómputo penetrante • Computadora invisible (o que

desaparece)• Computación conciente del

contexto• Computación proactiva• Inteligencia ambiental (AmI)

Cómputo Ubicuo

Page 7: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Computación Conciente del Contexto

Contexto• Cualquier información que caracteriza una

situación relacionada a la interacción entre usuarios, aplicaciones y el ambiente que nos rodea [Dey y Abowd, 2000]

Sistema Conciente del Contexto • Software que se adapta de acuerdo a su

ubicación de uso, a la colección de objetos y personas cercanas, así como a los cambios a dichos objetos a través del tiempo [Schilit y Theimer 1994].

Cómputo Ubicuo

Page 8: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Inteligencia AmbientalCómputo Ubicuo

Ubiquitous Computing

PDA Cell Phone

Red AD HOC

(c)

LAN(a)

Laptop

Server Printer

INTERNETPC

Server

Access Point

PC

WLAN(b)

Laptop

Access Point

Red AD HOC

(d)

HCI

Context-aware Computing IM

Client

Initialize and Register

Perception

Reasoning

Action

X Y

SS3SS2SS1

notify()

AgentArtificial

Intelligence

AmI

Page 9: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Características de AmI

Reactivity

Opportunistic access

Case Base Reasoning

Autonomous Agents

Neural Networks

Effortless interactions

Presentation of services

Distributed

Mobility

Interoperability

Scalability

Heterogeneity

Cómputo Ubicuo

Page 10: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Motivación de SALSA

• Agentes autónomos para abordar algunas de las complejidades del cómputo ubicuo

• Agentes autónomos como una abstracción de diseño de sistemas ubicomp

• Necesidades de herramientas (arquitecturas, middleware, frameworks, etc.) para el desarrollo iterativo de ambientes ubicuos

Cómputo Ubicuo

Page 11: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Agentes Autónomo

• Es una entidad encapsulada que resuelve problemas y exhibe las siguientes propiedades:– Proactividad, Reactividad,

Comportamiento colaborativo, Movilidad

• Tiene la capacidad de decidir qué acciones ejecutar y cuándo ejecutarlas de acuerdo con el contexto de la situación

Agentes

Page 12: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Agentes en Ubicomp

• Agentes como asistentes personales,• actúan en representación de usuarios,• representan dispositivos (proxy a

dispositivos),• proporcionan servicios e información

relevantes a la actividad del usuario,• Esconden una funcionalidad compleja

al usuario.

Agentes

Page 13: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Ciclo de vida de los agentesSALSA

perceiving

deactivated

killed

activated

evaluatingselectingactions

reasoning

suspended

executing

communicating

acting

Page 14: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Arquitectura de SALSA

Plataformade Communicación

Proxy al Broker

Percepción

Acción

Razonamiento

Eventos

Communicaión Movilidad

Inicializar

y

Registrar

Directoriode Agentes

Libreríade clases (API) Servicios

Derivar Contexto

Broker de Agentes

3. Middleware SALSA

Page 15: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

CHIS (“Context-aware Hospital Information System”)

Location-estimation

Page 16: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

HISHIS Agent

(HIS-a)

Server

HISHIS Agent

(HIS-a)

PDA

Location-estimation

Agent (LE-a)

Locationt-awareClient

IM&P server: Agent Broker

Server

HISHIS Agent

(HIS-a)

Server

Context-awareAgent (CA-a)

PDA

Location-estimation

Agent (LE-a)

Location-awareclient

IM&P server: Agent Broker

WLAN

Server

Location-estimation (LE-a)<<mobile>>

CHIS (“Context-aware Hospital Information System”)

Page 17: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Ventajas del Directorio de Agentes

• Servicios “yellow-pages” y “white-pages”

• Guarda la configuración del ambiente• Facilita su recuperación• LDAP (Lightweight Directory Access

Protocol )– Proporciona acceso cliente-servidor a

directorios en red– Permite buscar, leer, agregar, borrar, y

actualizar un directorio

Directorio de Agentes

Page 18: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Reasoning

UserEvent

ArriveResponseEvent

ArriveInfoEvent

ArriveContextualMsgEvent ArriveRequestEvent

ArriveComponentEvent

StateChangeEvent

CommandRequestEvent ArriveCommandEvent

Broker

Action

AgentDirectoryInterface

AgentAttributes

Acting

PassivePerception

Agent

Event

generate

ActivePerception

11

generate

BrokerProxy0..*0..*

send/receive

send

ActiveEntityToPerceive

XMLMessage

SensorData

PassiveEntityToPerceive

Input

perceives

perceives

XMLPresence

Page 19: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Tutorial de SALSA

Page 20: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Comunicación• Eventos de SALSA• Derivando Contexto Secundario• Atributos de los Agentes• Directorio de Agentes• Instalación

Page 21: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Tipos de Agentes SALSA

• Tipos de agentes que se pueden crear según su funcionalidad:– Agente que representa a un usuario– Agentes que ofrece o representa un

servicio– Agente que envuelve una

funcionalidad compleja del sistema, que requiere ser transparente al usuario

Creación de Agentes

Page 22: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Comunicación de los Agentes

• Las modalidades de comunicación entre agentes son:– Comunicación a través del Broker (los

agentes perciben información de otros agentes y actúan comunicándose por medio del Broker (servidor de MI)

– Comunicación directa (p.ej. un agente percibe información de un sensor y la comunica a otro agente directamente, por privacidad)

Creación de Agentes

Page 23: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

1. Crear los siguientes componentes del Agente:

A) Razonamiento: Extender la clase SALSA.Reasoning y sobreescribir el método think(EventObject ev)

B) Acción: Extender la clase SALSA.Action y sobreescribir el método execute()

NOTA: En este primer ejemplo de un agente SALSA, la Percepción y comunicación, se realiza a través de MI utilizando el Cliente Jabber de SALSA.

Creación de Agentes

Pasos para crear un Agente

Page 24: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

2. Se extendiede la clase SALSA.Agent class MyAgent extends Agent

3. En el constructor del agente se inicializan sus atributos y componentes:

– Especificar la dirección Jabber de este agente, poniendo el atributo JabberID attributes.setJabberID(agent@ServJabber)

– Especificar el cliente Jabber jc=new JabberClient(serv,pto,nombre,pwd)

Creación de Agentes (con comunicación via el Broker)

… Pasos para crear un Agente

Page 25: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

… Pasos para crear un Agente

– Crear una instancia del componente de Razonamiento

– Activar el agente invocando el método activate(razonamiento,clienteJabber)

• Crear una instancia del Agente MyAgent myAgent=new MyAgent()

Creación de Agentes (con comunicación via el Broker)

Page 26: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Componente de RazonamientoCreación de Agentes

Se extiende de Reasoning

Se sobreescribe método think() con la lógica del razonamiento

Se invoca la acción(es)

Page 27: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Componente de AcciónCreación de Agentes

Se extiende de Action

Se sobreescribe método execute()

Page 28: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Agente Hola MundoCreación de Agentes (con comunicación via el Broker)

Page 29: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Comunicación• Eventos de SALSA • Derivando Contexto Secundario• Atributos de los Agentes• Directorio de Agentes• Instalación

Page 30: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Comunicación mediante el Broker

Una acción de un agente puede requerir

comunicación con otros agentes para:• Negociar por un servicio• Solicitar información• Comunicar información percibida desde un

sensor o dispositivo del ambiente• Enviar su presencia que indique su estado

actual• Actualizar su componente de razonamiento

(**movilidad)

Comunicación

Page 31: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Negociar por un servicioA : Agent B : Agent

sendCommandRequest(command)

act(command)

sendNotificationInfo( )

Se notifica si se ejecutó la acción

A : Agent B : Agent

sendCommandRequest(command)

act(command)

sendResponseInfo( )

Se envía información generada por la acción

Comunicación

A : Agent B : Agent

sendCommandRequest(command)

act(command)

Page 32: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Solicitar InformaciónComunicación

A : Agent B : Agent

sendRequest( )

sendResponse( )

act(retrievInfo )

A : Agent B : Agent

sendRequest( )

sendNotificationInfo( )

Se notifica que no es posible proporcionar esta información

act(retrieveInfo)

Page 33: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Comunicar información de un sensor

Comunicación

A : Agent B : Agent

sendDataSensor(data)

act()

Page 34: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Comunicación mediante el Broker

• El componente de Acción (clase Action) provee de métodos de comunicación

• Se envían mensajes XML a través del Broker

• Cuando el agente recibe un mensaje, el componente de Razonamiento recibe un evento que indica el tipo de mensaje y contiene al mensaje

Comunicación

Page 35: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Recepción de un mensaje

public class AgentDirectoryReasoning extends Reasoning{

public void think(EventObject ev){

SALSA.Events.Event event=(Event)ev;

if(event.getType()==event.ArriveRequestEvent) {

Utilidades.Parser p = new Utilidades.Parser(event.xml);//PARSEO DE MENSAJE XML:

String tipoRequest=p.getTag("type"); //SE OBTIENE EL TIPO INFO. SOLICITADA String to=p.getAtt(p.raiz,"from"); //SE OBTIENE QUIEN ENVIO EL MENSAJE String ldap_info = retrieveLDAP(); //RECUPERA INFORMACION DEL DIRECTORIO LDAP

//LA ACCION DEL AGENTE ES ENVIAR LA INFORMACION DE LDAP acting.act(new AgentDirectoryAction(to,tipoRequest,ldap_info)); } }}

Comunicación mediante el Broker

Se verifica qué tipo de evento se generó

El método think() recibe un evento indicando el tipo de información recibida

Se analiza el mensaje

Page 36: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Envío de un mensajepublic class AgentDirectoryAction extends SALSA.Action{String ldap; //informacion del directorio de AgentesString to;String type;

public AgentDirectoryAction(String to,String type,String ldap) { this.ldap=ldap; this.to=to; this.type=type; }

public Object execute(){ sendResponse(to,"",type,ldap); return null; }}

Comunicación mediante el Broker

El método execute() contiene la acción(es) a ejecutar

Page 37: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Métodos de Comunicaciónpublic class HelloWorldAction extends Action{

public Object execute(){ sendCommandRequest("mapa@jabber","","desplegar",

"<mapa>emergencias<mapa>");

sendNotificationInfo("display@jabberClient","","mapa_no_disponible",

"<mapa>emergencias<mapa>");

sendRequest("da@jabber","","UsersAndServices","<area>mi</area>"); sendResponse("agente@jabber","","UsersAndServices",ldap_info);

sendDataSensor("paciente","","glucose","<nivel>80</nivel>");

return null; }}

Comunicación mediante el Broker

Page 38: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Métodos de ComunicaciónComunicación mediante el Broker

Page 39: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Métodos de ComunicaciónComunicación mediante el Broker

Page 40: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Comunicación entre Agentes• Eventos de SALSA• Derivando Contexto Secundario• Atributos de los Agentes • Directorio de Agentes• Instalación

Page 41: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Eventos de SALSA

Page 42: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Comunicación entre Agentes• Eventos de SALSA • Derivando Contexto Secundario• Atributos de los Agentes• Directorio de Agentes• Instalación

Page 43: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contexto SecundarioDerivando Contexto Secundario

XSL

<tipoLuz>medio</tipoLuz>

<sonido>40</sonido>

<noPersonas>30</noPersonas>

<contexto type=ActividadSocial> fiesta

</contexto>

Page 44: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Derivando contexto secundariopublic class HelloWorldReasoning extends Reasoning{ public void think(EventObject ev){

//Se crea instancia de SecondaryContext y se especifica el arch.xsl //que contiene las reglas para derivar contexto SecondaryContext sd=new SecondaryContext(xsl);

//Se especifican las variables contextuales sd.setContextualVariable("nivelLuz"); sd.setContextualVariable("nivelRuido"); sd.setContextualVariable("noPersonas");

//Se deriva contexto String xmlSecondaryContext=sd.derive(ev); //Se analiza xmlSecondaryContext ......

}}

Derivando contexto secundario

Page 45: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Analizando un mensaje xml

• Clase Parser del paquete Utilidades:

Utilidades.Parser p = new Utilidades.Parser(event.xml);//PARSEO DE MENSAJE XML: String contexto=p.getTag(“contexto"); //SE LEE VALOR DE

ETIQUETA CONTEXTO String tipo=p.getAtt(p.raiz,“type"); //SE LEE VALOR DE

ATRIBUTO

Derivando contexto secundario

Page 46: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Comunicación entre Agentes• Eventos de SALSA • Derivando Contexto Secundario• Atributos de los Agentes• Directorio de Agentes• Instalación

Page 47: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Atributos del Agente

Page 48: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Atributos de los Agentes• Comunicación entre Agentes• Eventos de SALSA• Derivando Contexto Secundario• Atributos de los Agentes • Directorio de Agentes• Instalación

Page 49: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

AgentDirectory ad=new AgentDirectory((“AD@pc-coolab5");

ad.register(agentito1,"user"); //Solicitudes al directorio de agentes ad.requestAllServices(); ad.requestByService(); ad.requestServicesByArea();

Directorio de Agentes

Page 50: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Contenido

• Creación de Agentes• Atributos de los Agentes• Comunicación entre Agentes• Eventos de SALSA• Derivando Contexto Secundario• Atributos de los Agentes• Directorio de Agentes• Instalación

Page 51: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

• Incluir en classpath:– SALSA.jar (API para crear agentes)– Client.jar (API para crear un cliente

jabber)– Utilidades.jar (API para parsear doc

XML)

• Instalar un servidor Jabber:Timp Management Console 0.9.40, paraWindows, http://www.tipic.com

Instalación

Page 52: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

Percibiendo de sensores/dispositivosCreación de Agentes

Page 53: Arquitectura y funcionalidad de SALSA presentado por Marcela Rodríguez marcerod@cicese.mx Noviembre, 2004

…Percibiendo de sensores/dispositivosCreación de Agentes

Este agente no percibe, ni se comunica via el broker