連載
» 2009年09月04日 00時00分 公開

ゆったリラックス! CouchDBがあるところ(1):“動物図鑑”で知るCouchDBの特徴 (2/3)

[z.ohnami,CouchDB JP]

CouchDBの活用事例を知る

 ここからは事例を紹介しながらCouchDBの用途を整理してみようと思います。

Building a Track and Trace Application with CouchDB

 このブログの記事では、物流システムにおける集荷の状態遷移を管理する部分で、CouchDBを採用している事例を紹介しています。荷物の状態が変わるごとに、イベントとして記録する必要があるようです。記事中に掲載されている図を見ると、イベントごとにデータの構造が異なっています。データの構造は異なりますが、イベントという同じドキュメントとしてデータを管理したいというニーズがあります。このような場合は特徴1で述べたように、JSON形式による柔軟な書式を備えているCouchDBを使った方が、データ構造をより自然に設計することができるでしょう。

SofaとToast

 Sofaはブログ、ToastはTwitterのようなチャットの機能を持ったアプリケーションです。それぞれ、CouchDB上で動作します。記事や投稿内容といったデータとしてのドキュメントだけではなく、JavaScriptのソースコードやHTMLファイル、CSSファイルもドキュメントの一部として扱い、CouchDB上に格納する構成になっています。WebサーバやAPサーバがなくても、CouchDBが入ったサーバ単体でWebアプリケーションを利用者へ提供できます。特徴3で書いたレプリケーションの機能を利用すれば、アプリケーションとドキュメントをCouchDB同士で簡単に交換することもできます。

 GitHubにSofaToastのソースコードがあります。入手して、ぜひ使ってみてください。SofaとToastのようなCouchDB上で稼働するアプリケーションの作成方法は、今後の記事で取り上げる予定です。

Webjourney

 Webjourneyは、Webのポータル画面に利用者がお好みのガジェットを配置するための基盤です。日本のエンジニア、yssk22さんが開発しています。

 WebjourneyではCouchDBとOpenSocialによる実装が試みられています。CouchDBにはガジェットで使用するOpenSocialのソースコードをドキュメントとして格納する仕組みになっているようです。利用者がガジェットを実際に配置するまで、Webjourney側でデータの構造を読み取るすべはありません。あらかじめデータの構造を定義しておくことは困難です。ここでもJSON形式による柔軟なデータ構造とソースコードもドキュメントとして取り扱い、容易に実行できるCouchDBの利点が生かされています。

 yssk22さんは、初期のバージョンではMySQLとActiveRecordを使って実装していたのですが、あるときからCouchDBに切り替えたそうです。こちらもGitHubにソースコードがありますので、入手して使ってみることをお勧めします。

CouchDBの用途は

 以上の事例から考えてみると、CouchDBの用途は大きく分けて2種類あると思います。

 1つ目は純粋にドキュメント指向のデータベースとして使用するケースです。紙のドキュメントをそのまま電子化するような要件は、CouchDBと相性がよいでしょう。実際にアプリケーションを構築する場合は、RDBと併用して、役割を分担させるやり方がベストであるように思えます。データ構造は不安定ですが、ドキュメントとして強いまとまりがあり、外部のデータと結合しないデータはCouchDBへ格納します。データ構造が一定であっても、結合を駆使してさまざまな局面で形を変えて再利用されるデータはRDBへ格納するイメージです。

 2つ目はアプリケーションとデータをホスティングする基盤として使用するケースです。CouchDBが稼働しているサーバがあれば、利用者はJavaScriptでアプリケーションを書いたらすぐにCouchDBへデプロイし、公開することが可能です。URIとドキュメントがひも付いており、HTTPメソッドで世界中どこからでも容易に操作ができることと、レプリケーションによるドキュメントの交換はデータベースという容器と中に入っているドキュメントの結びつきを弱め、ドキュメントの流動性を高めています。CouchDBをローカルストレージとして使用し、必要なHTMLファイルやアプリケーションをPtoPで取得し合って使用するようなことも可能になるでしょう。

 CouchDBのオフィシャルサイトでは“CouchDB in the Wild”と称して、CouchDBを採用しているWebサービスやソフトウェアへのリンク集を公開しています。集荷システムの事例もそこから取り上げました。ほかにもさまざまなサービスやソフトウェアを紹介していますので、是非ご覧ください。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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