コラム

  • 2017/01/17
  • 技術ソリューション

モバイルアプリ開発を劇的に簡略化できるmBaaSの紹介

モバイルアプリ開発を劇的に簡略化できるmBaaSの紹介

近年、システム構築環境としてクラウドサービスを選択するケースが増えてきました。

クラウドサービスは、守備範囲の狭い順に、IaaS、PaaS、BaaS、SaaSが一般的に知られています。

今回は、サーバサイドプログラムまでをクラウドサービスとして提供するBaaS(Backend as a Service)の一形態であり、モバイルに特化したmBaaS(mobile Backend as a Service)をご紹介します。


■モバイルアプリのサーバサイドに求められる機能

モバイルアプリを作成するプラットフォームとしては、スマートフォン(iPhone、Andriodなど)を前提とする場合がほとんどです。

スマートフォンは基本的にタッチパネルを採用しており、操作感や利用スタイルはOS、キャリアが異なっても変わりません。

求められる機能についても、汎化すると以下に絞られるのではないでしょうか。

・認証

・コンテンツ配信

・データ永続化/抽出

・プッシュ通知

・GPS連動

mBaaS提供ベンダー各社は、これらの機能を提供すると共に差別化できる独自機能を提供しています。


■mBaaS導入のメリット

●サーバ側開発の圧縮

mBaaSを導入することにより、サーバ側の開発コストを大幅に圧縮することが可能です。

開発費はもちろん、工期の短縮にもつながります。

特に、プッシュ通知やGPS連動などは開発コストも大きく、プラットフォーム側の仕様変更に追従する必要があるなど運用コストも無視できません。

これらの機能を使用する際は特に効果が大きいと考えられます。

また、開発不要な機能を利用することで、画面のプロトタイプ開発が簡単に行えることも大きなメリットとなります。


●スケーラビリティの自由度

サーバ性能を増強するスケールアップはもちろん、サーバ台数を増強するスケールアウトも容易に行うことができます。

利用ユーザの増加や一時的な高負荷の発生時などに柔軟に対応できるため、スモールスタートで開発を開始することが可能となります。

ただし、サーバ負荷が正確に見積もれる状況で、長期にわたって見積もりからの乖離が無いことが分かっている場合は、オンプレミスで準備した方が安価になる可能性があります。


■mBaaS導入のデメリット

●開発制約

サーバ側での動作が固定化されるため、実装できる機能に制約があります。

複雑な機能を実施する際はサーバ側のカスタマイズを行う必要がありますが、開発者によるカスタマイズを許容しているか否かは製品によって異なります。

カスタマイズする機能が多いと、スクラッチで開発するより多くの工数がかかり、実装が煩雑になる弊害が発生します。

mBaaSを導入するにあたっては、サーバ側は標準機能のみで実現できるか、という観点が重要になります。


●顧客情報保護

mBaaSベンダー各社は、クラウド上に保存されているデータの保護は生命線であり、厳重な管理を行っています。

オンプレミスよりも重厚な管理を行っていることが多いのですが、顧客によっては個人情報を外部サーバに配置すること自体が問題となるケースがあります。

個人情報保護観点からクラウド利用が敬遠されるのは残念ですが、利用が拡大して理解が進むことを期待するしかなさそうです。


●ベンダーロックオン

mBaaSベンダー各社が提供する機能は似通っていますが、インターフェースは大きく異なります。

このため、ベンダーを変えることは容易ではありません。

確実にベンダーロックオンされるのですが、mBaaS市場自体が大きなものではないため、サービス停止の危険性は常に存在します。

利用しているサービスが停止されると、非常に大きなダメージを受けることになります。

※ 実開発においては、インターフェースをwrapすることでベンダー変更を比較的容易に変えられるようなアーキテクチャを採用し、ベンダーロックオンを極力回避するように開発します。


■推奨される利用シーン

●スクラッチビルドを繰り返す超高速開発

mBaaSを利用するメリットは、コスト削減、工期短縮、スモールスタートにあると考えられます。

この利点を活かして、開発したシステムのメンテナンスは最小限に止め、次バージョンはスクラッチ開発を行う前提であればベンダーロックオンの懸念は払拭されます。

また、短期でのスクラッチビルドは、暗黙知の蔓延やヒューマンロックオン(生き字引のような人。この人がいないとシステムが分かりません、という状況。)を防ぐことができます。


●ツールとしての利用

メインの機能は従来のサーバプログラム開発を行い、必要な機能のみmBaaSを利用する。

これにより、サービスに問題が発生した場合の影響を局所化することが可能です。

ただし、コスト・工期の削減は限定的なものになります。

また、mBaaSベンダーが提供するサーバ上にサーバプログラムを配置できないのであれば、他のサーバを準備する必要があるため、コストが増大します。

慎重に見極める必要があります。

 


一覧に戻る

親コラム

コラムをもっと見る