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

サイト内検索

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

第1回 リッチクライアントとは何か(その1)

皆さん、こんにちは。タンダコンピュータの丹田昌信です。本日より、このコーナーにてMagic V10リッチクライアントに関するコラムを執筆することになりました。これまでのMagic V8、V9の連載同様、末永くお付き合いくださいますよう、よろしくお願い申し上げます。

丹田 昌信 (プロフィール

2006年の12月にMagic eDeveloper V10の開発版がリリースされて、まもなく1年が経過しようとしています。すでに、多くの方がV10を利用してイベントドリブン型のアプリケーション開発に勤しんでおられることと思いますが、ここに来て、待望のMagicリッチクライアントの話がちらほら聞かれるようになってきました。

これまでにも、かなりの方がMSJ主催の講演、セミナー等にてMagicリッチクライアントの紹介デモをご覧になられたことかと思いますが、デモを一瞥しただけでは、リッチクライアントが従来のクライアント・サーバ型のアプリケーションの仕組みとどのように違うのかを理解しかねている方もいらっしゃるかと思います。

そこで本連載では、まず、「リッチクライアントとは何か」というテーマから始まって、「Magicリッチクライアントが何故、アプリケーションの開発と実行のあり方に革命を引き起こし得るポテンシャルを秘めているのか」までを、実際にMagicリッチクライアントのβ版(英語版)を操作しながら検証していきたいと思います。

リッチクライアントという用語の意味

「リッチクライアント」という用語をIT用語辞典e-Words(http://e-words.jp/)で引くと、次のように記載されています。
(以下、IT用語辞典e-Wordsからの抜粋)。

企業情報システムのクライアント環境のうち、アプリケーションの実行環境のみを搭載したもの。伝統的なクライアントサーバシステムのクライアントに当たる「ファットクライアント」と、アプリケーションをWeb化してクライアントにWebブラウザを使う「Webクライアント」(HTMLクライアント)の中間の性質を持つ。

つまり、リッチクライアントとは従来のクライアント・サーバ型のアプリケーション技法と、近年におけるWebブラウザベースのアプリケーションとの中間に位置するテクノロジーであると解釈できます。

さらにIT用語辞典の解説は続きます。

リッチクライアントは、必要に応じてアプリケーションをダウンロードして実行するため、ファットクライアントに比べて配布や導入に手間がかからない。また、ネイティブアプリケーションとして実装されるため、Webブラウザをクライアントにする際の最大の弱点であるユーザインターフェースの貧弱さを克服し、ファットクライアントと同等の表現力や操作性を実現できる。両者の「いいとこ取り」に近い手法である。

「いいとこ取り」という表現で締めくくられているように、リッチクライアントとは正に、クライアント・サーバとWebアプリケーション、もしくはブラウザ・クライアントのそれぞれの良いところだけを取り入れて合体させた、究極の手法であると言えそうです。

そして、この手法がMagicにおいてRADツールの一機能としてインプリメントされたならば、これを「アプリケーション開発の革命である」と言わずして、何と言えるでしょうか。MS-DOSの時代にマルチ・ウィンドウとウィンドウのスクロールを実現していた、Magicならではの魔法の再現かもしれません。

リッチクライアントの実装例1(ブラウザ独自拡張の例)

さて、前置きはこのくらいにして、Magic以外の世界でもすでにリッチクライアント手法が採用されているケースはないだろうかといことで、具体例をいくつか紹介してみたいと思います。はじめに、ソースネクスト社が無償提供している「ThinkFree」というソフトウェアの動作の仕組みについて触れてみたいと思います。

これはWebブラウザを独自拡張して実現させているリッチクライアントの一例で、「企業情報システム」という言葉の定義からは少し逸脱するかもしれませんが、実行形態のテクノロジーの側面から見た場合に、同種のカテゴリーに含まれる手法であると言えます。

ThinkFreeの管理画面にアクセスすると、Webブラウザの表示は画面1のようになります。

画面 1 ThinkFreeの管理画面
画面 1 ThinkFreeの管理画面

ここで、Webサイト上に保存してあるワープロ文書を開くと、画面2のように文書が展開されます。

画面 2 ワープロ文書の展開
画面 2 ワープロ文書の展開

ここまでは通常のSaaS形態(Googleドキュメントを代表とするサーバ側のサービス)のアプリケーションと何ら変わりませんが、リッチ方式はここから始まります。画面2において右肩の「PowerEdit」というボタンを押すと、Javaアプリケーションが自動的にダウンロード/配備され(この間、数秒~数十秒)、拡張Webブラウザ上にMicrosoft Word 2003とそっくりなワープロ画面が表れます(画面3)。

画面 3 PowerEditによる編集画面
画面 3 PowerEditによる編集画面

これは近年、「RIA(リッチインターネットアプリケーション)」と呼ばれる部類に属する形態とも言えますが、ここでは用語に惑わされることなく、アプリケーションの「動作の仕組み」のほうに注目して観察してみたいと思います。

ウィンドウのステータス行を見ると、「Javaアプレットを読み込んでいます」と表示されています。これにより、このプログラムがJavaの仮想マシン上で動作していることが確認できます。

しかしながら、画面上に表示されたワープロの編集画面を見る限り、アプレットと呼ぶにはあまりにも本格的過ぎるくらいのJavaアプリケーションであることが理解できます。もはや、「アプレット」と呼べど、Windowsのネイティブアプリケーションに匹敵する機能を搭載できるまでに、インターネットアプリケーションの世界は進化しているわけです。

ちなみに、画面1の管理画面から表計算を起動してPowerEditモードにすると、画面4のような表示になります。

画面 4 表計算ソフトウェアの起動
画面 4 表計算ソフトウェアの起動

これもまた、Microsoft Excel 2003と区別がつかないほどにリッチで、見た目もそっくりな作りであることが分かります。しかも驚いたことに、プルダウンメニューから「ファイル」→「名前を付けて保存」を選択すると、ファイルの保存先としてローカルディスクでもWebサイト上のスペースでも、どちらでも指定できるようになっています(画面5)。インターネットアプリケーションであることのメリットが活かされた構造であると言えます。

画面 5 ローカルとリモートの両方に保存が可能
画面 5 ローカルとリモートの両方に保存が可能

ちなみに、プレゼンテーションソフトウェアをPowerEditモードで起動すると、画面6のような表示となります。これも、Microsoft PowerPoint 2003にそっくりな作りとなっています。

画面 6 プレゼンテーションソフトウェアの例
画面 6 プレゼンテーションソフトウェアの例

なお、これらの実行画面を見て驚くべきことは、ローカルのパソコン上に明示的にワープロソフトや表計算ソフト、あるいはプレゼンテーションソフトをインストールしたわけでもなく、単にWebブラウザ上のメニューを選択しただけで、目の前にはまぎれもなく高機能なオフィス製品の画面が現われたことです。つまり、メニューを選択したことで、アプリケーションの「ダウンロード」→「インストール」→「実行」→「データの読込み」という一連の手順が全自動で行われたわけです。しかも、数分と待たされたわけでもなく、長くても数十秒という単位ですべての処理が完結していることに注目する値打ちがあります。

リッチクライアントの実装例2(ネイティブアプリケーションの例)

こんどは、ブラウザの独自拡張を行わず、ネイティブアプリケーションとして配備されている、純粋なリッチクライアントの実行例を紹介します。

画面7は、ある学習塾が運営する高校受験用のインターネット学習塾のサイトです。

画面 7 高校受験用のインターネット学習塾
画面 7 高校受験用のインターネット学習塾

ここで、いずれかの科目を選択して「Play」ボタンを押すと、実行プログラムがローカルパソコンに自動的にインストールされ、画面8のようなウィンドウが表示されます(この例では、関東地方の地理の問題が出題されています)。

画面 8 ネイティブアプリケーションとして実行
画面 8 ネイティブアプリケーションとして実行

答えを頭に思い浮かべたら、右下の「問題/回答」ボタンを押します。すると、ウィンドウの下半分に回答データが表示されます(画面9)。

画面 9 回答ボタンで回答を表示
画面 9 回答ボタンで回答を表示

もう一度、「問題/回答」ボタンを押すか、あるいは「>」ボタンを押すと、次の問題(次のレコード)に移動します。Magicで言うところの、典型的なスクリーンモードのプログラムの作りです。

理科の教科を開くと画面10のようになります。

画面 10 理科の出題例
画面 10 理科の出題例

英語を選択すると画面11のようになります。

画面 11 英語の出題例
画面 11 英語の出題例

これらは、まさにローカルで実行されているクライアント・サーバ型のアプリケーションと何ら変わらない様相を呈しています。出題データもサーバからロードしています。正解、不正解のログや、ユーザが任意に付けるチェック記号などもサーバに送られて保存されます(ゲストアクセスでは機能制限されていますが)。

このサイトがまさに、典型的なリッチクライアント環境で運営されているサイトであることが窺い知れます。なお、このサイトでは正式版を購入するとCD-ROMの形式でアプリケーションが送付されてきますが、インストール後の実行画面はリッチクライアントでの実行画面とまったく同じとなります。つまり、エンドユーザはリッチクライアントで実行されている環境と、ローカルインストールで実行されている環境の違いを意識することなく、同じアプリケーションを操作することが可能になるわけです。

では一体、どのような仕組みで、このように従来の常識を覆すようなアプリケーションの実行形態が可能となるのでしょうか?次回は、JRE(Javaの実行環境)とJava Web Startの仕組みから紐解いていきたいと思います。

(以上、2007年11月1日号)