Googleが提供するソーシャルネットワークであるGoogle+は、ほとんどがJavaとJavaScriptで構築されている一方、Google+のビデオ会議フレームワークであるHangoutsはクライアントサーバアプローチを用いている。
Google プラス または Google+は待ち望まれたGoogleが提供するソーシャルネットワークで、招待ベースで限定数のユーザーが利用できる形で最近リリースされた。プロジェクトは2010年初頭から始まったが、裏側でどのような技術が使われているかに関してはほとんど情報が出てこなかった。Plaxoの前CTOでGoogle+のテクニカルリードであるJoseph Smarr氏は、具体的には語らなかったがAnyAskのインタビューでGoogle+の技術詳細を明らかにした。我々はGoogle+のアーキテクチャの詳細を知るべく、Smarr氏にコンタクトを取ったが、氏はより多くの情報の提供に関しては拒否、ただそれほど遠くない将来により多くの情報がリリースされることは約束した。
Smarr氏によると、Google+はJavaとGuiceをサーバーサイドに利用しており、またクライアントサイドのUIに関してはオープンソースのクロスブラウザClosureフレームワークをベースに多数のJavaScriptが用いられている。Closureはリッチウェブアプリケーションを書きたいJavaScriptデベロッパ向けのツールセットで、GoogleではGmail、Googleマップ、Googleドキュメントで利用されている。GoogleがGWTの採用を選択しなかったのは興味深い。GWTはWaveやAdWordsで利用されており、JavaScriptデベロッパよりもJavaデベロッパをよりターゲットにしている技術である。「AJAXアプリケーションであるけれども、(古いブラウザ用にハッシュフラグメントを用いる必要があり)見栄えの良いURLを維持する」ためにHTML5 History APIが追加された。 そして、Closureテンプレートはサーバーでレンダリングされ、そのため「ページはJavaScriptがロードされる前にレンダリングされ、JavaScriptは応答性能を上げるために即座に、正しいDOMノードを見つけることができ、イベントハンドラをフックしたりする」 Smarr氏はさらに説明する。
Closureテンプレートのクールな点は、JavaとJavaScriptの両方にコンパイルされる事です。JavaサーバーサイドでテンプレートをHTMLに変換する事が出来ますし、同様にJavaScriptクライアントサイドで動的にレンダリングするようにすることもできます。例えば、あなたがプロフィールページのURLを直接入力した場合、サーバーサイドで画面をレンダリングします。しかし、あなたがストリームを表示して、発言を行い、他の人のプロフィールページにナビゲートした場合、AJAXを使って全く同じテンプレートを用い、クライアントサイドでレンダリングします。
バックエンドはBigTableとColossusで構築されている。Colossusはリアルタイム検索で用いられているGoogleのファイルシステムである。
Smarr氏はGoogle+が他者、すなわちGoogleや他の企業をの双方から学んでいると認めた。かれらは「多くの面で『巨人の肩に立っていて』、大体は以前のソーシャルプロダクトと業界から学んでいる」 たぶん、FacebookやTwitterを参照しているだろうし、製品はFacebookに多くの点で似ている。
Google+ HangoutsはXAPP、Jingle、RTP、ICE、STUN、SRTPベースのオンラインクラウドビデオ会議プラットフォームで、P2Pネットワークを用いているSkypeとは全く異なるアプローチを採っている。HangoutsはGoogleのインフラストラクチャに強く依存しているクライアントサーバ/クラウド技術である。Hangoutsがどれくらいのリソースを消費しているかのデータは得られていないが、多いことは想像できる。それらすべてはスムースなグループコミュニケーションの為の低レイテンシ(<100ミリ秒)を提供するために用いられている。
HangoutsはGoogle Talk同様のプラグインを必要とする。しかし、それらはWebRTCに移行する作業中である。WebRTCはビデオコミュニケーション向けのJavaScriptベースのフレームワークであり、オープンソース化し、Google、Mozilla、Operaによってサポートされようとしている。WebRTCがChromeに統合されると、Firefox、OperaやChromeの内部で動作するHangouts用プラグインをダウンロードする必要は無くなる。その時は、HangoutsはVP8コーデックを用いることになるだろう。VP8コーデックは今現在使われているH.264の代わりにWebRTCに統合される。
Google+のPMであるChristian Oestlien氏はGoogleが分析や他のビジネスアカウントとの統合などの特別なビジネスフィーチャーを準備している事を明らかにしたが、詳細に関しては拒否した。また氏は企業に対して今はGoogle+のアカウントを作らないよう求めた。なぜならば、それらは削除される予定で、むしろフィーチャーが準備されるまで待って欲しいからである。