Agentes Inteligentes e Sistemas Multi-agente (UE11) Agentes Móveis

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas Distribuídos Baseados em Objetos
Sistemas Distribuídos
Sistemas distribuídos
Introdução aos Sistemas Distribuídos
Agentes Inteligentes e Sistemas Cooperativos
1 ZEUS Agentes Inteligentes e Sistemas Multi-agente Ferramentas de Contrução de Agentes IST- 2003/2004 Ana Paiva.
Framework Aglets (para Agentes Móveis)
Comunicação Distribuída
Interação Cliente Servidor
Gibeon Soares de Aquino
Agentes Móveis Marcelo Bezerra dAmorim Sumário n Motivação n Introdução ao Paradigma de Agentes Móveis n Vantagens n Conceitos de Agentes Móveis n Tecnologias.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
1 Arquitetura CORBA Repositório de Implementação Repositório de Interface cliente programa cliente proxy ORB Core ou invocação dinâmica servidor ORB Core.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Sistemas Distribuídos
Middleware e Sistemas Distribuídos
Sistemas e Tecnologias de Middleware TP3. Foco Sistema de comunicação – Sistema de Message Queuing – Abstracção do substracto de comunicação Adaptação.
Elementos Básicos Modelo de Eventos Modelo de Comunicação
Sistemas Distribuídos
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Fevereiro 2003 IST/INESC Contactos:IST/Tagus-Park Tel:
Gestão de Redes e Sistemas Distribuídos Teresa Maria Vazão Julho 2005 Ferramentas de Gestão Plataformas de Gestão IST/INESC-ID Contactos: IST/Tagus-Park.
CORBA e Desenvolvimento Baseado em Componentes
Marcela Bezerra da Silva Cin - UFPE
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Concorrência e Java RMI
Conceitos de J2EE para a WEB
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Gerenciamento de Redes Utilizando Agentes Móveis
Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 05.
Mole: Um Sistema de Agentes Móveis Baseado em Java Curso de Ciência da Computação Departamento de Informática Disciplina de Tópicos Especiais em Computação.
Professor: Márcio Amador
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Sistemas Distribuídos
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
SISTEMAS OPERACIONAIS I
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Java RMI João Gabriel (jggxm).
Processos.
Elementos de um Sistema de Agentes Móveis Agentes e Places Comportamento de Agentes Comunicação Padronização OMG/MASIF.
ASDK API Aglet API Aglet Event. API Aglet É um pacote Java ( com.ibm.aglet ) que contém classes e interfaces necessárias à programação da interface entre.
MONITORAMENTO DE REDE E SERVIDORES UTILIZANDO O CACTIEZ E SNMP
Gestão SNMP. Planeamento Montagem e Manutenção de Redes e Equipamentos Informáticos 2 SNMP- Simple Network Management Protocol Nos primeiros dias da Arpanet,
Integração de Ferramentas CASE
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Aglets.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Tecnologias de Localização de Serviços Exame de Qualificação IME/USP Fev/2003.
JR: Flexible Distributed Programming in an Extended Java Elmário Gomes Dutra Jr. Gustavo Romano.
TMV Gestão de Redes e de Sistemas Distribuídos ???? Sumário  Arquitectura de Gestão SNMP  Arquitectura de Gestão OSI/TMN  Novas Arquitecturas.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
RMI Remote Method Invocation
TCP/IP.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Serviços baseados em dispositivos pessoais móveis Seminários Taguspark Mobilidade 2005 Miguel Pardal 21 de Março de 2005.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Sistemas Operacionais Distribuídos
INTRODUÇÃO AO MIRRORING Artur Santos
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Simple Network Management Protocol
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
TÉCNICAS DE ESTIMATIVAS
Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Agentes Inteligentes e Sistemas Multi-agente (UE11) Agentes Móveis

Questões O que é um Agente móvel? Que tipo de sistemas (aplicações) posso construir usando agentes móveis? Que ferramentas há para o auxílio na construção de agentes móveis?

