• Aucun résultat trouvé

Mesure de l’aire de l’interface avec Intersurf

A informacao proveniente dos agentes á filtrada pelo prá-processador de informacao. Este tem como objectivo providenciar um conjunto de mecanismos capazes de construir diferentes formas de ver a informacao de gestao.

A camada de abstraccao de informacao assenta no conceito de tarefas. Cada tarefa á definida por um objecto do tipo Task que encapsula a seguinte informacao:

• Name Í nome pelo qual á identificada a tarefa.

• Function Í referencia para um objecto do tipo Function.

• Start Í define o instante temporal em que a tarefa inicia a sua operacao. Este apresenta-se como uma cadeia de caracteres (String) com o formato ”yyyy.MM.dd.hh.mm.ss„ onde yyyy define o ano, MM define o mes, dd representa o dia e hh, mm, ss definem a hora, minutos e segundos, respectivamente.

• Period Í define o perıodo de repeticao da tarefa. O formato á o mesmo usado para o Start.

• End Í instante a partir do qual a tarefa deixa de ser executada.

• Status Í estado de execucao da tarefa. Pode assumir os valores RUNNING ou STTOPED.

A definicao da operacao passa pela construcao de funcoes matemâticas sobre a informacao de gestao. Para o efeito, sao criadas funcoes bâsicas que podem ser encadeadas para criar funcoes mais complexas. As funcoes bâsicas sao classificadas em tres categorias:

• Funcoes algábricas simples: soma, subtraccao, divisao e multiplicacao.

• Funcoes algábricas complexas: mádia, derivada, etc.

Funcoes gerais: threshold, correio, aviso, grâfico, registo, etc.

Cada funcao define uma interface especıfica (AgentQuery) que permite encadear qualquer funcao como argumento de outra e, consequentemente, definir funcoes mais complexas. A interface AgentQuery á definida como se segue:

package pt.ua.nms.query;

import java.util.NoSuchElementException;

/** Every query operation must implement AgentQuery. This maintains * consistency over Query Filters.*/

public interface AgentQuery {

/** Each AgentQuery must return a String value * associated to an OID */

public Object getValue(String oid) throws NoSuchElementException; public void query() throws AgentException;

/** Make a query to an SNMP Agent. The results are stored and returned * by getValue(String).*/

public void query(String[] oids) throws AgentException; }

Na prâtica, cada funcao á derivada (em termos de OO) de uma classe comum (Figura 6.13). As funcoes definidas pela classe comum permitem definir um comportamento identico para todas as classes derivadas. Este facto permite encadear um numero de funcoes de modo a tornar possıvel a construcao de funcoes complexas com base nas existentes.

AgentQuery

Query

ThresholdQuery

FilterQuery

FilterSchedule Sum Derivative

. . . . . .

Interface Classe Heranca

Figura 6.13 Í Érvore de heranca das classes de funcoes.

A definicao de uma operacao com base numa funcao mais complexa á definida encadeando objectos da seguinte forma:

...

agentObject = new Query(...); // Generic Query schedule = new Schedule(...); // Sheduling definition AgentQuery query = new FilterSchedule(schedule, new ThresholdQuery( boundListener,

lowerLimit, upperLimit, agentObject)); ...

No exemplo anterior, o objecto query representa uma consulta peri´dica (FilterSchedule) sobre o agentObject (que, por sua vez, representa uma consulta genárica). Se o valor exceder os limites definidos por lowerLimit e upperLimit serâ enviada uma notificacao ao objecto boundListener que, em termos de implementacao define um mátodo Í actionPerformed() Í invocado se determinado evento acontecer (Figura 6.14).

ThresholdQuery Query(...) getValue(...) Query Query(...) getValue(...) Agente SNMP SNMP BoundListener FilterSchedule Query(...) getValue(...) schedule Scheduler start period end lowerLimit upperLimit boundListener

Figura 6.14 Í Encadeamento de funcoes.

Este processo permite associar qualquer numero de funcoes em qualquer ordem e, consequentemente, definir uma operacao mais complexa.

Para o utilizador, o desenvolvimento de uma tarefa de gestao á efectuada graficamente, com o auxılio de um assistente. A primeira fase consiste na seleccao da funcao (Figura 6.15).

Figura 6.15 Í Assistente de funcoes 1/2.

O passo seguinte passa pela seleccao dos argumentos da funcao (Figura 6.16).

Figura 6.16 Í Assistente de funcoes 2/2. Os argumentos, dependendo da funcao, podem ser:

• O resultado de uma outra funcao (encadeamento).

• Uma constante.

• Um OID.

Ap´s a definicao da funcao á necessârio definir a calendarizacao, onde se indica o tempo de inıcio, o perıodo e o instante a partir do qual a operacao deixa de ser realizada. No caso de estar definido apenas o inıcio, a operacao serâ executada apenas uma vez. Se nao for definido apenas o fim, a operacao serâ executada periodicamente, terminando quando o gestor o desejar.

A calendarizacao á definida graficamente na janela Task Planner (Figura 6.17). O lado esquerdo da janela apresenta um calendârio que permite seleccionar o ano, mes e dia, bem como a hora, minuto e segundo.

Figura 6.17 Í Janela de definicao de tarefas.

Ap´s a definicao da tarefa á necessârio actualizar o servidor onde esta vai ser executada. O conjunto de tarefas define uma camada de abstraccao de informacao de gestao.

6.4 Conclusoes

O trabalho desenvolvido traduz um primeiro passo para o desenvolvimento de um sistema simples mas suficientemente poderoso para coadjuvar na gestao de uma rede local de comunicacao de dados. Existem alguns pormenores que merecem nova e melhorada abordagem.

Ao nıvel de interface falta comprovar se o conceito utilizado na abstraccao de dados á sugestivo e eficaz num cenârio de gestao de redes e, em caso afirmativo, avancar para o desenvolvimento de novas ferramentas que permitam tomar decisoes sem intervencao directa do utilizador.

O mecanismo de procura inicial preve apenas descoberta de mâquinas por consulta e eco (ping). Este processo estâ actualmente a ser reforcado por uma ferramenta de consulta de DNS (Domain Name Server). Futuramente, preve-se a integracao de ferramentas de descoberta mais eficientes, baseadas na consulta de tabelas de encaminhadores ou na utilizacao de agentes especıficos de descoberta de topologia [Ptopo98].

Um aspecto importante a considerar á a definicao de perfis de trabalho, ou seja, solucoes prá-definidas para sub-grupos de utilizadores. O objectivo á especificar uma estrutura que permita definir o acesso a um determinado tipo de informacao e a determinados servicos de acordo com um perfil (por exemplo, impressoras ou

servidores WWW). Neste sentido á importante considerar quais as MIBs, que tipo de informacao e que meta-variâveis interessam a um determinado perfil.

O desenvolvimento e integracao de ferramentas de decisao automâtica permitirâ aliviar o gestor de tarefas repetitivas e mon´tonas. Neste sentido, a utilizacao de tecnologia de inteligencia artificial ou de mecanismos de controlo baseados em fuzzy

logic deverao ser investigados para o desenvolvimento de um paradigma que permita resolver de forma automâtica alguns problemas de funcionamento que possam surgir.