Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

Arquitectura de aplicaciones de .NET: Diseño de aplicaciones y servicios: Apéndices

Publicado: 26 de junio de 2006

Patterns & Practices
Microsoft Corporation
Diciembre de 2002

imagen

http://msdn.microsoft.com/practices/

Resumen: este apéndice incluye un mapa de productos que le ayudará a encontrar los productos Microsoft de más utilidad para generar su solución. También se incluye un glosario de términos relativos a la arquitectura de aplicaciones .NET.

Este capítulo contiene los siguientes apéndices:

  • Apéndice 1: Mapa de productos
    Este apéndice proporciona un mapa de alto nivel de los productos Microsoft® que le puede servir de ayuda para implementar una aplicación .NET distribuida, basada en Microsoft .NET Framework, organizada en capas lógicas.

  • Apéndice 2: Glosario
    Este apéndice proporciona un glosario de términos técnicos relativos al desarrollo de aplicaciones distribuidas.

  • Apéndice 3: Arquitecturas por capas
    Este apéndice explica la relación entre las capas descritas en esta guía y otros esquemas de nomenclatura que se utilizan habitualmente en la industria informática.

Éste es el capítulo 5 de Arquitectura de aplicaciones de .NET: Diseño de aplicaciones y servicios. Comience por aquí para obtener una visión general completa.

En esta página

Apéndice 1: Mapa de productos Apéndice 1: Mapa de productos
Apéndice 2: Glosario Apéndice 2: Glosario
Apéndice 3: Arquitecturas por capas Apéndice 3: Arquitecturas por capas
Comentarios y soporte Comentarios y soporte

Apéndice 1: Mapa de productos

El mapa de productos que se ofrece en este apéndice muestra cómo las diferentes tecnologías y productos Microsoft proporcionan una plataforma para los niveles de aplicación lógicos que se describen en esta guía. La figura 5.1 muestra un esquema simplificado de la aplicación y sus niveles, mientras que la figura 5.2 (el mapa de productos) enumera las diferentes tecnologías asociadas con los niveles que se muestran en la figura 5.1.

Una solución distribuida deberá utilizar únicamente los productos y tecnologías que respondan a sus requisitos. Sin embargo, la figura 5.2 muestra varios de ellos juntos para indicar la forma en que se pueden relacionar entre sí. Esta figura muestra cómo los productos se asignan a los componentes lógicos, y no a un patrón de implementación físico.

Para una mayor claridad, la figura 5.2 no muestra los productos y tecnologías que se utilizan para implementar las directivas de seguridad, administración y comunicaciones. La mayor parte de las tecnologías que no se muestran las proporciona el sistema operativo Microsoft Windows®, como por ejemplo el servicio de directorios Microsoft Active Directory®, Message Queue Server, Windows Management Instrumentation (WMI), etc.

imagen

Figura 5.1. Esquema simplificado de los niveles de una aplicación

imagen

Figura 5.2. Mapa de productos

Apéndice 2: Glosario

Ensamblado

Un ensamblado es una unidad de implementación en una aplicación basada en .NET Framework.

Transacción atómica

Una transacción atómica es una operación en la que o bien todos los pasos de la operación tienen éxito, o todos dan error. Las transacciones atómicas se utilizan habitualmente para realizar modificaciones de los datos en un almacén de datos, donde todos los datos relativos a la operación se modifican con éxito, o no se modifica ninguno y los datos permanecen como estaban antes de que se iniciara la operación.

Conmutatividad

Conmutatividad es un patrón de diseño para una implementación en la que los mensajes tendrán el mismo resultado, independientemente del orden en que se reciban. Por ejemplo, una operación conmutativa puede implicar dos pasos: "cambiar la categoría del producto dos a 'manufacturas'" e "incrementar el precio del producto dos en un 10%." No importa en qué orden se realizan estos pasos; el resultado es que el producto dos está en la categoría "manufacturas" y se ha incrementado su precio en un 10%. Por el contrario, una operación en la que los dos pasos son "cambiar la categoría del producto dos a 'manufacturas'" e "incrementar el precio de todas las manufacturas en un 10%" no es conmutativa, puesto que el precio del producto dos se incrementarán únicamente si su categoría se cambia antes de que se realice el paso del incremento del precio.

Componente

Dicho de forma sencilla, un componente es una parte de un sistema. Una definición más específica de componente es una unidad de funcionalidad que se puede amortizar a través de diversas implementaciones. Un componente generalmente se implementa como un objeto de software que expone una o más interfaces y que implementa la lógica.

Contrato

