産 技 研 におけるオープンシステム 利 用 戦 略 - 産 技 研 が 語 るシステム 開 発 の 苦 労 話 - 第 2 回 目 Webアプリケーションによる 業 務 システムの 構 築 情 報 電 子 部 制 御 情 報 系 情 報 通 信 分 野 石 島 悌 (いしじま だい) http://tri-osaka.jp/group/infoele/infocont/info/ishijima/ 2004-12-10 @ 研 修 室 4
2 本 日 の 概 要 オープンソースについて 定 義 産 技 研 における 利 用 実 態 ウェブアプリケーションについて 構 成 と 要 素 技 術 データベース 各 種 プログラム(スクリプト) 産 技 研 の 業 務 システムについて システム 概 略 使 われているプログラム( 抜 粋 ) システムのデモ
3 オープンソースについて オープンソースにおけるプレイヤー 利 用 者 配 布 者 開 発 者 三 者 のバランスをとったもの 自 由 に 使 いたい 制 限 なく 配 布 したい 広 く 使 って 欲 しい 自 由 に 改 変 したい 完 全 性 を 保 持 したい Open Source Initiativeによる Open Source Definition
OSDによる 定 義 定 義 の 概 要 (The Open Source Definition) http://opensource.jp/osd/osd-japanese.html 1. 自 由 な 再 頒 布 2.ソースコードによる 頒 布 3. 派 生 の 許 可 4. 作 者 によるソースコードの 完 全 性 を 認 める 5. 個 人 やグループによる 制 限 の 禁 止 6. 利 用 分 野 による 制 限 の 禁 止 7. 再 配 布 時 における 新 たなライセンス 追 加 の 禁 止 8. 特 定 製 品 でのみ 有 効 なライセンスの 禁 止 9. 他 のソフトウェアを 制 限 するライセンスの 禁 止 10. 特 定 のインターフェイスに 依 存 するライセンスの 禁 止 4
5 産 技 研 における 利 用 オープンソースやフリーウェアの 活 用 なしに 現 在 の 産 技 研 のシステムは 成 立 しえなかった 1996 年 にネットワーク 導 入 ワークステーション PC 基 本 的 に 商 用 ベース 足 りない 部 分 をオープンソースなどで 補 う 1998 年 ごろからインターネット 関 連 に オープンソース フリーウェアを 本 格 利 用 サーバのパソコン 化 Linuxや*BSDの 利 用 bind, sendmail, qmail, Postfix, Apache, PostgreSQL... 2004 年 6 月 : 業 務 システムにオープンソース
業 務 システムへの 導 入 背 景 オープンソースやフリーウェアの 安 定 性 信 頼 性 2000 年 ごろから データベースやウェブアプリ ケーションに 関 する 共 同 研 究 を 行 ってきた PostgreSQL 6.5.3, PHP3など 多 言 語 同 時 処 理 によるアジア 系 言 語 の 自 然 言 語 翻 訳 に 関 する 基 礎 研 究 文 部 科 学 省 科 学 研 究 費 補 助 金 ( 科 研 費 ) 基 盤 研 究 (B) 課 題 番 号 14310220 6
オープンソースなら 安 心? 商 用 ソフトとオープンソースの 上 手 な 使 い 分 け が 重 要 商 用 ソフトなら 安 心 か? 必 ずしもそうではない サポートが 役 に 立 たないことも 囲 い 込 みや 束 縛 (ベンダーロックイン) オープンソースなら 安 心 か? やはり 必 ずしもそうではない 責 任 の 所 在 自 分 でなんとかできる(あるいは 誰 かが 助 けてく れる) 状 況 なら 困 ったことは 産 技 研 へご 相 談 ください 7
8 ウェブアプリケーションとは Webのしくみを 利 用 し イントラネット/イン ターネット 上 で 提 供 されるアプリケーション サービス クライアント サーバシステムにおいて イン ターフェイスをHTML HTTPに 準 拠 させている クライアント 側 に 特 別 なソフト 不 要 クライアントへの 依 存 度 を 下 げることができる (うまく 作 ればクライアント 環 境 に 非 依 存 ) オンラインショッピングやグループウェアなど さまざまなシステムが 実 際 に 広 く 使 われている
ウェブアプリの 構 成 要 素 クライアント(ウェブブラウザ) サーバ ウェブサーバ ロジック 記 述 (CGIやスクリプト) データベース ブラウザ HTTP ウェブ サーバ ロジック SQL データ ベース ユーザインターフェイス 画 面 表 示 データ 入 力 表 示 データ 生 成 データ 加 工 9 データ 保 存 検 索
10 ウェブページいろいろ 静 的 なウェブページ いつ 見 ても 同 じ 内 容 が 表 示 されているページ 動 的 なウェブページ サーバ 側 で SSI CGI JavaやPHP(サーバサイド スクリプト) クライアント 側 で(クライアントサイド スクリプト) JavaScript JavaApplet 例 : 検 索 サイト オンラインショッピング など
11 静 的 なページのイメージ 動 作 概 念 図 ウェブ サーバ <HTML> <BODY> いらっしゃいませ </BODY> </HTML> HTMLドキュメント HTTPプロトコル ブラウザ いらっしゃいませ 画 面 表 示
サーバ 側 で 動 的 にページ 生 成 SSI (Server Side Include) HTMLにコメントとして 簡 単 なロジックを 埋 め 込 む 例 :<!--#echo var= LAST_MODIFIED --> ページの 最 終 更 新 日 表 示 など 簡 便 な 処 理 向 き CGI (Common Gateway Interface) 元 々はWebサーバから 外 部 プログラムを 呼 び 出 す 仕 組 みのこと Perlなどで 記 述 されたページなどを 生 成 する 仕 組 み アクセスカウンタ 簡 単 な 掲 示 板 など 産 技 研 インターネット 技 術 相 談 12
13 動 的 なページのイメージ(1) SSIの 動 作 概 念 図 ウェブ サーバ <HTML> <BODY> 最 終 更 新 日 は <!--#echo var= LAST_MODIFIED --> です </BODY> </HTML> 処 理 は サーバ で 行 う ブラウザ 最 終 更 新 日 は 2004-12-10です
14 動 的 なページのイメージ(2) CGIの 動 作 概 念 図 ウェブ サーバ プロセス 生 成 処 理 結 果 プログラムが 動 的 に ページを 生 成 CGIプログラム ブラウザ 検 索 結 果 は 以 下 の とおりです
15 サーバ 側 で 動 的 にページ 生 成 (2) サーバサイド スクリプト PHPやMicrosoftのASP (Active Server Pages) スクリプトの 実 行 をウェブサーバ 内 で 行 う (CGIはウェブサーバとは 別 プロセス) スクリプト 起 動 時 の 処 理 が 軽 い サーバプロセス 自 体 は 大 きくなる
16 動 的 なページのイメージ(3) サーバサイド スクリプトの 動 作 概 念 図 ウェブサーバ スクリプト 実 行 部 HTML 処 理 部 スクリプトを 解 釈 して 動 的 にページを 生 成 ブラウザ 実 行 結 果 は 以 下 の とおりです
クライアント 側 で 動 的 ページ JavaScript Javaとは 違 う HTMLにスクリプト(ちょっとしたプログラム)を 記 述 <SCRIPT LANGUAGE= JavaScript > ~ </SCRIPT> ボタンを 押 した 入 力 フォームにフォーカス があたった といったイベントに 応 じた 処 理 を 記 述 できる ブラウザ 側 で 処 理 が 行 われる プログラミングとブラウザの 機 能 を 統 合 している フォームを 使 ってサーバと 連 携 することもできる ブラウザ 間 の 互 換 性 が 低 い 17
動 的 なページのイメージ(4) JavaScriptの 動 作 概 念 図 ウェブ サーバ <HTML> <HEAD> <SCRIPT Language= JavaScript > 処 理 手 順 </SCRIPT> </HEAD> <BODY> 本 文 </BODY> </HTML> ブラウザが スクリプトを 解 釈 して 処 理 を 行 う JavaScript 対 応 ブラウザ 本 文 と 処 理 結 果 が 表 示 される 18
19 フォームとJavaScript フォーム ブラウザからWebサーバに ユーザが 入 力 したデー タを 送 るためのHTMLタグ 文 字 列 入 力 欄 ラジオボタン 送 信 ボタン など フォームの 状 態 は JavaScriptの 変 数 として アクセスできる サーバにデータを 送 信 する 前 の 事 前 チェック ユーザの 動 作 (イベント)を 検 知 して 処 理 を 行 うことができる 例 : 検 索 ボタン を 押 すと 検 索 ウィンドウが ポップアップする
20 ウィンドウ フレームとJavaScript JavaScriptを 使 うと サブウィンドウや 確 認 ダイアログなどを 表 示 できる 別 ウィンドウや 別 フレームに 書 かれた フォームのデータを 参 照 できる 隠 しフレームを 使 って 一 時 的 にデータを 保 存 ウィンドウ 呼 び 出 し 時 にサーバに アクセスできるので サーバ 側 (データベース)とも 連 携 できる
試 験 機 器 管 理 システムでは 産 技 研 情 報 システムのうち 依 頼 試 験 開 放 機 器 管 理 では クライアントはIEと 所 内 携 帯 電 話 (PHS) サーバには 一 応 サーバ 向 けPC Xeon, SCSI RAID-1, UPS,... サーバOSにはFreeBSD 4.x ウェブサーバはApache (1.3.x) ロジック 記 述 (サーバサイドスクリプト)には PHP (4.3.x) データベースにはPostgreSQL (7.2.x) 21
22 OSとウェブサーバ OS: FreeBSD Linuxとともに 広 く 使 われているPC-UNIX 特 にサーバ 向 けでよく 使 われる Yahoo! 某 大 手 プロバイダのレンタルサーバ 実 はOSはUNIX 系 ならなんでもよかった ウェブサーバ: Apache インターネットで 広 く 使 われているウェブサーバ シェアNo.1らしい
スクリプト(ロジック 記 述 ) プログラミングはPHP PHP: HyperText Processor スクリプトである(コンパイル 不 要 )- C 言 語 に 似 た 文 法 Perlに 似 た 機 能 if, for, while,... 豊 富 な 関 数, 正 規 表 現,.. Apacheの 組 み 込 みモジュールとして 動 作 する 各 種 データベースとの 連 携 ができる HTMLへの 埋 め 込 み 型 言 語 <?php ~?> の 間 にプログラムを 記 述 23 お 手 軽
24 埋 め 込 み 型 言 語 プログラムをHTMLの 中 に 記 述 できる プログラムの 中 にHTMLを 書 くPerlなどと 対 照 的 クライアントに 表 示 するイメージを 考 えながら プログラムを 作 成 できる PHP <HTML> <BODY> 変 数 $iの 値 は <?php print($i);?> です </BODY> </HTML> Perl #! /usr/bin/perl print( <HTML>\n<BODY>\n ); print(' 変 数 $iの'); printf( 値 は%sです\n, $i); print( </BODY>\n</HTML>\n );
25 データベース 連 携 PHPで 利 用 できるデータベース オープンソース 系 RDBMS PostgreSQL MySQL その 他 商 用 RDBMS Oracle MS SQL IBM DB2 その 他
26 PostgreSQLの 特 徴 ぽすぐれ ぽすとぐれす ぽすとぐれすきゅーえる と 読 む もちろんオープンソース UNIX 系 OSで 動 作 する 本 格 的 データベース 早 くから 日 本 語 対 応 国 際 化 対 応 ( 多 言 語 対 応 ) C, Perl, PHP, Java, Rubyなどの プログラミングインターフェイスを 装 備 ODBCドライバ 経 由 でMS Accessを フロントエンドにできる
27 データベースの 使 いこなし? あまり 凝 ったことはしていない ごくごく 基 本 的 なSQLしか 知 らないから SELECTで 情 報 を 検 索 してくる INSERTで 情 報 を 登 録 する UPDATEで 情 報 を 更 新 する DELETEで 情 報 を 削 除 する
28 要 素 技 術 の 使 い 分 け 永 続 的 なデータの 保 管 はデータベース (PostgreSQL) データベースと 直 接 連 携 した 処 理 の 記 述 は サーバサイド スクリプト (PHP) クライアント(ブラウザ) 側 で 完 結 する 処 理 や 使 い 勝 手 向 上 の 細 かな 処 理 はクライアントサイ ド スクリプト (JavaScript) 一 時 的 なデータの 保 管 はJavaScript
29 産 技 研 の 業 務 システム 来 所 受 付 顧 客 管 理 研 究 計 画 発 表 伺 い 職 員 録 依 頼 試 験 開 放 機 器 管 理 歳 入 歳 出 管 理 危 険 物 薬 品 管 理
30 産 技 研 の 業 務 システムを 例 に 依 頼 試 験 開 放 機 器 管 理 と 歳 入 管 理 をベースに システムの 内 部 を 説 明 業 務 の 流 れ 1. 依 頼 試 験 や 開 放 機 器 使 用 の 予 約 どのお 客 様 が 何 を いつ どれぐらい 担 当 職 員 は 誰 か 帳 票 の 発 行 2. 予 約 情 報 に 基 づいて 入 金 処 理 会 計 処 理 帳 票 発 行 3. 実 際 に 使 っていただく 4. 試 験 報 告 書 などの 処 理
1. 試 験 や 機 器 の 予 約 予 約 情 報 入 力 の 流 れ 予 約 入 力 メイン (PHP) 番 号 や 名 称 の 一 部 など 試 験 機 器 テーブル 番 号 名 称 単 価 き 試 験 機 器 検 索 (PHP) 試 験 機 器 検 索 検 索 確 定 入 力 画 面 表 示 使 用 者 の 認 証 利 用 者 情 報 入 力 試 験 機 器 情 報 入 力 入 力 完 了 31 料 金 計 算 利 用 日 件 数 検 索 確 定 番 号 や 氏 名 の 一 部 など 利 用 者 検 索 利 用 者 番 号 料 金 計 算 (JavaScript) 次 のページへ 利 用 者 検 索 (PHP) 利 用 者 テーブル
1. 試 験 や 機 器 の 予 約 ( 続 き) 情 報 登 録 処 理 の 流 れ 情 報 登 録 メイン (PHP) 登 録 画 面 表 示 入 力 情 報 検 証 利 用 情 報 登 録 誰 が いつ どれを 利 用 状 況 テーブル 整 理 番 号 シーケンス 整 理 番 号 発 行 料 金 情 報 登 録 歳 入 執 行 テーブル き 帳 票 表 示 入 力 完 了 32
33 2. 入 金 処 理 会 計 に 関 する 部 分 は 実 は 外 注 帳 票 出 力 に 関 する 部 分 も 外 注 誤 りの 許 されない 部 分 を 研 究 員 が 作 るのは リスクが 大 きすぎる(おおげさ) きちんとしたソフトメーカーに 入 念 に テストしてもらうため システム 自 体 はPostgreSQL+PHP+JavaScript
34 3. 実 際 に 使 っていただく 利 用 料 金 は 前 納 です 大 阪 府 立 産 業 開 発 研 究 所 及 び 大 阪 府 立 産 業 技 術 総 合 研 究 所 条 例 第 4 条 料 金 は 依 頼 試 験 施 設 設 備 使 用 を 行 う 前 に 支 払 っていただく 詳 しくは 産 技 研 総 務 課 のページを http://www.tri.pref.osaka.jp/group/soumu/siharai.htm お 支 払 いが 済 んだら 依 頼 試 験 や 開 放 機 器 の 利 用 を
4. 試 験 報 告 書 などの 処 理 試 験 報 告 書 作 成 手 順 報 告 書 雛 型 作 成 (PHP) 報 告 書 雛 型 画 面 使 用 者 の 認 証 誰 が いつ どれを き 利 用 状 況 テーブル 検 索 条 件 入 力 利 用 情 報 検 索 差 込 情 報 作 成 ダウンロード 35 CSV ファイル ワープロで 差 込 編 集
PHPスクリプトの 全 体 構 造 スクリプトの 構 造 は どれも 似 た 形 式 にした <HTML> <HEAD> <TITLE>ページタイトル</TITLE> <?php // PHPを 使 ったDBアクセスなど?> // 外 注 スクリプト 共 通 スクリプトの 指 定 <SCRIPT LANGUAGE= JavaScript SRC= xxx.js ></SCRIPT> <SCRIPT LANGUAGE= JavaScript > // イベント 定 義 </SCRIPT> </HEAD> <BODY> フォーム 記 述 PHPも 併 用 </BODY> <SCRIPT LANGUAGE= JavaScript > // ページ 初 期 化 処 理 </SCRIPT> </HTML> 36
入 力 画 面 例 37
38 実 際 のスクリプト 例 開 放 機 器 予 約 の 機 器 情 報 入 力 <TR WIDTH="100%"> <TD COLSPAN="2" ALIGN="CENTER" BGCOLOR="#80fff0"> 依 頼 試 験 機 器 情 報 <INPUT TYPE="hidden" NAME="kiki_search_mode" VALUE="<?php print($kiki_search_mode);?>"> </TD> </TR>
39 実 際 のスクリプトの 例 ( 続 き) <TR> <TD ALIGN="RIGHT" NOWRAP BGCOLOR="#80fff0"> 機 器 番 号 </TD> <TD ALIGN="LEFT" WIDTH="100%" BGCOLOR="#ffffff"> <INPUT TYPE="button" VALUE=" 検 索 " onclick="search_kiki_by_no(this.form);"> <INPUT TYPE="TEXT" NAME="kiki_no" SIZE="8" MAXLENGTH="6" VALUE="<?php printf("%s", $kiki_no);?>" STYLE="ime-mode: 'inactive';" onfocus="next_focus('kiki_nm');" onchange="next_focus('button_start_date'); search_kiki_by_no(this.form);" > <!-- Zenkaku SP --> <!-- Zenkaku SP --> <INPUT TYPE="BUTTON" VALUE=" 管 理 機 器 一 覧 " onclick="search_kiki_by_kanri(this.form);" > <!-- Zenkaku SP --> <!-- Zenkaku SP --> <INPUT TYPE="BUTTON" VALUE=" 機 器 情 報 クリア" onclick="clear_kiki(this.form);" > </TD> </TR>
40 検 索 画 面 を 呼 び 出 すJavaScript フォームから 呼 び 出 されるスクリプト // 機 器 検 索 ( 主 要 部 ) function search_kiki(f) { var search_page = "search_kiki.php"; var search_url = search_page + '?onclose=close_search_kiki' + '&mode=' + f.kiki_search_mode.value + '&kiki_no=' + f.kiki_no.value + '&kiki_nm=' + escape(f.kiki_nm.value) + '&shokuin_no=' + f.shokuin_no.value; var newwin = window.open(search_url, "search_kiki_no", winstyle()); newwin.focus(); } function search_kiki_by_no(f) { f.kiki_search_mode.value = 'kiki_no'; search_kiki(f); } function search_kiki_by_nm(f) { f.kiki_search_mode.value = 'kiki_nm'; search_kiki(f); }
41 検 索 画 面 のPHP 元 画 面 から 呼 び 出 される 検 索 画 面 のスクリプト <HTML> <HEAD> <META HTTP-EQUIV="content-type" CONTENT="text/html;charset=EUC-JP"> <TITLE> 依 頼 試 験 機 器 ( 開 放 設 備 機 器 )の 検 索 </TITLE> <?php // 中 略 if (strlen($kiki_no) > 0) { // デフォルトは 番 号 で $kiki_number = strtoupper($kiki_no); $sql = "select * from tm_iraishikenkikijoho ". "where kiki_no ~ '$kiki_number' ". "order by kiki_no ". ";"; } if (($mode == 'kiki_nm') && (strlen($kiki_nm) > 0)) { // 機 器 名 称 モードなら 名 称 で 検 索 $sql = "select * from tm_iraishikenkikijoho ". "where ( kikikanji_nm ~ '$kiki_nm' ) or ". " ( kikikana_nm ~ '$kiki_kana' ) ". "order by kikikana_nm ". ";"; }
試 験 機 器 管 理 のポイント 日 々 使 われるシステムである 対 外 的 なシステムである 外 注 部 分 との 協 調 運 用 データベースのテーブル 外 注 部 分 の 呼 び 出 し 帳 票 出 力 (PHP) 料 金 計 算 (JavaScript) 顧 客 管 理 職 員 録 との 連 動 テーブルのインポート SOAPによる 問 い 合 わせ 42
43 作 成 したプログラム ここまでに 説 明 したパーツなどを 組 み 合 わせて プログラムを 作 成 6サブシステム 開 放 機 器 ( 依 頼 試 験 機 器 ) 予 約 システム 依 頼 試 験 登 録 システム 施 設 予 約 システム 共 同 利 用 機 器 予 約 システム 技 術 研 修 生 登 録 システム 情 報 検 索 登 録 システム
44 所 内 携 帯 電 話 もクライアントに ブラウザ 内 蔵 のPHSからもアクセス 可 どこでも 仕 事 を 現 在 はシステムの 一 部 のみ クライアントで 凝 ったことはできない
45 外 注 したシステムについて 歳 入 管 理 システム 帳 票 出 力 試 験 機 器 管 理 の 情 報 から 受 付 票 などを 出 力 歳 入 執 行 試 験 機 器 利 用 の 料 金 を 精 算 する 歳 出 予 算 管 理 システム 書 籍 管 理 システム データ 移 行 ツール 旧 情 報 システム(Oracle)のデータをPostgreSQLへ
帳 票 出 力 試 験 機 器 の 利 用 情 報 を 紙 に 出 力 する <TABLE>タグを 駆 使 したHTML PDFではない デザインにはオーサリングツール(GoLive)? 帳 票 は ビジュアル が 大 切 レイアウト 作 成 後 に 必 要 な 情 報 をPHPで 埋 め 込 む 試 験 機 器 管 理 システムからは 受 付 番 号 を キーにして 呼 び 出 す 46
帳 票 の 例 47
プログラムの 量 ファイルの 数 依 頼 試 験 開 放 機 器 関 連 でおよそ250 外 注 部 分 でおよそ200 容 量 依 頼 試 験 開 放 機 器 関 連 でおよそ1.7Mバイト 外 注 部 分 でおよそ1.8Mバイト 48
49 動 かしてからは 2004 年 6 月 に 運 用 開 始 大 きなトラブルは 発 生 していない 小 さなトラブルはあった プログラムのミス 想 定 外 の 操 作 おおむね 好 評? 修 正 のリクエストは 多 かった 操 作 性 向 上 に 関 するリクエスト プログラム 作 成 者 の 知 らない 事 象 外 注 部 分 に 関 する 修 正 要 請
50 どうしてうまく 動 いたか システムやユーザの 規 模 が 大 きすぎない 旧 システムの 存 在 好 評 (?)なのは 前 よりは 使 いやすいから ユーザがオンライン 処 理 に 慣 れている 資 産 活 用 データベース 構 造 基 本 的 デザイン 開 発 者 もユーザだから システム 化 すべき 内 容 をある 程 度 知 っている
51 システム 稼 動 後 のサーバ 運 用 基 本 的 には 放 置 システム 管 理 の 自 動 化 データベースのバックアップ 1 日 に3 回 ファイルシステムのバックアップ その 他 自 動 化 できる 部 分 は 自 動 化 これまでのサーバ 運 用 での 経 験 プログラムの 修 正 追 加 は 随 時
52 これからの 課 題 現 在 のシステムは まだ 未 完 成 年 度 途 中 からの 日 々の 運 用 のみ 年 度 末 処 理 プログラムの 整 理 と 改 良 作 成 時 期 によって 使 っているワザが 違 う 後 になるほど 洗 練 されてくる プログラムの 公 開 に 向 けた 作 業 所 内 ネットワークの 整 備 に 連 動 IPv6 化 研 究 テーマのネタ
53 本 日 のまとめ ウェブアプリ 構 築 に 必 要 な 要 素 技 術 を 紹 介 した 動 的 なページ 作 成 サーバサイド クライアントサイド スクリプト データベース 産 技 研 情 報 システムでの 構 築 例 を 紹 介 した 試 験 機 器 管 理 の 流 れ 画 面 と 帳 票 スクリプトの 実 例 不 明 な 点 などあれば ご 相 談 ください
54 時 間 があればシステムのデモを ノートパソコン1 台 でシステムが 動 く Windows XP クライアント 環 境 FreeBSD on Virtual PC サーバ 環 境 実 はサーバに 要 求 されるスペックはさほど 高 く ない
55 参 考 文 献 石 井 達 夫 : 改 訂 3 版 PC UNIXユーザのための PostgreSQL 完 全 攻 略 ガイド,( 技 術 評 論 社, 2001),ISBN4-7741-1226-7.(シーラカン ス) 堀 田 倫 英, 石 井 達 夫, 廣 川 類 :PHP4 徹 底 攻 略 改 訂 版,(ソフトバンク,2002),ISBN4-7973-2097-4.(マンモス) David Flangan 著, 安 藤 進 訳 :JavaScriptプロ グラミング,(オライリー,1997),ISBN4-900900-36-2. (ジャワサイ)
56 参 考 文 献 (その2) 杜 甫 々:とほほのWWW 入 門, http://www2e.biglobe.ne.jp/~s-hasei/www.htm, http://tohoho.wakusei.ne.jp/www.htm 宮 坂 雅 輝 :JavaScript Handbook 3rd edition, (ソフトバンク,2001),ISBN4-7973-1819-8. 朝 井 淳 :SQLポケットリファレンス,( 技 術 評 論 社,1999),ISBN4-7741-0907-X.