• Nenhum resultado encontrado

2.5 AGENTES DE SOFTWARE E CONFIANÇA

2.5.1 Definições de agentes de software

A definição de agentes de software é motivo de discussão, não se tendo uma conclusão única para a definição do termo [46], até mesmo devido à área e variedade de abrangência do uso de agentes. A definição adequada de agentes de software faz um forte paralelo com os conceitos aplicados em agentes inteligentes. Desta forma a definição depende do seu nível de abrangência em um determinado sistema, das modificações no ambiente e da reatividade do agente no ambiente, ou seja, para se definir um agente software e se é ou não inteligente, é necessário definir primeiro o seu ambiente de atuação e as suas respectivas reações.

Os agentes de software dotados de certa inteligência são objetos de pesquisa na área de inteligência artificial ([46], [47]). Entretanto, é dependente de sistemas de redes pelo fato de necessitarem de mecanismos de troca de informação, abrindo ainda mais o leque de ligação com outras áreas. Esta troca de informações é necessária para os agentes criarem a sua base de

conhecimento, de onde, através de análises, o agente deverá buscar informações e reagir a uma determinada situação, permitindo o agente se adequar ao seu ambiente ou executar determinada tarefa.

Neste ponto, um paralelo com a confiança é apropriado porque todo o conhecimento de confiança e reputação adquirido tem de ser armazenado, o que complementa a base de conhecimento do agente, e ainda considerando a perspectiva de organizações sociais, a confiança e a reputação podem ser definidas tanto no comportamento humano quanto no ambiente computacional como uma forma de habilidade social que está relacionada com a segurança que se deseja obter [3] [9].

Em ambientes reais, é esperado que um agente de software possua algumas funcionalidades comparadas ao comportamento humano [47]. Essas características envolvem a adaptabilidade ao meio, independência, criatividade, reação, entre outros. Isto implica que um agente deve executar uma tarefa delegada por um usuário e não sofrer o comando direto do usuário para e durante a execução da tarefa.

Nas décadas de 70 e 80, o uso de agentes era restrito a apenas um computador ou uma rede homogênea [9]. Com o avanço da internet e do poder de processamento existente atualmente, o seu uso passou a ser muito mais difundido, de forma que agentes adquiriram novas características que os tornaram capazes de realizar tarefas mais complexas baseados em seu conhecimento e aprendizado (base de conhecimento adquirida). Assim um agente deve possuir conhecimento necessário, e aprender o mínimo necessário para a execução das tarefas as quais foi submetido, sem interferência humana, e retornar o produto do trabalho realizado ao usuário.

2.5.1.1 Classificação de agentes

Segundo Morreale [47], agentes devem possuir cinco características que os diferencia de um software convencional: autonomia, reatividade, aprendizado, cooperação e mobilidade. Ainda segundo Morreale [47], a autonomia, o aprendizado e a cooperação são características que se sobressaem sobre as demais, e classifica um agente como sendo básico (se implementar pelo menos uma das três características), avançado (se implementar duas das três características) e ideal (se implementar as três).

As melhores definições de agentes estão relacionadas a um sistema computacional que depende do ambiente e que possua as características de autonomia, habilidade social, reatividade, iniciativa, entre outros, e com um objetivo bem definido [48]. Em alguns casos é necessário saber como um agente executa suas tarefas para alcançar o seu objetivo.

Agentes de software são classificados de acordo com o agrupamento de características que possuem em comum. De acordo com Nwana [48], agentes podem ser classificados de acordo com cinco critérios diferentes. A primeira classificação diz respeito à mobilidade (móvel ou estático). A segunda classificação define agentes como reativos ou deliberativos (modelo interno representando o raciocínio). A terceira classificação de agente corresponde ao conceito dos atributos primários e ideais que um agente deve possuir ou exibir (autonomia, cooperação, aprendizagem). Até este nível de classificação é possível definir agentes em quatro grandes grupos: agentes colaborativos, agentes de aprendizagem colaborativos, agentes de interface e agentes de software inteligentes. A Figura 2-7 ilustra esta divisão de acordo com os atributos primários de um agente.

