You are on page 1of 73

Aurlio Ricardo Batu Maic

UMA ABORDAGEM PARA DETECO DE HARDWARE E SOFTWARE USANDO AGENTES MVEIS

Trabalho de Concluso

CRUZ ALTA RS, 2009

Aurlio Ricardo Batu Maic

UMA ABORDAGEM PARA DETECO DE HARDWARE E SOFTWARE USANDO AGENTES MVEIS

Trabalho de Concluso de Curso apresentado ao Curso de Cincia da Computao da Universidade de Cruz Alta, como requisito parcial para a obteno do Ttulo de Bacharel em Cincia da Computao.

Orientador: Profo Lus Cassiano Goularte Rista

CRUZ ALTA RS, 2009

Universidade de Cruz Alta UNICRUZ Curso de Cincia da Computao

UMA ABORDAGEM PARA DETECO DE HARDWARE E SOFTWARE USANDO AGENTES MVEIS

Elaborado por

Aurlio Ricardo Batu Maic

Como requisito parcial para obteno do ttulo de Bacharel em Cincia da Computao.

Comisso Examinadora:

Prof. M. Sc. Lus Cassiano Goularte Rista /Orientador ________________/UNICRUZ Prof. M. Sc. Lus Claudio Gubert_________________________________/UNICRUZ Prof. M. Sc. Tas Cristine Appel Colvero___________________________/UNICRUZ

Cruz Alta, _____ de _________________ de 2009.

A nova fonte de poder no o dinheiro nas mos de poucos, mas informao nas mos de muitos. (John Naisbitt)

AGRADECIMENTOS

Primeiramente a Deus, pela vida e por permitir a conquista desse objetivo, A minha famlia, principalmente minha me pela compreenso, apoio nas horas difceis e incentivo constante. A minha namorada Mara pelo apoio, compreenso e ajuda que me transmitiu muito amor e fora para permanecer firme ao longo dessa jornada desafiadora. A instituio onde trabalho UNICRUZ que me possibilitou concluir um curso de Graduao. Aos colegas de trabalho do CTEC, pela troca de conhecimento, pela convivncia e contribuies para elaborao deste trabalho. Aos Professores, Cassiano Rista, Daniel Pezzi no apenas pela orientao, mas tambm pela dedicao, apoio e ateno. Em fim a todas as pessoas que me auxiliaram direta ou indiretamente.

RESUMO
UMA ABORDAGEM PARA DETECO DE HARDWARE E SOFTWARE USANDO AGENTES MVEIS

Autor: Aurlio Ricardo Batu Maic Orientador: Profo. M. Sc Cassiano Rista

Os Sistemas de Informao tm atuado nas empresas aumentando a competitividade frente aos desafios cada vez maiores no contexto atual globalizado, com isso cresce cada vez mais sua infra-estrutura tecnolgica empresarial, acelerando os processos internos, o que permite um diferencial competitivo. Para manter o controle e o gerenciamento sobre esta nova realidade so necessrias novas tecnologias nas corporaes. O uso de agentes de software visa proporcionar agilidade nesse gerenciamento, atuando como ferramenta, de maneira a auxiliar nas tarefas de controle da organizao. Dentro desse contexto, se torna um desafio cada vez maior para os gestores de tecnologia da informao (TI) manter o controle do parque computacional. O presente trabalho baseou-se no desenvolvimento de um sistema experimental de deteco de hardware e software usando o paradigma de agentes mveis para automao de tarefas pertinentes a equipe de TI. Para alcanar os objetivos foi usada a linguagem de programao Java e a plataforma Simple Agent Communication Infrastructure (SACI) para implementao. Os resultados obtidos validam a aplicao do modelo, criando possibilidades de agregao de novas caracterstica e funcionalidades. PALAVRAS-CHAVE: Tecnologia, Gerenciamento, Agentes Mveis.

ABSTRACT
A APPROACH FOR HARDWARE DETECTION AND SOFTWARE USING MOBILE AGENTS

Author: Aurlio Ricardo Batu Maic

Advisor: Prof. M. Sc. Prof. M. Sc. Cassiano Rista

The information systems have been operating in companies increasing the competitiveness forefront the challenges every time higher in the actual globalized context, along with this increases each time more its technological enterprise infrastructure accelerating the inner processes allowing a differential competitiveness. To keep control and the management on this new reality new technologies are necessary in the corporations. The use of software agents aim to afford agility in this management, acting as a tool, in a way to help the control tasks of the organization. Within this context it becomes, each time, an increasingly challenge to the IT overseers to keep some control on the computational lay by. This project is based on developing of a hardware detection tool and software using mobile agents of tasks apropos to the IT team. In order to reach the goals it was used Java programming language and a platform Simple Agent Communication Infrastructure (SACI) for implementation. The obtained outcomes validate the applicability of the dummy creating possibilities of aggregation of new traits like artificial intelligences techniques. KEYWORDS: Tecnology, Management, Mobile Agents.

LISTA DE FIGURAS

Figura 1- Utilizao dos sistemas de informao ..................................................... 19 Figura 2 - Representao grfica de um Sistema de Informao ............................ 22 Figura 3 - Componentes da TI .................................................................................. 25 Figura 4 - Resumos de problemas de tecnologia da informao ............................. 26 Figura 5 - Estrutura bsica de um agente mvel ...................................................... 34 Figura 6 - Processo de migrao de um agente mvel ............................................ 37 Figura 7 - Formato de uma mensagem KQML ......................................................... 45 Figura 8 - Exemplo de mensagem KQML ................................................................. 46 Figura 9 - Ciclo de vida de um agente ...................................................................... 47 Figura 10 - Ambiente da soluo computacional ...................................................... 50 Figura 11 - Ambiente da mobilidade ......................................................................... 50 Figura 12 - Entidade Relacionamento da base de dados utilizada ........................... 54 Figura 13 - Inicializando a plataforma SACI atravs SACI.bat ................................... 57 Figura 14 - Iniciando a plataforma SACI atravs launcherd.bat .............................. 58 Figura 15 - Inserindo o endereo destino dos agentes ............................................ 58 Figura 16 - Momento que foi criado o agente no host remoto ................................. 59 Figura 17 - Momento em que o agente retorna com a informao .......................... 60 Figura 18 - Cdigo 1 :Trecho onde so criados os agentes mveis ........................ 69 Figura 19 - Cdigo 2: Parte do cdigo do agente mvel ......................................... 70 Figura 20 - Cdigo 3: Continuao do cdigo do agente......................................... 71 Figura 21 - Cdigo 4: Parte do cdigo da classe systemInf................................... 72 Figura 22 - Cdigo 5: Funes para obter a memria livre e total........................... 73

LISTA DE ABREVIATURAS

ACL Agent Communication Language API Aplication Programming Interface DLL Dinamic Link Library ER Entidade Relacionamento FIPA Foundation for Intelligent Physical Agents HTTP Hiper Text Transfer Protocol IA Inteligncia Artificial IP Internet Protocol JADE Java Agente Developmente Framework JNI Java Native Interface JVM Java Virtual Machine KQML Knowledge Query Manipulation Language MAN Metropolitan Area Network OMG Object Management Group SACI Simple Agent Communication Infrastructure SAD Sistema de Apoio a Deciso SAE Sistema de Apoio a Executivo SI Sistema de Informao SIG Sistema de Informaes Gerenciais SNMP Simple Networck Manager Protocol SPT Sistema de Processamento de Transaes SQL Structure Query Laguage

SSD Sistema de Suporte a Deciso STC Sistema de Trabalhadores do Conhecimento TCP Transmission Control Protocol TI Tecnologia da Informao UML Unified Modeling Language URL Universal Resource Locator.

SUMRIO

1 INTRODUO...................................................................................................... 1.1 Objetivo .......................................................................................................... 1.2 Objetivos especficos...................................................................................... 1.3 Justificativas.................................................................................................... 1.4 Trabalhos Correlatos...................................................................................... 1.5 Organizao do Trabalho.............................................................................. 2 SISTEMAS DE INFORMAO SI ................................................................... 2.1 Classificao dos Sistemas de Informao................................................... 2.1.1 Sistemas empresariais bsicos.................................................................. 2.1.2 Sistemas de suporte deciso (SSD)....................................................... 2.1.3 Sistemas de suporte executivo (SSE) ....................................................... 2.1.4 Sistemas de informao gerencial (SIG) ................................................... 2.2 SI e Tecnologia da Informao...................................................................... 3 TECNOLOGIA DA INFORMAO..................................................................... 3.1 Gesto Estratgica de TI............................................................................... 3.2 Dificuldades Para o Uso da TI....................................................................... 3.3 Principais Vantagens do Uso da TI............................................................... 4 AGENTES........................................................................................................... 4.1Caractersticas............................................................................................... 4.2 Classificao ................................................................................................ 4.3 Agentes Mveis ............................................................................................ 4.3.1Caractersticas dos Agentes Mveis........................................................... 4.3.2 Terminologia Bsica ................................................................ 4.3.3 Estrutura Dos Agentes Mveis........................................................ 4.3.4 Estrutura da Migrao................................................................................ 4.4 Ambientes e plataformas para construo de agentes mveis..................... 4.4.1 Agent Building and Learning Enviroment (ABLE)...................................... 4.4.2 AgentBuilder............................................................................................... 4.4.3 Tracy.......................................................................................................... 4.4.4 Jade............................................................................................................ 4.4.5 Saci............................................................................................................ 4.4.6 Soma..........................................................................................................

13 14 14 15 15 17 18 19 20 20 20 21 21 24 25 25 27 28 29 30 32 32 33 33 35 37 37 38 38 38 39 39

4.4.7 Voyager...................................................................................................... 4.4.8 Gossip......................................................................................................... 4.4.9 FIPA-OS..................................................................................................... 4.5 Vantagens dos agentes mveis.................................................................... 4.6 Comunicao dos Agentes Mveis............................................................... 4.6.1 Knowledge query and Manipulation Language KQML............................ 4.6.2 Foundation for Intelligent Physical Agents (FIPA) ACL.............................. 4. 7 Simple Agent Communication Infrastructure (SACI).................................... 4.7.1 Mobilidade.................................................................................................. 4.7.2 Servios Oferecidos................................................................................... 5 MODELO PROPOSTO....................................................................................... 5.1 Ambiente do experimento.............................................................................. 5.1.1 Criao dos Agentes.................................................................................. 5.1.2 Implementao do agente.......................................................................... 5.1.3 Execuo das tarefas pelo agente no destino........................................... 5.1.4 Implementao da DLL.............................................................................. 5.1.5 Armazenamento dos dados........................................................................ 5.1.6 Instalao das ferramentas....................................................................................... 5.2 Estudo de caso.............................................................................................. 5.2.1 Testes realizados....................................................................................... 5.3 Avaliao dos resultados sobre agentes....................................................... 6 CONSIDERAES FINAIS........................................................................ 6.1 Concluses.................................................................................................... 6.1.1 Contribuies Cientficas............................................................................ 6.2 Trabalhos Futuros......................................................................................... 7 REFERNCIAS................................................................................................... ANEXOS.................................................................................................................

39 40 40 40 44 44 46 46 48 48 49 49 51 51 52 52 53 54 55 57 60 62 62 63 63 65 69

1 INTRODUO