Un contrato es un acuerdo vinculante entre varias partes que dicta la semántica de comunicación válida. El contrato determina los protocolos utilizados para comunicarse y el formato de los mensajes, así como el contrato de nivel de servicio y las declaraciones legales.

Conversación

Una conversación es el intercambio de mensajes entre una aplicación cliente y un servicio que se requiere para completar una tarea empresarial.

CRUD

CRUD responde a las siglas en inglés de Crear, Leer, Actualizar y Eliminar. Se refiere a las operaciones que se pueden realizar en un almacén de datos. En la terminología de SQL, Crear, Leer, Actualizar y Eliminar se refieren a INSERTAR, SELECCIONAR, ACTUALIZAR y ELIMINAR operaciones, respectivamente.

Zona desmilitarizada (DMZ)

Una DMZ es la zona física detrás de un servidor de seguridad de Internet y delante de un servidor de seguridad de segundo nivel que protege los sistemas y datos del servidor. En un escenario típico de una aplicación de Internet, la DMZ es la red de área local virtual (VLAN) física en la que se implementan los servidores Web.

Enrutamiento dinámico de datos (DDR)

El enrutamiento dinámico de datos es la lógica que se utiliza para determinar a qué servidor de base de datos se enviará una recuperación de datos o una solicitud de modificación cuando los datos se encuentran particionados entre diversos servidores. El DDR se puede implementar mediante la utilización de un algoritmo hash, una tabla de reglas o algún otro esquema de partición.

Emisario

Un emisario es un término genérico para un componente de software que se comunica con un recurso externo en nombre de su aplicación. El emisario resume la semántica de la comunicación con el recurso externo desde su aplicación, y controla todos los aspectos de la conversación, incluida la persistencia de estado para los procesos largos.

Feudo

Un feudo es un patrón de diseño para una colección de servicios que encapsula un estado duradero compartido y se implementan conjuntamente. Un feudo representa un límite de confianza, donde los componentes de software que se encuentran dentro del feudo no confían en los de fuera.

Servidor de seguridad

Un servidor de seguridad es una implementación de seguridad basada en software (o en hardware) que aplica reglas de filtrado al tráfico de red entre dos zonas.

Idempotencia

Idempotencia significa la habilidad para realizar una acción determinada varias veces y aun así conseguir el mismo resultado que se obtendría si se realizase una sola vez. Un mensaje idempotente, como por ejemplo una instrucción para "cambiar el precio del producto dos a 10,00$", no provocará ningún efecto secundario si se recibe varias veces, mientras que un mensaje no idempotente, como por ejemplo una instrucción para "incrementar el precio del producto dos en un 10%", producirá un resultado diferente según el número de veces que se reciba.

Capa

Una capa se puede concebir como un patrón de arquitectura en el que los componentes utilizan servicios en las capas inferiores. La utilización de capas facilita el mantenimiento. La comunicación entre dos capas determina la facilidad con que se podrá particionar la aplicación en ese punto para la distribución física a través de los niveles. Unos esquemas de capas estrictos no permiten a las capas tener acceso a otras capas que no sean las inmediatamente inferiores, mientras que unos esquemas de capas más flexibles permiten a una capa determinada utilizar cualquier otra que esté por debajo de ella.

Transacción de ejecución larga

Una transacción de ejecución larga es una implementación de un proceso empresarial o parte de él que contiene la lógica para compensar por las actividades que ya se han ejecutado en caso de cancelación.

Mensaje

Un mensaje es una unidad de información que se transmite electrónicamente de un servicio a otro.

Organización

La organización es la automatización de un flujo de trabajo. Microsoft BizTalk® Server proporciona un motor de organización que se puede utilizar para organizar los flujos de trabajo empresariales.

Directiva

Una directiva es un conjunto de reglas con respecto a la seguridad, administración operativa y comunicación que se aplican en una zona determinada.

Servicio

Un servicio es un componente de software que se puede utilizar en una parte de un proceso empresarial completo. Los servicios admiten interfaz de comunicación basada en mensajes, a través de la cual tiene lugar una conversación. Un servicio encapsula su propio estado y datos empresariales, y la comunicación con él únicamente se puede realizar a través de las interfaces de servicio que expone.

Agente de servicios

Un agente de servicios es un emisario que se utiliza para controlar una conversación con un servicio externo.

Interfaz de servicios

Una interfaz de servicios es un punto de entrada para un servicio. Proporciona una interfaz pública que los llamadores pueden utilizar para consultar el contrato que admite la interfaz y realizar llamadas de método basado en mensajes al servicio.

Con estado

Con estado es lo contrario a sin estado. En una conversación con estado, la información relativa a los aspectos de datos que se hayan intercambiado con anterioridad se debe registrar para permitir posteriormente unos intercambios significativos.

