オフラインWebアプリを実現するDropboxの新API「Datastore API」。Dropboxは実質的にBaaS市場へ参入した

2013年7月11日

Webアプリケーションをオフラインの状態でも利用できるようにするには、オフラインのときに保存したデータを、ネットワークと接続したときにサーバと同期してくれるAPIが必要です。

しかし、データ同期のプログラムを作るのは非常に面倒です。データの差分だけを取り出して同期するアルゴリズムをどうするか、同期の途中でネットワークが切れたらどうするのか、同期待ちのデータが複数のデバイスに分散されていたら、どれを同期後に上書きするのか、などを解決しなければなりません。

Dropbox - The Datastore API: a new way to store and sync app data - Developer Blog

Dropboxが発表した新API「Datastore API」は、オフラインに対応し、データを自動的に同期してくれる機能を備えています。オフラインWebアプリケーション普及のための道具が揃いつつあるのです。

オフラインWebのためのAPI。データのコンフリクトも自動解決

Dropboxはファイルをクラウドに保存し、PCやタブレット、スマートフォンなどで参照できるサービスとして人気があります。これまで同社は、ファイル単位でクラウドとPCやモバイルデバイスを同期するAPIを提供していました。

今回発表されたDatastore APIはファイル単位ではなく、キーとバリューのような構造化データに対応しています。

With the Datastore API, structured data like contacts, to-do items, and game state can be synced effortlessly. Datastores work across platforms, offline, and even support automatic conflict resolution.

Datastore APIでは、コンタクトリスト、ToDoリスト、ゲームのセーブデータのような構造化データを簡単に同期できます。Datastoreはクロスプラットフォームで動作し、オフラインに対応、さらに自動的にデータの齟齬(コンフリクト)も解決します。(Datastore API (beta)の説明より

Datastore APIのSDKはiOS、Android、そしてJavaScriptに対応しており、Webアプリケーションからモバイルアプリまで対応可能です。

Publickeyで今年2月に掲載した記事「2014年にはWebアプリの「オフラインファースト」が流行するのではないか?」では、html5j.orgの世話人である白石俊平氏が「最近ではBaaSがでてきていますが、ああいったものからオフラインWeb対応のAPIやSDKが出てくると思います。このSDKを使えば自動的に同期されますよ、といったもの。BaaSをさくっと使っちゃえ、ということになって2014年頃にオフラインWeb大流行、ということになるのではないかと思います。」と予想していました。

しかしBaaSよりも先に、DropboxがそのAPIをリリースしたことになります。

ただし、いまのところDropboxのDatastore APIでは自分の領域にしかデータを同期することができないようで、例えばゲームのプレイヤー全員のハイスコアをサーバのデータベースに集めてトップスコアを各人に戻す、といったことはできないようです(試していないのですが、ドキュメントを読む限りでは)。

これはもともとDropboxが個人のファイルをクラウドに同期するサービスから始まったことを考えれば当然のことなのかもしれませんが、ファイルでは共有機能が備わっていることから、Datastore APIも今後はそうした共有データベース的な機能へと発展していくことは考えられます。

BaaSの市場はプレイヤーもSDKもまだまだ選択肢が広がっていく

モバイル向けのバックエンドサービス、いわゆるBaaSは、ParseやCocoafish、国内ではAppiariesやKiiクラウドなど多くのスタートアップが登場し、その一部はFacebookやAppceleratorに買収され、あるいはWindows AzureやGoogle App Engineなどの大手がBaaS用のSDKをリリースして参入するなど市場はまだ流動的です。そこへ、これまで別の分野のプレイヤーだと考えられていたDropboxが事実上参入することになりました。

BaaSはデータ同期のAPIを見ても、あるいは認証などのAPIを見ても、まだまだ発展の余地が相当にあります。これからも新しいプレイヤー、新しいAPI、新しいSDKの投入が続いて選択肢が広がっていく状態になるはずです。その中からどのプレイヤーが生き残っていくのか、それが見えてくるのはまだ数年かかるのではないでしょうか。

あわせて読みたい

JavaScript クラウド モバイル




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本