다음을 통해 공유


Discovery: UDDI

이 샘플에서는 로컬 컴퓨터에 설치된 UDDI(Universal Description, Discovery, and Integration) v2 서비스를 사용하여 기본 작업을 수행하는 WCF(Windows Communication Foundation) 클라이언트를 구현하는 방법을 보여 줍니다. UDDI 레지스트리는 Windows Server 2003과 함께 릴리스된 UDDI 서비스의 일부입니다.

참고

이 샘플의 설치 절차 및 빌드 지침은 이 항목의 끝부분에 나와 있습니다.

이 샘플은 로컬에 설치된 UDDI 레지스트리와 통신하는 클라이언트 콘솔 프로그램(.exe)으로 구성됩니다. 이 샘플은 또한 다른 UDDI 조회 및 게시 서비스 구현과도 통신할 수 있습니다. 클라이언트 동작은 콘솔 창에 표시됩니다.

샘플 소스에는 자동으로 생성된 다음 파일이 포함되어 있습니다.

  • UddiTypes.cs(UDDI 형식)
  • UddiInquireClient.cs(UDDI 조회 클라이언트)
  • UddiPublishClient.cs(UDDI 게시 클라이언트)
  • Svcutil.exe를 사용하여 이러한 파일을 다시 생성할 수는 있지만 샘플을 실행하기 위해 이 파일을 다시 생성할 필요는 없습니다.

