Officeユーザーにこそ?
CouchDBでお手軽アプリ開発
第3回は、CouchDBを利用してWebアプリケーション開発を行うためのツールと、Windows版CouchDBについて紹介します。筆者はCouchDBをWebアプリケーション開発者だけが使うのではなく、システム管理者やMicrosoft Officeで事務処理を行っているユーザーにとっても有意なツールだと考えており、そういった方面での活用できるのではないか? と考えています。
CouchDBを使った開発は、いままでとどう違うの?
Webアプリケーションの世界で、いま現在よく使われているのは「3層モデル」と呼ばれる仕組みだと思います。クライアントからのリクエストに対し、アプリケーションサーバがデータベースからデータを持ってきて、処理した上でクライアントに結果を返す、というイメージです。CouchDBを使った仕組みでは、CouchDBをホスティングしているサーバがいるだけです。つまり、CouchDBは、アプリケーションサーバであり、データベースサーバでもあるのです。
●図1
簡単なWebアプリケーションであれば、第2回「APIとDesign Documentでカクテルブックに挑戦」で紹介したように、Design Documentと添付ファイルだけで作成できます(多少JavaScriptは書く必要があります。また、多くのJavaScriptライブラリはクライアントサイドで動作することを想定しているものが多いため、サーバサイドで動かす場合は注意する必要があります)。
CouchDBからほかの使い慣れた言語を使いたい(呼び出したい)場合は、External Processという仕組みがあります。これは、CouchDBと任意のスクリプトとを標準入出力を使用して連携させるものです。使い方は、local.iniファイル(CouchDBの設定ファイル)に、パスを記述するだけです。External Processの使用方法については、Pythonでの例を掲載している公式wikiを参照してください。
CouchAppを使った開発
今回はCouchAppという仕組みを紹介したいと思います。CouchAppとは、端的にいうとCouchDBでWebアプリケーション開発するためのフレームワークの1つです。CouchDBで動作するJavaScriptのライブラリと、開発用コマンドラインツールが含まれています。CouchAppなしでもCouchDB上での開発は可能ですが、より“リラックス”して開発を行いたい場合は、このツールを使用することをおすすめします。また、Webアプリケーション開発だからといって、公開向けサーバとして使う必要は必ずしもなく、ローカルWebサーバとして使っても構いません。余談ですが、CouchDBの主要な開発者である、クリス・アンダーソン(Chris Anderson)氏も“Relaxing Offline JavaScript”と題してCouchDBの多様な可能性について言及しています。
CouchAppを使用すると、前述のCouchDBモデルでの開発がより簡単になります。コードを書き、添付ファイルを用意し、コマンドラインからCouchDBに向かってpushすることで、Webアプリケーションが作れてしまうのです。
CouchAppの導入
それでは、CouchAppを導入してみましょう。筆者の環境ではDebian(lenny)を想定しています。以下のコマンドで、CouchAppを導入してみましょう。CouchDBはすでに導入済みの環境を想定しています(CouchDBの自体導入については、第1回「“動物図鑑”で知るCouchDBの特徴」を参照してください)。
CouchAppはPythonで作られています。また、導入もPythonのeasy_installを使用すると簡単ですので、環境にPythonが入っていない場合には、事前に導入しておいてください。今回は、easy_installを利用します。
まず、setup.pyをダウンロードします。そして、eazy_installをアップデートしましょう。最後に、couchappをインストールします。
$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py -U setuptools
$ sudo easy_install couchapp
以上で、CouchAppのインストールは完了です。例えば、プロジェクトを作成するには以下のコマンドを入力してみてください。testというプロジェクトが作成されます。
$couchapp generate test
testディレクトリ配下に、以下のディレクトリ/ファイルが作成されます。
shase@labdeb01:~/test$ ls -la
合計 44
drwxr-xr-x 8 shase shase 4096 2009-12-21 00:06 .
drwxr-xr-x 25 shase shase 4096 2009-12-21 00:26 ..
-rw-r--r-- 1 shase shase 2 2009-12-21 00:06 .couchapprc
drwxr-xr-x 3 shase shase 4096 2009-12-21 00:06 _attachments
-rw-r--r-- 1 shase shase 12 2009-12-21 00:06 _id
-rw-r--r-- 1 shase shase 70 2009-12-20 23:33 couchapp.json
drwxr-xr-x 2 shase shase 4096 2009-12-21 00:06 lists
drwxr-xr-x 2 shase shase 4096 2009-12-21 00:06 shows
drwxr-xr-x 2 shase shase 4096 2009-12-21 00:06 updates
drwxr-xr-x 3 shase shase 4096 2009-12-21 00:06 vendor
drwxr-xr-x 2 shase shase 4096 2009-12-21 00:06 views
第2回で、CouchDBのAPIである「lists」「shows」「views」について解説していますので参照してみてください。これらのディレクトリには、そのAPI用のコードを置いておくとよいでしょう。「_attachments」には添付ファイルを置くことができます。「vender」配下には、CouchAppのJavaScriptライブラリ(テンプレート)が格納されています。
| 1/3 |
| Index | |
| Officeユーザーにこそ? CouchDBでお手軽アプリ開発 | |
| Page 1 CouchDBを使った開発は、いままでとどう違うの? CouchAppを使った開発 CouchAppの導入 |
|
| Page 2 CouchAppのコマンドラインツールの使い方 CouchAppでHello World! そのほかの使い方 取りあえずはじめてみる? |
|
| Page 3 Windowsでもリラックス! その可能性とは CouchDBをJScriptから操作してみよう JScriptとは? Windows版でCouchDBの操作 Windows版CouchDBをインストール Windows版CouchAppをインストール |
|
| ゆったリラックス! CouchDBがあるところ |
ホワイトペーパー(TechTargetジャパン)
- 診断ツールでデータベースの健全性を保つ (2010/3/5)
DBをセキュアに保つには、日々のチェックが重要。診断ツールを運用に組み込むことが、情報漏えい対策の第一歩です - トムが説く、エンジニアがしてはならないこと (2010/3/2)
Oracleエンジンそのものをデザインする男、トム・カイト。カリスマエンジニアが説明する、陥りやすい「ぼくたちの失敗」とは - “スコット”といえばなんと答える? (2010/2/22)
ツーといえばカー、スコットといえばもちろん! そんな根っからのDB人間チェックや週末の勉強会など、2月もDB漬けでした - データモデリングは「できるところ」から始めよう (2010/2/15)
おびただしい数の業務フローで途方に暮れる前に「できるところ」を探そう。ゼロから始めるモデリング、その心得と技術をまとめます
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |






