Tutorial: Diseñar sistemas de aplicaciones con un enfoque descendente

Actualización: noviembre 2007

Este tutorial le guiará a través del proceso de diseño de un sistema de aplicaciones con un enfoque descendente.

En este tutorial, completará las tareas siguientes:

  • Crear una nueva solución de diseño de sistemas.

  • Representar y exponer el comportamiento de la definición del sistema como un servicio web.

  • Definir una operación para el nuevo servicio web.

  • Agregar dos nuevos sistemas como miembros a una definición del sistema.

  • Cambiar el nombre de los nuevos sistemas.

  • Agregar un servicio web a un miembro de la definición del sistema.

  • Conectar los dos sistemas en la definición del sistema.

  • Delegar en un miembro el comportamiento de la definición del sistema.

  • Continuar el diseño de los miembros de la definición del sistema.

  • Implementar las definiciones de aplicación subyacentes.

Crear una nueva solución de diseño de sistemas

Empezará a diseñar un sistema con un enfoque descendente. Para ello, cree una nueva solución de diseño de sistemas. De forma predeterminada, esta solución contiene un diagrama de sistemas en blanco y un diagrama de aplicaciones. El diagrama de sistemas muestra una definición del sistema en blanco. El diagrama de aplicaciones mostrará las definiciones de las aplicaciones que agregue como miembros a la definición del sistema.

Para crear una nueva solución de diseño de sistemas

  1. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.

    Aparecerá el cuadro de diálogo Nuevo proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, bajo Tipos de proyecto, haga clic en Sistemas distribuidos.

  3. Bajo Plantillas, haga clic en Diseño del sistema.

  4. Asigne el nombre StoreFrontSystem a la solución.

  5. Escriba una ubicación para guardar esa solución.

Visual Studio crea la solución. El Diseñador de sistemas se abre y muestra un diagrama de sistemas. El Diseñador de aplicaciones abre el nuevo diagrama de aplicaciones en segundo plano.

Ahora, va a representar y exponer el comportamiento de la definición del sistema como un servicio web.

Representar y exponer el comportamiento de la definición del sistema como un servicio web

Va a definir y exponer el comportamiento de la definición del sistema como un servicio web. Para ello, agregue un punto final de proveedor de servicios web .NET a la definición del sistema. Esta acción también le permite conectar este sistema a los miembros de otras definiciones del sistema.

Para agregar un servicio web a una definición del sistema

  1. Haga clic en StoreFrontSystem en el diagrama de sistemas.

  2. En el menú Diagrama, elija Agregar, elija Extremo y, a continuación, haga clic en .NETWebServiceEndpoint.

    Un punto final de proveedor de servicios web .NET denominado WebService1 aparece en StoreFrontSystem.

  3. Haga clic en WebService1 en StoreFrontSystem.

  4. En el menú Ver, haga clic en Ventana Propiedades.

    Aparece la ventana Propiedades.

  5. En la ventana Propiedades, utilice la propiedad Nombre para asignar al punto final el nombre CatalogService.

    Nota:

    Al agregar un punto final a una definición del sistema, ese punto final también aparece en todos los usos de esa definición en otras definiciones del sistema. Si elimina un punto final de una definición del sistema, lo eliminará de todos los usos de esa definición en otras definiciones del sistema.

Ahora, va a definir una operación de servicio web y sus parámetros para CatalogService.

Definir una operación para el nuevo servicio web

Va a definir una operación para el servicio web CatalogService utilizando la ventana Detalles del servicio Web. Las operaciones describen el nombre de los métodos, los parámetros y otra información relacionada con las operaciones de un servicio web.

Nota:

De forma predeterminada, Visual Studio establece Visual Basic como lenguaje para un punto final de servicios web en una definición del sistema. Elegirá el lenguaje de implementación real para este punto final cuando delegue el comportamiento del punto final en una aplicación.

Para agregar una operación a un punto final de servicios web

  1. Haga clic en el punto final CatalogService de StoreFrontSystem.

  2. En el menú Diagrama, haga clic en Definir operaciones.

    Aparecerá la ventana Detalles del servicio Web.

  3. En la ventana Detalles del servicio Web, haga clic en <agregar operación>, agregue una operación denominada GetCatalog y presione la tecla TAB.

  4. En el cuadro Tipo, escriba Catalog y presione ENTRAR.

    Nota:

    Catalog es un tipo personalizado que puede definir después de delegar el punto final en una aplicación web ASP.NET e implementar esa aplicación.

  5. Expanda el nodo de operación, haga clic en <agregar parámetro>, agregue un parámetro denominado CatalogName y presione la tecla TAB.

  6. En el cuadro Tipo, escriba String y presione la tecla TAB.

    Nota:

    Visual Studio mostrará una lista de los tipos disponibles cuando empiece a escribir en el cuadro Tipo.

  7. En el cuadro Modificador, seleccione ByVal y presione ENTRAR.

Ahora va a agregar nuevos miembros a StoreFrontSystem.

