Webの世界ではデータ・ベースをHTMLとして表示することを「データ・バインド」と呼びます。
このデータ・バインドを処理するのが CGI というわけですが、適切な CGI を選択するためにWeb開発者は
苦労して暗中模索を繰り返してきました。
最初は本書でご紹介したような CGI で開発することが主流でしたが、Webの世界での CGI といえば
C言語 か Perl に限られていました。
C言語は開発という面ではポピュラーですが HTML を中心とする開発者にとってはかなり難しいものでした。
そのため UNIX でのスクリプト言語である Perl が普及しました。
Perl は直感的でやさしいと賞賛を持って受け入れられてきましたが、機能を拡大するにつれてスクリプト言語で
あるという性格から、パフォーマンスが問題視されるようになってきました。
それでも世界中でやはり最も普及している CGI言語といえば Perl です。
ただしデータ・バインドという点では Perl には改善の余地がまだまだあるでしょう。
次に巻き返しを図ったのが JSP & Servlet です。Java も初めは、すべてのプラット・フォームで
動作するという画期的な言語として Applet を中心として Webの世界でも普及を見ましたが、ダウンロードの
時間の長さという点で Applet を使っているサイトはマナー違反であるとまで酷評されるに至ってしまいました。
今では Applet を使っているサイトは影を潜めています。
しかし、JSP & Servlet は 実行速度 という点で注目を集めるようになりました。
Servlet はコンパイルが必要ですが、一旦、サーブレットの実行の器であるコンテナに入るとServlet はメモリ上に
留まり続けるというものです。
このServlet の入れ物であるコンテナが今では 有名となった IBM WebsphereApplication Server (WAS) や Jakarta-Tomcat です。IBM の世界では Websphere が有名ですが、世界中の Webサーバーで最も普及しているのはフリー・ウェアであるところの Tomcat です。
実は WebSphere もベースの起動部分では Tomcat が利用されています。
最近では System i においてもWeb開発は WebSphere が必須であり、JSP & Servlet でしか
Web開発ができないと誤解されているようですが、このガイドでご紹介したようにRPG-CGI でも
十分に開発できることがおわかり頂けたと思います。
さらに System i のユーザーであれば体験的に良くご存知のように、一旦ロードされたPGM は効率よくメモリ内に
留まり続けるという性格があり、これはJSP & Servlet に良く似ています。
それではWeb開発の将来動向はどのようになるのでしょうか?
最近では PHP も注目されてはいますが、前述の流れでご覧になったように
という流れを辿っています。
PHP は JSPと Servlet をひとつにしたような直感的で非常にわかりやすい
スクリプトですが、やはりビジネスの世界で大量のデータ・ベースにアクセスすることには向かないと考えられます。
それでは私たちは将来をどのように見据えればよいのでしょうか?注目したいのは「XML」です。
JSP & Servlet はこれまで RPGに慣れ親しんでいた開発者にとって社内のソフトウェア資産の有効利用という点でも採用するかどうかは一考の余地がありますがXML に関しては言語の種類を問わず注目する価値はありそうです。
System i の開発者にとって「XML」はとっつきにくいものではありません。
XML とは 「データ・ベース記述を含んでいるタグ形式のデータ表現」 であると言えます。
CSV などではデータに対してフィールド、つまり項目間は 「 , 」で区切られており、最初の1行目は
DB2/400 での欄見出し(COLHDG
) に相当するものですが、フィールドのタイプは記述されません。
これに対して XMLはフィールドのタイプや長さなどの記述も含まれます。
これは System i で良くご存知の 物理ファイルそのもの です。
XML も他のアーキテクチャーと同じように世に出てきたときはデータ互換という点で脚光を浴びましたが、
System i から見れば、これまでどおりの「ただのデータ・ベース」 にしか過ぎません。
WindowsやUNIX系では、DB2/400のようなアーキテクチャーが無かったために新鮮に映ったのでしょう。
System i 礼賛はこれくらいにして、XMLというと何か難しそうに聞こえますが臆する必要はありません。
XML を利用することの利点と重要性は次の点にあります。
HTML自体はデータから見れば単なるタグの組み合わせであり、どの部分がデータであるかを判別することは
できません。
しかし、HTMLインターフェースにXMLを埋め込むとXMLの部分がデータであることが明確に区別されます。
データを公開する場合、データ部分だけをXMLで記述して、それをHTMLに埋め込むようにすれば
インターフェースの部分はブラウザによって自動的にキャッシュされて、データ部分だけが更新されて
ダウンロードされるということになるため、Webサイトのパフォーマンスは飛躍的に向上することになります。
このことはパフォーマンスに頭を痛めていたWeb開発者にとっての朗報です。
しかもデータ部分だけは明確に区別され第三者による利用が可能となるわけです。
これまで、CGI やJSP & Servlet であってもHTML全体を応答で返すことに終始していましたが
WebデザイナーやHTMLサイドではデータ・バインドというとCSV や XML、データHTML をHTMLに埋め込むのであるという発想があります。
XMLの利用は決して苦肉の策でもなく自然な流れであるのです。
また企業間のデータ交換にもXMLが標準のものとして普及する傾向にあります。
加えて世界中の関連する公開されているXMLをバインドしてひとつのXMLとしてのリンクが容易であるため
世界のネットワークの検索にも適しています。
先にも述べましたように System i のデータ・ベースをXML化することは難しいことではありません。
System i に精通した技術者が XML を理解すれば、簡単すぎて面倒であると感じるくらいの作業となるだけでしょう。
Microsoft社も今後のデータ交換はXML が主流になるであろうと予測しています。
かの COMテクノロジーを基盤とする ActiveXを否定してでも XML の普及に力を入れようとしています。
(もっとも ActiveXのようなプロセス間通信と XMLは性格が異なっており、XMLにプロセス間通信を代行させるにはやや無理があると筆者は感じていますが)
いずれにせよ、Web開発を行うのであれば今後の方向として XML も視野に入れることは忘れないでください。
今後、XMLはWebの世界では、ごく普通のものとして普及することは間違いありません。