O que é um Agente Móvel? (1/2) não está ligado ao sistema que o iniciou; livre para viajar entre hosts numa rede; uma vez criado numa máquina/sistema hospedeiros, ele pode transportar o seu estado e código consigo para outras máquinas/sistemas na rede, onde continua a sua execução. Estado: valores dos atributos do agente necessários para que ele continue a sua execução após o transporte Código: dentro de um contexto orientado a objectos, o código das classes necessárias para que o agente se possa executar

O que é um Agente Móvel? (2/2) Definição de um Agente Móvel um agente móvel é um agente que não está ligado permanentemente ao sistema que o iniciou enquanto processo; possui a habilidade única de se transportar de um sistema para outro numa rede, mantendo o seu contexto original antes do transporte; esta habilidade para viajar, permite que o agente móvel possa mover-se para o sistema que contém o recurso com o qual o agente deseja interagir; pode portanto tirar vantagem disso para estar na mesma máquina ou rede onde busca informações, e com isso ser muito mais eficiente na sua tarefa.

Aplicações de Agentes Móveis (1/2) Automação de processos Aplicações Internet Comércio electrónico agentes podem percorrer a rede e negociar em nome de quem os enviou Procura de informação distribuída ao invés de concentrar a procura num só site, distribui agentes pela rede para efectuarem a procura Assistente Pessoal assistentes podem efectuar tarefas na rede em nome de seus criadores

Aplicações de Agentes (2/2) Negociação Segura agentes podem mover-se para sites seguros com a finalidade de negociar Processamento Paralelo agentes podem gerir processos paralelos Serviços de Telecomunicações via Rede agentes podem reconfigurar uma rede de telecomunicações de forma dinâmica, mantendo-a coesa Aplicações de Workflow e Groupware agentes móveis podem cooperar em nome de co-participantes de um grupo de trabalho

Ideia Originalmente surge com Jim White que propõe uma linguagem para agentes móveis chamada Telescript TM da General Magic.

Ideia PC Server PC Server Network Network Service Client Service

Ideia PC Server PC Server Network Network Client Service Client

Electronic Shopping Center Conceitos: Locais Locais: um local oferece um serviço aos agentes móveis para estes entrarem Network Directory Ticketron Electronic Shopping Center Shopping app

Conceitos: Agentes e Viagens Agentes ocupam um certo local Um agente pode mover-se de local para local preservando o seu estado Cada agente é independente dos outros agentes Cada agente move mover-se de um local para outro podendo usar os serviços localmente no sítio em que se encontra e voltar para trás quando necessário. Go Network Directory Ticketron Electronic Shopping Center Shopping app

Conceitos: Agentes e Viagens Agentes ocupam um certo local Um agente pode mover-se de local para local preservando o seu estado Cada agente é independente dos outros agentes Cada agente move mover-se de um local para outro podendo usar os serviços localmente no sítio em que se encontra e voltar para trás quando necessário. Network Directory Ticketron Electronic Shopping Center Shopping app

Electronic Shopping Center Conceitos: Meeting Directory Ticketron Electronic Shopping Center Shopping app

Conceitos: Autoridade Segundo a tecnologia Telescript é possivel delegar autoridade em agentes (e de um agente noutro agente) Além disso os agentes podem ter permits (permissões) para entrar em determinados locais ou não.

Historial Equipa liderada por Steve Schramm criou a tecnologia e implementou os servidores Na AT&T uma equipa liderada por Alex Gillon usou a tecnologia para criar o serviço AT&T Personal Link. Uma outra equipa da General Magic criou Motorola Envoy. .... O que se passa agora....?

Plataformas de Agentes Plataformas de agentes móveis: Ferramentas que suportam e ajudam a criação de agentes móveis, fornecendo uma estrutura que facilita a sua implementação.

Plataformas de Agentes Móveis Agent Tcl Concordia Odyssey Voyager Aglets

Agent Tcl (1/5) Plataforma desenvolvida no Dartmouth College, Hanover - USA Funcionalidades suportadas: Migração de agentes Comunicação de agentes Utilização de várias linguagens (actualmente Tcl/Tk) Vários mecanismos de transporte (actualmente TCP/IP)

Agent Tcl (2/5) Agentes Interpretador Servidor API de transporte A arquitectura tem 4 níveis distintos: Agentes Interpretador Servidor API de transporte

