“ON-LINE” entre sistemas
Transcrição
“ON-LINE” entre sistemas
Universidade Federal de Santa Catarina Programa de Pós-Graduação em Engenharia de Produção CONCEPÇÃO E IMPLEMENTAÇÃO DE UM SISTEMA MULTI-AGENTES PARA GESTÃO DA COMUNICAÇÃO DE DADOS “ON-LINE” ENTRE SISTEMAS Arildo Dirceu Cordeiro Dissertação apresentada ao Programa de Pós-Graduação em Engenharia de Produção da Universidade Federal de Santa Catarina, como requisito parcial para obtenção do título de Mestre em Engenharia da Produção. Florianópolis 2001 Arildo Dirceu Cordeiro CONCEPÇÃO E IMPLEMENTAÇÃO DE UM SISTEMA MULTI-AGENTES PARA GESTÃO DA COMUNICAÇÃO DE DADOS "ON LINE" ENTRE SISTEMAS Esta dissertação foi julgada e aprovada para a obtenção do título de Mestre em Engenharia de Produção no Programa de Pós-Graduação em Engenharia de Produção da Universidade Federal de Santa Catarina. Florianópolis, 04 de maio de 2001. Prof. Ricardo Miranda Barcia, Ph.D. Coordenador do Curso BANCA EXAMINADORA ___________________________ Prof. Rogério Cid Bastos, Dr. Orientador _______________________ Prof. Luciano Scandelari, Dr. ___________________________ Prof. Jair Ferreira de Almeida, Dr. AGRADECIMENTOS Ao concluir este trabalho, externo meus agradecimentos a todos aqueles que me apoiaram, direta ou indiretamente, durante as fases de sua realização. Em especial: Ao Professor Dr. Rogério Cid Bastos, por acreditar e ter aceitado ser meu orientador, encorajando-me a sempre mais buscar conhecimentos e prosseguir nesta caminhada. À equipe de professores que compuseram a Banca: professor Dr. Luciano Scandelari, e professor Dr. Jair Ferreira de Almeida. Ao CEFET-PR, aos seus professores e servidores administrativos pelo apoio e colaboração. À UFSC, à toda a sua equipe de professores e servidores administrativos, bem como a monitora Flávia Lumi Matuzawa. Aos meus familiares e amigos, pela compreensão, paciência, encorajamento, tolerância e otimismo dispensados em todos os dias deste estudo. SUMÁRIO LISTA DE FIGURAS.................................................................................................VI RESUMO..................................................................................................................VII ABSTRACT...............................................................................................................IX CAPÍTULO I................................................................................................................1 1 INTRODUÇÃO......................................................................................................1 1.1 Origem do Problema.............................................................................................1 1.1.1 Rede Digital de Serviços Integrados – Figura 1.................................................3 1.2 Importância do Trabalho.......................................................................................4 1.3 Justificativa...........................................................................................................5 1.4 Objetivo Geral e específicos.................................................................................6 1.5 Limitações do Trabalho.........................................................................................7 1.6 Estrutura do Trabalho............................................................................................8 CAPÍTULO II.................................................................................................................9 2. REFERÊNCIAS TEÓRICAS E CONCEITUAIS........................................................9 2.1 Inteligência Artificial................................................................................................9 2.1.1 Introdução............................................................................................................9 2.1.2 Aspectos Gerais da Inteligência Artificial..........................................................10 2.13 Inteligência Artificial Distribuída..........................................................................12 2.2 Algumas Técnicas de Inteligência Artificial Utilizada..........................................13 2.2.1 Sistemas Especialistas......................................................................................14 2.2.1.1 Arquitetura de Sistemas Especialistas...........................................................15 2.2.1.2 Forma de Representação do Conhecimento.................................................17 2.2.1.3 Vantagens e Desvantagens de SE................................................................17 2.2.2 Agentes Inteligentes.......................................................................................19 2.2.2.1 Considerações Gerais e Definições..............................................................19 2.2. 2.2 Propriedades................................................................................................20 2.2.2.2.1 Quadro Resumo das Propriedades............................................................21 2.2.2.3 Classificação dos Agentes...........................................................................22 2.2.2.3.1 Topologia de Agentes – Figura 4...............................................................23 2.2.2.3.2 Tipologia de Agentes..................................................................................25 2.2.2.4 Aplicações de Agentes Inteligentes..............................................................26 2.2.2.4.1 Quadro Resumo de Aplicações de Agentes Inteligentes............................27 2.2.4 Sistemas Híbridos.........................................................................................28 2.2.4.1 Caracterização das Classes dos Sistemas Híbridos - Figura 7....................30 2.3 Plataforma Delphi para Programação..........................................................30 2.3.1 Geração de SQL..........................................................................................31 2.3.1 Protocolo e Linguagem de Comunicação...................................................31 2.3.2 O Protocolo DCOM e Objetos Distribuídos.................................................32 2.3.4 O Protocolo KQML.....................................................................................33 2.3.4.1 Performativas KQML.................................................................................33 2.3.4.2 KIF (Knowledge Interchange Format).......................................................34 CAPÍTULO III.............................................................................................................35 3. MODELO PROPOSTO.........................................................................................35 3.1 Considerações Gerais.......................................................................................35 3.2 Descrição do Modelo – Ambiente Multi-Agente ...............................................36 3.2.1 Ambiente de Aplicação – Figura 8...................................................................37 3.2.2 Quadro Resumo do Ambiente Proposto - Figura 9..........................................38 CAPÍTULO IV............................................................................................................41 4. Desenvolvimento e Implementação do Sistema................................................41 4.1 Plataforma de Desenvolvimento.........................................................................41 4.2 Sistema Multi-Agente para Gerenciamento de Sistemas - SMAGS...................41 4.2.1 Estrutura de Funcionamento............................................................................42 4.2.2 Arquitetura do Sistema.....................................................................................44 CAPÍTULO V.............................................................................................................55 5. Testes Realizados e Análise dos Resultados.....................................................55 5.1 Aplicação em Casos Práticos..............................................................................55 5.2 Testes na Aplicação em Avaliação ou Acompanhamento Acadêmico................55 5.3 Análise dos Resultados da Aplicação em Avaliação Acadêmica......................59 5.4 Outras Aplicações...............................................................................................65 CAPÍTULO VI.............................................................................................................66 6. CONCLUSÕES E RECOMENDAÇÕES.............................................................66 6.1 Conclusões.........................................................................................................66 6.2 Recomendações................................................................................................68 7. REFERÊNCIAS BIBLIOGRÁFICAS.......................................................................69 8 Anexos....................................................................................................................76 LISTA DE FIGURAS FIGURA 1 - Rede Digital de Serviços Integrados.......................................................3 FIGURA 2 - Ambiente Multi-Agente (simplificado)......................................................6 FIGURA 3 - Estrutura de um Sistema Especialista...................................................16 FIGURA 4 - Topologia de Agentes............................................................................23 FIGURA 5 - Tipologia de Agentes.............................................................................25 FIGURA 6 - Qualidade da Solução x Campo de Resolução dos Sist. Híbridos........29 FIGURA 7 - Caracterização das Classes de Sistemas Híbridos...............................30 FIGURA 8 - Ambiente de Aplicação..........................................................................37 FIGURA 9 - Quadro Resumo do Ambiente Proposto................................................38 FIGURA 10- Arquitetura do Sistema..........................................................................48 FIGURA 11- Fluxograma com a Rotina de Avaliação Acadêmica-Tradicional..........57 FIGURA 12- Fluxograma da Rotina do Sistema de Avaliação Acadêmica SMAGS..58 FIGURA 13- Tela de Configuração de Banco de Dados............................................60 FIGURA 14- Tela de Entrega de Mensagens Escrita e Sonora.................................61 FIGURA 15- Gráfico do Tempo/Trabalhos, forma normal e com o SMAGS.............62 FIGURA 16- Gráfico de Desempenho de Alunos......................................................63 FIGURA 17- Relatório de Desempenho de Alunos...................................................64 LISTA SIGLAS ASCII: COM: Americam Standard Code For Information Interchange Component Object Model CORBA: Common Object Resquest Broker Arquiteture DCOM: Distributed Component Object Model DLL: Data Label Language HTTP: Hiper Text Transfer Protocol IA: Inteligência Artificial IAD Inteligência Artificial Distribuída KIF: Knowledge Interchange Format KQML: Knowledge Query and Manipulation Linguage ODBC: OLE: Open DataBaseConectivity ObjectLimking and Embedding Oracle: Nome da empresa que comercializa o SGBDR Oracle Server RDSI: Rede Digital de Serviços Integrados SE: Sistemas Especialistas SGBDR: Realtional Database Management System SMA: Sistemas Multi-Agentes SMAGS: Sistemas Multi-Agentes para Gerenciamento de Sistemas SQL: Structured Query Language TCP/IP: Transport Control Protocol/Internet Protocol Web: Rede GLOSSÁRIO Active-X – Arquitetura que amplia a interatividade das páginas Web. Agentes Inteligentes - São sistemas computacionais residentes em ambientes dinâmicos complexos, os quais percebem e atuam autonomamente neste ambiente. Delphi - Linguagem de programação orientada a objetos. Endereço IP - Endereço usado para localizar uma máquina na Internet. Gerente Virtual - Programa de computador dotado de recursos, técnicas e conhecimentos que o tornam capaz de executar tarefas similares a dos seres humanos. HTTP - Protocolo de transferência otimizado para trabalhar com sistemas de hipertexto. Inteligência Artificial - Ramo da Ciência da Computação voltado para a criação de modelos de inteligência e a construção de sistemas computacionais baseados nestes modelos. Inteligência Artificial Distribuída - União das técnicas de Inteligência Artificial com as técnicas de sistema distribuídos. Intranet - Rede privativa de instituições ou empresas com a utilização das tecnologias da Internet. Java - Linguagem de programação orientada a objetos, desenvolvida pela Sun Microsystems. Log de operações - É um arquivo eletrônico que registra o histórico das operações realizadas no sistema. Objetos Distribuídos - São armazenadores de códigos que executam uma determinada. Sua principal característica refere-se a sua localização, eles podem ser abrigados todos em uma única máquina ou distribuídos em máquinas distintas de uma rede de computadores. Protocolo - Conjunto de regras que possibilitam a comunicação entre dois ou mais pontos. Na Internet, permite a comunicação entre computadores diferentes. World Wide Web - Ambiente hipermídia formado pela teia de ligações entre documentos e recursos multimídia armazenados em servidores Internet no mundo. Menus Amigáveis - São menus que orientam os passos a serem seguidos. RESUMO O objetivo principal deste trabalho é oferecer ao usuário uma ferramenta eficaz que consiga gerenciar a comunicação de dados "on-line" entre sistemas diferentes, de maneira que os dados, extraídos de qualquer banco de dados, possam ser analisados, comparados e trabalhados, para que as informações sejam transmitidas para os usuários de forma automática e interativa. Foi desenvolvido um ambiente próprio, baseado na plataforma Delphi para Windows. Este sistema permite a incrementação posterior, com a inserção de células mais inteligentes, que possam construir e gerar conhecimento, utilizando técnicas compartilhadas, originárias da Inteligência Artificial Distribuída. A ferramenta foi validada com a aplicação em casos práticos, em áreas diferentes, para enfatizar o seu caráter genérico. Palavras-chave: tempo real, multi-agentes, comunicação de dados “on-line”, inteligência artificial, sistemas interativos e bancos de dados. ABSTRACT The main purpose of this job is to offer the user an effective tool that could manage on-line data communication between two different systems in a way that the data, extracted from any data bank, could be analyzed, compared and managed, so that the information could be transmitted back to the users on a automatic and interactive way. It was developed on a proper environment based on a Delphi platform for Windows. This system allows future improvements by inserting cells that could build and generate knowledge using shared techniques from the Distributed Artificial Intelligence. The tool was validated by its application on practical cases, in different areas, to emphasize its generic characteristic. Key-words: real-time, multi-agent, on-line data communication, artificial intelligence, interactive system, data base. CAPÍTULO I 1 - INTRODUÇÃO 1.1 – Origem do problema O volume de dados, quer sejam na forma de papéis/documentos ou em sistemas informatizados isolados, gerados em instituições públicas ou privadas, é muito grande. Os níveis decisórios necessitam desses dados em tempo real, transformados em informações organizadas, para que as decisões possam ser tomadas em tempo hábil. Com os métodos convencionais, utilizados para coleta de dados, pesquisa de casos semelhantes, compilação dos dados e análise, gasta-se muito tempo. Os avanços tecnológicos, principalmente nas áreas da informática e sistemas integrados, caminham rapidamente, permitindo, desde que se conheça todos os recursos disponíveis, suas vantagens e limitações, o desenvolvimento de sistemas inteligentes que podem monitorar processos de ponta a ponta. Neste contexto, pode-se citar o esquema de circulação das interfaces de uma Rede Digital de Serviços Integrados (RDSI), com reconhecimento de fala e outros recursos, conforme a proposta de Pierre Levy (1998), ilustrada na figura 1. No presente trabalho, pretende-se distribuir informações claras e seguras em tempo real, através de “Gerentes Virtuais”, que são softwares baseados em Agentes Inteligentes, constituindo Sistemas Multi-Agentes (SMA), um dos ramos da Inteligência Artificial Distribuída (IAD), resultante da união de técnicas de Inteligência Artificial (IA) com técnicas de Sistemas Distribuídos (Paraíso, 1997). . Figura 1 – REDE DIGITAL DE SERVIÇOS INTEGRADOS (Pierre Levy) 1.2 - Importância do Trabalho O Sistema Multi-Agentes é importante, porque amplia, potencializa e melhora o fluxo de informações no conjunto, buscando eficácia e eficiência na gestão e auxiliando pessoas investidas nas funções de gerentes e/ou diretorias de instituições públicas ou privadas, onde grande parte do tempo é gasto na busca de informações que possam subsidiar as tomadas de decisões, indicando o caminho mais correto para a solução de problemas. Com o gerente virtual, que se pretende desenvolver e implementar, ganha-se tempo e segurança. Por sua vez, este gerente pode atuar como se fosse um adjunto, monitorando sistemas, fornecendo informações em tempo real e organizadas em tabelas, gráficos, etc, além de informações escritas ou faladas, as quais podem ser retransmitidas para os vários níveis de gerência, alertando sobre resultados indesejáveis e indicando as melhores soluções. Desta forma, o gerente humano terá mais tempo livre para pensar em coisas novas, empreendendo soluções inovadoras. 1.3 – Justificativa Com as informações disponíveis de forma rápida e segura, as decisões podem ser tomadas em menos tempo, viabilizando, assim, um melhor acompanhamento e planejamento futuro por parte das gerências, prevendo melhorias e inovações. Esta ferramenta poderá servir, também, como fator de motivação para as pessoas que trabalham em determinado setor, porque com as gerências interligadas em tempo real, mensagens de elogios e/ou de alerta para determinados fatos poderão ser emitidas em todos os níveis de gerências, evitando ainda que as chefias intermediárias deixem de tomar conhecimento de assuntos atinentes a sua função, o que pode levar a situações desagradáveis. Saliente-se ainda, que já existem os softwares que controlam empresas de ponta a ponta, desenvolvidos para instituições específicas, sendo, entretanto, extremamente caros e inacessíveis para a maioria das empresas ou pessoas físicas, chegando a custos da ordem de US 300.000,00. Enquanto que a ferramenta que se pretende construir deverá ter preço bem mais acessível para os usuários. Ressaltese, também, que um mesmo sistema poderá ser aplicado para as mais diferentes áreas e situações em diferentes instituições, aproveitando os diferentes softwares já existentes, o que o torna inédito. Além das contribuições já citadas, o sistema irá contribuir para potencializar a gestão de comunicação de dados entre sistemas, melhorando a eficácia e a eficiência das pessoas envolvidas em níveis gerenciais. 1.4 – Objetivos 1.4.1 – Objetivo Geral Construir um ambiente Multi-Agente para desenvolvimento e/ou integração de sistemas e gestão da comunicação de dados, em tempo real, de Instituições de Ensino, cuja idéia inicial está ilustrada na figura 2. Figura 2 – Sistema Multi-Agente (simplificado). 1.4.2 – Objetivos específicos a) Criar um ambiente Multi-Agente, utilizando a plataforma Delphi. b) Estruturar um processo de comunicação, utilizando Objetos Distribuídos e o protocolo DCOM (Distributed Component Object Model). c) Desenvolver uma ferramenta que seja capaz de extrair dados de Bancos de Dados Genéricos, a qual será integrada ao Sistema Multi-Agente. 1.5 – Limitações do Trabalho O presente trabalho será composto por um software, que constitui um ambiente Multi-Agente com seis módulos trabalhando de forma compartilhada, com capacidade para extrair informações de bancos de dados genéricos e analisar, classificar e produzir avisos para os usuários, de forma que estes avisos sejam automaticamente gerados ao final de um período de treinamento/aprendizagem do sistema ou pré-programados para casos específicos. Sendo, entretanto, limitado nas seguintes situações: - No presente trabalho, o sistema não será dotado de capacidade de autoaprendizagem. - Não serão empregadas outras plataformas, além da Delphi. - Apesar da relativa facilidade para programação do sistema para casos específicos, através de menus amigáveis, são necessários ainda alguns conhecimentos básicos de programação. 1.6 - Estrutura do Trabalho O trabalho será apresentado em seis capítulos, os quais serão desenvolvidos da seguinte forma: O primeiro capítulo é constituído de uma introdução onde consta a origem do problema, a importância do trabalho, a justificativa, os objetivos geral e específicos, as limitações do trabalho e a estrutura do trabalho. O segundo capítulo será constituído por referências teóricas e conceituais. O terceiro capítulo será composto pelo modelo teórico. O quarto capítulo será composto pelo desenvolvimento e estruturação do software principal, para a implementação do modelo proposto e Arquitetura do Sistema. O capítulo quinto apresentará os testes e resultados do sistema em casos práticos e uma análise comparativa dos ganhos na aplicação da ferramenta em tela, em relação aos trabalhos realizados de forma normal, sem esses recursos. O sexto capítulo apresentará as conclusões e as recomendações para futuros estudos. CAPÍTULO II 2 – REFERÊNCIAS TEÓRICAS E CONCEITUAIS Considerando que o sistema multi-agentes envolverá diferentes técnicas de inteligência artificial, além da teoria de agentes, apresenta-se outras técnicas que serão utilizadas de forma compartilhada. 2.1 – Inteligência Artificial 2.1.1 – Introdução “A Inteligência Artificial (IA) está revolucionando o mercado. Firmas de Investimentos, empresas e bancos estão usando tecnologias de IA para uma grande variedade de propósitos. Em muitas empresas, tecnologias de IA estão passando do estágio experimental e se tornando parte integrante de suas operações” (Freedman et al., 1995). As empresas estão motivadas para utilizar sistemas inteligentes, baseadas no aumento da qualidade dos serviços prestados e na redução de custos (Goonatilake e Treleaven, 1995). Conforme Modro (2000), Sistemas Inteligentes estão sendo usados em diversas empresas, como a Countrywide Funding, a maior originadora de hipotecas dos Estados Unidos, que utiliza um sistema adaptativo baseado em regras para subscrever estas hipotecas; a Visa International, que possui uma rede neuronal para detectar o uso indevido de cartões de crédito, além de outras grandes organizações, tais como: Citibank e American Express. 2.1.2 – Aspectos Gerais da Inteligência Artificial Segundo Modro (2000), “Desde a década de 40, procura-se emular o comportamento Inteligente humano através de máquinas. Com a popularização e o rápido avanço tecnológico dos computadores, essa tarefa tem-se tornado cada vez mais palpável. O termo Inteligência Artificial (IA) surgiu em 1956, quando um pequeno grupo de pesquisadores que participavam de um seminário de verão em Dartmouth College (EUA), discutiam como o computador poderia simular o raciocínio humano. A definição do termo IA é atribuída a John McCarthy (Russel e Norvig, 1995). Durkin (1994) afirma: “Inteligência Artificial é o campo de estudo na ciência da computação, que persegue o objetivo de fazer um computador racionar de maneira semelhante aos humanos”. A Inteligência Artificial, como área de pesquisa, tem um campo bastante amplo, destacando-se: entendimento de linguagem, compreensão de eventos, interpretação visual, aprendizado por experiência, resolução de problemas que requerem alguma especialização, jogos e tratamento de incertezas (Russel e Norvig, 1995; Durkin, Rich e Knight, 1993). Embora sua definição como campo de estudo tenha ocorrido somente em 1956, algumas áreas foram vitais para o seu surgimento, onde as tecnologias inteligentes foram objeto de pesquisa e desenvolvimento desde o início da ciência da computação (Medsker, 1995). Os principais acontecimentos relativos à Inteligência Artificial tiveram a seguinte seqüência lógica: década de 40: Ciência da Informação; década de 50: Redes Neurais e Definição de Inteligência Artificial; década de 60: Sistemas Especialistas e Conjuntos Difusos; década de 80: Algoritmos Genéticos e Raciocínio baseado em casos; década de 90: Agentes Inteligentes. Um evento de aspecto interessante, relacionado à história e ao desenvolvimento da Inteligência Artificial, é o teste de Turing. Na década de 50, Alan Turing, um dos fundadores da ciência da computação, criou o teste de Turing, que é uma avaliação sofisticada e particular do desempenho dos computadores. O teste consiste num interrogador que estabelece comunicação (através de terminais) durante 5 minutos e, ao final do teste, ele deverá ser capaz de identificar se o interlocutor é ou não uma máquina. Esta máquina nada mais é do que um computador, que se passasse no teste seria considerada inteligente; sendo que durante muitos anos a IA procurou criar “máquinas” para o teste de Turing. 2.1.3 - Inteligência Artificial Distribuída A Inteligência Artificial Distribuída (IAD) ao contrário dos paradigmas tradicionais da IA, considera que a resolução de problemas envolve a coletividade e não um único indivíduo. Dessa forma, deixam de ter atenção as iniciativas de simular o comportamento humano, seja mental (IA simbolista) ou neural (IA conexionista), passando o foco de atenção para a forma de interação entre as entidades chamadas de agentes e sua organização social. Para a IAD, “a relação do indivíduo com o meio, seja por interação ou organização, é determinante na imersão do comportamento inteligente”(Paraíso, 1997). A IAD trabalha com vários sistemas ao mesmo tempo, que se comunicam entre si e dividem as tarefas. Cada sistema pode assumir uma função específica e todo o sistema torna-se responsável pelo gerenciamento das interações para alcançar um objetivo comum. Os sistemas de IAD permitem que vários processos autônomos (agentes) sejam representados em um só sistema (que coordena o conhecimento de vários especialistas), possibilitando a resolução de problemas complexos e atos que requisitam uma inteligência global, por meio de processamentos locais e comunicações interprocessos. A IAD permite, em muitos casos, realizar tarefas melhor do que um especialista humano, trabalhando com diferentes módulos, que podem manipular características de alto nível, como intencionalidade, racionalidade, etc. Cada componente é denominado de agente. A IAD se divide em três grandes domínios: - RDP (Resolução Distribuída de Problemas) - Faz a decomposição de problemas entre agentes(componentes ou módulos) que têm a função de cooperar entre si. - IAP (Inteligência Artificial Paralela) - Estuda a performance, desenvolvimento de linguagens e algoritmos de computação paralela. - SMA (Sistemas Multi-agentes) - São constituídos por agentes autônomos (inteligentes) que têm a função de trabalhar juntos na resolução de problemas. Como exemplo de modelos de IAD, pode-se citar a arquitetura Blackboard, que utiliza um raciocínio inerentemente distribuído. Essa arquitetura é constituída por várias fontes de conhecimento (knowledge system, knowledge sources, agenda e o próprio blackboard). 2.2 – Algumas Técnicas de Inteligência Artificial Utilizadas A IA, como ciência, tem como objetivo principal a “emulação e o realce do comportamento humano via hardware e/ou software” (Keller, 1991). As ferramentas que emulam determinado aspecto da inteligência humana são chamadas de técnica ou tecnologia de IA. A seguir, serão descritas as técnicas de IA utilizadas, enfatizando a Teoria de Agentes Inteligentes e Sistemas Especialistas. 2.2.1 – Sistemas Especialistas Os Sistemas Especialistas (SE) são sistemas artificiais usados para emular a expertise de especialistas na resolução de problemas (Shneider at al., 1996). Uma das mais simples, porém suficiente para retratar os SE, é aqui adotada. Ela diz que um SE é “um programa de computador projetado para modelar a habilidade de resolver problemas de um especialista humano” (Durkin, 1994). O desenvolvimento de SE começou de maneira tímida, nos anos 50, com programas de jogos de xadrez e programas de resolução automática de teoremas. Durante os anos 60, teve um grande impulso com o projeto DENDRAL, uma encomenda da NASA para a Universidade de Stanford. Esse sistema tinha por objetivo desenvolver um programa para analisar a composição química do solo marciano, com base em dados de análises de espectrofotometria de massa (Shneider at al., 1996; Durkin, 1996). Durkin (1996) define esse projeto como o início da era dos SE. Desde então, esta técnica tem sido aplicada em diversas áreas – destacando-se medicina, engenharia, química e economia – nas mais diferentes tarefas, tais como: interpretação, planejamento e projeto, consultoria, diagnóstico, monitoramento, controle e simulação. 2.2.1.1 – Arquitetura de Sistemas Especialistas A arquitetura dos Sistemas Especialistas está baseada em três elementos básicos: - Base de conhecimento: é a parte que mantém o conhecimento especialista. A base de conhecimento é, talvez, o mais importante componente do Sistema Especialista, pois a qualidade das respostas do SE depende diretamente de sua base de conhecimento. A base de conhecimento é, portanto, um agrupamento de conhecimentos representado mediante uma técnica adequada ao sistema em questão. As informações contidas na base de conhecimento são factuais e incluem os relacionamentos entre os fatos (Keller, 1991). Esse conhecimento é extraído por meio de entrevista com especialistas da área e de outras técnicas de aquisição de conhecimento. A aquisição do conhecimento representa a fase mais complexa do desenvolvimento do Sistema Especialista. Constitui-se no processo mediante o qual o engenheiro do conhecimento extrai os fatos e a heurística, associada com a tarefa (Hart, 1992). - Memória de trabalho: segundo Durkin (1994), a memória de trabalho contém as informações iniciais e os fatos de um problema, que são descobertos durante uma consulta. Tais fatos podem ser informados pelo usuário do sistema ou fornecido pela avaliação de uma das regras da base de conhecimento. A memória de trabalho é dinâmica, possibilitando a inserção ou a alteração de um determinado fato durante a resolução de um mesmo problema. - Máquina de inferência: contém o conhecimento geral que direciona e controla o raciocínio do sistema. O mecanismo de inferência examina os fatos e as regras existentes na base de dados, acrescentando novos fatos, sempre que possível, na medida das interpretações e conclusões que executa. Basicamente, a máquina de inferência responsabiliza-se pela seqüência de ações que deverão ser encadeadas, ou pela seqüência de regras aplicadas. Ela combina os fatos contidos na memória de trabalho, com o domínio do conhecimento, contido na base de conhecimento, para definir conclusões sobre o problema. O funcionamento de uma máquina de inferência pode ser através do encadeamento para frente, encadeamento para trás ou encadeamento para frente e para trás. Na Figura 3 é representada a estrutura de um Sistema Especialista. Figura 3 – Estrutura de um Sistema Especialista. 2.2.1.2 –Formas de Representação do Conhecimento A forma de representação do conhecimento em um Sistema Especialista pode ser definida como a “formalização e a estruturação do conhecimento adquirido no processo de aquisição de conhecimento” (Lemos, 1997; Durkin, 1994). A forma de representação a ser escolhida depende, basicamente, da área do domínio do problema e do problema a ser resolvido, podendo ser utilizados métodos diferentes de representação ou, até mesmo, mais de um método de representação na resolução de um mesmo problema. As principais formas de representação do conhecimento em SE são: - regras; - frames; - redes semânticas; - lógica; e - tríade Objeto/Atributo/Valor. 2.2.1.3 – Vantagens e Desvantagens dos SE Os SE apresentam as seguintes vantagens: - permanência do conhecimento: os SE não esquecem, mas humanos podem vir a se esquecer; - capacidade de reprodução do conhecimento: muitas cópias de um SE podem ser feitas, já o mesmo não é verdade para o caso de especialistas humanos; - eficiência: a velocidade de operação dos Seé muitas vezes maior que o especialista humano. - consistência e imparcialidade: um SE não é afetado por efeitos externos. Sempre terá o mesmo parecer, independentemente do dia, hora ou fatores externos à consulta. - documentação: os SE têm documentação de todo o seu conteúdo, já o ser humano, nem sempre. - completude: um SE pode rever todas as transações que realizou até inferir uma conclusão (rever todo o processo de encadeamento, ou seja, toda a memória de trabalho). Por outro lado, os SE apresentam as seguintes desvantagens por não conseguirem lidar com: - criatividade: especialistas humanos podem responder criativamente para situações não usuais e inesperadas; já os SE não conseguem; - senso comum: SE puros não conseguem trabalhar com raciocínio de senso comum, o que acaba sendo uma desvantagem, dependendo da área de aplicação do SE; - aprendizado: especialistas humanos podem automaticamente se adaptar às mudanças; já os SE devem sofrer alteração na base de conhecimento, o que nem sempre é tarefa simples e rápida; - degradação: normalmente, os SE não apresentam a capacidade de reconhecer quando não existe resposta ou quando o problema está além do seu domínio de conhecimento. 2.2.2 – Agentes inteligentes 2.2.2.1 – Considerações Gerais e Definições Existe muita polêmica sobre o que são exatamente os Agentes Inteligentes e como eles diferem dos programas em geral. Com isso, diferentes pesquisadores propõem diversas definições para esta área de Inteligência Artificial. Essas definições vão desde o nível elementar até o nível mais elaborado. Além disso, esses pesquisadores criaram também novos termos para referenciar os Agentes Inteligentes, tais como: interfaces inteligentes, interfaces adaptativas, knowbots, softbots, tasbots, nobot, entre outros. Verificou-se que cada autor procura enfatizar as características desejáveis de um agente, de acordo com a aplicação por ele desenvolvida. Agente inteligente é um programa de computador que funciona em background e desenvolve tarefas autônomas, conforme delegadas pelo usuário. São sistemas que apresentam um comportamento determinado de acordo com um processo de raciocínio, e o processo de raciocínio está baseado na maneira pela qual o agente representa suas crenças, desejos e compromissos (Wooldridge e Jennings, 1994). Maes (1996) define Agentes Inteligentes como sistemas computacionais residentes em ambientes dinâmicos complexos, os quais percebem e atuam autonomamente neste ambiente e, ao fazê-lo, realizam um conjunto de objetivos e tarefas para os quais foram designados. Nissen (1995) define um agente como sendo alguém ou alguma coisa que representa interesses de outra parte. Assim, um agente seria um procurador com o propósito de realizar ações em benefício da parte representada. Para o autor, a maioria dos sistemas desenvolvidos em linguagens de quarta geração, como por exemplo, a linguagem Object Pascal, utilizada no ambiente Borland Delphi, pode ser definida como agente. 2.2.2.2 – Propriedades Os agentes apresentam diversas propriedades que os diferenciam das outras aplicações de software. Nem todas precisam estar presentes, entretanto quanto mais propriedades o agente possuir, em geral, maior será o seu grau de inteligência. O quadro a seguir apresenta as principais propriedades que os agentes podem possuir: Principais propriedades dos agentes PROPRIEDADE DESCRIÇÃO Autonomia Capacidade de funcionar/atuar sem a intervenção humana, baseando suas ações em seu conhecimento sobre o ambiente. O agente deve ser capaz de tomar iniciativas e de se controlar (Wooldridge e Jennings, 1994; Khosla e Dillon, 1997; Nissen, 1995). Aprendizagem ou As mudanças de comportamento do agente devem ser Capacidade de baseadas em experiências prévias. O agente deve ser capaz adaptação de se adaptar às novas situações no ambiente. Isso inclui o aprendizado de novas situações e não repetir os enganos (Franklin e Graesser, 1996; Khosla e Dillon, 1997; Bradshaw, 1997). Comunicabilidade ou Capacidade de o agente se comunicar com outros agentes e Habilidade com pessoas, com o intuito de obter informações ou ajudar social o usuário (Khosla e Dillon, 1997; Franklin e Graesser, 1996). Colaboração ou Habilidade do agente colaborar e trocar informações com Cooperatividade outros agentes para melhorar a qualidade de sua decisão/ resposta. A capacidade de colaboração é uma extensão natural da capacidade de comunicação (Khosla e Dillon, 1997; Nissen, 1995). Persistência ou Capacidade do agente manter um estado interno conciso Continuidade através do tempo, ou seja, o agente está continuamente temporal executando um processo (Franklin e Graesser, 1996). Reatividade Capacidade de o agente perceber as mudanças no ambiente e atuar de acordo com essas mudanças (Franklin e Graesser, 1996; Wooldridge e Jennings, 1994). Pró-Atividade ou Um agente não deve simplesmente agir de acordo com as orientado a metas percepções do ambiente, mas sim procurar alcançar uma meta (Franklin e Graesser, 1996; Wooldridge e Jennings, 1994). Mobilidade Capacidade de o agente mover-se de um ambiente (máquina) para outro (Bradshaw, 1997; Hermans, 1996). 2.2.2.3 – Classificação dos Agentes Nwana (1996), propõe uma classificação de acordo com: a) A propriedade de mobilidade, podendo ser móvel ou estática. b) A propriedade de reatividade – os agentes podem ser deliberativos ou reativos. c) Atributos primários, sendo identificados em uma lista com, no mínimo, três deles: cooperação, aprendizado e autonomia. A partir dessas propriedades, são derivados quatro tipos de agentes: colaborativo, de interface, colaborativo de aprendizagem e os inteligentes. d) O seu papel – os agentes de informação (no âmbito da Internet). Esta categoria normalmente explora ferramentas de busca da Internet e, quase sempre, estes agentes gerenciam as informações nela disponíveis. e) Agentes híbridos, que podem combinar duas ou mais filosofias agentes em um único agente. Na Figura 4, é representada a topologia proposta por Nwana . Figura 4 – Topologia de agentes O autor identificou também sete tipos de agentes, baseado nos atributos acima citados. São eles: - Colaborativos – Os agentes colaborativos enfatizam as propriedades de autonomia e cooperação (com os outros agentes) para executarem suas tarefas. As principais características destes agentes são: autonomia, habilidade social e próatividade. Eles tendem a ser estáticos, e a maioria das implementações não executa nenhum aprendizado complexo. - De interface – Os agentes de interface enfatizam a autonomia e o aprendizado. Eles apresentam também a propriedade de colaboração, pois colaboram com o usuário (ao contrário dos agentes colaborativos), por não requererem uma linguagem específica de comunicação de agentes. Estes agentes podem ser vistos como assistentes pessoais. - Móveis – Os agentes móveis são processos de software capazes de vagar através de redes de computadores ou através da própria Internet, interagindo com outros computadores, para executar a sua tarefa, apresentando grande autonomia e cooperatividade. - De Informação/internet – Estes agentes executam papel de gerenciamento e manutenção de informações espalhadas em diversas fontes, pois executam finalidades distintas dos demais. Entretanto, é possível que um agente de interface, em dado momento, faça o papel de um agente de informação. Os agentes de informações podem ser estáticos ou móveis, mas não apresentam habilidade social, tampouco cooperação. - Reativos – Estes agentes funcionam simplesmente de acordo com os estímulos recebidos do ambiente. Um agente reativo é visto como uma coleção de módulos que operam de maneira autônoma e são responsáveis por tarefas específicas. - Híbridos – Estes agentes combinam em um único agente diferentes filosofias. O número de aplicações híbridas existentes é relativamente pequeno se comparado às outras. Isso se deve à dificuldade de sua construção. - Inteligentes – ainda não existem agentes realmente inteligentes; entretanto, os Agentes Inteligentes seriam capazes de cooperar e aprender, além de possuir autonomia para executar suas tarefas. A tipologia proposta por Nwana (1996) está apresentada na Figura5. Agentes Reativos Agentes Híbridos Figura 5 – Tipologia de Agentes. 2.2.2.4 – Aplicações de Agentes Inteligentes Existem muitas aplicações de Agentes Inteligentes nas mais variadas áreas. A seguir serão apresentadas algumas aplicações de agentes, nas áreas de educação, comércio e saúde, conforme quadro resumo a seguir: Quadro resumo de algumas aplicações de agentes ÁREA APLICAÇÃO D ESCRIÇÃO /COMENTÁRIO REFERÊNCIAS Ensino Agentes Inteligentes em controles pedagógicos. (Baylor-A, 2000) Ensino Sistemas Multi-Agentes reforçam a aprendizagem. (Miyazaki-K et al, 1999) Social Aplicação de modelos-Agentes Inteligentes (Pomerantseva-GN, 1999) Interativos para simulação do progresso social. Educação Comércio Projetos Como multiplicar a aprendizagem com Agentes em problemas de planejamento de projetos. (Takadama-K, 1999) Simulações Agentes Inteligentes em simulações militares. (Tidhar-G et al, 1999) Informação Ambientes computacionais heterogêneos colaborando em tempo real. (Marsic-I, 2000) Jogos Agentes Inteligentes em jogos de computador. (Van-Lent-M et al, 1999) Redes Agentes Móveis resolvendo problemas de gerenciamento de redes. (Kunstic-M et al, 1999) Sistemas Multi-Agentes Reativos decidindo a especificação de métodos em projetos. (Bounabat-B et al, 1999) Segurança Monitorando a presença e status de pessoas com Arquitetura Multi-Agentes. (Ohguro et al, 1999) Segurança na saúde Agentes Guardiães – Sistemas de Segurança em situações críticas na saúde. (Fox-J, 2000) Emoções Lógica Fuzzy no processo de decisão da estrutura humana. (Seif-El-Nasr-M et al, 2000) Projetos Saúde 2.2.4 – Sistemas Híbridos Os sistemas híbridos inteligentes são uma “integração das diferentes técnicas de inteligência artificial com sistemas computacionais tradicionais, como planilhas eletrônicas e banco de dados”, mas, não são combinações de duas ou mais técnicas de Inteligência Artificial que suprem as limitações de cada técnica individualmente (Goonatilake e Khebbal, 1995). Segundo Medsker (1995), a primeira e a avançada integração entre as técnicas de Inteligência Artificial corresponde às subáreas de Sistemas Especialistas e Redes Neuronais. Porém, com a evolução individual de outras técnicas, tais como: algoritmos genéticos, raciocínio baseado em casos, sistemas difusos e Agentes Inteligentes, novas integrações poderão ser feitas, gerando sistemas híbridos mais poderosos e eficazes. Segundo (Khosla e Dillon, 1997), os sistemas híbridos podem ser agrupados em quatro classes, nomeadas: sistemas de fusão, sistemas de transformação, sistemas de combinação e sistemas de associação. - Sistemas de Fusão – Em sistema de fusão, as características de representação e/ou processamento de informações de uma metodologia inteligente A são fundidos na estrutura de representação de outra metodologia inteligente B. - Sistemas de Transformação – Os sistemas de transformação são utilizados para transformar uma forma de representação em outra. - Sistema de Combinação – Sistemas de combinação envolvem hibridação explícita. Estes sistemas envolvem um arranjo modular de duas ou mais metodologias inteligentes para solucionar problemas que envolvem o mundo real. - Sistemas Associativos – Os sistemas associativos buscam associar sistemas de fusão, transformação e combinação, com a finalidade de maximizar a qualidade das soluções obtidas. Na figura 6, é apresentada a relação entre a qualidade das soluções e as classes dos sistemas híbridos. Figura 6 – Qualidade da solução x campo de resolução dos Sistemas Híbridos. A figura 7 demonstra graficamente as diferentes classes dos Sistemas Híbridos Figura 7 – Caracterização das classes dos Sistemas Híbridos. 2.3 – Plataforma Delphi para Programação O Delphi, um Pascal para Windows, é, segundo Cantù (1999), uma das melhores combinações de programação orientada a objetos e programação visual para Windows, pela facilidade de uso e ótimo desempenho em equipamentos de uso corrente. Esta importante ferramenta de desenvolvimento de software abrangente, permite, de forma rápida e com produtividade, solucionar questões envolvendo bancos de dados, cliente/servidor, múltiplas camadas, intranet ou internet com controle e poder. 2.3.1 – Geração de SQL Outra importante ferramenta utilizada é a linguagem SQL e SQL*Plus que, conforme afirma Morelli (2000), permite grandes aplicações de relatórios com SQL*Plus, montando scripts contendo comandos SQL e que geram outros comandos SQL, facilitando a automatização de grandes quantidades de tarefas. 2.3.2 – Protocolo e Linguagem de Comunicação A comunicação entre dois ou mais agentes é estabelecida através de regras que garantem a ordem de comunicação e a transferência de dados. O conjunto dessas regras pode ser chamado de protocolo de comunicação. Entre os vários estudos em andamento sobre protocolos de comunicação em SMA (Sistemas Multi-Agentes), destacam-se o DCOM (Distributed Component Object Model) que é uma versão distribuída do modelo COM da Microsoft, o qual promove comunicação entre componentes distribuídos em uma rede de computadores (Lima, 1999) e o KQML (Knowledge Query and Manipulation Language). O KQML é um protocolo de comunicação baseado em performativas que possuem funções predeterminadas (Paraíso, 1997). 2.3.3 – O Protocolo DCOM e Objetos Distribuídos O protocolo DCOM promove a comunicação entre Objetos Distribuídos, que são conjuntos de linhas de códigos responsáveis por algumas tarefas referentes à sua classe, podendo estar localizados em qualquer máquina de uma rede, assim como podem ser chamados e utilizados por qualquer delas, independente do sistema operacional e linguagem que tenha sido desenvolvido. Para desenvolver Objetos Distribuídos, utilizam-se linguagens específicas, onde cada uma proporciona uma solução diferente, sendo as mais conhecidas: Java, Microsoft Visual Basic, Microsoft Visual C++, PowerBuilder, Micro Focus Visual Object, COBOL e Delphi, todos implementam objetos DCOM. O DCOM tem suas raízes nas tecnologias de objeto da Microsoft: o COM (Component Object Model), OLE (Object Linking and Embedding) e ActiveX (COM habilitado para a Internet). Deve-se considerar COM e DCOM como uma única tecnologia que fornece uma escala de serviços para a interação de objetos. Se no momento de uma comunicação for necessária a utilização do padrão COM, ele será utilizado; porém, se for necessária a tecnologia DCOM, esta será utilizada. Cada interface de um objeto COM/DCOM deve derivar de uma interface chamada Iunknown, que provê as operações básicas que qualquer objeto deve dispor. Essas operações básicas são três ( Lima, 1999): QueryInterface – permite a um cliente consultar as interfaces de um objeto. AddRef – incrementa o contador de referência. Release – decrementa o contador de referência. 2.3.4 – O Protocolo KQML O KQML é o resultado do trabalho do grupo External Interfaces Working Group do DARPA Knowledge Sharing Effort, cujo objetivo desse grupo é oferecer ferramentas para facilitar a troca de informações entre sistemas computacionais envolvidos em ambientes heterogêneos(Paraíso, 1997). O KQML é um protocolo para programas que se utilizam da comunicação para troca de informação, sem se preocupar com o conteúdo desta informação. Esta linguagem está disponível para utilização e pode ser implementada em C/C++ usando TCP/IP para comunicação entre processos. 2.3.4.1 – Performativas KQML A performativa KQML é expressa na forma de uma cadeia ASCII, usando uma sintaxe bem definida. Esta sintaxe é baseada na notação polonesa pré-fixada do Commom Lisp, cuja escolha se deve à sua simplicidade de leitura(Paraíso, 1997). Seguem alguns exemplos de performativas: - achieve: um agente A deseja que um agente B faça algo de seu domínio. - ask-all: um agente A deseja todas as respostas de um agente B para uma questão; - break: um agente A deseja que um agente B quebre uma conexão em pipe. - insert: um agente A solicita a B para acrescentar uma sentença em sua base de conhecimento. - tell: informa uma sentença. - etc. 2.3.4.2 – KIF (Knowledge Interchange Format) O KIF é uma linguagem definida pelo grupo DARPA Knowledge Sharing Initiative, desenvolvida com o propósito de formatar o conteúdo de uma mensagem KQML(Paraíso, 1997). KIF é uma linguagem baseada no cálculo predicativo de primeira ordem, possibilitando a comunicação e troca de conhecimento entre os agentes. Sendo que o conhecimento pode ser formatado em regras, expressões quantificadas, etc. No próximo capítulo será apresentado o modelo teórico, com base nas teorias estudas neste capítulo. CAPÍTULO III 3 - MODELO PROPOSTO 3.1 – Considerações Gerais Considerando o grande número existente de diferentes softwares, distribuídos nos diversos setores de instituições públicas ou privadas, onde as pessoas responsáveis pelos níveis decisórios necessitam de informações em tempo real, para que as decisões possam ser tomadas em tempo hábil, surge uma proposta inovadora para integrar os sistemas existentes de forma interativa e automática, com o auxílio da inteligência artificial distribuída e suas técnicas, buscando a melhoria da eficiência e da eficácia na gestão de informações, quer sejam em nível interno, como externo às instituições, através da grande rede WEB. Com a globalização da economia, surge a necessidades de ações rápidas que muitas vezes dependem de análises de relatórios para se tomar as decisões cabíveis, cujos responsáveis, na maioria da vezes, não podem dispor desse tempo. Procurando a melhor solução para o problema, propõe-se a criação de um “ambiente multi-agente para desenvolvimento e/ou integração de sistemas existentes”, de forma que usuários comuns possam programar através de menus amigáveis, agentes especialistas para cada caso específico, aproveitando dados dos próprios sistemas já existentes, os quais são analisados, comparados com outros dados e repassados para os usuários, de forma impressa ou sonora, com gráficos e tabelas. Sendo que, após um primeiro momento de um processo ensino/aprendizagem, o sistema passa a executar as tarefas de forma automática, fornecendo informações atualizadas sempre que houver qualquer alteração nos diversos bancos de dados dos sistemas integrados. 3.2 – Descrição do Modelo - Ambiente Multi-Agente para Desenvolvimento e/ou Integração de Sistemas Informatizados A situação problema, enfocada neste trabalho, envolve uma série de recursos e necessidades, onde no centro estão as pessoas responsáveis superocupadas, procurando as melhores soluções, conforme ilustrado na figura 8. A solução proposta é um “Gerente Virtual”, capaz de interagir através de vários módulos (ver o centro da figura), com diferentes funções, atuando no meio de forma integrada e inteligente. Telas interativas e menus amigáveis garantem, ao usuário, a facilidade para operar e programar ou “ensinar” o sistema para cada caso específico. A figura 9 mostra um quadro resumo – Arquitetura do Sistema, das funções desempenhadas pelos diferentes módulos, ilustrando também o canal interno de comunicação entre eles. Na seqüência, serão descritas as funções de cada módulo. Percepção do Ambiente - O sistema é capaz de: detectar automaticamente todas as estações e aplicações ativas no ambiente; detectar a presença efetiva de usuários nas estações do ambiente; modificar a memória dinâmica comandos de voz. e detectar Bancos de dados dos sistemas informatizados Sistemas informatizados s Rede local Usuários dos sistemas informatizados Internet s Percepção do ambiente s Base de conhecimento s Memória dinâmica s Aprendizado s Atuação no ambiente s Comunicação s Autonomia Outras pessoas Computadores Outros agentes de software Mensagens em linguagem natural Mensagens codificadas Gráficos Consultas FIGURA 8 - Relatórios AMBIENTE DE APLICAÇÃO PERCEPÇÃO DO AMBIENTE BASE DE CONHECIMENTO w Estações e aplicações ativas no ambiente w Estações do ambiente w Presença efetiva de usuários nas estações do ambiente w Usuários no ambiente w Modificações na Memória Dinâmica w Aplicações no ambiente w Detecção de comandos de voz w Operações válidas w Procedimentos lógicos do gerente virtual APRENDIZAGEM w Telas interativas para modificação da base de conhecimento w Autoconfiguração de estações no ambiente w Autoconfiguração do dicionário de dados AUTONOMIA w Reação automática a estímulos percebidos através de eventos w Execução de tarefas baseadas no tempo w Agenda de tarefas temporais w Conexão com bancos de dados w Dicionário de dados das aplicações w Sentenças SQL w Formatação de gráficos w Formatação de relatórios MEMÓRIA DINÂMICA w Bancos de dados dos sistemas informatizados w Banco de dados internos do sistema ATUAÇÃO NO AMBIENTE COMUNICAÇÃO w Apresentação de informações visuais w Mensagens interativas para usuários (linguagem natural) (mensagens e gráficos) w Correio eletrônico na Internet (linguagem natural) w Geração de avisos sonoros w Eventos de dados (objetos distribuídos, KQML, KIF) w Fala sintetizada w Reprodução de áudio digital w Emissão de relatórios w Execução/finalização de aplicações (outros sistemas informatizados) w Modificação da Memória Dinâmica Canal interno de comunicação w Interpretação de procedimentos lógicos do gerente virtual Figura 9 - QUADRO RESUMO DO AMBIENTE PROPOSTO Base de Conhecimento – Mantém o registro de: estações do ambiente, usuários do ambiente, aplicações do ambiente, operações válidas, procedimentos lógicos do “gerente virtual”, agenda de tarefas temporais, conexão com bancos de dados, dicionários de dados das aplicações, sentenças SQL que são instruções em linguagem declarativa, orientando o gerenciador de banco de dados para extrair as informações desejadas ou modificar os dados da forma que o usuário desejar, formatação de gráficos e relatórios. Memória Dinâmica – Interage com os bancos de dados dos sistemas informatizados sobre o domínio do ambiente e com o banco de dados interno do sistema. Aprendizagem – Telas interativas com menus amigáveis permitem que usuários comuns possam programar agentes especialistas para cada caso, modificando a base de conhecimento; todas as modificações são autoconfiguradas em todas as estações do ambiente; também é autoconfigurado o dicionário de dados, que são tabelas com dados dos diferentes casos ou situações programadas. Autonomia – Reação automática a estímulos percebidos através de eventos e execução de tarefas baseadas no tempo. Comunicação – A comunicação é processada através de: mensagens interativas para usuários em linguagem natural; correio eletrônico na Internet em linguagem natural e eventos de dados, utilizando objetos distribuídos, KQML e KIF. Atuação no ambiente - Através de: apresentação de informações visuais com mensagens e gráficos; geração de avisos sonoros; fala sintetizada; reprodução de áudio digital; emissão de relatórios; execução/finalização de aplicações de outros sistemas informatizados interligados; modificação da memória dinâmica e interpretação de procedimentos lógicos do “gerente virtual”. No próximo capítulo será descrito o desenvolvimento do soltware para atender o que foi proposto no modelo teórico deste capítulo. . CAPÍTULO IV 4 – DESENVOLVIMENTO E IMPLEMENTAÇÃO DO SISTEMA 4.1 – Plataforma de Desenvolvimento O Sistema Multi-Agentes (SMA) foi desenvolvido e implementado na linguagem Delphi, podendo conseqüentemente operar em ambientes Windows, com equipamentos e sistemas operacionais tradicionais, reduzindo custos e outras limitações existentes em outros sistemas. O sistema possui uma característica genérica. Embora existam inúmeros softwares desenvolvidos para as mais diferentes situações, é muito difícil para as pessoas, que estão à frente nas gerências de grandes instituições públicas ou privadas, conseguir tempo para buscar dados de diferentes áreas, analisar, comparar com dados de períodos anteriores, classificar e tomar as decisões necessárias, baseadas em fatos reais e não por intuição ou experiência. 4.2 - Sistema Multi-agentes para Gerenciamento de Sistemas – SMAGS O SMAGS desenvolvido tem como característica principal a generacidade, contendo vários módulos ou subsistemas, onde o subsistema principal, denominado Gerente de Aplicações, é uma célula que pode ser aperfeiçoada ou substituída (em trabalhos futuros), de forma a tornar este SMAGS cada vez mais inteligente e, talvez, sem querer ser por demais pretensioso, com o uso compartilhado das várias técnicas de inteligência artificial, recursos computacionais e outros, construir o seu próprio conhecimento, adquirindo capacidades similares às dos seres humanos e, conseqüentemente, ser dotado de consciência. 4.2.1 – Estrutura de Funcionamento O Sistema Multi-Agentes para Gerenciamento de Sistemas, ou simplesmente SMAGS, é um software dotado de recursos para gerenciar, de forma autônoma, serviços especiais que são normalmente desenvolvidos por seres humanos, tais como: análise, pesquisa e classificação de informações, num ambiente informatizado. O SMAGS atuará sobre o meio através da execução de aplicações especializadas, modificação automática de banco de dados, geração de consultas, gráficos e relatórios, bem como, a comunicação de mensagens visuais e sonoras, refletindo suas percepções e ações sobre o sistema gerenciado. Não será apresentado neste capítulo um fluxograma das rotinas e subrotinas do SMAGS, por que as possibilidades seriam infinitas, em função da flexibilidade do sistema para cada aplicação específica. No capítulo de testes e resultados serão apresentados os fluxogramas para os testes realizados, onde serão detalhadas cada uma das partes testadas, tendo em vista o funcionamento, com o fornecimento de resultados, os quais necessitam passar por todas as rotinas do sistema. A sensibilidade do SMAGS às ocorrências no sistema gerenciado, é dada através de eventos especiais, que podem ser disparados por qualquer um de seus elementos, tais como: por aplicações especiais e pelos próprios agentes do SMAGS. Esses eventos são comunicados, em primeira instância, dentro do sistema operacional, sensibilizando os subsistemas que estiverem registrados para determinados eventos. Em segunda instância, os eventos são comunicados ao longo da rede, através do agente de comunicação de eventos que, desse modo, converte eventos locais em eventos externos e vice-versa, a fim de propagar as informações para todos os destinatários registrados. O subsistema principal é o gerente de aplicações, que deve ser programado ou treinado para monitorar e atuar sobre determinadas aplicações no sistema gerenciado. Os outros subsistemas são elementos genéricos que poderão existir em qualquer ambiente gerencial, de modo a colaborar com o gerente de aplicações, fazendo dele um subsistema mais especializado e mais fácil de construir e adaptar, para cada caso específico de gerenciamento. O gerente de aplicações será notificado sobre ocorrências especiais no seu domínio, ou ambiente, de gerenciamento. Esses eventos são classificados em alguns tipos elementares, que serão ainda subclassificados em operações. Os principais eventos que transitarão no ambiente gerenciado são: - Evento de notificação genérica – usado por aplicações específicas do ambiente gerenciado. - Evento de notificação de tarefa agendada – usado para informar que uma tarefa agendada está na hora de ser executada. - Evento de transmissão de dados – usado para transferir resultados de consultas do subsistema explorador de dados. - Evento de transmissão de mensagem – usado para comunicar mensagens para usuários. - Evento de controle de conexão de usuário – usado para notificar uma conexão ou desconexão de usuário ao sistema. - Evento de execução de operação – usado para executar tarefas especializadas nos subsistemas constituintes. Todos os eventos podem alcançar o gerente de aplicações, desse modo ele poderá ser treinado para responder autonomamente a eles, ou, então, pode ser programado para reagir de forma especializada a determinadas situações. 4.2.2 - Arquitetura do Sistema Os seguintes elementos constituirão o SMAGS, sendo que todos eles cooperam mutuamente, através de eventos locais ou externos por meio da rede (intranet ou internet). Aplicações específicas Aplicações específicas funcionam na rede – no ambiente gerenciado consultando e modificando os dados de bancos de dados, bem como realizando operações não dedicadas a bancos de dados. Essas aplicações não precisam, necessariamente, ser modificadas para funcionarem de modo integrado ao SMAGS, haja vista que a sua integração pode ocorrer através da simples execução destes programas ou através do banco de dados que eles operam. O explorador de dados poderia, assim, extrair dados e modificar dados que estão sendo compartilhados por tais aplicações em uso no ambiente gerenciado. Por outro lado, com adaptações nessas aplicações específicas, pode-se tornar a interatividade do gerente de aplicações muito mais intensa, permitindo, por exemplo, que ele realize operações especiais dentro dessas aplicações ou perceba operações especiais que estão sendo feitas nessas aplicações. Para atender à parte de percepção, atuação e base de conhecimento do ambiente, descrita no modelo, foi idealizado pelo autor e desenvolvido por um programador, um Agente Explorador de Dados, que age e interage da forma descrita a seguir, e ilustrada na figura 10. Agente Explorador de Dados É a aplicação de comunicação com bancos de dados, responsável pela extração, modificação e comunicação de informações do banco de dados. O explorador de dados é o módulo ou subsistema que irá desempenhar as seguintes funções no ambiente gerenciado: a) Permitir que os usuários construam e executem consultas especiais para um banco de dados qualquer, existente no ambiente gerenciado, através de uma interface amigável e universal. Este módulo ou subsistema usa tecnologias diversas de conectividade com banco de dados através de ODBC (Open DataBase Conectivity) e de bibliotecas específicas para acesso nativo, e ampliável, para diversos tipos de bancos de dados. Alguns tipos de bancos de dados que podem ser nele conectados são: Oracle, SQL Server, SyBase, DB2, InterBase, PostgreSQL, MySql, dBase, FoxPro, Ms-Access, Informix, ZIM e muitos outros. b) Permitir que os usuários construam formatações de relatórios e gráficos, com auxílio de uma estrutura de menus. As consultas, relatórios e gráficos são construídos por pessoas que têm um mínimo conhecimento da estrutura do banco de dados e são montadas de tal forma que os usuários possam executá-las parametrizavelmente, sendo assim mecanismos genéricos de extração de dados. Esses mecanismos também poderão ser disparados, automaticamente, por eventos do SMAGS. c) Permitir que os usuários construam e executem rotinas de modificação de dados, baseadas em parâmetros que podem ser solicitados para o usuário ou recebidos através de eventos do SMAGS, de modo a realizar alguma função específica no sistema gerenciado, atualizando seus dados. A operação do extrator de dados pode ser feita independentemente dos outros subsistemas do SMAGS. Mas quando feita em conjunto, permite que o SMAGS perceba as operações que o usuário está fazendo, correlacionando-as com outros dados, permitindo assim algum tipo de aprendizado ou treinamento. O extrator também poderá receber comandos do SMAGS e transmitir informações do banco de dados, através dos eventos locais e externos. O extrator de dados também poderá integrar aplicações específicas do ambiente gerenciado, de modo a desempenhar funções que poderiam ser programadas dentro de tais sistemas, mas que, de modo integrado ao SMAGS, tornará a interface com o banco de dados mais homogênea e permitirá que essas aplicações específicas tenham forte interatividade com o SMAGS. O explorador de dados poderá operar numa única estação da rede, em geral no servidor, ou mesmo em várias estações. A forma proposta é sua execução automática, ocorrendo numa única estação – servidor – mas sua execução específica pelos usuários poderá ocorrer em qualquer ponto da rede. Neste caso, todas estas estações estarão comunicando eventos na rede, para notificar as operações que estão sendo executadas no ambiente gerenciado. Aplicações específicas (sistemas informatizados no ambiente) Agente Explorador de dados (percepção, atuação e base de conhecimento do ambiente) Agente de tarefas agendadas (autonomia e base de conhecimento do ambiente) Agente de mensagens (comunicação em linguagem natural) Canal interno de comunicação dos eventos ( COM ) Bancos de dados dos sistemas informatizados Agente de conexão de usuários (percepção e atuação no ambiente) Agente Gerente Virtual (autonomia e atuação no ambiente) Agente de comunicação (comunicação de eventos no ambiente) Canal externo de comunicação Sistemas externos (DCOM e TCP/IP) Figura 10 - QUADRO RESUMO DO AMBIENTE PROPOSTO ARQUITETURA DO SISTEMA Para atender à parte de autonomia e também à base de conhecimento do ambiente, citada no modelo, foi integrado ao sistema, com os devidos ajustes, um Agente de Tarefas Agendadas, o qual age e interage da forma descrita a seguir, e ilustrada na figura 10. Agente de tarefas agendadas É o agente especialista responsável por organizar a agenda de eventos, bem como disparar eventos de acordo com a prévia programação. Este subsistema poderá operar numa única estação, em geral no servidor, ou em várias estações do sistema gerenciado. A execução, propriamente dita, das tarefas não será realizada pelo agente, mas sim, por algum receptor de eventos registrado para essa ocorrência. Desse modo, o agendador de tarefas torna-se genérico, delegando a execução específica de atividades para algum outro elemento do sistema gerenciado, previamente existente ou implementado especificamente para tal finalidade. As seguintes funções serão realizadas por esse agente: a) Permitir o cadastramento de operações em tempos predeterminados ou em resposta a determinados eventos do ambiente gerenciado. A programação de tempo poderá ser absoluta, informando data e hora arbitrárias para disparar a operação; ou, então, poderá atuar, informando um intervalo de tempo que sucederá algum evento específico do sistema gerenciado, como por exemplo, uma determinada execução de atualização de dados, uma execução de um determinado programa, a ocorrência de algum feriado, final de semana ou outro evento de calendário, etc. b) Registrar e perceber eventos associados ao disparo de tarefas agendadas. c) Cronometrar o tempo para o disparo de tarefas agendadas. d) Notificar o sistema, através de eventos específicos, informando que uma tarefa está na hora de ser executada. e) Operar de forma autônoma, através de eventos do SMAGS. Para atender à parte de comunicação em linguagem natural no ambiente, citada no modelo, foi desenvolvido um Agente de Mensagens, que age e interage da forma descrita a seguir, e ilustrada na figura 10. Agente de mensagens É o agente especialista responsável por elaborar, armazenar, classificar e entregar mensagens de usuários na rede. Este subsistema é análogo a um cliente, integrado a um servidor de e-mail da Internet. Porém, este subsistema deverá realizar funções adicionais especializadas, para operar em cooperação com o SMAGS. Esse agente deverá operar em todas as estações do ambiente gerenciado. As seguintes funções deverão ser desempenhadas por esse agente: a) Permitir a pré-definição de mensagens especiais (visuais ou sonoras), que serão usadas para notificar os usuários do sistema gerenciado, acerca das ocorrências percebidas tanto por pessoas, quanto pelo SMAGS. b) Permitir a elaboração de quaisquer mensagens, cujo remetente é o usuário ativo no agente de conexão de usuários, e o destinatário, que é qualquer usuário registrado como usuário do sistema gerenciado. c) Enviar e receber mensagens entre usuário do sistema gerenciado, utilizando eventos do agente de comunicação. d) Notificar, classificar e arquivar mensagens recebidas localmente e recebidas no destinatário. e) Arquivar mensagens enviadas para cada destinatário. f) Operar autonomamente através de eventos disparados por outros subsistemas do SMAGS. Para atender à parte de percepção e também atuação no ambiente, foi desenvolvido um Agente de Conexão de Usuários, que age e interage da forma descrita a seguir, e ilustrada na figura 10. Agente de conexão de usuários É o agente especialista responsável por ativar e monitorar as conexões de usuários na rede. Esses agentes mantêm registros dos usuários autorizados para operar o SMAGS. ( ver tela ilustrativa no anexo I ). Ele deverá desempenhar as seguintes funções no ambiente gerenciado: a) Solicitar senha para ativar a conexão de um usuário em uma estação qualquer. b) Permitir desativação do usuário corrente e reconexão de outro usuário na mesma estação. c) Monitorar os usuários conectados no sistema. d) Registrar, opcionalmente, um log das operações que estão sendo realizadas pelos usuários no sistema gerenciado. e) Realizar todas as suas operações, de modo autônomo, através de eventos recebidos e enviados no SMAGS. Para atender às características de um “um gerente virtual”, citada no modelo, foi desenvolvido um Agente Gerente Virtual, que age e interage da forma descrita a seguir, e ilustrada na figura 10. Agente Gerente de aplicações Este é o agente principal do sistema, responsável por integrar as aplicações e outros agentes que fazem parte do sistema. Este agente pode ser aperfeiçoado em nível de “inteligência”. Neste trabalho inicial, ele será modelado através de um especialista computacional, constituído de uma base de conhecimento, que por sua vez será montada através de regras lógicas e um dispositivo de inferência, que analisará as regras, de modo a reagir automaticamente aos eventos que estiverem trafegando no sistema. Futuramente, este agente poderá aprender suas próprias regras, com base no que ele percebe sobre eventos e dados que trafegam no sistema, conforme descrito no tópico anterior. Esse agente poderá executar em qualquer ponto do sistema gerenciado. Sua concepção deverá ser, essencialmente, cliente-servidor, porque deverá ser capaz de centralizar sua base de conhecimento e distribuir suas ações na rede. Em geral, suas atribuições serão: a) Registrar, receber e codificar os eventos de entrada que são relevantes para suas ações. Geralmente, todos os eventos deverão chegar até o gerente. b) Aplicar as entradas codificadas - eventos de operações e eventos de dados – à etapa de resolução, aprendizado e reação autônoma, avaliando numericamente as informações presentes, mudando seu estado quando necessário e decodificando seus resultados para agir sobre o meio. c) Agir sobre o sistema gerenciado, executando outras aplicações, produzindo eventos para executar operações nos subsistemas do SMAGS, realizando tarefas específicas do ambiente gerenciado. d) Permitir, opcionalmente, que algum operador humano ou outra aplicação possa interferir em sua autonomia ou monitorar seu estado, quando possível e desejado. Isso pode ser feito através de uma interface de usuário ou mesmo através de eventos especiais do SMAGS. Para atender à parte de comunicação de eventos no ambiente, foi desenvolvido um Agente de Comunicação, que age e interage da forma descrita a seguir, e ilustrada na figura 10. Agente de comunicação É o agente especialista responsável por converter e entregar eventos entre aplicações e outros agentes na rede. Este subsistema deverá funcionar em segundo-plano, de modo autônomo e transparente, em todos os pontos do ambiente gerenciado, embora, apenas um destes pontos seja configurado como servidor de comunicação. Todos os pontos podem receber eventos locais e propagá-los para que o servidor os entregue ao destinatário, quando existirem receptores de eventos interessados externamente. Cada ponto da rede mantém uma lista de receptores externos e o endereço do servidor. Assim, apenas eventos que devem ser entregues em pontos externos trafegarão na rede, do remetente para o servidor e do servidor para o destinatário, ou, então, do remetente para o destinatário diretamente, caso essa topologia seja mais interessante. Os eventos locais são pacotes de dados que trafegam através de algum sistema de comunicação do sistema operacional. Algumas possibilidades são: sistema de mensagens do sistema operacional, OLE Automation, COM, DCOM, CORBA, Mail- Slots, memória compartilhada, ou mesmo, através de arquivos ou banco de dados compartilhados ou DLL compartilhadas. Os eventos externos são pacotes de dados que trafegam através da rede local ou Internet. Algumas possibilidades de pacotes de básicos e caminhos de mais alto nível são: TCP/IP, NetWare, CORBA, DCOM, HTTP ou então, através de bancos de dados cliente-servidor, arquivos compartilhados na rede ou mesmo algum outro protocolo de rede. O agente de comunicação deverá realizar as seguintes funções no ambiente gerenciado: a) Registrar receptores, ou ouvintes, para determinadas categorias de eventos. b) Receber eventos locais, identificar o destinatário e avaliar se é local ou externo. c) Propagar eventos locais no sistema operacional, quando o remetente e o destinatário forem locais. d) Converter eventos locais em eventos externos, quando o remetente for local e o destinatário for externo. e) Converter eventos externos em locais, quando o remetente for externo e o destinatário for local. f) Monitorar a presença do servidor e dos outros clientes. No próximo capítulo serão feitas algumas aplicações em casos práticos do software desenvolvido. CAPÍTULO V 5. – TESTES REALIZADOS E ANÁLISE DOS RESULTADOS 5.1 – Aplicação em Casos Práticos O SMAGS foi desenvolvido e aplicado em casos práticos, na Unidade de Curitiba do CEFET-PR, com a finalidade de viabilizar o acompanhamento acadêmico, extraindo dados do sistema acadêmico já existente no CEFET-PR; analisando, classificando e elaborando gráficos ilustrativos a cada lançamento de notas e freqüências, fornecendo informações em tempo real em todos os níveis, setores ou pessoas, de forma comparativa, interativa e automática. 5.2 – Testes na Aplicação em Avaliação ou Acompanhamento Acadêmico O sistema foi testado utilizando uma parte uma parte do sistema acadêmico do CEFET-PR, envolvendo as disciplinas do curso de Engenharia Industrial Elétrica, tendo como objetivo analisar a cada lançamento de notas e freqüências, as disciplinas onde os alunos tenham obtido notas inferior a 2, fornecendo informações detalhadas desses alunos, turmas/professores, distribuindo as informações em todos pontos onde o sistema estiver instalado, nos diferentes setores do ambiente gerenciado. Para a execução dos trabalhos/tarefas propostas, na forma tradicional, seriam necessárias várias horas de trabalho, onde um usuário privilegiado e com bom conhecimento de informática, deveria abrir uma aplicação de extração de dados para realizar várias consultas ao sistema acadêmico, envolvendo várias operações conforme ilustrado na figura 11. Com os dados obtidos é necessário ainda elaborar gráficos e/ou tabelas ilustrativas para encaminhar aos setores ou pessoas envolvidas para que sejam tomadas as providência necessárias. Sendo que embora já existam os conhecidos E-mail para a transmissão de informações, eles ainda não são dotados de formas motivadoras que levem o usuário a se interessar pelo seu uso mais intensamente, preferindo a impressão em papéis, o que resulta em mais gastos desnecessários e tempo perdido. O SMAGS em teste, instalado em um notebook Compaq Pressário 1200 de 450 MHZ e em um desktop de 350 MGZ, ambos com o sistema operacional windows98, portanto, equipamentos e sistema de uso corrente, após um período de tempo inicial utilizado para configuração e/ou treinamento do sistema para a aplicação específica, resultando em um Sistema Especialista para essa situação, segundos após a digitação/inserção dos dados, os resultados passaram a ser fornecidos automaticamente, o que caracteriza o tempo real proposto para o sistema. O fluxograma da rotina das várias operações executadas pelo SMAGS ou Gerente Virtual, está ilustrado na figura 12, onde também estão registrados, em forma de resumo, as principais operações. Início da rotina de avaliação acadêmica bimestral Um usuário privilegiado deve abrir uma aplicação de extração de dados para realizar várias consultas ao sistema acadêmico Avaliação de turmas/professores Avaliação de alunos O índice de aprovação é dado pelo número de alunos aprovados sobre o número de alunos reprovados O índice de aprovação é dado pelo número aprovações sobre o número de reprovações do aluno A média c o n s i d e r a a m é d i a d e t o d o s o s alunos da turma A média é c a l c u l a d a c o m b a s e n a s n o t a s bimestrais do aluno A frequência é a m é d i a d e f r e q u ê n c i a d e todos os alunos da turma A frequência c o r r e s p o n d e a o t o t a l bimestral de presenças O coeficiente de rendimento é calculado conforme o critério da instituição O usuário privilegiado deve consultar o banco de dados para identificar turmas/professores que apresentam índice de aprovação semestral, média ou frequência bimestrais abaixo de parâmetros pré-estabelecidos para avaliação das turmas/professores Existe alguma turma/professor com desempenho abaixo do desejado e ainda não identificado no bimestre atual? Sim O usuário deve elaborar gráficos do histórico dos últimos semestres sobre o desempenho de cada turma identificada na pesquisa, para encaminhá-los com uma anotação para os professores e coordenadores correspondentes a cada turma que está com desempenho insatisfatório Não O usuário privilegiado deve consultar o banco de dados para identificar alunos que apresentam índice de aprovação, coeficiente de rendimento, média ou frequência abaixo de parâmetros pré-estabelecidos para avaliação de alunos Existe algum aluno com desempenho abaixo do desejado e que ainda não foi identificado no bimestre atual? Sim O usuário deve elaborar gráficos do histórico dos últimos semestres sobre o desempenho de cada aluno identificado na pesquisa, para encaminhá-los com uma anotação para os professores e coordenadores do curso de cada aluno que está com desempenho insatisfatório Não O usuário deve entregar os resultados obtidos na avaliação ou arquivá-los em um histórico para uso futuro Fim da rotina de avaliação acadêmica bimestral Figura 11 – Fluxograma com a rotina de Avaliação ou Acompanhamento Acadêmico na forma tradicional. Início da rotina diária do gerente virtual de avaliação acadêmica Existe algum novo lançamento bimestral de informações sobre alunos, turmas ou professores? Não 1 Sim O gerente virtual executa várias consultas ao banco de dados do sistema acadêmico para avaliar o desempenho de turmas, professores e alunos Existe alguma turma/professor com desempenho insatisfatório, ainda não identificados no bimestre atual? O gerente virtual elabora gráficos do histórico dos últimos semestres sobre o desempenho de cada turma identificada na pesquisa e encaminha-os Sim automaticamente, com uma mensagem, para os professores e cordenadores correspondentes a cada turma que está com desempenho insatisfatório Não Existe algum aluno com desempenho insatisfatório ainda não identificado no bimestre atual? Sim O gerente virtual elabora gráficos do histórico dos últimos semestres sobre o desempenho de cada aluno identificado na pesquisa e encaminha-os automaticamente, com uma mensagem, para os professores e cordenadores do curso de cada aluno que está com desempenho insatisfatório Não 1 Fim da rotina diária do gerente virtual de avaliação acadêmica FIGURA 12 - Fluxograma da Rotina de Avaliação ou Acompanhamento Acadêmico. 5.3 Análises dos Resultados da Aplicação em Avaliação ou Acompanhamento Acadêmico A configuração ou treinamento do SMAGS para o caso específico em tela, com sucesso, considerando as respostas obtidas, resultando em um Sistema Especialista para os fins propostos, testou a eficácia e a acessibilidade de um dos módulos do sistema, extrator de dados, denominado Automa Builder, desenvolvido e integrado ao SMAGS, dando origem ao Agente Explorador de Dados, o qual permite a configuração para acesso a diferentes bancos de dados, conforme está demonstrado na tela contida na figura 13 e que no caso do sistema acadêmico do CEFET-PR é o oracle, hoje, um dos mais usados nos sistemas informatizados. O fato de o sistema ter percebido os dados lançados e processado, testa também a eficácia na parte de percepção, atuação e base de conhecimento do ambiente do Agente Explorador de Dados e sua integração com os demais módulos do SMAGS que passam a fornecer informações a partir dos dados processados. O fato de o sistema ter percebido os dados lançados e processado também testa a eficácia do Agente de Tarefas Agendadas e o bom trânsito dos eventos de: notificação genérica, notificação de tarefas agendadas, transmissão de dados, transmissão de mensagens ou qualquer outro tipo de aviso na forma mostrada na figura 14 (escrita e/ou sonora), testando ainda a eficácia dos eventos de controle de conexão, execução de operações, Agente de Mensagens e do Agente de Conexão de Usuários. Figura 13 - Tela de configuração de banco de dados de sistemas Figura 14 - Tela de entrega de mensagens escrita e sonora O gráfico da figura 15, mostra que após um período de tempo inicial necessário para configuração/treinamento do sistema, todas as alterações de informações inseridas no ambiente sob o domínio do sistema são percebidas pelo Agente de Tarefas Agendadas, que age também como um contestador de mudança de estado, cujos dados são processados e utilizados conforme previamente estabelecido, fornecendo informações em tempo real para todos os pontos do ambiente gerenciado. As figuras 16 e 17 mostram gráficos e relatórios de desempenho de alunos, testando e comprovando o bom funcionamento do sistema na parte envolvendo o Agente Explorador de Dados, com o Automa Builder e o Agente de Comunicação de Dados. T E Gráfico do tempo e trabalhos M na forma tradicional p o Gráfico do tempo e trabalhos com o SMAGS 0 Trabalhos/tarefas executados e dados comunicados Figura 15 – Gráfico do Tempo/Trabalhos executados na forma tradicional e com o SMAGS Figura 16 - Gráfico de desempenho de alunos Figura 17 - Relatório de desempenho de alunos 5.4 - Outras Aplicações O Sistema também pode ser aplicado na rotina diária de um Gerente Financeiro, após um período inicial de tempo destinado à configuração/treinamento do sistema, os trabalhos passarão a ser executados automaticamente, cujos resultados levaram às mesmas considerações da aplicação anterior. Do exposto, percebe-se que o Sistema apresenta características genéricas, podendo ser aplicado em qualquer área ou setor, quer sejam: recursos humanos, educação, comércio, indústria e outros. CAPÍTULO VI 6. – CONCLUSÕES E RECOMENDAÇÕES 6.1 – Conclusões Sistemas multi-agentes, utilizando técnicas de Inteligência Artificial Distribuída, melhoraram e facilitaram a comunicação de dados entre sistemas, conforme ficou demonstrado nos testes e, por conseqüência, entre setores de uma instituição, potencializando as ações de pessoas envolvidas em níveis decisórios. O tempo real, após um período inicial de tempo destinado à configuração/treinamento, conforme ficou demonstrado nos testes, permite que as ações sejam implementadas sem perda de tempo, o que ocorre em situações normais. A utilização da plataforma Delphi demonstrou atender às necessidades a que se propõe, além da operacionalidade em ambientes Windows e boa performance, processando e fornecendo as informações, com equipamentos já citados e de uso corrente. No protocolo DCOM, a comunicação entre componentes não dependem da linguagem em que foram desenvolvidos, sendo que até linguagens de outros fabricantes podem estar abrigadas em estações, utilizando diferentes sistemas operacionais. Este o motivo pelo qual foi o protocolo escolhido, além de trabalhar com objetos distribuídos, em consonância com a linha de sistemas distribuídos deste trabalho. A tecnologia de objetos distribuídos vêm solucionar o problema de comunicação entre softwares heterogêneos. A orientação a objetos permite a reutilização e a recombinação de códigos. Esta vantagem é ainda maior quando se trata de objetos distribuídos, uma vez que, além de poder utilizar um objeto já existente, dispensando a necessidade de criar novamente um mesmo objeto, não é preciso amarrar-se à linguagem a qual ela tenha sido desenvolvida. O objeto pode ainda ser personalizado de acordo com a aplicação e a necessidade do programador e, então, utilizado por sistemas diferentes, tendo uma “imagem” distinta para cada um deles, mas com o mesmo fim. Pode-se, ainda, citar as vantagens de uma maior agilidade e o não sobrecarregamento de um único computador. A utilização da plataforma Delphi demonstrou atender às necessidades a que se propõe, além da operacionalidade em ambientes Windows e boa performance com equipamentos de uso corrente. A ferramenta desenvolvida para extrair dados de bancos de dados genéricos, também demonstrou ser eficiente e eficaz em diferentes situações, conforme ficou demonstrado nos testes. O desenvolvimento do sistema englobou várias formas de controle de gestão, visando disponibilizar aos seus usuários uma poderosa ferramenta de apoio ao processo de tomada de decisão. Os resultados obtidos nos testes, demonstraram a sua eficácia no apoio para o gerenciamento de diferentes tarefas, com ganhos de tempo e qualidade nos serviços, demonstrando que o objetivo principal foi alcançado. 6.2 – Recomendações Em aprimoramentos futuros, recomenda-se capacitar o sistema com métodos de aprendizagem mais sofisticados e uma abrangência mais ampla na rede, através de uma maior interatividade entre agentes e a inserção de outras técnicas de IAD, tais como: redes neurais, algoritmos genéticos, lógica fuzzy e outras, que poderão solucionar uma das limitações deste trabalho, com a auto-aprendizagem. Recomenda-se, também, o estudo da performance dos princípios aqui aplicados, com outras plataformas de programação, tais como Java, que poderá resultar em uma abrangência maior em nível de sistemas operacionais. Finalmente, recomenda-se também o estudo de melhorias, tais como: dotar os menus de recursos que descrevam ainda melhor quais os passos a serem seguidos, para facilitar ainda mais a programação do sistema para casos específicos, proporcionando ao usuário comum uma maior acessibilidade a tudo o que o sistema oferece. 7. - REFERÊNCIAS BIBLIGRÁFICAS BAYLOR-A, Beyond Butler: inteligent agents as mentors. Journal-of-EducationalComputing-Research. Vol.22, no.4; 2000; Florida State Univ., Tallahassee, FL, USA, 2000. DELPHI, Borland 4.0: passo a passo lite/Núcleo Técnico e Editorial Makron Books. São Paulo: Makron Books, 1999. BOUNABAT-B et al. Designing multi-agent reactive systems: a specification method Based on reactive decisional agents. Ecole Nat. Superieure d Inf. Et d Analyse des Syst., Rabat, Morocco, 1999. BRADSHAW, JEFFREY M. (Ed.). Software Agents. Cambridge: MIT Press., 1997. CANTÚ, Marco. Borland Delphi 5.0: “A Bíblia” – Dominando o Delphi 5. Makron Books, 1999. Currenly Offered functionality inthe information society & a prediction of (near-) future Developments. Thesis, Tilburg University, The Netherlands, July 1996. http://www.hermans.org/agents . CHEUNG, Y. C.; HULL JR, S. S. Pattern recognition using a bipolar associative memory. Proceeding 31s t Midwest Symposium on Circuits and Systems, August, 1988. DURKIN, John. Expert Systems: Design and Development. Prentice Hall, Englewood Cliffs New Jersey, USA, 1994. DURKIN, John. Expert Systems: Aview of the field. IEEE Expert, April 1996. FAUSETT, Laurene V. Fundamentals of Neural Networks: Architectures, Algorithms, and Applications. Prentice Hall, New Jersey, USA, 1994. FOX-J. Guardian agents: a role for artificial intelligence in safety-critical systems. Imperial Cancer Res. Fund Labs., London, UK, 2000. FREEDMAN, Roy S.; ROBER, A. Klein; LEDERMAN, Jess. Artificial Intelligence in the Capital Markets, Chicago: Irwin Press, 1995. GIDDENS, Antony. As consequências da modernidade. SP: ed. UNESP, 1991. GOLDBERG, David E. Genetic Algorithms: in search, opytimizations & machine Learning. New York: Addison-Wesley Publishing Company, 1989. GOONATILAKE, Suran; TRELEAVEN, Philip. Intelligentent Systems for finance and Busines. New York: John Wiley & Sons, 1995. HAYKIN, Simon. Neural networks: a comprehensive foundation. New York: MacMillan-IEEE Press, 1994. HERMANS, Björn. Intelligent Software Agents on the Internet: na inventory of http://www.inf.ufsc.br/~mauro/INE6102/Aula2?sld002.htm. Capturado em 0l-05-2000. http://www.lcmi.ufsc.br/~loureiro/pesquisa.html. Capturado em 21/04.2000. http://www.inf.ufsc.br/~jbosco/adriana/links.htm. Capturado em 04/05/2000. http://www-cia.mty.itesm.mx/~lgarrido/Repositories/IA/agents.html. Capturado em 24-08-2000. KASABOV, Nikola K.. Fundations of Neural Networks, Fuzzy Systems, and Knowledge Engineering. Cambridge, Massachusetts: MIT Press, 1996. KELLER, Robert. Tecnologia de Sistemas Especialistas: Desenvolvimento e Aplicação. São Paulo: Makron Books do Brasil, 1991. KHOSLA, Rajiv; DILLON, Tharam. Engineering Intelligent Hibrid Multi-Agent Systems. Kluwer Academic Publisher, 1997. KUNSTIC-M et al. Mobili agents as network management problem solvers. Dept. fo Telecommun., Fac. Of Eletr. Eng. & Comput., Zagreb, Croatia, 1999. LEMOS, David. A utilização de sistemas especialistas para o diagnóstico de uso do solo e Seus limites de ocupação. Florianópolis, 1997. Dissertação (Mestrado em Engenharia de Produção) – Universidade Federal de Santa Catarina. LEVY, Pierre. As Tecnologias da Inteligência: o futuro do pensamento na era da Informática. São Paulo: Editora 34, 1998. LIMA, A. et al; Objetos Distribuídos – DCOM, 1999. Disponível on line em: URL: http://www.inf.pucrs.br/~arruda/artigos/esp cs 991/grupo02/index.htm MATTELART, Armand. Comunicação-mundo. Ed Vozes, 1996. MEDSKER, L. Hybrid Intelligent Systems. Boston: Kluwer Ac Pub., 1995. MICHAEL WOOLDRIDGE 1 and NICHOLAS R. JENNINGS.2 Intelligente agents: Theory And practice–The knowledge Emgineering Review, vol 10:2, 1995. 1 Departamente of computing, Manchester Metropolitan University, Chester Street, Manchester M1 5GD, UK. 2 Departament Of Eletronic Engeneering, Queen Mary & Westfield College, Mile and road, London E1 4NS, UK. MARCIC-I. Real-timecollaboration heterogeous computing environments. Dept. of Electr. & Comput. Eng., Rutgers Univ., Piscataway, NJ, USA, 2000. MIYAZAKI-K et al. Rationaly of reward sharing in multi-agent reinforcement learning. Dept. of Comput. Intelligence & Syst. Sci., Tokio Inst. Of Technol., Japan, 1999. MORELLI, Eduardo Terra. Oracle 8, SQL, PL/SQL e Administração. São Paulo: Érica 2000. MODRO, Nilson Ribeiro. Sistema Inteligente de Monitoramento e Gerenciamento Financeiro para Micro e Pequenas Empresas. Florianópolis, 2000. (Dissertação de Mestrado) - UFSC. NISSEN, Marks. Intelligent Agents: A technology and business application Analysis. http://hass.berkeley.edu/~heilmann/agents/#exnum, November, 1995. OHGURO-T et al. Gleams of people: monitoring the presence of people with multiagent Architecture. NTT Commun. Sci. Labs., Kyoto, Japan, 1999. PARAISO, Emerson Cabrera, “Proposta de um Ambiente Multi-Agente para monitoração e Controle de Processos Industriais”, Dissertação de Mestrado, Cefet-PR, 1997. POMERANTSEVA-GN. Application of models of interacting agent for systems simulation of social processes. Kiev polytech. Inst., Ukraine, 1999. POLLONI, Enrico Giulio Franco. Administrando Sistemas de Informação. São Paulo: Futura, 2000. RUSSEL, Stuart, NORVIG, Peter. Artificial Intelligence: A Modern Approach. New Jerssey, USA: Prentice Hall, 1995. SELF-El-Nasr-M et al. FLAME – Fuzzy Logic Adaptive Model of Emotions. Inst. of Learning Sci., Northwestem Univ., Evanston, IL, USA, 2000. TAFNER, Malcon; Xeres, Marcos de; Filho, Ilson W. R.. Redes Neurais Artificiais: Introdução e princípios de neurocomputação. Blumenau: Editora da FURB, 1995. TIFFIN, John e Rajasingham, L. In search on the virtual class. Londres: Routledge, 1995, Cap. 2 e 3, p. 19-70. . TAKADAMA-K et al. How to design good rules for multiple learning agents in scheduling problems. Process. Res. Labs., ATR Human Inf., Kyoto, Japan, 1999. TIDHAR-G et al. Using intelligent agent in military simulation or “using agents Intelligently”. Defence Sci. & Tecchnol. Organ., Melbourne, Vic., Australia, 1999. VAN-Lent-M et al. Intelligent agents in computer games. Artificial Intelligence Lab., Michigan Univ., Ann Arbor, MI, USA, 1999. Anexo I