はじめに
本シリーズでは、Visual Studio Team System 2008 Architecture Edition(以下、VSTS-AEと表記します)に用意されている「分散デザイナ」と総称される「アプリケーションデザイナ」「システムデザイナ」「論理データセンターデザイナ」「配置デザイナ」の4つのデザイナ機能について、使い方や使いどころなどを解説しています。第1回では図1に示すようなシンプルなWebアプリケーションを対象に、アプリケーションデザイナを利用してモデリングしていく方法を通し、使いどころなどを見てきました。
第2回となる今回は、もう少しアプリケーションの種類が増えて、全体が複雑になってきた際に利用するシステムデザイナという機能について見ていきます。
なお、付属のサンプルファイルは解凍すると2つのフォルダがあります。1つは「CodeZine-VSTS-AE02」で、中には本稿で解説した作業を一通り実施した結果があります。もう1つは「SampleWebService」というもので、本稿で扱う外部Webサービスに該当する部分を模擬的に作成したソリューションになっています。どちらも「必要な環境と準備」で説明している環境があればVisual Studioを使って中身を確認することができます。
対象読者
- .NET Frameworkを利用した開発プロジェクトに携わっている人
- Visual Studio Team System 2008に興味がある人
必要な環境と準備
本稿で解説している内容を実際に試す場合には、以下の環境が必要となります。
- Visual Studio Team System 2008 Architecture Edition
- または、Visual Studio Team System 2008 Team Suite
お手元に製品メディアがない場合には、評価版を利用しても構いません。VSTS-AEの評価版は用意されていませんので、代わりに「Visual Studio Team System 2008 Team Suite(90 日間評価版)」をダウンロードしてインストールを行ってください。
なお、本稿で解説している内容およびスクリーンショットは、Visual Studio 2008 Team Suite + Service Pack 1を利用している環境に基づいています。そのため、VSTS-AEを利用している場合、Service Pack 1が当たっていない場合の2つの場合において、スクリーンショットの一部に差異がある可能性があります。本稿で解説している内容を実践する場合には、できる限りService Pack 1を適用した状態で行うようにしてください。
モデリングしてみよう
では、早速モデリングをしてみましょう。今回も前回同様に例題となるシンプルなアプリケーションを対象に、モデリングの方法や用意されている機能、それらの使いどころについて、順を追ってみていきたいと思います。
システムデザイナが扱う単位
前回は、アプリケーションデザイナという機能を見ていましたので、動作可能なひと固まりのアプリケーションを例にとっていました。Visual Studioのプロジェクトで例えるならば、WindowsアプリケーションプロジェクトやWebアプリケーションプロジェクトがVSTS-AEで扱う1つ1つのアプリケーションで、それらが利用するクラスライブラリプロジェクトはWindows/Webアプリケーションプロジェクトに含まれるものという位置づけでモデリングを考えていました。
今回は、システムデザイナという機能について見ていきますので、もう少し大きなくくりで捉えることになります。例えば、スマートクライアントアプリケーションを考えてみます。クライアント側にはWindowsアプリケーションがあり、サーバー側にはWebサービスが配置されるはずです。この2つはどちらも動作可能なひと固まりのアプリケーションですが、スマートクライアントを考える場合には、この2つをまとめてひと固まりと考えるはずです。このような論理的にひと固まりと考える単位をVSTS-AEではアプリケーションシステムと呼び、システムデザイナはこの単位をモデリングの単位として物事を考えていきます。なお、アプリケーションシステムをモデリングしたものをシステムダイアグラムと呼びます。
例題アプリケーションの確認
システムデザイナが扱うモデリングの単位はご理解いただけたでしょうか? では、今回対象とするシステムの全体像を確認しておきます。今回は図3に示すようなスマートクライアント型のシステムを対象としてみたいと思います。
メイン部分は、図3の左側部分にあるWindowsアプリケーションとWebサービスからなるスマートクライアント型のシステムです。このシステムのWebサービスがこれとは別に作成するWebサービスと外部に存在するWebサービスに依存しているような構成です。外部のWebサービスとは、今回の作業では、自分たちの範疇外にあるものという意味で用いています。以前に構築済みのものやAmazon社が提供するAmazon Webサービスなど一般に公開されているWebサービスを想像していただくと分かりやすいかもしれません。