スマホアプリ開発に超絶便利なBaaSとは、MEAPとは安藤幸央のランダウン(62)

バックエンドの設定用のモバイル向けクラウドサービス「BaaS」と、企業向け業務アプリの複数プラットフォーム対応ソリューション「MEAP」についてまとめて紹介します

» 2012年09月28日 00時00分 公開

サーバ周りの開発に悩むアプリ開発者の救世主「BaaS」

 近年、iPhoneやAndroidなどのスマートフォンの浸透とともに、アプリの利用も広がり、多くのスマートフォン向けアプリが開発されるようになってきました。大規模な電子商取引系のWebサービスの開発に比べれば、少人数の開発者で短期間に開発できるのがスマートフォンアプリです。しかし、世界中の数多くの人々に使ってもらえる新しいサービスを考えた場合、アプリ単体で完結しないことが多く、Webサーバとの連携が必須になる場合も考えられます。

 伝え聞くところによると、人気の写真共有アプリ「Instagram」の開発者は、初めは、まったくバックエンドに関する経験がなく、アプリを開発しながら、バックエンド環境、サーバ構築に関しても、試行錯誤しながらサービスを立ち上げたそうです。彼らの武勇伝的ストーリーともいえる涙ぐましい失敗談をノウハウとして公開してくれています。

Mike Krieger, Instagram at the Airbnb tech talk, on Scaling Instagram


 ささいなことと思われるかもしれませんが、例えば、WebブラウザのURL表示領域に小さく表示される、faviconファイルをサーバに置くのを忘れただけで、大量のエラーログが発生し、サーバのログ保存がパンクしそうになったそうです。

 こんな、バックエンドの設定や立ち上げの苦労をアウトソーシングするのが、最近各種サービスが立ち上がり始めたモバイル専用のクラウドサービス、「BaaS(Backend as a Service)」です。

 クラウドサービスというと、Amazon EC2/S3などが真っ先に思い浮かぶでしょう。スマートフォン向けアプリのバックエンドとしてAmazon EC2を利用する場合、結局のところ、サーバのセッティングをしたり、サーバアプリを開発したりしなければいけません。

一般的なBaaSの5つの主な機能例

 BaaSでは、スマートフォン向けのモバイルサービスでよく利用される機能を、簡単な設定で平易にアプリと連携して利用できるように準備されています。大抵の場合、設定のみ、APIを呼び出すだけで、サーバ側のコードを書かずとも、必要なサービス構築を済ませられます。

  1. ユーザー登録、IDの再発行、ユーザー情報の管理
  2. メール通知、プッシュ通知
  3. GPSを活用した、位置情報サービスとの連携
  4. TwitterやFacebookなどソーシャルネットワークサービスとの連携
  5. データやコンテンツの保存/管理機能

BaaS活用が功を奏する5つのケース

 もちろん、頼りになるバックエンドに詳しいエンジニア/プログラマがチーム内にいる場合は一般のクラウドサービスや自社サーバを活用すれば良いかもしれません。それでは、BaaSを活用するのは、どういう状況でしょうか? BaaS活用が功を奏するのは、以下のような状況が考えられます。

  1. コンシューマ向けサービスのバックエンド構築に慣れていない、もしくは初めての場合
  2. バックエンド周辺を助けてもらえる人はいるが、十分なリソースは割けない場合
  3. アプリの開発や、サービスそのものに注力し、バックエンドには手間を掛けたくない場合
  4. ユーザー管理など、一般的な機能の組み合わせで実現できるシンプルなアプリの場合
  5. サービス立ち上げまでのスピードが重要で、すぐにでもサービスをローンチしたい場合

 これらの条件のうちいくつかが成り立つ場合は、BaaSの採用を検討するメリットはあるでしょう。またスマートフォンアプリの機能にもよりますが、特殊な機能を実現しようと欲張らず、BaaSの持つ機能の範囲内で済むよう、アプリの機能をシンプルに保つという考え方もあります。

主なBaaS紹介11連発!

 ここで主なBaaSを11個選んで、簡単に紹介します(順不同)。以下は、後述するBaaSベンダの1つであるKinveryが提供する、世界のBaaS周辺の勢力関係図です。

【1】Parse

 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を利用しています。

