本文とサイドメニューへジャンプするためのナビゲーションスキップです。

スタートアップガイド

J-Net21 中小企業ビジネス支援サイト

  • J-Net21とは
  • スタートアップガイド
中小機構
  • メルマガ登録
  • RSS一覧
  • お問い合わせ

HOME > 製品・技術を開発する > デジ・ステーション

デジ・ステーション


5分でわかる最新キーワード解説
スマートデバイス向け新クラウド!BaaSとは

日々進歩するIT技術は、ともすると取り残されてしまいそうな勢いで進化の速度を高めています。そこでキーマンズネット編集部がお届けするのが「5分でわかる最新キーワード解説」。このコーナーを読めば、最新IT事情がスラスラ読み解けるようになることうけあい。忙しいアナタもサラっと読めてタメになる、そんなコーナーを目指します。今回のテーマはスマートデバイスのアプリ開発をラクにする「BaaS」です。新しくクラウドの1領域に加わったBaaSには海外勢に加え国内業者も参入し、利用しやすい環境が整ってきました。今まさにビジネスへの本格的な適用が始まろうとしているBaaSのイメージと利点について、要点を押えておきましょう。

「BaaS」とは何か

「BaaS(Backend as a Service/バース)」は昨年終わりにアメリカのKinvey社が提供開始して以降、数々の企業が参入し続けている、スマートデバイスに向けた新しいクラウドサービスの総称だ。

1-1 BaaSの位置づけとは

従来はクラウドといえばIaaS/PaaS/SaaSの3種と考えられてきた。そこに新しく登場したBaaSの位置づけは、PaaSとSaaSの境界部分といったところになろうか。BaaSはもともと、スマートフォンやメディアタブレット、いわゆる「スマートデバイス」のネイティブアプリケーションの開発効率を上げる目的で作られた。これまでのXaaSと違うのは、スマートデバイスにフォーカスしているところと、BaaSの“B”が意味するように、アプリケーションの「バックエンド」、すなわちアプリケーションの背後にあるサーバサイドの仕組みを担当するところだ。

BaaSには次々にサービス業者が参入しており、多くのサービスが選べる状態になってきた(本記事末尾に主なサービスの一覧を掲げる)。国内では今年3月にベータ版がリリースされたピーシーフェーズ社のappiariesが初のBaaSプロバイダーとなった。同社の描くBaaSのポジショニングは、図1の通りだ。クライアントでの処理がメインになる業務の中で、できるだけサーバサイドの開発をなくすようにするのがBaaSだ。

BaaSのポジショニング(appiariesの視点から)
図1 BaaSのポジショニング(appiariesの視点から)

資料提供:ピーシーフェーズ

1-2 BaaSの目的と利用イメージは?

一般にスマートデバイスの「アプリ」というと、端末側にインストールするモジュールをイメージされるかもしれないが、実際には、端末側のアプリをフロント部分として、入力されたデータを元にサーバ側で何らかの処理を行い、その結果を端末に返す形をとるアプリケーションがほとんどだ。開発者はそれぞれの端末の開発言語と専用環境でネイティブアプリ側の開発を行うばかりでなく、サーバ側の開発も行なわなければならない。サーバ側の開発手法とネイティブアプリの開発ノウハウとは隔たりがあり、技術者が双方に通暁していればよいが、なかなかそうはいかない。これがアプリケーション開発の効率化を妨げる要因の1つになっている。

そこで、どんなアプリケーションでも共通して必要とされるサーバサイドの機能については別枠で考え、その部分をサービスとして利用できるようにすれば、アプリケーション開発の手間が省けると考えたのが、BaaSの始まりだ。BaaSのサービスの特徴はどれも大体似通っている。図2がその1例だ。

図2 BaaSの利用イメージの例
図2

資料提供:ピーシーフェーズ

ここでBaaSが担当しているのは、「ユーザ管理/認証」と、「テキストDB」、「ファイルDB」というアプリケーションの共通要素と、端末のGPSとの組み合わせによる「ロケーション機能」、「プッシュ通知機能」といったスマートデバイスならではの機能だ。

図中で注目したいのは、どの端末からでもWeb APIを通してサービスが利用できるように考えられていることだ。BaaS各社は各デバイス用のSDKを提供するなどして開発を容易にしている。図に端末としてiOS、Androidとともに、HTML5のアイコンが描かれていることにも注意して欲しい。実際にはHTML5+JavaScriptへの対応が意図されている。つまり、BaaSは必ずしもスマートデバイスのネイティブアプリだけを対象としているのではなく、ゆくゆくはWebアプリケーションのサービス構成要素となる可能性もあるということだ。

実際、最近では大手システムベンダもBaaSを採り入れたエンタープライズシステムの構想を描いており、マイクロソフトもWindows 8用にWindows AzureをBaaS化するWindows Azure Mobile Serviceの提供を発表している。先行したBaaS業者の中にもWebシステムのサーバサイド開発を主要な対象と考えているところもあるようだ。

BaaSが果たす役割とは?

2-1 ネイティブアプリのサーバサイド開発が短期化・低コスト化

