연습: 대체 가능 웹 서비스 만들기
업데이트: 2007년 11월
이 연습에서는 대체 항목으로 사용하려는 이전에 정의한 웹 서비스를 복제하는 방법을 보여 줍니다. 이 응용 프로그램은 연습: 웹 서비스 디자인에서 구현되었습니다.
사전 요구 사항
연습: 웹 서비스 디자인을 완료하십시오.
기존 웹 서비스의 복사본을 만들려면
Catalog.sln을 엽니다.
응용 프로그램 다이어그램을 표시합니다.
Catalog 응용 프로그램을 마우스 오른쪽 단추로 클릭하고 복사를 클릭합니다.
복사한 응용 프로그램을 응용 프로그램 다이어그램에 붙여넣습니다.
붙여넣은 응용 프로그램 버전의 이름을 CatalogFacade로 지정합니다.
CatalogFacade에는 Catalog에 표시되는 동일한 CatalogWebService 및 GetLegacyInfo 끝점이 있습니다. 그러므로 CatalogFacade는 Catalog와 호환되는 모든 응용 프로그램과 호환됩니다. Catalog에서 다른 응용 프로그램(예: CatalogDB)으로의 모든 연결이 유지됩니다. 그러나 Catalog와 달리 CatalogFacade는 구현된 것으로 표시되지 않습니다.
참고:
Visual Studio에서는 응용 프로그램 간에 특정 설정을 복사하지 않습니다. 그러므로 데이터베이스 연결이 시각적으로 유지되기는 하지만 Visual Studio에서 암호 등의 일부 요소는 복사하지 않기 때문에 이 연결은 런타임에 작동하지 않습니다. 이 연결을 사용하려면 CatalogFacade와 CatalogDB 간의 연결 정보를 입력해야 합니다.
CatalogFacade 응용 프로그램은 분산 시스템 디자이너로 모델링되지 않은 레거시 응용 프로그램에서 구현되는 레거시 카탈로그에 대한 래퍼 웹 서비스로 사용할 수 있습니다. 또한 이와 같은 레거시 응용 프로그램은 제네릭 응용 프로그램 종류를 사용하여 응용 프로그램 다이어그램에 표시할 수 있습니다. 이러한 응용 프로그램의 예로는 AS/400 컴퓨터에서 실행되는 장부 시스템이 있습니다.
이제 제네릭 응용 프로그램 종류를 사용하여 레거시 응용 프로그램을 모델링합니다.
레거시 응용 프로그램을 모델링하려면
도구 상자에서 GenericApplication 응용 프로그램을 다이어그램으로 끌고 이름을 LegacyCatalog로 지정합니다.
도구 상자에서 .NETWebServiceEndpoint 끝점을 CatalogFacade로 끈 다음 끝점의 이름을 LegacyInterface로 지정합니다.
Alt 키를 누른 상태로 LegacyInterface 끝점을 LegacyCatalog로 끌어 두 항목을 연결합니다.
새 소비자 끝점이 LegacyCatalog에 나타납니다. LegacyCatalog는 이전 카탈로그에 대한 응용 프로그램 자리 표시자입니다. Visual Studio에서는 LegacyCatalog에 대해 코드를 생성하지 않습니다. 그러나 다이어그램에 이 응용 프로그램이 있으면 레거시 응용 프로그램의 존재 및 레거시 응용 프로그램의 기능을 래핑하는 CatalogFacade 웹 서비스에 대한 연결이 문서화됩니다. 다음 절차에서는 CatalogFacade와 Catalog가 동일한 계약을 제공하는 방법을 보여 줍니다.
카탈로그 시스템을 디자인하려면
Shift 키를 누른 상태로 Catalog 및 CatalogDB를 클릭합니다.
다이어그램 메뉴에서 응용 프로그램 시스템 디자인을 선택합니다.
응용 프로그램 시스템 디자인 대화 상자가 나타납니다.
시스템 이름에 NewCatalogSystem을 입력합니다.
선택한 응용 프로그램이 새 시스템에 포함된 상태로 시스템 디자이너가 열립니다. 필요한 경우 응용 프로그램의 위치를 조정합니다.
CatalogWebService 끝점을 마우스 오른쪽 단추로 클릭한 다음 프록시 끝점 추가를 선택합니다.
이 작업은 이 시스템에 대한 통신 경로를 만듭니다.
응용 프로그램 다이어그램을 표시합니다.
SalesWebClient를 마우스 오른쪽 단추로 클릭한 다음 응용 프로그램 시스템 디자인을 클릭합니다.
시스템의 이름을 CatalogSystem으로 지정합니다.
시스템 뷰 창에서 NewCatalogSystem을 CatalogSystem으로 끌어 옵니다.
NewCatalogSystem은 시스템을 연결할 수 있도록 끝점을 노출합니다. 이 끝점은 이전에 만든 프록시 끝점으로, Catalog에서 CatalogWebService에 대한 연결을 제공합니다.
NewCatalogSystem에서 CatalogWebService 프록시 끝점을 SalesWebClient의 소비자 끝점에 연결합니다.
응용 프로그램 다이어그램을 표시합니다.
CatalogFacade 및 LegacyCatalog를 포함하는 새 시스템을 만들고 이름을 LegacyCatalogSystem으로 지정합니다.
LegacyCatalogSystem에 CatalogWebService에 대한 프록시 끝점을 만듭니다.
CatalogSystem 시스템을 표시합니다.
NewCatalogSystem 시스템을 CatalogSystem에서 삭제합니다.
시스템 뷰 창에서 LegacyCatalogSystem 시스템을 CatalogSystem 시스템으로 끕니다.
LegacyCatalogSystem 시스템에서 CatalogWebService 끝점을 SalesWebClient의 소비자 끝점에 연결합니다.
NewCatalogSystem 및 LegacyCatalogSystem 시스템은 각각 프록시 끝점으로 노출한 CatalogWebService 끝점을 포함합니다. 그러므로 CatalogSystem에서 각 시스템을 서로 대체할 수 있습니다.
이제 CatalogWebService를 포함하며 기본 언어로 Visual C#을 사용하는 응용 프로그램의 재사용 가능한 프로토타입을 만듭니다. 이 프로토타입을 도구 상자에 추가할 수 있습니다.
다시 사용 가능한 프로토타입을 만들려면
응용 프로그램 다이어그램을 표시합니다.
도구 상자에서 ASP.NETWebService를 다이어그램으로 끕니다.
Catalog의 CatalogWebService 끝점을 복사하여 새 ASP.NET 웹 서비스 응용 프로그램에 붙여넣습니다.
새 응용 프로그램에 대해 언어 속성을 Visual C#으로 변경합니다.
다이어그램 메뉴에서 도구 상자에 추가를 선택합니다.
도구 상자에 추가 대화 상자가 나타납니다.
이름 상자에 CatalogWebServiceApp를 입력하고 확인을 클릭합니다.
파일 저장 대화 상자가 나타납니다. Visual Studio에서는 파일을 응용 프로그램 디자이너에서 사용하는 응용 프로그램 프로토타입 파일인 .adprototype 파일로 저장합니다.
저장을 클릭합니다.
도구 상자를 열고 CatalogWebServiceApp를 다이어그램으로 끕니다.
CatalogWebService 끝점도 포함되는 ASP.NET 웹 서비스 응용 프로그램의 재사용 가능한 사용자 지정 버전을 만들었습니다. 이 프로토타입은 새 분산 시스템 솔루션을 만들 때마다 도구 상자에 표시됩니다.
이 프로토타입을 공유 위치에 노출하면 다른 분산 시스템 디자이너 사용자와 공유할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오.