Componentes

Idioma de troca de dados de fontes abertas do Google

Mudando o idioma das funções no Google Drive Planilha - respondendo comentários

Mudando o idioma das funções no Google Drive Planilha - respondendo comentários
Anonim

"Praticamente todos dentro do Google" buffers, afirma uma página de FAQ. "Temos muitos outros projetos que gostaríamos de lançar como código-fonte aberto que usam buffers de protocolo, então para isso, precisamos liberar buffers de protocolo primeiro."

O Google usa "milhares de formatos de dados diferentes para representar mensagens em rede entre servidores, registros de índice em repositórios, conjuntos de dados geoespaciais e muito mais ", escreveu Kenton Varda, membro da equipe de engenharia de software do Google, em um post no blog. "A maioria desses formatos é estruturada, não plana. Isso levanta uma questão importante: como codificamos tudo?"

O onipresente XML (linguagem de marcação extensível) não é eficiente o suficiente para as necessidades de compartilhamento de dados do Google, segundo Varda: "Quando todas as suas máquinas e links de rede estão rodando em capacidade, o XML é uma proposta extremamente cara."

Com buffers de protocolo, "você define como deseja que seus dados sejam estruturados uma vez, então você pode usar fontes geradas especiais código para escrever e ler facilmente seus dados estruturados de e para uma variedade de fluxos de dados e usando uma variedade de idiomas ", de acordo com uma página de documentação. "Você pode até mesmo atualizar sua estrutura de dados sem quebrar programas implantados que são compilados contra o formato 'antigo'."

Os buffers de protocolo são de três a dez vezes menores e de 20 a 100 vezes mais rápidos que XML, segundo o Google. Mas o XML tem algumas vantagens para determinadas tarefas, de acordo com a documentação: "Os buffers de protocolo não seriam uma boa maneira de modelar um documento baseado em texto com marcação (por exemplo, HTML), já que você não pode facilmente intercalar estrutura com texto. é legível por humanos e editável por humanos; buffers de protocolo, pelo menos em seu formato nativo, não são. "

O Google preparou uma pagina de download que contém compiladores de buffer de protocolo para Java, C ++ e Python.