O crescimento constante da infra-estrutura computacional de uma corporao face aos desafios que lhes so colocados, bem como o acelerado crescimento das redes de computadores vem causando um grande impacto na rea de gerenciamento tecnolgico, fazendo com que sejam desenvolvidas novas solues que resolvam as necessidades dos gerentes de TI. A descentralizao dos ambientes computacionais, o crescimento e a diversificao dos servios e a heterogeneidade dos equipamentos de rede introduzem uma complexidade cada vez maior no que diz respeito ao controle e monitoramento desses ambientes (ELEFTHERIOU, 2000). Embora no cenrio tecnolgico empresarial j tenham muitas solues de gerenciamento eficientes e modernas como (MOURA, 2007) e (LIESENBERG, 2004), surgem cada vez mais novas necessidades como automao em algumas tarefas. Essas tarefas so consideradas simples, mas acabam gerando custo desnecessrio, pois delegam tempo e uso de pessoal. Esses custos podem ser minimizados adotando-se uma soluo de automao que auxilie os gestores de TI bem como suas equipes a realizar esse gerenciamento com maior rapidez e eficcia. Mais do que nunca o uso de computadores como ferramenta bsica de trabalho vem crescendo velozmente e pode-se destacar este fato como um fator positivo, pois melhora a qualidade e o desempenho dos trabalhos, aumentando a produo das empresas, porm, acarreta em uma dependncia forte, gerando com isso dificuldades cada vez maiores de gerenciamento. Nesse contexto se fazem necessrios alguns controles, como gerncia de recursos de hardware (o que h instalado e onde esto esses recursos), informaes de rede em mbito de configuraes de rede (ip, endereo fsico) e softwares instalados nas estaes de trabalho, bem como atualizaes em novas tecnologias conforme a empresa necessita. Sistemas de agentes dentro do campo da inteligncia artificial, redes, banco de dados e sistemas distribudos no um conceito novo e tem suas origens de estudos e pesquisas h mais de 25 anos. Na atualidade j no so apenas tpicos

14

de pesquisa, mas se tornou um importante assunto no meio acadmico e em aplicaes comerciais e industriais. Como consequncia disso, vrias metodologias, arquiteturas e frameworks j foram criadas para facilitar o desenvolvimento de agentes de software (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007). A abordagem em agentes mveis uma tecnologia que prope a criao de softwares com uso de inteligncia, com recursos de mobilidade, com caracterstica de desempenhar funes em nome de outro. Apresenta funcionalidades favorveis ao contexto estudado. Possui caractersticas como independncia de plataforma o que potencializa a portabilidade do software, possibilitando que um sistema de informao com variadas plataformas possa adotar uma soluo de agentes. Observando-se as caractersticas do problema, se requer solues com flexibilidade, uso racional da largura de banda e processamento. Apresenta-se adequada a escolha da tecnologia de agentes mveis para ser usado na implementao da abordagem proposta, que visa coletar informaes em pontos ou terminais distintos de uma rede.

1.1

Objetivo geral Percorrer uma rede de computadores atravs da capacidade de mobilidade

de cdigo do agente para acessar os hosts coletando informaes no que se refere a hardware e software existentes. 1.2 Objetivos especficos

Utilizar da mobilidade de cdigo atravs de agentes mveis para deteco de hardware e software em ambiente distribudo;

Relacionar os agentes de softwares que sejam adaptveis para o contexto estudado;

Fazer um estudo de caso para avaliar sua viabilidade, aplicandoa em uma rede.

15

1.3

Justificativas No passado, quando os grandes computadores ficavam trancados em

salas totalmente isoladas, onde os dados eram passados pelos profissionais responsveis pela execuo do processamento, era possvel gerenciar o ambiente computacional de forma simples e manual, mas com a popularizao dos desktops, a implantao de rede interligando todos os setores e a crescente dependncia da tecnologia da informao para alcanar metas nos negcios, torna-se imprescindvel a adoo de ferramentas que permitam gerenciar esse novo contexto tecnolgico
(SANTANA, ANDR E FREITAS, GUSTAVO, 2006).

Devido ao crescimento dos processos de TI as empresas enfrentam novos desafios impostos pelo aumento da complexidade de sua rea de tecnologia. Nesse contexto empresarial surge a necessidade de gerenciamento, com a finalidade de agilizar o controle da infra-estrutura computacional, justificar investimentos em novas tecnologias, e ainda, a partir desse controle pode-se constatar quais mquinas precisam de upgrade, entre outros. Nesse contexto, este trabalho prope a utilizao de agentes mveis para ser utilizado como ferramenta principal para gestores de TI e suas equipes.

1.4

Trabalhos Correlatos

1.4.1 Simulao Multi-Agente em Gesto de Projetos de Software em Ambientes de Programao Extrema

Alves (2009), nesta dissertao, aborda a dificuldade de prever-se o desempenho dos recursos humanos em um processo de desenvolvimento de software em um ambiente de Programao Extrema (XP) e prope uma soluo com potencial para minimizar esse problema. Especificamente, o problema a ser tratado neste trabalho, consiste em melhorar as previses dos gerentes de projeto com relao ao desempenho dos recursos humanos na gerao de valor para o negcio.

16

1.4.2 Arquitetura de Gerenciamento de Redes Baseado em Agentes Mveis Mutveis

Moura (2007), prope a arquitetura que combina as principais arquiteturas de gerenciamento existentes como Simple Networck Manager Protocol (SNMP) com o uso dos agentes mveis mutveis desenvolvidos utilizando a arquitetura Java Agent Development Framework (JADE) e a plataforma JavaTM. Essa arquitetura agrega caractersticas das atuais arquiteturas, propondo mtodos mais eficientes e menos complexos que podem ser aplicados em gerenciamento de rede, reduzindo a interveno humana, com caractersticas de auto-gerenciamento.

1.4.3 Uma Arquitetura Baseada em Sistemas Multiagentes para Simulaes em Geoprocessamento

Segundo Grigoletti (2007), este trabalho situa-se nas reas de Sistemas Multiagentes e Geoprocessamento. Tendo como foco principal o fornecimento de uma arquitetura baseada em Sistemas Multiagentes para a criao e execuo de simulaes na rea de Geoprocessamento. Uma caracterstica importante a utilizao de dados vetoriais, provenientes de um Banco de Dados Geogrcos, na gerao da representao espacial do ambiente e das entidades existentes nas simulaes. Com esta forma de representao contnua e precisa, possvel criar modelos mais prximos da realidade, representando adequadamente um maior nmero de caractersticas. Alm disto, a arquitetura permite a representao de fenmenos espao-temporais dinmicos, uma necessidade da rea de

Geoprocessamento.

1.4.4 Desenvolvimento de Agentes Mveis para Monitoramento de Computadores em Rede

Liesenberg (2004), apresenta a especificao e a implementao de um prottipo de software que utiliza agentes mveis para fazer monitoramento de computadores em uma rede, como o uso de processador e espao em disco. Para a

17

implementao dos agentes mveis foi utilizada a linguagem Java. A linguagem C tambm foi utilizada para implementar uma DLL, para obteno de informaes sobre recursos do sistema operacional Windows. A DLL acessada atravs do agente implementado em Java. Os mesmos agentes mveis foram implementados nas plataformas SACI e Aglets. A compatibilidade entre as plataformas discutida.

1.4.5 Segurana de Sistemas de Agentes Mveis

Uto (2003), apresenta um estudo detalhado dos aspectos de segurana de sistemas de agentes mveis, compreendendo as classes de ameaas existentes, os requisitos de segurana e os mecanismos propostos para solucionar ou amenizar tais ameaas. Uma vez que a linguagem Java comumente utilizada para desenvolver tais sistemas, a arquitetura de segurana da plataforma Java analisada com o objetivo de se entender como os mecanismos utilizados podem ser teis para a segurana destes sistemas.

1.5

Organizao do trabalho O segundo captulo apresenta uma breve introduo aos sistemas de

informao, trazendo conceitos, tipos e sua relao com tecnologia da informao. O terceiro captulo busca contextualizar a tecnologia da informao em linhas gerais, mostrando problema de gerenciamento tecnolgico O quarto captulo aborda os agentes, procurando mostrar o conceito, caractersticas e um enfoque maior na parte de mobilidade de cdigo por ser a caracterstica pertinente a esse trabalho descrevendo cada parte desse processo. Mostrou-se os detalhes mais importantes sobre agentes, as propriedades, suas classificaes, sua arquitetura e as principais plataformas existentes. Tratou-se os detalhes do framework SACI, por ser o escolhido para ser utilizado no modelo computacional, no Captulo 5. O quinto captulo mostra o modelo computacional proposto para a soluo do problema, e o estudo de caso detalhando os materiais e mtodos utilizados na realizao do experimento.

2 SISTEMAS DE INFORMAO

Sistemas de Informao (SI) podem ser definidos como todo e qualquer sistema de dados ou informaes de entrada que tenham por fim gerar informao de sada para suprir determinadas necessidades (BATISTA, 2005). Para Gil (Gil, 1999) os SI compreendem um conjunto de recursos humanos, materiais, tecnolgicos e financeiros agregados segundo uma seqncia lgica para o processamento dos dados e sua correspondente traduo em informaes. J Prates (apud CORDENONSI, 2005, p. 51) afirma que um SI uma estrutura combinada de informao, recursos humanos, TI e prticas de trabalho, organizados de modo a atingirem os objetivos organizacionais onde as prticas de trabalho representam a forma como os recursos humanos desempenham suas tarefas, a informao so textos, imagens e sons e a tecnologia da informao composta por hardware e software utilizados para processar dados. OBrien (2004) define SI como:
Sistema de informao um conjunto organizado de pessoas, hardware, software, redes de comunicaes e recursos de dados que coleta, transforma e dissemina informaes em uma organizao (OBRIEN, 2004, p.06).

Consegue-se definir a importncia dos sistemas de informao para uma empresa, em primeiro lugar para melhorar o fluxo de informaes em todos os subsistemas (departamentos) e, depois, para tirar proveito de todo esse fluxo de informaes de maneira mais eficaz para que o administrador possa tomar decises acertadas e responder melhor ao mercado essencialmente dinmico e globalizado no qual se encontra (Batista, 2005).

19

2.1 Classificao dos Sistemas de Informao

Os sistemas de informao podem ser classificados de acordo com a sua forma de utilizao e o tipo de retorno dado ao processo de tomada de decises. A utilizao dos sistemas de informao segundo Batista (BATISTA, 2005), representada conforme a figura abaixo.

Figura 1: Utilizao dos sistemas de informao. Fonte: Batista (2005, p.25).

Na figura 1, entrada de dados (ENTRADA) parte mais a esquerda da figura, representa o lanamento de todos os dados gerados na organizao pelo desenvolvimento de suas atividades corriqueiras. O processamento, parte central da figura, o processo de transformao dos milhares de dados gerados em informaes teis para o processo de tomada de deciso. A sada de dados, parte mais a direita da figura, a exteriorizao de tudo aquilo que foi processado e ser o alicerce para as decises gerenciais e estratgicas. Vale ressaltar que alguns dados de sada podero retornar a entrada no sistema de realimentao com o intuito de refinar e avaliar os dados de entrada.

20

2.1.1 Sistemas empresariais bsicos So aqueles utilizados para as tarefas mais comuns e rotineiras da empresa, tarefas essas essenciais para a conduo e bom funcionamento da organizao. So sistemas responsveis pelo prprio funcionamento da organizao, pois implementam as transaes que desenvolvem a sua atividade. Sua principal funo manipular os dados bsicos da organizao e armazen-los de modo a ficarem disponveis para o nvel ttico da organizao (BATISTA, 2005).

