| TOP>>OBAQ>>OBAQシェル | 概略 | ツアー | <OBAQ> | 構成定義 | アプリケーションサーバ | リファレンス | サイトマップ |
OBAQシェルとは何か?OBAQシェルとは「オブジェクト指向に基づく汎用の構成定義ファイルパーサ」です。 例えば、Apacheの構成定義ファイル(httpd.conf)を見てみましょう。 # サーバ全体に対する指定
ServerType standalone
ServerRoot /etc/httpd
LockFile /var/lock/httpd.lock
PidFile /var/run/httpd.pid
# ディレクトリに対する指定
<Directory /home/httpd/icons>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# VirtualHostに対する指定
<VirtualHost ip.address.of.host.some_domain.com>
ServerAdmin webmaster@host.some_domain.com
DocumentRoot /www/docs/host.some_domain.com
ServerName host.some_domain.com
ErrorLog logs/host.some_domain.com-error_log
CustomLog logs/host.some_domain.com-access_log common
<Directory /home/httpd/icons>
....
</Directory>
</VirtualHost>一般にapacheのように複雑なソフトでは、このように構成定義ファイルも複雑になります。 OBAQシェルは、このような複雑な構造を持つ構成定義ファイルを読んで、 プログラムの初期設定を行なう処理を記述するためのフレームワークです。 OBAQシェルでは「構成定義=モデルオブジェクトの生成」という考え方で、 次のようなプログラミングモデルを想定しています。
つまりOBAQシェルは、外界(処理対象)の「モノ」に対応する(シミュレーションする)オブジェクトの生成を行なうライブラリです。 これを利用することで、以下のようなメリットがあります。
もし、上記のhttpd.confをOBAQで記述するとしたら、以下のようになります。 # サーバ全体に対する指定
Server
type=standalone
root=/etc/httpd
lockfile=/var/lock/httpd.lock
pidFile=/var/run/httpd.pid
# ディレクトリに対する指定
Directory /home/httpd/icons
.set_ptions Indexes MultiViews
allowOverride=false
.set_order allow,deny
.allow from all
# VirtualHostに対する指定
VirtualHost ip.address.of.host.some_domain.com
admin=webmaster@host.some_domain.com
root=/www/docs/host.some_domain.com
serverName=host.some_domain.com
errorLog=logs/host.some_domain.com-error_log
customLog=logs/host.some_domain.com-access_log common
Directory /home/httpd/icons
....このテキストファイルをOBAQファイルに渡すだけで、 ServerとかDirctoryとかVirtualHostというオブジェクトが生成され、 それぞれ必要な属性が設定され、各オブジェクト間の関係が設定されます。 もちろん、Server, Directory, VirtualHost というクラスとそれが実際に動作するためのメソッドは記述する必要がありますが、 上記の構成ファイルからオブジェクトモデルを生成する処理はOBAQシェルが行ないます。 これによって、プログラマーは実際に処理に専念でき、ユーザは個別のフォーマットを学習する必要がなくなります。 また、両者にとって最も少い負担で機能を拡張することができます。 |