配置デザイナ
配置デザイナを利用すると、システムデザイナで作成したアプリケーションシステムダイアグラムと論理データセンターデザイナで作成した論理データセンターダイアグラムから本当に配置が可能な定義がなされているかを確認できます。配置デザイナでは、論理データセンターダイアグラム内の論理サーバーに対して、アプリケーションシステムから配置するアプリケーションを選択するという作業を行います。図10は、IISWebServer1という名前のIISWebServerに、SalesWebClientという名前のアプリケーションを配置している例です。
配置デザイナで論理データセンターにアプリケーションを配置する場合、図10の左側にあるようなVisual Studioのシステムビューからアプリケーションをドラッグ&ドロップします。システムビューはシステムデザイナを利用しているときに表示されるものと同じものです。
配置デザイナの冒頭でもアプリケーションシステムダイアグラムを利用すると説明しましたが、配置デザイナではアプリケーションデザイナで作成したアプリケーションダイアグラムを直接は利用していないので注意が必要です。Visual Studio上では、アプリケーションダイアグラムから配置の定義を開始する(配置デザイナを起動する)こともできますが、その際は暗黙的にアプリケーションダイアグラム上の全アプリケーションを含むデフォルトのアプリケーションシステムダイアグラムが自動的に定義された上で配置の定義を行うことになります。アプリケーションデザイナから配置の定義を開始する場合にはその点に気をつけてください。
さて、配置デザイナで論理サーバーへのアプリケーションの配置が一通り完了したならば、最後にこれらが正しく配置可能なのかどうかを検証します。検証作業自体はVisual Studioが自動的に行ってくれますが、この際行われることはアプリケーションの設定および制約と論理サーバーなどの設定および制約の整合性を確認するという作業になります。図11は、配置ダイアグラムの検証を行った結果を示しています。
図11のように配置の整合性にエラーがある場合には、Visual Studioのエラー一覧に警告としてリストが表示されます。この情報を参考に1つずつエラー内容を正常なものに修正することで、配置に問題のないアプリケーション構成と論理データセンター構成を作成できます。
まとめ
今回はVSTAのもつ分散システムデザイナという仕組みの中に含まれる4つのデザイナ機能について見てきました。ここで4つのデザイナ機能について簡単に機能のポイントをまとめておきます。
- アプリケーションデザイナ
- 実行可能形式のVisual Studioプロジェクト単位でアプリケーション定義を行う
- アプリケーションの境界はエンドポイントを使用して示す
- アプリケーション間の通信は接続を行うことで示す
- アプリケーションに必要な条件は設定および制約として定義できる
- システムデザイナ
- アプリケーションを分かりやすい論理的な単位にまとめるための定義を行う
- アプリケーションシステムの境界はプロキシエンドポイントを使用して示す
- プロキシエンドポイントを持つアプリケーションシステムはアプリケーションと同じような振る舞いをできる
- アプリケーションシステムは入れ子にしてデザインできる
- 論理データセンターデザイナ
- 物理的なサーバーやネットワークの構成を論理的な構成でモデルとして定義を行う
- 物理サーバーと論理サーバーは必ずしも1対1にはならない
- 論理データセンターに必要な条件は設定および制約として定義できる
- 配置デザイナ
- アプリケーションシステムダイアグラムと論理データセンターダイアグラムを利用して定義を行う
- アプリケーションダイアグラムから配置の定義を開始しても実態はアプリケーションシステムダイアグラムを利用している
- 配置の定義後はダイアグラムの検証を行いエラー箇所の修正をする
これらの点を踏まえた上で、アプリケーション開発の初期の段階からモデルによる設計および確認を行うことは非常に有意義な方法になると思います。しかし、VSTAはどちらかというとSOAベースの大規模アプリケーション開発を意識している部分が多く見受けられるため、小~中規模アプリケーション開発などでむやみにツールだけを導入することはリスクを伴うとも考えています。例えばASP.NET Webアプリケーションからコンソールアプリケーション(バッチプログラム)を起動し、その中でさらに別のコンソールアプリケーションを次々起動していくなどの実行可能形式間の関連が多く、あらかじめ関連をモデルとして捉えておく必要があるなどの目的のためにVSTAの分散システムデザイナを利用すれば、開発の初期段階から問題点を是正するための強力なツールになるでしょう。
今回は、各デザイナがどのような機能を持っていてそれらがどのように関連しているのかだけを紹介しましたが、これらが導入のための検討材料になればと思います。
次回は、開発者が最も利用するであろうVisual Studio Team Edition for Software Developersについて、このツールに備わっている単体テスト機能、静的コード分析機能、パフォーマンス分析機能を中心に紹介します。