terça-feira, 24 de fevereiro de 2015

Contribua: projetos em ciência cidadã e computação por humanos

Como temos divulgado aqui no blog, o LSD possui diversos projetos em ciência cidadã e computação por humanos. No final de 2014, conduzimos um esforço para integrar nossos projetos em uma só plataforma e também oferecer ferramentas e know-how para outros pesquisadores que estejam atuando nessas áreas. O resultado desse esforço foi a criação da organização Contribua, cuja principal face é a plataforma Contribua (contribua.org).

A plataforma está em seus primeiros passos, mas já temos três projetos abertos à participação popular:

  • "ÁguaNossa", em que voluntários participam reportando falta de água em Campina Grande;
  • "Como é Campina?", em que voluntários participam avaliando características de segurança e agradabilidade em regiões de Campina Grande;
  • "Memória Brasil", no qual voluntários ajudam a transcrever tabelas existentes em livros antigos da Biblioteca do Ministério da Fazenda.  
Convidamos você a visitar esses projetos e dar a sua contribuição. Se você quer ficar informado sobre novos projetos que forem lançados no Contribua, basta seguir o Contribua no Twitter https://twitter.com/contribua. Se você quer nos dar algum feedback, envie-nos um e-mail contribua@lsd.ufcg.edu.br

sexta-feira, 3 de outubro de 2014

Qual a relação entre computação por humanos e sistemas distribuídos?

Computação por humanos (Human Computation) é uma área interdisciplinar. Maior parte da produção científica nessa área tem sido apresentada em veículos ligados a fatores humanos e inteligência artificial, como as conferências CHI, CSCW, KDD e AAAI. Apenas recentemente têm surgido veículos que se dedicam exclusivamente a computação por humanos, como a conferência HCOMP, que teve a primeira edição no ano passado, e o periódico Human Computation, que lançará o primeiro issue esta semana.

Em razão da pouca atividade nessa área na comunidade de sistemas distribuídos, nós encontramos diversos desafios quando começamos a desenvolver pesquisas em sistemas de computação por humanos no LSD em meados de 2012. Os dois desafios principais foram: 1) como modelar um sistema de computação por humanos como um tipo de sistema distribuído em que os processadores são seres humanos ao invés de máquinas? e 2) como colocar em perspectiva os aspectos que são inerentes desse novo tipo de sistema distribuído?.

Entendíamos que, ao tratar esses dois desafios, deixaríamos mais claro o espaço que existe para nós (e toda a comunidade de sistemas distribuídos) fazermos pesquisa nessa nova área. Isso resultou em um grande esforço no LSD para construir um arcabouço conceitual que nos permitisse olhar a área na perspectiva de sistemas distribuídos e ao mesmo tempo organizar a literatura sobre computação por humanos nessa perspectiva. Os resultados desse esforço estão apresentados no artigo "Considering human aspects on strategies for designing and managing distributed human computation" publicado recentemente no Journal of Internet Services and Applications.



Além dos pesquisadores que usam ou desenvolvem pesquisas em computação por humanos, a leitura desse artigo é fortemente recomendada para pesquisadores que estudam aplicações distribuídas e que têm interesse em fatores humanos em sistemas computacionais.

quarta-feira, 26 de fevereiro de 2014

Pense no negócio!

Essa semana eu participei de um evento chamado Cloudscape. Entre outras coisas, participar desse evento fez aumentar a minha crença ainda mais em duas coisas:

1. um bom evento é feito com bons palestrantes;
2. computação na nuvem é apenas um (velho) modelo de negócio que transforma TI em uma utility.

Vou tentar usar mais e mais o ponto 1 na hora de escolher quais eventos assistir (sempre que possível).

Vou tentar usar mais e mais o ponto 2 para nortear as atividades de P&D em cloud das quais participo. Por exemplo, tenho pensado bastante no modelo de negócios do fogbow, novo projeto que até ontem eu achava que era melhor descrito como uma forma de juntar minha cloud privada em uma federação de clouds privadas, mas que começo a ver mais como uma forma de armazenar ciclos ociosos de minha cloud privada, de forma que eu possa usar todos eles ao mesmo tempo no futuro ... ou dito de outra forma, como conseguir uma overdose de CPU de forma mais barata. Mas, isso será tema de um outro blog.

Exemplos de 1+2 podem ser vistos aqui e aqui.

Algumas coisas para ficar de olho: Cloud Foundry, e Software Defined Enterprise.

O que vi de melhor no Citizen Cyberscience Summit em Londres

Semana passada participei da terceira edição do Citizen Cyberscience Summit, realizado em Londres. O evento ampliou bastante o meu entendimento sobre Ciência Cidadã, que era muito restrito aos sistemas de computação voluntária (aqueles que usam BOINC, por exemplo) e, mais recentemente, computação por humanos voluntária (volunteer thinking), como os projetos do Zooniverse e da Citizen Science Alliance. Na realidade, a maior parte da atividade na área de ciência cidadã está concentrada em projetos bem antigos onde os cidadãos estão mais envolvidos com a coleta de dados em campo, normalmente associada a projetos com fins ambientalistas. Veja por exemplo o projeto eBird. Outros projetos podem ser "achados" nesse site. Além desses projetos, duas outras coisas estão na moda. Uma é a tendência de ampliar a participação do cidadão em projetos de ciência cidadã - como as pessoas adoram cunhar termos novos, isso está sendo chamado de Extreme Citizen Science. A outra são os sistemas de sensoriamento participativo, que são muito importantes no contexto das cidades inteligentes. Assisti algumas apresentações de resultados do projeto EveryAware. A lição mais importante dessas apresentações é a atenção que é preciso ter sobre a calibragem dos sensores. Por exemplo, os projetos que usam o microfone do smartphone para medir poluição sonora precisam ser calibrados individualmente!

A apresentação que eu fiz sobre o trabalho que Lesandro está desenvolvendo sob minha orientação foi muito bem recebida. Algumas pessoas me procuraram depois da apresentação oferecendo dados de seus projetos para que a gente pudesse analisá-los. Uma dessas pessoas foi Amy Robinson do projeto EyeWire.

