第2特集 PC UNIXによるWeb-DB連携システムの構築(前編)

第1章
ビギナーのための
PC UNIXとOracleによる実用DBシステムの構築

齋藤 剛

● はじめに
 Internetという言葉は,すっかりお茶の間にも定着してしまった感があります.しかし,ほんの5,6年前は,Internetと言えば,電子メールやInternetニュースを思い浮かべました.また,ブラウザなどはNCSA Mosaicが主流で,Netscape NavigatorやInternet Explorerは,影も形もありませんでした.
 筆者の通っていた地方の大学のInternetなどは,ようやく専用線で接続されたかどうかで,メール配信もすでに死語となった感もするUUCPで行っていました.あっという間に時代は様変わりしてしまったようです.
 Webの世界も普及期からビジネスへの実用段階へ来ているかと思いますし,テキスト中心の読み物の配布から,よりインタラクティブなメディアの配信の段階へ変化しているかと思われます.5,6年後,今を振り返ってみて,『ああ,こんな時代もあったな』と感慨にふけっているかもしれません.
 今後,XMLやCORBAといった技術を核にして,商取引や事務手続きなどもどんどんInternetに取り込まれて行くと思います.そういった中で,日本オラクルでもInternet対応データベース(DB)としてOracle8iを5月から出荷しています.
 本稿では,Linux OS上でApacheとOracleを連携させた,Internet対応アプリケーションの作成を紹介したいと思います.

OracleとApacheとの連携

 OracleデータベースとWebサーバー(ここではApache)とを連携させたい場合,どのような方法があるのでしょうか?
 なんらかの処理を行いたければ,Webサーバー上で利用できるモジュールやCGIの中からOracleへ接続する手段が提供されていれば,実現することは可能です.ただ,現実に利用する場合には,パフォーマンス,管理のしやすさ,作りやすさ,スケーラビリティ,信頼性,セキュリティといったことを考慮に入れる必要があります.
 Oracleとの連携という点で,ざっと思い付く方法だけ挙げてみると,以下のような方法があるかと思います.

@ C/C++とOCI/Pro*Cを利用したCGI
A Perl + DBI/DBDパッケージを利用したCGI
B PHP3
C Java(Servlet)
D Oracle Application Server
E WebDB

@ C/C++とOCI/Pro*Cを利用したCGI
 通常,CGIから利用する場合は,Perlなどのスクリプト言語を利用するか,CでCGIモジュールを作成して利用することになります.CGIをCで利用する場合は,OCIもしくは,Pro*Cを利用することによってOracleへアクセス可能です.CGIのWebサーバーへの出力は標準出力によって行うことができます.

A Perl + DBI/DBDパッケージを利用したCGI
 DBIおよびDBDは,Tim Bunce氏作成のPerl用モジュールです.DBIは,インターフェース部分であり,DBDが各DB用のドライバ部分になります.DBIとDBD:Oracleを利用することにより,Perlの中からOracle へのアクセスが可能になります(当然ながら,Net8/OCIは必須です).
 通常CGIベースでPerlを利用する場合は,1回1プロセスで動作するために,効率が良くありません.1回の呼び出しごとに,Perlプログラムのロード,スクリプトのロード,コンパイルといった作業が発生するからですが,mod_perlを利用することで,スクリプトをプロセス上に常駐させて利用することが可能になります.

B PHP3
 PHP3は,Active Server Pagesのように,HTML内にサーバー側で実行させるためのスクリプトを記述するための言語です.
 PHP3自体が,Oracleアクセス用の関数を持っているので,そのままOracleへ接続することができます.PHP3はスクリプトの形態で記述できるので,HTMLライクに柔軟なシステムの構築が可能です.

C Java(Servlet)
 ApacheとJavaを連携して利用する方法もあります.ServletやJava Server Pages(JSP)と言われるものです.
 Servletは,Webサーバー上で実行されるJavaプログラムのことです.Servlet作成ツールとして,JSDKがSunから提供されています.Apache上で,Servletを実行させる環境として,jservモジュールが配布されています.なお,JSDK付属のツールにservletrunnerがあるので,特にWebサーバーが無くても簡単なWebアプリケーションを作成することも可能です.
 JSPは,HTML内にJavaのコードを埋め込むことで,簡単に動的なページを作成することができる機構です.現在,Apache + jserv環境上で動くgnujspが配布されています.また,Oracle8iではDB内部で,ServletやJSPを動作させることが可能になります.

D Oracle Application Server
 大規模なWebアプリケーションを作成したい場合には,アプリケーションサーバーを利用する方法があります.OAS(Oracle Application Server)は,Java,Perl,PL/SQLといった言語で開発することができますし,CORBA(Common Object Request Broker Architecture)といった分散オブジェクトにも対応しています.さらに,JSP,Servletといったエンタープライズ向けのJava機能もサポートされています.
 また,ロードバランシングやスケーラビリティといった点を考慮して設計されています.さらに,Oracle社やサードパーティーなどからアドオンのカートリッジが提供されていますので,大規模システムや短期間の開発で大きな成果をもたらしたい,というようなケースに向いているかと思います.

E WebDB
 WebDBは,開発もメインテナンスもアプリケーションの実行もすべてWeb上で行うことができるというツールです(図1).簡単なレポートやグラフの作成なら,Web上のウィザードで作成することができますし,DBに格納され,自由に検索ができるホームページの作成も簡単に行うことができます.
 もちろん,Web経由でのDBのメインテナンスもできます.簡単にレポートを作成したい.ワークグループのイントラネットシステムといった用途に向いているかと思います.

<図1>開発もメンテナンスも実行も,Web上でできるWebDB
(a)WebDBの管理画面.ここからデータのブラウズ,スキーマオブジェクトの作成,DBの

管理,Webサイトの構築が可能
S2g1.jpg (45815 バイト)

以下略.


copyright 1999 齋藤 剛