様々な視点から見たコンポジット・アプリケーション
コンポジット・アプリケーションの特徴が具体的にどのようなメリットをもたらすのか、4つの異なる視点から考えてみたいと思います。
経営者
既存資産を最大限再利用することは過去の投資の保護を意味します。同様の機能を別の技術で再実装するのでは多大なコストに見合う効果が見込めません。再実装ではなく再利用をすすめることで、新規課題に投資することできます。
システム管理者
フロント・エンドで連携するコンポジット・アプリケーションのモデルではバックエンドは連携されていることすら知りません。知る必要がないのです。既存システムへの影響がないことはこのモデルの採用が運用・管理の変更を伴わないこと意味します。コンポーネントが互いに依存していないため、変更にも強いといえます。例えばユーザーからの要望に応じてあるWebベースのコンポーネントをより高度なGUIを実現できるリッチクライアント技術ベースに置き換える といった変更も容易です。
エンド・ユーザーの自主性に頼りすぎず、ある程度は職種や業務に応じた設定をプッシュ型で提供することで利用者やヘルプデスクの負荷の軽減にもつながります。クライアントがきちんと管理できるという点も企業内で利用する際には重要なポイントといえるでしょう。
開発者
アプリケーション実装に利用できる技術は多様であり、要件やスキルによって最適な選択肢は異なりますし、そのすべてを習得することは事実上不可能といえます。コンポジット・アプリケーションのモデルでは構成するコンポーネントの実装方式に選択の幅を持たせています。JavaEE開発者であれば既存のJavaEEスキルで、AWT/Swingで開発してきたならばそのJavaスキル、Notes/DominoであればNotes/Dominoのスキルで といった具合に既存のスキルやノウハウを活かせることは開発者にとって大きなメリットといえます。より多くのスキルを保有する開発者はコンポーネントの要件に合わせた実装技術を選ぶこともできるわけです。
様々なソフトウェア部品を提供してきたベンダーにとっては、多くの実装技術をサポートしていることはこのモデルへの参入の敷居が低いことも意味しており、エコシステムのより一層の活性化が望めます。
エンド・ユーザー
コンポジット・アプリケーションのモデルでは業務に必要な機能が集約された、効果的に作業を行える画面をエンド・ユーザーに与えることができます。管理者がこうした画面を定義してあげることでエンド・ユーザーにこれまでかかっていた負荷が軽減されることが見込まれます。
しかしながらそれだけではありません。昨今のWeb2.0の流れでよりインタラクティブなインターネットの活用が進んでおり、それは業務の中にも確実に入ってきています。例えば、担当顧客に関する最新のトピックを常にRSSで購読して会話・対応・提案に役立てることができます。あるいは現在地から次の訪問先までの最適な移動ルートをスケジュールと顧客情報とインターネット上の路線検索サービスから瞬時に導き出したいこともあるでしょう。
このように社内システムだけではなくインターネット上のあらゆる情報や機能(以降、サービスと呼ぶこととします)をいかに活用できるかがそのユーザーの個性を作り出すとともに確実に成果に結びつくようになっています。ユーザーがノウハウを元にその時の状況(シチュエージョン)に合わせて必要なサービスを組み合わせて活用する、“シチュエーショナル・アプリケーション”という言い方があります。コンポジット・アプリケーションの潜在的な可能性を管理者からのトップダウンではなく、エンド・ユーザー側が引き出した1つの形といえます。
このように、コンポジット・アプリケーションは様々なメリットを享受できるモデルなのです。