Share via


Descubrimiento: UDDI

Download sample

Este ejemplo muestra cómo implementar un cliente Windows Communication Foundation (WCF) que realiza las operaciones básicas con un servicio UDDI (Descripción, descubrimiento e integración universales) V2 que se instala en el equipo local. El registro de UDDI forma parte de los servicios de UDDI puestos a disposición con Windows Server 2003.

Nota

El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

El ejemplo está compuesto de un programa de la consola del cliente (.exe) que se comunica con un registro de UDDI instalado localmente. El ejemplo también puede comunicarse con otras implementaciones de servicio de petición y publicación de UDDI. La actividad del cliente es visible en la ventana de la consola.

Los orígenes del ejemplo incluyen los siguientes archivos generados automáticamente:

  • UddiTypes.cs (tipos UDDI)

  • UddiInquireClient.cs (cliente de petición de UDDI)

  • UddiPublishClient.cs (cliente de publicación de UDDI)

  • Puede volver a generar estos archivos para trabajar con Svcutil.exe. No tiene que regenerar estos archivos para ejecutar el ejemplo.

Para generar los archivos previamente mostrados

  1. Descargue el archivo desde el esquema de UDDI y guárdelo como UddiTypes.xsd.

  2. Genere UddiTypes.cs utilizando el comando siguiente:

    xsd.exe /classes UddiTypes.xsd
    
  3. Genere UddiInquireClient.cs utilizando el comando siguiente:

    svcutil.exe /out:UddiInquireClient.cs http://uddi.org/wsdl/inquire_v2.wsdl
    
  4. Abra UddiInquireClient.cs y quite todas las declaraciones de tipos después de (pero no incluyendo) la declaración de la interfaz siguiente.

          public interface Inquire {...}
    

    Además, asegúrese de que se hace antes de (pero no incluyendo) la primera declaración de mensaje con tipo.

         [System.Diagnostics.DebuggerStepThroughAttribute()]
         [System.CodeDom.Compiler.GeneratedCodeAttribute(       
                          "System.ServiceModel", "3.0.0.0")]
         [System.ServiceModel.MessageContractAttribute( IsWrapped=false )]
    
  5. Genere UddiPublishClient.cs utilizando el comando siguiente:

    svcutil.exe /out:UddiPublishClient.cs http://uddi.org/wsdl/publish_v2.wsdl
    
  6. Abra UddiInquireClient.cs y quite todas las declaraciones de tipos después de (pero no incluyendo) la siguiente declaración.

          public interface Publish {...}
    

    A (pero no incluyendo) la primera declaración de mensaje con tipo.

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

    Quite todas las declaraciones dentro de Uddiorg.api del espacio de nombres (estas declaraciones ya se han generado en UddiInquireClient.cs).

El cliente utiliza los servidores proxy para implementar operaciones que recuperan información del registro de UDDI:

  • public void Login(string username, string password)

    Se utiliza para iniciar sesión en el servicio de publicación. Utiliza la operación get_authToken () del servicio de publicación.

  • public businessInfo[] GetBusinessByName(string businessName)

    Consulta el registro de UDDI para servicios con nombres que se ajustan a la cadena proporcionada. Llama a la operación find_business () del servicio de petición.

  • public string PublishBusiness(string businessName, string description)

    Publica un negocio en el registro de UDDI. Utiliza la operación save_business () del servicio de publicación.

  • public businessInfo[] GetMyBusinesses()

    Devuelve todos los negocios publicados por un usuario determinado. Utiliza la operación get_registeredInfo() del servicio de publicación.

  • public businessInfo GetMyBusinessByName(string businessName)

    Devuelve el primer negocio que se encuentre con un nombre determinado publicado por un usuario concreto. Llama a la operación get_registeredInfo() del servicio de publicación.

  • public void DeleteMyBusinesses()

    Elimina todos los negocios publicados por un usuario determinado. Utiliza la operación delete_business() del servicio de publicación.

  • public void DeleteMyBusiness(string businessKey)

    Elimina un negocio identificado por la clave, publicado por un usuario determinado. Utiliza las operaciones registeredInfo() y delete_business() del servicio de publicación.

El cliente utiliza un archivo de configuración (App.config) para especificar el extremo y el enlace para los servicios de petición y publicación con los que se comunica. La configuración de extremo del cliente está compuesta de un nombre de configuración, una dirección absoluta para el extremo de servicio, el enlace y el contrato, tal y como se muestra en la configuración siguiente.

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

Para configurar, generar y ejecutar el ejemplo

  1. Asegúrese de que los servicios de UDDI está instalados en Windows Server 2003. Diríjase a Agregar o quitar programas, Agregar componentes de Windows y asegúrese de que la opción de servicios de UDDI está marcada. Si no lo está, márquela y siga el asistente para instalarlos.

  2. Asegúrese de que ha realizado el Procedimiento de instalación único para ejemplos de Windows Communication Foundation.

  3. Para generar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Generación de ejemplos de Windows Communication Foundation.

  4. Si el usuario del cliente UDDI no tiene las credenciales correctas para autenticarse con los servicios de UDDI, se debería crear un usuario local (en el equipo con los servicios de UDDI instalados) y debería actualizarse el elemento <appSettings> en el archivo de configuración de App.config.

  5. De forma predeterminada, las operaciones de publicación de UDDI sólo se permiten para los administradores locales. Asegúrese de que el usuario recién creado puede tener acceso al servicio de publicación de UDDI, ya sea convirtiendo al usuario en administrador local o cambiando la función del nombre del grupo de editores en la consola de servicios de UDDI para incluir la cuenta del usuario. Para hacer lo último, abra la consola de los servicios de UDDI, haga clic con el botón secundario en el nodo de los servicios de UDDI, seleccione la ficha Funciones y seleccione la cuenta del editor.

  6. Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Ejecución de ejemplos de Windows Communication Foundation.

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.