Creación de una aplicación cliente/servidor DCOM mediante Visual Basic

En este artículo se describe cómo crear, empaquetar e implementar una aplicación cliente/servidor del modelo de objetos de componente distribuido (DCOM) mediante Visual Basic.

Versión original del producto: Visual Basic
Número de KB original: 266717

Resumen

En este artículo se muestra cómo crear, empaquetar e implementar una aplicación cliente/servidor DCOM mediante Visual Basic. Para crear una aplicación cliente/servidor DCOM, necesita el Enterprise Edition de Visual Basic. Microsoft supone que el lector ya está familiarizado con la creación de aplicaciones cliente/servidor que se ejecutan en el mismo equipo.

Más información

No es necesario cambiar el código para permitir que una aplicación cliente cree una instancia de un servidor remoto mediante DCOM. La diferencia es la forma en que empaqueta e implementa el cliente. Además, hay algunas opciones de configuración de seguridad que debe realizar después de instalar el cliente y el servidor. Puede realizar esta configuración mediante una utilidad denominada Dcomcnfg.

En los pasos siguientes se muestra cómo distribuir y configurar una aplicación cliente/servidor. Asigne al servidor el nombre DCOMDemo_Svr y asigne al cliente el nombre DCOMDemo_Cli. Cree una carpeta independiente para cada una de ellas. Para el propósito de este artículo, llame a estas carpetas c:\DCOMDemo\Server and c:\DCOMDemo\Client.

Creación del servidor

  1. Inicie un nuevo proyecto de Visual Basic. En el cuadro de diálogo Nuevo proyecto , seleccione ActiveX EXE y, a continuación, haga clic en Abrir. La clase 1 se crea de forma predeterminada.

  2. Agregue el código siguiente al módulo Class1:

    Public Function ServerTime() As String
        ServerTime = Time
    End Function
    
  3. En el menú Proyecto , haga clic en la opción Propiedades del proyecto y, a continuación, seleccione la pestaña General .

  4. En el campo Nombre del proyecto , escriba DCOMDemo_Svr.

  5. En el campo Descripción del proyecto , escriba DCOMDemo_Svr - Server. Active la opción Ejecución desatendida .

    Nota:

    Esta opción siempre debe estar activada en servidores que no tengan ninguna interfaz de usuario para garantizar que no se muestre ningún cuadro de diálogo de ningún tipo mientras se ejecuta el servidor. Si tiene algún tipo de interacción del usuario mientras el servidor se ejecuta bajo una identidad que no es el usuario interactivo, puede parecer que el servidor se bloquea.

  6. Seleccione la pestaña Componente y active la opción Archivos de servidor remoto .

    Nota:

    Al comprobar esta opción, el compilador de Visual Basic genera los archivos VBR y TLB necesarios para empaquetar las aplicaciones cliente que usan este servidor. Estos archivos contienen entradas del Registro que deben incluirse en el equipo cliente.

  7. Cierre el cuadro de diálogo Propiedades del proyecto .

  8. En el menú Archivo, seleccione Guardar como y, a continuación, guarde este proyecto en .c:\DCOMDemo\Server folder

  9. En el menú Archivo , seleccione Crear DCOMDemo_Svr y compile el servidor.

  10. En el menú Proyecto , seleccione la opción Propiedades del proyecto y, a continuación, seleccione la pestaña Componente .

  11. En la pestaña Componente , seleccione Compatibilidad de versiones, seleccione la opción Compatibilidad binaria y, a continuación, haga que el archivo binario del proyecto sea compatible con el archivo ejecutable del servidor que creó (DCOMDemo_Svr.exe). Al seleccionar esta opción, se asegura de que todos los GUID se mantienen igual si vuelve a compilar el servidor.