Agregar dos nuevos sistemas como miembros a una definición del sistema

Va a agregar dos nuevos sistemas como miembros a la definición del sistema StoreFrontSystem. Visual Studio agregará a la solución un nuevo archivo de diagrama de sistemas (.sd) por cada nuevo sistema que agregue a una definición del sistema. Cada diagrama de sistemas contiene la definición de cada nuevo sistema.

Para agregar sistemas nuevos a una definición del sistema

  1. Haga clic en StoreFrontSystem en el diagrama de sistemas.

  2. En el menú Diagrama, elija Agregar, elija Sistema y, a continuación, haga clic en Sistema en blanco.

    Un nuevo sistema denominado System1 aparece como miembro en StoreFrontSystem. En la solución aparece un nuevo archivo de diagrama de sistemas (.sd), que se abre en segundo plano.

  3. Agregue un segundo sistema en blanco denominado System2.

Ahora va a cambiar el nombre de los nuevos miembros.

Cambiar el nombre de los nuevos sistemas

Va a cambiar el nombre de los dos nuevos sistemas y de sus definiciones subyacentes.

Para cambiar el nombre de los nuevos miembros

  1. Haga clic en System1 dentro de StoreFrontSystem.

  2. En el menú Diagrama, haga clic en Cambiar nombre.

    Aparece el cuadro de diálogo Cambiar nombre.

  3. En el cuadro de diálogo Cambiar nombre, active la casilla Cambiar nombre de la definición (si no está activada).

  4. En el cuadro Nombre de miembro, asigne el nombre OrderSystem al miembro y haga clic en Aceptar.

    El miembro y su definición muestran el nuevo nombre.

    Nota:

    Visual Studio no actualizará los nombres de los archivos de diagrama que contienen las definiciones subyacentes.

  5. Cambie el nombre System2 a CatalogSystem.

Ahora va a representar y exponer el comportamiento de un miembro como un servicio web.

Agregar un servicio web a un miembro de la definición del sistema

Va a representar y exponer el comportamiento de un miembro de StoreFrontSystem como un servicio web. Para ello, va a agregar un punto final de proveedor de servicios web .NET a ese nuevo miembro. Esta acción también le permite conectar ese miembro a otros miembros de StoreFrontSystem.

Para agregar un servicio web a un miembro

  1. Haga clic en el sistema OrderSystem.

  2. En el menú Diagrama, elija Agregar y haga clic en .NETWebServiceEndpoint.

    Un punto final de proveedor de servicios web .NET denominado WebService1 aparece en OrderSystem y en su definición subyacente.

  3. Haga clic en WebService1 en OrderSystem.

  4. En la ventana Propiedades, utilice la propiedad Nombre para asignar al punto final el nombre OrderService.

    Nota:

    Al agregar un punto final a un miembro, ese punto final también aparece en la definición subyacente del miembro. El punto final también aparece en todos los usos de esa definición en otras definiciones del sistema. Después de agregar un punto final a un miembro, no se puede quitarlo directamente de ese miembro. Para quitar un punto final de un miembro, debe eliminarlo de la definición del miembro. De este modo, también quita el punto final de todos los usos de esa definición. Este requisito pone de relieve cómo este cambio en la definición de un miembro afecta a los usos de esa definición en otras definiciones del sistema.

Ahora va a definir las rutas de comunicación entre los miembros de StoreFrontSystem.

Conectar los dos sistemas en la definición del sistema

Va a definir las rutas de comunicación usadas entre los miembros de una definición del sistema durante la implementación. Realizará esta tarea conectando los dos sistemas en StoreFrontSystem. Esta conexión describirá una relación de proveedor y consumidor entre estos dos sistemas.

Para conectar los miembros de una definición del sistema

  1. Haga clic en el punto final OrderService de OrderSystem.

  2. En el menú Diagrama, haga clic en Conectar.

    Aparecerá el cuadro de diálogo Crear conexión.

  3. Bajo Conectar a, seleccione CatalogSystem en la lista Miembro y haga clic en Aceptar.

    Aparece una conexión entre OrderSystem y CatalogSystem. También aparece un punto final de consumidor de servicios web en CatalogSystem, el cual está conectado a OrderService. Este punto final de consumidor también aparece en la definición subyacente de CatalogSystem.

Ahora, va a delegar el comportamiento de la definición del sistema StoreFrontSystem en uno de sus miembros.

Delegar en un miembro el comportamiento de la definición del sistema

Va a elegir el miembro que proporcione el comportamiento de la definición del sistema durante la implementación. Para ello, va a delegar el comportamiento de la definición del sistema en uno de sus miembros. Concretamente, va a delegar el comportamiento del servicio web CatalogService en CatalogSystem. Esta acción reemplaza el punto final de servicios web en la definición del sistema con un punto final proxy. El punto final de servicios web vuelve a aparecer en el miembro. Ambos puntos finales se conectarán entre sí.

Nota:

El punto final de servicios web también aparece en la definición subyacente de CatalogSystem porque se convierte en parte de la definición de ese miembro.

