バックエンドの設定用のモバイル向けクラウドサービス「BaaS」と、企業向け業務アプリの複数プラットフォーム対応ソリューション「MEAP」についてまとめて紹介します
近年、iPhoneやAndroidなどのスマートフォンの浸透とともに、アプリの利用も広がり、多くのスマートフォン向けアプリが開発されるようになってきました。大規模な電子商取引系のWebサービスの開発に比べれば、少人数の開発者で短期間に開発できるのがスマートフォンアプリです。しかし、世界中の数多くの人々に使ってもらえる新しいサービスを考えた場合、アプリ単体で完結しないことが多く、Webサーバとの連携が必須になる場合も考えられます。
伝え聞くところによると、人気の写真共有アプリ「Instagram」の開発者は、初めは、まったくバックエンドに関する経験がなく、アプリを開発しながら、バックエンド環境、サーバ構築に関しても、試行錯誤しながらサービスを立ち上げたそうです。彼らの武勇伝的ストーリーともいえる涙ぐましい失敗談をノウハウとして公開してくれています。
ささいなことと思われるかもしれませんが、例えば、WebブラウザのURL表示領域に小さく表示される、faviconファイルをサーバに置くのを忘れただけで、大量のエラーログが発生し、サーバのログ保存がパンクしそうになったそうです。
こんな、バックエンドの設定や立ち上げの苦労をアウトソーシングするのが、最近各種サービスが立ち上がり始めたモバイル専用のクラウドサービス、「BaaS(Backend as a Service)」です。
クラウドサービスというと、Amazon EC2/S3などが真っ先に思い浮かぶでしょう。スマートフォン向けアプリのバックエンドとしてAmazon EC2を利用する場合、結局のところ、サーバのセッティングをしたり、サーバアプリを開発したりしなければいけません。
BaaSでは、スマートフォン向けのモバイルサービスでよく利用される機能を、簡単な設定で平易にアプリと連携して利用できるように準備されています。大抵の場合、設定のみ、APIを呼び出すだけで、サーバ側のコードを書かずとも、必要なサービス構築を済ませられます。
もちろん、頼りになるバックエンドに詳しいエンジニア/プログラマがチーム内にいる場合は一般のクラウドサービスや自社サーバを活用すれば良いかもしれません。それでは、BaaSを活用するのは、どういう状況でしょうか? BaaS活用が功を奏するのは、以下のような状況が考えられます。
これらの条件のうちいくつかが成り立つ場合は、BaaSの採用を検討するメリットはあるでしょう。またスマートフォンアプリの機能にもよりますが、特殊な機能を実現しようと欲張らず、BaaSの持つ機能の範囲内で済むよう、アプリの機能をシンプルに保つという考え方もあります。
ここで主なBaaSを11個選んで、簡単に紹介します(順不同)。以下は、後述するBaaSベンダの1つであるKinveryが提供する、世界のBaaS周辺の勢力関係図です。
Parseはクラウドサービス「Heroku」のモバイル版とも呼ばれる、BaaSの最有力候補です。
わざわざサーバ側のアプリを開発することなく、Parseのプッシュ配信の仕組みなどが利用でき、iOS、Android、Webアプリ(HTML5+JavaScript)から平易にAPIが利用できます。専用のSDKか、URLに必要な情報をパラメータ記述するREST APIで利用できます。
料金は「Basic」プランと「Pro」プランがあり、Basicプランでは月に100万アクセスまで無料です。それを超えた分は1000アクセスにつき、7セント(現在だと、約5円程度)、1Gbytesのファイルストレージが利用できます。Proプランは、それよりも大量のAPIサービス、ストレージが利用でき、それでも月に199ドルです。最初の1カ月は無料です。
残念ながら、あまり有名どころはありませんが、地下鉄アプリ「iBart」、クイズゲームアプリ「Trivi.al」など2万5000以上のアプリがParseを利用しています。
KinveyはGPSロケーションベースのサービスや、プッシュ配信、ユーザー管理の他に、アプリのバージョニング、アクセス解析などにも優れたBaaSです。
iOSやAndroid、JavaScript、HTML5から利用できるほか、後述のPhoneGapやTitanium Mobileからも利用できます。
Kinveyは他のBaaSに比べ、ストレージの料金体系が柔軟に決まり、利用するエンドユーザー数とストレージの量で、細かく変化します。
QuickBlox powers your apps with great functions and features that are easy to add during development. via kwout
QuickBloxはAmazon S3をストレージとして活用/連携できるBaaSです。サンプルやチュートリアルが豊富です。
「Free」プランから、「Small」「Medium」「Large」「Enterprise」プランと細かく規模が分かれています。Enterpriseプラン以外は、APIアクセス量と、ストレージの量の違いで料金設定が決まります。
★3つなど、レイティングの仕組みと、チャットのモジュールが準備されているところが特徴です。
StackMobはサーバ側に小さめのJavaもしくはScalaのコードを配置できるBaaSです。
コード記述なしで利用できるのがBaaSの利点ですが、BaaS側で用意したAPIサービスだけでは足りない場合も多いです。その点、StackMobはサーバサイドの拡張ができるので、可能性が広がります。
開発用の環境と、商用の環境に分かれ、商用環境は安定性との兼ね合いか、他サービスより若干価格が高額な印象を受けます。チケット制によるオンラインまたは、電話(米国時間/英語)によるサポートサービスを提供しているところは評価できます。
tiggziはドラッグ&ドロップでアプリを開発できる、PhoneGap(後述)ベースのアプリケーションビルダーが提供されているのが特徴のBaaSです。実質、米国でしか利用できませんが、AT&TのSMSに対応したプラグインが用意されています。
同様のBaaS「Kinvey」「StackMob」との連携プラグインも用意されていて、HTML5+JavaScriptベースのWebアプリのホスティングも可能です。プロジェクト数、アプリの画面数で、料金が設定されています。
Appcelerator Cloud Servicesは、細かいモジュールが提供されていて開発者に支持されているサービスです。foursquareやFacebookのようなチェックインサービスや、写真サービスなどのベースも用意されています。他のBaaSに比べて、アプリとの連携度が高いといえます。
以前は、「Cocoafish」というサービスでしたが、Titanium MobileのAppcelerator社に買収され、「Appcelerator Cloud Services」となりました。
5Gbytes、100デバイス、1万本のメール、50万のAPIコールが無料で提供され、それ以上は、それぞれ従量制で料金が増加していきます。
CloudMineは、BaaSとして準備しているREST APIの他に、サーバサイドJavaScript、Node.jsを配置でき、若干の拡張の仕組みを用意しています。
500ユーザーまでのお試し利用は無料で、それ以上はユーザー数ごとに課金されます。SLA(サービス品質保証)を約束した商用サービスに関しては要相談とのことです。
Buddy - Home via kwout
BuddyはREST APIのみならず、Webサービスとして一時期人気だったSOAPにも対応したBaaSです。
特徴としては、インスタグラム風の写真用の特殊効果フィルターが用意されており、Buddyだけでインスタグラムクローンのサービスを構築できるのが売り文句のようです。
国内初のBaaSで、iOSやAndroid、Windows Phone、Webアプリ(HTML5+JavaScript)に対応しています。OAuth 2.0のユーザー管理に対応していて、20Mbytes、リクエスト数無制限(秒間10同時アクセス)の体験版は無料で利用開始できます。
商用版のサービスに関しては、現在準備中のようで、要問い合わせです。まだ始まったばかりのサービスで実績はまだまだのようですが、日本語で問い合わせできるなど、期待されるBaaSの1つです。
Pankia: Home via kwout
Pankiaはスマートフォン向けのアプリにソーシャル機能を不可するために利用できるサービスです。主にソーシャルゲーム向けにネットワーク対戦、ランキング、アイテム管理などを提供してくれます。
数多くの日本のメジャーゲームアプリでも利用されている実績のあるサービスです。
マイクロソフトが提供するクラウド「Windows Azure」の一部として提供されているBaaSです。現在のところ、クライアントはWindows 8のみに対応し、ユーザー認証などに利用できます。iOSやAndroid、Windows Phoneにも対応予定です(参考:Windows AzureにWindows 8アプリ向けバックエンド機能「Mobile Services」)。
また先日、SDKをオープンソース化して、C#でのiOS/Androidアプリ開発に向けXamarinと提携するという発表があったばかりです(参考:Windows AzureのMobile Services SDKがオープンソース化)。
その他にもBaaSとしては、ここで詳しく紹介しきれなかった、「Sencha.io」「CloudyRec」「FreeHenry」「Knode」「ScottyApp」「Applicasa」「Usergrid」などがあり、日々新しいサービスが立ち上がってきています。スマートフォンアプリの激戦区の火花がBaaS提供各社にもやってきているようです。
スマートフォンを活用したアプリ開発の際、各種BaaSが便利に活用できますが、現状は一長一短でしょう。
もちろん、特注で、オリジナルの環境とバックエンドサービスを構築する場合と比べると機能面では融通が効きにくいかもしれませんが、平易に使えるメリットや、素早くアプリを含めたサービスをローンチできるメリットも数多くあります。
どういう点から最適なBaaSを選択すれば良いのか、いくつかの観点を紹介します。
将来的に他のサービスに移行する予定がある場合や、サービスが順調に拡大した場合、他のBaaSや他のクラウドサービスに移行する場合も考えられるでしょう。
選択の際には、現時点での最適解だけではなく、近い将来の予定も含めて、考える必要がありそうです。今後BaaSの活用事例や、活用ノウハウ、開発者コミュニティなども広がっていくことが期待できます。適切な価格で、適切なサービスを提供するBaaSが勝者になるとともに、そのうえで人気のサービスを提供するアプリ開発者も増えてくることでしょう。
BaaSの登場によって、サーバ側の環境構築は、平易になりました。モバイルアプリに対応したサーバ構築、モバイル専用のクラウド環境の専門家たちがアプリ開発者に向けて、専用の環境を用意してくれているのですから、安心です。
一方、多種多様な機種が台頭してきているスマートフォンのアプリ開発そのものはどうなのでしょうか? BaaSと対になる形、もしくは、BaaSを含む形で注目されているのが、モバイル・エンタープライズ・アプリケーション・プラットフォーム(MEAP)です。
MEAPとは、少なくとも「3つ以上のデバイス」をサポートするものとの定義が一般的で、iOSやAndroid、Windows Phone、Webアプリなどに対応します。MEAPソリューションによって機能要素が変わってきますが、一般的には、以下の要素を持ったものがMEAPとして活用されています。
費用はかさみますが、エンタープライズ/企業内で活用するようなアプリを開発する場合に便利に活用できるプラットフォームがMEAPです。何かしらのMEAP環境で1度開発すれば、複数プラットフォームに対応でき、以下の工程をサポートします。
MEAPの特徴は以下の通りです。
HTML5でWebアプリを作成すれば、同じことができるのではないかという意見もありますが、Webブラウザの互換性や、テストの手間、動作スピードなどの要素を考え、取捨選択が必要でしょう。
まだあまり一般的ではありませんが、以下が、主なMEAP環境として挙げられます(順不同)。ガートナーの2011年の調査も参考にしています。
また、エンタープライズ用途に限らず、複数のプラットフォーム向けアプリ開発環境としてアドビシステムズに買収された「PhoneGap」やAppceleratorの「Titanium Mobile」が広く使われています。3Dゲーム環境ですと「Unity」、Flash開発者向けの「Adobe AIR for iOS/Android」も現時点の選択肢としては考えられます。さらに、ゲーム開発用途となると、無数の開発ツールが存在します。
ちなみに前述しましたが、BaaSのCocoafishは「Titanium Mobile」のAppceleratorに買収されました。そうなると、AppceleratorはBaaSとMEAPをセットで提供できる会社となったともいえます。
エンタープライズ用途、企業内でスマートフォンアプリを導入する場合、MEAPのみならず、MDM(Mobile Device Management)ソリューションによるアプリの配布や、セキュリティ管理なども重要な要素になってきます。
企業内でのスマートフォン/スマートフォンアプリの導入の場合、端末の調達や更新における費用負担も大きな課題です。BYOD(Bring Your Own Device)の検討も進んでいますが、BYODでは社員が自身が使いたい最新機種を使えるという利点もありつつ、紛失の際のリスク回避や、利用料金の負担増なども課題になってきます。
今後、スマートフォンアプリのアイデアをより速いスピードで実現し、ローンチし、世界中に広く使ってもらえるよう、広げていくことを考えると、BaaSやMEAPの活用が必須なのかもしれません。
その一方、BaaSでできることだけでは、すでによくあるアプリと同じ機能でしかありません。ユーザー管理や、プッシュ配信など、誰もが使うところはBaaSを活用し、アプリとサービスのオリジナリティの部分に力を入れ、素早くサービスを構築しアプリを提供していくことが、ますます重要になってくるでしょう。
次回記事は、2012年11月初めごろに公開の予定です。内容は未定ですが、読者の皆さんの興味を引き、役立つ記事にする予定です。何か取り上げてほしい内容などリクエストがありましたら、編集部や@ITのfacebookページまでお知らせください。次回もどうぞよろしく。
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元CGソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ
所属団体
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.