Agent Tcl (3/5) Existem dois tipos de comunicação:

Agent Tcl (4/5) Um agente pode ser programado em qualquer linguagem para a qual exista interpretador (compatível) A única linguagem suportada é o Tcl A migração é transparente para o programador Servidor: Presente em todas as máquinas capazes de executar agentes Leve, pois parte das funcionalidades são atribuídas a agentes específicos (Gestão de recursos, tolerância a faltas, comunicação local, etc.)

Agent Tcl (5/5) Vantagens: “Leve” Simples Largamente disponível (mesmo o código fonte) Extensível Embebível noutras aplicações Desvantagens: Tcl não é uma linguagem potente

Concordia (1/3) Desenvolvido pela Mitsubishi Framework de desenvolvimento e gestão de agentes móveis em Java Componentes: Agent Manager Security Manager Persistence Manager Inter-Agent Communication Manager Queue Manager Directory Manager Administration Manager Agent Tool Library

Concordia (2/3) Agent Manager: providencia a infra-estrutura de comunicação que permite a mobilidade dos agentes Security Manager: protege os recursos e garante a segurança e integridade dos agentes e dos seus dados Persistence Manager: mantém o estado dos agentes e objectos que transitam na rede. Permite a reiniciação de um agente, no caso de uma falha no servidor Inter-Agent Comunication Manager: gere o registo e notificação de eventos entre agentes. Permite eventos do tipo Multicast (múltiplos destinatários)

Concordia (3/3) Queue Manager: responsável pela sequenciação e envio garantido entre servidores Concordia Directory Manager: providencia um serviço de nomes para aplicações e agentes Administration Manager: providencia administração remota de um sistema Concordia. Somente um em toda a rede Agent Tool Library: ferramentas de desenvolvimento do Concordia: APIs Concordia (Administration APIs, Lightweight Agent Transport APIs, Service Bridge API, etc.) e classes de agentes necessárias para o desenvolvimento de agentes móveis usando o Concordia

Odyssey (1/2) Sistema de Agentes implementado como um conjunto de bibliotecas de classes Java que providencia suporte a aplicações de agentes móveis Principiais classes: classe Agent classe Worker, derivada de Agent Agent: Java Thread Worker: conjunto de tarefas e conjunto de destinos

Odyssey (2/2) contexto onde se executa um agente Place: contexto onde se executa um agente agentes movem-se de Place a Place pode ter controlo de acesso primeiro place criado: BootPlace quando destruído, destrói todo o sistema de agentes Outras Classes: Ticket Means Petition ProcessName

Voyager (1/2) Voyager ORB (Free) Voyager ORB Professional Linha de produtos da Objectspace para o desenvolvimento de aplicações distribuídas Principais Componentes: Voyager ORB (Free) Voyager ORB Professional ORB + Serviços Voyager Management Console Voyager Security Voyager Transactions Voyager Application Server

Voyager (2/2) habilitação remota de classes agentes móveis autónomos Recursos: habilitação remota de classes criação remota de classes carregamento dinâmico de classes mensagens remotas gestão de excepções garbage-collection distribuído agregação dinâmica CORBA mobilidade agentes móveis autónomos activação dinâmica e persistência applets e servlets multicast publish-subscribe RMI Timers Thread Pooling mensagens avançadas segurança

O que são Aglets? (1/8) Aglets são agentes móveis programados em Java, baptizadas com o nome da sua workbench (Aglets Workbench ou AWB) Aglet = applet + agente AWB: Plataforma de construção de aplicações baseadas em agentes móveis Tecnologia de agentes móveis 100% pure Java Desenvolvida no IBM Tokyo Research Laboratory Java Aglet API (J-AAPI): Destinada a programadores de aplicações agente define métodos para a criação, gestão de mensagens, despacho, retorno, activação, desactivação, clonagem e eliminação de aglets.

