ホーム > Magic xpa > 旧Magicバージョン > 連載 Magic V10リッチクライアント

サイト内検索

連載 Magic V10リッチクライアント

第6回 リモートでリッチクライアントタスクを起動する

前回は、APGで作成したリッチクライアントタスクを、プログラムリポジトリからデバッグモードで起動するところまでを解説しました。今回は、プログラムリポジトリに登録されたリッチクライアントタスクを、インターネット上からリモートで起動する方法について解説します。

丹田 昌信 (プロフィール

Java Web Startの利用

「Java Web Start」については「第2回リッチクライアントとは何か(その2)」で解説しました。そして、この方式を用いてプログラムをコールするにはJNLPファイルを作成してこれを起動するというところまでを確認しました。

MagicリッチクライアントタスクもこのJava Web Start方式を用いてプログラムをコールします。JNLPファイルを利用すれば、プログラムをデスクトップ上からもWebブラウザ上からも同じ要領でコールすることができるようになります。

JNLPファイル作成のための準備

JNLPファイルはテキストエディタでも作成することができますが、Magic eDeveloper V10にはこれを自動で作成するためのウィザードが用意されていますので、これを利用すれば簡単に作成することができます。

はじめに、プログラムリポジトリに登録されたリッチクライアントタスクを、Magicアプリケーションの外部からでもコールできるようにするために、プログラムを公開プログラムとして指定します。それには、該当するリッチクライアントタスクの「外部」カラムにチェックを入れます(画面1)。

画面 1 リッチクライアントの外部カラムにチェック
画面 1 リッチクライアントの外部カラムにチェック

ウィザードの起動

ウィザードを起動するには、プルダウンメニューの「オプション」から「インタフェースビルダ」→「リッチクライアントDeployment(*1)」を選択します(画面2)。

(*1)日本語版のリリースではメニューの名称が変わる場合があります。

データソースの定義

プロジェクトをオープンしたら、簡単なデータソースを定義します。データリポジトリを開いて新しい行を作成し、データソース名を「県庁所在地」、データベースを「SQLServer」とします(画面2)。

画面 2 リッチクライアントDeploymentを選択
画面 2 リッチクライアントDeploymentを選択

ウィザードが起動すると画面は次のようになります(画面3)。

画面 3 ウィザードの起動
画面 3 ウィザードの起動

「次へ」ボタンを押すと、画面4が表示されます。

画面 4 リッチクライアントビルダーで新規作成
画面 4 リッチクライアントビルダーで新規作成

新しい構成でJNLPファイルを作成するには、「新規」ボタンを押します。

画面5のインストレーション設定では、最小限、アプリケーションタイトルとベンダー名を取り決めて入力します。ここで入力された名称は、Javaのアプリケーションキャッシュとして登録され、ショートカットの名称などとして利用されます。

画面 5 アプリケーションタイトルとベンダー名の入力
画面 5 アプリケーションタイトルとベンダー名の入力

「次へ」ボタンを押すと画面6に進みます。ここでは、Webサーバのサーバ名を指定します。開発環境を1台のパソコンで兼用している場合は、サーバ名に「localhost」もしくは名前解決しうる「コンピュータ名」などを入力します。正式運用のWebサーバを指定する場合は、URLをFQDN(Fully Qualified Domain Name)で記述します。

画面 6 Webサーバのアドレスを指定
画面 6 Webサーバのアドレスを指定

「次へ」ボタンを押すと、画面7の実行コマンドの登録に進みます。「アプリケーション名」はMagicのプロジェクト名とし、「スタートプログラム名」からズームして、JNLPファイルから初期起動したいプログラムを選択します。

画面 7 初期起動するプログラムを選択
画面 7 初期起動するプログラムを選択

「選択」ボタンを押すと、画面8のようになります。この設定が、従来のWebアプリケーションで言うところの「AppName=」、「PrgName=」のパラメータの設定となります。

画面 8 JNLP実行コマンドの設定
画面 8 JNLP実行コマンドの設定

「次へ」ボタンを押すと、画面9の「コンフィギュレーションパス」に進みます。ここでは、自動生成するJNLPファイルと、それに付随するHTMLファイルの保存先のパスを指定します。生成されるファイルは、コピーしてどこからでも実行することができますので、任意のパスでかまいません。

画面 9 JNLPファイルとHTMLファイルの指定
画面 9 JNLPファイルとHTMLファイルの指定

設定内容を確認して「完了」ボタンを押すと、画面10に進みます。

画面 10 ウィザードの完了
画面 10 ウィザードの完了

これで設定は完了です。メッセージを確認して「閉じる」ボタンを押すと、ウィザードが終了してMagicの開発画面に戻ります(画面11)。

画面 11 ウィザードの終了で開発画面に戻る
画面 11 ウィザードの終了で開発画面に戻る

生成ファイルの確認

では、生成されたJNLPファイルと付属のHTMLファイルの保存先を確認してみましょう。デフォルトでは、プロジェクトファイルの保存先と同じパスになっています(画面12)。

画面 12 生成された2つのファイルの確認
画面 12 生成された2つのファイルの確認

ここでは、JNLPファイルとそれに付随するHTMLファイルの2つのファイルが作成されたわけですが、リッチクライアントタスクを直接起動するためのファイルはJNLPファイルとなります。クライアント上にすでにJREがインストールされていて、Java Web Startの実行環境が整っていることが分かっている場合は、これを直接起動することができます。

これに対して、あらかじめクライアント上にJREがインストールされているかどうかを確認する必要があるような場合は、HTMLファイルのほうを利用します。これを起動すると、JREがインストールされていない場合には、サン・マイクロシステムズ社のWebサイトからJREを自動でダウンロード/インストールした後に、JNLPファイルをコールしてくれます。アプリケーションが社内向けのシステムであるか、あるいは社外向けのシステムであるかどうか等によって、両者の使い分けを行うことができるわけです。

アプリケーションサーバの起動

では早速、Magicアプリケーションサーバを立ち上げて、リッチクライアントタスクをJNLPファイルからコールする実験を行ってみましょう。

開発環境においてアプリケーションサーバの立ち上げをシミュレートするには、Magicの開発画面で「プロジェクトの実行」を選択します。

「プロジェクトの実行」は、プルダウンメニューの「デバッグ」から「プロジェクトの実行」を選択するか、あるいは「Ctrl+F7」キーを押します。またはツールバーの「プロジェクトの実行」ボタンを押してもかまいません。

プロジェクトを実行すると、新しいウィンドウが開いて、アプリケーションサーバの実行画面が表示されます(画面13)。

画面 13 プロジェクトの実行
画面 13 プロジェクトの実行

実際の運用環境上では、MagicアプリケーションサーバはWindowsサーバ等のバックグラウンド上で稼動することが多いので、このように目に見える形で運用されることは少ないと思います。

JNLPファイルからの実行

Magicアプリケーションサーバの立ち上げを確認したら、いよいよJNLPファイルの実行です。JNLPファイルは、JREがインストールされている環境ならどこからでも起動することができますので、ここでは画面12の状態から直接、「SampleApp.jnlp」ファイルをダブルクリックしてみます。

すると、Java Web StartはJNLPファイルに記述されたWebサーバを探しに行き、Magicのインターネットリクエスタを経由して、MRBからリッチクライアントタスクをコールします。Webサーバからタスクがコールされるまでの手順は、従来のWebアプリケーションの場合と同じ仕組みです。

アプリケーション起動中は画面14のような表示となります。初回の起動だけは多少、時間がかかるかもしれませんが、アプリケーションがクライアント側のJREのキャッシュに登録されれば、次回からはすばやく起動されるようになります。

画面 14 アプリケーションの起動
画面 14 アプリケーションの起動

ちなみに、初回の起動では画面15のようにJavaのセキュリティ確認ダイアログが表示されます。アプリケーションが信頼できる筋のものであれば、「はい」または「常に」のボタンを押して、セキュリティ警告を通過させます。

画面 15 Javaのセキュリティ警告
画面 15 Javaのセキュリティ警告

ショートカットの作成確認ダイアログが出たら、適当に「はい」または「いいえ」を選択します(画面16)。

画面 16 ショートカットの作成確認
画面 16 ショートカットの作成確認

以上を通過すると、デスクトップ上にはリッチクライアントタスクの実行ウィンドウが表示されます(画面17)。

画面 17 リッチクライアントタスク実行画面
画面 17 リッチクライアントタスク実行画面

このウィンドウは、前号においてプログラムリポジトリからデバッグモード(F7キー)でタスクを起動したときのウィンドウと同じものですが、今回はJNLPファイルからすべての手順を踏んで正式に実行されたものとなります。

したがって、JNLPファイル内に記述されたWebサーバのアドレス(画面6)さえ有効であれば、このファイルをどこにコピーしても、あるいはWebページ上に埋め込んでやっても、同じタスクを起動することができるようになります。

なお、画面16において「はい」と答えた場合は、デスクトップ上にこのアプリケーションを起動するためのショートカットが登録されます(画面18)。

画面 18 作成されたショートカット
画面 18 作成されたショートカット

HTMLファイルからの実行

では最後に、付属のHTMLファイルからの実行も確認しておきましょう。HTMLファイルから実行すれば、前述のごとくJREの存在確認を自動で行ってくれます。

セキュリティ確認が出た場合は、「ブロックされているコンテンツを許可」を選択します(画面19)。

画面 19 HTMLからの起動とセキュリティ確認
画面 19 HTMLからの起動とセキュリティ確認

アプリケーションが起動されると、画面20のように空白のWebブラウザとともにリッチクライアントタスクが表示されます。空白のWebページは、カスタマイズしてWebサイトに掲載することも可能です。

画面 20 HTMLからコールされた場合
画面 20 HTMLからコールされた場合

参考までに、JNLPファイルとHTMLファイルの中身を掲載しておきます。JNLPファイル内のコマンド記述書式は、従来のWebアプリケーションのパラメータの記述書式とほぼ同じです(画面21)。

画面 21 JNLPファイル内のコマンド
画面 21 JNLPファイル内のコマンド

HTMLファイル内ではJava Web Startの存在可否をチェックし、必要であればサン・マイクロシステムズ社からダウンロードしてインストールするという内容のコマンドが記述されています (画面22)。

画面 22 HTMLからJREを自動ダウンロード
画面 22 HTMLからJREを自動ダウンロード ド

次回は、サブフォームを利用したリッチクライアントタスクの作成をお送りします。

(以上、2008年1月15日号)