Elementos de um Sistema de Agentes Móveis Agentes e Places Comportamento de Agentes Comunicação Padronização OMG/MASIF Introdução • Objetivo: entendimento dos elementos de um sistema de agentes móveis. • O modelo conceitual básico de agentes móveis: baseado sobre dois conceitos: Agente e Place • Essências do comportamento de um agente: Criação, liberação, transferência sobre a rede, e conceitos de comunicação de agentes. • Breve overview do MASIF Agente e Place • Os dois conceitos fundamentais no modelo de agentes móveis são agente e seu ambiente de execução, o qual chamaremos de place. • Agente: um agente móvel é uma entidade que tem cinco atributos: identificador, interface, estado, implementação e principals. Agente • Quando o agente se move na rede, ele leva estes atributos com ele. • State: necessário para que o agente retorme a execução após a viagem. • Implementação: necessária para execução de agente independente de localização. Agente • Interface: necessária para a comunicação do agente. • Identificador: necessário para reconhecer e localizar agentes viajando na rede. • Principals: necessários para determinar responsabilidade legal e moral. Agentes • Hipótese básica: agentes são construídos de acordo aos princípios da programação orientada -a-objeto. • Conceitos da OO: classe, instanciação, estado, variável de instância. Propriedades de Agentes Principals Interface Implementation I State Identificador Estado / State • Quando um aglet viaja, ele transporta seu estado com ele. • No sentido de retomar execução no host destino. • O estado do agente, em qualquer tempo é um “snapshot” de sua execução. • O estado pode ser partido entre o estado de execução e o estado de objeto. Estado • Estado de execução é o o seu estado de runtime (incluindo o contador de programa e a pilha). • Estado do Objeto é o valor das variáveis de instância no objeto. Estado • Agentes não são sempre requeridos capturar e transportar seu estado de execução com ele, no sentido de retomar execução no host destino. • Em muitos casos, uma aproximação será suficiente. Estado • Os valores das variáveis de instância podem auxiliar o agente, a determinar o que fazer quando ele retoma execução no destino. Estado • Esta é uma aproximação apropriada para agentes baseados em Java que geralmente não podem acessar seu estado de execução. • Java não provê acesso à informação da pilha. Implementação • Um agente necessita código para executar. • Quando ele migra, ele tem a opção de executar seu código de implementação, ou chegar no destino, vendo qual código já está lá, e recuperar qualquer código faltando, através da rede (código sob demanda). Interface • Um agente provê uma interface que permite outros agentes interagirem com ele. • Uma interface é uma assinatura de métodos que permite outros agentes e aplicações acessarem métodos sobre o agente, permitindo agentes se comunicarem. Identificador • Todo agente tem um identificador que é único durante seu tempo de vida. • Agentes requerem identificadores de modo que eles possam ser identificados e localizados. Principals • Um principal é uma entidade cuja identidade pode ser autenticada por qualquer sistema que o principal pode tentar acessar. • Um principal pode ser um indivíduo, uma organização ou uma corporação. Principals • Uma identidade consiste de um nome e possivelmente outros atributos. • Para agentes, existem pelo menos dois principals: - Manufacturer - Proprietário Principals • Manufacturer: o autor (isto é, o provedor da implementação do agente). • Proprietário: o principal que tem a responsabilidade legal e moral para o comportamento do agente (por exemplo, o criador do aglet). Place • O ambiente no qual os agentes operam. • Agentes viajam entre places. • A visão mais comum de um place é aquela de um contexto no qual um agente pode executar. • Ver figura PLACE AND ENGINE. Place e Engine Host Agents Place Engine Resouces Place • Pode-se considerar como um ponto de entrada onde agentes visitantes podem executar. • Um place provê um conjunto de serviços, uniforme, que o agente pode contar, independente de sua localização específica. Place • Pode-se considerar como o sistema operacional para o agente. • Existem quatro papéis importantes para places: Engine, Resources, Localização, Principals Engines • Em um sistema de agentes móveis, o engine é identificado como a máquina virtual Java e o sistema operacional da máquina. • Máquina Virtual e sistema operacional para um ou mais places e seus agentes. • Places não podem eles próprios executarem agentes. Engines • A engine define uma estrutura hierárquica. • Um dado computador em uma rede pode hospedar múltiplos engines; cada engine pode reter múltiplos places, e cada place contém múltiplos agentes. • Ver figura The Agent Model Pyramid. Host Engines Places Agents Engines • O fato que um engine pode conter mais do que um place, requer que places tenham nomes únicos dentro de um engine. • Alguns sistemas de agentes podem não ter o conceito de place explícito. Engines • Em tais sistemas pode-se considerar a própria engine como um tipo de place. Recursos Localização Principals Comportamento do Agente • Dois aspectos: - Criação do agente. - Destruição do agente. Criação e Destruição • Um agente é criado em um place. • A criação pode ser iniciada ou por um outro agente residindo no mesmo place ou por um outro agente ou um sistema que não é de agentes fora do place. Criação e Destruição • Ao criador é requerido autenticar-se ao place, estabelecendo a autoridade e credenciais que o novo agente possuirá. • O criador supre também argumentos de inicialização para o agente sendo criado. Criação e Destruição • A definição de classe necessária para instanciar o agente pode estar presente no host local ou em um host remoto, ou se necessário, pode ser provido pelo criador. • O processo de criação envolve três etapas: Agent Transfer Sender Receiver Suspend Execution Resume Execution Serialize Agent Deserialize Agent Encode Data Decode Data Transfer Data Receice Data NETWORK SERVER Class Code (c) (b) ORIGIN (a) DESTINATION Agent Agent Class Code Class Code COMUNICAÇÃO SÍNCRONA NOW-TYPE MESSAGE RECEIVER SENDER COMUNICAÇÃO ASSÍNCRONA FUTURE –TYPE MESSAGE RECEIVER SENDER ONE WAY – TYPE MESSAGE RECEIVER SENDER