モバイルでもリラックス! CouchDB on Android
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つサービスがあります。
- Couchio
http://www.couch.io/ - Cloudant
https://cloudant.com/
いずれもプライベートベータ版としてサービス提供されていましたが、アクセス権をもらえたのは一部の人のみでした。公開のCouchDB サーバを用意するには、自前でサーバを用意するしか実質方法がありませんでした。ちなみに、これらのサービスは、すでにCouchDB 1.0が採用されています【注1】。
Android用CouchDBがリリース
3つめは、2010年8月10日にAndroid用のCouchDB(CouchDB on Android)が、開発者向けのアルファバージョンとして正式にAndroid Marketでリリースされたことです【注2】。これもすでに一部でニュースになっていますが、私はこれを待っていたんです!
これは、単にAndroidでもCouchDBを使えてうれしいというだけの話ではありません。この部分について、もう少し掘り下げてみましょう。
CouchDB on Androidで実現する世界
CouchDB on Androidの意義を考えてみましょう。Androidのデバイスを持っていれば、ローカルストレージとしてどこでもCouchDBが使えるようになるわけですが、それだけではあまり意味がありません。そこで、重要になってくるのが、CouchDBの次の3つの特徴です。
- データベースである
- アプリケーションサーバでもある
- CouchDB同士で、レプリケーションができる
これらの特徴は何を意味するのでしょうか。それは“いつでも”、“どこでも”、“簡単に”データの参照だけでなく、更新も可能なアプリケーションを開発し、使えるようになるのです。これはつまり、こういうことです。
●図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/3 |
| Index | |
| モバイルでもリラックス! CouchDB on Android | |
| Page 1 CouchDB is Everywhere! CouchDB 1.0リリース CouchDBホスティング環境が登場 Android用CouchDBがリリース マルチプラットフォームに対応予定 オフライン同期の仕組みを簡単に |
|
| Page 2 Android向けのCouchDBを試してみよう CouchDB on Androidの概要 インストールから起動まで ランチャーのインストールとbinary update |
|
| Page 3 外部からアクセスできるように |
|
| ゆったリラックス! CouchDBがあるところ |
TechTargetジャパン
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
