« [余談] ちょwマイスペースwww | メイン

[アプリ] BuddyPoke! はGoogle App Engineなの?

このエントリーをはてなブックマークに追加 Save This Page to del.icio.us このエントリーをlivedoorクリップに追加 このエントリーをニフティクリップに追加 このエントリーをBuzzurlに追加このエントリーをBuzzurlに追加 このエントリーをFC2ブックマークへ追加 このエントリーをYahoo!ブックマークに追加

これは!と思って検証していたら、確かにそれらしいリクエストをmakeRequestへ送っているのを見つけました。

■クラウド時代に備えて、プログラマーが理解しておくべき考え方
http://codezine.jp/article/detail/3618

Google App Engineが自動でスケーリングしている例として、オープンソーシャル向けの3Dアバター「BuddyPoke」を挙げた。同サービスのorkut上でのユーザー数は現在3千万人ほどあり、ユーザー増加の過程でサーバなどの設備増強などはまったく行なっていないそうだ。

 

XMLはAmazonのS3に置いてるんですね。あんまりこういうのを見るのは良くないのかしら(^^; (いらないヘッダは消してます)

POST /gadgets/makeRequest HTTP/1.1
Content-Type:application/x-www-form-urlencoded
Host:bipq8hub3ub1r4mcejdm9urlpd456fkn.a.orkut.gmodules.com
Content-Length:521

url=http%3A%2F%2Fbuddypokeapp.appspot.com%2Forkut%2Fmood&httpMethod=POST&headers=Content-Type%3Dapplication%252Fx-www-form-urlencoded&postData=mood%3Dm_nluv%26epoch%3D1235618626&authz=signed&st=AFinprQG8jC2cr_lE1MCv3PYY3XHYjOrRbW7x4I1SIof3kQevcjpIdahOAy5fff8Ree6v18hyef8l6mlAuafENfKTzaHT4Atc7O49lQ5FJlKAFqymhm4MyQ&contentType=TEXT&numEntries=3&getSummaries=false&signOwner=true&signViewer=true&gadget=http%3A%2F%2Fbuddypoke.s3.amazonaws.com%2Forkut.xml&container=orkut&bypassSpecCache=&oauthState=&OAUTH_SERVICE_NAME=HMAC

 

おまけですが、データの保存にもAmazon S3を利用しているようでした。
普通にフォームからPOSTするだけで、S3へ格納できる「Browser-Based Uploads Using POST」という仕組みが用意されているんですね。S3便利すぎる。
※AppEngineで用意されているディスクが500Mということを考えると、AppEngine経由でデータを別のストレージに保存しているんだろうなぁというのは想像に難くないところでもあります。で、たまたま表に出てきていましたが、こんな感じで直にリクエスト送ったりもしていると。

 ちなみにリクエスト内容はこちら。
(いらないヘッダは消してます)

POST / HTTP/1.1
Content-Type:multipart/form-data; boundary=---------------------------qmallymlsdsocnfg
Content-Length:5067
Host:buddypoke.s3.amazonaws.com

-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="key"

orkut.com/15623766171946637921/icons.png
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="acl"

public-read
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="Content-Type"

image/png
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="AWSAccessKeyId"

13G614B23FZHBNXRJJG2
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="policy"

eydleHBpcmF0aW9uJzonMjAwOS0wMi0yN1QwMzowMjoyOC4wMDBaJywnY29uZGl0aW9ucyc6W3snYnVja2V0JzonYnVkZHlwb2tlJ30seydhY2wnOidwdWJsaWMtcmVhZCd9LHsnc3VjY2Vzc19hY3Rpb25fc3RhdHVzJzonMjAxJ30sWydlcScsJyRrZXknLCdvcmt1dC5jb20vMTU2MjM3NjYxNzE5NDY2Mzc5MjEvaWNvbnMucG5nJ10sWydlcScsJyRDb250ZW50LVR5cGUnLCdpbWFnZS9wbmcnXSxbJ2VxJywnJENhY2hlLUNvbnRyb2wnLCdwdWJsaWMsbWF4LWFnZT0yNTkyMDAnXSxbJ2NvbnRlbnQtbGVuZ3RoLXJhbmdlJywwLDcwOTcyXV19
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="success_action_status"

201
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="Cache-Control"

public,max-age=259200
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="signature"

50EpmfRPjuf3b0R3xT5F+XryxCw=
-----------------------------qmallymlsdsocnfg
Content-Disposition: form-data; name="file"; fname="15623766171946637921"
Content-Type: image/png

※バイナリなので割愛

 

おまけのおまけ。
中の人がしゃべっている動画も見つけました。うなぎのぼりですねー。すごい。

おまけのおまけのおまけ
同様の記事たち。

Google App EngineをベースにしたWebサービス事例
BuddyPoke!はMySQLやOrkut、Hi5などのソーシャルネットワークで動作するOpenSocialアプリケーション。アバターをカスタマイズしてほかのユーザのアバターとアクションがとれるというものだ。Google App Engineの活用事例としてはもっとも有名なもののひとつで、Google App Engineの高いスケーラビリティを示す例としても興味深い。
MySQL??

トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/727

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.