« Redmine勉強会 | トップページ | TestLinkを運用して気付いたことpart4~TestLinkの概念を再考 »

2009/05/31

時代はO-Rマッピングからkey-valueストアへ

Apache CouchDBに関するメモ書き。
#理解が不完全なので、後で正しく書く。

【元ネタ】
Apache CouchDB: The CouchDB Project

Web 時代の非リレーショナルデータベース: 第 1 回 Apache CouchDB の概要とインストール

Web 時代の非リレーショナルデータベース: 第 2 回 Apache CouchDB と Ruby on Rails を使って wiki アプリケーションを作成する

Web 時代の非リレーショナルデータベース: 第 3 回 Apache CouchDB で MapReduce フレームワークに基づく問いあわせを行う

MOONGIFT: ? Web2.0時代のニュータイプDB「CouchDb」:オープンソースを毎日紹介

CouchDBはこのように説明されている。

CouchDB を探る


CouchDB はオープンソースのドキュメント指向データベース管理システムであり、アクセスには RESTful JSON (JavaScript Object Notation) API が使われます。
「Couch」という言葉は「Cluster Of Unreliable Commodity Hardware」の頭字語であり、CouchDB の目標を反映しています。
CouchDB の目標とは、極めてスケーラブルであると同時に、故障を起こしがちなハードウェア上で実行された場合でも高可用性と高信頼性を実現することです。
CouchDB は元々 C++ で作成されましたが、2008年4月、フォルト・トレランスを強化するために、このプロジェクトは Erlang OTP プラットフォームに移行されました。


CouchDBは関数型言語Erlangで作られた非RDBなDB。
RESTなWebAPIで問い合わせると、JSONが戻り値で返ってくる。
問い合わせ処理は MapReduce フレームワークに基づいて記述されているらしい。

使い道は、クライアントPCのユーザビリティ向上。
インターネットにつながっていないBTS、掲示板、Wikiでデータを更新して保存したい時に、クライアントのCouchDB に一旦保存して、そのデータは非同期にサーバーのRDBへ格納される。
この機能があれば、Webアプリは、画面ステータスをCouchDB に保存できるから、デスクトップアプリのように扱える。

多分、そういうイメージだと思う。

最近のWebアプリは、MVCモデルのうち、Viewの部分に技術革新が起きている。
最新バージョンのRailsが持つCookie Session Storeのように、非同期処理の機構をWebアプリに導入することで、Webアプリをデスクトップアプリのように、ネットワーク接続に無関係のまま扱えるようにしたい。

以前、友人から、最近の傾向としては、MVCモデルのうち、ViewでもAjaxやJasonのように、Viewの中にMVCモデルを作ろうとしているんですよね、と指摘してくれたことがあった。
多分、key-valueストアはその部分で使われるのだろう。

key-valueストアの良さは、関数型言語やMapReduceと相性がよいことだ。
CouchDB がErlangという風変わりな関数型言語で実装されているのは注目に値すると思う。
並列処理による処理の高速化(MapReduce)、分散システムによるフォールトレランス(耐障害性)などの特徴があるのだろう。

昨今のWebアプリの技術を鳥瞰してみると、RailsやSeasarでO-Rマッピングのインピーダンスマッチの問題は事実上解決されたと言える。

そして、技術革新の場所は、GoogleのMapReduce、Amazonのレコメンドエンジンなどの機能へ移っている。
これらはいわゆるデータマイニング。
膨大なトランザクションデータを大量のマシンパワーと関数型言語による並列処理で解析して、マーケティングや経営上の意思決定に生かす。

時代は、オブジェクト指向言語から関数型言語へ静かに移りつつあると思う。


|

« Redmine勉強会 | トップページ | TestLinkを運用して気付いたことpart4~TestLinkの概念を再考 »

プログラミング」カテゴリの記事

ソフトウェア」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 時代はO-Rマッピングからkey-valueストアへ:

« Redmine勉強会 | トップページ | TestLinkを運用して気付いたことpart4~TestLinkの概念を再考 »