A palestra final do evento, proferida por Jeff Howe, autor do livro Crowdsoursing, foi muito interessante. A turma de sistemas colaborativos teria adorado, mas é muito provável que eles já tenham assistido isso aqui, que foi mais ou menos o mesmo que ele falou lá.

Acho que com a criação do Laboratório para Cidades Inteligentes temos uma boa oportunidade para juntar coisas de ciência cidadã mais "extrema" com sensoriamento participativo e crowdsourcing. Na minha opinião, isso passa por envolver de forma abrangente as escolas do município para que esse tipo de atitude possa ser despertada bem cedo em toda uma geração. De certa forma, envolver as pessoas no processo científico/criativo pode ser uma boa maneira de formar uma geração de pessoas com um senso crítico mais aguçado, mais questionadoras.

segunda-feira, 3 de fevereiro de 2014

Abrindo as conversas LSD de 2014

As conversas LSD de 2014 iniciaram no último dia 20/01, com uma palestra de André Martin, doutorando da TU-Dresden, em visita ao nosso laboratório. Seguem mais informações sobre seu trabalho, intitulado "Minimizing Overhead for Fault Tolerance in Event Stream Processing Systems" (enviado pelo palestrante; os slides aqui).

"Event Stream Processing (ESP) is a well-established approach for low-latency data processing enabling users to quickly react to relevant situations in soft real-time. In order to cope with the huge amount of data being generated each day and to cope with fluctuating workloads
from data sources such as twitter and facebook, such systems must be highly scalable and elastic. Hence, ESP systems are typically long running applications deployed on several hundreds of nodes in either dedicated data centers or cloud environments such as Amazon EC2. In such
environments, nodes are likely to fail due to software aging, process or hardware errors whereas the unbounded stream of data asks for continues processing.

Active replication and rollback recovery based on checkpoints and in-memory logging (upstream backup) are two commonly used approaches in order to cope with such failures in ESP systems. However, these approaches suffer either from a high resources footprint, low throughput
or unresponsiveness due to long recovery times.

In this status talk, I will present related work in the area of ESP systems with the focus on fault tolerance and discuss the advantages and disadvantages of these works. I will also present my research contributions made so far, in particular, the new ways to reduce the run-time and resource overhead of the aforementioned approaches as well as hybrid approaches for guaranteeing low latency and high throughput. I will conclude the talk with a sketch of the road map for the remainder
of my doctoral thesis."

Contato do palestrante: andre.martin AT se.inf.tu-dresden.de

quinta-feira, 30 de janeiro de 2014

Contribuição de voluntários em projetos científicos que utilizam computação por humanos


Sistemas de computação por humanos permitem que pessoas executem tarefas que os computadores de silício  ainda não são capazes de executar de forma satisfatória, mas que seres humanos são capazes de executar com eficiência e corretude. Muitas destas tarefas são ligadas à criatividade, processamento de linguagem natural, extração de informação em imagens, vídeo e áudio. Exemplos de sistemas de computação por humanos são Amazon Mechanical Turk, que permite que seres humanos executem tarefas que não estão relacionadas a um tema ou propósito específico, e a plataforma Zooniverse, que se dedica às tarefas relacionadas a projetos científicos.

Exemplo de tarefa de classificação de galáxias no projeto Galaxy Zoo
hospedado na plataforma Zooniverse
Tarefas de computação por humanos são frequentes em pesquisas científicas que envolvem o processamento de grande bases de dados de imagens, por exemplo: pesquisas biológicas que trabalham com grande base de imagens coletadas do monitoramento de um dado ecossistema e pesquisas em astronomia que utilizam grande quantidade de imagens coletadas por telescópios. Em sistemas de computação por humanos com propósito científico, geralmente os seres humanos executam tarefas como um trabalho voluntário. Esse é o caso, por exemplo, dos projetos hospedados na plataforma Zooniverse.

Naturalmente, a participação dos voluntários executando tarefas nesses sistemas é fundamental para que os cientistas obtenham as informações que eles necessitam para conduzir suas pesquisas. Diversos estudos têm mostrado que os voluntários que contribuem executando tarefas nesses sistemas possuem diferente motivações, que vai desde curiosidade  em computação humana de forma geral até um interesse específico em algum tópico científico, como astronomia, biologia, arqueologia. A motivação mais reportada pelos voluntários é o desejo de contribuir para ciência. Dessa forma, a motivação é um fator fundamental para levar o voluntário ao sistema e/ou mantê-lo contribuindo. Entretanto, os sistemas de computação por humanos precisam ser projetados de modo a permitir que essa motivação se converta em contribuição efetiva, por exemplo, permitindo que o voluntário tenha fácil acesso às tarefas e implementando recursos que façam com que a execução das tarefas seja uma atividade prazerosa e não entediante. 

Diversas pesquisas têm sido desenvolvidas no LSD com o objetivo de entender como os voluntários realizam suas contribuições em sistemas de computação por humanos e como esses sistemas podem ser projetados de modo a serem satisfatórios tanto para os cientistas como para os voluntários.  Um resultado recente dessas pesquisas é o artigo “Volunteers' Engagement in Human Computation Astronomy Projects”. Este artigo foi aceito para publicação na revista Computing in Science and Engineering do IEEE Computer Society. A pesquisa foi conduzida no LSD por Lesandro Ponciano e Francisco Brasileiro em cooperação com Robert Simpson que é membro da equipe que desenvolve e mantém o sistema Zooniverse na Oxford University, na Inglaterra, e Arfon Smith que é membro da equipe que desenvolve e mantém o sistema Zooniverse no Adler Planetarium, nos Estados Unidos.

