Nove anos após o 1º workshop sobre Teorias, Arquiteturas e Idiomas de Agentes (ATAL’94) na ECAI’94, que muitos assumem como ponto de partida da pesquisa intensiva de sistemas de agentes, pedimos a alguns dos mais proeminentes e ativos pesquisadores da área para compartilhar suas opiniões sobre algumas questões fundamentais sobre agentes de software.
As respostas de Costin Badica, Lars Braubach, Giancarlo Fortino e Giovanni Rimassa fornecem uma visão bastante composta do status e perspectivas da pesquisa sobre agentes e sistemas multi-agentes, bem como sobre suas futuras aplicações.
- Bios
- Questões
- Respostas
- Questão 1: Onde está a pesquisa sobre sistemas de agentes hoje em dia e para onde ela está indo? Quais são os maiores sucessos e fracassos até hoje, e quais são as lições mais importantes aprendidas?
- Giovanni Rimassa
- Costin Badica
- Giancarlo Fortino
- Lars Braubach
- Questão 2: Quais são as aplicações de agentes de software de maior sucesso no mundo real? Quais são as próximas áreas de aplicação para eles, e os humanos estão prontos para interagir com agentes de software em seu dia-a-dia?
- Lars Braubach
- Giancarlo Fortino
- Costin Badica
- Giovanni Rimassa
- Questão 3: Qual é a sua perspectiva sobre os padrões dos agentes? O estado atual do FIPA como um corpo IEEE é satisfatório, ou precisamos de algo mais?
- Giovanni Rimassa
- Costin Badica
- Giancarlo Fortino
- Lars Braubach
- Questão 4: O que ainda falta na área de plataformas, idiomas e ferramentas de agentes?
- Giancarlo Fortino
- Lars Braubach
- Costin Badica
- Giovanni Rimassa
Bios
Costin Badica é professor do Departamento de Informática e Tecnologia da Informação da Universidade de Craiova, Romênia. Ele tem um PhD em Sistemas de Controle da Universidade de Craiova. Os seus interesses de investigação estão na intersecção da inteligência artificial, sistemas distribuídos e engenharia de software. Ele tem mais de 100 publicações em artigos de revistas, capítulos de livros e artigos de conferências, mais de 10 números especiais de revistas editadas por acaso, assim como vários livros editados. Contate-o em [email protected].
Lars Braubach é pesquisador sênior e líder de projeto no Grupo de Sistemas Distribuídos, Universidade de Hamburgo. Ele tem um doutorado em ciência da computação pela Universidade de Hamburgo. Sua pesquisa visa melhorar os meios técnicos de software para o desenvolvimento de aplicações distribuídas e visa a transferência de tecnologia da pesquisa para a indústria. Ele é co-inventor da abordagem de componentes ativos, que reúne agentes com características de componentes e serviços, e tem sido um dos principais arquitetos da plataforma de agentes da Jadex desde 2003. Ele já apoiou vários projetos de transferência de tecnologia com parceiros industriais como Daimler e Uniique AG e publicou mais de 80 artigos em workshops internacionais, conferências e revistas. Contacte-o em [email protected].
Giancarlo Fortino é professor associado de engenharia informática no Departamento de Informática, Modelação, Electrónica e Sistemas (DIMES), Universidade da Calábria (Unical), Rende, Itália. É doutor em Engenharia Informática pela Unical. Seus interesses de pesquisa incluem computação distribuída, redes de sensores sem fio, agentes de software, computação em nuvem e redes multimídia. É autor de mais de 200 publicações em revistas, conferências e livros, e atualmente atua nos conselhos editoriais do Journal of Networks and Computer Applications, Engineering Applications of Artificial Intelligence, Information Fusion, e Multi Agent and GRID Systems. Ele é co-fundador e CEO do SenSysCal, um spin-off da Unical, desenvolvendo inovadores sistemas baseados em sensores para saúde eletrônica e domótica. Ele é membro sênior do IEEE. Contacte-o em [email protected].
Giovanni Rimassa é gerente de produto da Whitestein Technologies. Ele tem um PhD em engenharia de informação da Università degli Studi di Parma. Seus interesses profissionais incluem gestão inteligente de processos de negócios, middleware de agentes, inovação de produtos e transferência de tecnologia. Atuante na área de agentes desde 1997 com seu trabalho seminal na plataforma JADE, ele já publicou mais de 60 artigos em revistas e conferências. Ele é membro da IEEE e da IEEE Computer Society. Contacte-o em [email protected].
Questões
- Onde está a pesquisa sobre sistemas de agentes hoje em dia e para onde se dirige? Quais são os maiores sucessos e fracassos até hoje, e quais são as lições mais importantes aprendidas?
- Quais são as aplicações de agentes de software de maior sucesso no mundo real? Quais são as próximas áreas de aplicação para eles, e os humanos estão prontos para interagir com agentes de software no seu dia-a-dia?
- Qual é a sua perspectiva sobre os padrões dos agentes? O status atual do FIPA como um corpo IEEE é satisfatório, ou precisamos de algo mais?
- O que ainda falta na área de plataformas, linguagens e ferramentas de agentes?
Respostas
Questão 1: Onde está a pesquisa sobre sistemas de agentes hoje em dia e para onde ela está indo? Quais são os maiores sucessos e fracassos até hoje, e quais são as lições mais importantes aprendidas?
Giovanni Rimassa
Dando minha trajetória profissional nestes 20 anos, durante os quais passei da pesquisa acadêmica para a industrial, e depois para a gestão e inovação de produtos, não vou entrar em uma avaliação detalhada da pesquisa em sistemas de agentes em geral, o que pode ser feito de forma muito mais autorizada por outros. Prefiro focar em questões como o impacto geral da pesquisa no campo, ou transferência de tecnologia e eventual adoção na grande arena da construção de software.
Desde meu ponto de observação específico, a pesquisa em sistemas multiagentes tornou-se claramente um campo bastante maduro. Após o boom dos anos 90, a disciplina parece ter se estabelecido. Provavelmente não é tão conveniente hoje em dia escolher um tópico de doutorado sobre princípios gerais de agentes, nem é fácil obter, digamos, financiamento da UE para um projeto de pesquisa sobre infraestrutura de tecnologia de agentes ou bancos de teste de sistemas abertos. Dado este nível de maturidade, eu espero que o desenvolvimento futuro na pesquisa de sistemas de agentes verá uma continuação da pesquisa teórica, aplicando matemática e informática fundamental a problemas esquemáticos relacionados a sistemas multiagentes, mas as áreas mais aplicadas e centradas na engenharia terão de se tornar mais especializadas e centradas no domínio. Um exemplo, inspirado na recente situação mundial, é a aplicação de simulação baseada em agentes para avaliação de risco econômico e financeiro e tomada de decisões. Além disso, com os recentes escândalos da espionagem global da Agência Nacional de Segurança dos EUA (NSA), as pessoas podem começar a se lembrar que a Internet deveria ser um sistema descentralizado e peer-to-peer, em vez de um enorme esquema em pirâmide no qual os usuários submetem seus dados – e agora até mesmo computação – a um pequeno número de enormes corporações de TI de responsabilidade duvidosa. Portanto, é possível, e até provável, que os tópicos principais de computação sobre redes (para verdadeiras linguagens peer-to-peer) e linguagens de programação (para uma programação simultânea mais fácil em processadores multicore) se aproximem ainda mais das ideias de sistemas de agentes por razões muito pragmáticas.
Não posso dizer que a pesquisa de agentes de software tenha sido completamente bem sucedida, e nos últimos anos até ouvi várias declarações sobre a falha final dos sistemas multiagentes – embora normalmente sem motivações claras (o caso mais engraçado foi de um orador numa conferência sobre computação autonómica). Acredito que o resultado é realmente misto e requer alguma elaboração. Os maiores sucessos da tecnologia de agentes estão em alguns dos seus conceitos centrais e como eles anteciparam e, em alguns casos, até impulsionaram a evolução da computação convencional. Se compararmos o cenário típico de TI hoje com o que era em 1994, encontramos muitos traços que os pesquisadores defendiam em sistemas multiagentes na época são agora comuns:
- Comunicação assíncrona baseada em mensagens;
- Esquemas complexos e estruturados para cargas úteis de mensagens;
- Concorrência omnipresente;
- Dispositivos móveis com uma série de informações sensíveis ao contexto;
- Código móvel; e
- Intensivo uso de idéias das ciências sociais para projetar software (modelos de organização, redes sociais, resolução colaborativa de problemas, gamificação).
Na área em que atuo – ou seja, software de gerenciamento de projetos de negócios para empresas de diversos setores – a evolução foi das visões tradicionais de middleware para a gestão de processos de negócios centrada no ser humano (na qual as suítes de BPM fornecem artefatos para melhorar a cooperação entre agentes humanos) para as tendências atuais que reconhecem e enfatizam que o software BPM deve trazer alguma inteligência e adaptabilidade próprias para apoiar trabalhadores do conhecimento capacitados. O resultado previsto é nada menos que sistemas multiagentes nos quais alguns agentes humanos e alguns agentes de software cooperam para levar os processos de negócios adiante.
Talvez o ponto de falha mais interessante seja que a tecnologia dos agentes nunca se tornou o “próximo OOP” (em outras palavras, o estilo de programação dominante). Eu acho particularmente irônico que muitos agora chamem programação funcional para o resgate quando apontam os limites das abordagens orientadas a objetos. Sistemas de agentes – tomando os movimentos do modelo de programação de atores – deveria ser o passo óbvio do OOP em ambientes concorrentes e distribuídos (o “design por contrato” básico é invalidado quando mais tópicos de execução estão envolvidos).
Na minha opinião, dois fatores principais contribuíram para evitar que a tecnologia de agentes se tornasse a principal evolução aceita do OOP. Primeiro, a comunidade de pesquisa não era particularmente centrada em programadores; estando principalmente interessada em algoritmos, protocolos e frameworks formais, o foco da engenharia de software era em metodologias e middleware. Em comparação com a comunidade OOP, não se fez muito na área das linguagens de programação e ferramentas de desenvolvimento. Dito isto, a situação mudou parcialmente, com uma subcomunidade dedicada agora se esforçando para estabelecer agentes de software como um paradigma de programação.
Segundo, e talvez mais importante, tem havido uma significativa deficiência na transferência de tecnologia para profissionais da indústria ou programadores casuais. Ainda hoje, a maioria das pessoas familiarizadas com sistemas multi-agentes tem estado envolvida com a pesquisa acadêmica ou (para pessoas mais jovens) recebeu cursos universitários sobre o assunto. Compare isso com a orientação a objetos, em que múltiplos níveis de pessoas e instituições retransmitem, refazem e, às vezes, distorcem os resultados fundamentais da pesquisa fundamental. Um programador que aplica o padrão Factory Method, por exemplo, muitas vezes nem sequer conhece a entrada original no livro Gang of Four (E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elementos de Software Reutilizável Orientado a Objetos, Addison-Wesley, 1994). Eu não sinto o mesmo pode ser dito, por exemplo, do Contract Net Protocol.
Costin Badica
A maior parte da pesquisa atual está espalhada pelas áreas de modelagem formal e lógica para sistemas multiagentes, teoria de jogos (com tópicos relacionados, tais como design de mecanismos), e aprendizagem. Há também interesse em áreas adjacentes, como robótica e simulação.
Pensei que as áreas mais promissoras são a teoria e o aprendizado de jogos. A lógica formal é agradável, mas as aplicações reais são limitadas. Robótica e simulação também mostram interesse em aplicações.
Provavelmente a programação orientada a agentes está muito longe do que era esperado inicialmente. A engenharia de software orientada a agentes também está muito longe da engenharia de software tradicional.
É importante avaliar os resultados da pesquisa de agentes autônomos (AA) e sistemas multiagentes (MAS) no contexto da ciência da computação sólida. Não devemos tratá-los como algo “exótico”, mas sim avaliá-los de acordo com as regras da ciência da computação. Os agentes não devem ser tratados apenas como um novo paradigma tecnológico, mas também como um método de análise e desenho de sistemas complexos. No final, um sistema projetado usando o paradigma do agente pode ser implementado com tecnologias de ponta, não necessariamente middleware ou plataformas de agentes. No entanto, plataformas de agentes podem ser muito úteis para simulação e prototipagem.
Giancarlo Fortino
Pesquisadores estão focados principalmente nas mesmas questões que eram há 10 anos: fornecendo métodos e algoritmos para lidar com a modelagem e análise de sistemas complexos (naturais e artificiais) a partir de diferentes perspectivas. Naturalmente, os domínios de aplicação de agentes mudaram um pouco à medida que a nova tecnologia e os domínios de aplicação apareceram.
É difícil dizer para onde o campo está se dirigindo. De facto, penso que não há uma direcção única. Os pesquisadores estão focando nos mesmos importantes contextos teóricos (linguagens formais, metodologias de engenharia, algoritmos de negociação, teoria de jogos, análise de comportamento emergente de simulação, e assim por diante), e às vezes eles se movem para novos domínios de aplicação – Internet das Coisas é um exemplo atual – para tratar de questões específicas explorando “agentes”
Após 20 anos, ainda não temos um modelo de agente unificado – um fato que tem reduzido o apelo da abordagem orientada ao agente, especificamente em contextos não acadêmicos. Por outro lado, uma quantidade significativa de pesquisa (e algum desenvolvimento) tem sido realizada, e muitos algoritmos e métodos estão realmente disponíveis para uso em uma ampla gama de domínios de aplicação (mesmo não orientados a agentes). Além disso, a eficácia do paradigma agente para modelagem de sistemas distribuídos e complexos é talvez seu maior sucesso.
O paradigma agente é eficaz para lidar com sistemas complexos dinâmicos abertos e distribuídos. Entretanto, não é o “paradigma assassino”, mesmo que os pesquisadores tenham proposto com sucesso métodos, algoritmos e sistemas em diferentes níveis de abstração. Alguns, como o Java Agents Development framework (JADE), têm sido utilizados em aplicações industriais reais e não apenas em contextos acadêmicos.
Lars Braubach
Pesquisa em sistemas de agentes vem de muitas direções diferentes. Daí os muitos tipos diferentes de definições para o termo agente que surgiram desde o início da pesquisa de agentes, que se concentraram na IA, engenharia de software, assistentes pessoais, e noções mentalistas (propriedades humanas como crenças e objetivos quando usadas para descrever agentes de software), por exemplo. Além disso, a pesquisa com agentes inclui muitas áreas temáticas diferentes. Este amplo espectro de pesquisa é um dos maiores pontos fortes para sistemas multiagentes, mas também é um problema fundamental. É um ponto forte porque a comunidade de apoio é ampla e o progresso em muitos subcampos diferentes é alcançado independentemente um do outro. Por outro lado, essa amplitude leva naturalmente à heterogeneidade no campo, incluindo artefatos como linguagens e ferramentas de programação, o que torna os resultados mais difíceis de avaliar. Na minha percepção, o foco da pesquisa mudou consideravelmente desde o início.
Nos primeiros anos, a engenharia de software baseada em agentes foi uma área de pesquisa muito ativa (inspirada, por exemplo, no artigo seminal de Yoav Shoham sobre programação orientada a agentes), e os pesquisadores propuseram muitas linguagens, ferramentas e metodologias de programação de agentes. Mas como as fundações do SE se estabeleceram e as implicações na prática permaneceram baixas, a importância relativa na comunidade de pesquisa diminuiu. Atualmente, percebo uma ênfase em fundamentos formais e planejamento multiagente, aprendizagem e técnicas de coordenação (olhando, por exemplo, para os trabalhos aceitos da 12ª Conferência Internacional sobre Agentes Autônomos e Sistemas Multiagentes como um indicador).
Um sucesso importante dos sistemas multiagentes é uma mudança na maneira de pensar sobre como olhar para sistemas complexos. Ele incentiva arquiteturas descentralizadas e representa o primeiro paradigma dedicado a sistemas distribuídos. Um grande fracasso da pesquisa de agentes é a incapacidade de estabelecer agentes como um paradigma de desenvolvimento SE aceito. Apesar dos esforços iniciais substanciais, a tecnologia falhou em alcançar pessoas de software fora da própria comunidade de agentes. Na minha opinião, essa falha deve-se em grande parte à distância conceitual relativamente grande entre a engenharia de software baseada em agentes e paradigmas bem estabelecidos com orientações de objetos e componentes.
Essa distância se manifesta em diferentes níveis nas linguagens de programação de agente único versus técnicas de organização e coordenação de agentes. Mas a minha principal crítica aqui diz respeito à suposição de que os agentes devem se comunicar apenas por mensagens assíncronas baseadas em palavras-actuais. Isso torna a tecnologia de agentes inaceitável para muitos profissionais que requerem interfaces de sistema explícitas e assinaturas de métodos. Aqui, a exigência conceitual de manter um agente autônomo é mal interpretada de uma forma muito técnica. Vários pesquisadores reconhecidos notaram o problema da comunicação baseada em mensagens, e o trabalho em alternativas levou a várias propostas diferentes, incluindo comprometimento e interações baseadas em metas, artefatos e componentes ativos.
Em termos de lições aprendidas, minha resposta vem de uma perspectiva muito pessoal de engenharia de software, tendo desenvolvido ativamente aplicações de agentes e uma plataforma desde 2003. Para mim, uma lição importante é que a tecnologia de agentes precisa ser simplificada e trazida mais perto da orientação a objetos e SOA para se tornar utilizável na prática. Isso significa que os pesquisadores devem visar a redução da heterogeneidade e complexidade, ao invés de aumentá-las constantemente, inventando novas abordagens em todos os níveis. Atualmente, software agente não é bem adequado para prototipagem rápida de sistemas complexos porque envolve muitas atividades preparatórias como protocolo e projeto ontológico.
Questão 2: Quais são as aplicações de agentes de software de maior sucesso no mundo real? Quais são as próximas áreas de aplicação para eles, e os humanos estão prontos para interagir com agentes de software em seu dia-a-dia?
Lars Braubach
Em contraste com a previsão do roadmap da tecnologia de agentes de 2005, que previa a implantação lenta, mas continuamente melhorada da tecnologia de agentes (atingindo o mainstream a partir de 2010), as implantações reais não aumentaram visivelmente, e ainda apenas algumas poucas aplicações do mundo real foram instaladas. A boa notícia é que muitas das empresas de agentes originais, incluindo Automação Inteligente (Cybele), Whitestein (Living Systems), TILAB (JADE), AOS (JACK), Cougaar Software, e SOAR Tech, ainda estão aplicando com sucesso a tecnologia de agentes em segmentos de mercado especializados como telecomunicações, logística, fluxos de trabalho, controle autônomo de veículos, controle de satélite, e sistemas de suporte inteligentes.
O Sistema de Raciocínio Procedural (PRS) – a origem dos sistemas BDI – foi desenvolvido na NASA e aplicado com sucesso em diversas aplicações espaciais, incluindo um sistema de detecção de falhas para o sistema de controle de reação do ônibus espacial. O software de controle de missão da NASA também foi implementado de forma orientada a agentes usando o framework Brahms.
Simulação é outra forte área de aplicação para sistemas multiagentes. Por exemplo, a criação pela Massive Software de cenas de filmes com atores artificiais no Lord of the Rings foi uma impressionante vitrine para aplicação da tecnologia de simulação de agentes.
O uso da arquitetura cognitiva SOAR em aplicações de treinamento (militar) também é notável, pois mostra como agentes podem simular eficientemente o comportamento humano em cenários do mundo real. No domínio militar, encontramos vários outros usos da tecnologia de agentes. Um exemplo excepcional é o software de gestão logística muito complexo no projeto UltraLog financiado pela DARPA, que levou ao desenvolvimento da plataforma dos agentes Cougaar.
Autonomia e computação em nuvem, grandes cenários de dados e robótica tendem a ser áreas muito promissoras. Acredito que a infraestrutura inteligente de nuvens como serviço (IaaS) e o software de controle de plataforma como serviço (PaaS) poderiam se beneficiar muito da tecnologia dos agentes – para uma coordenação totalmente descentralizada, por exemplo. Apesar dessa oportunidade, porém, os grandes provedores de nuvens como Google e Amazon estão usando outras alternativas aos agentes em suas soluções.
Cenários de dados grandes, que normalmente envolvem processamento de dados distribuídos, oferecem outras oportunidades. Na robótica, os problemas mudam cada vez mais da perspectiva de um único robô para a perspectiva de vários robôs. Aqui, a tecnologia multiagente tem uma boa chance de ser frutuosamente combinada com software de sistemas operacionais de robôs.
Interacção com sistemas autónomos tornar-se-á cada vez mais bem estabelecida. Por exemplo, vários web sites já possuem avatares que imitam os conselheiros humanos. Claro que a interação com personagens virtuais não significa necessariamente que a tecnologia de agentes é usada nos bastidores.
Giancarlo Fortino
Existe alguma aplicação bem sucedida baseada em agentes (no sentido estrito)? Talvez possamos apontar para web crawlers, que não são agentes de software no sentido estrito, ou JADE, que é de facto uma plataforma para construir aplicações. Muitas aplicações baseadas em agentes existem em vários domínios, mas é difícil identificar aplicações “de sucesso”. As próximas áreas de aplicação para os agentes são provavelmente cidades inteligentes e a Internet das Coisas. Em termos de interação com agentes de software, eu acho que os usuários se ajustarão a eles se forem integrados em GUIs interativas. As pessoas já usam o Facebook, Twitter e muitos outros aplicativos. Depende da usabilidade e freqüência de uso.
Costin Badica
Simulação e segurança são áreas prováveis para aplicações de agentes. No entanto, as pessoas provavelmente ainda não estão prontas para interagir com os agentes na vida diária. Nós também devemos olhar para o que a pesquisa tradicional de interface homem-computador (HCI) exige e tentar entender quais resultados caberiam ou poderiam ser aplicados à interação homem-agente.
Giovanni Rimassa
Os agentes de software têm sido aplicados na prática em muitos domínios. A partir da minha experiência pessoal, posso apontar a solução logística da Whitestein, que a DHL implantou em 27 países; acredito que seja o maior sistema multiagente já implantado para uso em produção, em termos de número de usuários. Também estamos obtendo uma resposta muito boa para nosso pacote de gestão de processos de negócios (BPM) orientado a agentes nas indústrias de serviços financeiros e manufatura.
Embora nosso pacote já seja bem-sucedido, o campo do software BPM como um todo ainda não assumiu explicitamente as idéias de agentes. Dito isto, o Gartner mudou seu Magic Quadrant para as suítes de BPM no ano passado, introduzindo o conceito de BPMS inteligente (iBPMS, para resumir), e é notícia a partir de setembro de 2013 que Jim Sinur (que dirigiu as idéias do iBPMS no Gartner), Jim Odell (ex-Cadeira do FIPA), e outros têm um livro sobre a próxima onda de BPM, que, em suas palavras, será BPM orientado a agentes. Eu colocaria o gerenciamento de processos de negócios na frente das próximas áreas de aplicação da tecnologia de agentes. Outras áreas vêm do uso de simulação baseada em agentes devido à ênfase em grandes dados e rápida tomada de decisões adaptativas: nos últimos dois a três anos, recebemos pedidos de empresas de energia, aeroespaciais e financeiras que procuravam sistemas complexos de apoio à decisão com capacidades significativas de simulação.
É muito difícil avaliar o quão prontos os usuários estão para uma tecnologia. Por um lado, se a tecnologia traz inovação genuína, os usuários não podem estar prontos, por definição. No entanto, as formas como as pessoas concretamente empregam novas ferramentas fornecerão um feedback que, por sua vez, molda essas ferramentas: o mau uso e o abuso são marcas de sucesso. Estou cautelosamente otimista, pois vejo um cenário complexo com muitas possibilidades, no qual as tendências políticas e sociais, mais do que os traços centrais da tecnologia, farão a maior diferença. Curiosamente, o Ciclo de Hype de Tecnologias Emergentes do Gartner deste ano concentra-se na evolução da relação homem-máquina.
Questão 3: Qual é a sua perspectiva sobre os padrões dos agentes? O estado atual do FIPA como um corpo IEEE é satisfatório, ou precisamos de algo mais?
Giovanni Rimassa
Os padrões para tecnologia de agentes, em geral, são tão úteis quanto os de outras partes da ciência da computação e TI. Sua eficácia depende muito mais do que da qualidade das especificações técnicas, para incluir consórcios de suporte, efeitos de rede e facilidade de mistura com outras práticas e tecnologias predominantes. Para o middleware, este último ponto é ainda mais importante.
As especificações da Fundação para Agentes Físicos Inteligentes (FIPA) fizeram sentido em 2000, quando a TI convencional não estava realmente captando os conceitos exigidos por uma infra-estrutura de agentes; hoje em dia, o mundo não só avançou, mas progrediu exatamente na direção defendida pelo FIPA. Portanto, seria inútil não só usar os velhos padrões como eles são, mas até mesmo tentar atualizá-los para criar nosso próprio sabor do que todos já estão fazendo de qualquer maneira.
Anfitrionar o FIPA dentro do IEEE é um movimento muito bom do ponto de vista da organização e credibilidade, mas eu gostaria que o FIPA reformulasse sua missão original (interoperabilidade) em um mundo no qual os serviços básicos de plataformas e ambientes de agentes já são um dado adquirido. O primeiro passo deveria ser uma análise de lacunas: o que ainda não existe que tornaria os sistemas multiagentes mais convenientes de realizar em aplicações concretas? Que elementos desta lista seriam beneficiados pela padronização de terceiros? Por outro lado, o último e mais ativo grupo de trabalho do FIPA que recordo estava focado na metodologia e no processo de projeto, que parece estar colocando o carro um pouco à frente do cavalo.
Costin Badica
Não temos necessariamente que seguir padrões, como o FIPA. A sua propagação foi popular na “era da interoperabilidade”. Eu acho que o FIPA é OK, mas não acho que mais padrões sejam necessários.
Giancarlo Fortino
Temos, digamos, “padrões”, mas os agentes não estão fortemente imersos no mundo comercial ou industrial – então, nós realmente precisamos de padrões neste caso? O FIPA está congelado desde a decisão de 2005 em Budapeste de mudá-lo para o IEEE. Eu pensava – e ainda penso – que o FIPA, e a própria tecnologia dos agentes, não estavam suficientemente maduros para serem transferidos para o IEEE. Acho que precisamos reiniciar a organização (talvez com um nome diferente, embora o FIPA já seja conhecido na comunidade de agentes) como um esforço (quase) voluntário se quisermos criar massa crítica na padronização de agentes – mas talvez ninguém se importe!
Lars Braubach
Standards são sempre importantes para promover a aceitação de uma tecnologia e liberar os clientes de um potencial lock-in de fornecedores. Com as tecnologias de agentes, as normas FIPA tratam principalmente da comunicação agente a agente e garantem que diferentes plataformas de agentes possam se comunicar. Em 2013, o mundo simplesmente não tem esse problema porque apenas algumas aplicações de agentes são implantadas e não existe uma rede mundial de plataformas de agentes implantadas dentro do espírito da AgentCities. Portanto, estes padrões são, na sua maioria, irrelevantes para a prática. Além disso, a tecnologia de serviços web alcançou com sucesso a interoperabilidade em sistemas distribuídos. Neste sentido, permitir que as plataformas de agentes externalizem sem problemas as funcionalidades como serviços web e utilizem os serviços web existentes para se integrarem com outros sistemas é de grande importância prática. Isso inclui a linguagem padrão de definição de serviços web (WSDL), bem como um número crescente de serviços web RESTful, já que grandes players como Google e Yahoo oferecem mais APIs via REST. Na minha opinião, uma nova iniciativa para padrões de agentes puros não contribuirá muito para a adoção da tecnologia, uma vez que eles tratam de um problema sem importância. Ao invés disso, precisamos principalmente de padrões que proponham integração com tecnologias estabelecidas.
Questão 4: O que ainda falta na área de plataformas, idiomas e ferramentas de agentes?
Giancarlo Fortino
Temos muitas coisas. Eu acho que precisamos aplicá-las e avaliá-las. É claro, no mundo da indústria precisamos focar em um (limitado) conjunto de modelos de referência e ferramentas CASE relacionadas (incluindo uma metodologia de referência). Eu acho que isso é fundamental para uma aceitação mais ampla da tecnologia de agentes.
Lars Braubach
Eu acho que várias coisas estão faltando – começando com linguagens de programação de agentes que se integram firmemente com as principais linguagens orientadas a objetos. Devemos também ter infra-estruturas distribuídas de grau industrial nas áreas de grid e cloud, que empregam tecnologias de agentes. Especialmente na área de platform-as-a-service (PaaS), novas abordagens de programação são necessárias para desenvolver aplicações distribuídas. Aqui, abordagens multiagentes poderiam ajudar a preencher essa lacuna. Relacionado a este aspecto é que ainda faltam abordagens e ferramentas abrangentes de depuração e teste para sistemas distribuídos.
Costin Badica
Precisamos nos ligar a pesquisas e métodos mais tradicionais de CS e evitar reinventar desnecessariamente as coisas sob o guarda-chuva do agente – como AOSE ou AOP às vezes tentam fazer.
Giovanni Rimassa
Agente plataformas devem ser redesenhadas com a restrição adicional de não poluir a infra-estrutura padrão de TI: ser brilhante por suas características avançadas, mas muito chato em termos de mecanismos. Eles não devem exibir nenhuma persistência exceto com sistemas de gerenciamento de bancos de dados relacionais ou bancos de dados NoSQL, e não devem executar nenhuma passagem de mensagem exceto com o Java Message Service, SOAP, ou serviços web RESTful. Para linguagens e ferramentas, a atual onda de pesquisa tentando reunir linguagens de programação de atores e agentes deve se fortalecer, com o objetivo de produzir um ou mais ambientes de desenvolvimento completos que sejam realmente adequados para adoção em massa. Meu desejo pessoal seria ter uma linguagem de ator/agente com um sistema de tipo moderno que diferencie entre agente, artefatos/serviços e conhecimento/dados.