【2】Kinvey

 KinveyはGPSロケーションベースのサービスや、プッシュ配信、ユーザー管理の他に、アプリのバージョニング、アクセス解析などにも優れたBaaSです。

 iOSやAndroid、JavaScript、HTML5から利用できるほか、後述のPhoneGapやTitanium Mobileからも利用できます。

 Kinveyは他のBaaSに比べ、ストレージの料金体系が柔軟に決まり、利用するエンドユーザー数とストレージの量で、細かく変化します。

【3】QuickBlox

 QuickBloxはAmazon S3をストレージとして活用/連携できるBaaSです。サンプルやチュートリアルが豊富です。

 「Free」プランから、「Small」「Medium」「Large」「Enterprise」プランと細かく規模が分かれています。Enterpriseプラン以外は、APIアクセス量と、ストレージの量の違いで料金設定が決まります。

 ★3つなど、レイティングの仕組みと、チャットのモジュールが準備されているところが特徴です。

【4】StackMob

 StackMobはサーバ側に小さめのJavaもしくはScalaのコードを配置できるBaaSです。

 コード記述なしで利用できるのがBaaSの利点ですが、BaaS側で用意したAPIサービスだけでは足りない場合も多いです。その点、StackMobはサーバサイドの拡張ができるので、可能性が広がります。

 開発用の環境と、商用の環境に分かれ、商用環境は安定性との兼ね合いか、他サービスより若干価格が高額な印象を受けます。チケット制によるオンラインまたは、電話(米国時間/英語)によるサポートサービスを提供しているところは評価できます。

【5】Tiggzi

 tiggziはドラッグ&ドロップでアプリを開発できる、PhoneGap(後述)ベースのアプリケーションビルダーが提供されているのが特徴のBaaSです。実質、米国でしか利用できませんが、AT&TのSMSに対応したプラグインが用意されています。

 同様のBaaS「Kinvey」「StackMob」との連携プラグインも用意されていて、HTML5+JavaScriptベースのWebアプリのホスティングも可能です。プロジェクト数、アプリの画面数で、料金が設定されています。

【6】Appcelerator Cloud Services(旧、Cocoafish)

 Appcelerator Cloud Servicesは、細かいモジュールが提供されていて開発者に支持されているサービスです。foursquareやFacebookのようなチェックインサービスや、写真サービスなどのベースも用意されています。他のBaaSに比べて、アプリとの連携度が高いといえます。

 以前は、「Cocoafish」というサービスでしたが、Titanium MobileのAppcelerator社に買収され、「Appcelerator Cloud Services」となりました。

 5Gbytes、100デバイス、1万本のメール、50万のAPIコールが無料で提供され、それ以上は、それぞれ従量制で料金が増加していきます。

【7】CloudMine

 CloudMineは、BaaSとして準備しているREST APIの他に、サーバサイドJavaScript、Node.jsを配置でき、若干の拡張の仕組みを用意しています。

 500ユーザーまでのお試し利用は無料で、それ以上はユーザー数ごとに課金されます。SLA(サービス品質保証)を約束した商用サービスに関しては要相談とのことです。

【8】Buddy

 BuddyはREST APIのみならず、Webサービスとして一時期人気だったSOAPにも対応したBaaSです。

 特徴としては、インスタグラム風の写真用の特殊効果フィルターが用意されており、Buddyだけでインスタグラムクローンのサービスを構築できるのが売り文句のようです。

【9】appiaries

 国内初のBaaSで、iOSやAndroid、Windows Phone、Webアプリ(HTML5+JavaScript)に対応しています。OAuth 2.0のユーザー管理に対応していて、20Mbytes、リクエスト数無制限(秒間10同時アクセス)の体験版は無料で利用開始できます。

 商用版のサービスに関しては、現在準備中のようで、要問い合わせです。まだ始まったばかりのサービスで実績はまだまだのようですが、日本語で問い合わせできるなど、期待されるBaaSの1つです。

【10】Pankia

 Pankiaはスマートフォン向けのアプリにソーシャル機能を不可するために利用できるサービスです。主にソーシャルゲーム向けにネットワーク対戦、ランキング、アイテム管理などを提供してくれます。

 数多くの日本のメジャーゲームアプリでも利用されている実績のあるサービスです。

