Multiagentes - Profª Lucia Giraffa - 1999/2
Seminário de Linguagens

 

TELESCRIPT E AOP

CONCEITO DE LINGUAGENS DE AGENTES

  Por linguagem de agentes, entende-se um sistema que permite a alguém programar um sistema de hardware ou software em termos de algumas concepções desenvolvidas por uma teoria de agentes. Menos que isso, espera-se que uma linguagem de agentes inclua alguma estrutura correspondente a um agente.

 

 

Intelligent Agents Repository - Esta página é um repositório de links de recursos de Agentes Inteligentes, mas que também traz muitas informações sobre Agentes Autonomos, Internet Softbots/Robots, Sistemas de Informação Cooperativo, Sistemas Multiagentes, Resolução Distribuida de Problemas e Inteligencia Artificial Distribuída; organizada por Leonardo Garrido. CONFIRA!

TELESCRIPT
 

Introdução

Telescript é definido como um ambiente para construção de sociedades de agentes. Este ambiente consiste de uma linguagem de programação remota orientada à objeto e uma plataforma que permite a criação de aplicações ativas distribuídas em rede. Nesta tecnologia existem dois conceitos básicos: agentes e lugares. Agentes são processos de software móveis, ou seja, são capazes de mover-se de um lugar para outro e que comunicam-se entre si através de uma rede. Locais são locações virtuais ocupadas por agentes. Para permitir o desenvolvimento da tecnologia TELESCRIPT, quatro componentes estão sendo desenvolvidos:

Uma linguagem, com suporte a redes e serviços como comunicação, navegação e transporte;

A máquina TELESCRIPT, que é um interpretador para a linguagem;

Conjunto de protocolos;

Conjunto de ferramentas de software para suportar o desenvolvimento de aplicações;

Tecnologia Telescript

As redes atuais são baseadas em chamadas de processo remoto (remote procedure calling (RPC)). Uma rede transporta mensagens -- dados -- que tanto podem estar requisitando serviços ou respondendo estas requisições. Os computadores que estão enviando e recebendo as mensagens devem ter um acordo prévio sobre o que eles irão trocar. Este acordo constitui o protocolo.

Uma abordagem diferente para o trabalho em rede é a programação remota [remote programming (RP)]. A rede transporta objetos -- dados e processos --- que o computador receptor executará. A General Magic chama estes objetos de agentes para reforçar o fato de que eles atuam para o computador emissor enquanto estão no computador receptor. Uma característica da programação remota é que o cliente e o servidor podem interagir sem o auxílio da rede uma vez que ela tenha transportado o agente através dela. Pois, a interação posterior não requer mais comunicação, até a solução ter sido encontrada.

A utilidade da programação remota é bi-direcional. Tanto o computador servidor, como o computador cliente pode ter agentes (mesma abordagem em termos gerais da linguagem Java), e um agente do servidor pode transportar a si mesmo para o computador cliente.

Principais Conceitos

Locais

A tecnologia Telescript busca integrar o mundo de computadores e das redes que os inter-conectam. Como computadores inclue-se tudo desde comunicadores pessoais até mainframes. Nas redes estão incluídas redes locais, globais, públicas, privadas, etc.

Agentes

Um local é ocupado por agentes Telescript. Como cada local uma estrutura estática, os agentes são os responsáveis pela atividade dinâmica. Os Agentes, como os locais, são programados na linguagem Telescript.

Viagem , GO, "ir"

Cada agente Telescript pode transportar-se a si mesmo de um local na rede para outro (conceito "ir"). Um agente viaja para obter um serviço oferecido remotamente e retorna então para o seu ponto de partida.

Reuniões

Uma vez que estejam no mesmo local, dois agentes podem interagir. Os agentes interagem para que uma agente obtenha um serviço de outro. Eles podem trocar informações e efetuar transações.

Conexões

Quando estão num mesmo local dois agentes interagem através de uma reunião. Quando estão em locais diferentes, eles interagem pela comunicação. Agentes comunicam-se para trocar informações, muitas vezes em benefício de um usuário humano que está navegando.

PRECAUCÕES DE SEGURANÇA

