logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog

follow us in feedly

Apresentação do Tio dia 15 de maio no nosqlbr

Esse sábado acontecerá o primeiro evento brasileiro sobre nosql, organizado pelo @porcelli do OpenSpotlight. Eu farei a palestra "Tio: um nosql Made in Brasil". Tio? Ãh?

Eu ando parindo um nosql já faz mais de um ano, depois de passar mais de um ano pensando no conceito. Aproveitando esse evento e a modinha do nosql, acho que agora é a hora de publicar os fontes e divulgar. Os fontes e a documentação estão em http://code.google.com/p/tio (apesar da insistência do @porcelli para que eu colocasse no github :-))

Para o pessoal de C++, o Tio nada mais é do que containers STL em um servidor remoto, mas tudo construído sobre um base publish/subscribe. Olha como fica simples construir alguns softwares server side com esse conceito:

  • Servidor de filas: criar uma lista, o producer manda as coisas fazendo push_back na lista e o consumer usa pop_front. Ou o commando wnp_next, que facilitar a contrução de clusters computacionais.
  • Servidor de chat: criar uma lista de mensagem para cada usuário. O usuário assina as modificações da própria lista e quem quiser mandar uma mensagem pra ele faz um push_back na lista. Você pode criar um map com os IDs dos usuários, onde o valor é o nome da lista de mensagens. Se você assinar esse mapa, ainda será notificado automagicamente sobre todos os usuários criados ou apagados

Minha idéia é: todo software server mantém estado e notifica clientes das modificações nesses estados. Eu faço isso bastante usando C++, e é sempre isso. Um monte de containers STL para controlar o estado da aplicação, e código para enviar notificações via TCP para os interessados. O Tio faz quase todo esse serviço sozinho. Muitos protótipos de aplicação podem ser feito com zero linhas de código server.

Os fontes e a documentação estão lá no site do projeto Tio. Para compilar no Windows, tem um projeto do Visual Studio 2008 (não testei no Express, mas deve funcionar). No Linux, você vai precisa do CMake ("cmake . && make" faz o serviço). Você vai precisar do Boost devidamente instalado, compilado e configurado, o Tio é feito usando Boost Asio. O fonte é bem simples e direto, deve ser um bom ponto de aprendizado para quem está estudando Boost Asio.

Criei duas listas de discussão: uma em inglês, e uma em português. Note que o site do Tio é todo em inglês (e os comentários do Wiki devem ser em inglês). Está nos planos ter documentação em português também. Mas eu sou um só :-)

Nos fontes você vai achar um client para C++ e um client Python. Por falta de tempo, o client Python está mais refinado do que o client C++. Em C++ tudo é feito usando algo como

shared_ptr<TioContainer>
e
container->PushBack(TIONULL, "abcdef")
Em Python você usa um container remoto como se fosse local, com coisas tipo
container["rodrigostrauss"] = "messages/rodrigostrauss"

Para maiores explicações e o chopp/happyhour/networking de sempre, nos encontramos no evento de nosql esse sábado. Traga suas perguntas e comparações com outros nosql.

Em 11/05/2010 15:11, por Rodrigo Strauss


  
 
 
Comentários
Cleovane Selbach | e-mail | em 12/05/2010 | #
Que bom que você voltou a postar e trouxe boas novidades Estou começando a estudar programação, e fico muito animado quando leio postagens como essa. Sucesso em sua apresentação.
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::