【11】Windows Azure Mobile Services

 マイクロソフトが提供するクラウド「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に

 その他にもBaaSとしては、ここで詳しく紹介しきれなかった、「Sencha.io」「CloudyRec」「FreeHenry」「Knode」「ScottyApp」「Applicasa」「Usergrid」などがあり、日々新しいサービスが立ち上がってきています。スマートフォンアプリの激戦区の火花がBaaS提供各社にもやってきているようです。

BaaS選定の8つのポイント

 スマートフォンを活用したアプリ開発の際、各種BaaSが便利に活用できますが、現状は一長一短でしょう。

 もちろん、特注で、オリジナルの環境とバックエンドサービスを構築する場合と比べると機能面では融通が効きにくいかもしれませんが、平易に使えるメリットや、素早くアプリを含めたサービスをローンチできるメリットも数多くあります。

 どういう点から最適なBaaSを選択すれば良いのか、いくつかの観点を紹介します。

  1. 料金は適切か?(初期費用と、運用費用の合計はいくらぐらいか? サービスの料金設定に変更があることも考慮しておく)
  2. 想定APIアクセス数から計算し、十分か? スケーラブルか?(急な高負荷やユーザーの増加に耐えうるか?)
  3. セットアップの容易さ(必要な知識や、設定のための時間が少なくて済むか?)
  4. 環境依存度は?(他のプラットフォームに移行しやすい? しにくい?)
  5. 必要とするインターフェイスが整っているか?(REST、JSON、SOAPなど)
  6. 必要とするプラットフォーム用のSDKが用意されているか?(iOS、Android、Windows Phone、Webアプリ(HTML5+JavaScript)用)
  7. 本番商用環境/開発環境の使い分けができるか?
  8. アクセス解析の仕組みが用意されているか? 他のサービスを使わなければいけないのか?

 将来的に他のサービスに移行する予定がある場合や、サービスが順調に拡大した場合、他のBaaSや他のクラウドサービスに移行する場合も考えられるでしょう。

 選択の際には、現時点での最適解だけではなく、近い将来の予定も含めて、考える必要がありそうです。今後BaaSの活用事例や、活用ノウハウ、開発者コミュニティなども広がっていくことが期待できます。適切な価格で、適切なサービスを提供するBaaSが勝者になるとともに、そのうえで人気のサービスを提供するアプリ開発者も増えてくることでしょう。

企業向け業務アプリの複数プラットフォーム対応のための「MEAP」の台頭

 BaaSの登場によって、サーバ側の環境構築は、平易になりました。モバイルアプリに対応したサーバ構築、モバイル専用のクラウド環境の専門家たちがアプリ開発者に向けて、専用の環境を用意してくれているのですから、安心です。

 一方、多種多様な機種が台頭してきているスマートフォンのアプリ開発そのものはどうなのでしょうか? BaaSと対になる形、もしくは、BaaSを含む形で注目されているのが、モバイル・エンタープライズ・アプリケーション・プラットフォーム(MEAP)です。

 MEAPとは、少なくとも「3つ以上のデバイス」をサポートするものとの定義が一般的で、iOSやAndroid、Windows Phone、Webアプリなどに対応します。MEAPソリューションによって機能要素が変わってきますが、一般的には、以下の要素を持ったものがMEAPとして活用されています。

 費用はかさみますが、エンタープライズ/企業内で活用するようなアプリを開発する場合に便利に活用できるプラットフォームがMEAPです。何かしらのMEAP環境で1度開発すれば、複数プラットフォームに対応でき、以下の工程をサポートします。

  • アプリデザイン(設計/構築)
  • アプリのビルド
  • アプリとバックエンドとの接続/データ交換
  • アプリの配布
  • アプリの実行環境(ランタイムエンジンなどが存在する場合もあり)
  • アプリの管理(アプリの配布、更新、利用期限の管理など)
  • アプリの利用状況のログ取得

 MEAPの特徴は以下の通りです。

  • モバイルアプリの運用管理込みで考えられているプラットフォームであること
  • 必ずしもプログラムの専門家でなくともツールの活用である程度利用できる
  • ツールでできないことは、やはりコードが書けないと実現できない
  • 大抵、HTML/CSSデザインの延長でアプリを作成できる
  • 多種多様なプラットフォームに対応し、今後出てくる新機種も随時対応していける
  • ツールの範疇でアプリの機能を考える必要があり、できることと、困難なことの見極めが必要
  • 企業内での利用におけるセキュリティ管理、デバイス管理も考慮されている場合が多い
  • アプリの配布や、バージョンアップのことも考慮されている場合が多い

 HTML5でWebアプリを作成すれば、同じことができるのではないかという意見もありますが、Webブラウザの互換性や、テストの手間、動作スピードなどの要素を考え、取捨選択が必要でしょう。