AWB (2/8) A AWB disponibiliza várias ferramentas de suporte às aglets: Um construtor visual de Aglets – “Tazza” Um gestor visual de Aglets – “Tahiti” Um construtor/lançador de Aglets para a WWW – “Fiji” Fornece ainda um conjunto de bibliotecas de classes Java para a construção dos agentes J-AAPI – Classes/Interfaces: Aglet: define os métodos básicos Aglet Context: trata mensagens e interacção com o exterior Aglet Proxy: evita o acesso aos métodos da classe Itinerary: especifica o plano de viagem da aglet Message: para comunicação síncrona e assíncrona

AWB (3/8) Aglet Viewers: Aglet Servers: Na arquitectura da AWB temos dois tipos de serviços: Aglet Viewers: Pequenos, existentes usualmente em utilizadores Aglet Servers: Servidores poderosos, operados por prestadores de serviços

AWB (4/8) onCreation() – sempre que o agente for criado Para criar uma aglet basta implementar a classe abstracta Aglet e implementar os métodos que são executados: onCreation() – sempre que o agente for criado onDisposing() – sempre que o agente é destruído onDispatching() – sempre que o agente se move para outro servidor onArrival() – sempre que o agente chega a um servidor onDeactivation() – sempre que o agente é desactivado onActivaction() – sempre que o agente é activado onDialog() – define como o agente responde a pedidos de diálogo run() – código principal do agente

AWB (5/8) Mobilidade: A captura/restauração do estado é baseada na seriação de objectos do Java A migração é iniciada através da invocação do método dispatch() Os agentes indicam o destino através de itineraries

AWB (6/8) Comunicação: Baseada na classe Message da J-AAPI Depois da criação a mensagem é enviada para o proxy O receptor trata a mensagem através do método handleMessage Existe um gestor de mensagens que suporta o controlo de concorrência para as mensagens recebidas Envio de uma mensagem: AgletProxy proxy = new AgletProxy ( ); Message yourName = new Message ( “What is your name?” ); Proxy.sendMessage(yourName); Recepção de uma mensagem: public boolean handleMessage ( Message msg ) { if ( “your name?” ).equals( msg.kind ) ) { msg.sendReply ( “Leonel” ); return true; } else return false;

AWB (7/8) Segurança: O Modelo de Segurança do AWB é baseado no Modelo de Segurança do Java e funciona por camadas: Camada 1 – Segurança ao nível do código Camada 2 – Segurança ao nível de acesso às classes Camada 3 – Segurança ao nível de dados (encriptação) O Gestor de Segurança reconhece dois tipos de aglets: Aglets Trusted (Confiáveis) Aglets Untrusted (Desconfiáveis) O servidor decide se confia ou não numa aglet através da sua informação de autenticação Dependendo da confiança, o servidor garante acesso a certos recursos

AWB (8/8) Os agentes são em Java Agentes muito “leves” Vantagens: Os agentes são em Java Agentes muito “leves” Bibliotecas bem estruturadas para várias utilizações Ambiente já totalmente operacional Suporte de Segurança Desvantagens: Não há código fonte disponível Ainda não é comercial/suporte ainda não definido

Comparação entre Plataformas de Agentes Móveis (1/3)

Comparação entre Plataformas de Agentes Móveis (2/3)

Conclusões (1/2) Futuramente os agentes poderão ser bastante úteis para os utilizadores humanos, realizando tarefas em nome desses utilizadores (e.g. compras online, pesquisa de informação, pagamento de contas, etc.) Agentes móveis são agentes que não estão confinados à máquina que os criou. Estes agentes são livres para navegarem numa rede “saltando” de servidor em servidor Em cada instante os agentes móveis tentam interagir com os recursos que acham mais adequados. Se um servidor fica muito “pesado” computacionalmente, o agente abandona-o para localizar um outro servidor onde possa continuar a sua execução Os agentes tornam muito mais fácil o desenvolvimento de vários tipos de sistemas complexos Os agentes não são os “salvadores da pátria”. Apenas são apropriados na implementação de um certo tipo de aplicações (agent-based applications). Noutros domínios outras tecnologias serão mais apropriadas

Conclusões (2/2) No entanto, ainda não há uma plataforma de facto que seja a melhor e mais usada no mercado. As plataformas existentes são ainda bastante limitadas.