2.1.2 Sistemas de suporte deciso (SSD) So os sistemas que possuem uma interatividade com o usurio, oferecendo modelos e dados para soluo de um problema pr-estruturado focando tomada de decises. Como principal exemplo de tomadas de deciso auxiliadas pelo computador, esses sistemas devem possuir grande interao com os profissionais tticos da empresa, alm de uma fcil flexibilidade, adaptabilidade e capacidade de resposta rpida (BATISTA, 2005). Os sistemas mais recentes de suporte a deciso possuem ainda suporte para estilos pessoais de tomadas de deciso e tratamento cientfico dos dados. 2.1.3 Sistemas de suporte executivo (SSE)

Os executivos do nvel estratgico necessitam obter o maior nmero de dados possveis para seu planejamento e para a tomada de deciso de forma que possam ser visualizadas as necessidades da empresa, onde se faz uso de tecnologia avanada para elaborao de relatrios e grficos como ferramenta para definir melhor seus objetivos. So sistemas que do suporte ao desenvolvimento do planejamento estratgico da empresa e ajudam a definir os objetivos a serem estabelecidos. So diferenciados das outras famlias de sistemas, pois focalizam a alta administrao, no possuem intermediao tcnica, solicitam maior quantidade de dados, podem conter dados estruturados e no estruturados. Normalmente

21

trabalham com tecnologias de ponta no que diz respeito a grficos integrados, ferramenta de integrao de cenrios, tabelas dinmicas, tabelas de referncia cruzada e comunicaes diversas (BATISTA, 2005).

2.1.4 Sistemas de informao gerencial (SIG)

Estes sistemas so desenvolvidos com base no conhecimento especfico da empresa e com metodologias adequadas para selecionar informaes estratgicas, Utiliza-se de ferramentas que permitem uma viso analtica dos dados e processos, gerando uma viso integrada e grfica dos principais indicadores da empresa. Tambm conhecidos como MI (Management Information Systems) ou sistemas de gerenciamento de informao, esses sistemas lidam principalmente com as informaes direcionadas aos gerentes de nvel mdio da organizao e precisam de um fluxo de informaes bem estruturado para que possam funcionar (BATISTA, 2005). O SIG fornece informaes teis para obter o feedback das muitas operaes empresariais, dando suporte ao valor agregado de uma organizao. Um processo desejvel que os SIG forneam a informao adequada pessoa certa, da maneira correta e no momento certo. Geralmente este aspecto esquecido em detrimento eficincia na integrao (OBRIEN, 2004). Esse sistema permite a utilizao de relatrios, consultas e visualizao dos dados, que so ferramentas incorporadas a algum gerador de banco de dados. A utilizao das informaes do SIG caracteriza um ambiente empresarial estruturado e organizado, porm exigido um grau de confiabilidade das mesmas. Tomar deciso com base em informaes no confiveis pior que no possuir informao (BATISTA, 2005).

2.2 SI e Tecnologia da Informao Embora esses dois conceitos estejam estreitamente relacionados, e muitas vezes usados como sinnimos, eles no so equivalentes. Pode-se dizer que h pontos comuns abrangidos pelos dois conceitos, que se trata da utilizao de TI em

22

sistemas de informao. Entretanto, existem partes de um sistema de informao que no so TIs, tais como os procedimentos envolvidos em meios no informatizados de manipulao e transporte de dados. Da mesma maneira, a TI tambm inclui tecnologias de conexo (redes), comunicao de dados, voz e imagens no diretamente ligados a usos em sistemas de informao (Souza, Cesar et al, 2003). Segundo Campos Filho (CAMPOS, 1994), a figura 2, procura expandir o conceito de SI, mostrando esquematicamente as correlaes existentes entre os objetivos organizacionais e os componentes de informao, prticas de trabalho, recursos humanos e tecnologias de informao. Essa figura enfatiza que o ponto focal para o entendimento da natureza do SI so as prticas de trabalho, e no a tecnologia da informao, como pode parecer a primeira vista. A chave para conceituao est na forma atravs da qual os componentes interagem para criar prticas de trabalho que atendam convenientemente os objetivos da organizao.

Figura 2: Representao grfica de um Sistema de Informao. Fonte: Prates (apud CORDENONSI, 2005, p.51).

23

Conforme os conceitos vistos anteriormente, pode se afirmar que sistemas de informao desempenham vrios papis estratgicos na empresa e assume funes mais amplas do que de tecnologia da informao e que nem todo SI computadorizado, sendo assim TI funciona como uma das camadas de SI.

3 TECNOLOGIA DA INFORMAO

A crescente e veloz evoluo ocorrida com a informtica nos ltimos anos vem proporcionando uma srie de mudanas no mundo organizacional (PINSONNEAULT E KRAEMER, 1993; LAUDON E LAUDON, 1999;

TORKZADEH E DOLL, 1999; KUDYBA E DIWAN, 2002). Uma conseqncia dessa evoluo, entretanto, diz respeito diversidade de conceitos e interpretaes que se obtm com o uso da expresso tecnologia da informao (ALBERTIN, 1993). A presena de diferentes palavras e terminologias para designar o que basicamente a mesma coisa microeletrnica, automao, processamento de dados, informtica, engenharia da informao, sistemas de informao (SI) demonstra o rpido progresso que essa tecnologia vem tendo, principalmente durante as duas ltimas dcadas. O termo tecnologia da informao que, segundo Laudon e Laudon (1999), representam um conjunto de componentes inter-relacionados

trabalhando juntos para coletar, recuperar, processar, armazenar e distribuir informao, com a finalidade de facilitar o planejamento, o controle, a coordenao e o processo decisrio em empresas e outras organizaes. Dias et al. (1993), valida essa afirmao dizendo que a TI representa um esforo organizado para prover informaes que permitam a operao e o processo decisrio de uma empresa. Segundo Rezende e Abreu (2000), os componentes que fundamentam essa tecnologia esto organizados conforme figura 3:

Hardware: Tem o papel de processar a informao, parte fsica do processo (equipamentos: micros, impressoras, hubs, modems, teclados, mouse, outros).

Software:

Dar

instrues

ao

hardware

(programas,

aplicativos, sistema operacionais, outros). Comunicao: Transmitir e disseminar a informao (rede de microcomputadores, telecomunicaes, fibra ptica, rdios, outros).

25

Figura 3: Componentes da TI. Fonte: Unisalesiano (2004).

3.1 Gesto Estratgica de TI

A complexidade do contexto atual obriga que as organizaes deixem de tratar a TI como um problema tecnolgico que precisa de solues tecnolgicas, e passem a administr-la como uma oportunidade para responder aos constantes desafios impostos pelo mercado (BEAL, 2001). Os recursos tecnolgicos esto se tornando cada vez mais sofisticados e menos numerosos por outro lado, a maior parte dos gerentes e executivos ainda no se deram conta do potencial da TI, e tampouco iniciaram o

necessrio movimento em direo do reconhecimento do seu papel fundamental para a gesto em nvel estratgico (BEAL, 2001). Gerir a TI na atualidade significa saber trabalhar as idias e os problemas de modo a analisar a questo sob diferentes aspectos que se integram: os fatores estratgicos, funcionais, tcnicos, tecnolgicos e de custos. Tambm se torna importante saber administrar terceiros, uma vez que cresce a tendncia de transferir boa parte das funes de TI para empresas externas e especializadas.

3.2 Dificuldades Para o Uso da TI

Atualmente muitas empresas ainda pensam que dispor de tecnologia da informao em sua empresa se resume simplesmente em adquirir

computadores, impressoras, softwares e disponibiliz-los a seus funcionrios.

26

Ledo engano, pois se gasta recursos, tempo e perde-se informao e competitividade. Torna-se necessrio esclarecer que a princpio a tecnologia da informao ir atrair novos problemas e no solues mirabolantes (SANTANA, ANDR E FREITAS, GUSTAVO, 2006). A primeira barreira com relao aos funcionrios que em sua maioria podem ser considerados analfabetos digitais, pessoas incapazes, geralmente por falta de preparo, de obter informaes atravs da informtica, internet ou qualquer outro dispositivo ligado a computadores. Esse analfabetismo digital deve ser levado a srio pela empresa e pelo setor de gerenciamento de TI, para que a implantao do sistema ocorra num tempo curto e proveitoso. Cabe ento ao setor de TI a implantao da tecnologia necessria empresa e o treinamento dos funcionrios para que ela possa ser usada de forma maximizada mirabolantes (SANTANA, Andr E FREITAS, GUSTAVO, 2006). . Para Batista (BATISTA, 2005, p. 137) os problemas das TIs nas empresas dividem se em capacidade, compatibilidade e mudanas, como mostrado na figura 4, e detalhados a seguir:

Figura 4: Resumos de problemas de tecnologia da informao. Fonte: Batista (BATISTA, 2005, p. 137).

Capacidade: problema que geralmente ocorre no hardware, definese a existncia de um problema desse tipo quando a capacidade de resposta do processamento de alguma atividade estiver no intervalo de 30 a 60 segundos.

27

Entretanto um aumento na capacidade de hardware em uma empresa no um assunto muito simples, pois existem outros fatores intimamente ligados a ele, como um novo sistema operacional ou alguma atualizao executada. Compatibilidade: exige especial ateno, pois criar um ponto de gargalo em todo o sistema de informaes pela insero de um novo equipamento pouco, ou nada compatvel. Mudanas: as mudanas em qualquer tipo de tecnologia envolvem reflexos diretos e indiretos em todos seus componentes. A figura 4 apresenta um resumo dos problemas relacionados a TI.

3.3 Principais Vantagens do Uso da TI

As principais vantagens do uso da TI para as empresas a produtividade, pois se produz mais em menos tempo, e principalmente as vantagens competitivas que gera para a empresa, pois reduz custos atravs da automao e aumento da eficincia de processos. Segundo OBrien (2004, p. 282) as principais vantagens do uso da TI so: A TI um ingrediente-chave na reengenharia das operaes das empresas, por permitir mudanas radicais nos processos de negcios que melhoram dramaticamente sua eficincia e eficcia; A TI pode ser usada estrategicamente para melhorar a qualidade do desempenho do negcio, pois reduz custos de processos empresariais; Uma empresa pode utilizar a TI para ajud-la a tornar-se uma empresa gil que possa reagir rapidamente s alteraes de seu ambiente. Agrega valor aos servios e produtos ofertados por uma organizao.

4 AGENTES

O termo agente de uma maneira geral uma entidade de software autnoma que atua em determinado ambiente de forma a interagir com este e com os outros agentes. Alm de produzir aes e percepes sem requerer interaes humanas constantes. No entanto definir agentes com um conceito nico muito difcil, pois existem vrias abordagens e ponto de vista de diferentes autores. Alm disso, devido a suas mais diversas aplicaes uma definio precisa torna-se cada vez mais complicada e variada.

Um agente, sob a perspectiva do usurio final, um programa que ajuda pessoas e atua em nome delas. Agentes funcionam de forma a permitir que as pessoas deleguem trabalho para eles (LANGE; OSHIMA, 1998, p. 2).

