2.4 Sistemas de Gest˜ ao de Testbed
2.4.4 DES-TBMS
O Distributed Embedded Systems Testbed Management System (DES-TBMS) [61] ´e utili- zado para facilitar o processo de experimenta¸c˜ao para os investigadores, para a automa¸c˜ao em redes mesh wireless e redes de sensores wireless. Este sistema de gest˜ao ´e constitu´ıdo por v´arios componentes, cada um deles respons´avel por tarefas espec´ıficas no processo de experimenta¸c˜ao, incluindo:
• defini¸c˜ao de descri¸c˜oes de experiˆencias num formato padr˜ao; • agendamento e gest˜ao de experiˆencias;
• execu¸c˜ao autom´atica de experiˆencias;
• monitoriza¸c˜ao distribu´ıda dos n´os da rede durante uma experiˆencia; • uma ferramenta de visualiza¸c˜ao para mostrar o estado da testbed ;
• uma ferramenta de avalia¸c˜ao para determinar m´etricas de desempenho dos dados reco- lhidos de experiˆencias.
O DES-TBMS utiliza uma linguagem de dom´ınio espec´ıfico para a defini¸c˜ao de experiˆencias, o DES-Cript. Como gestor de experiˆencias utiliza o componente DES-Exp, que mant´em todas as experiˆencias guardadas na base de dados “Experiment Description” e ´e respons´avel pelo agendamento, execu¸c˜ao e recolha dos ficheiros de log de uma experiˆencia. Os resultados des- tas experiˆencias s˜ao guardados na base de dados “Result Data”. O DES-Mon ´e respons´avel pela monitoriza¸c˜ao dos n´os durante as experiˆencias, guardando os seus dados numa base de dados com o nome de “Monitoring Data”. A visualiza¸c˜ao do estado da testbed ´e feita com o componente DES-Vis. Por fim, o DES-Val utiliza os dados recolhidos nas bases de dados
“Result Data” e “Monitoring Data” para determinar as m´etricas de desempenho para uma ex- periˆencia em particular, conforme definido na sua descri¸c˜ao. Esta arquitetura ´e demonstrada no esquema 2.13 e os diferentes componentes s˜ao depois explicados com maior detalhe.
Figura 2.13: Arquitetura do DES-TBMS [61]
O DES-Exp fornece um gestor de experiˆencias que controla as tarefas de criar, programar e executar experiˆencias. A execu¸c˜ao efetiva de uma experiˆencia ´e realizada automaticamente: o utilizador especifica o tempo de in´ıcio pretendido e ´e notificado por e-mail ap´os a execu¸c˜ao, quando os resultados estiverem dispon´ıveis. Portanto, a realiza¸c˜ao da experiˆencia n˜ao pode ser influenciada pelas intera¸c˜oes entre os investigadores. Isto assegura um grau elevado de reprodutibilidade nos casos em que a mesma experiˆencia ´e repetida v´arias vezes.
A funcionalidade do DES-Exp ´e fornecida por duas aplica¸c˜oes principais. A primeira ´e uma aplica¸c˜ao web implementada como um servlet Java, que permite ao utilizador criar novas experiˆencias a partir do zero ou modificar experiˆencias previamente definidas. Como a hora de in´ıcio ´e escolhida pelo utilizador, ´e poss´ıvel a execu¸c˜ao autom´atica de experiˆencias durante a noite, quando s˜ao esperadas menos interferˆencias causadas por poss´ıveis redes paralelas. Al´em disso, uma unidade de execu¸c˜ao consulta a base de dados, em intervalos regulares, para verificar se existem experiˆencias pendentes, e, em caso de existirem, o DES-Exp re´une o arquivo de descri¸c˜ao associado `a experiˆencia e come¸ca a execu¸c˜ao. A unidade de execu¸c˜ao usa uma API Secure Shell (SSH) para comunica¸c˜ao entre os n´os. No in´ıcio de uma experiˆencia, s˜ao estabelecidas liga¸c˜oes SSH entre todos os n´os participantes, que s˜ao utilizadas ao longo da experiˆencia para configurar os n´os e enviar comandos. Ap´os a execu¸c˜ao da experiˆencia, todos os ficheiros de sa´ıda gerados por comandos s˜ao recolhidos para posterior processamento pelo DES-Eval. Ap´os a p´os-configura¸c˜ao da testbed, esta ´e libertada e podem assim ser efetuadas outas experiˆencias adicionais. Quanto ao DES-Mon, a sua tarefa ´e monitorizar o estado da testbed durante a execu¸c˜ao de uma experiˆencia. ´E recolhido o estado dos n´os participantes numa experiˆencia, por pesquisa nesses mesmos n´os, num intervalo fixo, conforme especificado no ficheiro de descri¸c˜ao da experiˆencia, usando Simple Network Management
Protocol (SNMP) [62] [61]. Os dados recolhidos de cada verifica¸c˜ao consistem no estado do router mesh, o estado das suas interfaces de WLAN e a tabela de routing do kernel de Linux. Esta ´ultima ´e utilizada para visualizar a conectividade durante a experiˆencia com o DES-Vis. Usando a funcionalidade SNMP-Set, podem ser aplicados ajustes personalizados aos router mesh na fase de configura¸c˜ao. O DES-Mon ´e implementado como uma aplica¸c˜ao Java e usa um framework SNMP4J [63] [61].
O componente de avalia¸c˜ao DES-Eval analisa a sa´ıda gerada pelas a¸c˜oes de uma ex- periˆencia e insere os resultados formatados na base de dados “Performance Metrics”. Por- tanto, o DES-Eval automatiza a tarefa de recolher manualmente todos os arquivos de log e extrair as informa¸c˜oes importantes para an´alise posterior. Ele fornece um conjunto de scripts em Python, para avalia¸c˜ao autom´atica de ferramentas comumente utilizadas em experiˆencias de rede, como ping, ttcp e iperf. O DES-Eval executa um script de avalia¸c˜ao que processa o arquivo de sa´ıda e fornece os resultados formatados. Os dados estat´ısticos de uma experiˆencia, como m´edia, desvio-padr˜ao, variˆancia e intervalos de confian¸ca s˜ao utilizados para calcular as m´etricas de desempenho espec´ıficas. Num segundo passo, scripts adicionais podem ser utilizados para gerar gr´aficos padr˜ao dos dados.
O DES-Vis ´e um software de visualiza¸c˜ao 3D baseado no framework JavaView [64], cujo principal objetivo ´e mostrar a conectividade da rede no decorrer das experiˆencias e que se baseia em informa¸c˜oes recolhidas na tabela de routing do kernel, durante as pesquisas de rede pelo DES-Mon. As mudan¸cas na conectividade podem ser animadas ao longo de uma experiˆencia. Para isso, as imagens dos estados de rede correspondentes s˜ao classificadas de acordo com o seu timestamp e progridem atrav´es deles. Este recurso permite aos investiga- dores descobrir rapidamente explica¸c˜oes para os resultados obtidos e simplifica conhecimento dos fen´omenos observados.
O DES-Cript n˜ao corresponde propriamente a um componente, mas sim a uma linguagem de dom´ınio espec´ıfico para definir e descrever as experiˆencias em rede, que podem ser execu- tadas numa testbed. Esta linguagem visa simplificar as experiˆencias ao usar um esquema de design compreens´ıvel e simples, garantindo a reprodutibilidade de experiˆencias.
O DES-Cript foi desenvolvido com base em XML, herdando a sua propriedade de f´acil leitura. Isso permite uma estrutura clara e hier´arquica, tornando a cria¸c˜ao de descri¸c˜oes de experiˆencias compreens´ıvel. A estrutura da descri¸c˜ao est´a estreitamente mapeada para o fluxo de trabalho de uma experiˆencia de rede. Todas as etapas consecutivas no fluxo de trabalho da experiˆencia s˜ao representadas como sec¸c˜oes diferentes nos ficheiros de DES-cript, que s˜ao
basicamente a configura¸c˜ao, execu¸c˜ao e avalia¸c˜ao [61].