アーキテクチャ・ジャーナル

CAB および SCSF を使用したコンポジット スマート クライアントの設計

Mario Szpuszta
2009/03/16
Page1 Page2 Page3 Page4

本コーナーは、マイクロソフトが季刊で発行する無料の技術論文誌『アーキテクチャジャーナル』の中から主要な記事を Insider.NET 編集部が選び、マイクロソフトの許可を得て転載したものです。基本的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などを本サイトのデザインに合わせている部分が若干ありますので、ご了承ください。『アーキテクチャ ジャーナル』の詳細は「目次情報ページ」もしくはマイクロソフトのサイトをご覧ください。

記事の著作権はマイクロソフトに帰属する。
©2008-2009 Microsoft Corporation. All rights reserved.

ご注意:本記事は、雑誌の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
ご注意:本稿は米国で2007年1月に発行されたものであり、内容が若干古くなっています。

概要

 コンポジット スマート クライアントの構築にあたって、マイクロソフトでは Patterns & Practices グループから CAB (コンポジット UI アプリケーション ブロック) および SCSF (スマート クライアント ソフトウェア ファクトリ) を提供しています。この記事では、CAB および SCSF のアーキテクチャに関する詳細を紹介し、CAB および SCSF を使用してコンポジット スマート クライアントを設計する方法を示します。ここに示す例は、上オーストリア州に拠点を置く Raiffeisen Banking Group のソフトウェア ハウスである RACON Software GmbH で行われた統合銀行デスクトップ スマート クライアント プロジェクトから抜粋したものです。

コンポジット スマート クライアントのアーキテクチャ ガイダンス

 高度な経験を持つ、著名なユーザーのグループに接触する必要がある場合は、スマート クライアントが大いに役立ちます。スマート クライアントは、見かけのいいユーザー インターフェイスなどの簡易な側面にのみ利用しがちです。これは確かに重要なことですが、MSDN の定義を見てみると、さらに重要な要因が存在します。この定義によると、スマート クライアントとは、次の条件を満たす Windows アプリケーションです。

  • リッチなユーザー インターフェイスを提供するほかに、スマート クライアントでは、クライアントが利用できるローカル リソースを使用します。これらのリソースには、ハードウェアのリソースに加えて、コンポーネントおよびローカルでインストールされているアプリケーションが含まれます。

  • これは、インターネットまたはローカルの企業ネットワーク上のサービスと情報を交換する、接続されたアプリケーションです。

  • 接続されたアプリケーションではあっても、スマート クライアントはオフラインで動作し、接続はユーザーに対してできるだけ透過的にすることができます。

  • スマート クライアントにとってもう 1 つ大切なことは、インテリジェントな展開とアップグレードが重要な条件となることです。これには、ClickOnce (ノータッチ) の展開や自動更新などのメカニズムが含まれます。

 スマート クライアントにはこれらの一般的な概念が適用されますが、企業には追加の要件が存在することがよくあります。これらの企業のユーザーは、統合されたデスクトップ、つまり、シームレスに統合された各種のアプリケーションをホストする共通のシェルを使用し、合理化された共通する方法でこれらのアプリケーションを操作することを望んでいます。このような種類のスマート クライアントは、コンポジット スマート クライアントと呼ばれます。コンポジット スマート クライアントを使用すると、いわゆるモジュールまたはプラグインと呼ばれる数多くの個別の機能要素が共通のホスト環境に統合されたクライアント ソリューションを作成できます。

コンポジット スマート クライアント実世界のシナリオ

 私は、上オーストリア州リンツにある Raiffeisen Banking Group のために、共通の銀行デスクトップ用アーキテクチャの作成に従事していました。Raiffeisen Banking Group は、約 2600 の支店を持つオーストリア最大の民間銀行グループです。金融アプリケーションのソフトウェア開発は、上オーストリア州の Raiffeisen 銀行すべてのソフトウェアを主に担当している RACON Software GmbH によって主に管理されています。通常、これらの銀行では、ローン プロセスの管理や、証券および外国為替業務取引用アプリケーションなど、数多くの異なるアプリケーションを使用しています。これらのアプリケーションは、顧客アカウントの検索やアクセスを行う顧客管理など、共通の側面を共有できるようになっている必要があります。

 RACON Software GmbH では、サービス側の環境を多数の一連のWeb サービスに統合した後になって、クライアント側の環境が、異なるインフラストラクチャを持つ数多くの異なるアプリケーションを使用して構築されていることに気づきました。その結果、銀行内での機能の重複や、数多くの異なるユーザー インターフェイスの散在が見られました。目標は、これらすべてのアプリケーション用の新しい基盤として共通のデスクトップを導入し、ユーザーの操作やユーザーの金融アプリケーションの保守を合理化することでした。主なビジネスの促進要因には、異なるアプリケーションの数を最小化し、共通のクライアント サービスを 1 つのインフラストラクチャに統合することで、トレーニングおよび保守にかかるコストを削減するという必要性が含まれていました。

 目的は、すべてのアプリケーションをホストする一元的なエントリ ポイントとしての “銀行シェル” を作成することでした。アプリケーションのアクセスは、役割ベースで行われます。ただし、シェル内でホストされる全アプリケーションの基本的な外観および動作は、どのユーザーに対しても同じになる必要があります。一部の銀行は低帯域幅でバックボーンに接続しているため、インテリジェントなキャッシュ戦略を導入して、アプリケーションの応答を保つ必要がありました。また、一部の従業員は、切断されたオフライン機能を必要としていました。最後に、リッチなユーザー インターフェイスと、クライアント側にローカルでインストールされている Microsoft Office アプリケーションとの統合も必要とされていました。このような要件が存在したため、RACON Software GmbH では既存の Web アプリケーションを銀行デスクトップに統合することを望んでいましたが、純粋な Web アプリケーションを使用することは不可能でした。

 技術的な側面を調査していくにつれ、スマート クライアントのアーキテクチャ要件は、次の側面をサポートする必要があることがわかりました。

  • アプリケーションの起動時または実行時に、構成およびユーザーまたは役割の割り当てに基づいてモジュールを動的に読み込むことのできるプラグ可能なアーキテクチャ。

  • すべてまたはほとんどのモジュールが必要とする Web サービス エージェントなどの共通するサービスを一元的に管理、登録、および構成するためのインフラストラクチャ。

  • パブリッシャ/サブスクライブ パターンに基づいて、モジュールおよびこれらのモジュールのコンポーネント間で緩やかに結合された通信をサポートする機能。

  • モデル ビュー コントローラ、モデル ビュー プレゼンタ、コマンド パターンなどの共通パターンに対する既存のインフラストラクチャ。

 要件が確立されたところで、このソリューションの実現に向けて構築する、基盤としてのフレームワークを検討し始めました。


 INDEX
  [アーキテクチャ・ジャーナル]
  CAB および SCSF を使用したコンポジット スマート クライアントの設計
  1.コンポジット スマート クライアントのアーキテクチャ ガイダンス
    2.コンポジット UI アプリケーション ブロック
    3.WorkItemを識別するユース ケース指向とビジネス エンティティ指向のアプローチ
    4.WorkItemのパッケージ化とスマート クライアント ソフトウェア ファクトリ

インデックス・ページヘ  「アーキテクチャ・ジャーナル」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間