PR
Q 質問 既存のC/Sアプリケーションを,クライアント・プログラムのインストールが不要なWWWアプリケーションに簡単に移行しようと検討しています。どのような方法があるでしょうか

A 回答 ActiveX ドキュメント化が簡単ですが,WWW 環境によっては作り直しを検討する必要があります
図1●VBで作成したC/SアプリケーションをWWW環境に移行する方法の比較
移行の手間が少ない(1)ActiveXドキュメントは,ダウンロード時間が長く,クライアント環境の整備が欠かせない。移行の手間が多い(4)HTMLとCOMコンポーネントは,ダウンロード時間が短く,クライアント環境の整備も不要。ダウンロード時間やクライアント環境への依存度などによって,WWWアプリケーションの作り方は変わる
図2●DynamicHTMLとActiveXDLLの場合の実行時の動き
図3●HTMLとCOMコンポーネントの場合の実行時の動き
クライアントで発生するボタン・クリックなどのイベントは,サーバーに伝えられ,サーバーで業務ロジックを処理する。データベースへの接続は,サーバーにあるDBを介して接続する。クライアントにDBドライバは不要

  最新のVisual Basic(VB)は,WWW(World-Wide Web)アプリケーションの開発機能を強化しています。しかし,VBで作った既存のC/Sアプリケーションを,WWWアプリケーションに移行する機能はありません。

通常のWWWアプリケーションは,クライアント画面にHTML(HyperText Markup Language)を利用することでプログラムのインストールを不要にします。VBフォームを使って作ったVBのプログラムは,残念ながらHTMLに自動的に変換できません。米MicrosoftのActiveXドキュメント(WordやExcel,VBプログラムをInternet Explorer上で動作させる技術)を使えば,VBフォームを使ったプログラムをWWWブラウザから利用できますが,ダウンロードに時間がかかるなどの欠点があります(図1[拡大表示]の(1))。

 HTMLベースで作り直す場合でも,許されるダウンロード時間や,データベース(DB)・ドライバなどをクライアントに整備することが可能なのか,などの条件によって,WWWアプリケーションの作り方が異なり,移行の手間も違ってきます。

 VBでHTMLベースのWWWアプリケーションを作成する方法は3通りあります(図1[拡大表示]の(2),(3),(4))。図1[拡大表示]の(2)は,GUIをDynamicHTML(DHTML)で作り直し,VBで記述したロジックをダウンロード可能なDLLファイルにして利用する方法です。この場合,ロジック部分は既存のプログラムがかなりの割合で流用できます。この方法で作成したアプリケーションは,実行時にプログラムをダウンロードした後は,C/Sプログラムと同様の動きをします(図2[拡大表示])。VBフォームを使っていないため,ダウンロード時間はActiveXドキュメントよりも短いのですが,業務ロジックをダウンロードするため,WAN環境での利用は控えたほうが良いでしょう。また,クライアントにDBドライバを整備しておく必要もあります。

 一方,図1[拡大表示]の(3)と(4)は,クライアントにはHTMLのみをダウンロードし,ロジックはサーバーで稼働する方法です。IIS(Internet Information Server)の拡張機能であるASP(Active Server Pages)を使います。HTMLのみをダウンロードするため,ダウンロード時間は短くなります。また,DBへの接続はサーバーにあるDBドライバを使うため,クライントにDBドライバを設定するなどの環境整備も不要です(図3[拡大表示])。図1[拡大表示]の(3)と(4)は,実行時には同じ動きをしますが,開発方法は異なります。図1[拡大表示]の(3)は,ASPファイル(VBScriptなどのスクリプト言語で記述)にHTMLとサーバー・プログラムの呼び出しを記述し,IIS上で稼働させます。図1[拡大表示]の(4)はVB 6.0から可能になった方法です。面倒なASPファイルの記述が省略できます。

 図1[拡大表示]の(3)や(4)の形態は,インターネットでも利用できる汎用性の高いWWWアプリケーションです。しかしそのための移行の手間も少なくありません。このため,WWW/DB連携ソフトなどを使って再構築することも選択肢の一つです。

(本誌)