アプリケーションシステム同士の接続
最後に、アプリケーションシステム同士の接続をモデリングします。図12に示すシステムダイアグラムを開くと、先ほどまでの作業結果を反映して、図20に示すような状態で表示されるはずです。
先ほどまでの作業によって作成されたエンドポイントが各アプリケーションシステムに表示されているので、アプリケーション同士の接続を定義するときと同様に接続の作業を行うことができます。作業後の状態は図21のようになります。
ここまで来ると、図3に示していたような初期の構想にかなり近い表現でモデルの作成ができたことになります。
なぜシステムダイアグラムを作成するのか
本稿では、配置の方法や通信経路の設定などを説明し、アプリケーションシステムを定義して、システムダイアグラムを作成することができるということを説明してきました。しかし、そのほとんどはなんとなくアプリケーションダイアグラムとそう変わらない内容だと感じることもあったと思います。それでもなお、システムデザイナという機能があり、システムダイアグラムを作成するのには大きく3つの理由があると考えられます。
ポイント1:直感的に分かりやすくするため
アプリケーションダイアグラムでは、個々のアプリケーションが1枚の平面の上に表現されています。しかし、システムダイアグラムを描くことで、依存関係の強いまとまりがどこなのか? を直感的に分かりやすく表現することができます。アプリケーションの数が少ないうちや担当者が同じであるうちは、影響範囲は軽微かも知れません。しかし、アプリケーションの数が膨大であったり複数人のチームで作業をしたりという場合には、絵で見て分かりやすいというのは理解を助ける重要な要素の一つになるはずです。
ポイント2:公開範囲を明確にするため
例えば、図3に示したような例題システムの場合、「App1Database」というデータベースは「App1ServerApp」というWebサービスアプリケーションからのみ参照できればよく、「App2Database」というデータベースも同じく「App2ServerApp」というWebサービスアプリケーションからのみ参照できれば良いということが考えられている可能性があります。このとき、アプリケーションシステムという枠組みを導入しておけば、通信経路のデリゲートがどのように行われ、外部からはどこに対してリクエストを送信することが可能なのかといったことを明確にしておくことができます。頭の中にある暗黙知をモデルの形で形式知にしておくことで、次回以降に説明する論理データセンターダイアグラムや配置ダイアグラム(それぞれ論理データセンターデザイナ、配置デザイナという機能を利用します)を作成する際に、不用意な誤解や設定ミスを招く心配を軽減することができます。
ポイント3:VSTS-AEの仕様に従うため
最後のポイントは少し特殊ですが、VSTS-AEの仕様に忠実に従うためという理由があります。詳しくは配置デザイナを扱う回で説明しますが、配置ダイアグラムを作成する場合、システムダイアグラムと論理データセンターダイアグラムが必要となるために、システムダイアグラムを作成しておきます。
なおVSTS-AEは、配置デザイナを起動したときにシステムダイアグラムが存在していなくてもアプリケーションダイアグラムさえ存在していれば、すべてのアプリケーションを含む「DefaultSystem」という名前のシステムダイアグラムを自動生成する機能を備えています。しかし、DefaultSystemという名前では後で見たときに分かりにくいなどの弊害もあるため、あらかじめシステムダイアグラムを作成しておくことが無難な選択肢となっています。
まとめ
今回は、システムデザイナを使ったシステムダイアグラムの作成を行う方法を一通り確認してきました。前回同様に聞きなれない言葉が多かったり、何に使えばいいのか悩んでしまったりといった部分も多かったかもしれません。何に使うか悩んだ時には本稿の「なぜシステムダイアグラムを作成するのか」を今一度確認していただき、自分たちだったら何に使えるかを検討する一助にしていただけたらと思います。
システムデザイナはアプリケーションデザイナと比較してしまうと目立たない印象を受けてしまいがちですが、VSTS-AEの中では中核に位置付けられている機能だと、著者は考えています。今回はシステムダイアグラムがアプリケーションダイアグラムに依存している点も解説してきましたが、次々回に予定している「配置デザイナ」で作成する配置ダイアグラムでもまたシステムダイアグラムは登場してきます。その際には、再度システムダイアグラムの位置づけを確認してみてください。
今回までの2回はアプリケーションをモデリングするための機能を紹介してきましたが、次回は「論理データセンターデザイナ」という機能について紹介します。これは、アプリケーションを配置するサーバーとネットワークの環境を論理的に捉えてその構成図をモデリングするための機能です。少し趣きが異なる機能ではありますが、最後につながる重要な機能の1つですのでお楽しみに。