• 検索結果がありません。

醍 醐 元 正

N/A
N/A
Protected

Academic year: 2021

シェア "醍 醐 元 正"

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

WWW による「環日本海経済交流に関する文献目録」の公開

醍 醐 元 正

1 . はじめに

この数年インターネットが急速に脚光を浴び始め、ここしばらくは W W W シ ステムが爆発的なブームとなっている。そして現在では日本国内の 1 0 0 万を超 える利用者を想定してW W W の各所で広告や通信販売等の商用目的のホームペー ジが開設されている。しかし今各所に公開されているホームページを見ると、

それらは紙媒体のカタログを作るのと同様の意識で作られている様に思われて ならない。即ち写真等を多用したいわゆる見栄えを追求したページが多いので ある。この様なページはW W W システムの特徴を十分に生かしているとはいえ ないというのが筆者の意見である。前稿[ l ]でも述べた様に W W W の特質はそ のマルチメディア性にあるのではなく、その双方向性や即時性等にあると考え るべきである。特に双方向性を生かす為にはW W W で普通に使われているリン クだけでなく、 CGI (  common gateway i n t e r f a c e   )等を使って利用者からの 入力を計算機に取り込める事等が重要になる。

この様な考えから我が研究室ではCGI の応用法を学生に教育する事を考えて いたが、今回丁度日本海経済研究所の「環日本海経済交流に関する文献目録 J

を W W W で公開する要望が出て来たので、このデータベース公開を我が研究室 で行なって見る事にした。近頃ではCGI とかプログラムとかに関して殆ど何も 知らなくてもこの様なデータベースをW W W で公開出来るソフトも多数出回っ ているので、それらを利用するという手段もある。しかし今回は学生教育の一 環であり又予算も限られているのでかなりの部分を自前で制作する事にした。

本稿では始めにデータベースをW W W で公開する事の有利性を理解するのに 便利な 3 層モデルについて説明し、次にCGI とそれから Windows 環境に適した

‑ 6 1   (  2 6 9 )  ‑

(2)

Windows CGI とについて説明する。最後にそれらを使った「環日本海経済交 流についての文献目録」の検索システムについて説明し利用法を述べる。

2.  3 層モデルと W W W

ネットワークとワークステーション等の発達を背景として C/S (  C l i e n t   I  S e r v e r   )アーキテクチャによる情報システムが急速に普及して来た。しかしこ れまでの C/S システムはその能力や管理の容易さ等の色々な面で問題が出て来 ている。そこでこれらの問題に対して 3 層 C/S アーキテクチャのモデルが注目 され始めた。そこで以下では先ずこれまでの C/S アーキテクチャの問題点につ いて、次に 3 層モデルについて分析する。

いわゆる C/S モデルによるシステムといっても実際には幾つかのタイプに分 類される。

( 1 )   遠隔表示型:殆どの処理をサーバ側で、行い、クライアント側では表示機能 に徹する形態。メインフレームをデータベースサーバに使った場合にこの方 法が多い。

( 2 )   遠隔データ型:殆どの処理をクライアント側で行い、サーバ側はデータ蓄 積機能に徹する形態。パソコンと NetWare 等のパソコン LAN で C/S システム を構築した場合は殆どがこの形態である。

( 3 )   混合型:クライアント側に表示機能を、サーバ側にデータ蓄積機能を与え ておいて、業務機能はそれぞれの側にアプリケーションを置いて分担させる。

分担の方法等は個々の場合によって異なる。

これらの C/S モデルの分類は結局主要な処理をどこで、行っているかによってい るのである。クライアント側には表示機能、サーバ側にはデータ蓄積機能を置 くとして、検索等の業務機能をどちら側に置くかが問題となる。そしてその問 題となる業務機能を( 1 )ではサーバ側に、( 2 )ではクライアント側に、( 3 )ではサー

T とクライアントの両側に分散して置いている。

上の分類型にはそれぞれの型ごとに問題点が存在する。

(3)

( 1 )   遠隔表示型:業務機能がサーバ側に集中しているので、多数のクライアン トから呼び出しを受けると非常に大きな負荷がかかって応答時間が長くなる。

