プログラム構成

Last Updated 1998/11/13

プログラムを修正したいと思う方のためにプログラムの構成について説明します。まずは おおざっばなプログラムの流れです。

最初に呼び出すppsdというクラスは単に jp.gr.java_conf.kbttshy.ppsd.PersonalProxyServerDaemonクラスを呼び出しているだけ です。ppsdというのは名前なしパッケージに所属し、頭一文字が大文字というJavaの名前 の規約に反していますが、これは長いクラス名の入力をさけ、普通のコマンドと同じ扱い をしたいために作成してあります。

PersonalProxyServerDaemonクラスは初期処理(ppsd.confファイルを読み込み、永続的な クラスをいくつか作成する)を実行した後、ServerSocketを作成しクライアントからの接 続を待つ永久ループに入ります。クライアントからの接続要求があると新しいスレッドを 作成してSessionクラスを動かします。マルチスレッドを使って、このクライアントサー バー型の処理をきれいに書ける所はJavaのいい所だと思います。

プログラム図

Sessionクラスがhttpのリクエストメッセージ一つに対応した処理を行います。Sessionク ラスはリクエストメッセージからRequestクラスを作成します。そのRequestクラスを引数 としてResponseクラスを作成します。Responseクラスはレスポンスメッセージを作成する クラスになります。そして、Responseクラスのoutメソッドで出力先を指定してクライア ントにレスポンスメッセージを戻します。ここまでがプログラムの大きな流れです。

さらにプログラムの細かい部分はResponseクラスから呼び出しているResponseOutクラス のサブクラスで実行しています。Responseクラスはリクエストメッセージやネットワーク の状況に従って、適切なResponseOutクラスを選択し実際の出力処理はこのクラスに任せ ます。

html文の解析処理はjp.gr.java_conf.kbttshy.netパッケージの下のHTMLクラスで実行し ています。この部分は独立した大きな処理と考えて別パッケージにしていますが、現時点 ではたいした解析はしていません。


e-mail: (em6t-kbt@asahi-net.or.jp)