チュートリアル : 代替可能な Web サービスの作成
更新 : 2007 年 11 月
このチュートリアルでは、以前に定義した Web サービスを代用するために複製する方法を説明します。このアプリケーションは「チュートリアル : Web サービスのデザイン」で実装しています。
前提条件
「チュートリアル : Web サービスのデザイン」を完了していること。
既存の Web サービスのコピーを作成するには
Catalog.sln ファイルを開きます。
アプリケーション ダイアグラムを表示します。
Catalog アプリケーションを右クリックし、[コピー] をクリックします。
コピーしたアプリケーションをアプリケーション ダイアグラムに貼り付けます。
貼り付けたアプリケーションに CatalogFacade という名前を付けます。
CatalogFacade には、Catalog 上の CatalogWebService エンドポイントおよび GetLegacyInfo エンドポイントと同じものが含まれています。その結果、CatalogFacade は Catalog と互換性のあるすべてのアプリケーションと互換性を持ちます。Catalog から CatalogDB などのアプリケーションへの接続は、すべて維持されます。ただし、CatalogFacade は、Catalog とは異なり実装済みとして表示されません。
メモ :
Visual Studio では、一部の設定はアプリケーション間でコピーされません。そのため、データベース接続は、グラフィカルに保持された状態で表示されていても、Visual Studio ではパスワードなどの要素がコピーされないため、実行時には動作しません。このような接続を有効にするには、CatalogFacade と CatalogDB の接続に関する情報を入力する必要があります。
それによって、CatalogFacade アプリケーションを分散システム デザイナでモデル化されていないレガシ アプリケーションに実装されたレガシ カタログのラッパー Web サービスとして使用できます。このようなレガシ アプリケーションは、アプリケーション ダイアグラムで汎用アプリケーションとして表現することもできます。レガシ アプリケーションの例として、AS/400 コンピュータ上で稼働する帳簿システムがあります。
これで、アプリケーションの種類として [汎用] を選択することにより、レガシ アプリケーションをモデル化できます。
レガシ アプリケーションをモデル化するには
ツールボックスから GenericApplication アプリケーションをダイアグラムにドラッグし、LegacyCatalog という名前を付けます。
ツールボックスから .NETWebServiceEndpoint エンドポイントを CatalogFacade にドラッグし、LegacyInterface という名前を付けます。
Alt キーを押しながら LegacyInterface エンドポイントをクリックし、LegacyCatalog にドラッグして接続します。
LegacyCatalog に新しいコンシューマ エンドポイントが表示されます。LegacyCatalog は古いカタログのアプリケーション プレースホルダです。Visual Studio では、LegacyCatalog のコードは生成されません。ただし、ダイアグラム上に表示されることにより、レガシ アプリケーションが存在し、その機能をラップする CatalogFacade Web サービスに接続していることが示されます。次の手順では、CatalogFacade と Catalog が同じコントラクトを提供することを示します。
カタログ システムをデザインするには
Shift キーを押しながら Catalog と CatalogDB をクリックします。
[ダイアグラム] メニューの [アプリケーション システムの構築] をクリックします。
[アプリケーション システムの構築] ダイアログ ボックスが表示されます。
[システム名] に「NewCatalogSystem」と入力します。
システム デザイナが開き、選択したアプリケーションが新しいシステムに表示されます。必要に応じて、アプリケーションの位置を調整してください。
CatalogWebService のエンドポイントを右クリックし、[プロキシ エンドポイントの追加] をクリックします。
この操作はシステムに通信経路を作成します。
アプリケーション ダイアグラムを表示します。
[SalesWebClient] を右クリックし、[アプリケーション システムの構築] をクリックします。
システムに CatalogSystem という名前を付けます。
[システム ビュー] ウィンドウから NewCatalogSystem を CatalogSystem にドラッグします。
NewCatalogSystem がシステムに接続するエンドポイントを提供していることに注意してください。このエンドポイントは、以前に作成したプロキシ エンドポイントです。このエンドポイントが Catalog 上の CatalogWebService への接続を提供します。
NewCatalogSystem 上の CatalogWebService プロキシ エンドポイントを SalesWebClient 上のコンシューマ エンドポイントに接続します。
アプリケーション ダイアグラムを表示します。
CatalogFacade と LegacyCatalog を含む新しいシステムを作成し、LegacyCatalogSystem という名前を付けます。
LegacyCatalogSystem 内の CatalogWebService にプロキシ エンドポイントを作成します。
CatalogSystem システムを表示します。
[システム ビュー] ウィンドウから NewCatalogSystem を削除します。
[システム ビュー] ウィンドウから LegacyCatalogSystem システムを CatalogSystem システムにドラッグします。
LegacyCatalogSystem システム上の CatalogWebService エンドポイントを SalesWebClient 上のコンシューマ エンドポイントに接続します。
NewCatalogSystem システムと LegacyCatalogSystem システムには、プロキシ エンドポイントとして公開した CatalogWebService エンドポイントがあります。したがって、CatalogSystem ではいずれのシステムも他方のシステムと置き換えることができます。
次に、CatalogWebService を含むアプリケーションの再利用可能なプロトタイプを作成します。既定の言語として Visual C# を使用します。このプロトタイプはツールボックスに追加できます。
再利用できるプロトタイプを作成するには
アプリケーション ダイアグラムを表示します。
ツールボックスから ASP.NETWebService をダイアグラムにドラッグします。
Catalog 上の CatalogWebService エンドポイントをコピーし、新しい ASP.NET Web サービス アプリケーションに貼り付けます。
新しいアプリケーションの [言語] プロパティを [Visual C#] に変更します。
[ダイアグラム] メニューの [ツールボックスに追加] をクリックします。
[ツールボックスに追加] ダイアログ ボックスが表示されます。
[プロジェクト名] ボックスに「CatalogWebServiceApp」と入力し、[OK] をクリックします。
[名前を付けてファイルを保存] ダイアログ ボックスが表示されます。Visual Studio では、このファイルはアプリケーション デザイナで使用されるアプリケーションのプロトタイプ ファイルである .adprototype として保存されます。
[保存] をクリックします。
ツールボックスを開き、CatalogWebServiceApp をダイアグラムにドラッグします。
ASP.NET Web サービス アプリケーションの再利用可能なカスタマイズ バージョンが作成されました。このアプリケーションにも CatalogWebService エンドポイントがあります。このプロトタイプは、新しい分散システム ソリューションを作成するときには必ずツールボックスに表示されます。
このプロトタイプは、共有された場所にエクスポートすることにより、他の分散システム デザイナ ユーザーと共有できます。詳細については、次のトピックを参照してください。