連載
» 2010年09月02日 00時00分 公開

ゆったリラックス! CouchDBがあるところ(5):モバイルでもリラックス! CouchDB on Android (1/3)

いつでもどこでもCouchDBを。2010年8月にAndroid版CouchDBが登場しました。そこで今回は予定を変更し、Android版のインストールと活用方法を2回に分けて解説します(編集部)

[まえだこうへい,CouchDB JP]

CouchDB is Everywhere!

 この夏、CouchDBには大きな動きがありました。まずはどんなことがあったのかを見てみましょう。

CouchDB 1.0リリース

 1つ目は皆さんもご存じのとおり、2010年7月14日(現地時間)にCouchDB 1.0が正式リリースされたことです。データ消失する可能性のあるバグがリリース直後に見つかり、その修正版の1.0.1が2010年8月16日(現地時間)に緊急リリースされたという問題もありましたが、CouchDBを使っている読者の皆さんは、そんなこと気にもかけず、リラックスして対応されていることでしょう。

 とにかく、バグ修正対応された1.0.1がリリースされたので、いよいよCouchDB本番、といったところでしょうか。

CouchDBホスティング環境が登場

 2つめは、無料ですぐ使えるCouchDBのホスティング環境が増えてきたことです。次の2つサービスがあります。

 いずれもプライベートベータ版としてサービス提供されていましたが、アクセス権をもらえたのは一部の人のみでした。公開のCouchDB サーバを用意するには、自前でサーバを用意するしか実質方法がありませんでした。ちなみに、これらのサービスは、すでにCouchDB 1.0が採用されています【注1】

【注1】Couchioでは1.0.1にすでにアップデートされています。

Android用CouchDBがリリース

 3つめは、2010年8月10日にAndroid用のCouchDB(CouchDB on Android)が、開発者向けのアルファバージョンとして正式にAndroid Marketでリリースされたことです【注2】。これもすでに一部でニュースになっていますが、私はこれを待っていたんです!

 これは、単にAndroidでもCouchDBを使えてうれしいというだけの話ではありません。この部分について、もう少し掘り下げてみましょう。

【注2】実際にはその前の週から公開されていました。

CouchDB on Androidで実現する世界

 CouchDB on Androidの意義を考えてみましょう。Androidのデバイスを持っていれば、ローカルストレージとしてどこでもCouchDBが使えるようになるわけですが、それだけではあまり意味がありません。そこで、重要になってくるのが、CouchDBの次の3つの特徴です。

  • データベースである
  • アプリケーションサーバでもある
  • CouchDB同士で、レプリケーションができる

 これらの特徴は何を意味するのでしょうか。それは“いつでも”、“どこでも”、“簡単に”データの参照だけでなく、更新も可能なアプリケーションを開発し、使えるようになるのです。これはつまり、こういうことです。

fig1 図1 オンライン、オフラインを気にせずに

 PC向けに作った、サーバ上で稼働するCouchDBのアプリケーションがあります。これをCouchDBのレプリケーションの機能で、データベースも一緒にスマートフォンなどのモバイル端末に複製することができます。モバイル端末ではローカルストレージとしてCouchDBのデータベースを扱うことができるので、オンラインはもちろん、キャリアの電波が届かない場所であっても、データの参照、更新を行うことができます。サーバへのデータの反映は、再びオンラインになったときにレプリケーションを行えばよいのです。(図1)

 もちろん、モバイル端末だけで完結するアプリケーションにも利用できます。

マルチプラットフォームに対応予定

 今回はAndroid向けにリリースされましたが、現在、iOS向けにもCouchDBの移植が行われています。さらにPalm webOS向けにも対応するといわれています。つまり将来的には、サーバ、クライアントPCやAndroid、iPhone/iPadなどのモバイル端末など、プラットフォームを選ばずに、一度作ったアプリケーションを、アプリだけでなくデータベースまでも簡単に展開することができるようになるわけです。

オフライン同期の仕組みを簡単に

 いままでお話した機能は、現状でももちろん存在します。例えば、Evernoteのように、オフラインではローカルキャッシュでデータを持ち、オンラインになったらクラウド側に反映するアプリケーションです。しかし、従来のアプリケーション開発手法でモバイル端末への対応を配慮すると、非常に大きな労力を要します。サーバ側は何らかのデータベースと開発言語でアプリケーションを作り、PC向けのWeb画面は、HTML&CSS&JavaScriptで開発、Android向けにはJava、iPhone向けにはObjective-C――と、すべてのプラットフォームに対応するのは非常に大変なのが現状ではないでしょうか。

 CouchDB上で動くアプリケーションを開発すれば、共通のプラットフォームとして活用できるので、アクセスするためのviewをサーバサイドJavaScriptで、クライアントアプリケーションをHTML&CSS&JavaScriptで作り、あとはレプリケーションで各端末に配布するだけでいいのです。実に魅力的ではないでしょうか。

 CouchDBは数あるNoSQLなミドルウェアの1つとして、そのほかのNoSQLと比較されることの多いようですが、CouchDBの神髄は、そこでの比較ではなく、データとアプリケーションを“一緒にレプリケーションできること”にあると考えています。しかも、レプリケーションの相手は、いわゆるクライアント/サーバ間だけとは限りません。CouchDBのレプリケーションは、RDBのレプリケーションとは違い、一方がマスターで、もう一方がスレーブといった構成ではなく、双方向のレプリケーションができます。つまり、通常なら直接PtoPで通信することのない、モバイルデバイス同士でもレプリケーションが可能なのです。

 いろいろと夢が広がってきませんか?

コラム:HTML5のオフラインWebアプリケーションとの違いについて

 HTML5にもオフラインWeb アプリケーションのデータ更新を実現する仕組みとして、Web Storage、Web SQL Storage、Indexed Database APIがあるのでは? と考える人もいると思います。これらは、

  • Web Storage
     JavaScriptオブジェクトで簡単に永続化できるが複雑な処理はできない。
  • Web SQL Storage
     フル機能のデータベースだが、スキーマが静的、SQLで処理する(これは利点でもあり、欠点でもある)。
  • Indexed Database API
     上記2つのいいとこ取りだが、まだ仕様が流動的で、ブラウザでの実装はまだ先。

という状況で、CouchDBはデータの永続化の観点ではIndexed Database APIに相当する位置付けに当たるかと思います。そういう意味では、正式版がリリースされ、実際に使うことができる、という点でもメリットがありますが、CouchDBの場合は、ローカルストレージとしてCouchDBを動かすのであれば、オフライン化やデータの同期のための仕組みを自分で実装しないで済むという点もメリットといえるでしょう。(参考:HTML5&API 入門/白石俊平 著)


       1|2|3 次のページへ

Copyright© 2018 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

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

メールマガジン登録

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