目的
    システムの機能を、どのように物理ノードにわたって分散させるかを表現する。この作業は分散システムにのみ適用されます。
手順
入力とする成果物: 結果となる成果物:
頻度: 反復ごとに 1 回。特に推敲フェーズ中。
役割: ソフトウェア アーキテクト
ツール メンター:
More Information: 

ワークフローの詳細:

この作業は、システムの導入アーキテクチャを、物理ノードとそれらの相互接続という観点で定義します。「作業: アーキテクチャ分析」の中で、初期の配置モデルを定義しました。この作業では、その配置モデル (特に配置ビュー) を詳細化して、現在の設計を反映させます。

推敲フェーズ初期の配置ビューは通常、予備的ですが、推敲の終わりでは、十分に定義されています。

一部の実装環境は暗黙の分散サポートを提供します。つまり、要素は自動的に分散可能であり、開発者にとって特別な作業が必要ありません。そうした分散は明示的にモデル化する必要がありません。ただし、特別な分散 (例えば、実装環境で提供されるデフォルトの分散を拡張または詳細化する追加の分散など) は記述しなければなりません。開発中のシステムが特別な導入を含まない場合、この作業 (および関連する配置ビュー) は省略できます。

分散要求の分析ページの先頭へ

目的 システムに必要な分散の程度を定義する。

分散要求を推進するのは以下のものです。

  • 問題領域における分散要求 (機能上の要求) — システムが特定の分散プロセッサ、データベース、またはレガシー システムをアクセスまたは使用して、その機能性の一部を実行するという明示的な要求が存在する場合があります。
  • 選択された導入構成 — 特定の導入構成がノードの数とタイプ、およびそれらの相互接続を定義することにより、システムの分散に関して制約が課せられる場合があります。例えば、多層導入構成の選択とは、一般に、クライアント ノード、Web サーバー ノード、アプリケーション サーバー ノードの存在を意味します。特定の導入構成は、通常、「作業: アーキテクチャ分析」の中で選択し、この作業の中で詳細化します。
  • 必要なリソース (機能外の要求) — 時間集約または計算集約の機能性は、その機能の要求を処理をするために、特定のハードウェア構成が装備されていることが必要になる場合があります。例えば、高速なプロセッサ、大容量の RAM やディスクなどです。特殊な専用プロセッサを要するデジタル信号処理が例として挙げられます。
  • フォールト トレランスの必要性 (機能外の要求) — バックアップとなるプロセッサが必要な場合があります。
  • 拡張性と柔軟性に関する考慮 (機能外の要求) — 同時ユーザー数が膨大になると、単一プロセッサでは対応できなくなります。システムの機能性を負荷分散し、最大のパフォーマンスと拡張性を提供可能にする要求が考えられます。
  • 経済面での考慮 — コストパフォーマンスが小さく、安いプロセッサは大規模モデルに対応できません。

多くのアーキテクチャ上の問題と同様、これらの要求はある程度相互に排他的です。少なくとも最初は、矛盾する要求になることがよくあります。重要性で要求のランク付けを行うと、矛盾の解消に役立ちます。

ネットワーク構成の定義ページの先頭へ

目的 ネットワークの構成とトポロジーを定義する。

このステップでは、初期の配置モデル (「作業: アーキテクチャ分析」で定義) を詳細化し、前のステップで識別した分散要求をサポートします。

ネットワークのトポロジーと、プロセッサの能力と特性、そしてネットワーク上のデバイスがシステムで可能な分散の性質と程度を決定します。

以下の情報を捕捉する必要があります。

  • ネットワークの場所を含む物理的配置
  • ネットワークのノード、およしそれらの構成と性能 (この構成には、ノード上にインストールしたハードウェアとソフトウェア、プロセッサ数、ディスク容量、メモリ量、スワップ量などがあります。ノード上にインストールしたハードウェアは「デバイス」を使用して表現できます。
  • ネットワーク上の各セグメントの帯域
  • ネットワーク上の冗長なパスの存在 (これはフォルト トレランス能力の提供に役立ちます)
  • ノードの主要目的:
    • エンド ユーザーが使うワークステーション ノード
    • ヘッドレスな処理が発生するサーバー ノード (サーバー構成を簡素化するために、サーバー コンポーネントを、ユーザー インターフェイス コンポーネントが一切ないヘッドレスなイメージに詰め込むことができます)
    • 開発とテストに使う特殊構成
    • そのほかの特殊プロセッサ
  • IP ネットワークが存在する場合は、IP の設計と設備 (たとえば、DNS、VPN など)
  • ソリューションにおけるインターネットの役割

次に示すダイアグラムは ATM の配置ビューです。

ATM の配置ビュー

ダイアグラムでは 2 つのノード (この例の中心である ATM 自体) と銀行間ネットワークへの全接続を担当する ATM ネットワーク サーバーを示しています。ATM ネットワーク サーバーは ATM 作成者の範囲外ですが、ネットワーク帯域を文書化する方法を説明するためにここに示しています。このダイアグラムは ATM ノードで実行するプロセスとスレッドについても示しています。これは次のステップのシステム要素のノードへの割り当てで説明します。

プロセッサとネットワーク容量を文書化するのに、注記を利用することに注意します。このような文書はノード (あるいはデバイス) の文書化フィールドに入れることもできます。この場合にはダイアグラムには示されません。

システム要素のノードへの割り当てページの先頭へ

目的 システムの作業負荷を分散する。

このステップでは、システム要素が前のステップで定義されたノードに割り当てられます。配置は、論理および物理の両側面から記述できます。

論理配置は、論理要素 (クラス、サブシステム、これらのインスタンスなど) がノードにマップされる場所です。これらには制御スレッドが含まれます。例えば、論理配置は、AuctionManager サブシステムが Application サーバーに配置されることを示す場合があります。

物理配置は、ファイルがノードにマップされる場所です。例えば、物理配置は、CloseAuctionTimer.class ファイルが server76 に配置されることを示す場合があります。

分散は、分散前の合計が分散後の部分の合計よりも小さい分野の 1 つです。分散によって真の利益を達成するには、手間をかけて注意深く計画する必要があります。要素とノードの対応付けを定めたら、次の事項を検討する必要があります。

  • ノードの容量 (メモリ量とプロセッサパワーに関するもの)
  • 通信媒体の帯域 (バス、LAN、WAN)
  • ハードウェアと通信リンク、再ルーティングの可用性
  • 冗長性とフォールト トレランスの要求
  • 応答時間の要求
  • スループットの要求
  • その他

要素をノードに割り当ててネットワーク間トラヒック量を最小化します。相互作用の多い要素は同一ノードにおく必要があります。一方、あまり相互作用のない要素は別々のノードにおいてかまいません。時に反復が必要となる重要な決定は、境界線をどこに引くかということです。2 つ以上のノードにわたってプロセスを分散させるには、システム内のプロセス間通信のパターンを詳しく調査する必要があります。多くの場合、処理を分散すると、あるマシンから 2 台目のマシンに作業負荷を移せるという単純な認識があります。実際には、プロセスとノードの境界をよく検討しておかないと、プロセス間通信の作業負荷が余分にかかってしまい、作業負荷を分散したことによるプラス部分が簡単に相殺されてしまいます。

前に示した ATM の配置ビューのダイアグラムは ATM ノードへのプロセスの割り当てです。プロセスが 1 つあり (ATM メイン)、これが別々の 3 つの制御スレッドに分かれます (顧客インターフェイス、ATM ネットワーク インターフェイス、そしてデバイス コントローラです)。



Rational Unified Process   2003.06.15