Komponenter

Google Open-kilder Data Exchange Language

Google I/O 2011: Building Custom Client Libraries for Google APIs

Google I/O 2011: Building Custom Client Libraries for Google APIs
Anonim

Google har åpnet -Sourced sine protokoll buffere, selskapets lingua franca for koding av ulike typer data, for å sette scenen for en bølge av nye utgivelser, i henhold til offisielle selskapets blogginnlegg og -dokumenter.

"Praktisk alle i Google" bruker protokoll buffere, angir en FAQ-side. "Vi har mange andre prosjekter vi vil frigjøre som åpen kildekode som bruker protokollbuffere. For å gjøre dette, trengte vi å frigjøre protokollbuffere først."

Google bruker "tusenvis av forskjellige dataformater til å representere nettverksmeldinger mellom servere, indeksposter i repositorier, geospatiale datasett og mer, "skrev Kenton Varda, et medlem av Googles programvare engineering team, i et blogginnlegg. "De fleste av disse formatene er strukturerte, ikke flate. Dette gir et viktig spørsmål: Hvordan kodes vi for alt?"

Den allestedsnærværende XML-filen (utvidbart oppslagsspråk) er ikke effektivt nok til Googles datadeling, ifølge Varda: "Når alle maskinene dine og nettverksforbindelsene kjører i kapasitet, er XML et ekstremt dyrt forslag."

Med protokollbuffere "definerer du hvordan du vil at dataene skal struktureres en gang, så kan du bruke spesiell generert kilde kode for å enkelt skrive og lese dine strukturerte data til og fra en rekke datastrømmer og bruke en rekke språk, "ifølge en dokumentasjonsside. "Du kan til og med oppdatere datastrukturen uten å bryte ut distribuerte programmer som er kompilert mot det gamle formatet."

Protokollbuffere er tre til 10 ganger mindre og 20 til 100 ganger raskere enn XML, ifølge Google.

Men XML har noen fordeler for bestemte oppgaver, i henhold til dokumentasjonen: "Protokollbuffere ville ikke være en god måte å modellere et tekstbasert dokument med markup (f.eks. HTML), siden du ikke enkelt kan legge sammen strukturen med tekst. I tillegg er XML er menneskelig lesbar og menneskelig redigerbar; protokollbuffere, i hvert fall i sitt opprinnelige format, er ikke. "

Google har utarbeidet en nedlastingsside som inneholder protokollbufferkompilatorer for Java, C ++ og Python.