quarta-feira, 26 de outubro de 2011

Conversa LSD: Planejamento de capacidade para aplicações de comércio de eletrônico no contexto de SaaS.

Olá pessoal,

Na Conversa LSD desta semana (27/10 16h) iremos discutir um pouco a respeito do trabalho que David Candeia desenvolve no LSD.

Resumo:

A oferta de aplicações de comércio eletrônico que buscavam atender um grande número de clientes, ou ainda, que estavam sujeitas a fortes restrições, despertou na última década um forte interesse a respeito do gerenciamento das infraestruturas de provedores considerando métricas de negócios. Com o surgimento do mercado de Computação na Nuvem, novos modelos de serviços de computação despontaram no mercado. Dentre tais modelos destaca-se o modelo de Aplicação como Serviço (Software-as-a-Service, SaaS) que abrange uma grande variedade de aplicações como gerenciadores de tarefas, editores de documento e aplicações de comércio eletrônico. O objetivo do trabalho é avaliar técnicas de planejamento de capacidade orientadas a negócio para aplicações de comércio de eletrônico no contexto de SaaS.

quarta-feira, 28 de setembro de 2011

Ativistas, passageiros, ocasionais e especialistas: perfis de usuário na construção de um site de Q&A

Amanhã, às 16 horas, no auditório do LSD, Adabriand apresentará sua investigação sobre como usuários de comunidades de Q&A (ex: Yahoo Answers) se comportam.


Adabriand nos diz que,

    entender a estrutura e dinâmica de funcionamento de sistemas de Question and Answer (Q&A) é imprescindível no desenvolvimento de mecanismos para incentivar e melhor aproveitar a produção de conteúdo por parte dos usuários. Neste artigo, exploramos os padrões de comportamento de usuários em um site de Q&A de grande porte segundo métricas de motivação (quantidade de contribuições) e habilidade (qualidade das contribuições) dos usuários. Nossos resultados revelam quatro perfis principais: ativistas, usuários que contribuem muito por um longo período; passageiros, usuários com uma curta permanência e que fazem contribuições de qualidade mediana ou baixa; ocasionais, usuários que permanecem por um longo período, porém contribuindo esporadicamente; e especialistas: usuários semelhantes aos ocasionais, mas que são hábeis na execução de um tipo de atividade. Ao examinar a parcela de contribuição dos grupos formados por esses perfis, observamos que passageiros e ocasionais colaboram com os ativistas na construção da ampla maioria do corpo de contribuições, e que a ausência de qualquer um destes perfis possivelmente degradaria o desempenho do sistema. Com respeito aos especialistas, identificamos que a sua representatividade no total de contribuições é pequena. Esta descoberta motiva o desenvolvimento de mecanismos para incentivar a participação desses usuários.

A apresentação de Adabriand é de livre entrada. Contamos com sua presença.

quarta-feira, 6 de julho de 2011

Conversa LSD: Automatic Suggestion of Efficiency Improvements on Database Routines

Olá Pessoal,

hoje, às 16h, Dimas Cassimiro, aluno de mestrado em ciência da computação da UFCG orientado pelos professores Carlos Eduardo Pires e Tiago Massoni, gentilmente apresentará sua pesquisa sobre como automatizar a detecção de melhorias no desempenho de rotinas de banco de dados. 



Assim falou Dimas sobre seu trabalho -- "An efficient and common way to allow data manipulation in databases by applications is implementing database routines. However, if such implementations present inefficient programming logic or data manipulation, excessive delays are provided to the client application layers. Such delays can cause, among other problems, expressive financial losses. To solve this problem, the database routines must undergo a tuning process. Since the tuning process involves manual analysis of source code, its implementation usually becomes too much expensive. In order to reduce the cost of the tuning process, we present an approach based on static analysis of source code to perform automatic detection of potential efficiency improvements on database routines."

Antes da palestra haverá um coredump (Linux Tracing Capabilities) que será apresentado por Thiago Emmanuel.

