1.はじめに
Webアプリケーション開発の現場で使用されている開発言語には、Java、Perl、PHP、最近であればRuby、Pythonなどがあります。この分野ではC言語も、CGIによるWebアプリケーション開発で旧来から用いられていますが、最近の開発者にはあまり馴染みがないかもしれません。当時の新技術であったJavaと比較して、あまりにも遅い結果が出ていたからとも言われています。
しかし、Webサーバの「Apache」、データベースの「PostgreSQL」「MySQL」、OSの「Linux」など、各所でオープンソースソフトウェア(OSS)の開発言語には、依然としてC言語が多く用いられています。このようにC言語は、Webアプリケーション開発の現場で使われるケースは減ったものの、現在でも重要な開発言語の一つです。
そこで今回は、Apache 2.2のmod_dbdで実装された「データベースのコネクションプール」を使用して、Webアプリケーションを実現するモジュールをC言語で作成してみます。
通常、ApacheのモジュールでWebアプリケーションを作成することはほぼありませんが、Apacheモジュールの開発プロセスを理解するのに、具体的でよいサンプルかと考えます。また最後に、Javaで作成した同じ処理を行うWebアプリケーションと、処理速度を比較してみようと思います。
Apacheモジュールの作成は、大まかに次のステップで行います。
apxs
コマンドによる雛形の作成- テンプレートエンジン
ClearSilver
の導入 - mod_dbdの導入
2.対象読者
- ApacheのModuleを作りたい人
- C言語を一通り理解している人
3.環境設定
実際の作業に入る前に開発環境の確認を行っておきましょう。
今回使用するソフトウェアと入手URLは以下のとおりです。本稿末尾で設定手順を説明していますので、未導入のものがあればそちらを参照してください。
ソフトウェア名 | 入手URL |
ファイル名 | |
CentOS 5 | http://ftp.riken.jp/Linux/centos/5/isos/i386/ |
CentOS-5.0-i386-bin-Xof6(Xは1~6) | |
PostgreSQL | http://www.postgresql.org/ftp/source/v8.2.5/ |
postgresql-8.2.5.tar.gz | |
Apache HTTP Server | http://httpd.apache.org/download.cgi |
httpd-2.2.6.tar.gz | |
ClearSilver | http://www.clearsilver.net/downloads/ |
clearsilver-0.10.5.tar.gz | |
Java SE Development Kit 6 | http://java.sun.com/javase/ja/6/download.html |
jdk-6u3-linux-i586-rpm.bin | |
Apache Tomcat | http://tomcat.apache.org/download-60.cgi |
apache-tomcat-6.0.14.tar.gz |