Individuazione: UDDI

In questo esempio viene illustrato come implementare un client Windows Communication Foundation (WCF) che esegue operazioni di base con un il servizio UDDI (Universal Description, Discovery, and Integration) v2 installato nel computer locale. Il Registro di sistema UDDI fa parte dei servizi UDDI inclusi in Windows Server 2003.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine dell'argomento.

L'esempio è costituito da un programma di console client (con estensione exe) che comunica con un Registro di sistema UDDI installato localmente. L'esempio può anche comunicare con altre implementazioni del servizio di verifica e pubblicazione UDDI. L'attività del client è visibile nella finestra della console.

Le origini dell'esempio includono i file generati automaticamente seguenti:

  • UddiTypes.cs (tipi UDDI)
  • UddiInquireClient.cs (client di verifica UDDI)
  • UddiPublishClient.cs (client di pubblicazione UDDI)
  • È possibile rigenerare questi file per utilizzarli con Svcutil.exe, ma non è necessario rigenerarli per eseguire l'esempio.

Per generare i file precedentemente elencati

  1. Scaricare il file dallo schema UDDI e salvarlo come UddiTypes.xsd.

  2. Generare il file UddiTypes.cs utilizzando il comando seguente.

    xsd.exe /classes UddiTypes.xsd
    
  3. Generare il file UddiInquireClient.cs utilizzando il comando seguente.

    svcutil.exe /out:UddiInquireClient.cs http://uddi.org/wsdl/inquire_v2.wsdl
    
  4. Aprire UddiInquireClient.cs e rimuovere tutte le dichiarazioni di tipo successive alla dichiarazione dell'interfaccia seguente (non inclusa).

          public interface Inquire {...}
    

    Verificare inoltre che questa operazione venga eseguita prima della prima dichiarazione di messaggio tipizzato (non inclusa).

         [System.Diagnostics.DebuggerStepThroughAttribute()]
         [System.CodeDom.Compiler.GeneratedCodeAttribute(       
                          "System.ServiceModel", "3.0.0.0")]
         [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
    
  5. Generare il file UddiPublishClient.cs utilizzando il comando seguente.

    svcutil.exe /out:UddiPublishClient.cs http://uddi.org/wsdl/publish_v2.wsdl
    
  6. Aprire UddiPublishClient.cs e rimuovere tutte le dichiarazioni di tipo successive alla dichiarazione seguente (non inclusa).

          public interface Publish {...}
    

    Fino alla prima dichiarazione di messaggio tipizzato (non inclusa).

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

    Rimuovere tutte le dichiarazioni all'interno dello spazio dei nomi Uddiorg.api (queste dichiarazioni sono già state generate in UddiInquireClient.cs).

Il client utilizza i proxy per implementare le operazioni che recuperano informazioni dal Registro di sistema UDDI:

  • public void Login(string username, string password)
    Utilizzato per accedere al servizio di pubblicazione. Utilizza l'operazione get_authToken() del servizio di pubblicazione.
  • public businessInfo[] GetBusinessByName(string businessName)
    Esegue una query nel Registro di sistema UDDI per i servizi con nomi che corrispondono alla stringa fornita. Chiama l'operazione find_business() del servizio di verifica.
  • public string PublishBusiness(string businessName, string description)
    Pubblica un'azienda nel Registro di sistema UDDI. Utilizza l'operazione save_business() del servizio di pubblicazione.
  • public businessInfo[] GetMyBusinesses()
    Restituisce tutte le aziende pubblicate da un utente specifico. Utilizza l'operazione get_registeredInfo() del servizio di pubblicazione.
  • public businessInfo GetMyBusinessByName(string businessName)
    Restituisce la prima azienda individuata con un nome specifico pubblicata da un determinato utente. Chiama l'operazione get_registeredInfo() del servizio di pubblicazione.
  • public void DeleteMyBusinesses()
    Elimina tutte le aziende pubblicate da un utente specifico. Utilizza l'operazione delete_business() del servizio di pubblicazione.
  • public void DeleteMyBusiness(string businessKey)
    Elimina un'azienda identificata dalla chiave, pubblicata da un utente specifico. Utilizza le operazioni di registeredInfo() e delete_business() del servizio di pubblicazione.

Il client utilizza un file di configurazione (App.config) per specificare l'endpoint e un'associazione per i servizi di verifica e pubblicazione con i quali comunica. La configurazione dell'endpoint client è costituita da un nome di configurazione, un indirizzo assoluto per l'endpoint del servizio, l'associazione e il contratto, come illustrato nella configurazione seguente.

<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>

Per impostare, compilare ed eseguire l'esempio

  1. Verificare che i servizi UDDI siano installati in Windows Server 2003. Passare a Installazione applicazioni, Aggiungi componenti di Windows e verificare che la casella di controllo relativa a Servizi UDDI sia selezionata. In caso contrario, selezionare la casella di controllo e seguire la procedura guidata per installare i servizi UDDI.

  2. Assicurarsi di avere eseguito la Procedura di installazione singola per gli esempi di Windows Communication Foundation.

  3. Per compilare l'edizione in C# o Visual Basic .NET della soluzione, seguire le istruzioni in Generazione degli esempi Windows Communication Foundation.

  4. Se l'utente del client UDDI non dispone delle credenziali appropriate per l'autenticazione nei servizi UDDI, è necessario creare un utente locale (nel computer in cui è installato Servizi UDDI) e aggiornare l'elemento <appSettings> nel file di configurazione App.config.

  5. Per impostazione predefinita, le operazioni di pubblicazione UDDI sono consentite solo agli amministratori locali. Verificare che l'utente appena creato possa accedere al servizio di pubblicazione UDDI, impostando l'utente come Amministratore locale o modificando il ruolo per il nome Gruppo server di pubblicazione nella console dei servizi UDDI in modo da includere l'account utente. A tale scopo, aprire la console Servizi UDDI, fare clic con il pulsante destro del mouse sul nodo Servizi UDDI, selezionare la scheda Ruoli e selezionare l'account del server di pubblicazione.

  6. Per eseguire l'esempio su una configurazione con un solo computer o tra computer diversi, seguire le istruzioni in Esecuzione degli esempi di Windows Communication Foundation.

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