@IT編集局/宮下知起
Webアプリケーションが、TCOの削減とファットクライアント並みの操作性や高機能を備える時代が到来する。注目を集めるリッチクライアントはその過渡期に過ぎない。Web Client & Reportフォーラムでは、Webアプリケーションが抱える課題と、その解決を探求するためのフォーラムである。新フォーラムをスタートするにあたって、本稿では現状のWebアプリケーションが抱える課題と、それに答えるソリューションが向かっている方向性について整理する。(編集局) |
もうごまかしが効かないWebアプリケーションの課題 |
主にHTMLなどのインターネット技術を基盤とするWebアプリケーションは、大量クライアントへのアプリケーション配布の容易さにおいては他に比較できない優位性をもつ。クライアント数が大規模であるほど、管理コスト削減の効果が出る。インターネットを利用したコンシューマ向けのサービスにおいても、WebアプリケーションならコンシューマのPCにあらかじめインストールされたWebブラウザをクライアントとしてサービスを提供できる。同様のメリットは企業間取引をインターネット(VPN)で行う場合にも生きてくる。
しかしその一方で、Webアプリケーションはクライアント/サーバシステム、ホストシステムなどのシステム形態で稼働する従来のアプリケーションに比べ、以下の問題点をもたらした。
- 操作性の低下
- 機能の低下
- レスポンスの低下
操作性の低下は、とくにデータエントリ系の業務において生産性の大幅な低下をもたらすことはすでに常識だ。HTMLベースではインターフェイスの実装に限界があり、機能に乏しいユーザーインターフェイスも課題視されている。また、ネットワークとの接続が切れるオフライン状態が発生する環境では、Webアプリケーションのモデルそのものが適用できない。これらの課題については「Webは生産性を下げる? ブラウザを超える手段とは」(@IT情報マネジメント)に詳しく解説した。
こうしたWebアプリケーションがもたらすデメリットが、レガシーから新システムへのマイグレーションを阻害しているケースは多い。しかし、エンドユーザーのWebアプリケーションへの関心は非常に高い。@ITが2003年6月に実施した読者調査の結果では、基幹系システムのオープン化においてデータエントリ系を中心とするクライアント層のWebアプリケーション化を行いたいとするユーザーは全体の75%、大規模システムにおいては80%にもおよんだ。旧資産の陳腐化、高額な保守費用の維持から抜け出すためにオープン化を目指したいユーザーは多い。
HTMLとJavaScriptを組み合わせたり、DHTMLを活用してインタラクティブなユーザーインターフェイスを構築する試みもないわけではない。しかし、これらの技術や手法はブラウザに依存する部分が多く、クロスブラウザやクロスプラットフォーム環境で問題が発生しやすい。さらにそこには、開発生産性の低下やプログラムのメンテナンスビリティの低下という課題がつきまとう。
利用者不在から利用者優先のシステム実現へ |
現在、大規模なWebシステムの多くはJ2EEをベースにしている。J2EEのしくみやオープンソースのStrutsを始めとするフレームワークには、開発における生産性を高めるために、資産の再利用性が考慮されている。.NETにおいても、それ自体のアーキテクチャと開発ツールの提供によって、Webアプリケーションの高い開発生産性を実現している。Webアプリケーションの開発生産性は、非常に高いレベルまで成長してきた。
しかし、これまで開発生産性の追求に比べユーザーの使いやすさの追求は不十分だったといえる。ユーザーに提供される機能は、Webで実現できることを優先に考えられた。開発者はJ2EE、.NETという新しいアーキテクチャに追従することに手一杯であり、Webの限界をいかに超えるかという議論は後回しにされてきた傾向があった。
しかしここにきて「リッチクライアント」が登場してきた。リッチクライアントは、
- Webアプリケーションの配布の容易さ
- 一般のアプリケーション並みの使いやすさと性能
の両方の実現を目指す。リッチクライアントにはさまざまなベンダから製品やソリューションが提供されている。@ITでは、これらについて「Webは生産性を下げる? ブラウザを超える手段とは」(@IT情報マネジメント)や「導入段階を迎えるリッチクライアント」(@IT Java Solution)に詳しく解説している。
ユーザーにとって使いやすいアプリケーションは、企業において生産性の向上、コンシューマサービスにおいては購買率の向上を実現する。実際、国内においてはデータエントリ系の業務でリッチクライアントの導入が進んでいる。データエントリ系業務の多い国内事情を睨み、国産のリッチクライアント製品も登場している。海外では、コンシューマサービスにリッチクライアントの導入事例が多い。ホテルの予約サイトに適用し稼働率の向上に成功した例、好みの色やオプションを組み合わせた車をWeb上でリアルに確認できるようにし成約率の高いユーザーを販売店に誘導することに成功した大手自動車メーカーの例などがある。
もう一方では、リッチクライアントを生かし、従来にない新しいサービスを展開している例も登場してきている。例えば、米国の大手写真メーカーでは、デジカメで撮影した写真をユーザー自身がWeb上でインタラクティブに加工、アルバムのデザインを選んで遊ぶことができる。気に入ったものができればオンライン上でアルバムの作成を申し込むと、後日アルバムの完成品がユーザーの手元に送付されてくるというサービスを提供しはじめた。Webの課題を越えるのではなく、インターネットを通して従来にないサービスを提供するという新たな方向も見える。
リッチクライアントの実現にはさまざまな技術があるが、プロプライエタリではなく、できるかぎり標準あるいはインターネットにおいてデファクトの地位を築く技術が選ばれている。それは、J2EEをベースにしていたり、FlashやAcrobat PDFなど、多くのPCにあらかじめインストールされている技術であったりする。あるいは、新しいテクノロジであっても、開発に用いる言語がXMLやJava、あるいはJavaScriptに準拠した仕様を採用している。プロプライエタリの採用は、開発生産性の低下、運用管理コストの増大など、犠牲にするものが大きく、これまでWebアプリケーションが目指してきた方向に逆行してしまうからだ。
リッチクライアントの適用範囲は広がりを見せる |
帳票は日本の商慣習と切り離せない。多くのベンダやデベロッパがWebアプリケーションで帳票をどう実現するか、操作性をどう向上させるかという課題に取り組み、製品やソリューションを提供してきた。しかし、ここにおいても、HTMLで作られたフォームであればデータを入力する際、データを更新するには更新ボタンを押さないと内容が確認できない。印刷においては、画面上の印刷ボタンを押すと、システムがPDFファイルを出力してAcrobat
Readerが起動、そのダイアログで印刷を実行して印刷といった面倒な手順を踏む必要があるなど、操作性の面で課題が多かった。ほかにも、帳票の修正に大きな工数がかかる。帳票の入力と出力イメージを同じにできないなどの課題がある。これらの課題にも、リッチクライアント適用の試みが始まっている。開発者は既存のスキルで容易に開発でき、利用者には従来の紙の帳票を扱う場合と同等、あるいはそれ以上に高い利便性がもたらされることを目指している。
さらに、読む目的を中心に電子文書として古くから活用されてきたPDFを、Webアプリケーションに適用する試みもはじまっている。入力フィールドやチェックボックス、ボタンを付けたPDFフォームを用い、申請業務の電子帳票や基幹システムへのデータ登録画面などが作られている。また、サーバと連携することで、社内業務の申請フローのオートメーション化を可能にするソリューションも登場している。PDFはPDFの閲覧や加工にセキュリティ機能を追加できるため、すでに官公庁や金融機関での適用ケースが増えてきている。
リッチクライアントは過渡期、次世代のWebアプリケーションの姿を追求 |
リッチクライアントというキーワードは一過性のブームであるとする意見も多い。リッチクライアント技術にはさまざまなものがあり、参加するベンダ、製品も多い。そこで、リッチクライアントとは何かという議論は不毛であり、重要なのは本来Webがもたらすメリットをいかに生かすかという点にあるのではないだろうか。さらには従来にない付加価値をどうすれば付け加えられるかに取り組んでいくことが重要だろう。
Web Client & Repotフォーラムでは、本稿や@ITのこれまでの記事でご紹介してきた現在のWebアプリケーションが抱える課題を、開発者の視点とユーザーの両方の視点に立ち解決していくためのフォーラムである。
- 業務に生産性をもたらすために、Webアプリケーションにファットクライアント並みの操作性や機能を実現するテクノロジ
- コンシューマのサービスに向けて、Webアプリケーションにインタラクティブ性を実現するテクノロジ
これらの課題のほか、ユーザーにとっての使いやすさ、顧客満足度を向上させるためのユーザビリティを議論することも重要だ。さらには、ユーザビリティを高める点においてデザイナーの役割も重要であり、さらにはデザイナーと開発者がいかにうまく作業を切り分けるかという議論も必要になるだろう。
これらのさまざまな課題に、机上の議論ではなく、すでに取り組むさまざまなベンダやエンドユーザーへの取材をベースに記事を提供していく予定だ。
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|