Em maio deste ano irei apresentar um artigo intitulado Design Tests: An Approach to Programmatically Check your Code Against Design Rules
no 31st International Conference on Software Engineering (ICSE 2009), New Ideas and Emerging Results.
Apesar de ser um trabalho de Engenharia de Software, boa parte da avaliação inicial foi feita no LSD (OurBacukp e OurGrid).
Trata-se de um método de verificação de programas baseado em testes. De um modo geral, o objetivo é checar se os programadores estão seguindo as regras de design previamente especificadas. Regras são especificadas como testes, daí o nome Testes de Design. De fato, testes de design são JUnit test cases com uma semântica diferente de testes funcionais. Testes funcionais checam se o software se comporta como esperado quando estimulado por determinadas entradas, ao passo que testes de design checam se o software está sendo construído da maneira esperada.
Para dar suporte à abordagem, foi desenvolvida uma biblioteca chamada Design Wizard (http://www.designwizard.org).
Irei fazer uma prévia da apresentação no Conversa LSD do dia 29/04.
Notícias, apontadores, pensamentos e pesquisas do Laboratório de Sistemas Distribuídos da UFCG
segunda-feira, 6 de abril de 2009
sexta-feira, 3 de abril de 2009
Estatísticas do OurGrid
Pouca gente sabe que o OurGrid, a partir da sua versão 4, tem armazenado todas as operações que estão acontecendo na grade. Desde as mudanças de estado de um peer até quanto tempo de CPU uma task consumiu.
A entidade responsável por coletar esses dados é o Aggregator, que periodicamente consulta todos os peers sobre novos eventos que ocorreram nos seus respectivos sites. Além disso, cada peer possui um banco de dados embutido, que guarda essas informações históricas.
Ter essas informações já é muito interessante, pois daí podemos investir na divulgação/marketing do OurGrid, além de auxiliar gerência local de sites e a gerência global da grade.
Além disso, está em desenvolvimento o OurGrid Statistics, portal que realiza consultas do tipo: "Quantos peers estiveram online durante o dia de hoje?", "Qual a proporção de tempo que um determinado peer esteve online durante o mês?" e exibe gráficos correspondentes a essas consultas numa interface WEB 2.0.
O projeto está em desenvolvimento e sua página de acompanhamento tem informações interessantes sobre novas features e próximas releases.
terça-feira, 31 de março de 2009
Artigo sobre o NodeWiz publicado no Journal of Peer-to-Peer Networking and Applications da Springer
Este artigo detalha o projeto do NodeWiz, um sistema peer-to-peer para criação, armazenamento e busca de índices distribuídos, desenvolvido em uma cooperação entre o HP Labs e o LSD/UFCG. O sistema permite buscas eficientes utilizando múltiplos atributos e permitindo a especificação de intervalos de valores para os atributos (multi-attribute range queries). Ele se baseia em uma abordagem de soft-state e tenta balancear a carga de operações entre os nós que o compõem. O impacto de falhas no sistema é avaliado e um mecanismo para tratamento de falhas é proposto. Experimentos com um simulador e um protótipo do sistema são apresentados para demonstrar suas características de eficiência, escalabilidade, balanceamento de carga e tolerância a falhas. Esta é a referência a ser usada daqui em diante para quem precisar citar o NodeWiz. O DOI é: 10.1007/s12083-009-0030-1.
Conversa LSD de Amanhã (01/04/09)
Oi Pessoal,
teremos amanhã mais uma Conversa LSD, às 14h, e todos estão convidados.
Na conversa dessa quarta eu apresentarei para vocês o que tenho feito em meu trabalho de doutorado que tem como título: "Aumentando a Confiança nos Resultados de Testes de Sistemas Multi-threaded: Evitando Asserções Antecipadas e Tardias". Além de contextualizá-los sobre o problema dos falsos alarmes em testes por asserções feitas em momentos inadequados, apresentarei a solução que estamos propondo para este problema, alguns resultados parciais obtidos e as tarefas que venho planejando como trabalhos futuros. Para maiores informações sobre o trabalho, vocês podem consultar os seguintes artigos: "Obtaining Trustworthy Test Results in Multi-threaded Systems" e "Improving Automated Testing of Multi-threaded Software".
Além dessa apresentação, teremos também o coredump, que nesta semana será conduzido por nosso ilustre professor Nazareno. Nesse coredump, ele vai tentar convencer todos a passar a usar o R para analisar resultados de experimentos. Em 10 minutos, vamos ficar sabendo tudo que ele sabe e não sabe sobre R e ver como transformamos colunas de números em gráficos para emoldurar e pendurar na parede. Apontadores sobre o assunto em: http://pesquisa-no-lsd.blogspot.com/2009/03/dica-estatisticas-e-graficos-com-r.html .
teremos amanhã mais uma Conversa LSD, às 14h, e todos estão convidados.
Na conversa dessa quarta eu apresentarei para vocês o que tenho feito em meu trabalho de doutorado que tem como título: "Aumentando a Confiança nos Resultados de Testes de Sistemas Multi-threaded: Evitando Asserções Antecipadas e Tardias". Além de contextualizá-los sobre o problema dos falsos alarmes em testes por asserções feitas em momentos inadequados, apresentarei a solução que estamos propondo para este problema, alguns resultados parciais obtidos e as tarefas que venho planejando como trabalhos futuros. Para maiores informações sobre o trabalho, vocês podem consultar os seguintes artigos: "Obtaining Trustworthy Test Results in Multi-threaded Systems" e "Improving Automated Testing of Multi-threaded Software".
Além dessa apresentação, teremos também o coredump, que nesta semana será conduzido por nosso ilustre professor Nazareno. Nesse coredump, ele vai tentar convencer todos a passar a usar o R para analisar resultados de experimentos. Em 10 minutos, vamos ficar sabendo tudo que ele sabe e não sabe sobre R e ver como transformamos colunas de números em gráficos para emoldurar e pendurar na parede. Apontadores sobre o assunto em: http://pesquisa-no-lsd.
Turing award 2008
Recentemente, Barbara Liskov foi anunciada como a ganhadora do Turing Award 2008, o que temos de mais próximo a um prêmio Nobel em computação. O prêmio é por contribuições durante sua carreira, que incluem bastante trabalho em tolerância a falhas bizantinas em sistemas distribuídos.
Para quem quer entender melhor essas contribuições, o blog de Henry Robinson contextualiza e detalha as contribuições para sistemas distribuídos de Dra Liskov.
Aproveitando, vale a dica de outras discussões semelhantes no blog de Henry. Há lá, por exemplo, uma ótima série de posts explicando os principais resultados sobre consenso em sistemas distribuídos.
Para quem quer entender melhor essas contribuições, o blog de Henry Robinson contextualiza e detalha as contribuições para sistemas distribuídos de Dra Liskov.
Aproveitando, vale a dica de outras discussões semelhantes no blog de Henry. Há lá, por exemplo, uma ótima série de posts explicando os principais resultados sobre consenso em sistemas distribuídos.
sexta-feira, 27 de março de 2009
Inundação de dados, ciência e computação na Science
A Science de março tem um artigo curto interessante na seção de perspectivas: Beyond the Data Deluge de Gordon Bell, Tony Hey, Alex Szalay.
Os autores discutem um paradigma emergente em ciência: criar conhecimento não a partir de teoria, experimentação ou simulação, mas através da mineração das quantidades enormes (e crescentes) de dados que temos disponíveis sobre os fenômenos que nos cercam.
Naturalmente, tecnologias para o processamento eficiente de grandes quantidades de dados têm um papel importante nesse paradigma, e o artigo discute o papel de grids e nuvens nesse contexto.
Em uma linha semelhante, a O'Reilly Research recentemente publicou um relatório sobre desafios no processamento de grandes quantidades de dados hoje. O relatório (que infelizmente é pago) e diversas entrevistas sobre o assunto são apresentadas nesse post do O'Reilly Radar.
Os autores discutem um paradigma emergente em ciência: criar conhecimento não a partir de teoria, experimentação ou simulação, mas através da mineração das quantidades enormes (e crescentes) de dados que temos disponíveis sobre os fenômenos que nos cercam.
Naturalmente, tecnologias para o processamento eficiente de grandes quantidades de dados têm um papel importante nesse paradigma, e o artigo discute o papel de grids e nuvens nesse contexto.
Em uma linha semelhante, a O'Reilly Research recentemente publicou um relatório sobre desafios no processamento de grandes quantidades de dados hoje. O relatório (que infelizmente é pago) e diversas entrevistas sobre o assunto são apresentadas nesse post do O'Reilly Radar.
Dica: estatísticas e gráficos com R + Lattice
Se você tem o output de um experimento com vários fatores, possivelmente várias métricas, e precisa analisar esses dados com alguma estatística e gerar gráficos de qualidade, você provavelmente já chegou à conclusão que as combinações de bash + octave + gnuplot não são muito flexíveis e dão um trabalho considerável. Se sim, minha sugestão é que você considere usar o R para tratar seus dados e um pacote do R chamado Lattice para gerar seus gráficos. A curva de aprendizado é um pouco maior que bash ou octave, mas olhando os resultados, deve dar pra ver que vale a pena. Isso aqui embaixo é um exemplo do output dessa combinação em um experimento meu:

Para saber mais sobre o que é R, há uma matéria interessante sobre ele no NYT (se você não tem login, aproveite e conheça o BugMeNot).
Para aprender R, há bastante material online (por exemplo, aqui), mas aqui vão mais algumas referências:
R:
http://faculty.washington.edu/tlumley/Rcourse/R-fundamentals.pdf
http://cran.r-project.org/doc/contrib/Lemon-kickstart/index.html
http://leg.ufpr.br/Rpira/Rpira/
Lattice:
http://csg.sph.umich.edu/docs/R/graphics-1.pdf

Para saber mais sobre o que é R, há uma matéria interessante sobre ele no NYT (se você não tem login, aproveite e conheça o BugMeNot).
Para aprender R, há bastante material online (por exemplo, aqui), mas aqui vão mais algumas referências:
R:
http://faculty.washington.edu/tlumley/Rcourse/R-fundamentals.pdf
http://cran.r-project.org/doc/contrib/Lemon-kickstart/index.html
http://leg.ufpr.br/Rpira/Rpira/
Lattice:
http://csg.sph.umich.edu/docs/R/graphics-1.pdf
Assinar:
Postagens (Atom)