LiveWire入門
ネティズム工房著
発行:プレンティスホール出版,1997.12
ISBN4-89471-020-X
定価:2,000円
はじめに
対象読者
WWW サーバアプリケーションを開発するプログラマを対象としています.従来,WWW サーバアプリケーションは C や Perl などによって CGI によるプログラムを書かなければなりませんでした.しかし,本書で取り上げる LiveWire は JavaScript をサーバで動作させるために拡張したものであるため,比較的プログラミングの初心者でも開発が可能です.
そこで,WWW サーバアプリケーションは書いてみたいが C や Perl は敷居が高いと開発を躊躇していたプログラミングの初心者でも理解できるように平易に解説します.もちろん,熟練したプログラマ,CGI によるプログラミングに限界を感じているプログラマが利用しても LiveWire は有益ですから,一読の価値はあるはずです.
概要
ホームページの開発者はなんらかの形で WWW サーバを利用しています.もっとも多い利用は HTML による利用ではないでしょうか.この延長線上に Java,JavaScript などがあります.Java,JavaScript を利用することによって,ホームページの開発者はクライアント上のプログラムが,開発できるようになりました.しかし,サーバ上のプログラムは,依然として C や Perl などをつかわなければならず躊躇しているのではないでしょうか.
しかし,Netscape の LiveWire を用いることによって,JavaScript をマスターしたプログラムは別の言語を覚えなくても,サーバ上のアプリケーションを開発できるようになります.なぜならば,LiveWire は JavaScript をサーバで動作するように拡張したものだからです.
そこで,本書は,WWW サーバアプリケーションは書いてみたいが C や Perl は敷居が高いと開発を躊躇していたプログラマのために,LiveWire を解説しています.
本書は,大きく五つのトピックを扱っています
■第 2 章「Netscape LiveWire とは」では,LiveWire の基礎として,LiveWire の特徴,LiveWire の構成要素であるサイトマネージャ,LiveWire コンパイラ,LiveWire Pro について,さらにインストレーションについても概説します.
■第 3 章「LiveWire オブジェクト」では,LiveWire で拡張された JavaScript のオブジェクト,request オブジェクト, client オブジェクト ,project オブジェクト,server オブジェクトについて解説します.
■第 4 章「アプリケーションの開発」では,サイトマネージャとアプリケーションマネージャの使い方を解説し,これを使って簡単なアプリケーションを開発します.
■第 5 章「クライアントサーバスクリプトの使い方」では,クライアントサーバアプリケーションを開発するために必要なビルトイン関数の使い方,クライアントとサーバ間の通信,サーバ上のファイルの操作,外部関数の呼び方について説明します.
■第 6 章「LiveWire Pro によるデータベースアプリケーション」では,LiveWire の上位バージョンである LiveWire Pro を使ってデータベースアプリケーションの開発方法を説明します.また,データベースを参照する際に必要となる,トランザクションの取り扱い,カーソルの使い方,エラーの取り扱いについても解説します.
目次とソースコード
第一章 LiveWireアプリケーションについて
第二章 Netscape LiveWire とは
第三章
LiveWireオブジェクト
第四章
アプリケーションの開発
第五章
クライアントサーバスクリプトの使い方
第六章
LiveWire Proによるデータベースアプリケーション
あとがき
-JavaScript の来し方行く末
本書では,これまで LiveWire を使ったサーバサイド JavaScript のプログラミング方法を解説してきましたが,最後に JavaScript という言語が今までどのように発展してきて,今後どういう展開を見せるか,という話題で締めくくりたいと思います.
JavaScript は当初,Web 上のコンテンツを操作する言語として開発されました.静的な HTML ファイルを表示するだけの機能しか持たなかった Web ブラウザは,これにより動的で対話的な性質を持つことが可能となりました.例えば HTML ファイルを動的に生成,更新できたり,ボタンやプルダウンメニューに対するユーザの操作に対応したイベント処理が可能になったり,ブラウザがセッションの状態情報を保存するのに使うクッキーを操作できたりと,「手軽に便利なことができる」言語という位置づけでした.また JavaScript は,クライアント側のブラウザ上で動作するためプラットフォームに依存しない,つまりブラウザさえ持っていればプログラミングできるというシンプルな環境を提供した点も特徴でした.
こういったことから,Web サーバに負担をかける CGI スクリプトの一部は JavaScript で置き換えられていくなど,JavaScript は Web の世界で必須のツールとして普及してきました.そして,こうした動きを反映して,Netscape 社は自社の JavaScript 言語をヨーロッパの標準化団体である ECMA に提出して,国際標準として JavaScript(ECMScript)を推進しています.また Adobe 社や Microsoft 社は JavaScript のライセンスを取得して自社の製品に組み込んでいます.
このように,JavaScript は確かに一般ユーザの手の届く Web ツールという位置づけの言語なのですが,その動作メカニズムまで目を移してみると,JavaScript にはより広範なビジョンが含まれていることが分かります.それは JavaScript がオブジェクト指向ベースの言語で,Web 上の各コンテンツをオブジェクトとして操作可能である点です.
<<詳しくは「JavaScript1.1プログラミング入門」(ローラ・リメイ,マイケル・モンク著,ネティズム工房訳,プレンティスホール出版)を参照してください.>>
例えば,ある HTML ドキュメントをブラウザにロードすると,裏では JavaScript の Window オブジェクトと Document オブジェクトがインスタンス化され,url や LastModified といったインスタンス変数が初期化されています.このとき複数のフレームでウィンドウが区切られていれば,複数の Window オブジェクトが親子関係(集約関係)を持ってインスタンス化されます.またドキュメント内に,他のドキュメントへのリンク(アンカー)や画像,アプレットが含まれていれば,それぞれオブジェクト link,image,applet がインスタンス化され,Document オブジェクトに集約されるという設計になっています.このように,Web サーバ上と HTTP のプロトコル上では単なるデータでしかない HTML ファイルが,ブラウザ側ではそれぞれオブジェクトとして表現,操作されています.
さて上述の通り,JavaScript はユニークな機能を持ちつつ幅広く利用されてきましたが,その普及に伴って JavaScript を Web サーバ側でも動作させたい局面がいくつか出始めました.
<<第 5 章「クライアントサーバスクリプトの使い方」を参照してください.>>
一つは,Web サーバ上のファイルを参照,操作したいという局面です.従来の JavaScript は完全にクライアントサイドのみでの動作だったため,JavaScript から Web サーバにアクセスすることはできませんでした.したがって,アクセスカウンタのような単純なアプリケーションや,フォーム入力から生じる Web サーバとのインタラクションを行うアプリケーションなどは JavaScript で実装できませんでしたが,LiveWire で拡張されたサーバサイド JavaScript を使えばこうした要件にも対応できるようになります.
<<第 6 章「LiveWire Pro によるデータベースアプリケーション」を参照してください.>>
二つめの局面は,JavaScript からデータベースへアクセスしたいという局面です.この要件に対してもサーバサイド JavaScript で対応が可能になりました.LiveWire が対応するデータベースは幅広く,また LiveWire サーバ間のやり取りを可能にしているため,多層(Multi-Tier)のクライアントサーバアプリケーションが開発可能となっています.またトランザクション処理機能も備えており,クライアントサイドの JavaScript がサーバ側にトランザクション処理を要求できるようにもなります.LiveWire 同様,ODBC や JDBC も一つのインタフェースで複数のデータベースへのアクセスを提供していますが,こうしたトランザクション処理機能は持っていません.そのため,LiveWire は ODBC と JDBC を拡張する技術であると捉えることもできるでしょう.
では今後の JavaScript の展開ですが,HTML のスタイルシートを JavaScript で操作できるようになる点が大きなインパクトを持つと考えています.HTML のスタイルシートとは,ワープロソフトや DTP ソフトのスタイルソート(テンプレート)と同等の機能を HTML に適用するもので,既存の HTML タグ(<H1> や <LI> など)とドキュメントの論理構造(見出しや本文など)に応じてフォントの種類やサイズ,マージン,行間といったスタイルを指定可能になっています.従来の JavaScript では,HTML 上のコンテンツのみが操作対象でしたが,Netscape Communicator 4.0 のリリースに伴って JavaScript はさらに拡張され(バージョン1.2),スタイルシートを JavaScript から操作できるようになりました.これによって,ドキュメントの見栄えを動的に切り替えることが可能になり,ユーザが好みのスタイルを選択可能になったり,何らかのイベントに応じてスタイルシートを変更したり拡張できるようになります.
この機能はユーザだけでなく,ドキュメントを作成する側にも大きな利益をもたらします.つまり,コアとなるコンテンツを作るのは一度だけで済むようになり,ドキュメントの見栄えはその配布時に自由に切り替えることができます.これはドキュメント管理の観点から見て,HTML と Web の大きな前進であると言えます.そして,この機能を LiveWire と併用することで,クライアントサーバ環境でネットワークベースの柔軟なアプリケーションを構築したり,効率の良いドキュメント管理が実現されるでしょう.
また現在 W3C(World Wide Web Consotium: http://www.w3.org/)では,DOM(Document Object Model: http://www.w3.org/MarkUp/DOM/)というモデルを仕様案として検討しており,スタイルシートに限定されないより広汎なドキュメント構造をスクリプトから操作可能とする仕様を策定しようとしています.したがって,XML(eXitensible Markup Language)の DTD(Document Type Definition)を JavaScript で操作可能となる日も近いでしょう.
最後に,本書が LiveWire の入門として,そして Web と JavaScript の進化をウォッチするためのナビゲータとして少しでもお役立てれたなら幸いです.
CSJ Banner Exchange