• Sonuç bulunamadı

3. BULGULAR

3.2. İkinci Modele Ait Bulgular

Como relatado no capítulo 6, os desafios de adquirir e disponibilizar as informações a serem monitoradas pela ferramenta JMonitor estão vinculados a concepção dos sistemas distribuídos a serem monitorados.

Durante a concepção dos sistemas AVDs ou AVCs à serem monitorados, processos clientes periodicamente terão de enviar informações requisitadas ao processo servidor. O processo servidor por sua vez terá de criar um documento para o serviço de monitoramento. Este documento disponibilizará suas informações, bem como as informações provenientes de todos os seus clientes. Este documento deverá ser também disponibilizado periodicamente com valores atualizados.

Para que fosse possível o monitoramento do AVC de testes, o mesmo teve que receber extensões, conforme demonstrado na Figura 8.4. Na mesma Figura,

pode ser observado que o código que representa os clientes do AVC de testes recebeu três extensões: (i) coleta de Dados; (ii) geração do arquivo XML e; (iii) envio do arquivo XML ao processo servidor.

O processo servidor, por sua vez, recebeu também três extensões: (i) código preparado para receber arquivos XML enviados pelos clientes; (ii) coleta de dados do processo servidor e; (iii) junção dos dados de todos os clientes com os dados do processo servidor em um mesmo arquivo XML final gerado. Este XML já está preparado para ser processado pela ferramenta JMonitor.

Figura 8.4 - Arquitetura do AVC de testes pronta para enviar dados à ferramenta JMonitor.

Com foco no processo cliente, codificou-se as extensões por meio de uma

thread que periodicamente executa as três etapas mantendo sempre a mesma

sequência: coleta de dados, geração do arquivo XML e envio do arquivo XML ao processo servidor

A extensão referente à coleta de dados foi estruturada de forma a armazená- los temporariamente como pares nome e valor. Os dados são mantidos armazenados até que todos sejam coletados e enviados para a próxima extensão.

Na próxima extensão o arquivo XML que descreve os dados do processo em execução será gerado.

Existem diversas formas de se coletar dados e armazená-los em pares nome e valor. Essa variedade se deve às diferentes linguagens de programação e sistemas operacionais existentes na atualidade.

No estudo de caso desse trabalho optou-se por utilizar a tecnologia SNMP [SCHIMID, 2007] e comandos do próprio sistema operacional Ubuntu [UBUNTU, 2012] para a coleta de dados referentes à utilização e disponibilidade dos recursos computacionais envolvidos no ambiente.

As coletas de dados referentes ao acompanhamento de valores com fins de depuração, foram codificadas nas próprias linguagens que as declaram e foram também registradas sobre pares "nome e valor". Esses pares "nome e valor" representam por exemplo, interações de usuários e são valores críticos a um ambiente sincronizado.

Como ilustrado na Figura 8.4 após ser processada à extensão de coleta de dados, esses dados são também descritos no arquivo XML gerado na próxima extensão. Seguindo a sequência, a extensão de geração do arquivo XML é executada. Nesta, os dados que foram coletados e temporariamente armazenados em pares nome e valor, são descritos em documentos XML.

As tecnologias utilizadas para a geração dos documentos também pode variar de acordo com a linguagem de programação e gosto dos desenvolvedores dos sistemas AVDs ou AVCs. Para o estudo de caso desse trabalho foi utilizado a tecnologia libxml [LIBXML, 2012].

Com o arquivo XML que descreve os dados coletados gerado, a thread executa a última extensão dos processos clientes. Essa última extensão processa o envio do arquivo XML ao servidor do AVC.

O envio do arquivo XML ao servidor do AVC foi codificado através de um cliente socket que conecta um respectivo servidor socket presente na primeira extensão do processo servidor do AVC de testes.

Com foco no processo servidor do AVC de testes, codificou-se as extensões também por meio de thread, da mesma forma que nos processos clientes. Uma

thread periodicamente executa três etapas mantendo sempre a mesma sequência:

dados do processo servidor e junção dos dados de todos os clientes em um mesmo arquivo XML final gerado.

A extensão referente ao recebimento de dados dos clientes foi codificada por meio de um servidor socket e uma thread interna da extensão, que é mantida aguardando os arquivos XML de seus respectivos clientes.

Quando a thread que processa sequencialmente as extensões executa esta etapa, esta thread coleta todos os arquivos XML já disponíveis no código do servidor do AVC de testes. Em outras palavras, coleta os arquivos XML já recebidos e disponibilizados pela thread interna da extensão.

Seguindo a próxima extensão, a coleta de dados do processo servidor do AVC de testes é executada. A coleta de dados não difere à dos processos clientes. Da mesma forma, dados são consultados por meio da tecnologia SNMP ou comandos do próprio sistema operacional e temporariamente armazenados em pares "nome e valor", até que seja executada a próxima extensão do processo servidor do AVC.

Na próxima e última extensão do servidor do AVC de testes a ser executada, é realizada a junção dos dados coletados do processo servidor com os dados de todos os respectivos clientes conectados ao mesmo. Essa junção é efetuada por meio da geração de um arquivo XML final, preparado para ser processado pela ferramenta JMonitor.

Com todas as extensões descritas e codificadas, o AVC de testes está pronto para utilizar a ferramenta JMonitor. Pretende-se utilizar a ferramenta para facilitar a visualização de informações sobre todos os processos em execução, que mesmo estando distribuídos por diferentes redes, compõem um mesmo ambiente virtual distribuído e ou colaborativo.

O próximo tópico provê detalhes de como foram integrados o AVC de testes com os diferentes módulos da ferramenta JMonitor.

Benzer Belgeler