三井 英樹

 Rich Internet Application(RIA)化の提案をすると,必ずといって良いほどぶつかる「壁」があります。「そのメリットは?」と聞かれることです。購買系の社外システム(B2Cサイト)の場合は,使い勝手を良くする=集客率を上げる=売上げ増進,というシナリオを描けますが,社内の「アプリケーション」のようなモノだとそうは行きません。

 下図は,私が提案を示すときにベースにしているものです。概して,RIAを語る際には,ユーザーの「使い勝手」の部分だけにスポットライトが当たりがちですが,実は違う部分にも語るべき要素があります。なお,注意していただきたいのは,この図は実装技術にあまり関係がありません。どんな開発言語で作るかにかかわらず,ほぼ共通に語ることができるものです。

メリット享受者を,「エンドユーザー・利用者」と「システム・開発者」と「経営」の三つに分けます。代表的なものだけを書いても下記があります:

エンドユーザ・利用者 : ユーザビリティ
  • キー操作(TAB/Fキー)
    HTML純正で作りこんだ場合,TABキーで移動することや,ファンクション(F)キーによる操作短縮化など,今まで慣れ親しんだキー操作が活かせないという状況が多々ありました。RIA技術の説明をした場合,特にクライアント/サーバー系で仕事をしてきた方々から,最初に聞かれる質問でもあります。仕事における,入力操作方法の「慣れ」の大切さを毎回強く考えさせられる(=大切に設計すべき)項目です。「慣れなさい」という一言では納得いかない,要の部分です。
  • 使い易さ/直感的操作
    何かを操作する際に,その操作方法に意識が行くということは,その分操作対象に注がれる意識がそがれることを意味します。何も考えずに操作を行えて,その仕事が達成できることが理想なのです。あることのためのボタンを探す,という行為そのものが作業の生産性を下げています。RIA技術を用いることで,様々な表現上の制限を取り除けるので,正しく設計さえすればこれは実現できます。
  • 人間の思考支援
    クライアント/サーバー系の場合,「情報入力」が目的の場合も多かったでしょうが,最近のアプリケーションでは,入力作業は様々なデバイス間通信でまかなえることが多くなってきています。つまり,人間の作業は入力ではなく,その後の処理すなわち「判断」の領域に踏み込んでいるものが増えつつあります。こうした時代背景の中で,RIAシステムは,どうやったら人間が正しく楽に「判断」ができるように情報を提供できるか,という点を中心に設計されます(されるべきです)。情報がただ羅列されるだけでは,判断支援にならないことは,検索エンジンの黎明期に我々は経験済みです。必要な情報をわかりやすく提示することが,こうした思考支援につながります。
  • 情報の視覚化
    前述の「思考支援」にもまたがる分野ですが,人間の判断は文字情報だけで加速されるわけではありません。「百聞は一見にしかず」の通り,的確に分類された視覚情報は,瞬時の的確な判断を生み出します。定型的な情報分類などの場合,こうした自動作画機能が特に有効に機能します。
  • ノーリフレッシュ画面【共通】
    多ステップの情報入力を必要とする場合,人間は前画面の情報を覚えていられるとは限りません。既存型のHTMLアプリケーションでは,ステップごとに画面が切替わるので,人間の頭にかなり負荷がかかっていました。こうした「切替」のない,「ノーリフレッシュ画面」は、入力した情報履歴を見せたり,この作業を達成するために必要な入力作業の全体像をあらかじめ見せておくことで,人間の負荷を軽減します。
  • トレーニング軽減【共通】
    新しいシステムの導入時に一番困るのは,実は作業対象者がそのシステムを使いこなせるか、どこまで慣れていけるかではないでしょうか。わかりやすく,直感的に操作ができるシステムであれば,「学習」が不要になります。新しいものに取り組む際の心理的障壁が低いことは,モティベーションの低下防止にも役立ちます。