A pesquisa é baseada em dados de aproximadamente 10 milhões de tarefas executadas por mais de 100 mil voluntários ao longo de dois anos em dois projetos de astronomia hospedados no Zooniverse: Galaxy Zoo e The Milky Way Project. A pesquisa se concentrou em analisar quatro características da contribuição dos voluntários: (i) frequência, que é o número de dias que o voluntário visitou o sistema para executar tarefas; (ii) produtividade diária, que é o número de tarefas que o voluntário executou nos dias em que ele esteve ativo no sistema; (iii) tamanho típico da sessão de contribuição, que é o tempo contínuo que o voluntário permaneceu executando tarefas em cada dia que esteve ativo; e (iv) tempo dedicado, que é o tempo total que o voluntário ficou executando tarefas no sistema, somados todos os dias em que ele visitou o sistema.

Além de definir essas características de engajamento, a pesquisa também focou em identificar distribuições de probabilidade que descrevem o comportamento dos voluntários no sistema em cada uma dessas características e as correlações entre as características. As distribuições de probabilidade e correlações foram obtidas com um claro propósito de servir como informação para que novos estudos possam ser conduzidos. Por exemplo, as distribuições podem ser usadas para gerar dados a serem utilizados em simulações que focam no estudo mais específico de algum comportamento dos voluntários.

O estudo também permite entender os padrões de contribuição dos voluntários e propor intervenções na forma como os sistemas são projetados de modo a torná-los mais efetivos. Por exemplo, o estudo mostra que de uma forma geral os voluntários exibem dois comportamentos: transiente e regular. Os voluntários transientes são aqueles que executam tarefas nos projetos um único dia e não retornam para executar mais tarefas. A maioria dos voluntários exibe esse comportamento. Os voluntários regulares são mais engajados em termos da frequência no projeto e da contribuição agregada (número de tarefas e tempo dedicado). Entretanto, a minoria dos voluntários exibe esse perfil. Embora significativamente diferente dos transientes, os grupo de voluntários regulares é bastante heterogêneo. Essa heterogeneidade também é analisada no artigo. Naturalmente, a contribuição de todos os voluntários (regulares e transientes) é importante para os projetos. Entretanto, o sistema pode ser ainda mais eficaz se projetado de forma que os voluntários se sintam mais dispostos a exibir um comportamento regular do que um comportamento transiente. Nesse sentido, os autores discutem como estratégias de recrutamento de voluntários, encorajamento de contribuição e design de tarefas podem ser desenvolvidas de modo a contribuir para que esse objetivo seja atingido.

Os trabalhos desenvolvidos no LSD na área de computação por humanos são apresentados nas Conversas LSD que ocorrem ao longo do ano. O conteúdo do artigo discutido neste post e outros trabalhos sobre engajamento e eficiência de voluntários em projetos científicos serão apresentados ainda no primeiro trimestre deste ano. A data e horário serão posteriormente definidos e divulgados aqui no blog.

segunda-feira, 17 de junho de 2013

Uma nuvem privada oportunista para execução de aplicações Bag-of-Tasks


Este trabalho é o resultado de pesquisa e desenvolvimento realizado no LSD por Abmar Barros, Patrícia Alanis, Francisco Brasileiro e Marcos Nóbrega. Foi publicado no XXXI Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2013).

Atualmente a Computação na Nuvem (Cloud Computing) é um dos principais paradigmas da computação, no qual recursos computacionais são oferecidos como serviços. Considerando o modelo de Infraestrutura como Serviço (IaaS), motivações distintas levam o usuário a utilizar nuvens públicas, onde solicita máquinas, redes e armazenamento sob demanda de provedores, ou implantar uma nuvem privada, que requer um investimento em infraestrutura para a aquisição de datacenters próprios e faz sentido para aplicações corporativas que necessitam de uma alta garantia do serviço. Existem classes de aplicações que se beneficiariam de uma infraestrutura não dedicada de nuvem, que é o caso de aplicações BoT (Bag-of-Tasks), que são aplicações paralelas que as tarefas são independentes entre si.

O paradigma de nuvens públicas, que oferece baixa QoS, não encontra uma analogia no cenário típico de implantação de nuvem privada. Além disso, os usuários finais, de uma forma geral, não estão acostumados com a interface da nuvem, que, a priori, se resume a uma coleção de instâncias com acesso SSH.

Este trabalho apresenta uma abordagem baseada em uma nuvem privada utilizando o software Eucalyptus, porém de uma forma oportunista, que permite descobrir e utilizar recursos ociosos que pertencem a uma infraestrutura física local, para isso reimplementamos o Node Controller (NC), um componente responsável por executar ações sobre os recursos físicos, que em sua implementação original limita o uso para os hipervisores XEN e KVM, e impõe uma série de requisitos de sistema para sua implantação que em um ambiente heterogêneo se torna inviável. O componente foi reimplementado em Java, uma vez que este dependeria apenas de uma JVM, e utiiliza o VirtualBox como hipervisor, já que seus executáveis estão disponíveis para uma série de sistema operacionais (Linux, Windows e MacOS) e não têm requisitos de hardware. A figura a seguir apresenta a arquitetura do NC oportunista apresentado neste trabalho.




O segundo problema citado refere-se a dificuldade de adaptação de usuários finais com a interface de nuvem, e para viabilizar a utilização da nuvem oportunista por pesquisadores de diferentes áreas, este trabalho apresenta um broker de nuvem, capaz de executar aplicações BoT na nuvem de forma transparente. A arquitetura do broker é constituída por dois componentes: o broker deamon, uma aplicação REST que executa em segundo plano e é responsável por escalonar tarefas, requisitar instâncias, transferir arquivos e executar comandos, e o broker client, uma interface onde o usuário pode submeter tarefas e recuperar informações de estados. A figura a seguir mostra um exemplo de aplicação BoT que pode ser submetida ao broker.



Para mais detalhes sobre a arquitetura da solução, e sobre o funcionamento do broker de nuvem veja o nosso artigo Uma nuvem privada oportunista para execução de aplicações Bag-of-Tasks.

quarta-feira, 5 de junho de 2013

Estratégias de Obtenção de um Item Máximo em Computação por Humanos

