针织布罗文布头料批发:InfoQ: Google Technological Details

来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 06:41:15

Google+ Technological Details

Posted byAbel AvramonJul 13, 2011

Community
Architecture,
Java
Topics
Technology,
Javascript
Tags
Google,
Closures,
Google+
Share|

Google Plus, the social network from Google, is built mostly onJava and JavaScript while Hangouts, its video conferencing framework,uses a client-server approach.

Google Plus or Google+, thelong awaited social network from Google, has recently made its debut,being available to a limited number of users based on invitation. Theproject started in early 2010 and it was done behind the scenes withlittle or no information available on its underlying technology. Joseph Smarr, a technical lead on Google+ and former CTO at Plaxo, unveiled some of the network’s technical detailsin an AnyAsk interview without being very specific. We contacted Smarrfor further detail on Google+’s architecture, but he declined to offermore information, promising more will be released in the not-so-distantfuture.

According to Smarr, Google+ uses Java with Guice on the server side and lots of JavaScript on the client side for the UI based on the open source cross-browser Closureframework. Closure is a set of tools for JavaScript developers whowant to write rich web applications, and it is used by Google forGMail, Maps and Docs. It is interesting that Google did not choose toemploy GWT, which is used for Wave and AdWords, a technology that is targeted more to Java developers rather than JavaScript ones. The HTML5 History APIis added in order to “maintain pretty-looking URLs even though it's anAJAX app (falling back on hash-fragments for older browsers)”, and theClosure templates are often rendered on the server so that “the pagerenders before any JavaScript is loaded, then the JavaScript finds theright DOM nodes and hooks up event handlers, etc. to make itresponsive.” Smarr further explains:

The cool thing about Closure templates is they can be compiled intoboth Java and JavaScript. So we use Java server-side to turn thetemplates into HTML, but we can also do the same in JavaScriptclient-side for dynamic rendering. For instance, if you type in aprofile page URL directly, we'll render it server-side, but if you goto the stream say and navigate to someone's profile page, we do it withAJAX and render it client-side using the same exact template.

The back-end is built on BigTable and Colossus, Google’s file system used for real-time search.

Smarr acknowledges that the Google+ team learned from others, bothfrom Google and other companies, and they are “’standing on theshoulders of giants’ in many ways, learning both from our previoussocial products and the industry at large”, perhaps referring toFacebook and Twitter, and the product looks in many ways like Facebook.

Google+ Hangoutsis an online cloud video conferencing platform based on XMPP, Jingle,RTP, ICE, STUN, SRTP, and which has taken a completely differentapproach than Skype which uses a P2P network. Hangouts is aclient-server/cloud technology that heavily relies on Google’sinfrastructure. There is no data available on how much resourcesHangouts consume, but it is expected to be a lot. All of that in orderto provide low-latency (<100ms) for smooth group communication.

Hangouts requires the same plug-in as Google Talk but they are working on moving it to WebRTC,a JavaScript-based framework for video communication, being opensource and supported by Google, Mozilla and Opera. When WebRTC will beintegrated in Chrome, there will be no need to download a plug-in forHangouts if it is run inside Firefox, Opera or Chrome. At that time,Hangouts will be using the VP8 codec which is integrated in WebRTCinstead of H.264 that it is using right now.

Christian Oestlien, PM on Google+, has revealed that Google prepares special features for businesses,such as analytics and integration with the other business accounts,but he declined being specific. He asked businesses to refrain fromcreating Google+ accounts now because they will be deleted, and ratherwait until the features are ready.