Upload
internet
View
119
Download
0
Embed Size (px)
Citation preview
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
1
Instituto Superior TécnicoInstituto Superior TécnicoIntrodução aos
Agentes Autónomos
Agentes MóveisPedro António, M5157
2002/2003
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
2
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
O conceito de agentes móveis surgiu de uma análise crítica de como os computadores comunicam desde o final da década de 70.
Abordagem actualOrganização central = RPC (remote procedure calling)
O paradigma RPC considera a comunicação entre computadores do seguinte modo: um computador efectua uma chamada a um procedimento existente noutro computador.
Pedidos = argumentos dos procedimentos
Resposta = resultado do procedimento
Protocolo = concordância sobre os tipos dos argumentos e resultados.
“ongoing interaction requires ongoing communication”
R e d eC lie n te S e rv id o r
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
3
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Exemplo 1Apagar ficheiros num servidor ficheiros com mais de 2 meses
O utilizador tem de efectuar:1 chamada para ver os nomes e as datas dos ficheiros.
1 chamada para apagar cada ficheiro.
A decisão de apagar, ou não, é realizado no computador do utilizador.
R e d eC lie n te S e rv id o r
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
4
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Abordagem novaAlternativa ao RPC é a programação remota (RP)
O paradigma RP considera a comunicação entre computadores do seguinte modo: permite que um computador efectue chamadas a procedimentos existentes noutros computador e fornece, também, os procedimentos a executar.
Mensagens = procedimento que o computador remoto recebe para executá-lo + argumentos do procedimento
O procedimento é iniciado no computador emissor e é continuado pelo computador receptor.
Dados = estado actual
R e d e
C lie n te
A g e n te
S e rv id o r
A g e n teC ó d ig o e e s ta d o
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
5
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Abordagem nova (Cont.)Concordância sobre as instruções permitidas num procedimento e os tipos de dados permitidos.
Linguagem com instruções que permitem aos procedimentos efectuar:Decisões
Analises e modificações do estado
Chamadas a procedimentos do computador remoto
AGENTE MÓVEL = procedimento + estadoRepresentação do computador emissor no computador receptor
“ongoing interaction does not requires ongoing communication”
R e d e
C lie n te
A g e n te
S e rv id o r
A g e n teC ó d ig o e e s ta d o
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
6
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Exemplo 2Um utilizador com “trabalho” para ser acompanhado por um servidor, envia um agente para esse servidor cujo procedimento efectua (no servidor) os pedidos (apagar) com base no estado (mais de 2 meses).
Apagar os ficheiros, neste exemplo, apenas necessita da mensagem que transporta o agente.
O agente (não o computador) efectua o “trabalho”, decidindo “on-site” quais os ficheiros a apagar.
R e d e
C lie n te
A g e n te
S e rv id o r
A g e n teC ó d ig o e e s ta d o
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
7
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Vantagens técnicasDesempenho
Em vez de enviar vários comandos pela rede, enviar um agente para o servidor e realizar as tarefas localmente.
A rede deve ser utilizada para transportar poucas mensagens.
Quanto maior o número de tarefas a realizar, maior o número de mensagens que não são enviadas (utilizando a RP).
A vantagem da RP depende da rede.Quanto menor a disponibilidade e o fluxo de dados
Quanto maior a latência e os custos
Maior a vantagem da RPRede pública telefónica; Redes wireless
RP é aconselhável quando as redes são lentas e caras (comunicações pessoais – linhas não dedicadas).
Delegar tarefas a um agente.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
8
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Vantagens estratégicasPersonalização (customization)
Os agentes permitem aos fabricantes de software utilizador alargar as funcionalidades oferecidas pelos fabricantes de software servidor.
Personalizar servidores para utilizadores particulares.
O paradigma da RP:Altera a divisão de tarefas entre software de diversos fabricantes
Facilita a instalação do software destes fabricantes
Os componentes servidor de uma aplicação RPC devem ser instalados estaticamente pelo utilizador.
Os componentes servidor de uma aplicação RP devem ser instalados dinamicamente pelo utilizador. Cada componente é um agente.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
9
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Porquê os agentes móveis?Cada vez maior heterogeneidade das redes, tanto de software como de hardware
Computadores não permanentemente ligados à rede
Pesquisa de grande quantidade de informação ao longo da rede, por exemplo na Internet
Auxílio em tomadas de decisões baseadas em grandes quantidades de informação
Utilizadores delegam para os programas tarefas complicadas e daí esperam obter resultados fiáveis
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
10
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Proveito a tirar dos agentes móveisLibertação do utilizador para executar outras tarefas
Executam trabalhos por longos períodos de tempo, sem necessidade do utilizador estar ligado à rede
Esta ausência de ligação à rede permite o suporte para utilizadores não permanentes (portáteis ou ligações por modem)
Úteis em comunicações com baixo Bit Rate
Interagem com outros agentes ou utilizadores, poupando tempo nas pesquisas
Pesquisa selectiva da informação, por exemplo segundo um perfil de utilizador
Notificação da alteração de um sistema
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
11
Paradigma dos Agentes MóveisParadigma dos Agentes Móveis
Desvantagens dos agentes móveisOs agentes móveis necessitam de um ambiente de execução altamente seguro devido à sua mobilidade e à sua autonomia, exigindo portanto mecanismos de elevada protecção contra vírus.
Requerem um elevado número de mecanismos de segurança com grande complexidade: a sua eficiência e desempenho saem prejudicados.
Devem oferecer elevada eficiência devido à existência de paradigmas paralelos que podem executar as mesmas funções, tal como os RPCs.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
12
ConceitosConceitos
A primeira implementação comercial de agentes móveis foi o Telescript technologyTM da General Magic.
Permite acesso autónomo e interactivo a uma rede de computadores, através de agentes móveis.
Objectivo comercial = Mercado ElectrónicoUma rede pública que permite aos fornecedores e aos consumidores de bens e serviços utilizarem outro modo de efectuar transações electrónicas.
A tecnologia Telescript implementa os seguintes conceitos:Locais (places)
Agentes (agents)
Deslocamento (travel)
Encontros (meetings)
Ligações (connections)
Autoridades (authorities)
Permissões (permits)
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
13
ConceitosConceitos
LocaisRede de computadores = conjunto de locais
Um local oferece um serviço aos agentes móveis que entram nesse local.
Comércio electrónico = Centro Comercial ElectrónicoInformações – onde o agente móvel pode obter informação em relação a todos os locais do centro comercial
Belheteira – local onde o agente móvel pode comprar bilhetes (teatro, etc.)
Florista – local onde o agente móvel pode efectuar ordens de compra de flores
A rede pode conter vários centros comerciais independentes
Servidores oferecem alguns locais; Computadores dos utilizadores oferecem outros (ponto de partida e retorno dos agentes enviados para os locais nos servidores)
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
14
ConceitosConceitos
AgentesConjunto de agentes
Cada agente ocupa um local específico, mas pode mover-se de um local para outro (ocupando locais diferentes em tempos diferentes).
No centro comercial electrónico, cada local é ocupado permanentemente por um agente distinto. Onde cada um destes agentes representa o local e oferece um determinado serviço.
Informações – informação em relação aos outros locais e como lá chegar
Bilheteira – informação de eventos e venda de bilhetes
Florista – informação de arranjos de flores e entregas
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
15
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
DeslocamentoPermite que um agente se desloque de um local para outro.
O deslocamento de um agente permite a esse agente obter um serviço oferecido remotamente e depois retorne para o seu local de origem.
Por exemplo, o download de programas de um servidor de ficheiros numa rede faz-se à mais de 20 anos.
Mover programas enquanto eles se executam...Um agente pode mover-se de local para local porque a linguagem em que foi programado o permite. O agente decide quando é que se transpostra.
Linguagem Telescript (instrução go, necessita de um ticket)
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
16
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
EncontrosUm encontro permite aos agentes, no mesmo computador, efectuar chamadas aos procedimentos dos outros.
Os encontros são o que motivam os deslocamentos dos agentes.Linguagem Telescript (instrução meet, necessita de uma petition – qual o agente a encontrar e outra informação relacionada)
Troca de informação e efectuar as transacções.
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Bla, bla, bla
Bla, bla, bla
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
17
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
LigaçõesPermite que dois agentes em locais diferentes estabeleçam uma ligação entre eles.
Permite a comunicação de agentes em computadores diferentes.
O agente que foi à procura de bilhetes de cinema, pode enviar a um agente no computador do utilizador um diagrama da sala com os lugares disponíveis.
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Bla, bla, bla
Bla, bla, bla
Bla, bla, bla
Bla, bla, bla
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
18
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
AutoridadesUm agente ou um local pode saber qual a autoridade de um outro agente.
Controlo do acesso aos serviços.
O Telescript verifica a autoridade de um agente quando ele se desloca de uma região da rede para outra. Uma região é um conjunto de locais onde operam sob a mesma autoridade. Se um agente não tem autoridade para entrar numa dada região é negado o acesso a esta região.
Linguagem Telescript (instrução name, resulta num telename – identidade e autoridade do agente)
Prevenção de vírus.
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
19
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
PermissõesAs autoridades limitam o que os agentes e os locais podem fazer através da atribuição de permissões.
Permissão de executar instruções (criar outros agentes)
Permissão de utilizar um recurso (tempo de vida do agente, tamanho, etc.)
Linguagem Telescript (instrução permit)
Proteger as autoridades de agentes maliciosos.
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
20
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
Mobilidade do agenteO deslocamento de um agente não se restringe a uma simples ida e volta.
O agente pode deslocar-se entre locais sucessivamente (serviços compostos).
Agente : Comprar bilhete para ir ao cinema e comprar flores para entregar antes do cinema.
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Um bilhete para o Senhor dos
Anéis.
Sim, senhor.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
21
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
BilheteiraBilheteira
FloristaFlorista
ConceitosConceitos
Mobilidade do agenteO deslocamento de um agente não se restringe a uma simples ida e volta.
O agente pode deslocar-se entre locais sucessivamente (serviços compostos).
Agente : Comprar bilhete para ir ao cinema e comprar flores para entregar antes do cinema.
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Sim, senhor.
Uma flor murcha, por
favor.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
22
TecnologiaTecnologia
A tecnologia Telescript implementa os conceitos mencionados anteriormente.
Componentes:Linguagem de programação dos agentes e locais
Motor ou interpretador
Protocolos de comunicação
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
23
TecnologiaTecnologia
LinguagemPermite aos programadores de aplicações de comunicação definir os algoritmos que os agentes seguem e a informação transportada pelos agentes na rede.
Telescript, C e C++
Telescript, facilita o desenvolvimento de aplicações com comunicação:Completo (exprimir qualquer algoritmos)
Orientada a objectos (classes, heranças, classes gerais definidas pela linguagem, classes específicas)
Dinâmica (a classe é transportada para outro computador)
Persistente (informação armazenada em memória não volátil)
Portável e seguro (o agente é executado no motor, ajuda a prevenir vírus)
Comunicação (ultrapassa problemas complexos de tarefas de rede)
Programadores = alto nível
Motores = baixo nível COMPILADOR
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
24
TecnologiaTecnologia
MotorÉ um programa de software que implementa a linguagem Telescript, mantendo e executando locais e os agentes que os ocupam.
Num computador do utilizador pode hospedar alguns locais e alguns agentes. Num servidor pode hospedar milhares.
3 API:Armazenamento – acesso a memória não volátil (falha do computador)
Transporte – acesso ao meio de comunicação, transportar agentes entre motores.
Aplicações externas – interacção entre o Telescript e o C.
Agentes e Locais
MOTOR TELESCRIPT
Armaz. Transp.Apl.
Externas
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
25
TecnologiaTecnologia
ProtocolosPermite estabelecer a comunicação entre dois motores.
Instrução go
Variedade de redes de transporteTCP/IP (Internet); X.25 (interface das companhias telefónicas); Correio electrónico
Os protocolos Telescript operam em 2 níveisO nível mais baixo gere o transporte de agentes
O nível mais alto a codificação/descodificação
Encoding rules (procedimento e estado do agente)
Plataform interconnect protocol (autenticação entre 2 motores e transferência de agentes) Agentes e Locais
MOTOR TELESCRIPT
Armaz. Transp.Apl.
Externas
Transporte do agente
Codificaçãodo agente
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
26
Modelo de Objectos TelescriptModelo de Objectos Telescript
Estrutura do objectoTudo é tratado como um objecto.
Um objecto possui uma interface externa e uma implementação interna.
Interface do objectoAtributos – características externas visíveis
Públicos/Privados
Operações – tarefas que o objecto realizaPúblicas/Privadas
Argumentos
Resultado da operação com valor de retorno/Gerar excepções
Implementação do objectoPropriedade – consiste no estado dinâmico do objecto, apenas pode ver e alterar as suas propriedades (não a dos outros objectos)
Método – procedimento que realiza operações ou acede/altera os atributosVariáveis – estado dinâmico do método
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
27
Modelo de Objectos TelescriptModelo de Objectos Telescript
Classificação do objectoTal como outra linguagem OO, o Telescript utiliza classes:
Uma classe é uma interface do objecto combinada com a implementação do objecto.
Um objecto é uma instância dessa classe.
Classes definidas pelo utilizador – o Telescript permite ao programador definir a aplicação de comunicação através de classe.
Classes pré-definidas – o Telescript oferece um conjunto de classes que são utilizadas em todas as aplicações.
Classe Object (root class), Dictionary, Event, Agents, etc.
Outros conceitos:superclass; subclass; herança; overriding
Operação de inicialização – novo objecto
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
28
Modelo de Objectos TelescriptModelo de Objectos Telescript
Manipulação do objectoA linguagem Telescript necessita que um método possua referências dos objectos que manipula.
As referências podem ser replicadas, podendo existir várias referências para um mesmo objecto.
Um método recebe:Referências dos objectos que cria
Argumentos das operações que implementa
Resultados das operações que requisita
Referências protegidas/desprotegidasUm método não pode alterar um objecto cuja referência seja protegida.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
29
Programação de um LocalProgramação de um Local
Um agente da aplicação de shopping, trabalha para um cliente:O agente desloca-se para o local do armazém
Verifica o preço do produto que interessa ao cliente
Aguarda o tempo necessário que o preço desça para o valor especificado pelo cliente
Retorna ao cliente quando o preço atingir o nível desejado ou quando expirar um determinado período de tempo especificado
São necessárias 3 classes para implementar o armazém e as acções relacionadas:
Entrada no catálogo; Armazém; Redução de preço
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
ArmazémArmazém
O preço do Leitor de
DVD desceu para €100!
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
30
Programação de um LocalProgramação de um Local
Um agente da aplicação de shopping, trabalha para um cliente:O agente desloca-se para o local do armazém
Verifica o preço do produto que interessa ao cliente
Aguarda o tempo necessário que o preço desça para o valor especificado pelo cliente
Retorna ao cliente quando o preço atingir o nível desejado ou quando expirar um determinado período de tempo especificado
São necessárias 3 classes para implementar o armazém e as acções relacionadas:
Entrada no catálogo; Armazém; Redução de preço
AplicaçãoShopping
AplicaçãoShopping Rede
Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
ArmazémArmazém
O preço do Leitor de
DVD desceu para €100!
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
31
Programação de um LocalProgramação de um Local
Classe Entrada no catálogoImplementa cada entrada no catálogo do armazém
Lista os produtos para venda do armazém
Atributos (públicos):Produto
Preço
Operações (públicas):Inicializa – nova entrada no catálogo; argumentos produto e preço
Ajusta Preço – alteração dos preços de um produto em catálogo; argumentos percentagem de desconto; gera uma excepção (referência protegida)
Por exemplo, se o agente de shopping tentar modificar o preço de um produto, é gerada uma excepção pelo motor Telescript
Propriedade:Trinco – recurso (região crítica; autoridade do local e do agente)
Por exemplo, quando se muda o preço simultaneamente
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
32
Programação de um LocalProgramação de um Local
Classe ArmazémImplementa o local do armazém
Operações (públicas)Inicializa – inicializa a propriedade (catálogo) do novo local; argumento catálogo
Vida do armazém – opera o armazém (ciclo infinito)Realiza operações sob autoridade
Obter catálogo – obtém uma referência para o catálogoAgente de shopping obtém uma referência protegida
Agente do armazém obtém uma referência desprotegida
PropriedadeCatálogo – Dicionário com o par produto/entrada no catálogo
Classe Redução de preçoImplementa os eventos do armazém para notificar os ocupantes da redução dos preços (subclasse da classe pré-definida Events)
Aguarda início do mês
Reduz os preços em 5%
Todos: Preços reduzidos
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
33
Programação de um AgenteProgramação de um Agente
O agente da aplicação de shopping é implementado por duas classes definidas pelo utilizador:
Shopper; Produto Indisponível
Classe ShopperImplementa um número qualquer de agentes de shopping.
Subclasse de Agents e Event Process
Propriedades:Nome do Cliente – criador do agente (telename)
Produto Desejado
Preço Desejado
Preço Actual – do produto desejado
Excepção – é gerada se a missão do agente falhar
indicado pelo criador do agente
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
34
Programação de um AgenteProgramação de um Agente
Classe ShopperOperações (públicas):
Inicializa – inicializa 3 propriedades do agente (preço e produto desejados, nome do cliente); argumentos produto e preço desejados
Vida do agente – operação de cada agente novo
Encontro – encontro com outro agenteArgumentos: agente, classe, petição
Excepção se o encontro for impossível
Obter Relatório – retorna o preço actual do produto desejadoExcepção se falhar nesta missão e se não for o agente do cliente
Operações (privadas)goShopping – leva o agente para o local do armazém
Argumento: nome do armazém
goHome – o agente retorna para o local de origem e inicia um encontro com o cliente.
Argumentos: homeName, homeAddress
Guarda homeName
homeAddress
Configura:Tempo e
Computação
goShopping
goHome
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
35
Programação de um AgenteProgramação de um Agente
Classe Shopper (Cont.)
Agente vaipara o
Armazém
Verifica oPreço Actualdo Produto
Actualiza Preço Actual
Preço Actual>
Preço Desejado
Retorna
Liberta recursos(eventos)
Agente vaipara o localde origem
Encontro como Cliente
Aguarda que oCliente termine
o encontro
goHomegoShopping
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
36
Programação de um AgenteProgramação de um Agente
Classe Produto IndisponívelImplementa cada excepção com a qual o agente de shopping pode notificar o cliente que o armazém não possui o produto indicado.
Subclasse da classe Exception
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
37
Utilização de Agentes MóveisUtilização de Agentes Móveis
ExemploMarcar uma viagem de avião
Utilizador introduz datas das viagens na aplicação, meio de pagamento, companhia aérea, etc.
A aplicação cria um agente com a autoridade do utilizador e fornece informação ao agente sobre os voos desejados
O agente viaja até ao local da companhia aérea
O agente encontra-se com o agente da companhia aérea
O agente dá informação ao agente da companhia aérea, que analisa os dados do utilizador (pagamento, etc.) e retorna um número de confirmação e o itinerário.
AplicaçãoPlaneamentode Viagens
AplicaçãoPlaneamentode Viagens
Rede Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
Companhia aéreaCompanhia aérea
Voos para ParisData da viagem 3/12/2002Meio de pagamento VISA
Número de Confirmação. Itinerário da sua viagem.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
38
Utilização de Agentes MóveisUtilização de Agentes Móveis
Exemplo (Cont.)O agente retorna ao local de origem, utilizando o bilhete com essa informação.
O agente dá a informação à aplicação e o seu trabalho está completo.
A aplicação avisa o utilizador que já tem a informação sobre a viagem.
AplicaçãoPlaneamentode Viagens
AplicaçãoPlaneamentode Viagens
Rede Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
Companhia aéreaCompanhia aérea
Mostre-me o caminho para casa.
HomeName e HomeAddress
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
39
Utilização de Agentes MóveisUtilização de Agentes Móveis
Exemplo (Cont.)O agente retorna ao local de origem, utilizando o bilhete com essa informação.
O agente dá a informação à aplicação e o seu trabalho está completo.
A aplicação avisa o utilizador que já tem a informação sobre a viagem.
AplicaçãoPlaneamentode Viagens
AplicaçãoPlaneamentode Viagens
Rede Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
Companhia aéreaCompanhia aérea
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
40
Utilização de Agentes MóveisUtilização de Agentes Móveis
Exemplo (Cont.)Estar atento aos atrasos de uma viagem
Antes de deixar o local da companhia aérea, o agente cria um segundo agente
Este agente novo fica suspenso até ao dia da viagem do utilizador
No dia da viagem, o agente novo activa-se e verifica o horário do voo.
Interage com o agente da companhia aérea e notifica a aplicação do planeamento de viagens do atraso do voo. A aplicação avisa o utilizador desta ocorrência.
AplicaçãoPlaneamentode Viagens
AplicaçãoPlaneamentode Viagens
Rede Rede
Centro Comercial ElectrónicoCentro Comercial Electrónico
InformaçõesInformações
Companhia aéreaCompanhia aérea
Há atrasos no voo?
O voo está atrasado 1
hora.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
41
Utilização de Agentes MóveisUtilização de Agentes Móveis
Exemplos de aplicações de agentes móveis:Executar tarefas que consumem muito tempo
Melhor preço de um aparelho electrónico numa dada área limite
Utilizar a combinação de serviçosMonitorização selectiva com reacção automática e notificação
Actualização de páginas Web
Processamento paralelo e assíncrono em redes com variações de carga
Quando a processamento começa a ficar lenta, o agente procura outro computador com menos carga
Filtragem e análise dos dados na fonteProcura de informação com determinado conteúdo
Redes com pequena largura de banda e/ou computadores temporariamente conectados
O agente retorna quando a ligação é estabelecida
Correio electrónico inteligente
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
42
Agentes em Computadores PortáteisAgentes em Computadores Portáteis
Computadores PortáteisAcesso à rede intermitente ou por ligações PPP
Quando ligados, têm baixo Bit Rate disponíveis, devido aos Modems e às Wireless Networks
Baixa capacidade de processamento e de armazenamento
Docking System (AgentTcl) :O computador portátil (P) está desligado da rede
O computador A, deseja enviar-lhe um agente e não o encontra na rede
Envia o agente para a máquina associada a P (P_Dock)
Na próxima ligação o agente é transferido para o portátil P.
R e d e
P
P _ D o c k
A
N e w A d re s s
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
43
SegurançaSegurança
PROBLEMAS:Protecção da máquina
Limitar recursos atribuídos, como acesso a ficheiros importantes e a tempo de CPU.
Protecção de outros agentesUm agente não pode interferir com outros, nem roubar recursos alheios.
Protecção do agenteUma máquina não deve ser capaz de interferir com o agente ou de retirar informação importante deste sem o consentimento do mesmo.Deve assegurar-se que informações confidenciais nunca passam por máquinas de uma forma não cifrada.
Protecção de um grupo de máquinasUm agente pode consumir uma excessiva quantidade de recursos da rede, mesmo que consuma poucos recursos em cada máquina.Por exemplo, um agente que anda de um lado para outro na rede ou clones de agentes, cada um utiliza poucos recursos, mas no total é uma enorme sobrecarga.
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
44
SegurançaSegurança
Possíveis ataques:Dados do agente lidos durante a sua transmissão
Alteração ou substituição de parte do código sem alterar a autoridade (proprietário)
Um agente é interceptado e clonado para fins que não o original
Um agente consegue alterar a sua autoridade e identidade e faz-se passar por outro
Um recurso é usado exaustivamente, logo fica inacessível a outros agentes
Um falso servidor recusa-se a dar os recursos ou executa um agente indevidamente
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
45
SegurançaSegurança
Garantias desejáveis:Integridade dos dados e dos agentes que são transmitidos
Controlo do acesso a recursos e execução correcta dos agentes
Autenticação de confiança dos agentes e lugares
Manutenção de um historial da execução dos agentes
Flexibilidade para uso
Garantias impossíveis:Esconder qualquer dado do agente sem uso da encriptação
Esconder o facto de um agente estar num determinado lugar ou estar a ser transferido
Garantir que a identidade de um agente não foi falsificado
Garantir que a máquina não falhe durante a execução do agente
Garantir que o servidor irá transmitir o agente ao seu destino correctamente e imediatamente
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
46
Acções sobre AgentesAcções sobre Agentes
Acções sobre um agenteCreate – o agente «nasce» e o seu estado é inicializado
Clone – é criado uma cópia (novo Id)
Dispatch – o agente é enviado para outro hospedeiro (novo H)
Retract – o agente é chamado ao seu lugar hospedeiro de origem
Deactivate – execução é congelada e o seu estado armazenado
Activate – execução do agente é iniciada ou retomada (novo S)
Dispose – agente é destruído e recursos libertados
< Id ,S ,H >
< Id ,S 1 ,H >
< Id ,S ,H 1 >
H o s p e d e iro 1 H o s p e d e iro 2
< Id 1 ,S ,H >
C re a te
D e s tro y
C lo n e
A c tiv a teD e a c tiv a te
D is p a tc h
R e tra c t
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
47
Ambientes de DesenvolvimentoAmbientes de Desenvolvimento
Componentes:Linguagem de programação – para programar os agentes
Biblioteca de funções específicas – disponibilizam funções específicas para os agentes
Interpretador – comparável a um compilador
Servidor – gere os agente activos e controla o acesso a recursos
Protocolo de transporte – transfere os agentes entre servidores
Modelo e mecanismo de Segurança – para proteger os agentes e as máquinas
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
48
Ambientes de DesenvolvimentoAmbientes de Desenvolvimento
Características comuns:Existência de um servidor – para a execução e transferência de agentes
Autonomia de movimentos – o itinerário é determinado pelo estado local
Serialização do estado – o estado é codificado para ser transportado
Re-direccionamento – envio de mensagens são enviadas para a nova localização do agente
Funcionalidade dinâmica – para se carregar o código de diversas fontes (servidor, FTP)
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
49
Sistemas ExistentesSistemas Existentes
Sistemas Baseados em JAVA:AgentSpace – INESC/IST
Aglet – IBM
Concordia – Mitsubishi
Cyber Agent – FTP Software
Internet System Environment – OSF
Sumatra – UMCP
Odyssey – General Magic, Inc
Voyager – ObjectSpace (ORB 100% Java)
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
50
Sistemas ExistentesSistemas Existentes
Sistemas Baseados noutras linguagens:AgentTcl – Dartmauth College
April – Fujitsu
Clearlake – Guideware
MO – Universidade de Geneva
Obliq – DEC SRV
TACOMA – Tromsf And COrnell
TeleScript – General Magic, Inc
Wave – Universidade Surrey
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
51
ReferênciasReferências
“Mobile Agents”, James WhiteURLs
The Agent Society http://www.agent.org/ AMiTY, claimed to be the “world's-smallest Win95 computer'', from Mitsubishi Electric Receives a mention in http://www.japantimes.co.jp/features/ccorner/cc96/cc961023.html Crystaliz, Inc http://www.crystaliz.com/ FTP Software's Virtual IP Network http://www.ftp.com/product/whitepapers/vip_wp.htm and Agent Applications http://www.ftp.com/product/whitepapers/4agent.htm General Magic's Odyssey http://www.genmagic.com/ IBM's Aglets http://www.trl.ibm.co.jp/aglets/index.html Mitsubishi Electric ITA Horizon Systems Laboratory's Concordia http://www.meitca.com/HSL/Projects/Concordia The Mobile Agent Facility Specification http://www.genmagic.com/agents/MAF/ ObjectSpace's Voyager http://www.objectspace.com/Voyager/ Oracle's Mobile Agents White Paper http://www.oracle.com/products/networking/mobile_agents/html/whitepaper.html Mobile Agent References http://www.infosys.tuwien.ac.at/Research/Agents/ref.html MIT Media Lab Software Agents Group http://agents.www.media.mit.edu/groups/agents/ Mobile Agents - Process migration technology and its implications http://www.davidreilly.com/topics/software_agents/mobile_agents/ Mobile Agents http://www.geckil.com/~harvest/agents/index.html
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
52
Livros sobre Agentes MóveisLivros sobre Agentes Móveis
N.R. Jennings, M.J. Wooldridge,”Agent Technology: Foundations, Applications, and Markets”, Springer Verlag, 1998
Mark Watson, “Intelligent Java Applications for the Internet and Intranets”, Morgan Kaufmann Publishers, 1997
W. Brenner et al., “Intelligent Software Agents”, Springer Verlag, 1998
William R. Cockayne and Michael Zyda, “Mobile Agents: Explanations and Examples”, Manning, 1997
Radu Popescu-Zeletin (Editor), “Mobile Agents: First International Workshop, Ma'97 Berlin”, Springer Verlag, 1997 Proceedings (Lecture Notes in Computer Science, 1219)
D. Lange, “The Aglet Cookbook”
Alberto Silva, “Agentes de Software na Internet”, Centro Atlântico, 1999
11-04-23 Introdução aos Agentes AutónomosAgentes Móveis
53
The EndThe End