Interpretação: A linguagem Telescript é mais interpretada do que compilada. As instruções com que um local ou programa agente são construídos não são aquelas de nenhum computador real, nem os objetos que o programa manipula são objetos "reais" do sistema operacional. Ou seja, locais e agentes não dispõem do vocabulário necessário para atuar diretamente examinando ou modificando a memória, sistema de arquivos, ou outro recurso físico no computador onde ele é executado.

Permissões: Cada local ou agente Telescript tem uma permissão que limita suas capacidades. Permissões ajudam a proteger o ambiente de agentes mal intencionados ou mal programados impedindo o consumo desenfreado de recursos.

Linguagem Telescript - Características: · A linguagem Telescript suplementa, não substitui, linguagens de programação de sistemas com C e C++; · A linguagem Telescript é orientada à objetos.; · A linguagem é dinâmica. Pode descobrir e definir novas classes durante a execução; · É persistente. Os dados são guardados pelo engine do sistema em disco, inclusive o ponto de execução, portanto o sistema é persistente mesmo com a queda do computador.

A linguagem é interpretada. O engine (motor, máquina) interpreta as instruções que formam o programa, tornando-as portáteis e seguras, apesar de atualmente existir também um compilador para a linguagem, ela continua sendo executada sob a forma interpretada no ambiente distribuído; e, A linguagem Telescript é centrada em comunicação, portanto todos os processos de navegação, autenticação, controle de acesso, etc, da rede são realizados automaticamente pela linguagem .

O engine realiza algumas funções importantes. Ele mantêm os locais bem como os agentes que ocupam estes locais. O engine faz o back-up para o disco, ou outro meio não volátil dos locais e agentes que ele mantém. Ele também executa os programas, concorrentemente. Se for necessário o engine empacota e transporta os agentes para outros engines.

Fonte: http://www.inf.ufsc.br/iad/users/h/homero/telescri.htm

PROGRAMAÇÃO ORIENTADA A AGENTES (AOP)
 

 

INTRODUÇÃO

O paradigma de Programação Orientada a Agentes (AOP) foi definida por Yoav Shoam. Em AOP, um agente é determinado por suas crenças, suas capacidades, e seus compromissos, que juntos constituem seu estado mental. AOP estimula uma visão social de computação social em que comunidades de agentes interagem pela troca de informações, enviando requisições específicas, oferecendo serviços, aceitando ou rejeitando tarefas, competindo com outros para uma tarefa ser finalizada ou cooperando com outros.

AOP é um formalismo que descreve o estado mental de um agente - crenças, capacidades, compromissos. Agentes são controlados por "agentes programas" que possuem primitivas para fazer coisas como comunicação com outros agentes: request-info, offer-info etc.

LALO

Vince Delle Donne, Daniel Gauvin e Hervé Marchal do CRIM (Computer Research center In Montreal) desenvolveram LALO, uma linguagem e framework para o desenvolvimento de sistemas multiagentes inteligentes. LALO é uma linguagem que usa o paradigma de AOP. Um programa escrito em LALO é traduzida para o código fonte de C++, e então pode ser compilado com o compilador do C++. Os agentes comunicam-se com KQML (Knowledge Query Manipulation Language). O framework LALO está disponível para plataformas UNIX, Windows NT e Windows 95.

AGENT 0

O AGENT0 consiste num interpretador construído para rodar com a linguagem Common Lisp. Ela cria um ambiente em que agentes "inteligentes" relativamente simples podem ser criados e testados. A linguagem AGENT0 foi criada na Universidade de Stanford.

A implementação atual da AGENT0 foi escrita em Common Lisp, e pode ser executada em qualquer máquina com interpretador Common Lisp. Ela foi testada sobre a versão original da GCL (Gnu Common Lisp) e outros sistemas. O código do interpretador e da interface de linha de comando podem ser portados para qualquer implementação Common Lisp. Existem também programas adicionais que fornecem uma Interface Gráfica para Usuário sobre XWindows.

Fontes: http://www.cs.umbc.edu/agents/technology/asl.shtml

http://www.inf.ufsc.br/iad/users/h/homero/agent0.htm

Grupo responsável pelo resumo do artigo:
Jiani Cordeiro Cardoso
Denilson Rodrigues da Silva
Mariane Moraes