210 likes | 289 Views
Sistemas Distribuídos. Agentes de Software. Definição de agente. Um agente pode ser uma pessoa, uma máquina, ou software que actua por interposta pessoa. Propriedades adicionais: Autónomos: capaz de actuar sem intervenção externa directa.
E N D
Sistemas Distribuídos Agentes de Software
Definição de agente • Um agente pode ser uma pessoa, uma máquina, ou software que actua por interposta pessoa. • Propriedades adicionais: • Autónomos: capaz de actuar sem intervenção externa directa. • Tem algum grau de autonomia e controlo do seu estado interno baseado nas suas próprias experiências. • sem a propriedade da autonomia um agente não é uma entidade dinâmica mas sim um objecto passivo, por isso a autonomia é uma propriedade requerida dos agentes.
Propriedades dos agentes • Interactivo: capaz de comunicar com o ambiente ou com outros agentes. • podem expressar-se em graus de interactividade: • mensagens para objectos (invocação de métodos) (forma mais básica de interacção) • reacção a eventos observáveis no ambiente • interacções sociais (múltiplas a paralelas formas) • interacção em sistemas multiagentes heterogéneos (capazes de se coordenarem através de mecanismos cooperativos e competitivos como negociação e planeamento) (interacção mais complexa) • É considerada uma propriedade necessária
Propriedades dos agentes • Adaptativos: capazes de responder a outros agentes e ao seu ambiente. • Na sua mais avançada forma permite ao agente modificar o seu comportamento baseado na sua experiência (aprendizagem e evolução). • Envolve geralmente algoritmos genéticos. • É considerada uma propriedade necessária • Proactivos: orientados a um objectivo com um propósito. Não reagem simplesmente ao ambiente.
Propriedades dos agentes • Móveis: capacidade de se transportar de um ambiente para outro. • geralmente corresponde a mudar de máquina hospedeira. • pode ser visto como itinerante, dinâmico, roaming ou migrante. • Não é uma propriedade necessária. • Inteligentes: o estado é formalizado pelo conhecimento e interactua com outros agentes usando linguagem simbólica
Propriedade de agentes • Racionais: capaz de escolher uma acção baseada em objectivos internos • Não previsível: capaz de agir em formas não idênticas no passado mesmo se as condições iniciais forem iguais. • Carácter: ter personalidade ou estado emocional acreditável.
Propriedades dos agentes • Transparente e auditado: deve ser transparente quando requisitado e deve apresentar um relatório de actividades se pedido. • Coordenativo: capaz de executar uma actividade num ambiente partilhado por outros agentes. • actividades são geralmente coordenadas via planos, fluxos de trabalho, ou outro mecanismo de gestão de processos
Propriedades de agentes • Cooperativos: capaz de se coordenar com outros agentes para atingir um propósito • Competitivo: capaz de se coordenar com outros agentes num modelo onde o sucesso de um agente implica o fracasso de outro. • Robusto: capaz de lidar com erros e dados incompletos • Confiáveis: aderem às leis da robótica
Sistemas de agentes • Um agente pode ser construído para ser capaz de fazer muitas coisas mas um “fat-agent” representa um impedimento à velocidade, robustez e manutenção. • Dividir a funcionalidade entre muitos agentes fornece modularidade, flexibilidade, extensibilidade, escalabilidade e capacidade de alteração.
Sistemas de agentes • Aplicações que requerem computação distribuída são suportadas melhor por MAS. • Tecnologia de agentes representa o SOA em computação distribuída. • Os ambientes MAS fornecem uma infraestrutura específica onde se integram os ambientes de funcionamento, protocolos de comunicação e interacção entre agentes
Uso de agentes • Agentes para redes e gestão de sistemas • responsáveis por tarefas tais como: detecção de faltas, equilíbrio de carga. antecipação de faltas, parametrização dinâmica de redes, análise de problemas, padrões de comportamentos, síntese de informação. • Agentes para decisão e suporte logístico • Agentes de negociação e formulação de consenso.
Uso de agentes • Agentes para assistência ao utilizador • Agentes para estruturas organizacionais • simulação de situações ou organizações
Tecnologia de Agentes • Linguagem de Programação: Java ou C++ • Linguagem de Comunicação: KQML ou FIPA ACL • Representados como String ou documentos XML • Linguagem de conteúdo: KIF or SL1 • Maior parte dos agentes móveis são enviados pela rede usando técnicas de serialização
Pontos chaves • Comunicação • Existe a necessidade de standardizar as linguagens de comunicação entre agentes (KQML, Arcol, FIPA, KIF, XML-based) para haver interoperabilidade enter diferentes fabricantes. • É necessário haver um entendimento ontológico
Pontos chave • Estado interno dos agentes • Representação dos objectivos que representam desejos ou estados futuros. • Ajudam o agente a determinar que acções tomar em circunstâncias particulares • São necessários interfaces com o exterior para que o agente tenha uma representação do mundo
Pontos chave • Gestão do ciclo de vida: • Devem existir mecanismos para fazer o “start”, “stop”, “manage” e “trace”. • Quando são móveis adicionam-se “permissões” para executar, actuar, ou comunicar. • Quando são evolutivos adicionam-se serviços para “delegar responsabilidades” • Podem ficar adormecidos e salvaguardados durante grandes temporadas
Pontos chave • História: • Podem existir mecanismos para gravar as acções do agente para futuras auditorias e para avaliação de acções passadas • Mobilidade • requerem um servidor com o ambiente onde possam ser executados • introduzem complexidade adicional de segurança e validação do código móvel
Pontos chave • introduzem complexidade na gestão: • Aonde estão? Como comunicar com eles? como trazê-los de volta quando a rede falha? • gestão de nomes torna-se essencial
Arquitectura de agentes • Sistema de gestão de agentes • Mantém um directório de nomes lógicos dos agentes e seu endereço de transporte para uma plataforma de agentes • Responsável por fazer a gestão do ciclo de vida dos agentes