またデータベースアクセス、業務機能と表示制御等の殆どの機能がサーバ側 で行われるので、これらの機能がアプリケーションソフトウェアの中に整理 されないで組込まれている場合が多い。そうすると少しの仕様変更でもソフ トウェアを大きく変更しなければならなくなり、その移行が大変な作業とな る 。

( 2 )   遠隔データ型:この型では業務機能がクライアント側にある。多数のクラ イアントのそれぞれに業務用のソフトウェアが存在する事になる。そうする と業務の仕様を変更しようとすると全てのクライアントにインストールされ ているアプリケーションソフトウェアを再インストールしなければならなく なる。

( 3 )   混合型:この型ついては( 1 ) 、 ( 2 )の両方の型の欠点を受け継ぐ事になってし まう。サーバで、行われるであろう検索等は時間的に集中して要求が来るとサー バの応答時間を長くするであろうし、クライアントに分散しておかれている 業務機能に変更が生じるとやはり全てのクライアントのソフトウェアを再イ

ンストールしなければならない。

この分析から判る事は、結局システムは大きく表示機能・業務機能・データ蓄 積機能の三つの機能からなるという事である。それに対して C/S システムでは これら三つの機能をクライアントとサーバの二つのシステムに分散させて配置 する事になる。

この様に三つの機能を二つのシステムに分散配置するのは不自然であり、そ こでそれぞれの機能を別の層にわけで考える 3 層 C/S アーキテクチャモデルと いうモデルが考えられた[

2 l 0 

3 層 C/S モデルではシステムを以下の三つの層 に分割して考える。

( 1 )   プレゼンテーション層(表示層):マンマシンインターフェースを提供する。

( 2 )機能層:他の 2 層との接続や業務機能を提供する。

‑ 6 3   (  2 7 1 )一

(4)

( 3 )   データ層:既存システムとの通信による情報交換も含む透過性のあるデー タサーピスを提供する。

勿論この 3 層への分割は論理的なものであり、実際にハードウェアをこの様に 三つに分割して配置しなければならないという事ではない。そしてこの様にシ ステムを三つの層に明確に分離して考える事により、システムを再利用性の高 いモジ、ユールの集まりとして構成する事が出来る。ソフトウェアの仕様変更の 場合にも関係するモジ、ユールだけを作り直す事により比較的容易にシステムを 変更・拡張出来るであろう。

そしてこの三つの層を実際のハードウェアに対応させる、即ちクライアント を表示サーバとして表示層に、いわゆるサーバをデータ・サーバとしてデータ 層に特化させて、機能層の為に業務サーバとしてそれ専用のサーバを設けると 上記のC/S モデルの問題点を更に克服する事が出来る。この様にすると表示サー バには表示機能のみのソフトウェアがインストールされているので、業務機能 に変更があっても表示サーバ上のソフトは全く変更を要しない。そしてデータ・

サーノ T への処理の轄鞍という問題は業務サーノ T を複数個用意する事により回避 出来る。業務サーバ間で多数の処理を動的に再配置出来る様にしておけば良い のである。この場合データ・サーバは複数の業務サーバからデータの転送要求 を受けるであろうが、業務処理を行なうわけではないのでデータ・サーバへの 負荷はそれ程大きなものとはならない。

上で行なって来た 3 層C/S システムの分析をW W W システムと比べて見ると、

W W W では自然に 3 層C/S システムとなっている事が判る。普通に使っている

限り W W W サーバはHTML(  hyper t e x t  markup language )によってお互

いにリンクされたテキストと画像等のマルチメディアデータをW W W ブラウザ

の要求によって送り出すだけである。しかしW W W サーバは CGI[ a 

i

と呼ばれ

る重要な拡張機構を備えている。これはブラウザでの入力データをゲートウェ

イと呼ばれる外部プログラムへ渡して処理を依頼し、その結果をブラウザへ送

り返す機構である。この機構を利用すると W W W サーバでデータベース検索等

(5)

の色々なサービスを提供する事が出来る様になる。このW W W サーバで CGI を イ吏ってサーピスを提供している形態が丁度 3 層 C/S システムとなっているので ある。 W W W のブラウザは表示サーバであり、どの様なサービスに対しても変 更する必要はない。ゲートウェイは業務層に、データベースプログラムはデー タ層にあたる事になる。この二つのプログラムは同じハードウェアに載ってい ても良いが、 NetWare 等を使って別の計算機上に置く事も出来る。その様に すれば理想的な 3 層 C/S システムが実現する事になるのである。

3.  CGI と WindowsCGI 

さてこの様に柔軟なサービスを提供するのにCGI は大変重要な役割を果たし ている。そこでこの節では CGI とそれを Windows3  .  1 環 境 に 適 応 さ せ た Windows CGI [ 

4 1

について説明する。

先ず実際に CGI を利用するにはCGI プログラムと、それを W W W サーバにプ ログラムと認識させる事が必要となる。それはサーバからみた場合テキストや 画像等の入ったファイルと実行を目的としたファイルとの違いがなく、指定さ れたファイルを送出するのか実行するのか決められないからである。この区別 をするのはディレクトリである。即ち CGI のゲートウェイプログラムはそれを 置くディレクトリを決めておくという方法である。例えば富山大学経済学部の W W W サーバで、ある s i k i b u 、CGI で ゲートウェイを動かすつもりならばそのプロ グラムは/u s r / l o c a l /e t c / h t t p d /  c g i ‑ b i n という、また今回の検索システムの様 に Windowsh t t p d を使うならばそれは c :¥httpd¥cgi‑win というディレクト リかそのサブディレクトリに置かれていなければならないのである。

次にゲートウェイプログラムの入出力即ちゲートウェイがどの様にしてブラ ウザからの入力を受け取り、出力を表示するかである。これについてはu n i x の CGI と WindowsCGI とでは少し異なる。そこで以下では基本である u n i x CGI  と WindowsCGI について個別に説明する。

先ず、u n i xCGI の出力はいわゆる標準出力へ出力すれば良いのである。この

‑ 6 5   (  2 7 3)一

(6)

時 CGI では出力ファイル形式として普通のテキストと HTML ファイルのどちら かを選べる様になっている。それには出力の先頭に

テキストデータ: C o n t e n t ‑ t y p e :   t e x t / p l a i n   HTML  データ :  C o n t e n t ‑ t y p e :   t e x t / h t m l  

と出力してそれから l 行空けて実際に送出したいデータを出力すれば良いので ある。次に入力即ちどの様にしてプログラムにブラウザからの入力を渡すかで あるが、それには 3 種類の方法がある。一番簡単な方法はく ISINDEX >とい うタグを使うか、同じ事であるが keyword という文字列をプログラムに渡すの にリンクを張る URL の後ろに ? keyword をイ寸けるというものである。こうする と ISINDEX で文字入力欄から入力された文字列もしくは keyword という文字列 がプログラムへ引数として渡される。例えばく a h r e f = I  c g i ‑ b i n /  f i n g e r ?   d a i g o >と書いであれば f i n g e r というプログラムに引数として d a i g o という文 字列が渡されるのである。後二つの方法はどちらもく FORM >タグを利用す る。く FORM >ではその中にく INPUT >やく TEXTAREA >等のタグを書い てブラウザからの入力を取り込む事が出来る。そうして取り込んだデータをプ ログラムへ渡すには二つの方法がある。それぞれ< FORM >タグの中で METHOD = GET もしくは METHOD = POST と指定する。 GETMETHOD  では入力データは $QUERY̲STRING という名前の環境変数に代入される。

その名から判る様に環境変数は大きいデータを格納するのに適した場所ではな い。そこで POSTMETHOD では入力データはパイプを通して標準入力から入 力されてくる。この方法ではどんな大きさのデータでも扱う事が出来る。この 場合データの長さは $CONTENT ̲LENGTH という環境変数に設定されてい る 。 METHOD やプログラムを指定する方法の例を挙げれば、例えば

く FORMMETHOD = GET ACTION =/ CG  I‑BIN/SAMPLE …> 

と指定されていれば、この CGI では SAMPLE というプログラムが起動され、

それは環境変数からデータを読み込む様なプログラムであるという事が判るの

である

D

このデータの内容であるが、 FORM では色々な入力タグからデータ

(7)

を取り込める。これら複数のデータを区別する為に入力タグに NAME = n α mul と名前のパラメータを付ける。それぞれのタグから入力されたデータ はそのタグの名前を付けて n α mul=ualue という形で表される。 CGI プログラム にはそれら複数のデータの組が&でつなげられて一つの文字列として渡される のである。この様に&や=には特別な意味があるので、これらの文字が入力デー タの文字列中にある場合には別の文字列として送られなければならない。書換 のルールは%に続いてその文字コードの 16 進表現を書くというものである。

また漢字等も同じ様に 16 進表現で送られる。更に入力データの中の空白文字 は+に置き換えられる。この様な書換がある為にゲートウェイプログラムでは 書換られたデータを元に戻す作業が必要になるのである。

環境変数は大きなデータを扱うのにむいていないとはいえ、 u n i x で、は環境変 数に格納出来るデータの長さに原理上制限はない。しかしMS‑DOS では制限が あり、又格納領域を少しでも大きくしようとすればいわゆる C o n v e n t i o n a l memory が減ってしまうのである。またu n i x はマルチタスク OS であり、その結 果標準入出力はタスク聞のデータ転送を効率良く実行出来る手段であるが、

MS‑DOS やWindows3.l はシングルタスクであるので同じ標準入出力といって もそれは一時ファイルを使った非効率なものになってしまう。そこでこれらの 問題点を意識してWindows の上の W W W サーバの為にWindows CGI という新 しい仕様が作られた。 WindowsCGI ではサーバとゲートウェイとはファイル を介してデータ転送を行なう。受渡しされるファイルの名前は引数としてゲー トウェイプログラムに渡されるのである。受渡しされるファイルは常に 3個で あり、始めのファイルはプロファイルファイルでサーバの状況その他の情報が 入っている。そしてGETMETHOD の場合には実際の入力データもこのファ

イルの中に入っている。 2 番目のファイルは入力ファイルで POST METHOD  の時にはここに入力データがあるが、 GET METHOD の時には中身のない長 さ O のファイルである。 3 番目のファイルは出力ファイルでゲートウェイには 名前だけが渡される。ゲートウェイは渡された名前のファイルを作成し、そこ

‑ 6 7   (  2 7 5 )一

(8)

に出力データを出力して行くのである。これらのファイルの名前は引数の文字 列に空白文字で区切られて順に格納され、ゲートウェイに渡されるのであるが、

もしく ISINDEX >や URL に ? keyword をイ寸ける方法でデータ入力があったのな らそのデータはファイルの中に入れられるのではなく、直接 4 番目の引数とし て渡される事になる。これらの入出力データの内容は CGI の場合と全く同じに なる。

4 . 「環日本海経済交流に関する文献目録 J 検索システム

実際に検索システムを構築するにはそれを構築する OS とデータベースを選 定しなければならない。筆者は色々な条件から結局 Windows 3 .  1 と Paradox

を選択した。 OS には u n i x 系 、 Windows 系と Mac 系が存在するが Mac 系につい ては筆者はそれほど知らないしまたプログラム開発にも向いていない。 u n i x 系 はプログラム開発には最適で、あるが、利用しやすくかっ安価なデータベースプ ログラムが存在しない。 Windows にも 3.1 、 9 5 と NT の 3 種類のものが存在す るが、この中ではその安定性から WindowsNT がサーバとしては最適であろ う。しかし開発開始の時点で無料の W W W サーバが存在するのを筆者が知って いるのは Windows3 .  1 だけであった。そういっ理由から OS は Windows3 .  1  とした。この無料の W W W サーバというのは Windows h t t p d と呼ばれるサー バであり、実際現在のシステムで利用しているのもこのサーバである。

次にデータベースプログラムとゲートウェイの開発言語が問題になるが、最 も手軽な選択は M i c r o s o f tACCESS と V i s u a lB a s i c で、あろう。しかしうちの演 習の学生には Vi s u c a l   B a s i c   はあまりに簡単すぎ、最低でも C 言語程度は習得し てもらいたいという考えから B o r l a n d の Paradox と C 言語を利用する事にした。

B o r l a n d  C では別売りではあるが Paradox データベースを直接操作出来るライ

ブラリ[

5

]が存在するからである。ただこの選択をすると一つ問題が出て来る

事が判った。それはこのシステムで使用した Windowsh t t p d と B o r l a n dC の相

性の問題である。 Windows h t t p d は V i s u a l B a s i c で、開発されている様で、

(9)

B a s i c で、ゲートウェイを作ると問題なく動く、即ちゲートウェイが出力ファイ ルを作って実行を終了すると、サーバは終了を感知して出力ファイルをブラウ ザに転送するのである。所が B o r l a n dC でイ乍ったゲートウェイでは何故かサー バはゲートウェイの終了を感知出来ず、いつまで経っても終了を待ち続けデー タ転送を行なわないのである。色々試して見た結果、今回は Vi s u c a l   B a s i c で 、 サーバからのデータを受け、サブルーチンとしてCのプログラムを呼ぶという 形式を取る事にした。

このシステムの利用法は極めて簡単で、検索システムのページに入ると著者、

書名、発行所、発行年の四つの欄があるので検索したい項目に必要なデータを 入れて検索ボタンを押せば良いのである。そうすれば入力したデータの AND 条件に合致したデータ概要の一覧が表示される。そのデータの中で詳細を表示

させたい項の先頭をクリックすればそのデータについてデータベースに入力さ れている総ての情報が表示される様になっている。

5 . 終わりに

これで、我が研究室では CGI を使つてのデータベース検索プログラム開発の環 境が整った。今後はもっと複雑な検索プログラムやもう少し規模の大きなシス テム等も開発出来る様になると思われる。ただ今回の開発は Windows3 .  1 を イ吏っており、もう一つ Windowsh t t p d は Mac と相性が悪いという問題もある 事が判った。即ち今のままでは Mac からこの検索システムは利用出来ないので ある。その為出来るだけ早く WindowsNT とその上の W W W サーバにシステ ムを移行しなければならないと思っている。そしてその様な移行に際しでも 3 層システムの考察から判る様に、ブラウザ側ではどんな変更も一切必要がない

という利点カ宝あるのである。

‑ 6 9   (  2 7 7 )ー

(10)

参考文献

[  1  J 醍醐元正:「インターネットによる通信販売の現状と課題 J

w

富大経済論集』第 41 巻第 3 号,富山大学経済学部, 1 9 9 5p p . 2 3 1 ‑ 2 4 6  

[ 2 ]高田信一、畑恵介、山本修一郎:「 3 層クライアント/サーバアーキテクチャに適応したシ ステム設計手法の提案」『情報処理学会研究報告』 V o l . 9 5 , No.96 ,情報処理学会, 1 9 9 5 p p . 1 9 ‑ 2 8  

[ 3 ]石田晴,後藤滋樹編: 『インターネットの使い方

j

b i t  6 月号別冊,共立出版, 1 9 9 5 [  4]Robert B .   Denny: h t t p : / / h o m e . c i t y . n e t / w i n ‑ h t t p d /  

[ 5 ] B o r l a n d :『 BorlandDatabase Engine f o r  Windows ユーザーズガイド』 B o r l a n d ,

1 9 9 5  

参照

関連したドキュメント

KURA 内にない場合は、 KAKEN: 科学研究費補助金データベース を著者名検索して表示する。 KURA では参照先を KURA と

市場を拡大していくことを求めているはずであ るので、1だけではなく、2、3、4の戦略も

2 つ目の研究目的は、 SGRB の残光のスペクトル解析によってガス – ダスト比を調査し、 LGRB や典型 的な環境との比較検証を行うことで、

磁束密度はおおよそ±0.5Tで変化し,この時,正負  

それは,教育工学センターはこれで打切りで ございますけれども,名前を代えて,「○○開

実際, クラス C の多様体については, ここでは 詳細には述べないが, 代数 reduction をはじめ類似のいくつかの方法を 組み合わせてその構造を組織的に研究することができる

この chart の surface braid の closure が 2-twist spun terfoil と呼ばれている 2-knot に ambient isotopic で ある.4個の white vertex をもつ minimal chart

荒天の際に係留する場合は、1つのビットに 2 本(可能であれば 3