65ª Reunião Anual da SBPC
A. Ciências Exatas e da Terra - 2. Ciência da Computação - 7. Linguagens de Programação
GERENCIAMENTO DE REDES COM AGENTES MÓVEIS: IMPLEMENTAÇÃO E ANÁLISE COM CLONAGEM DE AGENTES
CARLOS JOSÉ CAVALCANTE JUNIOR - CENTRO UNIVERSITÁRIO CESMAC
MSc. ADILSON JORGE DOS SANTOS - CENTRO UNIVERSITÁRIO CESMAC
FERNANDO ANTÔNIO GOMES DANTAS PINTO - CENTRO UNIVERSITÁRIO CESMAC
INTRODUÇÃO:
Estudos realizados previamente mostram que uso de agentes inteligentes de software minimiza estes impactos, tornando-se uma boa alternativa para o gerenciamento, com visto em Velosso et al. (2002). Nenhum destes trabalhos explorou a capacidade básica da clonagem de agentes. Segundo Uto (2003), um agente inteligente móvel é um agente de software dotado da capacidade de aprender (de forma cooperativa) com outros agentes. Capacitado com a mobilidade baseado em regras, estes agentes podem atuar em diferentes localizações da rede.
A clonagem é uma capacidade inerente aos agentes de software, tendo a sua implementação vista na forma de Aglet (LANGE; OSHIMA, 2003). Do ponto de vista operacional, segundo Ferrari (2004), Aglets é uma biblioteca Java para o desenvolvimento de agentes móveis e que possui no seu ciclo de vida o evento da clonagem (cloning), ou seja, um Aglet que nasce com as características do seu Aglet ancestral, mas com seu próprio estado.
OBJETIVO DO TRABALHO:
a) Analisar a API Aglets; b) Estudar a implementação de agentes inteligentes de software; c) Implementar agentes inteligentes móveis clonáveis.
MÉTODOS:
Para esse trabalho foi necessário pesquisar em artigos da área, com critério quanto ao ano de publicação e autores com um bom fator de impacto. A escolha de livros da área foi baseada nos mais utilizados, mediante as citações dos principais artigos.
Toda a infraestrutura utilizada foi instanciada a partir de um conjunto de bibliotecas (Frameworks) para o desenvolvimento, execução e monitoramento deste agente, denominados ASDK (Agent Software Development Kit), versão 2.0.2, disponível em (http://sourceforge.net/projects/aglets/). A IDE para desenvolvimento dos agentes utilizados foi o Eclipse Juno 4.2.0, disponível em (http://www.eclipse.org/juno/), onde auxiliou no desenvolvimento dos agentes móveis. Foram executadas várias instâncias do Tahiti para acompanhamento dos processos de execução dos agentes.
Além destes recursos, foi alocado o recurso de hardware com as seguintes configurações: notebook HP dm1-3270br, com 4GB de memória RAM, processador AMD E-350, Sistema Operacional GNU/Linux Ubuntu 12.04 LTS 64-bit. As demais máquinas que compõem a rede de comunicação foram simuladas por nodos terminais emulados com mesma configuração de Sistema Operacional acima citado. Uma das características do material adotado é que foram executados por plataforma de software de distribuição gratuita, viabilizando a sua adoção para demais pesquisas futuros.
RESULTADOS E DISCUSSÃO:
Um agente possui uma arquitetura e é ela que define como o software vai se comportar no ambiente. Desta forma, quando é criado um novo agente é necessário herdar de uma classe superior, a classe Aglet que está contida no pacote com.ibm.aglet.
Além da herança, existem também os métodos principais onde foram executadas as instruções ao agente. Em Java esses blocos serão sobre escrito da classe herdada, conhecido como Override. A classe Aglet se trata de uma classe Abstrata, ou seja, ela se comporta como um modelo para as próximas implementações, onde será feito o Override dos métodos. O método run comporta-se como um bloco principal de instrução, após passar pelos estados anteriores, ele é então chamado e executado. “O método run é chamado toda vez que o aglet chega ou é enviado ao um novo contexto” Danny B. Lange (1997). Desta forma o método run se torna a thread principal a ser executada.
Para começar a usar o agente é necessário criar-lo primeiro, e neste procedimento estão envolvidos também alguns métodos associados. Para esse caso existe um método a ser considerado ao criar um aglet, o método onCreation(Object init). Onde ele será chamado somente uma vez em todo o ciclo de vida do aglet. Em outras palavras, quando uma nova instancia é gerada esse método será invocado primeiro. Existe também a situação quando o aglet é destruído, com o método dispose(). O mesmo principio acontece para a situação de clonagem, quando é invocado o método clone().
CONCLUSÕES:
Com esses estudos realizados mostraram que a implementação dos agentes móveis clonáveis é possível baseado na API Aglet da IBM. Ficando para esta etapa da pesquisa o estudo do modelo que irá garantir uma mobilidade eficiente, baseado em regras. Dessa forma, este trabalho será baseado na construção de agentes móveis, onde a capacidade da clonagem será explorada, junto a uma estratégia de transferência de informações das unidades gerenciadas (cliente) à unidade gerenciadora (gerente) num modelo centralizado.
Este modelo terá como base métodos que garantam a otimização dos custos de transporte dos agentes (e as informações coletadas da rede). Com base na Teoria dos Transportes, Andrade (2004) cita que, dada uma estrutura de possíveis fontes de informação, a rede de caminhos possíveis de transporte e os destinos destas informações, o objetivo da modelagem é determinar o carregamento da rede de transporte que minimize o custo total do mesmo.
Palavras-chave: Aglet, Agentes móveis, Gerenciamento de redes.