愛媛大学工学部等技術部活動報告集 Vol.11(2011)

技術研究会登録受付 Web サーバについて
電気電子・情報系技術班 宮田 晃
1. はじめに
現在，各種学会や研究会の参加登録は，Web を用いて行われることがほとんどである．参加者はインターネット接続環境さえあれば 24 時間いつでも登録することかできるし，研究会の主催者側も，電話や郵送での登録受付に比べて大幅に人員と時間の節約が可能である．
平成 25 年 3 月に，本学でも全国規模の技術研究会が開催されるにあたり，もはや参加登録受付用の Webシステムにつき種々検討しておくべき時期にきている．本稿では，登録受付 Web サーバにつき，現時点で計画中のハードウェアやソフトウェアの概要，および運用上の問題点につき述べる．なお本稿で掲載した Web
フォームやプログラムリスト等は製作途中のものであり，今後変更の可能性がある．

2. 登録受付 Web サーバの概要
2.1 ハードウェア
以下に記す 2 台の PC を，メインとサブ（バックアップ）用に準備した．
【メイン】CPU: Pentium4 2.26GHz, メモリ: 1GB, HDD: 150GB【サブ】CPU: Cerelon 2GHz, メモリ: 256MB, HDD: 40GB
このスペック，特にサブ機は現在の標準からみると少々非力で，Windows7 の実行に必要なシステム用件を満たさないが，Linux によるバックアップマシンとしては充分に機能する．

2.2 ソフトウェア
ここでは登録受付 Web サーバに用いる予定のソフトウェアについて述べる．

2.2.1 オペレーティングシステム (OS)OS は今回，日本語処理環境の充実している‘Vine Linux’の現時点での最新版（バージョン 6）を準備したが，技術研究会の頃までにはバージョンアップが行われるはずであり，常に最新のバージョンを用意するか，安定動作を優先して現在の環境を継続するかは，今後の検討事項である．

2.2.2 http サーバ
http サーバは，多くの UNIX 系 OS にプリインストールされ，インターネット上でおよそ半分のシェアを占めている‘Apache’の最新バージョンを使用する．

2.2.3 CGI 用ソフトウェア
CGI 用プログラミング言語としては，CGI としての実績も多く，有用なライブラリやモジュールも多数供給されている‘Perl’を用いる計画である．なお Perl のバージョンとしては，あまり最新版にこだわる必要はなく，むしろバグ修正による安定性やライブラリ等の後方互換性を重視し，ある程度「枯れた」バージョンを利用したほうがよいと考えられる．

3. 登録受付 Web ページについて
3.1 登録の流れ
登録受付 Web ページのおおまかな処理の流れを，図－１に示す．
入力フォームは参加登録用と原稿アップロード用の二種からなり，それぞれフォームに入力されたデータは，必須入力項目等のチェックの後サーバのディスクスペースに保存される．また，入力内容を記した登録受付メールを，登録者に宛てて送信する．

入力フォーム
登録データ

登録処理CGI

HD

原稿

原稿アップロード
CGI
登録受付メール

図－１ 登録受付 Web ページの処理の流れ

3.2 参加登録 Web フォーム
参加登録 Web フォームを図－２に示す．

図－２ 参加登録 Web フォーム

本フォームでは，必須入力項目やメールアドレスのチェック等を行い，不備がある場合はエラーメッセー
ジを表示し，再入力を促す．エラーチェックを通過すると，入力内容の確認画面を表示し，ここで「登録」ボタンが押下されると，入力内容をディスクに保存し，登録者のメールアドレス宛に確認メールを送信する．
図－３に，確認メールの文例を示す．その際，同図下線部のように「登録番号」を付加する．これは，後述の原稿アップロードの際に本人確認情報として利用する．
************************************************
総合技術研究会 登録受付メール（このメールは受付サーバより自動送信されています）
以下の内容で登録を受付いたしました．
************************************************
登録番号：0003
受付日時：2011/8/26 11:06:01
氏名：宮田 晃
よみがな：みやた あきら
メールアドレス：miyata@tec.ehime-u.ac.jp（中略）
本メールに記載の登録番号は，報告集原稿やポスター原稿の投稿の際に必要となりますので，忘れずに控えをおとりください．
（以下略）
図－３ 参加登録の確認メール本文

3.3 原稿アップロード Web フォーム
報告集原稿アップロード用 Web フォームを図－４に示す．

図－４ 原稿アップロード用 Web フォーム
本フォームでは登録者の原稿アップロードを受け付ける．その際，確認メールで提示した登録番号とその番号に紐付けされたメールアドレスの一致をもって本人確認とし，アップロードファイルの MIME タイプを取得することにより，適切なファイルフォーマットで作成されていることを確認する．

3.4 CGI 運用上の注意点（文字化け）
html フォームと CGI を用いて日本語情報をやり取りする際に問題となるのが，文字化けである．パソコンやインターネット上で日本語文字を表す文字コード体系が複数あるため，登録者側で使用する文字コードとサーバ側で想定する文字コードが異なった場合，文字化けが発生する．
基本的には，入力フォームの html ソース内で<META>タグの content 属性を設定することにより，ここで指定した文字コードでデータを取得することが可能である．文字コードを EUC に指定する場合の html ソースの例を，図－５に示す．同図下線部が文字コード指定部である．
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=euc-jp"><TITLE>kcode test</TITLE></HEAD><BODY>：
図－５ 文字コードを指定する html ソース
但し，登録者の Web ブラウザのエンコード指定が「自動選択」以外に設定されている場合，上記の<META>
タグによる指定は無視され，ブラウザで指定した文字コードが採用される．従って，登録者から実際に送られてくる文字コードは事前に予測することができない．
文字化けを防ぐためには文字コードの適切な変換が重要になるが，それを実現するための Perl ライブラリが‘jacode.pl’である．これは，以前より広く使用されていた‘jcode.pl’（歌代和正氏作）を稲葉準氏が拡張したもので，jcode.pl の上位互換性を有しており，プログラムの書換えを必要としない．さらに，いわゆる「半角カナ文字」や，世界共通の文字集合規格 Unicode の符号化方式の一つである UTF-8 をサポートしている，等の特徴がある．jacode.pl による文字コード変換プログラムの一例を図－６に示す．ここでは送信されてきた文字コードは自動判別され，EUC に変換される．
#!/usr/bin/perl
require 'cgi-lib.pl';
require 'jacode.pl'; # 日本語コード変換ライブラリ：
jcode::convert(¥$name, 'euc');
jcode::convert(¥$kana, 'euc');：
図－６ jacode.pl による文字コード変換例

4. おわりに今回，平成 25 年 3 月の総合技術研究会にむけ，登録受付用 Web サーバの試運転を開始した．今後，本番までの限られた日数の中で，フォームの仕様およびサーバのバックアップ方法や負荷等に関して多方面から種々検討を加え，より使いやすく，安定したサーバの運用をめざしたい．