モデリングしてみよう
早速ですが、アプリケーションデザイナで単純なアプリケーションのモデリングを行ってみたいと思います。今回は話を単純にするために、Webアプリケーションがデータベースを必要とするようなアプリケーションを題材にします。非常にシンプルですが、まずイメージを先に示しておきます。次の[図2]はVisioでアプリケーション構成のイメージをレイアウトしたものです。
1台のサーバーには、IIS上で動作するWebアプリケーションがあり、もう1台のサーバーにはデータベースがあるという非常に簡単なものです。まずはこれをアプリケーションデザイナでモデルにしてみます。
モデル作成……その前に
[図2]に示すのは、非常にシンプルなWebアプリケーションですが、実はこのWebアプリケーションが結構 大規模かもしれません。そうなった場合、考えることの一つに「アプリケーション内部の構造をどう考えるか?」があると思います。例えば、最近何かと話題のASP.NET MVCを使ったMVCモデルのものであったり、レイヤーパターンに基づく多階層構造のものであったりするかもしれません。
しかし、VSTS-AEに用意されているデザイナはアプリケーションデザイナに関わらず、すべてが「動作可能なひと固まりのアプリケーション」をモデリングの単位としています。このため、MVCモデルやレイヤーパターンといった動作可能なひと固まりのアプリケーションの内部の構造については、アプリケーションデザイナを利用してモデリングを行うことができません。このような内部構造のモデリングを行うためには、Visual Studioに用意されているクラスダイアグラム機能を使ってクラス図を作成するか、従来通りVisio Professionalなどのツールを利用してモデリングを行う必要があります。
VSTS-AEに用意されているのは「分散デザイナ」と称される機能であり、数百人月とか数千人月かかるような超大規模なシステム開発であったり、SOAのような少し先進的な分散型のシステム開発であったりといったアプリケーションを考えるときに利用されるものです。このような場合には、VSTS-AEの各デザイナを利用して、ひと固まりのアプリケーションがそれぞれどのような制約や条件を持ち、そのうえでお互いがどのように関連しあって動作していくのかをモデリングしていくことができます。
このコラムは完全に著者の私見ですが、VSTAやVSTS-AEがどこが中途半端だと感じる原因は次のようなことではないかと考えています。
VS2005がまだWhidbeyと呼ばれていたころ、DSIやSystem Centerシリーズという構想が発表され、ある規約に基づいてシステムの運用をシステム自身に行わせていこうという夢が語られていました。その規約を表すモデルとしてSDM(System Definition Model)が作られ、SDMを作成するためのツールとして、VSTAが登場したのだろうと思います。しかし、Whidbeyの開発は進んでもDSIの構想は徐々に影をひそめ、System Centerも当時はパッとしたものがありませんでした。そんな中でVSTAをリリースし、その流れをほぼそのままもっているVSTS-AEがリリースされ、どちらも周囲の環境まで含めると製品構想に実装が追い付いていないのではないかと思います。
次期Visual Studio Team Systemのコードネーム“Rosario”では、ようやくモデリングの機能をアプリケーションの外部だけではなくアプリケーションの内部にまで向けて、UMLをサポートする予定になっています。実装済みコードからのリバースエンジニアリングもサポートする予定で、Architetcure Editionを利用するシーンは大幅に広がることが予想され、今後の動向が注目されるところです。
アプリケーションを配置する
さて、前置きが長くなりましたが、早速アプリケーションを配置してみましょう。
Visual Studioを開き、適当な名前でVisual Studioソリューションを作成してください。ソリューションエクスプローラで[新しい分散システムダイアグラム...]を追加します[図3]。新しい項目の追加ダイアログで[アプリケーションダイアグラム]を選択して、追加します[図4]。
中央にアプリケーションダイアグラムのデザイナが開きます。このとき、通常は左側にあるツールボックスを前面に持ってくると普段はコントロールがたくさん並んでいるところに、[エンドポイント]と[アプリケーション]が表示されています([図5]の左側の部分)。
[アプリケーション]タグに表示されているものは、Visual Studioで新しいプロジェクトを作成するときに利用する[Visual Studio プロジェクトテンプレート]に似たようなもので、WindowsアプリケーションやWebアプリケーションなどを表すアイテムがあります。
[エンドポイント]タグに表示されているものは、アプリケーションが外部からの接続を受け付ける口を定義するもので、Webサービス用やデータベース用などを表すアイテムがあります。アプリケーションデザイナを使ってモデルを作成する場合には、ツールボックスのアプリケーションタブから、必要なものをドラッグ&ドロップすることで行います。
今回の場合は、Webアプリケーションとデータベースからなるアプリケーションなので、アプリケーションタブから、[ASP.NETWebApplication]と[ExternalDatabase]をそれぞれドラッグして配置します。2つの配置が終わると[図5]のようになります。
アプリケーションの配置は以上です。置くだけなので非常に簡単です。以降では、この2つを使って関連付けなどさまざまなポイントを紹介していきます。