いまやJ2EEはエンタープライズ系システムの標準的なプラットフォームとして認知されている。支持される理由として、多くのベンダーによって支えられたベンダー非依存の標準的な技術であること、セッション管理、トランザクション処理、データベース処理などエンタープライズ系システムでは欠かすことのできない技術がしっかりと実装されていること、プログラムの生産性や保守性の高いことなど、さまざまなJ2EEのメリットを列挙することができる。
しかし同時にクライアントサイドのアプリケーションにおけるユーザーインターフェイスに問題を抱えているのも事実である。そこで、今回は東芝ソリューション株式会社の提供する、Webアプリケーションの操作性と開発生産性を向上するミドルウェア「FlyingServ J-Frame Server」に注目してみた。
■ Webクライアントとリッチクライアント
ご存知のようにJ2EEでは、クライアントサイドのアプリケーションとしてWebアプリケーションを利用する。これによってプラットフォームに依存しないクライアントアプリケーションを提供でき、またアプリケーションの配布といった管理面でのコストも大きく削減できる。その一方でWebアプリケーションには、Webブラウザを用いることからくるHTMLによる表現力の限界や、デザインとロジックの混在という問題がある。
従来のC/S環境におけるクライアントアプリケーションでは、ロジックがクライアントサイドに実装されているため、シンクライアントに対して「ファットクライアント」と呼ばれる。こうしたシステムでは、クライアントプラットフォームのGUI機能を利用することで、表現力や操作性の高いアプリケーションを構築できる。しかしクライアントの台数が多くなれば、配布やメンテナンスなどの管理コストが大きくなる。
ユーザーインターフェイスの問題に対しては、多くのベンダーがさまざまな解決策を提案している。主なものとしてMacromediaのFlash/Flex、AdobeのPDF/XDA、アクシスソフトのBiz/Browserなどがある。もちろん業界全体での標準化が求められている分野でもあり、これまでJava環境でもAWT/Swingコンポーネントや、Strutsなどが提唱されてきた。最近では、ユーザーインターフェイスに重点を置いたWebアプリケーション用のフレームワークであるJSFも注目を集めている。
Webサービスで実現するクライアントアプリケーションという観点からは、マイクロソフトが提唱する.NETの「スマートクライアント」も方法のひとつと言えるだろう。このようにWebアプリケーションでより豊かな(グラフィカルな)表現を実現するクライアントアプリケーションを「リッチクライアント」と呼ぶことが多い。つまり、Web型クライアントとファットクライアントのいいとこ取りをする方法が模索されているのである。
■ 既存の開発環境を利用できるJ-Frame
|
J-Frame Serverのシステム構成図
|
東芝ソリューションのFlyingServ J-Frame Serverは、主に大量のデータを入力するエントリー系の業務に注力したミドルウェアである。入力データの自動編集処理、ファンクションキーの利用、カーソルのオートリリース(設定桁入力後の自動移動)、日付編集、計算処理、ガイドの表示といったオフコンやC/S型システムでの処理を、サーバーサイドのアプリケーションやデータベースと連携して実現している。
J-Frame Serverでは、GUI処理を実行するアプリケーションをサーバーサイドに配置し、クライアントへGUIの描画命令をHTTP/HTTPSで送信する。クライアントサイドのGUIエンジンは、サーバーからの命令を受けてWebブラウザ上にユーザーインターフェイスを描画する。このためクライアントへデータをダウンロードする時間を短縮でき、クライアント環境の違いによる影響も少ない。また、ロジックとデザインを分離する意味でもメリットが大きい。
|
GUI部品は一般的なJava開発ツールにアドインされる(画面はBorland JBuilder)
|
J-Frame Serverが利用している技術は、JavaBeansやSwing APIなど決して目新しいものではない。そしてWebアプリケーションに利用できるGUI部品は、既存のJava開発ツールにアドインできる形式で提供される。これをツールバーからドラッグ&ドロップでアプリケーション上に配置して、プロパティを設定するようなノンプログラマブル(コードを書かない)方式で使用できる。もちろん部品同士の連携やデバッグも可能だ。
既存の開発環境で使用できるということは、新しいAPIや開発環境を習得する必要がなく、開発生産性に大きな影響を与える。提供しているGUI部品の質も、これまで東芝が長年にわたって蓄積してきたオフコンやC/S型システムでの業務アプリケーションのノウハウを生かした部品が多く、質の高い業務アプリケーションが容易に開発できる。
■ 真にリッチなクライアントとは?
|
J-Frame Serverで開発された業務アプリケーション。高い操作性と直感的なインターフェイスを備える
|
ここで根源的な問題について考えてみよう。なぜリッチクライアントは必要とされるのか? 表現力豊かなグラフィックとしては、BtoCなどのクライアントアプリケーションに見られる、派手なアニメーションやアクションなどが一般に連想される。しかし業務アプリケーションの分野では、このような派手さは重要ではない。多くの業務アプリケーション、特に大量のデータを入力するエントリー系の業務では、オフコンやC/Sのシステムでのような操作性や、使い勝手のいい画面こそが重要になる。
例えば、1日に何百枚ものデータシートをOCRで読み取って入力する処理を想定してみよう。どれだけ認識率が高くとも、OCRの読み取りデータすべてが適正値として入力されるわけではない。オペレーターはデータシートを確認し、問題箇所を修正しなければならない。
ご存知の方も多いと思うが、エントリー系のオペレーターとは特殊技能を有する集団である。恐ろしい速度で読み取ったデータを確認して修正していく。彼らは通常のアルファベットキーのみならず、テンキーやファンクションキーも大いに活用し、効率よくデータを入力していく。ここで重要なのは、これらの作業は“キーボードのみ”で実行される点だ。そこではマウスアクションは、無駄以外のなにものでもない。また、各フィールドへの入力の完了には、Enterキーの利用が一般的となっている。
こうしたエントリー作業をWebアプリケーションで実現しようとすると、開発者はさまざまな問題に直面する。まず最適な画面がWebブラウザで表示できるか不透明であり、しかも異なるクライアントで同様に表示できる保証がない。しかしもっとも大きな問題となるのは、ファンクションキーやEnterキーのアクションをWebブラウザ上で実現することが非常に難しい点だ。
例えばフィールドでの入力を完了後に次のフィールドへ移動する操作にEnterキーを使用したくとも、通常のWebブラウザでは全フィールドにデータが入力されたと認識してSubmitしてしまう。これではエントリー系の業務アプリケーションとしては利用できない。求められるのは、VBで作ったWindowsアプリケーションのように見やすい入力フォームと、効率の良い入力を支えるキーボードイベントのフックである。このためエントリー業務だけはWebアプリケーションに移行できずにいる企業も多い。
結局のところリッチクライアントとは、ユーザーが必要とする機能を適切に提供できるクライアントアプリケーションである。そのようにリッチクライアントを捉えた場合、J-Frame Serverの業務アプリケーション、主にエントリー系業務に特化したアプローチというのは、真の意味でのリッチクライアントを実現する技法のひとつと言えるだろう。
■ URL
東芝ソリューション株式会社
http://www.toshiba-sol.co.jp/ccc/
FlyingServ J-Frame Server
http://flyingserv.toshiba-sol.co.jp/
( 北原 静香 )
2004/08/12 00:00
|