terça-feira, 28 de junho de 2011

Conversas LSD: Massively-Parallel Graph Processing e Assessing the Value of Tags in Social Tagging Systems


Elizeu (doutorando da University of British Columbia e ex-lsdano ) está nos visitando por algumas semanas. Programamos duas palestras sobre as pesquisas sendo desenvolvida por ele. A primeira palestra será hoje, a segunda quarta-feira, ambas às 16h.

Segue abaixo informações sobre o que será conversado

Palestra 1: Massively-Parallel Graph Processing
Terça, 16h, auditório do LSD

Abstract:  The goal of this project is to understand the challenges in
porting graph algorithms to commodity, hybrid platforms; platforms
that consist of processors optimized for sequential processing and
accelerators optimized for massively-parallel processing. This study
fills the gap between current graph processing platforms that are
either expensive (e.g., supercomputers) or ine cient (e.g., commodity
clusters). Our hypothesis is that hybrid platforms (e.g.,
GPU-supported clusters) can bridge the performance-cost chasm, and
o er an attractive graph-processing solution for many graph-based
applications such as social networks and web analysis.

This work presents the first step towards designing Totem (a
graph-processing framework that leverages massively parallel hybrid
platforms. In particular, we design, implement, and evaluate core
graph algorithms (i.e., BFS, Dijkstra's algorithm, and PageRank).
Also, we discuss the future work based on the current experience
provided by these initial implementations.

(joint work with Lauro Beltrão Costa and Abdullah Gharaibeh)



Palestra 2: Assessing the Value of Tags in Social Tagging Systems
Quarta, 16h, auditório do LSD

Users create massive amounts of content in social media websites such as YouTube, Flickr, and del.icio.us. The increasingly large amount of content these systems accumulate poses a challenge to users that want to navigate the vast amount of content produced daily. To distribute the burden of organizing the collections of user-generated content, and to make navigation potentially more efficient, social systems often provide users with tagging features (i.e., users can annotate content they produce or find interesting with free-from keywords). These tags can, in turn, help users to sift through the set of items available in the system.

Similar to other commons-based peer-production systems, the efficiency of tagging rely on the individial contributions of participants. On the other hand, as opposed to systems desinged for resource sharing (e.g., BitTorrent, OurGrid), quantifying the value of contributions in tagging systems poses different challenges, as users produce information instead of physical resources.

This work investigates methods to assess the value of tags from the perspective of a user who is interested in navigating the system. The long term goal is to understand the aspect that influence the perceived value of tags and to inform the design of new mechanisms (e.g., incentive to produce more socially useful tags, or spam detection). In particular, in this talk I will provide an overview of the progress to date towards the aforementioned goal. 

quarta-feira, 15 de junho de 2011

Perspectivas sobre computação na nuvem

O Journal of Internet Services and Applications (Springer) publicou uma entrevista sobre computação na nuvem com cinco figuras proeminentes da área. Um dos cinco, no texto usando a camisa do Google, é um velho e querido conhecido nosso, Walfredo Cirne, que está de licença da UFCG.

Há bastante coisa interessante nas entrevistas, que começam já direto num ponto importante: "There is a lot of hype around cloud computing. Is there something fundamentally new about cloud computing or is it just another marketing term from the computing industry?"

quarta-feira, 8 de junho de 2011

Democratizing Resource-Intensive e-Science Through Peer-to-Peer Grid Computing

A Springer publicou há pouco um livro intitulado Guide to e-Science: Next Generation Scientific Research and Discovery (editado por Xiaoyu Yang, Lizhe Wang e Wei Jie). O livro contém um capítulo escrito por Fubica, Nazareno, Raquel e Lívia sobre nosso experiência com o OurGrid:

Democratizing Resource-Intensive e-Science Through Peer-to-Peer Grid Computing

Do resumo publicado: [This chapter] "(...) includes a thorough review of the main mechanisms required to support the execution of bag-of-tasks applications on top of P2P grids: accounting, scheduling, security, and data caching. Besides, we discuss ways to allow P2P grids to interoperate with service grids. We also report a success case in the utilization of the OurGrid middleware in the context of e-Science. Finally, we summarize our experience in this area indicating the lessons we have learned, the present challenges, and future directions of research."


Conversa LSD: Eficiência de download em comunidades BitTorrent


Hoje, às 16 horas, teremos mais uma edição da Conversa LSD. O trabalho será apresentado por Jaindson Santana. Esta mesma apresentação foi feita no VII Workshop de Redes Dinâmicas e Sistemas P2P (WP2P 2011), fórum realizado no XXIX Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2011). Segue título e resumo do que será discutido.

Título: Eficiência de download em comunidades BitTorrent
Resumo: Bittorrent é o sistema de compartilhamento de arquivos mais utilizado atualmente. Uma prática comum entre os usuários deste sistema é a criação das comunidades Bittorrent. Diversos estudos já mediram a velocidade de download dos usuários destas comunidades. No entanto, estes estudos não fornecem evidências conclusivas sobre que características dos usuários e dos enxames determinam os resultados observados. Trabalhos anteriores não examinaram o efeito destas características, examinaram o efeito de apenas uma característica, ou usaram um espaço amostral pequeno de enxames e usuários. Este artigo apresenta os resultados de um trabalho em andamento para analisar a velocidade de download dos usuários de comunidades Bittorrent, utilizando um espaço amostral significativamente maior que os trabalhos anteriores, e examinando o efeito de múltiplas características de enxames, usuários e comunidades na velocidade de download.

sábado, 4 de junho de 2011

UFCG é "bi-campeã" no SBRC


O artigo intitulado "Sobre a Amplitude da Elasticidade dos Atuais Provedores de Computação na Nuvem", de Rostand Costa, Francisco Vilar Brasileiro, Guido Lemos de Souza Filho e Dênio Mariz Sousa, foi selecionado entre os 5 melhores artigos do XXIX Congresso Brasileiro de Redes de Computadores e Sistemas Distribuídos, realizado em Campo Grande entre 30 de maio e 3 de junho. Esses 5 artigos serão publicados em uma edição especial da Revista Brasileira de Redes de Computadores e Sistemas Distribuídos editada pela Sociedade Brasileira de Computação.

No ano passado um outro artigo descrevendo pesquisa desenvolvida na UFCG também havia recebido a mesma premiação neste conceituado evento. Trata-se do artigo intitulado "Análise de Estratégias de Green Computing em Grades Computacionais Oportunistas", cujos autores são Lesandro Ponciano, Jaindson Santana, Marcus Carvalho, Matheus Gaudencio e Francisco Brasileiro.

Parabéns à UFCG, "bi-campeã" no SBRC. E que venham mais!

terça-feira, 24 de maio de 2011

LSD no SBRC 2011


Esse ano o LSD participará com 7 artigos no Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos. Quatro destes artigos serão apresentados na trilha principal do evento, e os restantes em três workshops. Aliás, um dos workshops esse ano também está sendo organizado pelo LSD (Nazareno é o coordenador do WP2P).

Seguem abaixo os artigos, com links e os respectivos temas:

Na trilha principal:

Sobre a Amplitude da Elasticidade dos Atuais Provedores de Computaçãoo na Nuvem - Rostand Costa, Giuliano Maia, Guido Lemos de Souza Filho, Dênio Mariz Sousa, Francisco Vilar Brasileiro

Os provedores atuais de computacão na nuvem impõem um limite estrito na quantidade de recursos que um usuário pode adquirir concomitantemente, o que prejudica uma série de aplicações que poderiam se beneficiar de mais elasticidade. Por que a elasticidade prometida pela nuvem não é atualmente fornecida?

Análise do impacto de detectores de falhas adaptativos no OurGrid - Abmar Barros e Francisco Brasileiro

Qual o efeito do uso de detectores de falha estado-da-arte nas métricas de aplicação de sistemas distribuídos complexos? Esse estudo usa o OurGrid como estudo de caso e explora essa pergunta usando três dos detectores adaptativos mais conhecidos na literatura.

Uma Nova Políıtica de Incentivos para Grades Computacionais
Entre-Pares
- Matheus Gaudencio e Francisco Brasileiro

Estendendo a rede de favores do OurGrid para melhor acomodar participantes que doam recursos apenas esporadicamente.

Computação intensiva em dados com MapReduce em ambientes oportunistas - Jonhnny Weslley Silva, Thiago Emmanuel Pereira, Carla de Araujo Souza, Francisco Brasileiro

Como executar aplicações MapReduce em ambientes não-dedicados sem transtornar usuários ou comprometer o desempenho? Esse artigo apresenta heurísticas e sua aplicação numa modificação do BashReduce, uma implementacao leve do modelo MapReduce.

No IX Workshop em grids, Clouds e Aplicações

Construindo Infraestruturas Computacionais Distribuídas e Seguras Baseadas em Receptores de TV Digital - Rostand Costa, Giuliano Maia, Guido Lemos de Souza Filho, Dênio Mariz Sousa, Francisco Vilar Brasileiro

Como prover um serviço de computação segura sobre uma infraestrutura baseada em receptores de TV Digital?

No Workshop de Redes Peer-to-Peer e Dinâmicas (WP2P)

Eficiência de download em comunidades BitTorrent - Jaindson Santana, Nazareno Andrade

Usando dados de observações empíricas, que fatores afetam a eficiência da distribuição de conteúdo via BitTorrent e como podemos analisar isso?

No Workshop de Computação em Grade e Aplicações (WCGA)

Estimando o Valor de uma Grade Entre Pares para a Execucao de Aplicacoes do Tipo Saco de Tarefas - Edigley Fraga, Francisco Brasileiro e Dalton Serey

Um comparativo de custo e e desempenho entre o uso de grades entre-pares e Infraestrutura como Serviço para a execução de aplicações do tipo Saco de Tarefas.

domingo, 8 de maio de 2011

Ciberciência cidadã

Semana passada participei do evento brasil@home organizado pelo Citizen Cyberscience Centre, uma organização sem fins lucrativos que promove a (ciber)ciência cidadã no mundo. Ciência cidadã diz respeito ao envolvimento dos cidadãos comuns com atividades científicas. Esse tipo de iniciativa remonta ao início do século passado com projetos como o Christmas Bird Count em que voluntários fazem um trabalho de campo em um determinado dia do ano e em regiões específicas do globo, contando pássaros. Com o desenvolvimento das tecnologias da informação e comunicação novas possibilidades de ciência cidadã vêm surgindo, sob a denominação de ciberciência cidadã.

Talvez o exemplo mais conhecido desse tipo de atividade são os projetos de computação voluntária, como SETI@home e folding@home, onde os cidadãos doam o tempo ocioso de seus computadores ou consoles de videogame para executar aplicações científicas. O software usado no projeto SETI@home foi generalizado dando origem ao middleware BOINC que no momento é usado por cerca de 40 projetos de computação voluntária, entre eles os projetos World Community Grid, financiado pela IBM, e o Ibercivis, financiado por várias entidades na Espanha e em Portugal. Esses dois projetos têm a particularidade de serem projetos "guarda-chuva", abrigando diversas aplicações de vários domínios científicos. De 23 a 27 de maio estaremos recebendo no LSD dois membros do projeto Ibercivis que irão nos ajudar a implantar um serviço de computação voluntária no Brasil, parte da federação do projeto Ibercivis. Nesse período tentaremos também portar duas aplicações científicas para serem executadas no novo serviço: uma aplicação de bioinformática da Fundação Oswaldo Cruz e outra de gestão de recursos hídricos de nossos parceiros da UFCG.

Mais recentemente a ciberciência cidadã tem buscado um maior envolvimento dos cidadãos que vai além da simples utilização do tempo ocioso de seus computadores. A idéia é usar a capacidade cognitiva dessa grande rede de recursos para avançar a ciência. Esse tipo de atividade ganhou o nome de volunteer thinking e vai desde a ajuda para coletar dados, passando por atividades de classificação, até verdadeiras descobertas científicas. O projeto oldWeather.org, por exemplo, usa o trabalho voluntário de centenas de pessoas para armazenar em bancos de dados as informações sobre o tempo nos últimos 200 anos registradas nos diários de navios da marinha Britânica. Esses dados são muito importantes para uma avaliação consistente dos impactos que as mudanças climáticas podem trazer para o planeta. Outro projeto de volunteer thinking é o GalaxyZoo, que usa voluntários para classificar galáxias. Esses e outros projetos semelhantes estão organizados no portal Zooniverse. Finalmente, aplicações bem mais elaboradas podem tirar ainda mais proveito do trabalho de voluntários. A aplicação Foldit é um jogo que busca encontrar alvos de drogas para doenças através de uma abordagem lúdica, onde o jogador é levado a avaliar a melhor forma de acoplar proteínas.

Como resultado do evento Brasil@home, está se tentando formar uma comunidade no Brasil para fomentar iniciativas de ciberciência cidadã. Em breve essas iniciativas serão agrupadas no portal Ciência Cidadã. O serviço de computação voluntária que o LSD irá prover, deverá ser uma das primeiras ações concretas desta comunidade. Várias idéias de projetos de volunteer thinking também estão sendo discutidas. Se você tiver uma idéia de um projeto interessante, nós teremos o maior prazer de poder lhe ajudar a desenvolvê-lo.

Mais sobre a repercussão do evento pode ser visto/ouvido no video abaixo e neste programa da voz do Brasil.

segunda-feira, 7 de fevereiro de 2011

Processamento de fluxo de eventos

Eventos são mensagens que não são explicitamente endereçadas e que sinalizam a ocorrência de alguma mudança de estado em um sistema. Os eventos propriamente ditos podem de uma simples lista de nomes de atributos e valores associados até mesmo um objeto serializado de uma linguagem tipo Java.

Quando os componentes de um sistema se comunicam apenas através da geração e recebimento de eventos, diz-se que o sistema possui uma arquitetura orientada a eventos (EDA – Event Driven Architecture). Como os eventos não são explicitamente endereçados, um sistema orientado a eventos requer um canal de comunicação de eventos. Esse canal funciona da seguinte forma: (a) os componentes geradores de eventos registram no sistema de comunicação os tipos de eventos que serão gerados; (b) por sua vez, os componentes interessados em monitorar eventos de certo tipo, registram o seu interesse em receber eventos daquele tipo; (c) finalmente, quando um evento é de fato gerado, o sistema de comunicação entrega o evento a todos os componentes interessados naquele tipo de evento. Observe que o componente gerador dos eventos não conhece os componentes que receberão o evento. Esse isolamento faz com que sistemas orientados a eventos sejam fracamente acoplados.

Arquitetura orientada a eventos é muito comum em sistemas de monitoramento, pois a adição de mais monitores não influencia o sistema monitorado. Em um sistema de monitoramento, um sistema monitor observa o comportamento de outro sistema, o monitorado. O monitor precisa então observar os eventos gerados pelo sistema monitorado e interpretá-los, de forma a detectar se algo relevante aconteceu no sistema monitorado. Desta forma, é preciso primeiro coletar os eventos que este sistema observado produz e depois processar esses eventos de forma a determinar se eles sinalizam situações de interesse. Um exemplo de situação de interesse é uma queda brusca de preço em uma ação no mercado de ações. Neste caso, o sistema monitorado é o mercado de ações e o sistema monitor pode ser uma aplicação que detecta oportunidades de negócios no mercado de ações. Quando uma situação de interesse é detectada, neste caso, uma oportunidade de negócio, o sistema de monitoramento pode acionar uma atividade de resposta, por exemplo, uma compra de ações cujos preços estão atraentes.

O exemplo acima é conhecido como negociação de alta frequência (High Frequency Trading). Observe que em uma aplicação como o mercado de ações, eventos de compra ou venda acontecem constantemente, milhares de vezes por segundo. O sistema de monitoramento recebe então eventos continuamente. Por essa razão, sistemas de monitoramento baseados em eventos são também conhecidos como sistemas de processamento de fluxos de eventos. Sistemas de processamento de fluxos de eventos (no inglês, ESP – Event Stream Processing) são tipicamente compostos por um grafo de operadores. Cada operador executada parte da tarefa de processar os eventos. Exemplos de operadores são os seguintes:

  • Filtros (descartam ou repassam eventos de acordo com atributos do mesmo);
  • Conversores (aplicam uma função a um evento, gerando um evento de saída que possui, por exemplo, um formato diferente);
  • Agregadores (combinam vários eventos, gerando um evento de saída que agrega informações de todos eles como, por exemplo, a média aritmética).

Observe que alguns dos tipos de operações acima requerem que o operador mantenha algum estado local. Por exemplo, para calcular uma média, é preciso considerar não somente o último evento, mas também os eventos anteriores (normalmente, operações de agregação são feitas considerando uma janela de eventos, por exemplo, os eventos dos últimos 10 minutos). Quando operações não tem estado, é fácil paralelizá-las, basta criar várias cópias do mesmo operador e dividir o fluxo de eventos entre eles. No entanto, quando o operador mantem um estado (no caso da média, uma janela com um determinado número de eventos), as várias cópias do operador precisam coordenar de que forma elas acessam o estado do mesmo.

Infelizmente, coordenar o acesso de várias cópias do operador a um só estado não é fácil. Se travas forem utilizadas, ou a área de código coberta por uma trava é minimizada ou pouco paralelismo será alcançado. No entanto, minimizar a área de cobertura de uma trava é difícil e é uma causa frequente para bugs não determinísticos no código. Além do problema da paralelização correta, aplicações de processamento de eventos têm frequentemente outro requisito, a ordem de processamento dos eventos é importante. Quando um operador é paralelizado com travas, a ordem de processamento dos eventos não é necessariamente a mesma de uma execução sequencial.

Durante meu trabalho de doutorado, investiguei formas de prover paralelização automática que preservam a ordem do fluxo de eventos. O resultado foi um sistema de paralelização especulativa baseado em memórias transacionais em software (STM – Software Transactional Memory). Este sistema processa eventos em paralelo de forma especulativa e monitora os acessos ao estado do operador. Quando o processamento de dois eventos não acessa posições de memória em comum, a execução paralela especulativa funcionou e a ordem foi garantida. Caso contrário, quando há interferências, o processamento do evento que deveria ser processado primeiro é confirmado e o processamento do segundo evento é repetido para considerar as modificações no estado causadas pelo processamento do primeiro. Um exemplo de interferência é quando o processamento dos dois eventos exige o incremento de um mesmo contador, neste caso, se nenhuma abordagem especial (específica para o incremento de variáveis) for utilizada, os eventos precisam ser processados sequencialmente para que o segundo considere o incremento feito durante o processamento do primeiro.

Por fim, investiguei formas de tolerância a falhas em sistemas de processamento de eventos. Como resultado, propus abordagens para a implantação de replicação ativa e passiva que aproveita os mecanismos de especulação providos pelo esquema de paralelização especulativa para reduzir o custo em desempenho da replicação.

Slides: http://www.lsd.ufcg.edu.br/~andrey/ConversaLSD_IntroESP.pdf