180 likes | 263 Views
Modelos Baseados em Agentes. Plataformas Multi-Agente. Prof. André Campos Aula #1 5. Baseado no curso de Olivier Boissier (ENS Mines St. Etienne, França). Problema. O interesse em SMA tem crescido, porém Linguagens orientadas a agentes são ainda raras ou em estágio de maturação
E N D
Modelos Baseados em Agentes Plataformas Multi-Agente Prof. André Campos Aula #15 Baseado no curso de Olivier Boissier (ENS Mines St. Etienne, França) DIMAp/UFRN
Problema • O interesse em SMA tem crescido, porém • Linguagens orientadas a agentes são ainda raras ou em estágio de maturação • O desenvolvimento de SMA se apóia em linguagens e paradigmas de programação existentes (em geral O-O) • A implementação de SMA em O-O é complexa (distribuição, protocolos de comunicação etc) • Conseqüência = surgimento de várias ferramentas dando o suporte ao desenvolvimento SMA • Existem centenas (ver, por exemplo www.agentlink.org ou www.multiagent.org ) • Problema = qual utilizar? DIMAp/UFRN
Necessidades das ferramentas • Suporte à implementação de agentes • Interação com o ambiente (sensores etc) • Comunicação (padrões, yellowpages, ACL etc) • Protocolos de negociação, cooperação etc • Suporte ao design do SMA • Análise (descrição do problema etc) • Design (arquiteturas com protocolos de interação etc) • Desenvolvimento (plataformas, frameworks etc) • Deployment (configuração, manutenção etc) • Suporte ao usuário final • Segurança (confiabilidade, integridade etc) DIMAp/UFRN
Padrões em SMA • FIPA – Foundation for Intelligent Physical Agents • Especificações de interfaces de componentes do ambiente com as quais os agentes interagem • Ex.: usuários, outros agentes, ambiente físico (robôs) etc • MASIF – OMG (Object Management Group) • Padronização de agentes móveis • Serviços e interfaces de middleware • DARPA Knowledge Sharing • Outros... DIMAp/UFRN
Visão geral de FIPA • Objetivo • Criar padrões internacionais que promovam a interoperabilidade entre agentes heterogêneos • Estrutura • Quadro Arquitetural da FIPA, Comitês técnicos, Grupos de trabalho • Fundado em 1996 • British Telecom, France Télécom, Fujitsu, HP, Hitachi, IBM, Imperial College, Intel, Motorola, Nasa, Nec, Nortel Networks, NTT, Philipps, Siemens, SNCF, SUN, Telecom Italia, Toshiba, ... • Primeiros padrões em 1997 – FIPA’97. Depois FIPA’98, FIPA’2000 DIMAp/UFRN
Especificações de FIPA • Última versão (FIPA’2000) • Padrões nas seguintes áreas (~80) • Linguagem, conteúdo (semântica), protocolos de interação, diretório de serviços, ... • 2 tipos de especificações • Normativa • Especificações obrigatórias, assegurando a interoperabilidade entre outros sistemas FIPA • Informativa • Especificações-guias sobre como utilizar tecnologias desenvolvidas de acordo com as normas da FIPA DIMAp/UFRN
Quadro de especificações • Aplicações • Arquitetura abstrata • Gerenciamento dos agentes • Comunicação dos agentes • Protocolos de interação • Atos de comunicação • Linguagens de conteúdo • Transporte de mensagem • Representação ACL (Agent Comunication Language) • Representação dos envelopes • Protocolos de transporte DIMAp/UFRN
Plataformas FIPA • Para que uma plataforma seja considerada FIPA-compliant no mínimo: AMS e ACL • Gerenciamento de agentes (AMS) • Autenticação, Recursos, “páginas brancas” (naming) • Comunicação (ACL) • Diretório de agentes (páginas amarelas) • Canal de comunicação (ACC) • transporte de mensagens • Serviços opcionais • Ontologia, Interação H-M etc AMS PA HTTP Transporte (ACC) DIMAp/UFRN
Interoperabilidade entre plataformas • Comunicação entre agentes pode ocorrer • Internamente no seio na mesma plataforma • Entre plataformas – usa ACC e transporte de mensagem • Cada plataforma pode • Estar implementada em linguagem diferentes • Possuir arquiteturas diferentes • Suportar diferentes funcionalidades • Porém possuem • Mesmos serviços de transporte • Mesma linguagem de comunicação DIMAp/UFRN
Tipos de plataformas • Suporte às diferentes fases de elaboração de um SMA • Design • Em geral baseadas em componentes • Middlewares • Design + Implementação • Facilita a definição dos agentes • Frameworks • Design + Implementação + Testes • Análise + Design + Imp. + Testes Análise Design Implementação Teste e validação DIMAp/UFRN
Exemplos de plataformas • JADE (Java Agent Development Framework) • MadKit (Multi-Agent Development Kit) • Zeus • Outros • ADE, ADK, Agent Factory, AgentBuilder, AgentTool, Aglets, Bee-gent, BOND, DECAF, DIET, DIVA, EVO, Hive, IMPACT, Jack, JAFMAS, JIAC, JINI, Knowbot, LIME, MAGE, MAML, RETSINA, SOAR , TuCSoN, VOYAGER,... • ... e muito mais!!!! DIMAp/UFRN
JADE • Java Agent Development Framework • Open source • Conforme especificações da FIPA (uma das primeiras ferramentas) • Análise e Design • N/A • Implementação • Um agente em JADE é instância de uma subclasse da classe “Agent” • Inclui uma biblioteca de protocolos de interação e comportamentos gerais de agentes (podem ser configurados) • Deployment • Alguns utilitários são fornecidos • RMA (Remote Monitoring Agent) permite o controle do ciclo de vida dos agentes à distância • DummyAgent permite configurar como o usuário interage com os agentes DIMAp/UFRN
Modelo de comunicação em JADE • Agentes enviam/recebem objetos (Java) que representam mensagens ACL no escopo de um protocolo de interação • Usuários não se preocupam em codificar mensagens • Níveis de envelope, ACL, Linguagem de Conteúdo e Ontologia • Pode ser estendido • Biblioteca de protocolos de interação • Usuários precisam apenas implementar métodos pré-definidos • Ex.: Rede de contrato DIMAp/UFRN
MadKit • Multi-Agent Development Kit • Baseado no modelo Aalaadin (organização) DIMAp/UFRN
MadKit • Análise • N/A • Design • Definição de modelos organizacionais (grupos, papéis,...), modelo de interação (protocolos, mensagens,...), tarefas, objetivos • Não há software que dê suporte à definição de tais modelos • Implementação • Baseado na estrutura Agent-Micro Kernel • Deployment • Uso de G-box DIMAp/UFRN
Zeus • Versões inicial (1.02) • Open source (Mozilla) • Última versão fechada: British Telecom • Análise • Modelagem de papéis através de UML • Forte ênfase na metodologia • Design • Zeus Agent Model • Implementação • Baseado em ferramentas gráficas (ontologia, agente, configuração de tarefas dos agentes etc) • Deployment • Ferramentas de visualização e monitoramento dos agentes DIMAp/UFRN
Desenvolvimento em Zeus • 3 bibliotecas • Agentes utilitários • Ferramentas de construção de agentes • Biblioteca de componentes de agentes • Definição gráfica dos agentes e serviços, em seguida pode-se gerar código (Java) DIMAp/UFRN
Passos de desenvolvimento • Criação de uma ontologia • Conhecimento declarativo dos conceitos significativos dentro de um domínio de aplicação (Zeus Ontology Editor) • Criação de agentes • Definição de agentes de tarefa (específico da aplicação) • Configuração dos agentes utilitários • Configuração dos agentes de tarefa (parâmetros de execução) • Implementação • Geração de código automático DIMAp/UFRN