Introduction
The next wave of technological innovation must integrate linked organizations and multiple application platforms. Os desenvolvedores devem construir sistemas unificados de gerenciamento de informação que usem a world Wide web e tecnologias avançadas de software. Os agentes de Software, um dos novos desenvolvimentos mais excitantes na tecnologia de software de computador, podem ser usados para construir sistemas empresariais integrados de forma rápida e fácil. A ideia de ter um agente de software que possa executar tarefas complexas em nosso nome é intuitivamente atraente. O próximo passo natural é usar múltiplos agentes de software que se comunicam e cooperam uns com os outros para resolver problemas complexos e implementar sistemas complexos. Os agentes de Software fornecem um novo método poderoso para implementar estes sistemas de informação de próxima geração.o que é um agente?um agente é simplesmente outro tipo de abstração de software, uma abstração da mesma forma que métodos, funções e objetos são abstrações de software. Um objeto é uma abstração de alto nível que descreve métodos e atributos de um componente de software. Um agente, no entanto, é uma abstração de software de alto nível que fornece uma maneira conveniente e poderosa de descrever uma entidade de software complexa. Ao invés de ser definido em termos de métodos e atributos, um agente é definido em termos de seu comportamento. Isto é importante porque programar um sistema baseado em agentes é principalmente uma questão de especificar o comportamento do agente em vez de identificar classes, métodos e atributos. É muito mais fácil e mais natural especificar o comportamento do que escrever código.
Existe um conjunto mínimo de características comuns que tipificam um agente de software. Um agente de software é autônomo; o agente é capaz de operar como um processo autônomo e realizar ações sem intervenção do Usuário. Um agente de software é comunicativo; ele se comunica com o usuário, outros agentes de software, ou outros processos de software. Um agente de software é perceptivo; é capaz de perceber e responder a mudanças em seu ambiente.os agentes de Software, como as pessoas, podem possuir diferentes níveis de competência no desempenho de uma determinada tarefa. Por exemplo, um agente de software de E-mail pode ser bastante burro e capaz de apenas reencaminhar e-mail para alguns locais especificados. Um segundo e mais inteligente agente de E-mail pode ter a capacidade de detectar e excluir automaticamente spam. Enquanto os agentes de software devem ser autônomos, comunicativos e perceptivos, eles podem ter diferentes níveis de competência (inteligência) como determinado por seus programas – ou seja, suas especificações comportamentais.o que é uma agência?agentes de Software, como as pessoas, podem ser mais úteis quando trabalham com outros agentes de software na realização de uma tarefa. Uma coleção de agentes de software que se comunicam e cooperam entre si é chamada de agência. Os designers de sistemas que utilizam agentes devem considerar as capacidades de cada agente individual e como vários agentes podem trabalhar em conjunto. A abordagem baseada em agentes permite ao designer de Sistema implementar o sistema usando múltiplos agentes, com cada agente especializado para uma tarefa particular. Por exemplo, um aplicativo de comércio eletrônico pode ter agentes compradores, agentes vendedores, agentes de armazenamento, agentes de banco de dados, agentes de E-mail, etc. Todos esses agentes precisam se comunicar uns com os outros e devem ter a capacidade de trabalhar em conjunto para alcançar um conjunto comum de objetivos.porque é que os agentes são importantes?
desenvolvedores de Software e projetistas de sistemas usam abstrações de alto nível na construção de software complexo por uma razão-para gerenciar a complexidade. Uma abstração foca nas propriedades importantes e essenciais de um problema e esconde os componentes incidentais desse problema. Os agentes fornecem uma nova maneira de gerenciar a complexidade porque eles fornecem uma nova maneira de descrever um sistema ou processo complexo. Usando agentes, é fácil definir um sistema em termos de processos mediados por agentes.Considere, por exemplo, as emissões de projeto de Sistema envolvidas na construção de um pedido de aprovação de empréstimo que une bancos de sucursais, o principal banco, empresas de subscrição de empréstimos e empresas de Relato de crédito, e automatiza grande parte do processo de aprovação de empréstimo. Construir este sistema utilizando a tecnologia actual é uma tarefa complexa e difícil, porque a decomposição do sistema obriga o desenvolvedor a lidar com conceitos de nível relativamente baixo (por exemplo, aplicações de empréstimos, saldos de contas, notações de Crédito) ao definir a arquitectura global do sistema. Além disso, deve ser consagrado um período de concepção significativo à definição do protocolo de comunicação e das interfaces que permitam ao banco trocar dados com as agências de notação de crédito e com os subscritores de empréstimos. Em um projeto de sistema orientado a agentes, a solução de sistema pode incluir um agente de serviço ao cliente, um agente de análise de aplicações de empréstimo, um agente subscritor, etc. O foco é colocado no comportamento de cada um desses agentes e na comunicação entre eles. O problema é muito mais fácil porque o nível de abstração é muito maior e o problema de programação se torna um problema de especificar o comportamento do agente.