O termo agente deriva da palavra ator em latim, o que significa uma pessoa que age em nome de outra (BRAUN, 2005). Os termos agente e sistema baseado em agentes, tm sido amplamente utilizado em vrias tecnologias e tm sido, por exemplo, extensamente usado em inteligncia artificial, banco de dados, sistemas distribudos e redes. (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007). Embora h vrias definies para agentes, (GENESERETH E KETCHPEL, 1994; WOOLDRIDGE E JENNINGS, 1995; O RUSSELL E NORVIG, 2003), agente essencialmente um componente de software especial que tem autonomia, prov uma interface interopervel para um sistema arbitrrio. Um agente de software qualquer programa (cdigo, dados ou estado de execuo) que realize uma tarefa em nome de uma pessoa, da mesma forma que um agente, na vida real, representa seu cliente (agente de viagens, despachante, etc.) na execuo de um servio [WELD E ETZIONI, 1995]. Ted Selker, pesquisador do centro de pesquisas IBM, d uma definio interessante sobre agentes: Programas de computadores que simulam um relacionamento humano, fazendo alguma coisa que outra pessoa poderia fazer por voc.

29

Embora os prprios autores reconheam que a definio de agentes muito ampla elas possuem mais partes comuns do que conflitantes. De uma maneira geral esses conceitos tentam exprimir que agentes so programas que detm autonomia, inteligncia e desempenham suas tarefas de acordo com os interesses dos usurios ou outros agentes.

4.1 Caractersticas

A definio do que exatamente constitui um agente de software foi intensamente debatido na comunidade de pesquisa durante vrios anos. Embora este debate continue, h uma compreenso comum que uma entidade de software deve apresentar certas caractersticas mnimas para ser considerado um agente. Segundo (BRAUN, 2005) essas caractersticas so as listadas abaixo: Autonomia: Agentes agem sem interveno direta, possuem mecanismo de controle sobre suas aes e estado interno. Similar ao ser humano pode escolher suas aes. Comportamento Social: Podem comunicar com outros agentes ou seres humano por meio de uma linguagem de comunicao de agente. Comunicao pode ser restringido a pura troca de informao negociao. Reatividade: a capacidade de reagir rapidamente a alteraes no ambiente, ou seja, percebe o meio e responde de modo oportuno. Pr-atividade: Os agentes no agem simplesmente para responder ao ambiente, devem apresentar comportamento dirigido aos seus objetivos, tomando a iniciativa. Mas segundo (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007), alm de todas as caractersticas citadas acima acrescenta ainda: Mobilidade: Devem possuir habilidade para viajar entre ou pode incluir sofisticados protocolos de

diferentes nodos (host) em uma rede de computadores.

30

Verdadeiro: Deve prover a certeza que no vai deliberadamente comunicar falsa informao.

Racional: sempre agindo de forma a alcanar seus objetivos, e que possam aprender, adaptando-se a ajustar o seu ambiente e aos desejos de seus usurios.

Um agente no precisa ter todas essas caractersticas ao mesmo tempo. Existem alguns agentes que possuem algumas caractersticas, outros que possuem todas, o que certo que atualmente existe pouca concordncia sobre a importncia dessas propriedades e se necessria sua obrigatoriedade para a caracterizao de um agente.

4.2 Classificao A classificao dos agentes possvel de acordo com aspectos relacionados a vrias caractersticas quanto mobilidade, quanto ao relacionamento inter agentes e quanto capacidade de raciocnio. A classificao segundo Silva (SILVA, 2003), so as seguintes: Agentes Mveis: so agentes que tem a mobilidade como caracterstica principal. Isto , uma capacidade de mover-se seja por uma rede interna local (intranet) ou at mesmo pelo Web, transportando-se pelas plataformas levando dados e cdigos. Seu uso tem crescido devido a alguns fatos como uma heterogeneidade cada vez maior das redes e seu grande auxlio em tomadas de decises baseadas em grandes quantidades de informao. Sistemas multi-agentes: grupo de agentes que interagem com um objetivo comum, alguns com funo de coordenao, outros mveis, alguns com autonomia, adaptveis e com habilidades cognitivas. (WOOLDRIDGE, 2001; WOOLDRIDGE & JENNING, 1995; BRENNER et al 1998). Agentes situados ou estacionrios: so aqueles opostos aos mveis, isto , so em um mesmo ambiente e ou plataforma.

31

No se movimentam em uma rede e muito menos na Web. Agentes Competitivos: so agentes que competem entre si para a realizao de seus objetivos ou tarefas. Ou seja, no h colaborao entre os agentes. Agentes Coordenados ou Colaborativos: agentes com a

finalidade de alcanar um objetivo maior, realizam tarefas especificas, porm coordenando-as entre si de forma que suas atividades se completem. Agentes Reativos: um agente que reage a estmulos sem ter memria do que j foi realizado no passado e nem previso da ao a ser tomada no futuro. No tem representao do seu ambiente ou de outros agentes. Geralmente atuam em sociedades como uma colnia de formiga por exemplo. Baseiamse muito tambm na teoria do caos no qual afirma que at mesmo no caos existe uma certa organizao. No caso da formiga, por exemplo, uma nica dela no apresenta muita inteligncia mas quando age no grupo comporta-se o todo como uma entidade com uma certa inteligncia. Ou seja, a fora de um agente reativo vem da capacidade de formar um grupo e construir colnias capazes de adaptar-se a um ambiente. Agentes Cognitivos: esses, ao contrario dos agentes reativos, podem raciocinar sobre as aes tomadas no passado e planejar aes a serem tomadas no futuro. Ou seja, um agente cognitivo capaz de resolver problemas por ele mesmo. Eles tem objetivos e planos explcitos os quais permitem objetivo final. atingir seu

32

4.3 Agentes Mveis Agente mvel um agente de software que no se limita somente ao sistema em que iniciou sua execuo: tem a habilidade de se auto transportar de um sistema para outro, juntamente com seu estado (estado de execuo e variveis) e continuar a execuo de suas tarefas neste novo ambiente (RUBINSTEIN, 2001 apud REIS, 2001, p. 28). Para Braun (BRAUN, 2005), um agente mvel um programa que pode migrar iniciando de um host para outros hosts em uma rede de heterognea de computadores para realizar uma tarefa especificada por seu proprietrio. Ela funciona de forma autnoma e se comunica com outros agentes e ambientes de execuo. Durante o inicio da migrao, o agente move todo o seu cdigo e dados. Bellifemine, (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007), confirma essa afirmao, acrescentando ainda que para atingir isto, os agentes mveis esto aptos suspender sua execuo a qualquer momento e continuar em outro local. (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007).

4.3.1 Caractersticas dos Agentes Mveis

Braun lista algumas das caractersticas mais importantes dos agentes mveis (BRAUN 2005, p. 15): Agentes mveis so tipicamente usados em redes grandes e heterogneas onde premissas de confiabilidade, relacionadas conectividade e segurana, no podem ser feitas. A migrao de agentes mveis iniciada pelo agente, em oposio aos sistemas de objetos mveis tradicionais onde esta migrao iniciada pelo sistema operacional ou pelo

middleware. A migrao de agentes mveis feita para acessar recursos disponveis somente em outros pontos da rede e no para balanceamento de carga como feito nos sistemas tradicionais. Agentes mveis so capazes de migrar mais de uma vez. Esta caracterstica chamada de multi-hop. Depois que um agente visitou um ponto da rede, ele pode migrar para outros pontos

33

continuamente para continuar suas tarefas, em contraste com os cdigos mveis tradicionais que migram apenas uma vez.

4.3.2 Terminologia Bsica Para descrever o processo de migrao necessrio entender a estrutura dos agentes mveis, embora sejam implementados diferentemente em cada plataforma, podem ser descritos de uma maneira genrica. Um agente mvel um programa que est situado dentro de um ambiente de execuo, funcionam como parte do ento chamado servidor de agentes mveis. Estes servidores controlam a execuo dos agentes e fornecem funcionalidades bsicas para a comunicao, controle, segurana e migrao dos agentes. Normalmente, este servidor chamado de agncia. Em cada nodo da rede (host) que queira hospedar agentes mveis, este dever ter instalada uma agncia do mesmo tipo. Cada host ou sistema computacional pode hospedar vrias agncias em paralelo, e cada agncia alcanvel por no mnimo uma URL (Universal Resource Locator) para onde uma migrao direcionada, sendo que esta URL tambm serve como o nome da agncia. Quando um agente criado em uma agncia, a agncia torna-se a agncia casa do agente. O usurio que iniciou o agente chamado de proprietrio do agente, e o proprietrio tambm define o nome do agente. A informao do proprietrio importante para mostrar para outras agncias o quo confivel o agente.

4.3.3 Estrutura Dos Agentes Mveis

Os Agentes mveis so constitudos de trs partes: cdigo, dados, estado de execuo. Braun (BRAUN 2005, p. 37), descreve cada uma das dessas trs partes, que pode ser visto na figura 5:

34

Figura 5: Estrutura bsica de um agente mvel. Fonte: Adaptado (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007, p. 116).

Cdigo: contm a lgica do agente e deve ser separado do cdigo da agncia para que ele possa ser transferido sozinho para outra agncia. O cdigo tambm deve ser identificvel e legvel para uma agncia. Normalmente, como em outros programas, um cdigo de um agente consiste de mais de um arquivo.

Dados: este termo corresponde a valores de variveis na instncia do agente (assume-se um agente como sendo a instncia de uma classe em linguagens orientadas a objeto). O dado s vezes chamado de estado do objeto. importante notar que nem todos os itens de dados de um agente so 30 partes do estado do objeto. Algumas variveis referenciam objetos que so compartilhados com outros agentes ou com a agncia, por exemplo, manipuladores de arquivo, threads, interfaces grficas, ou outros recursos ou dispositivos que no podem se mover para outros servidores. Sendo assim, importante restringir os dados que pertencem ao agente e que devem ser mveis.

Estado de Execuo: a diferena entre informaes do objeto e informaes do estado de execuo que os elementos do

35

estado do objeto so diretamente controlados pelo prprio agente, enquanto as informaes do estado de execuo so controladas pelo processador e pelo sistema operacional. Isto depende muito de como o toolkit foi projetado e tambm da estrutura onde o agente est executando (processador, sistema operacional, etc...). Em alguns toolkits, um estado de execuo de um agente compreendido do valor corrente de um ponteiro de instruo e da pilha do processador. Em outros, no possvel detectar o estado de execuo de um agente. Em muitos toolkits baseados em Java, por exemplo, o agente por si prprio o responsvel por copiar toda a informao sobre seu estado corrente no nvel de linguagem de programao e restaur-lo depois da migrao.

4.3.4 Estrutura da Migrao

Um comportamento tpico de um agente mvel a mobilidade, que nada mais que a migrao de uma agncia para outra. Nesse processo a agncia corrente chamada de transmissora e a outra agncia de receptora. Quando esse processo ocorre o transmissor e o receptor deve comunicar sobre a rede e trocar dados sobre o agente que quer migrar. Sendo assim utilizado um protocolo chamado de protocolo de migrao. Alguns sistemas simplificam esta tarefa com a comunicao assncrona, comparvel a um envio de e-mail, contudo outros sistemas so desenvolvidos utilizando-se complexos protocolos de rede sobre o TCP/IP. Segundo Braun (BRAUN, 2005, p. 38-40), o processo de migrao (figura 6) dos agentes segue os seguintes passos abaixo, os trs primeiros passos so executados na agncia:

Inicializa o processo de migrao e suspenso da thread: O processo de migrao tipicamente inicia com um comando especial, o comando de migrao, onde o agente anuncia a sua inteno de migrar para outra agncia, cujo nome passado

36