Este trabalho foi publicado no XXXI Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2013). É resultado da pesquisa de Iniciação Científica de Jeymisson Oliveira, desenvolvida com o auxílio de Lesandro Ponciano, Nazareno Andrade e Francisco Brasileiro.

Existem problemas que não são bem resolvidos com os sistemas computacionais atuais, por exemplo, encontrar onde está o wally na imagem abaixo é uma tarefa que não é resolvida de forma satisfatória (em termos de tempo e precisão) por computadores. Sistemas de computação por humanos tratam justamente desses problemas e visam orquestrar o trabalho de um grupo de trabalhadores com o objetivo de resolver um problema que não poderia ser resolvido de forma satisfatória com os  sistemas computacionais atuais.





Dentre os diversos problemas que a computação por humanos lida um problema bastante comum é a escolha de um item máximo. Como, por exemplo, a escolha de uma melhor tradução em um conjunto de traduções candidatas. Esse problema torna-se mais  complexo na medida em que a quantidade de frases aumenta. A solução mais simples para esse problema é comparar todos os candidatos e o candidato que for dito como máximo no maior número das comparações que participou é o item máximo. O problema dessa solução é que à medida em que os itens candidatos aumentam, são necessárias muitas comparações para se obter o item máximo.


O objetivo do nosso trabalho é tornar mais eficiente em termos de quantidade de tarefas necessárias para a obtenção do item máximo. Para isso nós propomos uma estratégia de eliminação múltipla de itens candidatos que objetiva eliminar múltiplos itens candidatos em uma comparação e com isso reduzir a quantidade de comparações necessárias para se obter o item máximo.


Quantidade de tarefas para se obter o item máximo
Economia de tarefas com eliminação múltipla
Para avaliar os benefícios da estratégia de eliminação múltipla nós analisamos  três algoritmos de obtenção de um item máximo existentes na literatura, o Tournament Selection(TS), 2-Max, e Tournament Max, e modelamos a quantidade de tarefas necessárias para a obtenção de um item máximo com a estratégia e sem  a estratégia de eliminação múltipla. Nesse caso obtivemos a quantidade de tarefas necessárias para se obter o item máximo para cada um dos algoritmos 2-Max, TM e TS, e a quantidade de tarefas necessárias com os algoritmos modificados 2-Max2 e TM2 para utilizarem a estratégia de eliminação múltipla. Portanto pudemos observar que a economia  obtida com relação ao número de tarefas quando utilizamos o algoritmo modificado 2-max2 no lugar do algoritmo do estado da arte 2-Max chega à níveis maiores que 50% à medida em que o número de itens candidatos |S| aumenta. 


Por fim para avaliar a utilização da estratégia de eliminação múltipla, nós desenvolvemos uma aplicação de obtenção de um item máximo que foi realizada por 108 trabalhadores, e possuía 520 comparações. Cada comparação deveria ser realizada no mínimo 3 vezes. Nessa aplicação os trabalhadores deveriam selecionar qual  das imagens possui a grade vermelha que melhor se encaixa entre as linhas e colunas das tabelas ou optar pela utilização da eliminação múltipla selecionando um botão que eliminaria as duas imagens. Com os resultados desse experimento, pudemos concluir que os trabalhadores convergem com relação à utilização da eliminação múltipla quando os itens não se adequam como item máximo (grades vermelhas que não se encaixam de maneira alguma entre as linhas e colunas das tabelas) e que eles também convergem em escolher um dos itens quando ele atende aos requisitos de um item máximo. Portanto há evidências de que a estratégia de eliminação múltipla proposta além de gerar uma economia com relação a quantidade de tarefas necessárias não insere erros na computação de obtenção de um item máximo.


A aplicação utilizada para experimento nesse trabalho está acessível aqui. Para mais detalhes veja nosso artigo Estratégias de Obtenção de um Item Máximo em Computação por Humanos.

terça-feira, 21 de maio de 2013

Planejamento de Capacidade a Longo Prazo Dirigido por Métricas de Negócio para Aplicações SaaS



Este artigo é resultado da pesquisa de mestrado de David Candeia, com a colaboração da professora Dra. Raquel Lopes e de Ricardo Araújo. O artigo foi recentemente publicado no XXXI Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC 2013). A seguir, um resumo do trabalho:

No universo de Gerência de Recursos existe uma atividade estratégica de planejamento denominada de Planejamento de Capacidade. Esta atividade considera previsões de uma carga de trabalho futura de modo a estimar a quantidade de recursos computacionais que é necessária para atender esta demanda. De acordo com a duração do intervalo de tempo que se está planejando o artigo considera dois tipos de planejamento de capacidade: um planejamento de curto prazo (também denominado de Provisão Dinâmica de Recursos) busca estimar a quantidade de recursos computacionais (ou instâncias de máquinas virtuais) necessária em um curto intervalo de tempo (e.g. uma hora); um planejamento de longo prazo busca estimar a quantidade de recursos computacionais necessária em um longo intervalo de tempo (e.g. um ano). 

O planejamento de capacidade no ambiente de Computação na Nuvem se faz necessário uma vez que provedores de Infraestrutura como Serviço (i.e. provedores de IaaS) oferecem instâncias de máquinas virtuais em diferentes mercados, dos quais consideramos dois: o mercado sob demanda, no qual instâncias podem ser obtidas no momento em que forem necessárias sem uma garantia de que o pedido por estas instâncias será atendido; o mercado de reserva, no qual instâncias podem ser reservadas com antecedência (e.g., 1 ou 3 anos) e com uma garantia por parte do provedor de IaaS que tais instâncias estarão disponíveis sempre que forem requisitadas. Com a existência do mercado de reserva o planejamento de capacidade a longo prazo é responsável por determinar a quantidade de instâncias que devem ser reservadas.

