sexta-feira, 31 de julho de 2009

Ministério da Cultura Lança comunidade virtual para discutir cultura digital no Brasil

Do site do MinC:

O Ministério da Cultura e a Rede Nacional de Ensino e Pesquisa (...) (RNP), vinculada ao Ministério da Ciência e Tecnologia, lançam nesta sexta-feira, 31 de julho, em São Paulo, o Fórum da Cultura Digital Brasileira, primeiro site de Rede Social proposto pelo Governo Federal. (...)

O lançamento será realizado às 15h, no Centro Cultural da Federação das Indústrias do Estado de São Paulo (Fiesp), como atividade paralela ao Festival Internacional de Linguagem Eletrônica, e contará com a participação do ministro da Cultura, Juca Ferreira. (...) O encontro será transmitido em tempo real no link www.culturadigital.br/aovivo.

(...)

“A ideia de criar uma rede de mídia social no governo nasceu da necessidade de trazer a participação da população nas discussões das políticas públicas”, comentou o gerente de Cultura Digital da Secretaria de Políticas Culturais do MinC, José Murilo Junior.

(...)

terça-feira, 28 de julho de 2009

Padronização da Cloud - Computação na nuvem ou nas nuvens?

Padronização não é um tema inédito na área da computação distribuída. Em grades computacionais, por exemplo, discutiu-se bastante a necessidade de um padrão das várias tecnologias para que a metáfora da computação fornecida como energia elétrica se tornasse realidade. Alguns esforços, como o da Open Grid Forum (OGF), foram feitos para tal, porém sem muito sucesso.

Como já é característico na ciência da computação, cada grupo de pesquisa ou empresa geralmente cria seu próprio mundo e não há muita preocupação em criar um universo comum em que esses mundos se relacionem. Em Cloud Computing não é diferente. Apesar de ser algo novo, já se nota a nuvem sendo particionada entre diferentes empresas, tecnologias, interfaces, funcionalidades. No artigo The Wrong Cloud, da Maya Design, os autores criticam essa divisão da nuvem: "Today’s so-called cloud isn’t really a cloud at all. It’s a bunch of corporate dirigibles painted to look like clouds. You can tell they’re fake because they all have logos on them. Real clouds don’t have logos".

A idéia da nuvem como algo transparente para o usuário, onde processamento é obtido de forma fácil e elástica, é dificultada pela falta de padronização, resultando em uma depedência de tecnologias que são específicas para cada nuvem. Isto torna a aplicação dependente do provedor, impossibilitando uma fácil migração de um provedor para outro, além da interoperabilidade entre eles.

Para tentar amenizar o problema de padronização da nuvem, foi desenvolvida a libcloud, uma biblioteca para clientes de nuvens computacionais que fornece uma interface única para vários provedores de cloud computing. O projeto ainda é recente e as funcionalidades ainda são bastante limitadas. Porém, uma vantagem é que o projeto é open-source, tornando mais fácil a expansão das funcionalidades e dos provedores suportados.

Talvez uma biblioteca como esta não seja a melhor solução para os problemas de padronização das nuvens computacionais. Um dos motivos é a limitação das funcionalidades dos provedores que surge ao se criar uma interface única para todos eles. Talvez uma padronização adotada por todos os provedores seja a solução ideal, mas experiências passadas mostram que essa não é uma tarefa simples. Como o ideal parece longe de ser alcançado, fica ai a dica de uma biblioteca que tenta "colar" várias nuvens, aumentando um pouco a ilusão de que a computação é feita na nuvem e não nas nuvens.

terça-feira, 21 de julho de 2009

A Elasticidade, a Escalabilidade e a Nuvem

Ricky Ho publicou em seu blog uma questão bem interessante: Como definir escalabilidade e elasticidade?

Para ele, escalabilidade é tornar possível aumentar o workload de uma aplicação adicionando mais recursos. Obviamente esta estratégia possui um limite, simplesmente adicionar mais discos, processadores ou quaisquer outros dispositivos de hardware não resolverá problemas de escalabilidade. E este é um ponto interessante, pois ele considera escalabilidade apenas como adicionar novos recursos, leia-se hardware. Não seria a escalabilidade também implementada via software, sistemas distribuídos como o Google File System, por exemplo? A resposta é sim. E estas duas formas de conseguir escalabilidade são conhecidas como escalabilidade vertical e escalabilidade horizontal, respectivamente. Este post fornece um bom esclarecimento sobre cada uma delas.

