モデリングしてみよう
では、早速モデリングをしてみましょう。今回はアプリケーションと論理データセンターの両方をそろえて作業を進めていく必要があります。本来であれば、例題とするアプリケーションやインフラを確認するところではありますが、今回例題として使う予定のもの(図1、図2)はそれぞれ連載の第2回、第3回で作成したものなので、その点は割愛させていただきます。
配置ダイアグラムの作成
アプリケーションとインフラのイメージをつかんで頂いたところで、早速Visual Studioでのモデリングに取り掛かります。添付のファイルを解凍して「CodeZine-VSTS-AE04\CodeZine-VSTS-AE04.sln」というソリューションを開いてください。ソリューションエクスプローラは図3のように表示されます。
この中から最上位に当たるシステムダイアグラム(この場合は「AllSystem.sd」を開きます。システムダイアグラムが表示されたら、適当なところで右クリックし、図4に示すように[配置の定義]を選択します。
配置の定義の設定を行うダイアログが表示されます。ここでは、論理データセンターダイアグラムが、図2に示したものと同じもの(この場合は「ExsampleLogicalDataCenter」)になっていることを確認して[OK]を選択します。
これで、新しく「<システムダイアグラム名>1.dd」(この場合は「AllSystem1.dd」)という名前の配置ダイアグラムが作成されます。
少し内容を確認してみると、配置ダイアグラム上には、論理データセンターダイアグラムで定義したモデルがあらかじめ表示されています。それぞれのサーバーに注目してみると、サーバー名の下に「システムビューからアプリケーションをドラッグしてバインドします。」と記述されていることが確認できます。ではシステムビューを見てみましょう。通常、Visual Studioのツールボックスが表示されている部分にシステムビューが表示されます(該当部分にシステムビューのタブがある場合はそれを選択すると表示されます。タブもない場合には、Visual Studioの[表示]メニューから[その他のウィンドウ]-[システムビュー]と選択することで表示されます)。
システムビューには同一ソリューション内にあるシステムダイアグラムが階層表示され、それぞれのシステムダイアグラムに含まれるアプリケーションが表示されていることが確認できます。配置ダイアグラムにはこのアプリケーションをドラッグして配置していくことになります。
では、試しにアプリケーションを1つ配置してみましょう。システムビューから[AllSystem]-[SmartClientSystem]とたどって、[App1ClientApp]を配置ダイアグラムの方にドラッグします。本来は[WindowsClient1]という部分にドラッグするのが正解ですが、試しに他の部分にドラッグしてみてください。例えば、[IISWebServer1]にドラッグしていくと図8のような状態になります。
ポップアップのメッセージで「互換性のある論理サーバーにアプリケーションをバインドします。」という内容が表示されます。メッセージの通りなのですが、[IISWebServer1]に対して、[App1ClientApp]を配置することはできませんという警告メッセージになります。これはアプリケーションや論理サーバーに対して「制約」というものが設定されているためなのですが、制約については後述します。次は[WindowsClient1]にドラッグしてみてください。今度は図9のようになります。
ポップアップメッセージは「アプリケーションをサーバーにバインドするためにドロップします。」という内容になりました。これは、この論理サーバーに対して、アプリケーションを配置できる状態であることを示しています。このまま[App1ClientApp]をドロップすると図10のようになります。
このようにして、当初考えていたアプリケーションとインフラの関係に従って、システムビューにあるアプリケーションを配置ダイアグラム上にドラッグ&ドロップしていくと、図11のようになります。
この状態で、システムビューを確認してみると、図12のようになります。
配置ダイアグラム上に配置を行ったアプリケーションには<バインド済み>という表示がされるので、例え数が多くなったとしても、まだ配置していないアプリケーションはどれなのかをすぐに確認できるようになっています(図12上の[Service1]は自分が開発しない外部サービスを定義しているものなので、今回の配置ダイアグラム上には配置していません)。
ここまでで、論理データセンターにアプリケーションをどのように配置するのか、というモデルを作成することができました。この絵があれば、ぱっと見でもアプリケーションとインフラの関係がどのようになるか分かりやすく伝えることができます。
最上位のシステムダイアグラム以外を選ぶとどうなるか
同一ソリューション内にはシステムダイアグラムがいくつかあるにも関わらず、あえて最上位に位置するシステムダイアグラムを選択して作業を進めてきました。では、それ以外のシステムダイアグラムを選択した場合にはどうなるでしょうか?
試しにスマートクライアント部分を定義しているシステムダイアグラム(この場合は「SmartClientSystem.sd」)を開いて、[配置の定義]を実行してみてください。新しい配置ダイアグラムが作成され、ダイアグラム上に選択した論理データセンターダイアグラムの内容が表示されているところまでは変わりません。では、システムビューを確認してみてください。システムビューは図13のようになっているはずです。
選択したシステムダイアグラムの中に含まれるアプリケーションだけがシステムビューに表示されています。論理データセンター自体が巨大で何個かの論理データセンターダイアグラムに分けている時にはシステムダイアグラムと論理データセンターダイアグラムの組み合わせをうまく組み合わせて、作業効率を上げていくことができます。
次に、同一ソリューション内に含まれるアプリケーションダイアグラム(この場合は「ApplicationDiagram1.ad」)を開いて、[配置の定義]を実行してみてください。配置ダイアグラム上は今までと変わりません。システムビューを確認すると図14のように表示されているはずです。
「Default」というシステムダイアグラムの中にフラットにアプリケーションが表示されています。さて、Defaultシステムダイアグラムとは何でしょうか。答えはソリューションエクスプローラにあります。
「既定のシステム」というソリューションフォルダとその中に「DefaultSystem1_1.sd」というシステムダイアグラムが自動的に作成されています。アプリケーションダイアグラムから配置ダイアグラムを作成することもできますが、暗黙のうちにシステムダイアグラムが作成されてそれを利用している点は押さえておいてください。
連載の第2回で「システムデザイナはVSTS-AEの中核たる機能である」ということを書きました。システムダイアグラムはアプリケーションダイアグラム、配置ダイアグラム、そして配置ダイアグラムで使うための論理データセンターダイアグラムと強い依存を持っていて、VSTS-AEの機能を使うには避けては通れないということが、ここで再確認していただけたのではないかと思います。