Figura 2-7 – Divisão de agentes segundo atributos primários [48]

2.5.1.2 Agência

Segundo Wooldridge e Jennings [46], uma forte definição de agência está relacionada ao comportamento de agentes, seja ele conceitualizado ou implementado, associado a conceitos aplicados aos seres humanos. Esta definição ainda está associada a pesquisas em áreas de inteligência artificial, que prevê noções mentais aos agentes como conhecimento, crença, intenção e obrigação.

As necessidades fundamentais para implementação de agentes baseados em software estão relacionadas com a representação do conhecimento, a forma com que é manipulado o conhecimento e a sua troca (porções de modelos mentais) entre agentes, comunidades de agentes e seres humanos. E todos estes aspectos podem de uma forma ou de outra estarem relacionados com a confiança e a reputação, influenciando diretamente no comportamento dos agentes.

Quando se trata do comportamento dos agentes de software, o grau de autoridade e autonomia que lhe é outorgado também pode ser definido como agência. Esta por sua vez pode ser mensurada de forma qualitativa, de acordo com a interação entre o agente e outras entidades no sistema no qual atua ([46], [48]). Esta atuação pode ser através de interação com aplicações, base de dados informacionais, bem como outros agentes.

Uma vez que o ambiente no qual um agente está inserido se torna mais imprevisível ou inovador, é necessário que o agente incorpore mais agência. Esta incorporação faz com que o agente atualize seu estado de modelos “mentais” através de estímulos do ambiente ou através de decisões internas, como por exemplo, através da influência da confiança e da reputação.

Na maior parte do desenvolvimento dos modelos de inteligência aplicados à construção de agentes de software, as abordagens mais bem sucedidas estão orientadas à solução de problemas muito bem delimitados ([47], [49]). Problemas relacionados à execução de atividades rotineiras, complexas e colaborativas nas áreas de engenharia, gerência e manufatura têm obtido sucesso no uso de agentes inteligentes [49]. Outras aplicações práticas de agentes inteligentes tem sido a construção de assistentes de comunicação pessoal, capazes de cuidar de detalhes como organizar correio eletrônico, realizar filtragem de informações, organizarem agendas de compromissos, gerenciar reserva de hotéis e passagens etc.

Ainda de acordo com Wooldridge e Jennings [46], outras características associadas à agência dizem respeito a sua mobilidade, veracidade, benevolência e racionalidade. Desta forma, agência está relacionada com a capacidade de autonomia e autoridade, influenciadas pelo ambiente e características associadas à inteligência que um agente deve possuir.

2.5.1.3 Linguagem de comunicação

Agentes necessitam tanto de modelos de representação quanto de comunicação. O modelo de representação está mais voltado à ontologia ([27], [50]), que diz respeito à especificação de como interpretar objetos, conceitos e demais entidades que supostamente existem em alguma área de interesse e o relacionamento existente entre eles. Por sua vez os modelos de comunicação estão voltados para o modelo mental de um agente (intenções, crenças, desejos etc.) dentro de um domínio de uma comunidade de agentes [46]. Este modelo de comunicação é conhecido como linguagem de comunicação de agentes ou agent communication language (ACL). Sua função é prover primitivas de linguagem que um agente implementa em um modelo de comunicação (enviar mensagens, solicitar informação, avisar, responder, requerer, comandar etc.).

Nos conceitos de confiança e reputação uma ACL é de fundamental importância porque toda a troca de informação e de gerenciamento de grupos é derivada de uma linguagem formal de comunicação [49], definida entre agentes. Em outras palavras, para se haver comunicação no ambiente de agentes, eles devem falar o mesmo “idioma”. A aquisição da confiança e seus respectivos passos requerem que um modelo de comunicação exista e que tenha os requisitos de segurança mínimos de confidencialidade, integridade e disponibilidade.

Documentos relacionados