como parmetro no comando de migrao. A primeira tarefa da agncia suspender a thread de execuo do agente e garantir que nenhuma outra thread filha esteja ainda executando. Este requerimento importante para o prximo passo, onde imperativo que os dados e estados estejam congelados e impossibilitados de serem modificados. Capturar os dados do agente e seu estado de execuo: o estado corrente de todas as variveis do agente so serializados, ou seja, seus valores correntes so escritos em uma

representao persistente externa, por exemplo, uma memria, um bloco, um arquivo. O estado do agente tambm armazenado. O resultado do processo de serializao um agente serializado, o qual uma stream de bytes que consiste dos dados e o estado do agente. Transferncia do agente: o agente serializado transferido para a agncia receptora usando o protocolo de migrao. Os trs ltimos passos seguintes so executados na agncia receptora: Recebe o agente: o agente serializado recebido usando o protocolo de migrao. O receptor do agente verifica se o agente pode ser aceito baseado na informao do proprietrio do agente e da agncia transmissora. A agncia receptora pode filtrar agentes de agncias no confiveis ou desconhecidas. Deserializa o agente: o agente serializado deserializado, ou seja, as variveis e estado de execuo so restauradas. O resultado deste passo deve ser uma cpia do agente que existia na agncia transmissora exatamente antes de iniciado o processo de migrao. Inicia a execuo do agente em uma nova thread: a agncia receptora inicia uma nova thread para o agente.

37

Figura 6: Processo de migrao de um agente mvel


Fonte (BRAUN, 2005, p.39).

4.4 Ambientes e plataformas para construo de agentes mveis Vrias aes vm sendo tomadas no sentido de difundir a plataforma Java como a principal ferramenta para desenvolvimento de agentes. Esta plataforma possui um grande potencial e atualmente a mais utilizada devido a sua capacidade de trabalhar quase que em todas as plataformas de hardware e software disponveis (BIGUS, 2001).

4.4.1 Agent Building and Learning Enviroment (ABLE)

O IBM ABLE um framework para desenvolvimento e execuo de agentes inteligentes hbridos e aplicaes com agentes. ABLE fornece um conjunto de componentes reusveis JavaBeans, chamados de AbleBeans, com vrios mtodos de interconexo para combinar estes componentes e criar softwares de agentes.

38

AbleBeans

implementam

acesso

dados,

filtros

transformaes,

aprendizado e capacidade de raciocnio, alm de classificao, clustering, predio e procura gentica (ABLE, 2007). 4.4.2 AgentBuilder

O AgentBuilder, da Reticular Systems Inc., um toolkit para desenvolvimento integrado de software para construo de agentes Java. Ele utiliza uma linguagem orientada a agentes de alto nvel e fornece um conjunto de ferramentas grficas de configurar ao de agentes e especificao de comportamentos. AgentBuilder tem a inteno de habilitar desenvolvedores que no tm conhecimento de inteligncia artificial para construir aplicaes de agentes (AGENTBUILDER, 2007).

4.4.3 Tracy

Desenvolvida na universidade de Jena, na Alemanha, prope servios bsicos de mobilidade, como agentes mveis e estacionrios (BRAUN, 2005);

4.4.4 Jade

JADE um framework implementado em JAVA que facilita a implementao de sistemas multiagentes de acordo com as especificaes da FIPA, atravs de um conjunto de ferramentas que suporta as fases de depurao e implementao. A plataforma de agente pode estar distribuda entre diferentes mquinas (o qual no necessita estar executando o mesmo sistema operacional) e a configurao pode ser controlada via uma interface grfica do usurio, GUI (Graphical User Interface), de forma remota (BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic, 2007).

39

4.4.5 Saci

O Simple Agent Communication Infrastructure (SACI) foi desenvolvido por Hbner e Sichman no Laboratrio de Tcnicas Inteligentes da Escola Politcnica da Universidade de So Paulo (USP, 2003). SACI uma ferramenta que torna a programao da comunicao entre agentes distribudos mais simples, minimizando as dificuldades inerentes a distribuio de agentes. Ser abordado com mais profundidade no item 3.6.3 por ser a plataforma eleita para a construo do prottipo, produzindo o ambiente de teste do trabalho (HBNER, Jomi F.; SICHMAN, 2003).

4.4.6 Soma

Soma - (Secure and Open Mobile Agent ou Agente mvel seguro e aberto) Desenvolvido a partir do projeto MOSAICO (Metodologias de Desgnio e Ferramentas de Sistemas de Alto Desempenho para Aplicaes Distribudas) do Ministero Dell Universita e della Ricerca Scientifica e Tecnologica, na Itlia. Projetada em linguagem Java, busca a segurana e a interoperabilidade, seguindo o padro MASIF (SOMA, 2005).

4.4.7 Voyager Voyager, da ObjectSpace, Inc., um melhoramento do Object Request Broker (ORB) que escrito inteiramente em Java. Um ORB fornece a capacidade de criar objetos em sistema remotos e invocar mtodos nestes objetos. Tem mobilidade e autonomia, que fornecida na classe base, agente. Um agente pode mover-se de um local para outro e pode deixar para trs um encaminhamento endereo com um "secretrio" para que as mensagens possam ser enviadas para a sua nova localizao (BIGUS, 1998).

40

4.4.8 Gossip

Gossip uma aplicao de demonstrao de agentes mveis da Trylluan Inc.s. Ele utiliza tecnologia de aprendizagem para traar o perfil e preferncias de seus usurios e executar aes automticas relacionadas ao comportamento. A implementao feita em Java em um ambiente seguro de desenvolvimento de muti-agentes. O agent development kit usado para criar agentes mveis Tryllian. O corpo do agente pode ser configurado atravs da definio de conhecimentos e comportamentos. (GOSSIP, 2007).

4.4.9 FIPA-OS

FIPA Open Source (FIPA-OS) originalmente desenvolvido pela Nortel Networks, uma plataforma de cdigo aberto que suporta comunicao usando os padres de comunicao da FIPA. FIPA-OS fornece um conjunto de servios na plataforma que so especificados no padro FIPA, incluindo gerenciamento de agentes, gerenciamento do ciclo de vida, servios de pginas amarelas e um canal de comunicao e troca de mensagens em conformidade com as especificaes da FIPA. O FIPA-OS possui vrias classes que podem ser estendidas para a adio de tarefas (behaviours), alm de ferramentas grficas de visualizao. (FIPA-OS, 2007).

4.5

Vantagens dos agentes mveis

Segundo LANGE e OSHIMA (LANGE; OSHIMA, 1998, p. 3 - 5), agentes mveis apresentam uma srie de vantagens como: Reduo do trfego da rede: Sistemas distribudos demandam um grande volume de comunicao (interao) para realizar uma determinada tarefa, principalmente quando h restries de segurana envolvidos. Agentes mveis permitem reduzir o trfego da rede, pois permitem despachar tarefas que podem executar suas interaes localmente. Agentes mveis podem

41

ainda reduzir o trfego de dados da rede, pois permitem mover o processamento para o local onde os dados esto armazenados ao invs de transferir os dados para depois process-los. O princpio simples: "Mover o processamento para os dados ao invs de mover os dados para o local de processamento". Oculta a latncia da rede: Sistemas crticos de tempo real, como robs em processos industriais, precisam responder em temporeal a mudanas nos seus ambientes. Controlar tais sistemas atravs de uma rede de uma fbrica de um tamanho substancial implica em latncias significantes. Para sistemas crticos de tempo real, tais latncias no so aceitveis. Agentes mveis oferecem uma soluo, porque eles podem ser enviados de um controlador central para atuar localmente e diretamente executar as instrues do controlador. Encapsulamento de protocolo: Cada mquina em um sistema distribudo possui seu prprio cdigo necessrio para

implementar a transferncia de dados. Porm, novos requisitos de segurana e eficincia demandam mudanas no protocolo que podem ocasionar problemas na manuteno do cdigo existente. Agentes mveis, por outro lado, podem mover-se para mquinas remotas a fim de estabelecer canais de comunicao baseados em protocolos proprietrios. Execuo assncrona e autnoma: Tarefas podem ser embutidas em agentes mveis que podem ser despachados pela rede. Aps serem despachados, os agentes so autnomos e

independentes da criao de processo, podendo executar assincronamente. Este recurso til principalmente porque um dispositivo mvel (ex. laptops) pode se reconectar na rede para coletar o agente mais tarde. Adaptao dinmica: Agentes mveis possuem a habilidade de perceber mudanas no ambiente de execuo e reagir autonomamente. Mltiplos agentes podem interagir entre si e se

42

distribuir pela rede, de modo a manter uma configurao tima para resolver um problema em particular. Independncia de plataforma: Redes de computadores,

geralmente so heterogneas, tanto na perspectiva de hardware como a de software. Agentes mveis so independentes da mquina e tambm da rede, sendo dependentes somente do seu ambiente de execuo, no dificultando a integrao de sistemas. Robustez e tolerncia a falhas: A habilidade dos agentes mveis de reagirem dinamicamente a situaes e eventos desfavorveis torna fcil a construo de sistemas distribudos robustos e tolerantes a falhas. Se uma mquina est para ser desligada, todos os agentes em execuo na mquina podem ser advertidos para que possam ser despachados e continuar suas tarefas em outra mquina da rede. Mais recentemente, Braun (BRAUN 2005, p.26 - 27), lista as seguintes vantagens:

Delegao de tarefas: por serem mais um tipo especfico de agente de software, os agentes mveis podem ser utilizados pelos usurios para realizar tarefas em seu nome. Agentes de softwares autnomos visam cuidar de toda a tarefa sem o controle ou contato permanente. Como resultado o usurio pode voltar sua ateno a outras coisas mais importantes.

Processamento Assncrono: uma vez que o agente mvel tenha sido iniciado e configurado para suas tarefas, ele pode fisicamente sair do computador de seu proprietrio e navegar livremente pela rede. Somente para essa primeira migrao uma conexo deve ser estabelecida. Essa caracterstica faz com que os agentes mveis sejam apropriados para computao mvel, onde usurios mveis podero iniciar seus agentes de dispositivos mveis que oferecem somente uma largura de

43

banda limitada e links de rede volteis. Pelo fato dos agentes serem menos dependentes da rede, eles podem trabalhar de forma mais estvel que aplicaes baseadas no paradigma de cliente-servidor. Servios de interfaces adaptveis: as tcnicas atuais de sistemas distribudos oferecem interfaces de servio, usualmente como uma coleo de funes, constitudas somente de um

denominador comum para todos os possveis clientes. Como conseqncia, muitas das funes das interfaces so mais ou menos primitivas, e clientes provavelmente tero que usar um fluxo de trabalho para realizar tarefas mais complexas. Se a sobrecarga na troca de informaes entre servidor e cliente alta, em comparao com o tempo de execuo de cada funo, faz mais sentido como freqentemente sendo agregar funes mais

avanadas

combinaes de

vrias funes

primitivas. Contudo, difcil enumerar todos os possveis cenrios previamente ou mesmo durante o tempo de execuo. Tais funes so raramente disponibilizadas em interfaces multipropsito. Agentes mveis podem ajudar neste tipo de situao oferecendo uma chance de projetar interfaces dirigidas ao cliente que podem ser otimizadas pelo por ele, mas adaptveis a vrias interfaces do servidor. A chave a utilizao de agentes mveis para traduzir as funes mais complexas solicitadas pelo usurio e enviar as funes primitivas ao servidor. O agente mvel simular uma constante e altamente especializada interface para o cliente enquanto troca informaes com os servidores em sua prpria linguagem. Transporte de cdigo versus transporte de dados: essa provavelmente a mais citada vantagem dos agentes mveis, alm do estreito relacionamento e das interfaces de servios adaptveis. Interfaces de servios frequentemente oferecem somente funes primitivas para acessar banco de dados. Uma simples chamada, contudo, pode resultar em um enorme

