設定と制約
配置ダイアグラムを作成している際に、アプリケーションを配置できる論理サーバーと配置できない論理サーバーが存在していました。これは「制約」というもののせいだと書きました。VSTS-AEで扱うアプリケーションやアプリケーションシステム、論理サーバーなどには、それぞれに設定と制約というものが用意されています。先ほど作成した図12の配置ダイアグラムでも、どの論理サーバーにどのアプリケーションを配置するのかは分かります。しかし、OSは何を使うのか、IISの設定はどのようになってなければいけないのか、と言ったことはダイアグラム上では表現できません。これらを定義するのが設定と制約になります。
設定と制約は各デザイナで書き込んだり読み込んだりすることができますが、表1に示す通り、デザイナによっては読み取り専用になる場合もあります。
分散デザイナ | 設定 | 制約 |
アプリケーションデザイナ | 書き込み/読み取り | 書き込み/読み取り |
システムデザイナ | 書き込み/読み取り | 読み取り |
論理データセンターデザイナ | 書き込み/読み取り | 書き込み/読み取り |
配置デザイナ | 読み取り | 読み取り |
では、設定と制約の具体例を見ていきましょう。
設定
設定は対象となるもの(アプリケーションや論理サーバーなど)を動作させるために必要な構成要素です。アプリケーションであれば.NET Frameworkのランタイム環境やapp.configやweb.configといったアプリケーション構成ファイルの設定情報が含まれます。では、実際に見てみましょう。VSTS-AEでアプリケーションダイアグラム(この場合は「ApplicationDiagram1.ad」)を開きます。次に、ASP.NET Webアプリケーションのいずれかを選択します。このとき、Visual Studioの下部に[設定および制約]というウィンドウが表示されます(該当部分に設定および制約のタブがある場合はそれを選択すると表示されます。タブもない場合には、Visual Studioの[表示]メニューから[その他のウィンドウ]-[設定および制約]と選択することで表示されます)。[設定および制約]ウィンドウには図16のような内容が表示されているはずです(図16は[設定および制約]ウィンドウをフローティングにした状態でキャプチャしています)。
図16を見ると[設定と制約]ウィンドウの上部に制約に関する内容が、下部に設定に関する内容が表示されていることが分かります。ここでは、設定のほうを展開してみます。[アプリケーションの設定]-[Directory]-[Configuration]と展開していくとweb.configに記述するような内容を設定できる項目が表示されます。
図17では、web.configで<system.web>要素の<authentication>構成設定にあたる部分を選択しているものです。右側のドロップダウンで展開しているように、authentication構成要素にある認証モードをドロップダウンから選択して設定することができます。また、左側ツリーメニュー内の[Configuration]を右クリックして[リソースの追加]を選択すると、web.configに用意されている構成要素を追加して、設定内容を追加することもできます。
また、図16でツリーメニューの一番下に見えている[カスタム設定]という項目では、文字列や数値、日付などの値をキー/値ペアで設定していくことができます。カスタム設定を追加するためには、[カスタム設定]を右クリックして、[カスタム設定の追加]を選択します。
カスタム設定のダイアログウィンドウが開くのでここで、キー項目となる名前やその値、値の種類などを設定して追加します。
カスタム設定の追加の際に図20の真ん中左側にある[プロパティとして表示]と言うところをチェックしておくと、以降は、Visual Studioのプロパティウィンドウにこの項目を表示させておくこともできます。いちいちこのウィンドウを開かなくても編集ができるため、便利な機能の1つです。
カスタム設定ウィンドウで設定した名前、値、説明がそれぞれプロパティウィンドウに表示されていることが確認できます。
制約
制約は対象となるもの(アプリケーションや論理サーバーなど)の相手(アプリケーションからみた場合はアプリケーションを配置する論理サーバーで、論理サーバーからみた場合は論理サーバーがホストするアプリケーション)に対して、満たしてほしい条件を設定しておくためのものです。
では、実際に見てみましょう。Visual Studioで論理データセンターダイアグラム(この場合は「ExsampleLogicalDataCenter1.ldd」)を開きます。次にWindowsClientを選択します。内容は少し異なりますが、先ほどと同様に[設定および制約]ウィンドウに、制約に関する項目と設定に関する項目が表示されます。
ツリーメニューの[論理サーバーの設定]以下については、設定できる項目はOSのバージョンや.NETのバージョンなどになって異なりますが、さきほど見てきたことと同様のことが行えます。ここでは、[アプリケーションの制約]となっている部分に注目していきましょう。図22で[アプリケーションの制約]の1つ下の階層を見ると「XXXXApplication」となっているものがあります。これはこの論理サーバーがサポートするアプリケーションは何かを示しています。この場合は、図22に表示されている3つがサポートされます。
では、次に[WindowsApplication]を展開してみましょう。[WindowsApplication]-[ユーザー定義]-[Dictionary]-[Configuration]と展開すると先ほど、ASP.NET Webアプリケーションの設定で見ていたような項目が表示されます。
これらはデフォルトではグレー表示ですが、ツリーメニューでチェックをつけることで編集可能となります。ここで設定した内容はすべてホストするアプリケーションに求める設定を表します。つまり、アプリケーションの構成ファイル(ここではWindowsアプリケーションをホストするのでapp.configファイル)に書かれてなければいけないことを指定することができます。一方、先ほど見ていたアプリケーションでも論理サーバーに求める制約を決めておくことができます。双方で設定と制約を活用し、絵には直接表現されないより細かなレベルでの要求事項を的確に伝えていくことができるようになります。