HTTPサーバーとWeb開発

18. 簡単なデータバインドHTMLとは?

弊社次期製品「EnterpriseServer」の一部を例に、データバインドによるオートログインを説明しよう。
もちろん以下のソース自体はEnterpriseServerのものであるから、導入されていない環境での実行はできないがデータバインドのおおよそのアウトラインはおわかりいただけるのではないかと思う。

【 概略 】

同一階層の「profile」フォルダ内に配置された次のような記述内容の「userprofile.csv」をバインドして、自動的にWebベースでAS400にログインするものである。

User,Password
QSECOFR,QSECOFR

サンプルソース

【 解説 】

ヘッダ内のJavaScriptは2つのブロックで構成される。
そのひとつ『ReadUserProfile』は「ibmhttpsvr.html」が読み込まれた際にロードされ、userprofile.csvよりユーザー名とパスワードを取得する。
そしてリクエストがあった際(ここではリンク部「HTTPサーバーの開始/終了とHTTP構成」をクリックしたとき)に、もうひとつのJavaScript『Go』が実行され、リンク先URLとユーザー名、パスワードを送出する。なおユーザー名とパスワードが適正であるか否かはAS400のユーザープロフィールに依存するため、判断するルーチンはhtmlファイルに含まない。

ボディでは<OBJECT>〜</OBJECT>間に、ActiveXを利用して「userprofile.csv」ファイルを読み込む記述を設ける。
<OBJECT classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83" ID=userProfile HEGHT=0 WIDTH=0>は「Tubular Data Control」オブジェクトを呼び出すためのもので、<PARAM NAME="DataURL" VALUE="./profile/userprofile.csv">がデータソースの指定、<PARAM NAME="UseHeader" VALUE="True">がuserprofile.csvの先頭行をフィールド名として使用するための宣言である。
続く<a DATASRC=#Userprofile DATAFLD=User NAME="User"></A><a DATASRC=#Userprofile DATAFLD=Password NAME="Password"></A>には、それぞれuserprofile.csvのUser、Passwordのデータフィールドが表示される。

整理すると、ibmhttpsvr.htmlが読み込まれるとTubular Data Control(以下TDCと略)がuserprofile.csvを読み込む。TDCはそのCSVファイルを解析してUserとPasswordとのフィールドに分解し、その文字列を保持する。<a DATASRC=#Userprofile DATAFLD=User NAME="User"></A>以下でTDCはその文字列を<a>タグにテキストとして渡す、という仕組みである。さらに簡略化すればActiveXがデータベースを読み込み、それぞれの値は、タグひとつひとつが発行要求することで利用できる、と言えるだろう。

非常に大まかではあるが、おわかりいただけたであろうか。さらに詳しく説明したいところではあるが、我々としては次期製品「EnterpriseServer」をより多くの方に購入していただきたいわけで、この続きは「EnterpriseServer」の中身をご自身でご覧いただくと言うことでご容赦を…。