44

conjunto de dados sendo retornado ao cliente pela falta de preciso da requisio. Em vez de transferir dados ao cliente, onde ele ser processado, filtrado, e provavelmente causar uma nova requisio, este cdigo pode ser transferido at a localizao dos dados atravs dos agentes mveis. No pior caso, somente os dados relevantes sero enviados ao cliente, o que reduz o trfego de rede e economiza tempo, se o cdigo de filtro for menor que os dados a serem processados.

4.6

Comunicao dos Agentes Mveis Para que ocorra a comunicao entre o agente mvel e a agncia ou um

grupo de agentes necessrio uma linguagem comum para troca de informaes, essa linguagem segue certas regras, chamadas de protocolos de comunicao. Algumas especicaes de Linguagem de Comunicao de Agentes (LCA) foram propostas com o objetivo de viabilizar a comunicao entre agentes desenvolvidos em projetos diferentes e possibilitar a descrio das regras que regem o uxo de comunicao entre eles. (HBNER; SICHMAN, 2000, p. 2) Dentre as propostas de LCA existentes, duas se destacam: KQML e FIPA ACL.

4.6.1 Knowledge query and Manipulation Language - KQML

A Knowledge Query and Manipulation Language (KQML) uma especificao de linguagem e protocolo de comunicao entre agentes que tem por objetivo ser um meio comum de troca de informao e conhecimento entre agentes (SICHMAN, 2000, p. 2). Em KQML, qualquer linguagem pode ser usada para escrever o contedo das mensagens, como, por exemplo, LISP, Prolog, SQL ou Portugus. As informaes necessrias para compreender o contedo da mensagem esto includas na prpria comunicao. Quando os agentes trocam mensagens KQML, a forma como a mensagem sai do agente emissor e chega ao receptor, ou seja, o mecanismo de transporte transparente. O formato das mensagens KQML simples, fcil de ler e

45

de ser interpretada por um parser (HBNER; SICHMAN, 2000, p. 2). O formato de uma mensagem KQML pode ser visto na Figura 7.

FIGURA 7 Formato de uma mensagem KQML Fonte: Hbner e Sichman (2003, p. 5)

A camada de mensagem (message layer) possui informao que ajuda o receptor entender o contedo da mensagem. O campo performative identifica qual a inteno do remetente com a mensagem. O valor da palavra-chave :language identifica em qual linguagem a mensagem est escrita. O valor de :ontology o vocabulrio usado para as palavras na mensagem. A camada de comunicao possui parmetros de comunicao de baixo nvel, como a identidade do remetente (:sender) e do receptor (:receiver) e um identificador nico para a mensagem (:replywith) (HBNER; SICHMAN, 2003, p. 6).

46

Um exemplo de mensagem KQML pode ser visto na figura 8.

FIGURA 8 Exemplo de mensagem KQML Fonte: Hbner e Sichman (2003, p. 6)

4.6.2 Foundation for Intelligent Physical Agents (FIPA) ACL

A especicao de LCA da FIPA est baseada nos mesmos princpios que o KQML (teoria dos atos de fala) e tem a mesma sintaxe para as mensagens. Esta especicao consiste de um conjunto de tipos de mensagens e a descrio formal de sua pragmtica o efeito das mensagens na mente do emissor e do receptor. Neste aspecto, a FIPA ACL difere do KQML, a semntica dos tipos de mensagens no exatamente a mesma. Alm da LCA, a FIPA tambm especica uma notao para descrio de protocolos de comunicao. Esta notao exemplicada com protocolos para requisio de servios, rede contratual e outros (HBNER; SICHMAN, 2000, p. 3).

4.7 Simple Agent Communication Infrastructure (SACI)


O SACI foi desenvolvido em Java baseando-se na linguagem de comunicao de agentes KQML primeiramente para ser executada em computadores pessoais e servidores, mas j existem estudos para sua colocao em aparelhos mveis, como PDAs e celulares. Segundo (HBNER; SICHMAN, 2000, p. 3), as caractersticas do SACI so as seguintes:

47

Os agentes utilizam KQML para se comunicar. Apresentam as funes bsicas para criar, enviar e receber mensagens escritas baseando-se nesta linguagem.

Todo agente SACI identificado por um nome. As mensagens so transportadas utilizando-se somente o nome do receptor.

Os agentes podem ser implementados como applets e terem sua interface em uma home-page.

Os agentes SACI podem ser iniciados remotamente. Os agentes podem ser monitorados. Os eventos sociais (entrada

na sociedade, sada, recebimento ou envio de mensagens) podem ser visualizados e armazenados para anlise futura. Agentes podem registrar seus servios no facilitador e perguntlo sobre que servios so oferecidos por quais agentes. Isso conhecido como servio de pginas amarelas, onde os agentes SACI podem anunciar suas habilidades e perguntar sobre as habilidades dos outros agentes. No SACI os agentes esto agrupados em sociedades, possuindo uma identificao nica, onde cada agente interage com os demais utilizando uma linguagem comum. Estes agentes oferecem servios aos demais agentes de sua sociedade, tendo os agentes um ciclo de vida conforme ilustrado na figura 9:

Figura 9: Ciclo de vida de um agente. Fonte: adaptado de Hbner (2001).

48

4.7.1 Mobilidade

Para haver mobilidade, necessrio que o SACI esteja instalado em todos os hosts que fazem parte da sociedade, de forma que eles possam receber agentes e estes possam executar seus mtodos corretamente. Os seguintes passos so executados na migrao de um agente: - o mtodo onMoving chamado; - copia o estado do agente para o host remoto; - o mtodo onMoved chamado; - inicia a thread/processo do agente no host remoto (mtodo run); - termina a thread/processo do agente no host local.

4.7.2 Servios Oferecidos

. A plataforma SACI oferece alguns servios que so utilizados pelo gerente do sistema para controle dos agentes, so esses: - Launcher Demon: Executado em todas as mquinas onde iro funcionar os agentes Saci. um servidor com as seguintes funes: - Facilitar a criao (remota) de agentes e gerenciadores; - Servio de MailBox para Applets (como o MailBox um processo servidor, um applet no tem permisso para execut-lo) - Analisar e disponibilizar os recursos das aplicaes. - SocLauncher: Solicita a criao de sociedades ao servidor.

possvel escolher em qual host o agente gerenciador ser alocado. - AgentLauncher: Solicita a criao de novos agentes para a sociedade. - Launcher Admin: o servio utilizado pelo gerente do sistema

para controle de servidores, sociedades e agentes. Permite criar, destruir, mover e monitorar os elementos do sistema.

5 Modelo Proposto
Nos captulos anteriores foram mostrados conceitos importantes e principais caractersticas dos SI, TI e agentes mveis pertinentes a esse trabalho. Foi observado que dentro de um setor de TI de uma empresa h uma dificuldade muito grande de se obter o controle sobre o parque computacional disponvel, sendo que a maioria das organizaes no mantm uma padronizao quanto modelo ou fabricante, tornando esse parque computacional uma grande miscelnea. A busca por uma soluo se faz necessria. Utilizar agentes com o objetivo de se obter um controle maior sobre o cenrio a ser administrado pelos gerentes, demonstra ser uma soluo vivel. Nesse contexto foi desenvolvido um sistema experimental cuja finalidade fazer uma coleta de informaes de hardware e software em uma rede, a partir de uma estao. As coletas a serem feitas so informaes referentes configurao como, memria, modelo do processador entre outros, e ainda aplicativos instalados. A proposta deste trabalho baseia-se no conceito de delegao de tarefas proposto pela teoria de agentes de software como ferramenta importante na busca de informaes a nveis gerenciais, auxiliando aos gestores de TI e suas equipes na resoluo do problema das informaes em ambientes distribudos. Servindo tambm como um sistema de suporte deciso nas empresas.

5.1

Ambiente do experimento O modelo proposto visa delegar a funo de buscar informaes dos

computadores em rede para agentes mveis, conforme modelo apresentado na figura 10. O sistema iniciar na estao do gerente, que por sua vez ir especificar o nome ou ip das mquinas as quais deseja que o agente colete. O agente ser enviado atravs da rede at as estaes que estiverem rodando sua plataforma de agentes e invocar seus respectivos mtodos responsveis pela coleta das informaes.

50

Figura 10: Ambiente da soluo computacional.

O prottipo consiste de um agente estacionrio e de agentes mveis. O agente estacionrio cria os agentes mveis, que se deslocam para as mquinas escolhidas pelo gerente. Como mostra a figura 11:

Figura 11: Ambiente da mobilidade.

51

Ao chegarem nas mquinas a serem coletadas, o agente invoca uma biblioteca DLL atravs de uma chamada JNI, passando os parmetros para obteno de algumas informaes na plataforma Windows que no possvel se obter com Java puro, como quantidade de memria fsica e memria utilizada, alm de outros mtodos responsveis pela coleta de informaes. Aps coletar os dados, o agente envia um relatrio para a estao do gerente, onde fica o agente estacionrio. Este relatrio foi implementado apenas para fins de testes, para verificar se o agente realmente coletou as informaes, por isso no consta no modelo computacional. A relao dos dados coletados so exibidos atravs de um JtextArea e logo aps ser inserido em banco de dados Mysql para consultas estticas posteriores.

5.1.1 Criao dos Agentes Este trabalho baseia-se no modelo mestre e escravo onde o primeiro um agente estacionrio responsvel por criar, mover os agentes mveis (escravos). O agente mestre recebe o endereo (ips ou nome das mquinas) que o gerente deseja obter as informaes, esses endereos sero armazenados em um arraylist onde este ser passado como parmetro para o agente se deslocar. A criao dos

agentes mveis pertence classe AgenteMestre que pode ser vista no cdigo 1 do anexo a. A classe AgenteMestre cria os agentes mveis atravs do comando myLauncher.execCommand() (linha 20 do cdigo 1), este por sua vez recebe como parmetro um objeto do tipo Command. Este ir executar a criao atravs do construtor que recebe como parmetro Command.START_AGENT (linha 13 do cdigo 1).

5.1.2 Implementao do agente O desenvolvimento da classe do Agente realizado por meio da herana da classe Agent, contida nas bibliotecas do SACI. Essa classe AgenteMovel (escravo), a encarregada de mover se para o host remoto. Essa mobilidade acontece atravs do mtodo move que pode ser visto no anexo b, na linha 59.

52

No cdigo 2 do anexo b (linha 38), pode ser visto o mtodo initAg(), responsvel por iniciar o agente, pertencente a classe AgenteMovel. Este mtodo chamado automaticamente assim que o agente mvel criado e recebe como parmetros a mquina para onde o agente deve viajar. Tambm nesse anexo pode ser visto (linha 49) o mtodo run(). Este mtodo executado sempre que o agente mvel criado ou movido. Primeiramente, se a varivel Estado for igual a Viajando, o agente move-se para a mquina onde deve executar sua tarefa e modifica a varivel Estado para Coletando. Em seguida, depois que o agente chega mquina destino, se da o inicio da coleta de informaes.

