インタラクティブなWWW
WWWサーバーが立ち上がり、さまざまな情報がHTMLで有機的にリンクされるようになると、次に目指すのはデータベースなどとの連動でしょう。ユーザーからのインプットを受けてデータベースの内容を取り出すにはCGIというプログラムが必要になります。マッキントッシュ上のサーバーなら、これはAppleScriptを用いて実現が可能です。Applescriptなんて使ったことがない? ご心配なく。そこはインターネットの世界、ちょっとした操作だけで簡単なCGIができてしまうツールが、いろいろと提供されているのです。
CGIの働き
WWWではリンクによってHTMLファイルの情報を体系立てて提供するだけでなく、ユーザーからのリクエストを受けてデータベースを検索したりすることも可能です。これを実現するのがCGI(Common Gateway Interface)という仕組みです。
WWWサーバーはブラウザの入力フォームを通して送られてきた要求を、ある形に変換して指定のCGIプログラムに送ります。CGIはその内容を分析して、データベースなどのアプリケーションを操作し、そこから必要なデータを取り出してWWWサーバーに送り返します。サーバーはその結果をそっくりユーザーに送り届け、ブラウザが情報を表示するというわけです(図1)。データベースの検索やその結果をブラウザが正しく表示できる形に整えるのは全てCGIの役割。WWWサーバーは情報の橋渡しを行うだけで、内容には全く手を加えません。
CGIはサーバーの機種に応じていろいろな方法で実現されますが、マッキントッシュの場合、一般にはAppleEvent(AppleScript)を使っています。AppleScriptのプログラミングに習熟していれば、ファイルメーカーProなどのAppleScriptでコントロールできるアプリケーションを使って、自在なデータ処理ができるのです。
とはいえ、AppleScriptは誰でも簡単に使えるというわけではありません。プログラミングと聞いただけで後込みする人もいるでしょう。こういうときのために、インターネット上では様々なプログラミング不要のCGI用ツールが提供されています。一例として、今回はその中からファイルメーカーPro3.0を遠隔操作するツールWEB FMを紹介してみます。
WebSTARとWEB FM
CGIツールはどんなサーバーにも対応するものもあれば、処理効率を高めるために特定のサーバーの機能を利用するものもあります。今回紹介するWEB FMは、MacHTTPの製品版であるWebSTARの機能を前提とするものです(WebSTARはMacHTTPに比べて処理能力が飛躍的に高くなっただけでなく、CGIなどの外部プログラムとの連携機能も強化されています)。
WEB FMはインターネット上でデモ版をダウンロードすることができます。圧縮されたファイルを解凍すると「WEBFM」というフォルダが作成されるので、これをWebSTARのあるフォルダに移動してください。WEB FMのフォルダは図2のような構成になっており、この中でCGIとしての役割を果たすのはFM.acgiです(MacHTTPやWebSTARでは、CGI用のファイルは.acgiという拡張子を使うことになっています)。
WEB FMの設定は、このFM.acgiが利用するアプリケーション(ファイルメーカーPro)を登録する手続きです。最初にファイルメーカーProを起動しておいてから、FM.acgiをダブルクリックします。図3のようなダイアログボックスが現れるので、ファイルメーカーPro3.0を選択して、「開く」ボタンをクリックします。
次に、FM.acgiの「File」メニューから「Preferences...」を選択します。図4のダアイログボックスで「Choose Application」ボタンをクリックしてください。図5のダイアログボックスが現れ、起動中のアプリケーションが一覧表示されるので、もう一度ファイルメーカーPro3.0を選択します。これを保存すれば、WEB FMの設定は完了です。
WebSTARの設定
WEB FMを使うためには、WebSTAR側でも簡単な設定を行います。これによって、HTMLのフォーム中でデータベースファイルを指定するだけで、WEB FMが自動的に働くようになるのです。
WebSTARでの様々な設定は、WebSTAR Adminという専用のアプリケーションを使って行います。WEB FMを働かせるために必要なのは「ユーザー定義アクション」、「拡張子マッピング」の2つです。
まずWebSTAR本体を起動した上でWebSTAR Adminを立ちあげ、「設定」メニューから「アクション」を開きます。図6のダイアログで、アクションに使うアプリケーション(ここではFM.acgi)の所在地を指定します。これはWebSTARからの相対パスを用い、「:webfm:fm.acgi」のようにしてください。アクションの名前は次の拡張子マッピングで使うもので、自由に決めて構いませんが、この例では「FILEMAKER」としておきましょう。
次に「設定」メニューから「拡張子マッピング...」を開きます。図7のダイアログで、「アクション:」のポップアップメニューから先ほど設定した「FILEMAKER」を選択します。続いて「ファイル拡張子:」に「.FM」を、「ファイルタイプ:」に「APPL」を、「クリエータ:」に「*」を、「MIMEタイプ:」に「text/html」をそれぞれ入力してください。拡張子はファイルメーカーProで作るデータベースファイルを認識するためのもので、すでに自分たちで別の拡張子を使うルールを定めていれば、そちらを指定して構いません。
以上で設定が完了です。あとはWEB FMのルールに従ったフォームをHTMLで作成するだけで、どのマッキントッシュからもファイルメーカーProのデータベースを操作できるようになります。
ブラウザからのデータベース操作
では、実際にWEB FMを使ってファイルメーカーProのデータベースファイルを操作してみましょう。ブラウザからこうした命令を出すためには、HTMLの<form>タグを利用して入力フォームを作成します(ここではHTMLを詳しく説明する余裕はありませんので、必要に応じて参考書なども参照してください)。
WEB FMは、Search、Find、Add、Deleteなど13のデータベース命令をサポートしています。フォームからこれを指示するには
<form method="post" action="addressbook.fm$find">
のように、データベースの名前に続けて$記号で区切って命令を記述します(拡張子の.fmは、データベースファイル名では省略可能ですが、ACTIONの指定には必須です)。検索の条件は
<input name="address">
のように<input>で入力フィールドを用意します。このときNAMEにはファイルメーカーで定義したフィールドの名前を指定してください。複数のフィールドを記述すると、FIND命令は全ての条件を満たすものを検索します(AND検索)。
もうひとつ、ファイルメーカーのほうでも、ブラウザで表示するための情報を指定してあげなければなりません。このためには、「html」という名前を持つ計算フィールドを用意します。たとえば、検索結果としてnameとaddressというフィールドを表示するならば、計算式の定義を
"<li>名前:" & name & "<li>住所:" & address
といった具合に、HTMLタグを使って記述しておくわけです。ブラウザ上できちんと表示するために必要な前後のタグはFM.acgiが自動的に追加してくれます(これは図8のようにFM.acgiのPreferencesメニューで変更できます)。
ごく簡単な検索フォームのHTMLを図9に示しました。これをブラウザで見ると図10のようになり、「検索」ボタンを実行すると図11のような結果が返ってきます。同様にして、ACTIONにADDやDELETEを指定すると、レコードの追加や削除が可能です。
ちょっと複雑な感じがしますか? でも、一つひな形を作ってしまえばあとはそれを書き換えるだけですから、それほど難しいことはありません。WEB FMのパッケージには各命令の使用例が用意されているので、それらを試しながら少しずつ利用範囲を広げていくと良いでしょう。
いろいろな選択肢
このシリーズの最初に、イントラネットの長所は、オープンな技術なので選択肢が広い点にあると述べました。話を具体的にするために今回はサーバーとしてWebSTARを取り上げましたが、同様なことは他のサーバー製品でも可能です。たとえば今度、(株)メイトリックスからメールサーバーやWWWサーバーなどをひとまとめにしたSonicインターネットサーバーという製品が発売されますが(図12)、こうしたパッケージを使うといろいろなソフトを集めるよりも手早くイントラネットを構築できるかも知れません。より適切なアプリケーションが見つかったら、データに手を加えることなく新システムに移行できるのもイントラネットの強みです。このフットワークの軽さを生かし、取り掛かりやすい部分から始めて、少しずつ実用的な情報システムを構築していってはいかがでしょうか。
(MacFan 1997-04-01号)
ここで取り上げた製品は、1997年4月現在で下記のサイトで確認できます。
また、これ以外にWWWサーバーを運営するに当たって
- WEB FMと同じようにファイルメーカーを操作するツールTango for FileMakerの紹介
- マッキントッシュでのWWWサーバーを一括して紹介している田中求之氏のMaking your Mac a WWW Server
なども参考にしてください。