CGIの構成  --- 処理の本体 ----

CGIの処理と、全体的な構成については、既に述べましたが、実際に使用するCGIでは、
個々のウエブに必要な、ビジネスロジックを、その中にどう盛り込んで行くかが重要です。
ここでは、当社の供給するCGIについて、その具体的な構成を述べます。

すでに述べましたが、CGIは、クライアントからの要求(パラメータ)や、システムの状態(
具体的には、データベース等のデータ)に応じて、表示する画面や、その内容を変えたりする為に
必要です。

CGIの出力となる、HTMLドキュメントは、CGIとは別に、HTNLエディタで作成したものを用意し、
そのファイル名を使用して、HTML文書を読み出し、元の文書を(処理の結果で)変更する事により、
最終的なHTML文書を作成する事も、既に述べました。

CGIは、通常データベースをアクセスします。つまり、目的のデータベースに対する、追加、
修正、削除、読出しが、様々なバリエーションの元に行われます。そして、その結果を反映した
画面が次の画面として表示されます。

CGIから見ると、これらのどの処理を行う事を指令されたか、を知るのがコマンドというパラメータ
で、システムのコマンドをコマンドラインから入力する時にの様子と大差有りません。

当社の供給するCGIは、CGIのメイン部と、処理部から構成されており、処理部は、個々のコマンド
により固有の処理を行う関数で構成されます。
メイン部は、コマンドによらない、つまり全てのコマンドに共通な処理で、既に述べたCGIとしての
骨格の処理を行う部分です。

メイン部では、まず、共有ライブラリをロードし、共通な変数のポインタに値を設定します。
ログファイルとHTMLドキュメントを出力する一時ファイルをオープンします。
これらのファイルは、(ブラウザからの)どの要求かが識別できる名称が付与されます。
ウエブサーバから提供される情報も重要なもの(ログイン名等)は、読込んでおきます。
そして、CGIの為の設定ファイルを読み込みます。
設定ファイルには、HTMLドキュメントの元ネタとなるファイルが何処に有るか、とか、
アップロードされたファイルをどのディレクトリで受け取るかとか、データベースはどれか、とかの
情報が書き込まれています。
そして、ブラウザからのパラメータを全て取り込み、後の処理で簡単に取り出せる様に整列します。
パラメータのうち、コマンドを調べて、コマンド毎に定義された処理関数を呼び出します。
関数から戻ったら、HTMLドキュメントを一時ファイルから読み出して、標準出力に書き出して終了します。
この結果、処理部で作成したHTMLドキュメントが、ウエブサーバによってブラウザに送られます。

処理部では、例えば、追加処理であれば、追加処理を行い、結果となるドキュメントを一時ファイルに
書き出します。この部分は、アプリケーションに依存した処理となります。

ログファイルは、処理のログを残し、障害調査に役立てる為です。
このファイルは、一定期間は保存されますが、その期間を過ぎると削除されます。
削除の仕組みについては、関連プログラムのページを御覧下さい。