Creación del cliente

  1. En el menú Archivo , seleccione la opción Nuevo proyecto , seleccione EXE estándar y, a continuación, haga clic en Aceptar. Form1 se crea de forma predeterminada.

  2. En el menú Proyecto , haga clic en la opción Propiedades del proyecto y, a continuación, seleccione la pestaña General .

  3. En el campo Nombre del proyecto , escriba DCOMDemo_Cli.

  4. En el campo Descripción del proyecto , escriba DCOMDemo_Cli Project - Client.

  5. En el menú Proyecto , seleccione Referencias. En la lista de referencias disponibles, seleccione DCOMDemo_Svr - Servidor.

  6. Coloque un botón de comando en Form1 y cambie el subtítulo del botón a Ejecutar.

  7. Coloque el código siguiente en el evento click del botón:

    Dim MyObj As DCOMDemo_Svr.Class1
    
    On Error GoTo err1
    
    Set MyObj = CreateObject("DCOMDemo_Svr.Class1")
    MsgBox "Server Time=" & MyObj.ServerTime & " Client Time=" & Time
    
    Exit Sub
    err1:
    MsgBox "Connection failed: Error " & Err.Number & " - " & Err.Description
    
  8. En el menú Archivo , seleccione Guardar como y, a continuación, guarde el proyecto en la carpeta c:\DCOMDemo\Clientdel cliente .

  9. Presione la tecla F5 para ejecutar el cliente en el IDE y probarlo.

  10. En el menú Archivo , seleccione Crear DCOMDemo_Cli para compilar el cliente y, a continuación, cierre Visual Basic.

Empaquetar el servidor

Use el Asistente para paquete e implementación para empaquetar el servidor para su distribución como de costumbre. Un cliente remoto crea una instancia del servidor mediante DCOM. Al crear el paquete para el servidor, aparece un cuadro de diálogo que le pregunta si este servidor se usará como servidor de Automatización remota y si desea incluir archivos de soporte técnico para este fin. Simplemente haga clic en el botón No , ya que DCOM no es Automatización remota. La automatización remota es una tecnología anterior que fue reemplazada por DCOM.

Empaquetar el cliente

Al empaquetar el cliente, se deben realizar algunos pasos específicos, teniendo en cuenta que el servidor no se ejecuta en el mismo equipo que el cliente. Los cambios realizados en el paquete del cliente garantizan que solo se instala la biblioteca de tipos (archivo .tlb) y que se incluyen algunas entradas adicionales del Registro en lugar del ejecutable del servidor, lo que no es necesario en el equipo del cliente porque no se va a ejecutar allí.

Empaquete el cliente mediante los pasos siguientes:

  1. Inicie el Asistente para paquete e implementación y, a continuación, seleccione el proyecto del cliente.

  2. Haga clic en el botón Paquete . En el cuadro de diálogo Tipo de paquete , seleccione Paquete de instalación estándar y, a continuación, haga clic en Siguiente.

  3. En el cuadro de diálogo Carpeta de paquetes, seleccione la carpeta para almacenar el paquete y, a continuación, haga clic en Siguiente. En este caso, es c:\DCOMDemo\Client\Package.

    Nota:

    Puede obtener un cuadro de diálogo que indica que no hay información de dependencia para el servidor. Haga clic en Aceptar porque este servidor no tiene dependencias.

    Ahora debería estar en el cuadro de diálogo Archivos incluidos.

  4. Anule la selección del archivo ejecutable del servidor, DCOMDemo_Svr.exe, porque no quiere distribuir el archivo ejecutable del servidor y, a continuación, haga clic en el botón Agregar.

  5. Cambie el cuadro combinado Archivos de tipo a Archivos de servidor remoto (*.vbr).

  6. Seleccione la carpeta donde tiene el proyecto del servidor (en este caso c:\DCOMDemo\Server) y seleccione el archivo VBR relacionado, DCOMDemo_Svr.VBR. Haga clic en Abrir y se cerrará el cuadro de diálogo Agregar archivo .

    Nota:

    Se incluyen dos archivos, DCOMDemo_Svr.VBR y DCOMDemo_Svr.TLB. Haga clic en el botón Siguiente . En el cuadro de diálogo Servidores remotos , puede definir el nombre del equipo (dirección neta) donde se ejecuta el servidor. Normalmente, mantiene este campo en blanco porque es posible que no sepa de antemano dónde se instalará el servidor. Si lo mantiene en blanco, se le pedirá al instalar el cliente. Para este ejemplo, guárdalo en blanco.

  7. Haga clic en Siguiente para continuar. Ahora puede continuar con los procedimientos estándar del Asistente para paquetes e implementación. En este caso, solo tiene que hacer clic en Junto a todos los cuadros de diálogo restantes.