5.1.3 Execuo das tarefas pelo agente no destino Uma vez o criado o agente no seu destino, se da o inicio das chamadas dos mtodos, o que pode ser avaliado no anexo c (linha 62). Nesta etapa o agente chama todos os mtodos que ficaro responsveis por gerar as informaes desejadas. Estes mtodos so herdados da classe systemInf, que pode ser visto no anexo d. Pode ser visualizado nesse anexo (linha 164) as declaraes das funes nativas (native) que sero utilizadas para chamar a DLL atravs do Java Native Interface (JNI). Tambm h uma inicializao esttica (static) para carregar a DLL na memria. Esta inicializao esttica garante que antes da primeira chamada a uma funo da classe systemInf, a DLL ser carregada na memria. Aps coletadas as informaes atravs dos mtodos, o agente por sua vez enviar um relatrio para o gerente com todas as informaes coletadas, e logo aps so inseridas automaticamente no banco de dados.

5.1.4 Implementao da DLL A DLL tem a tarefa de retornar a quantidade total de memria fsica e a quantidade de memria em uso. No anexo e, pode ser visto o cdigo da funo Java_systemInf_getAvailPhysical(), que a primeira funo da DLL que executada assim que a mesma carregada na memria. Pode-se observar na terceira linha o comando #include do arquivo systemInf.h. Este arquivo deve ser gerado a partir de

53

uma classe Java com a ferramenta javah, utilizando a opo -jni. Na funo Java_systemInf_getAvailPhysical() foi utilizada a funo GlobalMemoryStatus(), que faz parte da Application Programming Interface (API) do Windows. A funo GlobalMemoryStatus obtm dados sobre a memria livre e a memria total do sistema.

5.1.5 Armazenamento dos dados Aps coletar as informaes o agente invoca o mtodo responsvel por inserir no banco. Para insero foi utilizado o software Mysql Server 5.0, devido as seguintes caractersticas: Portabilidade (suporta praticamente qualquer plataforma atual); Excelente desempenho e estabilidade; Pouco exigente quanto a recursos de hardware; um Software Livre; Compatibilidade com a maioria das linguagens de programao; Replicao facilmente configurvel; Possui base de dados dinamicamente expansvel; Facilidade de uso; Suporte a esquemas de tabelas

Na figura 12 podem ser visualizadas as relaes entre as tabelas. A tabela Maquina, possui relao um para n (1:n), com todas as demais tabelas, servindo como parmetro para consultas posteriores aos dados armazenados.

54

Figura 12: Modelo Entidade Relacionamento (ER) da base de dados utilizada.

5.1.6 Instalao das ferramentas A plataforma SACI pode ser encontrada em <http://www.lti.pcs.usp.br/saci/> onde escolhido no menu download. O arquivo recebido pelo download o SACI.zip Esse arquivo compactado composto por cinco subdiretrios, listados abaixo: SACI/BIN/: arquivos responsveis pela inicializao do SACI; SACI/DOC/: documentao do SACI; SACI/SRC/: bibliotecas utilizadas pelo SACI; SACI/ EXAMPLES/: exemplos de programao de agentes; SACI/ULIB/: diretrio onde devero ficar as classes que foram

implementados os agentes. Para compilar as classes do SACI deve estar instada a mquina virtual Java

55

1.4 ou superior, deve se configurar as variveis de ambiente, incluindo no classpath o arquivo JAR que se encontra no subdiretrio BIN do SACI. No caso, segue um exemplo para ser executado em ambiente Windows. Primeiramente, configurar o classpath: CLASSPATH = %CLASSPATH%;.; c:\saci\bin\saci.jar;

5.2 Estudo de caso O estudo realizado considera um ambiente distribudo de um setor jurdico, de atendimento comunitrio da UNICRUZ - Universidade de Cruz Alta, o qual pertence ao curso de direito, que apresenta uma grande demanda de atendimentos populao carente ou de baixa renda, este atendimento realizado por alunos do curso. Foi escolhido este setor devido a grande diversidade de mquinas instaladas (diferenas de marcas, capacidades de CPUs e softwares), e devido a problemas de correntes por motivos de hardware. Possuindo em sua instalao atual: Hardware: * Athlon Xp 1.26GHz, 384 MB memria DDR, placa de rede 10/100 megabits; * Pentium 4. 1.80GHz, 512 MB memria DDR, placa de rede 10/100 megabits; * Pentium 4 1.80GHz, 352MB de memria DDR, placa de rede 10/100 megabits; * Sempron 2.0GHZ, 1.0GB memria DDR2, placa de rede 10/100 megabits; * Sempron 1.60GHZ, 512 memria DDR, placa de rede 10/100 megabits; * Servidor Athlon Dual Core 5000+ 2.61 GHZ, 1.0 GB memria DDR2, placa de rede 10/100 megabits;

56

Software: * Microsoft Windows XP; * Windows 2003 server; * Os alunos utilizam sistema proprietrio de cadastro de clientes,

alm de planilhas do Microsoft Excel; Protocolo TCP/IP; Conectadas Internet atravs de uma rede MAN (Metropolitan

Area Network); O sistema foi iniciado de um notebook (gerente), Sempron 3400+ 1.81Ghz, memria DDR2, placa de rede 10/100 megabits. A proposta consiste na utilizao dos agentes de software que disparariam uma aplicao que coletaria dados sobre hardware e softwares instalados em toda a rede do setor e armazenaria os dados coletados em banco de dados mysql. Prope-se a utilizao da plataforma de agentes Simple Agent

Communication Infrastructure (SACI) cuja escolha foi determinada por: a) Ter desenvolvimento em linguagem Java o que permite independncia de plataforma; b) Ter a possibilidade de implementao tanto de um sistema multi-agentes, quanto de agente mveis comuns; c) Ser uma ferramenta gratuita; d) Existir estudos para sua colocao em aparelhos mveis, como PDAs e celulares; e) Simplicidade de implementao e boa documentao;

A escolha da linguagem C est associada s chamadas das Application Programming Interface (APIs) em ambiente Windows. As APIs correspondem a uma srie de funes do sistema - mais especificamente do Kernel - que tem como

57

objetivo fazer um intermdio de comunicao dos aplicativos com o hardware. Esta comunicao se d atravs da DLL, essas poderiam ser da mesma forma construda em outras linguagens (Como Linguagem DELPHI, Microsoft Visual Basic, entre outras). O nico requisito seria a possibilidade de integrao com o recurso JNI da linguagem Java.

5.2.1 Testes realizados Aps a implementao foram executados o ambiente SACI e enviado os agentes de software para executar uma determinada tarefa. A seguir ser ilustrado o processo de execuo dos agentes. Para a utilizao do sistema, primeiramente as classes da implementao devem estar no diretrio usurio do SACI (saci/ulib/). Aps deve ser iniciado o SACI para que seja criado o launcher. Para isto existem duas opes: a) atravs da execuo do arquivo saci.bat : que inicia toda a interface grfica do SACI com suas ferramentas, contendo um administrador para o launcher, conforme ilustra figura 13; b) atravs da execuo do arquivo launcherd.bat que exibe apenas uma janela em modo texto, conforme ilustra figura 14.

Figura13: SACI.bat.

58

A Figura 14 apresenta a iniciao da plataforma atravs do bat launcherd que se encontra na pasta saci/bin o qual inicia a chamada da plataforma SACI.

Figura 14: Iniciando a plataforma SACI atravs launcherd.bat.

Devido ao sistema neste estudo de caso estar distribudo em seis mquinas, deve-se primeiramente criar um launcher em cada mquina onde os agentes mveis iro coletar. Tendo-se criado os launchers necessrios, a prxima etapa consiste em carregar a interface do agente mestre e criar os agentes, inserindo se o endereo de destino (ip ou nome do host) como mostrado na Figura 15.

Figura 15: Inserindo o endereo destino dos agentes.

59

Na parte inferior possvel identificar os botes de Mover, e Sair. Aps a escolha da opo Mover, o resultado apresentado na Figura 16. Na figura 16 abaixo pode se visualizar em modo texto, o momento que foi criado o agente no host remoto.

Figura 16: Momento que foi criado o agente no host remoto.

Na figura 17 pode ser visto o momento que o agente retorna ao host de origem, exibindo uma tela ao gerente da relao do que foi coletado. Na parte inferior da janela possvel identificar o boto OK aps clicar nesse boto as informaes sero armazenadas em banco de dados Mysql, para serem consultadas mais tarde, e tambm para que seja possvel fazer relatrios mais precisos, como possveis alteraes com base na data que foi realizada a coleta. As informaes coletas so as seguintes: Sistema Operacional Verso do sistema op. Usurio logado Ip do host e Mac Nome do host Arquitetura processador Velocidade processador Modelo processador Memria fsica e usada Espao em disco Seriais HD e Placa-me Impressora e Aplicativos

60

Figura 17: Momento em que o agente retorna com a informao coletada.

5.3

Avaliao dos resultados sobre agentes

Os resultados obtidos dos experimentos alcanaram seu objetivo de forma satisfatria, pois foi possvel utilizar agentes SACI e o recurso de mobilidade para percorrer uma rede de computadores para acessar os hosts coletando informaes no que se refere a hardware e software existentes. Dessa forma mostrou-se que possvel o uso de agentes de software para executar tarefas de busca de informaes a nveis gerenciais que favorecem a tomada de deciso. Algumas dificuldades iniciais foram encontradas na fase de testes, durante o ato de mover os agentes para a estao remota, o agente no conseguia migrar, aps algumas verificaes, constatou-se que necessitava de configuraes

61

adicionais no firewall das estaes remotas. Outra dificuldade encontrada, aps o agente chegar na estao destino, ele no retornava as informaes desejadas, foi constatado que a mesma deveria ter privilgios de administrador para execuo das tarefas desejadas. Outro fato que merece ateno, aps coletadas as informaes no host remoto, deve se reiniciar o launcher neste host para se realizar uma nova coleta. Outro fato observado na plataforma SACI, durante o processo experimental, o teste de indisponibilidade de rede foi realizado enquanto o agente foi enviado para um destino. O comportamento do agente mostrou-se satisfatrio, pois ele no perdeu as informaes coletadas retornando assim que a rede foi restabelecida. Uma desvantagem dos agentes mveis a necessidade de se instalar uma plataforma do agente em cada mquina que os agentes forem visitar. A outra, que quanto mais seguro, mais baixo o desempenho do sistema. importante observar que o experimento ficou restrito a uma rede local, sendo executado repetidamente. Em uma aplicao real o fator de segurana deve ser considerado.

CONSIDERAES FINAIS

6.1 Concluses

O constante crescimento dos SI nas empresas somado as constantes aquisies tecnolgicas em um parque computacional, bem como o acelerado crescimento das redes que as interligam, vem causando um grande impacto na rea de gerenciamento tecnolgico, ocasionando um acmulo de tarefas a nvel gerencial. A busca por uma soluo que permite disponibilizar as informaes de maneira a poupar o exaustivo trabalho de controle computacional, em ambiente distribudo, pode tornar o processo de gerenciamento mais dinmico. A pesquisa bibliogrfica mostrou que tecnologia de agentes mveis adequada para esse ambiente de crescimento de complexidade computacional, devido a suas caractersticas de Interoperabilidade de sistemas, e delegao de tarefas. Os experimentos realizados comprovaram na prtica a viabilidade terica dos agentes para estas finalidades. O modelo computacional apresentado provavelmente deve funcionar com outras solues de agentes, o que abre uma linha de estudo para avaliar e comparar os resultados obtidos utilizando SACI e outras solues de agentes como Voyager, Jade ou Soma. Houve uma certa dificuldade inicial na escolha da plataforma de