システム・開発者 : パフォーマンス
  • 開発再利用性
    汎用的に設計すれば,という条件がつきますが、データの部分と見た目の部分とを独立に設計・開発するなら,かなりの部品が使いまわせます。また,トレーニング軽減を正しく目指すならば,ボタンやレイアウト等にも共通フォーマットを使うでしょう。こうしたデザイン部品も再利用が可能です。一般的に,RIA技術は他の標準技術に比べ独自性が高いと思われがちですが,広い視野で見直した場合、再利用性はやはり高いと言えるでしょう。
  • サーバー負荷軽減
    従来型HTMLアプリケーションでは,ほんの少しの情報が変わっただけでも,画面全体をリフレッシュするように設計されています。これは,前述の人間の記憶能力に負荷をかけるばかりでなく,サーバーのページ配信能力にも負荷をかけています。RIA技術の多くが,描画エンジン(プラグインなど)をクライアントPC上に既に持っている状況を想定しているので,変更された情報のみをやり取りすればよい場合がほとんどです。イントラネットのように飾り気のない場合ですら,サーバーの負荷は激減します。
  • バイナリ通信
    やり取りするデータをバイナリ化できるかは,実装するRIA技術に依存しますが,やり取りされるデータが限定されるので,より小さくするためのバイナリ化やセキュリティを考慮した暗号化は,かなり現実的な話になります。既存型HTML画面をSSL化することに比べれば,無駄なイメージ・ファイルのSSL化などを省けるなど負荷軽減にもつながり,効果も見えやすいものとなるでしょう。
  • ノーリフレッシュ画面【共通】
    これも配信データの減少が一番大きい部分ですが,多ステップの情報を最終的に一括してサーバーに投げて処理をするので,セッション管理などを省く側面も持ちます。
経営 : コスト
  • サポート軽減
    インタフェースが,操作する者の意図に反した動きをするからこそ,疑問が生じ,サポート/サービスが必要になります。誰もが直感的に操作できるシステムであれば,必然的にサポートの必要性は減ります。サポート・センターのような部署がなかったとしても,わかりにくいシステムは,実は各現場で「博識な方」がいて,その人が実質的なサポートをボランティアでやっている場合が多々あります。さらに,そうしたほうが実は有能であり,彼らをそうした雑務から解放することが,会社の生産性全体に影響を与える場合も珍しいことではありません。
  • メンテナンス軽減
    RIA化を正しく行う場合,コンテンツ(データ)とレイアウト(見た目)の部分とに分けて設計・開発が行われます。従来型HTMLアプリケーションでは,得てしてJavaScript等にデータもロジックも混在して実装するような場合が多かったのですが,RIA化する段階でそういった部分が整理されている場合がほとんどだと思われます。それはとりもなおさず,拡張性をある程度考慮していることにもなっています。商品が多少増えたり,価格修正や,連携する他商品リストなどは,XMLファイル等のデータ部分のみを修正すれば対応可能にすることが可能です。
  • 配布(デプロイメント)
    もともとこれがWebアプリケーションの一番の強みですが,アプリケーション自体をクライアントPCに置く必要がありません。ユーザーは利用する度に実はダウンロードしているのです。クライアント/サーバー系で一番コストのかかった一斉改修の手間がありません。実は,クライアント/サーバー的な常駐型アプリケーションのニーズも高まっていますが,そうしたものでさえ,半自動的にアップデートするように設計されることも多くなっています。
  • トレーニング軽減【共通】
    ユーザーが「新たに学習する」ことを億劫に思うから,トレーニング・サービスが存在します。そもそもわかりにくいインタフェースであるという場合もありますが,システム開発費以外にも、こうした面でコストは経営にのしかかっています。新規システム開発や,既存システム改修の費用だけではなく,わかりやすいシステムは,こうした見えにくい部分のコストにも影響を与えます。

 こうしたメリットを見ていくと,気がつくことがあると思います。それは,かなりの部分が「三位一体」的に繋がっているということです。ある特定の部分だけでメリットが生まれるようにするほうが逆に難しいのでしょう。システムは企業(経営)が投資して,そのメンバー(ユーザー)が利用し,特定メンバー(システム)が開発・維持管理しているものなのですから,それらが密接に繋がっているほうが自然なのかもしれません。

 その意味で,RIA化とは、従来のような「サーバー負荷が高まってきたからサーバーを買い換える」といったワンポイント対処とは,対照的なポジションに位置付けられるものだとも言えます。これから,RIA化を意識してシステム提案する方は,こうしたつながりも意識されることをお薦めします。


三井 英樹(みつい ひでき)
1963年大阪生まれ。日本DEC,日本総合研究所,野村総合研究所,などを経て,現在ビジネス・アーキテクツ所属。Webサイト構築の現場に必要な技術的人的問題点の解決と,エンジニアとデザイナの共存補完関係がテーマ。開発者の品格がサイトに現れると信じ精進中。 WebサイトをXMLで視覚化する「Ridual」や,RIAコンソーシアム日刊デジタルクリエイターズ等で活動中。Webサイトとして,深く大きくかかわったのは,Visaモール(Phase1)とJAL(Flash版:簡単窓口モード/クイックモード)など。