View Single Post
  #4 (permalink)  
Old 08-11-2008, 05:08 AM
MizzCindy MizzCindy is offline
Member
 
Join Date: Mar 2008
Location: USA - Indiana
Posts: 68
Default

Quote:
Originally Posted by kenetrix View Post
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
Not exactly sure what you just said, but thank you for saying it!

Cindy
__________________
"The brick walls are not there to keep us out, the brick walls are there to give us a chance to show how badly we want something ... Because the brick walls are there to stop the people who don't want it badly enough. They're there to stop the OTHER people." --Randy Pausch

FriendFeed: http://friendfeed.com/mizzcindy
Reply With Quote