Nós consideramos o cenário no qual um provedor de Software como Serviço (SaaS) monta sua infraestrutura computacional adquirindo instâncias de máquinas virtuais junto a provedores de Infraestrutura como Serviço. Neste cenário, avaliamos duas heurísticas de planejamento de capacidade a longo prazo considerando o impacto que cada uma destas heurísticas tem no lucro de um provedor de SaaS. A busca pela melhor heurística de planejamento, bem como o aperfeiçoamento das heurísticas avaliadas, fazem parte das próximas etapas do trabalho. As duas heurísticas avaliadas foram:

  • Heurística baseada em Rede de Filas (RF) - esta heurística faz uso de conceitos de Teoria das Filas (e.g., taxa média de chegada, tempo médio de serviço) para estimar a quantidade de instâncias necessária para processar a carga de trabalho estimada. De posse da quantidade de instâncias estimada, RF avalia qual reserva de recursos fornece o maior lucro para o provedor de SaaS e implementa esta reserva.
  • Heurística baseada em Taxa de Utilização (UT) - esta heurística simula a execução da carga de trabalho estimada utilizando apenas recursos obtidos no mercado sob demanda. Após a simulação, UT calcula a taxa de utilização de cada instância utilizada na simulação e considera que as instâncias que apresentaram uma taxa de utilização superior ao limiar definido pelos preços das instâncias no provedor de IaaS deveriam ter sido reservadas.


As heurísticas acima foram avaliadas através de simulações e foram comparadas com três estratégias de referência: uma estratégia que não realiza reserva de recursos (ON), utilizando apenas recursos do mercado sob demanda; uma estratégia que realiza superprovisionamento da infraestrutura (SUPER); uma estratégia ótima (OP) que conhece o futuro e implanta o melhor plano de reserva possível.

Avaliando os resultados dos testes estatísticos realizados podemos concluir (com um nível de 95% de confiança) que as heurísticas RF e UT fazem com que o provedor de SaaS obtenha um lucro maior do que o lucro que seria obtido usando as estratégias ON e SUPER. A Figura 1 nos apresenta a variação no lucro do provedor de SaaS (métrica denominada de ganho em nosso trabalho) ao utilizar as heurísticas/estratégias RF, UT e SUPER em relação à estratégia ON .




Inicialmente percebemos que superprovisionar a infraestrutura reduziu consideravelmente o lucro do provedor de SaaS, logo seria mais vantajoso para o provedor não ter realizado um planejamento de longo prazo. Para as heurísticas RF e UT, apesar do ganho apresentar valores baixos (em torno de 7% para RF no melhor cenário) é importante destacar que financeiramente este valor é mais significativo quão maior for a receita do provedor de SaaS. Além disso, a estratégia OP apresenta um ganho em torno de 11%, demonstrando que existe margem para melhoria e aperfeiçoamento das heurísticas avaliadas no artigo. 

Realizamos, ainda, uma análise de sensibilidade com o fator denominado de erro de predição, que indica um erro na estimativa da quantidade de clientes de SaaS que compõe a carga de trabalho. Foram utilizados 7 níveis para este fator e analisando os resultados apresentados na Figura 2 percebemos que:




  • Quando a quantidade de clientes de SaaS é subestimada (e.g., a carga real possui 100 clientes e a carga prevista possui 80) a heurística UT apresenta os melhores resultados. 
  • Quando a quantidade de clientes de SaaS é superestimada (e.g., a carga real possui 100 clientes e a carga prevista possui 120) a heurística RF apresenta os melhores resultados.


Logo, as principais conclusões deste trabalho para o escopo avaliado foram:

  1. Não se deve superprovisionar uma infraestrutura de TI dado que o superprovisionamento pode ser mais deficitário que não realizar um planejamento de capacidade a longo prazo. Além disso, heurísticas cujas tomadas de decisão são relativamente simples permitem ganhos em torno de 3.77% para RF e de 3.19% para UT.
  2. O erro de predição da carga de trabalho influencia fortemente os ganhos que podem ser obtidos ao se utilizar uma das heurísticas de planejamento de capacidade avaliadas. Além disso, o erro de predição influencia na escolha de qual a melhor heurística a ser utilizada.



Autoflex: Service Agnostic Auto-scaling Framework for IaaS Deployment Models


Este trabalho é resultado da pesquisa de mestrado realizada por Fábio Morais, decorrente de uma cooperação entre o Laboratório de Sistemas Distribuídos (LSD) da UFCG e a Hewlett-Packard (HP). Essa pesquisa contou com a parcipação de Fábio Morais, Francisco Brasileiro, Raquel Lopes, Ricardo Santos (representantes do LSD), Wade Satterfield (HP Fort Collins) e Leandro Rosa (HP Brasil). Uma versão resumida desse trabalho de mestrado foi publicada no 13th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid 2013), realizado na cidade de Delft, Holanda.

Figura 1. Variação de carga de utilização no tempo.

O trabalho concentra-se no cenário atual do paradigma de Computação na Nuvem, que corresponde, em essência, na provisão de Tecnologia da Informação (TI) como serviço. Esse paradigma carrega consigo o conceito de elasticidade, que consiste na provisão de recursos computacionais sob demanda. A elasticidade é uma das principais propriedades usadas na redução de custos derivados da execução de serviços em ambientes de Infraestrutura como Serviço (IaaS). No entanto, essa propriedade só pode ser inteiramente explorada se os clientes dos serviços de IaaS forem capazes de estimar futuras demandas de suas aplicações no curto prazo, de forma que apenas a infraestrutura necessária para manter as aplicações seja requisitada a cada instante de tempo. Deste modo, os acordos de nível de serviço (SLAs) firmados entre o cliente do serviço de IaaS e os usuários de suas aplicações são sempre honrados e o super provisionamento é evitado. No entanto, para aplicações que apresentam grandes variações de carga de utilização essa atividade de provisionamento torna-se uma tarefa não trivial. Um exemplo de aplicação com intensa variação de carga pode ser observado na Figura 1.


Figura 2. Abordagem de provisionamento reativo.

