No seu trabalho diário o usuário do SAFO dispõe, numa única interface gráfica, de várias utilitários para auxiliar na execução normal de suas tarefas. Ao se deparar com um problema desconhecido pode, através de interface gráfica também, solicitar ao módulo Assistente - que contém a máquina de inferência do SAFO - uma ajuda no sentido de identificar as causas prováveis daquele problema e, se for o caso, recomendações para atingir a solução do problema. A Figura 4.3 apresenta o funcionamento do SAFO.
Na figura acima é mostrada a situação onde o usuário, ao utilizar um dos utilitários integrados na interface gráfica, toma conhecimento de um problema no qual necessita ajuda para atingir a solução correta, ativando assim o módulo de auxílio. A máquina de inferência do SAFO é representada pelo módulo Assistente, que é responsável entre outras coisas, pelo tratamento das regras integrantes da base de conhecimento e apresentação das recomendações.
A implementação do sistema foi feita através de módulos:
Módulo Principal - O SAFO é formado por um conjunto de módulos ( utilitários) independentes, ativados a partir do módulo principal.
Módulo dos Utilitários - No desenvolvimento do sistema, houve a grande preocupação de padronização dos módulos dos Utilitários para facilitar o seu desenvolvimento e agilizar a implementação dos dez utilitários. Todos tem a mesma estrutura principal. Em linhas gerais, o que se altera de um utilitário para outro são as variáveis e a função que executa o utilitário em si, após montar o formato final da linha de comando e criar o processo de execução do utilitário com todas as suas particularidades.
Módulo Assistente - Sempre que o usuário necessitar de um auxílio na interpretação dos resultados e pressionar o botão `Assistant', a rotina apply-func() é ativada. Primeiramente acessa o arquivo de saída dos resultados, compara com arquivo de chaves e retorna com a chave apropriada. Verifica se é uma mensagem conhecida. Se não for, chama a rotina nova-mensagem (), caso contrário, acessa o arquivo de recomendações - base de conhecimento, localiza as regras através da chave e abre uma nova janela apresentando os resultados. A seguir é apresentado um exemplo do arquivo de chaves ferrping-err:
ping-chave1, Network is unreachable
ping-chave2, 100% packet loss
ping-chave3, no answer from
ping-chave4, unknown host
ping-chave5, host unreachable
O arquivo de recomendações (chave1) é único para todos os utilitários e a sua estrutura é formada pelas informações de nome do utilitário e identificação da chave e as regras com causas prováveis da mensagem e sugestões/comentários para tentar solucionar o problema. Uma descrição completa será apresentada na seção 4.4.
Módulo Timer - O módulo Timer é ativado quando o usuário deseja executar algum utilitário em background, seja ela parte integrante da interface gráfica, ou não.
Informações mais detalhadas constam do Anexo 6 onde é apresentada uma documentação do sistema.