Departamento de Informática
Curso de Ciência da Computação
Disciplina de Tópicos Especiais em Computação
Mole: Um Sistema de Agentes
Móveis Baseado em Java
Julio Cezar Kronbauer
Introdução
Agentes Móveis autônomos e ativos
 Movem-se entre locais em sistema de
agentes
 Segurança
 Mobilidade
 Comunicação

Agentes Móveis
Distribuição de código
 Segurança

Distribuição de Código
Aplicativos distribuídos como código de
máquina, executáveis ou código
independente
 Problema de mesmo código para várias
máquinas, gerando resultados
diferentes
 Saída: construir um sistema de agentes
que rode em diversos sistemas

Segurança
Proteção contra agentes maliciosos
 Controle de acesso
 Agentes que atacam outros
 Total controle sobre instruções
executadas

Soluções
Interpretação ou compilação
 Verificação de código
 Colocação de seguranças

Em Mole
Java como linguagem de sistema de
agentes
 Agentes modulados como grupos de
objetos
 Agente resultado do trabalho entre
objetos

Conceito de Locais
Em um agente, vários destinos
possíveis:
 Outro agente
 Local abstrato
 Local físico

Sistema de Agentes
Conceito de Mobilidade
Execução Remota
 Migração

Execução Remota

Mecanismo que constrói um agente
para um local especificado
Migração
Mecanismo que continua a execução
corrente de um agente num local
diferente
 iniciada pelo próprio agente
 operação muito complexa
 pode ser implementado em Java sem
alterações no interpretador

Conceito de Comunicação
Comunicação local, global e interagentes
 Agentes tomam decisões sozinhos
 Protocolos de baixo nível bastante
usados

Protocolos de Baixo Nível
RPC (RMI)
 Mensagens

RPC (Chamamento de
Procedimento Remoto)
Mecanismo de comunicação
 comunicação remota
 comunicação local

Mensagens

Transferem objetos entre agentes
Sociedades
Endereçadas via nome e local
 Somente transparência de local físico

O Sistema Mole
Trabalhos Futuros
AIDA
 ASAP
 ATOMAS

Maiores Informações

www.geocities.com/jckronbauer
Download

Mole: Um Agente de Sistema Móvel Baseado em Java