A técnica de provisionamento automático consiste no processo de modificar automaticamente a quantidade de recursos disponíveis para manter e executar uma aplicação em um ambiente de IaaS, dependendo da demanda da aplicação. O mercado de Computação na Nuvem apresenta soluções de provisionamento automático que utilizam abordagens reativas, que em geral não conseguem evitar violações de SLO e que  por consequência são insuficientes para minimizar os custos de quebras de SLA, embora possam reduzir os custos do super provisionamento. Um exemplo do comportamento do provisionamento reativo pode ser observado na Figura 2. Para reduzir os custos devido a violações de SLA são necessárias abordagens proativas.

O trabalho desenvolvido propõe um framework para provisionamento automático de recursos não intrusivo, ou seja, que não necessita de informações específicas da aplicação, apenas informações de utilização de recursos no nível de máquina virtual. O framework realiza o provisionamento a partir das abordagens reativa e proativa, baseadas no uso de um conjunto configurável de preditores de demandas dos serviços, além de usar um mecanismo de seleção que decide, periodicamente, o melhor preditor a ser usado. Também é proposta uma nova maneira de corrigir predições subestimadas, reduzindo por consequência o número de violações de SLO.

O framework proposto foi avaliado através de simulações baseadas em traces de utilização de aplicações em produção de clientes da HP. Os resultados evidenciam o trade-off entre redução de custo e garantias de qualidade de serviço (QoS), uma vez que a configuração do framework pode priorizar redução de custo ou manutenção de QoS. Esse trade-off pode ser observado em maiores detalhes na Figura 3. Através de configurações mais conservadoras (C8) foi possível obter uma economia de até 37% em relação ao cenário super provido, enquanto a probabilidade de quebra de SLO é mantida em média em 0,008% e limitada superiormente a 0,036%. 

Figura 3. Trade-off entre redução de custo e garantias de QoS.

Além do mais, a flexibilidade do framework permite que, através da utilização de diferentes configurações, seja possível alcançar economias adicionais apenas com um pequeno aumento no número de violações de SLO.

quinta-feira, 4 de abril de 2013

LSD no SBRC 2013



O Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC) é o principal evento brasileiro na área de Sistemas Distribuídos e Sistemas. A edição deste ano acontecerá em Brasília, em maio, e o LSD orgulhosamente participará com 6 artigos elaborados com diversos parceiros. Segue abaixo a lista. Parabéns aos autores!

Na Trilha Principal:

Estratégias de Obtenção de um Item Máximo em Computação por Humanos
Jeymisson Barreto e Oliveira, Lesandro Ponciano, Nazareno Andrade, Francisco Brasileiro

Planejamento de Capacidade a Longo Prazo Dirigido por Métricas de Negócio para Aplicações SaaS
David Candeia, Raquel Lopes, Ricardo Araújo Santos

Um Arcabouço Para Provisionamento Automático de Recursos em Provedores de IaaS Independente do Tipo de Aplicação
Fabio Morais, Francisco Brasileiro, Raquel Lopes, Ricardo Araújo Santos, Augusto Macedo (UFCG), Wade Satterfield (HP labs), Leandro Rosa (Hewlett-Packard, Brazil Lab).

Sobre o Uso de Dispositivos de Alta Granularidade, Alta Volatilidade e Alta Dispersão em Just in Time Clouds
Rostand Costa, Diénert Vieira, (UFPB) Francisco Brasileiro (UFCG) Dênio Mariz Sousa IFPB,
Guido Lemos Filho (UFPB)

No Salão de ferramentas:

Uma nuvem privada oportunista para execução de aplicações Bag-of-Tasks
Patricia Alanis, Abmar Barros, Marcos Nóbrega, Francisco Brasileiro (UFCG)

Just-in-Time Clouds: Uma abordagem para Federação de Clouds PrivadasEdigley Fraga, Jonathan Brilhante, Rostand Costa, Francisco Brasileiro, Marco Spohn, Reinaldo Gomes, Universidade Federal de Campina Grande
Pedro Bignatto, Diego Desani, Hermes Senger, Universidade Federal de São Carlos
Airton Pereira, Vinícius Garcia, Universidade Federal de Pernambuco
Fernando Trinta, Universidade Federal do Ceará
Ana Cristina Oliveira, Henryson Chagas, Aleciano Ferreira, Instituto Federal de Ensino, Ciência e Tecnologia da Paraíba
Philippe Navaux, Eduardo Roloff, Otávio Carvalho, Universidade Federal do Rio Grande do Sul
Raimundo Macêdo, Alírio Sá, Universidade Federal da Bahia

segunda-feira, 18 de março de 2013

Contributor Profiles, their Dynamics, and their Importance in Five Q&A Sites