위에 나열된 파일을 생성하려면

  1. UDDI 스키마(영문 페이지일 수 있음)에서 파일을 다운로드한 다음 UddiTypes.xsd로 저장합니다.

  2. 다음 명령을 사용하여 UddiTypes.cs를 생성합니다.

    xsd.exe /classes UddiTypes.xsd
    
  3. 다음 명령을 사용하여 UddiInquireClient.cs를 생성합니다.

    svcutil.exe /out:UddiInquireClient.cs http://uddi.org/wsdl/inquire_v2.wsdl
    
  4. UddiInquireClient.cs를 열고 다음 인터페이스 선언을 제외한 그 이후의 모든 형식 선언을 제거합니다.

          public interface Inquire {...}
    

    또한 첫 번째 형식화된 메시지 선언을 제외한 그 이전까지 제거합니다.

         [System.Diagnostics.DebuggerStepThroughAttribute()]
         [System.CodeDom.Compiler.GeneratedCodeAttribute(       
                          "System.ServiceModel", "3.0.0.0")]
         [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
    
  5. 다음 명령을 사용하여 UddiPublishClient.cs를 생성합니다.

    svcutil.exe /out:UddiPublishClient.cs http://uddi.org/wsdl/publish_v2.wsdl
    
  6. UddiPublishClient.cs를 열고 다음 선언을 제외한 그 이후의 모든 형식 선언을 제거합니다.

          public interface Publish {...}
    

    첫 번째 형식화된 메시지 선언을 제외한 그 이전까지 제거합니다.

         [System.Diagnostics.DebuggerStepThroughAttribute()]
         [System.CodeDom.Compiler.GeneratedCodeAttribute(       
                          "System.ServiceModel", "3.0.0.0")]
         [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
    

    네임스페이스 Uddiorg.api 내에 있는 모든 선언을 제거합니다. 이러한 선언은 UddiInquireClient.cs에서 이미 생성된 것입니다.

클라이언트는 다음과 같이 프록시를 사용하여 UDDI 레지스트리에서 정보를 검색하는 작업을 구현합니다.

  • public void Login(string username, string password)
    게시 서비스에 로그온하는 데 사용됩니다. 게시 서비스의 get_authToken() 작업을 사용합니다.
  • public businessInfo[] GetBusinessByName(string businessName)
    UDDI 레지스트리에서 제공된 문자열과 일치하는 이름을 갖는 서비스를 쿼리합니다. 조회 서비스의 find_business() 작업을 호출합니다.
  • public string PublishBusiness(string businessName, string description)
    UDDI 레지스트리에 비즈니스를 게시합니다. 게시 서비스의 save_business() 작업을 사용합니다.
  • public businessInfo[] GetMyBusinesses()
    지정된 사용자가 게시한 모든 비즈니스를 반환합니다. 게시 서비스의 get_registeredInfo() 작업을 사용합니다.
  • public businessInfo GetMyBusinessByName(string businessName)
    지정된 사용자가 게시한 비즈니스 중 지정된 이름을 갖는 첫 번째 비즈니스를 반환합니다. 게시 서비스의 get_registeredInfo() 작업을 호출합니다.
  • public void DeleteMyBusinesses()
    지정된 사용자가 게시한 모든 비즈니스를 삭제합니다. 게시 서비스의 delete_business() 작업을 사용합니다.
  • public void DeleteMyBusiness(string businessKey)
    지정된 사용자가 게시한 비즈니스 중 키로 식별된 비즈니스를 삭제합니다. 게시 서비스의 registeredInfo() 및 delete_business() 작업을 사용합니다.

클라이언트는 구성 파일(App.config)을 사용하여 통신 대상인 조회 및 게시 서비스의 끝점 및 바인딩을 지정합니다. 다음 구성에서 보여 주는 것처럼, 클라이언트 끝점 구성은 구성 이름, 서비스 끝점의 절대 주소, 바인딩 및 계약으로 구성됩니다.

<bindings>
   <basicHttpBinding>
       <binding name="Https">
          <security mode="Transport">
            <transport clientCredentialType="Ntlm"/>
          </security>
        </binding>
   </basicHttpBinding>
</bindings>
<client>
   <endpoint name="Inquire"
       address="https://<machine with UDDI Services>/uddi/inquire.asmx" 
       binding="basicHttpBinding" bindingConfiguration="Https" 
       contract="Inquire" />
    <endpoint name="Publish"
       address="https://<machine with UDDI Services>/uddi/publish.asmx" 
       binding="basicHttpBinding" bindingConfiguration="Https" 
       contract="Publish" /> 
</client>

샘플을 설치, 빌드 및 실행하려면

  1. UDDI 서비스가 Windows Server 2003에 설치되어 있는지 확인합니다. 프로그램 추가/제거, Windows 구성 요소 추가로 이동한 다음 UDDI 서비스가 선택되어 있는지 확인합니다. 선택되어 있지 않으면 확인란을 선택하고 마법사에 따라 UDDI 서비스를 설치합니다.

  2. Windows Communication Foundation 샘플의 일회 설치 절차를 수행했는지 확인합니다.

  3. C# 또는 Visual Basic .NET 버전의 솔루션을 빌드하려면 Windows Communication Foundation 샘플 빌드의 지침을 따릅니다.

  4. UDDI 클라이언트의 사용자에게 UDDI 서비스의 인증을 얻는 데 필요한 자격 증명이 없는 경우 UDDI 서비스가 설치된 컴퓨터에서 로컬 사용자를 만든 다음 App.config 구성 파일의 <appSettings> 요소를 업데이트해야 합니다.

  5. 기본적으로 UDDI 게시 작업은 로컬 관리자에게만 허용됩니다. 새로 만든 사용자를 로컬 Administrator로 만들거나 해당 사용자 계정을 포함하도록 UDDI 서비스 콘솔에서 게시자 그룹 이름의 역할을 변경하여 이 사용자가 UDDI 게시 서비스에 액세스할 수 있도록 합니다. 후자의 작업을 수행하려면 UDDI 서비스 콘솔을 열고 UDDI 서비스 노드를 마우스 오른쪽 단추로 클릭한 다음 역할 탭을 선택하고 게시자의 계정을 선택합니다.

  6. 단일 컴퓨터 또는 다중 컴퓨터 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플 실행의 지침을 따릅니다.

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.