BaaSの登場には、クラウドの利用拡大と、スマートデバイスを利用するモバイルビジネス市場の急拡大が背景にある。企業のBYOD検討も進む中で、モバイルアプリの開発の効率化は、IT部門の大きなテーマとしてとらえられるようになってきた。デバイスのネイティブアプリとそのバックエンドのサーバサイドの双方を1つながりのものととらえ、整合性のとれた開発、テスト、リリース、運用を効率的に行う必要がある。コスト抑制もさることながら、新サービスのアイデア誕生からリリースまでの時間をできる限り短くすることが求められている。BaaSはこうした要求に応えるものだ。appiariesの開発元では、図3に見るように、開発期間はひと月以上の短縮、コストは1/3程度という、大幅なコストと期間の短縮効果を算出している。

図3 サーバサイドシステムの初期開発、追加開発、運用にかかる費用・期間の圧縮効果
図3

資料提供:ピーシーフェーズ

2-2 セキュリティ機能とスケーラビリティ

スマートデバイスの業務利用で特に課題視されているのがセキュリティ面だ。VPNを利用したり、MDMによって管理したりと、様々な取り組みが行われている中で、ひときわ重要なのが本人認証とアクセス権限の問題だ。BaaSではこの部分にOAuthを利用する認証の仕組みと、ユーザ管理のためのプロファイル情報管理機能を提供している。この仕組みはサービス個々に独自の方法が使われている。図4はその1例だ。

図4 BaaSの認証・認可の仕組みの例
図4

資料提供:ピーシーフェーズ

BaaSの中には、ソーシャルメディア(FacebookやTwitterなど)の認証機能を利用して、サービスAPIへのアクセス認可に利用しているものがある。これは利便性が高いが、一方でアクセストークンの「置き換え攻撃」(関連キーワードの項参照)が入り込む余地があり、なりすましによる情報詐取などが行われる可能性が指摘されている。図4のようにBaaS側でユーザ情報を保持し、アプリケーションごとのIDと紐付けて認証する方式をとるサービスでは、情報登録の手間はかかるものの安全性は高まる。

また、スケールアウトやその逆の縮退が自由に行えることも特長に挙げられよう。広く一般に配布して利用してもらうアプリの場合、何らかのきっかけでサービスへのアクセスが急増することがありうる。そのためにはオンデマンドで簡単・短時間にリソースの増減が行える機能が必要だ。他のXaaSと同じように、BaaSもこのスケーラビリティの柔軟さを備えている。

2-3 BaaS利用の注意ポイント

最後にBaaS利用の際の注意ポイントを指摘しておこう。

1つはまだ実績が少なく、参考にできるドキュメントや事例が入手しにくいことだ。これにはBaaSベンダのWebサイトや関連情報を積極的に収集する努力が必要になろう。国産ベンダのWebサイトでは日本語でのチュートリアルつきでBaaSを試用できるようになっている。無償なので、興味があれば試してみるとよい。他はほぼ英文での情報ばかりになるが、試用版は大体用意されているようだ。

また、BaaSのデータストアには、NoSQLベースのデータベースが充てられていることがほとんどだ。従来からのRDBに慣れた開発者は最初に戸惑うことがあるかもしれないので、心してかかりたい。

なお、スケーラビリティに優れるとはいえ、あまり高速・大量トランザクションが要求されるようなアプリで利用するにはまだ不適切だと考えられる。まずはサービスのアイデアを短時間で形にして、効果を検討するといった用途で使うことをお勧めする。

更に、データのインポートやエキスポート機能についても確認しておきたい。インポートは可能でも、ユーザ側で利用可能な形でのエキスポートができないサービスもある。BaaSを利用した試験サービスの効果を確認した上で、本格利用にはIaaSを利用するという使い方もありうるし、特定BaaSへのロックインを防ぎ将来のサービス乗り換えの可能性を確保する意味でも、エキスポートについてはチェックしておきたい。

そして課金方式も重要だ。APIの利用回数による従量課金をとるBaaSが多いが、中には定額制をとるケースもある。実際の利用頻度が予想できない場合は、定額制のほうが安心はできよう。


以上、今回はスマートデバイスのアプリ開発の工期短縮・低コスト化を図る新しい選択肢BaaSのあらましを紹介した。BaaSはWebシステム一般にも今後採り入れられる可能性が高い。今のうちに実力と将来性をチェックしておこう。なお、現在提供されている主なBaaSを以下のリストに掲げるので、参考になれば幸いだ。

現在提供されている主なBaaSリスト(ベータ版提供を含む)
●API O MAT
Apigee
Appcelerator
AppGlu
appiaries
Applicasa
Apstrata
BUDDY
CloudMine
CloudyRec
Deployd
Feed Henry
Firebase
Flurry
Inomera Research
Kii
Kinvey
Kumulos
Meteor
Microsoft
mobDB
NOMTEK
Parse
Proxomo Software
QuickBlox
ScottyApp.com
Sencha
StackMob
Structum
Urban Airship
(注)2012年9月28日現在。社名やURLに変更がある可能性あり。

取材協力 :ピーシーフェーズ株式会社

掲載日:2012年11月28日

キーマンズネット

出典元:株式会社リクルート キーマンズネット 2012年10月17日掲載分

検索

このページの先頭へ