View Single Post
  #1 (permalink)  
Old 08-10-2008, 09:54 PM
kenetrix's Avatar
kenetrix kenetrix is offline
Member
 
Join Date: Aug 2008
Posts: 10
Cool Additional info on Google maintenance issue

Hi All!

Just wanted to give you all a "heads up" on the issues with Google these last few days.

Aside from any "other" planned maintenance by Google during this period, you should also know that Google is in the process of "transitioning" from their use of XML to a Google-created "interface description language" (IDL) and binary format for data interchange, that it is sharing as an open-source project.

Google made code ( protobuf - Google Code ) and documentation ( Developer Guide - Protocol Buffers ) for its "Protocol Buffers" format available on July 7, under the Apache 2.0 open-source license.

Google is using Protocol Buffers for communication among its internal systems that use Remote Procedure Calls systems and accessing persistent data storage. Developers can define data structures using its definition language, and then compile them, producing classes that represent those structures in a particluar programming language, according to a post by a Google engineer
( Google Open Source Blog: Protocol Buffers: Google's Data Interchange Format ), on Google's software engineering team blog.

The classes, which are designated as .proto files, can read and write structured data from data streams. At this time, language support is limited to C++, Java and Python.

The post also noted that Protocol Buffers is an IDL that was designed for simplicity. IDLs are used to create a communications bridge between programs written in different languages, or that reside on different operating systems.

The framework compiles the IDL code - an intermediary format - into a binary format, which is used as a transmission protocol.

Google's documentation claims that structured data can be represented in a third to a tenth of the space required, and transmission times cut to a 20th or even a 100th of the time, compared to XML.

(My initial testing of Protocol Buffers vs. XML have shown these estimates to
be true, and not just hype. Protocol Buffers is far and away a speedier and more efficient method than XML.)

As an example, look a this:

Whereas with XML, you would have to do something like this:

Code:
    cout << "Name: "
         << person.getElementsByTagName("name")->item(0)->innerText()
         << endl;
    cout << "E-mail: "
         << person.getElementsByTagName("email")->item(0)->innerText()
         << endl;

....manipulating a Protocol Buffer require fewer lines of code, like so:

Code:
    cout << "Name: " <<person.name() << endl;
    cout << "E-mail: " <<person.email() << endl;
Simple example, true. But, apply that efficiency to the thousands and thousands of data exchanges every second of every minute of every day, and you can see the huge impact of this.

I know it's crappy timing, from the 30DC perspective, but it will be hugely beneficial to all of us.

Hope that sheds some additional "light" on the Google outage issue for you all.

-Ken
__________________
http://twitter.com/kenetrix
Reply With Quote