Inside mbga platform by Toru Yamaguchi

http://www.slideshare.net/zigorou/inside-mobage-platform

  • PC向けは全て 2-Legged OAuth

個人的には、この発表内で最も注目した発言。
実は認証まわりをどうしているのか、いろいろ疑問だったのだが明言してくれたことで解決。
Yahooモバゲーで思い切って2-Legged使うということは、他のモバゲーのサービスのいくつかの認証も2-Legged OAuthを使っているに違いない。

オープンソーシャルのコンテナの作り方

他社の状況を結構つかんでいるようだ。

  • データ形式はPCがJSON、サーバー間でやりとりする場合はREST。
  • 直すべき箇所をいろいろ。

PHP版のShindigも作りがJava版と似ているので、直す場所は大体おなじになります。
PHP版のShindigは、PHPだけど、PHPの流儀では書かれていないのです。

  • Shindigには、いろいろ不満があるようだ。

Web APIの作り方

  • Web Frameworkは極力使わない。
  • リクエスト → フィルターチェイン(フィルター x いくつか) → コントローラー
  • レスポンスは同じ経路を通って返す。
  • データの加工は、データを取ってから、フォーマッターに渡す。
  • 挙動の微妙な違いは設定を変えて起動。それぞれの設定毎にインスタンスを用意しておく。

DBアクセス

  • データをとって、Object::Contrainerに突っ込んでいる。
  • データ取得はDBI直を、ちょっと工夫したもの。Shardできるようにしてある。
  • 接続先はmemcachedで管理している。
  • トリガーを集計のトリガーなどで利用している。

質問

ShindigPerl処理間のデータやりとりを質問してみた。

感想

業務が被っていたので、とてもとても参考になりました。
今回のYAPCでは、良い発表にたいして投票を行う事ができます。
この発表を聞いたとき、既に投票済みだったけれど、残っていたら、この発表に投票したかった。
この発表だけでYAPCに参加した価値がありました。

おまけ

聞いた話から、mbga platform の作りを予想してみた。
前半はてきとー。よく考えたら、サーバーが処理してくれればワーカーとかいらない。
データを取って、加工して返す。図に入れなかったけど、データベースとの間にキャッシュとか用意されていると思う。
http://img.f.hatena.ne.jp/images/fotolife/t/taku-o/20101017/20101017070038_original.png?1287266480