主なMEAPソリューション14選

 まだあまり一般的ではありませんが、以下が、主なMEAP環境として挙げられます(順不同)。ガートナーの2011年の調査も参考にしています。

  1. Antenna Software
  2. eCommunity(Chlorophyll Vision)
  3. IBM Worklight(日本語)
  4. Kony Solutions
  5. Pyxis Mobile
  6. Smart Miles
  7. Sybase Unwired Platform(日本語)
  8. Syclo(独SAPが買収して最近話題に)
  9. Moofwd
  10. Magic xpa
  11. AppPoint Software Solutions
  12. MobileFrame
  13. Motorola RhoMobile Suite(日本語)
  14. MoSync

エンタープライズ用途に限らず複数のプラットフォーム向けアプリ開発環境は多い

 また、エンタープライズ用途に限らず、複数のプラットフォーム向けアプリ開発環境としてアドビシステムズに買収された「PhoneGap」やAppceleratorの「Titanium Mobile」が広く使われています。3Dゲーム環境ですと「Unity」、Flash開発者向けの「Adobe AIR for iOS/Android」も現時点の選択肢としては考えられます。さらに、ゲーム開発用途となると、無数の開発ツールが存在します。

 ちなみに前述しましたが、BaaSのCocoafishは「Titanium Mobile」のAppceleratorに買収されました。そうなると、AppceleratorはBaaSとMEAPをセットで提供できる会社となったともいえます。

エンタープライズ・モビリティの課題―MDM/BYOD

 エンタープライズ用途、企業内でスマートフォンアプリを導入する場合、MEAPのみならず、MDM(Mobile Device Management)ソリューションによるアプリの配布や、セキュリティ管理なども重要な要素になってきます。

 企業内でのスマートフォン/スマートフォンアプリの導入の場合、端末の調達や更新における費用負担も大きな課題です。BYOD(Bring Your Own Device)の検討も進んでいますが、BYODでは社員が自身が使いたい最新機種を使えるという利点もありつつ、紛失の際のリスク回避や、利用料金の負担増なども課題になってきます。

  • 端末の盗難/紛失/不正使用によるリスク(リモートワイプ/遠隔消去の設定など)
  • 旧来のパソコン、ノートパソコンとは異なる社内の要件や規定(規定の改訂や関係部署との調整)
  • アクセス制限(VPNなど、認証ありのアクセス制限設定など)
  • バックアップ体制(パソコンやクラウドによるデータのバックアップ)
  • 利用規程(アプリのインストール制限や、搭載カメラの利用制限など)
  • エンタープライズ向けアプリそのものの信頼性やセキュリティ要件の確保

BaaSやMEAPを使ってオリジナリティを重視

 今後、スマートフォンアプリのアイデアをより速いスピードで実現し、ローンチし、世界中に広く使ってもらえるよう、広げていくことを考えると、BaaSやMEAPの活用が必須なのかもしれません。

 その一方、BaaSでできることだけでは、すでによくあるアプリと同じ機能でしかありません。ユーザー管理や、プッシュ配信など、誰もが使うところはBaaSを活用し、アプリとサービスのオリジナリティの部分に力を入れ、素早くサービスを構築しアプリを提供していくことが、ますます重要になってくるでしょう。


 次回記事は、2012年11月初めごろに公開の予定です。内容は未定ですが、読者の皆さんの興味を引き、役立つ記事にする予定です。何か取り上げてほしい内容などリクエストがありましたら、編集部や@ITのfacebookページまでお知らせください。次回もどうぞよろしく。

プロフィール

安藤幸央(あんどう ゆきお)

1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元CGソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。

安藤幸央

ホームページ

Java News.jp(Javaに関する最新ニュース)

所属団体

OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)

主な著書

「VRML 60分ガイド」(監訳、ソフトバンク)

これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)

The Java3D API仕様」(監修、アスキー)


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。