Vários Agentes de Software Para Aplicações Empresariais
Um agente baseado em solução é útil e atraente, porque os vários agentes usados na solução inerentemente sabe fazer muitas coisas. Por exemplo, os agentes sabem comunicar com outros agentes. O desenvolvedor do sistema não tem mais que projetar protocolos de comunicação e formatos de mensagem. O agente fornece esta capacidade como parte do mecanismo básico do agente. Os agentes têm a capacidade inerente de construir modelos de seu ambiente, monitorar o estado desse ambiente, razão e tomar decisões com base nesse estado. Tudo o que o desenvolvedor de software precisa fazer é simplesmente especificar o que os agentes devem fazer em qualquer situação.quando devo usar agentes?os agentes de Software são adequados para uso em uma grande variedade de aplicações. Eles podem tornar muito mais fácil a construção de muitos tipos de sistemas complexos. No entanto, o designer do sistema deve lembrar que os agentes não são a bala de prata de longa data que os desenvolvedores têm procurado. Os agentes de Software são apropriados para uso na implementação de certos tipos de aplicações; em outros domínios problemáticos, outras tecnologias serão mais apropriadas. O desenvolvedor deve analisar cuidadosamente os requisitos do sistema para determinar se os agentes são um mecanismo de implementação apropriado.os agentes
são adequados para uso em aplicações que envolvem computação distribuída ou comunicação entre componentes. A tecnologia do agente é adequada para uso em aplicações que reagem sobre as mensagens ou objetos recebidos através de uma rede. Isso explica porque as abordagens baseadas em agentes são tão populares em aplicações que utilizam a Internet. Os sistemas multi-agentes também são adequados para aplicações que requerem capacidades de processamento distribuídas e Concomitantes.uma vez que os agentes mantêm uma descrição do seu próprio estado de processamento e do Estado do mundo à sua volta, são ideais para aplicações de automação. Os agentes autónomos são capazes de operar sem entrada ou intervenção do utilizador. Estes agentes podem ser utilizados em aplicações como automação de instalações e Processos, Gestão de fluxo de trabalho, robótica, etc.os agentes não se restringem à utilização em aplicações em que os agentes comunicam entre si através de uma LAN ou da Internet. Em algumas aplicações faz sentido utilizar múltiplos agentes executando em uma máquina e comunicando uns com os outros usando alguma forma de comunicação interprocess (por exemplo, RMI). Por exemplo, um controlador de fábrica incorporado pode consistir de um agente de interface de usuário, um agente de interface de banco de dados, um agente de interface de máquina-ferramenta, e um agente de monitoramento de processo e controle. Todos estes agentes poderiam funcionar simultaneamente no mesmo processador ou ser facilmente distribuídos através de múltiplos processadores.mais uma vez, os agentes são mais adequados para aplicações que requerem comunicação entre componentes, detecção ou monitorização do ambiente, ou operação autónoma. Desde que os agentes têm a capacidade de razão (por exemplo, desenhar inferências), eles podem facilmente executar sequências de operações complexas com base em mensagens que recebe, suas próprias crenças internas, e seus objetivos gerais e objetivos.que tipo de sistemas posso construir usando a tecnologia de agentes e agentes?os agentes são ideais para uma grande variedade de aplicações. Eles são particularmente adequados para:
- automação de processo e fluxo de trabalho
- comércio eletrônico
- resolução de problemas distribuída
aplicações de Internet
Se os agentes são apropriados para uso na implementação do meu sistema, então de quantos agentes eu preciso?para parafrasear Albert Einstein – um bom design baseado em agentes irá utilizar tantos agentes quanto são necessários e não mais. Tal como as aplicações tradicionais, as aplicações baseadas em agentes requerem uma análise e design cuidadosos. Embora seja tentador ter cada função de processamento realizada por um agente, esta é geralmente uma má idéia. O designer deve considerar questões como requisitos de transferência de dados de comunicações, largura de banda de comunicação disponível, poder de processamento, memória e outras restrições de recursos de computador ao desenvolver uma arquitetura de Sistema.quão inteligentes devem ser os agentes?os agentes podem ser construídos com uma ampla gama de capacidades. Uma das vantagens da abordagem baseada em agentes é que muitas vezes uma função complexa de processamento pode ser quebrada em vários menores, mais simples. Uma vez que cada agente individual pode ser criado para ser um especialista em resolver um problema específico ou executar uma tarefa particular, você pode construir sistemas que exibem comportamentos complexos usando uma coleção de agentes relativamente simples.às vezes, no entanto, precisamos construir agentes que são bastante inteligentes. Com a abordagem baseada em agentes, você pode implementar agentes com capacidades intelectuais sofisticadas, tais como a capacidade de raciocinar, aprender ou planejar. Além disso, agentes de software inteligentes podem utilizar extensas quantidades de conhecimento sobre seu domínio de problema. Isto significa que a arquitetura do agente subjacente deve apoiar raciocínio sofisticado, aprendizagem, planejamento e representação de conhecimento.posso usar agentes com sistemas legados ou código legado?agentes de Software fornecem um mecanismo ideal para integrar sistemas legados com novos sistemas de dados. Os agentes são adequados para implementar estas aplicações de middleware. Os agentes podem ser usados para executar a tradução de dados e implementar interfaces de sistemas de dados que atendam a uma grande variedade de requisitos.
em muitas aplicações, os desenvolvedores do sistema têm um código legado que executa uma função única que é necessária em suas novas aplicações. Um agente de software pode ser usado para invocar e executar este código legado, alavancando o valor da base de código existente. Note que a implementação do agente de software deve fornecer o suporte adequado para permitir a execução do software nativo e do código legado.os agentes são difíceis de construir?agentes de software sofisticados podem ser muito difíceis de construir se você estiver construindo do zero. Você precisará de habilidades e conhecimentos especializados em uma variedade de áreas, incluindo arquitetura de agentes, tecnologia de comunicações, sistemas de raciocínio, representação de conhecimentos, linguagens de comunicação de agentes e protocolos. Se você quiser adicionar capacidade de aprendizagem de máquina ou planejamento de máquina, Você também vai precisar de habilidade nestas áreas também. Se você não possui essas habilidades e conhecimentos especializados, você deve usar um agente de construção toolkit. Ferramentas de construção do agente permitem que desenvolvedores de software sem experiência do agente para construir rápida e facilmente agentes de software.que tipo de ferramentas estão disponíveis para me ajudar a construir agentes?
A melhor maneira de começar a construir um sistema baseado em agentes é usar um conjunto integrado de ferramentas como o AgentBuilder. AgentBuilder fornece todas as ferramentas que você precisa para construir agentes de software. Usando AgentBuilder, um desenvolvedor de software só precisa de experiência no domínio de problemas. AgentBuilder fornece suporte para todas as fases de desenvolvimento de software do agente – desde a análise do sistema até a depuração e teste do sistema. AgentBuilder fornece um ambiente gráfico de programação onde você pode definir rápida e facilmente agências e agentes e, em seguida, especificar o comportamento de agente individual. AgentBuilder é codificado inteiramente em Java e produz agentes de software baseados em Java.
Leave a Reply