Enquanto escalabilidade visa aumentar o workload de uma aplicação, ignorando a utilização ou não-utilização dos recursos disponíveis, elasticidade refere-se à habilidade de aumentar ou diminuir os recursos necessários para a execução da aplicação, on-the-fly. Deve-se notar que: possuir elasticidade não significa ser escalável.

No embalo da carruagem, Ricky Ho também mencionou outras características de aplicações na nuvem:

  • Statelessness: Evitar criar aplicações que armazenem estado

  • Minimizar o impacto causado pela movimentação de dados durante balanceamento de carga

  • Bons algoritmos para gerenciar o grau de elasticidade

Conversa LSD - 22/07/2009

Tema: “Automock: Interaction-Based Mock Code Generation”

Local: Auditório do LSD

Horário: 14:00h

Apresentador: Sabrina de F. Sout


Resumo:

Mock objects are used to improve both efficiency and effectiveness of unit testing. They can be used to write unit tests that completely isolate objects under test, while performing root cause analysis of defects. Writing tests that use mocks, however, can be a tedious, costly task and may lead to the inclusion of defects. Furthermore, mock based unit tests are known to be short-lived – they must be discarded for most design changes on the system. In this talk, I will present a technique that generates mock-based unit tests to face the mentioned drawbacks. It is based on the analysis of execution traces to capture interactions between a target object and its collaborators. I also will present Automock, a proof of concept tool developed to evaluate the feasibility of the technique.


Abraços e até Quarta

terça-feira, 14 de julho de 2009

Conversa LSD - 15/07/2009

Tema: Um modelo de armazenamento de metadados tolerante a falhas para o DDGfs
Local: Auditório do LSD
Horário: 14:00h
Apresentador: Alexandro S. Soares

Resumo da Conversa:

"O Desktop Data Grid file system (DDGfs) é um sistema de arquivos distribuído desenvolvido para atender a requisitos de escalabilidade e manutenabilidade não oferecidos por sistemas de arquivos distribuídos amplamente utilizados na prática, como NFS e Coda. No DDGfs, dados e metadados são armazenados em componentes separados. Os dados são armazenados em servidores de dados, enquanto os metadados são mantidos em um único
servidor de metadados. Essa arquitetura facilita o projeto do sistema, mas torna o servidor de metadados um ponto único de falha. Apesar de ser considerado um componente confiável, falhas são inevitáveis. Se esse componente
falhar, os metadados podem ser perdidos e todos os dados armazenados se tornam inacessíveis. Em nossa conversa, apresentarei um modelo de armazenamento de metadados que permite que o servidor de metadados seja restaurado após uma falha catastrófica que corrompa seu estado."

Abraços e até Quarta!

sexta-feira, 10 de julho de 2009

Cassandra: Eventually consistent, structured, distributed key-value storage

O pessoal do Facebook tornou público e aberto um projeto interno deles baseado no Dynamo da Amazon e no BigTable, da Google. O projeto, chamado Cassandra, assim como o Dynamo, é uma infra-estrutura altamente escalável para armazenar pares (chave, valor) de forma eventually consistent.

A publicação dos detalhes do Dynamo, assim como do MapReduce, BigTable e outros, é um prato cheio para a comunidade científica, já que mostra uma aplicação em produção e em grande escala de diversos conceitos que costumam ficar apenas em aulas de sistemas distribuídos ou em argumentos difíceis de justificar em artigos científicos. A disponibilidade do Cassandra leva isso mais um passo adiante, dando à comunidade um projeto em código aberto que está sendo usado dentro do Facebook para a experimentação.

quarta-feira, 8 de julho de 2009

Google Chrome OS

Para quem ainda não ouviu a novidade que, nos próximos dias, deve ser a fonte de milhares de rumores, especulações e matérias sem sentido em revistas de tecnologia: A Google anunciou um projeto de sistema operacional onde as aplicações são (quase?) todas Web: o Google Chrome OS.