1 / 53

Arquitectura y funcionalidad de SALSA

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. Cómputo Ubicuo. Definiciones.

emory
Download Presentation

Arquitectura y funcionalidad de SALSA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Cómputo Ubicuo 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

  4. Cómputo Ubicuo 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

  5. Cómputo Ubicuo Términos relacionados • Realidad aumentada • Cómputo penetrante • Computadora invisible (o que desaparece) • Computación conciente del contexto • Computación proactiva • Inteligencia ambiental (AmI)

  6. Cómputo Ubicuo 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].

  7. Cómputo Ubicuo Server Printer LAN (a) PC INTERNET Laptop SS2 SS3 SS1 Access Point Red AD HOC (c) Access Point Red AD HOC (d) WLAN (b) Laptop Cell Phone PDA PC Server Ubiquitous Computing HCI Perception IM Client Reasoning Action Initialize and Register Agent Context-aware Computing Artificial Intelligence X Y notify() Inteligencia Ambiental AmI

  8. Cómputo Ubicuo Autonomous Agents Distributed Interoperability Reactivity Effortless interactions Heterogeneity Scalability Case Base Reasoning Opportunistic access Neural Networks Presentation of services Mobility Características de AmI

  9. Cómputo Ubicuo 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

  10. Agentes 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

  11. Agentes 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.

  12. SALSA Ciclo de vida de los agentes

  13. Arquitectura de SALSA 3. Middleware SALSA

  14. CHIS (“Context-aware Hospital Information System”) Location-estimation

  15. CHIS (“Context-aware Hospital Information System”)

  16. Directorio de Agentes 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

  17. Tutorial de SALSA

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

  19. Creación de Agentes 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

  20. Creación de Agentes 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)

  21. Creación de Agentes Pasos para crear un Agente • 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.

  22. Creación de Agentes (con comunicación via el Broker) … Pasos para crear un Agente • Se extendiede la clase SALSA.Agent class MyAgent extends Agent • 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)

  23. Creación de Agentes (con comunicación via el Broker) … 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()

  24. Creación de Agentes Se extiende de Reasoning Se sobreescribe método think() con la lógica del razonamiento Se invoca la acción(es) Componente de Razonamiento

  25. Creación de Agentes Se extiende de Action Se sobreescribe método execute() Componente de Acción

  26. Creación de Agentes (con comunicación via el Broker) Agente Hola Mundo

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

  28. Comunicación 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)

  29. Comunicación Negociar por un servicio

  30. Comunicación Solicitar Información

  31. Comunicación Comunicar información de un sensor

  32. Comunicación 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

  33. 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 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)); } } }

  34. Comunicación mediante el Broker El método execute() contiene la acción(es) a ejecutar Envío de un mensaje public class AgentDirectoryAction extends SALSA.Action{ String ldap; //informacion del directorio de Agentes String 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; } }

  35. Comunicación mediante el Broker Métodos de Comunicación public 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; } }

  36. Comunicación mediante el Broker Métodos de Comunicación

  37. Comunicación mediante el Broker Métodos de Comunicación

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

  39. Eventos de SALSA

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

  41. Derivando Contexto Secundario Contexto Secundario <tipoLuz>medio</tipoLuz> <sonido>40</sonido> <noPersonas>30</noPersonas> <contexto type=ActividadSocial> fiesta </contexto> XSL

  42. Derivando contexto secundario Derivando contexto secundario public 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 ...... } }

  43. Derivando contexto secundario 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

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

  45. Atributos del Agente

  46. 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

  47. Directorio de Agentes AgentDirectory ad=new AgentDirectory((“AD@pc-coolab5"); ad.register(agentito1,"user"); //Solicitudes al directorio de agentes ad.requestAllServices(); ad.requestByService(); ad.requestServicesByArea();

  48. 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

More Related