BaaSとは
BaaSとは__Backend as a Service__の略であり、モバイルアプリケーションを作成する上で必要な__サーバ側の機能__を提供してくれるフレームワーク及び実行環境。次のような機能を提供する。
- ユーザー登録、IDの再発行、ユーザー情報の管理
- メール通知、プッシュ通知
- GPSを活用した、位置情報サービスとの連携
- TwitterやFacebookなどソーシャルネットワークサービスとの連携
- データやコンテンツの保存/管理機能
(@ITのBaaS説明記事より抜粋)
以下にBaaSと他のクラウドの比較を掲載する。BaaSの位置付けがよく分かると思う。
(appiariesサイトのBaaS説明ページから抜粋)
BaaSの提供形式
現在は圧倒的にクラウド形式での提供が多い。もともと「モバイルアプリケーションをスピーディに開発&リリースしたい」というニーズに応えるための製品なので、これは当然のこと。
しかしオンプレ製品がないわけではない(Helios、AppPotなど)。
評価ポイント
実際に使ってみた結果、次のポイントが重要だと感じた。
- 提供形式(クラウドorオンプレ形式)
- SDKがサポートするプラットフォーム
- SDKの安定度
- マニュアルなどの日本語化状況
- サーバ側の管理用サイトの扱いやすさ
機能の多寡は、どのBaaS製品も基本的な機能は似通っているため、評価ポイントから外した。
サーバ側の管理用サイトの使いやすさについて
開発中は、サーバ側の管理用サイトは、BaaS製品が提供するものをそのまま使うのが基本。よって頻繁にアクセスすることになるのに、ここの出来が悪いと非常にストレスがたまる。ニフティはこの点に難があった。非常に残念。
比較した製品と評価
製品名 | 特長 | 評価 |
---|---|---|
Windows Azure モバイルサービス | Windows AzureをプラットフォームとするBaaS | △ Windows Azureの1サービスとしての位置付けなので、MBaaSの機能のみを手軽に使いたい、という場合には向かない。膨大なドキュメントの中から狙いのコンテンツを探すのに、非常に手間がかかる。じっくり腰を据えて取り組むべき。 |
ニフティクラウド mobile backend | 国産 | ✕ 日本語化されていることやドキュメントが充実しているのはいいのだが、SDKの動作が不安定なのと、サーバ側管理画面の使いにくさが致命的。 |
Parse | Facebook傘下の製品 | ◯ 安定したSDK、サーバ側管理画面の使いやすさ(とかっこよさ)、充分な機能など、非常に使いやすい。ただ、日本語化されていない点と、プラットフォームが不明なのがマイナス。 |
appiariesはSDKがない(REST APIのみ提供)ため、今回は比較対象から外した。しかし国産であり導入障壁が低い可能性があるため、今後に期待している。
MBaaS利用上の注意点
こちらの記事を参照のこと。
MBaaSが活用可能な局面
クラウド型のMBaaSは、一般利用者向けのアプリを素早く立ち上げる用途に最適。
企業向けシステムなど、クラウドNGな場合でもHeliosやAppPotなどのオンプレ製品を活用すれば、バックエンド開発工数の低減が見込める。
データストアがRDBでない場合が一般的なので、複雑なデータモデルやクエリが必要な場合は機能不足に陥る可能性がある。
その他の考察
モバイル以外での利用
BaaSの提供する機能(の一部)はモバイル以外のアプリでも利用価値がある。実際、多くのBaaS製品はREST APIやJavaScriptによるSDKを提供しており、モバイル以外での利用も念頭に置いているフシがある。
特にブラウザアプリを手軽に作るのに向いている可能性がある。
Java製BaaSの可能性
現時点ではJava制BaaSは見当たらない。
オープンソースとして開発すると喜ぶ開発者が多いかもしれない。
開発中はローカルでJettyによるBaaSサーバを立ち上げておき、本番用には別途サーバを立てる、などJavaの開発ノウハウが活用出来るのはありがたい。