Instalar el servidor

Instale el servidor en el equipo en el que desea ejecutarlo, mediante el paquete de distribución que creó anteriormente. Si desea usar el equipo de desarrollo para ejecutar el servidor, no es necesario instalarlo porque Visual Basic realiza el registro automáticamente cuando compila el servidor.

Instalación del cliente

Instale el cliente en el equipo en el que desea ejecutarlo, con el paquete de distribución que creó anteriormente. Dado que este cliente usa un servidor DCOM y dejó la ubicación real del servidor en blanco al crear el paquete de distribución, ahora debe proporcionar esta ubicación. Cuando el programa de instalación le pida esta ubicación, proporcione el nombre del equipo donde instaló el servidor.

Establecer la seguridad del servidor

Si instaló el servidor en un equipo Con Windows NT o Windows 2000, debe configurar la seguridad para él. Para ello, use Dcomcnfg, como se muestra en los pasos siguientes, que suponen que los equipos cliente y servidor forman parte de un dominio y que el usuario que ha iniciado sesión en el equipo cliente ha iniciado sesión como usuario de dominio. Los valores sugeridos son solo una configuración posible. Son genéricos y proporcionan acceso amplio al servidor. Recuerde que esto es solo un ejemplo. Al implementar las aplicaciones reales y la seguridad es un problema para el entorno, debe seleccionar opciones más restrictivas. Además, si el equipo que usa para probar este servidor de ejemplo se usa para ejecutar otros servidores, anote la configuración actual antes de realizar los siguientes cambios y vuelva a la configuración original en cuanto haya terminado con las pruebas.

  1. En el equipo servidor, haga clic en el botón Inicio y, a continuación, seleccione Ejecutar. En el cuadro de diálogo Ejecutar , escriba Dcomcnfg y, a continuación, haga clic en Aceptar. Debe tener derechos de administrador para poder ejecutar Dcomcnfg.
  2. Seleccione la pestaña Propiedades predeterminadas y compruebe que Habilitar COM distribuido en este equipo está activado.
  3. Establezca el nivel de autenticación predeterminado en Conectar y establezca el nivel de suplantación predeterminado en Identificar.
  4. Seleccione la pestaña Seguridad predeterminada .
  5. Haga clic en el botón Editar predeterminado en el panel Permisos de acceso predeterminados .
  6. Compruebe que todos los usuarios y el sistema están incluidos en la lista con derechos de acceso permitidos. Si no es así, puede usar el botón Agregar para agregarlos a la lista. Haga clic en Aceptar cuando se complete la lista.
  7. Haga clic en el botón Editar predeterminado en el panel Permisos de inicio predeterminados .
  8. Compruebe que Todos y Sistema están incluidos en la lista con permisos Permitir inicio. Si no es así, use el botón Agregar para agregarlos a la lista. Haga clic en Aceptar cuando se complete la lista.
  9. Seleccione la pestaña Aplicaciones , resalte el servidor, DCOMDemo_Svr.Class1 y haga clic en el botón Propiedades .
  10. Seleccione la pestaña General , establezca el nivel de autenticación en Predeterminado y, a continuación, seleccione la pestaña Ubicación . La única opción que está activada debe ser Ejecutar aplicación en este equipo.
  11. Seleccione la pestaña Seguridad y compruebe que están activadas las opciones Usar permisos de acceso predeterminados y Usar permisos de inicio predeterminados.
  12. Seleccione la pestaña Identidad , active la opción iniciar usuario , haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades del servidor y, a continuación, haga clic en Aceptar de nuevo para cerrar Dcomcnfg. Como puede ver, el servidor de prueba usa todos los valores predeterminados. Al implementar sus propios servidores, debe definir la configuración específica de la aplicación. Todas las configuraciones personalizadas tienen prioridad sobre las predeterminadas.

Ya está listo para probar el servidor. En el equipo cliente, inicie el cliente y haga clic en el botón Ejecutar . Debería ver un cuadro de mensaje que indica la hora del servidor. Si no puede probar este ejemplo correctamente, consulte el artículo de solución de problemas, Q269330, que se muestra en la sección "Referencias".