オープンソースフレームワークMobaSiF
前回説明したように,ケータイ向けWebアプリケーション開発を行う際には考慮すべき点がいろいろとあります。この後に説明するMobaSiFフレームワークを使うと,こういった点を簡単に処理できます。
MobaSiFの作られた背景
DeNAでは,ケータイに特化した技術要素を共通的に処理するフレームワークを2003年から開発してきており,2004年開始のオークションサービス「モバオク」,同年開始のアフィリエイトASPサービス「ポケットアフィリエイト」,2006年開始の「モバゲータウン」など実サービスに利用してきました。どれもケータイの世界でNo.1の規模を持つサービスですが,もっとも規模の大きいモバゲータウンは2008年4月時点で登録ユーザ数が1000万人を超え,月間のページビューも150億以上あります。
このフレームワークをMobaSiF(Moba Simple Framework)と名づけて,我々は2008年5月にオープンソースとして公開しました。
MobaSiFの特徴と機能
このフレームワークはPerlと一部C言語で実装されており,
- ケータイ向けWebアプリケーションで共通的に必要な処理が行える
- シンプルで「薄く」,全体のソースを読んで把握しやすい
- 高速処理が必要な部分をC言語で実装しており性能が良い
という特徴を持ちます。また,ケータイ向け特化機能としては
- キャリア・端末機種の判定
- 端末の認証
- 絵文字変換
- 3キャリア対応テンプレートエンジン
を持っています。さらにMVCコントローラ(URLと処理を関連づけるディスパッチャ)やDBアクセス,daemon(常駐プロセス)ユーティリティやログ出力などの機能なども用意されているので,一般のWebアプリケーション向けのフレームワークとしても利用できます。
動作環境
動作実績のあるサーバOSはCentOS 4.xです。動作確認はしていませんが,他のLinux系OSでも動作する可能性があります。Perlはバージョン5を前提としており,モバゲータウンでは5.8.0以上のバージョンを利用しています。WebサーバはApacheを前提としており,DeNAのMobaSiFを使ったサービスではバージョン1.3.xが利用されています。ApacheとPerlの連携にはFastCGIとmod_perlが選択できますが,どちらかの機能が利用できるApacheの用意が必要です。DeNAではFastCGIのほうを利用しており,本記事もFastCGIを前提として説明を進めます。DBについてはMySQLを前提としています。
対象とするケータイ端末
現時点(2008年5月)での対象端末を表4で示します。この判断は後述のMobileEnvモジュールで行っていますので,このモジュールを書き換えればある程度の変更が可能ですが,動作しない機能も発生し得ます。
表4 MobaSiFの対象端末
| キャリア | 端末 | 備考 |
|---|---|---|
| NTTドコモ | FOMA 90x,70x | 当初のリリースではiモードIDでの端末認証のみをサポートするという簡略化を行っているため,SSLを利用した状態での端末認証はサポートされない(追って対応する予定) |
| au | WIN端末 | |
| ソフトバンクモバイル | 3GC型端末 |