Para delegar en un miembro el comportamiento de la definición del sistema

  1. Haga clic en CatalogService en StoreFrontSystem.

  2. En el menú Diagrama, haga clic en Delegar.

    Aparece el cuadro de diálogo Delegar comportamiento en un miembro del sistema.

  3. Bajo Delegar en, seleccione CatalogSystem en la lista Miembro y haga clic en Aceptar.

    CatalogService aparece ahora en CatalogSystem. En la ubicación anterior de CatalogService aparece un punto final proxy con el mismo nombre. Este punto final proxy se conecta a CatalogService y expone su comportamiento fuera del sistema.

Continuar el diseño de los miembros de la definición del sistema

Ahora va a continuar el diseño de los miembros de StoreFrontSystem. Para ello, va a agregar aplicaciones web ASP.NET a las definiciones de CatalogSystem y OrderSystem. Estas aplicaciones proporcionarán el comportamiento de esas definiciones del sistema. A continuación, va a delegar en esas aplicaciones el comportamiento de esas definiciones del sistema.

Para continuar el diseño de los miembros de una definición del sistema

  1. Haga clic en CatalogSystem en el diagrama de sistemas.

  2. En el menú Diagrama, haga clic en Abrir en el Diseñador de sistemas.

    Se abre el diagrama de sistemas que contiene la definición de CatalogSystem.

  3. En el menú Diagrama, elija Agregar, elija Aplicación y, a continuación, haga clic en ASP.NETWebService.

    Una nueva aplicación web ASP.NET denominada WebApplication1 aparece dentro de CatalogSystem. Visual Studio también agrega la definición de esta aplicación al diagrama de aplicaciones de la solución. 

  4. Elimine el punto final de WebService1.

  5. Asigne el nombre CatalogManager a la aplicación.

  6. Haga clic en CatalogService en CatalogSystem y, a continuación, haga clic en Delegar en el menú Diagrama.

    Aparece el cuadro de diálogo Delegar comportamiento en un miembro del sistema.

  7. Bajo Delegar en, seleccione CatalogManagery haga clic en Aceptar.

    CatalogService aparece ahora en CatalogManager. Más adelante implementará la definición de CatalogManager para continuar definiendo el comportamiento de CatalogService en el código.

  8. Haga clic en el punto final de consumidor de CatalogSystem.

  9. Delegue el punto final de consumidor en CatalogManager.

    CatalogManager puede comunicarse ahora fuera de CatalogSystem.

  10. Haga clic en la ficha del documento StoreFrontSystem.sd para ver el diagrama de sistemas de StoreFrontSystem.

  11. Repita los pasos 1 a 3 para OrderSystem y asigne el nombre OrderManager a la aplicación.

  12. Delegue el punto final OrderService en OrderManager.

  13. Haga clic en la ficha del documento StoreFrontSystem.sd para ver el diagrama de sistemas de StoreFrontSystem.

La aplicación CatalogManager de CatalogSystem se comunica ahora con la aplicación OrderManager de OrderSystem a través de los puntos finales proxy de cada sistema. Además, CatalogManager proporciona el comportamiento de StoreFrontSystem a través del punto final proxy de ese sistema.

Implementar las definiciones de aplicación subyacentes

Va a continuar definiendo el comportamiento de CatalogSystem y OrderSystem. Para ello, va a conectar primero las definiciones subyacentes de CatalogSystem y OrderSystem y, a continuación, va a implementarlas. Cuando implemente las definiciones de aplicación, Visual Studio generará proyectos en la solución para que pueda seguir definiendo su comportamiento en el código.

Nota:

Debe conectar las definiciones de aplicación antes de implementarlas. Esto permite a Visual Studio generar correctamente todas las clases de proxy del cliente de servicios web que se necesiten.

Para conectar e implementar las definiciones de aplicación

  1. Haga clic en la ficha del documento StoreFrontSystem.ad para ver el diagrama de aplicaciones.

    El Diseñador de aplicaciones muestra el diagrama de aplicaciones, que contiene las definiciones de aplicación de CatalogManager y OrderManager.

  2. Conecte el punto final de consumidor de CatalogManager al punto final OrderService de OrderManager.

    Nota:

    Visual Studio no conecta las definiciones de aplicación cuando se conectan sus usos en las definiciones del sistema. Las conexiones en el diagrama de aplicaciones representan las rutas de comunicación en el entorno de desarrollo, mientras que las conexiones en los diagramas de sistemas representan las rutas de comunicación en el entorno de implementación.

  3. En la ventana Propiedades, establezca la propiedad Plantilla de CatalogManager y OrderManager en Aplicación Web ASP.NET.

  4. En el menú Diagrama, elija Implementación y, a continuación, haga clic en Implementar todas las aplicaciones.

    Visual Studio genera los proyectos correspondientes en la solución para que pueda seguir definiendo CatalogManager y OrderManager en el código.

Vea también

Referencia

Lo nuevo en la Architecture Edition