11 de out. de 2009

Resolvendo um Quebra Cabeça

Não tenho como afirmar qual estrutura de TI por trás do Twitter. Seria um erro apontar o funcionamento dele por completo. Porém, existem algumas coisas que são obvias. Uma delas deve ser a existencia de uma chave primária que identifica a propriedade de alguém em qualquer sistema onde as pessoas inserem login e senha.

O que é esta chave primária? Por definição para quem trabalha com Banco de Dados, é algo bem simples mas que pode parecer um pouco mais complicado para quem não é da área de informática. Tentando simplificar, é o identificador primário ÚNICO de qualquer sistema. Normalmente é utilizado um código númerico, para que não exista duplicidade de dados. Em outras palavras, que exista uma unica referencia em um sistema para determinado usuario. Assim, para o sistema, nunca existirá um usuário igual, mesmo com outros dados compartilhados

Então, quando acontece algo errado em um sistema e não da para corrigir pelas telas do sistema, é possivel fazer alguma alteração através de linguagem de banco de dados (SQL, para leigos). Existem diversos padrões e empresas que fornecem esta linguagem para banco, porém a estrutura do código é a mesma.

Ou seja, quando voce verifica algum problema em um sistema web, muito provavelmente deverá ser verificado se a integridade dos dados mantem se iguais. Em muitos casos, ao rodarem scripts, que nada mais são comandos em linguagem para executar uma determinada tarefa, podem sincronizar as informações do jeito que eles desejarem. Lógico que para tal evento é preciso ter determinados previlégios de acesso ao bando e conhecimento grande de SQL.

Isso não deve ser muito diferente no Twitter, e esta é provavelmente a solução comumente utilizada para recuperar uma conta quando alguém rouba a senha. Eles buscam no banco o ID original da pessoa hackeada, muito provavelmente armazenada em um Data Warehouse, confirmam os dados atuais, rastream no banco que esta possuindo este ID e rodam um script para dar um insert e a pessoa obter de novo seus dados.

Lembro que isso é uma suposição baseado no funcionamento do Twitter pela perspectiva do usuário e de como funciona a API, que eu já dei algumas olhadas. Por sinal, o Tweetie, um cliente de Twitter, retorna um valor na home do usuário que pode ser a chave primária necessária para saber de quem é o perfil.

E tudo isso foi um quebra cabeça que eu montei na minha cabeça devido a provocação do Cardoso hoje, que eu levo numa boa como sempre. Mas isso tudo é especulação. E o Twitter que trate de arrumar tudo ai!