Sin estado

Sin estado se refiere a una conversación en la que todos los mensajes entre las partes se pueden interpretar independientemente. No se mantiene un estado entre los mensajes

Confirmación en dos fases

El protocolo de confirmación en dos fases se utiliza para asegurar que varias partes sincronizan sus estados cuando se realiza una operación transaccional. El protocolo de confirmación en dos fases se puede utilizar para las transacciones atómicas así como para las transacciones empresariales.

Flujo de trabajo

El flujo de trabajo se refiere a un proceso empresarial en el que los pasos se deben realizar en un determinado orden, y se deben cumplir unas condiciones predefinidas, antes de avanzar de un paso al siguiente. Por ejemplo, un flujo de trabajo para la compra de productos podría implicar primero la validación de la información acerca de la tarjeta de crédito del comprador, a continuación el pedido de los productos a un proveedor y, por último, la organización de la entrega. No se puede realizar el pedido de los productos hasta que se autorice la información sobre la tarjeta de crédito, y no se puede organizar la entrega hasta que los productos se hayan recibido del proveedor.

Zona

Una zona es un límite de confianza, un límite de comunicación y un límite operativo. La zona se puede asignar a una entidad del mundo real, como por ejemplo una empresa o departamento, o bien puede definir una determinada área dentro del entorno de implementación físico de la aplicación, como por ejemplo una batería de servidores Web, o incluso simplemente un proceso. Las zonas son modelos mentales de gran utilidad a la hora de determinar la implementación de la aplicación y la relación del diseño de la aplicación con el diseño de la infraestructura

Apéndice 3: Arquitecturas por capas

Esta guía ha dividido una aplicación en capas con funciones y funcionalidades diferentes con el objetivo de facilitar el mantenimiento del código, optimizar la forma en que funciona la aplicación cuando se implementa de modos diferentes y proporcionar una ubicación clara donde se deben tomar ciertas decisiones respecto a la tecnología o el diseño a la hora de generar aplicaciones distribuidas basadas en .NET Framework.

La división de la funcionalidad de la aplicación en capas la ha realizado la comunidad de patrones de diseño. Esta tabla pretende ilustrar de modo general la forma en que las capas de los componentes que se describen en esta guía se corresponden con la terminología de las capas y los patrones de diseño que utilizan algunos de estos autores.

Esta guía

Patrones y capas relacionados

Componentes de interfaz de usuario

Capa representaciones

Capa de vistas

Capa de clientes

Procesos de interfaz de usuario

Patrón de controlador de aplicaciones

Capa de controlador/nediador

Capa de modelo de aplicaciones

Interfaces de servicios

Patrón de fachada remota

Flujos de trabajo empresariales

Capa de dominio2

Componentes empresariales

Capa de dominio

Patrón de secuencias de comandos de transacciones

Entidades empresariales

Objeto de transferencia de datos1

Modelo de dominio

Componentes lógicos de acceso a datos3

Capa de orígenes de datos

Capa de infraestructuras

Capa de integración

Agentes de servicios3

Capa de orígenes de datos

Capa de infraestructuras

Capa de integración

Notas a la tabla:

  1. La utilización del patrón de diseño de objeto de transferencia de datos para los componentes de la entidad empresarial implica que utilice las entidades empresariales como la forma de transferir los datos entre las capas, bien utilizando conjuntos de datos ADO.NET o sus objetos serializables personalizados. Otro uso de las entidades empresariales que va más allá del patrón de objeto de transferencia de datos es generar un modelo de objeto o un modelo de dominio para toda la aplicación, encapsulando tanto el comportamiento empresarial como el estado.

  2. Los flujos de trabajo empresariales se pueden considerar como un conjunto de patrones de secuencias de comandos de transacción que puede realizar un seguimiento y persistir en el estado a través de las llamadas entrantes de llamadores asincrónicos y sincrónicos. Se agrupa aquí bajo dominio, puesto que los flujos de trabajo empresariales en definitiva implementan la lógica empresarial.

  3. Los componentes lógicos de acceso a datos y los agentes de servicios se pueden utilizar para encapsular la asignación de datos y las actividades de agregación y anulación de agregación, en cuyo caso se pueden denominar "capa de asignación de datos" o "asignador de datos", según el autor.

Comentarios y soporte

Si desea formular alguna pregunta sobre la guía, o realizar algún comentario o sugerencia, sobre esta guía, envíe un mensaje de correo electrónico a la siguiente dirección: devfdbck@microsoft.com.

Mostrar:
© 2014 Microsoft