Este artigo foi desenvolvido no mestrado de Adabriand Furtado, com a participação de Nazareno Andrade, Nigini Oliveira e Francisco Brasileiro, e foi recentemente publicado na conferência Computer Supported Cooperative Work (CSCW '13), da ACM. A seguir, um resumo do trabalho:

Sites de perguntas e respostas (Q&A) têm se mostrado um recurso valioso em ajudar pessoas a resolverem seus problemas do dia-a-dia. Atualmente, os sites Yahoo! Answers e StackOverflow têm atraído números massivos de contribuidores voluntários para trocar conhecimento através de atividades como criar perguntas, respostas, comentários e avaliar o conteúdo gerado.

Como efeito do tamanho considerável destas comunidades, é de se esperar que contribuidores nestes sites exibam comportamentos diversos na criação de conteúdo  seja dando preferência à criação de um determinado tipo de contribuição (e.g. somente respostas) ou demostrando alguma habilidade em criar conteúdo. Nosso trabalho foca em analisar a diversidade de comportamento dos contribuidores em sites de Q&A. Entender como cada tipo de contribuidor colabora para o funcionamento de sistemas de Q&A ajuda a gerenciar estes sites. Por exemplo, este conhecimento pode informar o desenvolvimento de estratégias para promover ou inibir certos comportamentos na comunidade.

Página de uma pergunta no site de Q&A Super User

Para examinar o comportamento típico dos contribuidores nestes sites, utilizamos dados históricos de cinco sites da plataforma de Q&A Stack Exchange Super User, Server Fault, Programmers, Ask Ubuntu e Mathematics – e derivamos um conjunto de perfis que descrevem a motivação e habilidade dos contribuidores em perspectivas de longo e curto prazo. Na perspectiva de longo prazo, aplicamos a análise de agrupamento nos dados completos de atividade dos usuários. Esta análise revelou dez perfis comportamentais, os quais foram resumidos em quatro tipos:

  1. Sem habilidade marcante, usuários de baixa a média atividade e habilidade;
  2. Imperitos, usuários com contribuições mal avaliadas;
  3. Experts, contribuidores hábeis em realizar um tipo de atividade; e
  4. Ativistas, contribuidores de alta atividade.

Curiosamente, experts e contribuidores de alta atividade formam grupos disjuntos em nossos resultados. Mecanismos de alocação de tarefas podem se beneficiar desta evidência, direcionando experts para responder respostas difíceis, ou uma combinação de experts e ativistas para aumentar as chances de obter uma resposta rapidamente.

Usando estes perfis, analisamos a composição dos sites e observamos que as distribuições dos perfis são notavelmente semelhantes nos cinco sites. Além disso, observamos que imperito em respostas é o segundo perfil mais comum nestes sites. Este dado indica a necessidade de oferecer orientação a estes usuários para melhorar a qualidade de suas contribuições.


Distribuição dos perfis de contribuidor nas cinco comunidades

Ainda na análise de perfis de longo prazo, examinamos o papel de cada perfil na produção de conteúdo para os sites. Esta caracterização descreve ativistas e contribuidores sem habilidade marcante produzindo a maioria das contribuições em todos os cinco sites, enquanto que experts e imperitos coletivamente produzem uma fração pequena das contribuições. Observar que experts são de pequena importância para a criação de conteúdo pode motivar os gerentes destes sites a buscarem meios para promover a participação destes usuários.

Na perspectiva de perfis de curto prazo, nossa análise objetiva entender como o comportamento dos contribuidores e propriedades estruturais do site mudam ao longo do tempo. Para tal, selecionamos o maior dos cinco sites estudados, o Super User, e conduzimos uma versão longitudinal da nossa análise em seus dados históricos. Os perfis descobertos nesta análise de agrupamento, considerando janelas de 2 meses, são notavelmente similares aos perfis encontrados na análise usando toda a atividade do site.

Usando a categorização dos perfis em cada janela, examinamos a evolução da distribuição dos perfis no Super User e identificamos que sua composição é estável. Contudo, a análise de dinâmica dos perfis mostra que os usuários mudam de perfil com certa frequência. O resultado desta análise mostra que todos os perfis, exceto ativistas, tendem a mudar para perfis de menor atividade nas janelas seguintes. Além disso, usuários imperitos em respostas e experts tendem a abandonar a comunidade dentro de pouco tempo.

Por fim, nosso último experimento relacionado à dinâmica de comportamento compara a probabilidade de um usuário atuar de acordo com um dado perfil, caso este usuário seja novato ou experiente. Sem muita surpresa, esta análise aponta que novatos são mais propensos a atuar como imperitos em respostas, enquanto que usuários experientes tendem a atuar em perfis mais ativos. No entanto é interessante que usuários experientes não possuem uma maior chance de se comportar como experts. Isto sugere que experts agem como tal desde seu início no site, mas ativistas tendem a se desenvolver com o tempo.

Para mais detalhes, veja nosso artigo Contributor Profiles, their Dynamics, and their Importance in Five Q&A Sites.

domingo, 24 de junho de 2012

Estratégias de economia de energia em grades computacionais


Um artigo científico intitulado “Assessing Green Strategies in Peer-to-Peer Opportunistic Grids”, que apresenta resultados de uma pesquisa desenvolvida no LSD por Lesandro Ponciano e prof. Francisco Brasileiro, foi aceito para publicação no Jornal of Grid Computing. Os autores foram notificados da aceitação no dia 22 de junho.

O artigo trata da economia de energia em grades computacionais entre-pares. Grades computacionais entre-pares são infraestruturas de computação que utilizam ciclos ociosos de recursos computacionais de diferentes domínios administrativos. Geralmente, a demanda por recursos nessas grades ocorre em rajadas. Durante uma rajada de demanda, muitos recursos da grade são necessários. Porém, em outros momentos, os recursos permanecem ociosos por longos períodos. Nesse contexto, um problema tratado no artigo é que manter os recursos ociosos quando eles não estão em uso nem pela grade nem pelo usuário local não é uma prática eficiente em termos de consumo de energia. O artigo mostra que uma maneira de reduzir a energia consumida pelos recursos nesses períodos é colocá-los em um modo de dormência, em que eles consomem menos energia. 

O trabalho avalia duas estratégias de dormência: Sobreaviso e Hibernação. Ele mostra que, no contexto de grades computacionais, essas estratégias apresentam um compromisso entre o benefício da economia de energia dos recursos, de um lado, e de outro lado os custos associados em termos do aumento no tempo de resposta das aplicações e do impacto no tempo de vida dos recursos. O aumento no tempo de resposta advém do tempo necessário para acordar o recurso quando surge uma nova demanda da grade. O impacto na vida útil do recurso ocorre em razão das partidas e paradas das rotações do disco rígido quando as estratégias de dormência são utilizadas. O artigo utiliza um modelo simulado para tratar esse compromisso. Além das estratégias de dormência, também é avaliado após quando tempo de inatividade as estratégias de dormência devem ser utilizadas e como cada domínio administrativo da grade pode decidir qual estratégia de dormência utilizar. 

Os resultados mostram que os estados de dormência avaliados permitem economizar energia com um baixo custo associado em termos de atraso no tempo de resposta das aplicações e da redução da vida útil dos discos rígidos. Além disso, a estratégia a ser utilizada em cada domínio administrativo da grade depende do tamanho das sessões de disponibilidade das máquinas domínio administrativo. No estudo realizado, a estratégia Hibernação mostrou-se mais adequada em domínios administrativos em que os recursos permanecem mais tempo disponíveis para a grade. De outro modo, a estratégia Sobreaviso mostrou-se mais adequada para ser utilizada em domínios administrativos em que os recursos permanecem pouco tempo disponíveis para a grade. Assim, cada domínio administrativo deve ser configurado para utilizar a estratégia de dormência que melhor se adapta às suas características. 

O estudo mostra também que, diferentemente de outros tipos de infraestruturas de grade, nas grades entre-pares pode-se colocar uma máquina em estado de dormência tão logo ela se torna inativa, isto é, não é necessário utilizar uma política de tempo inatividade. Isso permite aumentar a economia de energia da grade sem impactar significativamente o tempo de resposta das tarefas e vida útil dos discos rígidos.


quarta-feira, 21 de março de 2012

Conversa LSD - Leveraging Trust and Distrust for Sybil-Tolerant Voting in Online Social Media

Caros,

Na Conversa LSD desta semana (quarta, 16h, no auditório do LSD) temos uma palestra de um visitante, e gostaríamos de convidar a todos. Segue abaixo uma breve apresentação do palestrante e da palestra.

[]s
Nazareno

Nitin Chiluka está no último ano de seu doutorado na TUDelft e trabalha no uso de análise de grafos para entender e projetar sistemas distribuídos, de recomendação e mídia social online. Eu participo da orientação de Nitin e ele está visitando a UFCG no contexto de um projeto CAPES/Nuffic entre TUDelft e UFCG. 

O resumo da apresentação:

Leveraging Trust and Distrust for Sybil-Tolerant Voting in Online Social Media

Voting is a vital component of online social media (OSM).  Votes on content items in OSM, e.g., likes in YouTube and Facebook, favorites in Flickr, and diggs in Digg) are typically incorporated into many of their central features such as recommendations, ‘most popular’-like pages and ranking search results. Voting helps in determining popularity and trustworthiness of content. 