desenvolvimento de agentes, devido a maioria no possuir uma documentao muito detalhada em questes de implementao, sendo que a maioria foca muito em aspectos tericos de agentes, este fato foi observado principalmente na plataforma JADE. Os resultados obtidos demonstram o que se esperava no incio deste trabalho, isto , os agentes podem ser utilizados como ferramenta por gestores de TI e suas equipes. O estudo de caso, considerando a linguagem Java, agentes SACI, JNI, DLL, apresentou-se vivel.

63

6.1.1 Contribuies Cientficas

Diversas contribuies cientficas podem ser atribudas ao presente trabalho: A possibilidade de um maior controle computacional nas empresas sem a necessidade de deslocamento fsico. Proposta de um modelo flexvel com possibilidade de agregao de novas funcionalidades sem a necessidade de grandes intervenes no sistema. Armazenamento dos dados coletados. No trabalho de Liesenberg (2004), apresenta a especificao e a implementao de um prottipo de software que utiliza agentes mveis para fazer monitoramento de computadores em uma rede, como o uso de processador e espao em disco, mas no considerado o armazenamento dessas informaes para consultas posteriores. Pode ser usado como um sistema de suporte a deciso (SSD), como por exemplo, o gestor pode tomar uma deciso mais precisa sobre o parque de mquinas com base nas informaes coletadas pelos agentes.

Sendo assim verifica-se que o trabalho desenvolvido tem uma grande contribuio para o incio do desenvolvimento de tecnologias baseadas em agentes mveis, onde certamente este trabalho possui extenses que vo alm das comentadas acima.

6.2 Trabalhos Futuros Propem-se como extenses, vrios estudos que complementam o trabalho desenvolvido: a) Em trabalhos futuros pode se realizar a implementao dos agentes mveis para outros sistemas operacionais como Linux que est em crescente expanso nas corporaes, fazendo com que o agente reconhea o sistema

64

operacional e invoque as funcionalidades necessrias. b) Incluir novas funcionalidades como nmero de licenas dos softwares proprietrios, processos que esto sendo executados na estao remota, alm de logs de acesso a internet. c) possvel integrar mais agentes com outras funes como um agente que gerencie a banda da rede. d) Pode se realizar uma melhoria na interface grfica do prottipo, alm de uma implementao de banco mais elaborada em termos de relatrios. e) Implementar tcnicas de inteligncia artificial, fazendo com que o agente tenha algum aprendizado conforme dados estatsticos de busca.

7 Referncias

ABLE.

Agent

Building

and

Learning

Environment.

Disponvel

em:

<www.alphaWorks.ibm.com/tech/able>. AGENT BUILDER. Disponvel em: <www.agentbuilder.com>. AGLETS. Disponvel em: <http://www.trl.ibm.com/aglets/>. ALBERTIN, A. L. Administrao de informtica um estudo sobre seus fatores crticos de sucesso no setor bancrio privado nacional. Salvador: XVII ENAMPAD, v.2, 1993. ALVES, Flvio de Oliveira. Simulao Multi-Agente em Gesto de Projetos de Software em Ambientes de Programao Extrema. Monografia Mestrado em Cincia da Computao Porto Alegre 2009. AUDY, J. L. N. et al. Modelo de planejamento estratgico de sistemas de informao: a viso do processo decisrio e o papel da aprendizagem organizacional . In: Encontro nacional da associao nacional dos programas de ps-graduao em administrao, 24, 2000, Florianpolis. Anais. Florianpolis: ANPAD, 2000. BEAL, Adriana. Introduo gesto da tecnologia da informao. Disponvel em: <http://www.vydia.com.br>. BELLIFEMINE Fabio, CAIRE Giovanni, GREENWOOD Dominic. Developing Multi Agent Systems with JADE Wiley Computer Publishing 2007. BELLIFEMINE, Fabio; CAIRE, Giovanni; TRUCCO, Tiziana; RIMASSA, Giovanni. Jades Programming Guide. 2005. Disponvel em:

<HTTP://jade.tilab.com/doc/programmersguide.pdf>. BIGUS, Joseph P. and BIGUS, Jennifer. Construction Intelligent Agents with Java: a programmers guide to smarter applications. Wiley Computer Publishing, 1998. BOHORIS, C.; PAVLOU, G.; CRUICKSHANK, H. Using mobile agents for network performance management. Network Operations and Management Symposium, 2000. Honolulu, HI, USA. BRAUN, Peter; ROSSAK, Wilhelm. (Ed.). Mobile Agents - Basic Concepts, Mobility Models, & The Tracy Toolkit. San Francisco: Morgan Kaufmann, 2005.

66

CAMPOS, Filho, M.P. Os sistemas de informao e as modernas tendncias da tecnologia e dos negcios. Revista de Administrao de Empresas, Rio de Janeiro, v. 34, n. 6, 1994. CLARO, Daniela Barreiro. Integrao de Base de Dados utilizando a Mobilidade de Cdigo. Dissertao (mestrado) Universidade Federal de Santa

Catarina,Florianpolis, SC, 2000. CORDENONSI, Jorge Lus. Alinhamento das estratgias de TI e de negcio: as melhores prticas utilizadas pelos bancos privados brasileiros. In: ALBERTIN, A. L.; ALBERTIN, R. M. (Org.). Desafios da tecnologia da informao aplicada aos negcios. So Paulo: Atlas, 2005. DIAS, D. S.; MENDES NETO, J. F. S.; BAHIENSE, G. C. Eficcia de sistemas de informao, participao do usurio e mudana organizacional. Salvador, XVII ENANPAD, v.2, 1993. ELEFTHERIOU, George; GALIS, Alex. Mobile Intelligent Agents for Network Management Systems. London Communications Symposium. Londres, 2000. ETZIONI, O. & Weld, D. A softbot based interface to the Internet.: Communications of ACM, v.37, n.7, p.72-76, 1994. FIPA OS. Disponvel em: <http://fipa-os.sourceforge.net/projects/fipa-os/>.

GOSSIP. Disponvel em: <https://gna.org/projects/gossip/>. GIL, Antnio Carlos. Mtodos e Tcnicas de Pesquisa Social. 5. ed. So Paulo: Atlas, 1999. GRIGOLETTI, Pablo. Uma Arquitetura Baseada em Sistemas Multiagentes para Simulaes em Geoprocessamento. Dissertao Mestrado em Cincia da Computao - Universidade Federal do Rio Grande do Sul, 2007. HBNER, Jomi F.; SICHMAN, Jaime S. SACI programming guide. So Paulo, 2003. Disponvel em: <http://www.lti.pcs.usp.br/saci/doc/programmingGuide.pdf>. JADE. Disponvel em:< http://jade.tilab.com>. KOTTTWITZ, Cassiano. Um Agente SNMP em Plataforma Linux para Aplicao em Cluster. Monografia Graduao em Cincia da Computao Unicruz, Universidade de Cruz Alta, RS, 2006. KUDYBA, S. e DIWAN, R. The impact of information technology on US industry. Japan and the world economy, 14. LANGE, Danny B.; OSHIMA, Mitsuru. Programming and deploying Java mobile agents with Aglets. Reading: Addison-Wesley, 1998.

67

LAUDON, K. C. e LAUDON, J. P. Sistemas de informao. Rio de Janeiro: LTC, 1999. LIESENBERG, Fernando. Desenvolvimento de Agentes Mveis para

Monitoramento de Computadores em Rede. Trabalho de Concluso de Curso em Cincia da Computao Blumenau, Sc, 2004. MOURA, Ralf. Arquitetura de Gerenciamento de Redes Baseado em Agentes Mveis Mutveis. Dissertao Mestrado em Automao - Universidade Federal do Esprito Santo, ES, 2007. OBRIEN, James A. Sistemas de Informao e as decises gerenciais na era da Internet. So Paulo, Editora Saraiva 2004. PINSONNEAULT, A. e KRAEMER, K. L. The impact of information technology on middle managers. Mis Quarterly, v.17, n.3, set. 1993. POSSANI, Cleverton, Marlon. Uma proposta de Monitoramento de

Computadores com SNMP Atravs da WEB. Monografia Ps-Graduao em Cincia da Computao Unicruz, Universidade de Cruz Alta, RS, 2004. REIS, Ana Lcia Anacleto. Comparao SNMP x agentes mveis para gerncia de redes. 2001. 122 f. Dissertao (Mestrado em Cincia da Computao) - Centro Tecnolgico, Universidade Federal de Santa Catarina, Florianpolis. Disponvel em: <http://www.bc.furb.br/docs/TE/2001/266245_1_1.pdf>. REZENDE, D. A. e ABREU, A. F. Tecnologia da informao aplicada a sistemas de informao empresariais. So Paulo: Atlas, 2000. RICHTER, Jeffrey. Programming applications for Microsoft Windows. 4. ed. Redmond: Microsoft Press, 1999. SANTANA, Andr e FREITAS, GUSTAVO. Gerenciamento de TI. faculdade de cincias aplicadas sagrado corao. Linhares, 2006. SILVA, Leonardo, Ayres. Estudo e Desenvolvimento de Sistemas Multiagentes usando JADE. Monografia Graduao em Cincia da Computao Unifor, Universidade de Fortaleza, CE, 2003. Disponvel na Internet http://

jade.tilab.com/papers/2003/monografia.pdf. SOMA. Secure and Open Mobile Agent. Disponvel em:

<http://lia.deis.unibo.it/research/SOMA>. STAIR, Ralph M. Princpios de sistemas de informao uma abordagem gerencial. So Paulo, Editora LTC, 1998. TANEMBAUM, Andrew. Computer Networks. 4 ed. Ed. New Jersey: Elsevier.

68

TAPSCOTT, D. Economia digital: promessa e perigo na era da inteligncia em rede. So Paulo: Makron Books, 1997. TAURION, Cezar. Consolidao de servidores. IBM Business Consulting Services. Disponvel http://www.ibm.com/br/services/articles/2003/07/a05m010t12s022003-c.shtml Acesso em: 23 Jul 2003. TORKZADEH, G. e DOLL, W. J. The development of a tool for measuring the perceived impact of information technology on work. Omega, v.27, n.3, p.327339, jun. 1999. UNISALECIANO. Disponvel em: <http://www.salesianolins.br/>. UTO, Nelson. Segurana de Sistemas de Agentes Mveis. Dissertao Mestrado em Cincia da Computao Universidade Estadual de Campinas Instituto de Computao, Campinas, SP, 2003. WEISS, Gerhard. Multiagent Systems. A Modern Approach to Distributed Artificial Intelligence, MIT Press, 1999. WOOLDRIDGE, Michael; JENNINGS, Nicholas R.; Intelligent Agents: Theory and Practice. Knowledge Engineering Review, January 1995. em

ANEXO A

Cdigo 1:Trecho onde so criados os agentes mveis da classe AgenteMestre.

ANEXO B

Cdigo 2: Parte do cdigo do agente mvel da classe AgenteMovel.

ANEXO C

Cdigo 3: Continuao do cdigo do agente mvel da classe AgenteMovel.

ANEXO D

Cdigo 4: Parte do cdigo da classe systemInf.

ANEXO E

Cdigo 5: Funes para obter a memria livre e total.

You might also like