揭秘Google+技术架构

开发 前端 架构
谷歌的社交网络Google Plus主要基于Java和JavaScript语言,而其视频会议框架Hangouts则采用了C/S方式。

谷歌的社交网络Google Plus主要基于JavaJavaScript语言,而其视频会议框架Hangouts则采用了C/S方式。

期待已久的Google社交网络Google Plus或者Google+终于公之于众了,它采用邀请的形式向部分用户开放。该项目开始于2010年初,在其底层技术鲜为人知的情形下,秘密完成了开发。Joseph Smarr,Google+技术主管、Plaxo的前CTO,在AnyAsk的访谈中非针对性地透露了一些网络的技术细节。我们联系了Smarr试图获取有关Google+架构的更多细节,但被拒绝了,他承诺更多信息会在不久的将来公布的。

按照Smarr的说法,Google+的服务端使用了Java语言和Guice,而客户端基于开源的跨浏览器框架Closure,采用了大量的JavaScript。Closure是一组JavaScript工具,方便开发人员编写富Web应用程序。Google的Gmail、Maps和Docs均使用了该框架。有趣的是Google并没有采用Wave和AdWords中使用的GWT,GWT主要面向Java开发者而非JavaScript开发者的。为了“确保即使在AJAX应用中,URL也很美观(对老版本浏览器,回煺Hash-Fragment)”,添加了HTML 5的历史API,另外,Closure模板也常常在服务端呈现,从而做到“在JavaScript代码加载前显示页面,然后JavaScript找到正确的DOM节点并挂接事件处理器等,使其响应”。Smarr进一步解释到:

Closure模板最酷的事情是它既可以编译成Java也可以编译成JavaScript。所以,我们使用Java服务端把模板转换成HTML,但是也可以在客户端使用JavaScript动态地显示。例如,如果你直接输入详细资料页面的URL,我们将在服务端呈现它,但是如果你进入页面流中,然后导航到某人的详细资料页面,我们将使用同一模板在客户端使用AJAX技术来显示。

后端采用的是BigTable和Colossus,它是Google的实时搜索所使用的文件系统。

Smarr承认Google+团队借鉴了Google和其他公司的很多东西,他们是“站在巨人的肩膀上,充分学习了我们以前的和业界其他社交产品”,这里指的应该就是Facebook和Twitter,而且本产品在很多方面看上去和Facebook很像。

Google+ Hangouts是在线云视频会议平台,基于XMPP、Jingle、RTP、ICE、STUN、SRTP等,它与采用P2P网络的Skype方法完全不同。Hangouts是C/S及云技术,主要依赖于Google的基础设施。目前还没有数据表明Hangouts会消耗多少资源,但估计应该会很多。所有这些都是为了提供低迟延(小于100ms)的流畅的群组沟通。

Hangouts要求与Google Talk相同的插件,不过,工程师们正在努力迁移到WebRTC上。WebRTC是视频通信的JavaScript框架,由Google、Mozilla和Opera提供支持的开源产品。当WebRTC集成到Chrome后,在Firefox、Opera或Chrome中运行Hangouts时就无需下载插件了。到时,Hangouts将使用集成在WebRTC中的VP8编码,而不是现在使用的H.264。

Christian Oestlien,Google+的项目经理,透露Google为企业用户提供了特别的特性,如分析及和其他企业账户的集成等,但他没有透露详细信息。他让企业先不要创建Google+账户,暂且等待功能开放,否则也会被删除的。

原文:http://www.infoq.com/cn/news/2011/07/Google-Plus

【编辑推荐】

  1. 揭秘新版SkyDrive架构的幕后
  2. 架构腐化之谜
  3. 架构师 如何从梦想变成现实?
  4. 谈谈对于企业级系统架构的理解
  5. 怎么成为一个软件架构师
责任编辑:陈贻新 来源: infoq
相关推荐

2018-10-18 12:42:24

2011-11-01 09:14:10

Google ReadGoogle+

2011-09-21 14:17:12

Google+

2015-07-28 17:35:23

Google+移动布局

2009-01-04 09:26:44

架构Google服务器

2011-09-07 10:53:24

Google+

2011-09-16 11:02:22

Google+

2012-06-13 10:19:28

2011-08-08 09:49:18

Google+iCloud开发者

2012-02-13 09:03:04

Web

2009-06-10 09:21:45

Google Wave架构

2013-05-21 11:22:15

Google+UI设计

2012-02-21 09:34:26

Google+中国正式开放

2012-08-30 14:24:29

IBMdw

2011-08-08 17:16:23

程序员

2011-07-22 09:31:11

Google+Facebook谷歌

2011-12-01 14:14:51

Google

2009-12-04 14:46:49

2020-11-17 17:54:33

Google 开发者技术

2011-09-15 10:29:13

架构
点赞
收藏

51CTO技术栈公众号