野村総合研究所 情報技術本部
主任研究員 田中 達雄
2005/10/14
リッチクライアント開発における共通課題 |
リッチクライアントの設計では、過去のクライアント/サーバシステム開発と類似している点もあるが、インターネットプロトコルの脆弱性をカバーする設計は別途必要となる。
|
||||
表1 リッチクライアントの設計の課題 出所)野村総合研究所 |
簡単な例を挙げてみよう。図2は、過去の2階層C/Sシステムの例である。ここではクライアント・プログラムが基点となり2つのデータベースへのセッションを確立/維持したうえで更新・削除が行われている。ネットワークプロトコルは独自ではあるが、信頼性は保証され、セキュアで、性能も高く、さらにデータ整合性が保証されたトランザクションを実行することができた。
図2 過去の2階層C/Sシステムの場合 出所)野村総合研究所 |
次に図3でリッチクライアントによる3階層システムの例を挙げる。リッチクライアントの場合、クライアント側で実行する機能(スタンドアロン型リッチクライアントの場合、オフラインでの利用も考慮した設計が必要)やサーバ側に依頼する機能単位を「機能面、性能面、操作面」などを考慮して設計する必要がある。さらにインターネットプロトコルという脆弱なプロトコルを利用するため、信頼性・セキュリティ・性能をカバーするための作り込みをクライアント/サーバの双方で行う必要がある。
図3 リッチクライアントを適用した3階層システムの場合 出所)野村総合研究所 |
さらに以下のような課題も顕在化しつつある。
ユーザーインターフェイスとビジネスロジックの分離分業体制確立の必要性
|
残念ながら上記のような設計の考慮点は分かってきたが、開発手法や設計方式といった形で整理公開されたものは現在ない。先行するいくつかの事例でもほぼ手探り状態で進められているのが現状だ。
さらに「人材不足」の壁が立ちはだかる。いくつかの事例を調査した結果、User Experience性を重視したユーザーインターフェイス開発と業務アプリケーション開発のどちらにも精通した人材は皆無に等しい。よって先にも挙げたように、まずクリエイターとエンジニアによる分離分業体制を確立する必要がある。さらにリッチクライアント普及に備え、そういった限られた人材で多くの開発を支える仕組みも必要となる。
Rich Client Frameworkの必要性 |
設計方式の再利用/共通化を可能とし、人材不足を補い、クライアント技術変更への影響範囲を限定的なものにする仕組みの1つとして「Rich Client Framework:RCF」の適用が有望である。これはクライアント側に共通して必要となる機能を実装したモジュール群であり、ユーザーインターフェイス部品、信頼性、セキュリティ、キャッシュ機能、非同期通信などを提供する。
ここでいうユーザーインターフェイス部品は、汎用的なユーザーインターフェイス部品ではなく、その企業や組織に特化したユーザーインターフェイス部品であり、User Experience性が実現されたものである。その中にはクリエイターによってデザインが施されたボタンやメニュー、入力画面テンプレートや更新画面テンプレートなどが含まれる。
図4 Rich Client Frameworkの位置付け 出所)野村総合研究所 |
スタンドアロン型リッチクライアントの将来 |
最後に、スタンドアロン型リッチクライアントの将来(1〜2年後)の方向性について、以下のようにまとめてみた。
|
1〜4については、時間とともにベンダから提供されるもので、より一層リッチクライアント導入の敷居を低くしてくれるだろう。5については、ユーザー企業側の努力によって達成されるもので、ユーザー企業側の努力が必要なものには、ほかに開発体制の整備もあるが、これらはリッチクライアントによる開発を成功(高い開発生産性や保守容易性)に導くうえで重要な要素となるだろう。
3/3 | ご愛読ありがとうございました |
INDEX |
||
スタンドアロン型の次世代デスクトップ環境を占う | ||
Page1 最近のスタンドアロン型リッチクライアントの動向/User Experience性重視への対応/ブラウザ型リッチクライアントによるスタンドアロン型への対応 |
||
Page2 次世代デスクトップ環境への応用/スタンドアロン型リッチクライアント普及時の課題/懸念される異種混在のスタンドアロン型実行環境 |
||
Page3 リッチクライアント開発における共通課題/Rich Client Frameworkの必要性/スタンドアロン型リッチクライアントの将来 |
- 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データの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|