At the same time, due to their open membership access, voting on content items in OSM is susceptible to Sybil attacks.  Malicious attackers can create multiple Sybil identities to outvote the real users of the system. To defend against such an attack, we leverage (i) trust which is inherent in the social network among users in OSM, and (ii) distrust between honest users, who identify some of the spam content items, and the Sybil identities who promoted them. Modeling trust and distrust in the system as a signed network, our method proceeds in two phases. First, we identify nodes and edges that constrain paths along positive edges between the endpoints of each negative edge. Second, we limit the votes from Sybil voters whose paths to honest nodes pass across these bottlenecks. Our simulation results on popular OSM datasets show both the feasibility of incorporating distrust alongside trust to defend against Sybil attacks, and that our method outperforms the state-of-the-art approach, SumUp.

terça-feira, 6 de março de 2012

Conversa LSD: Apresentação e Introdução ao Projeto PDJ - Highly-Virtualising Cloud Resource Broker

Oi pessoal,

Esta semana será a palestra de Josef Spillner, que está fazendo pós-doc aqui no lsd, em parceria com a TU-Dresden. Mantemos o mesmo dia e horário da última conversa: quarta-feira (07/03), 16h.

O resumo da palestra segue abaixo: 

Lívia,

-
Título: Apresentação e Introdução ao Projeto PDJ - Highly-Virtualising Cloud Resource Broker

Provedores comerciais de recursos para computação em nuvem (Infrastructure-as-a-Service, IaaS) oferecem um emparelhamento limitado entre os recursos providos e as tarefas submetidos pelo consumidor desses serviços. Isso é dévido aos perfís de configuração de granularidade grossa (p.ex. o tipo de instância EC2-small da Amazon) em combinação com múltiplos inteirezos numa escalabilidade apenas horizontal e restrições implícitos adicionais como medir por hora completa. Em comparação com a utilidade alta de serviços públicos como eletricidade ou água, estas desavantagens deixam uma fenda entre of que os provedores IaaS oferecem e o que seria tecnicamente possível e economicamente vantajoso para o consumidor. A palestra primeira intruduz o Josef e o seu trabalho anterior sobre plataformas de serviçoes e infraestruturas para computação em nuvem, seguido pelo resumo de um plano de solução para esse problema. A solução demanda a operação de um highly-virtualising cloud resource broker que será avaliado durante o ano 2012 sob esquema CNPq PDJ.

quarta-feira, 29 de fevereiro de 2012

Conversa LSD: Automated configuration of distributed storage systems

Olá pessoal,

estamos retomando as conversas lsd nesta semana. Nossa primeira conversa lsd será nessa quarta-feira, 29/02, às 16h, com direito à comemoração dos aniversariantes dos meses de janeiro e fevereiro e boas-vindas aos pesquisadores visitantes (Lauro, Mihai, Nitin e Josef).

O primeiro palestrante será Lauro Beltrão, aluno de doutorado da UBC. O título e resumo da sua palestra seguem abaixo.

Lívia
-------

AUTOMATED CONFIGURATION OF DISTRIBUTED STORAGE SYSTEMS

Distributed storage systems have evolved to employ optimization techniques (e.g., replication, data deduplication, data striping and caching policies) that enable trade-offs over interrelated success metrics such as response time, throughput, storage space, and energy consumption. Setting the configuration parameters of such optimization techniques to best match the success criteria involves exploring a large configuration space to tune the parameters for each of these techniques. Additionally, the values of the configuration parameters are workload-dependent, requiring exploration of the parameters for each different workload. Such exploration makes manually configuring the distributed storage system an undesirable if not unfeasible task.
My research addresses the following main question: How to configure a distributed storage system (i.e., enable/disable various optimization techniques and configure their parameters) to match the application requirements with minimal human intervention?
During my presentation, I will briefly present the motivation to automate the configuration of a distributed storage system and the requirements for an automated configuration solution. I will describe the architecture proposed for anautomated configuration solution and an initial use cases based on data deduplication. Finally, I will briefly present the next steps of my research focusing on the optimization techniques and success metrics that we plan to focus on.