Extractado de La Guía de Arquitectura Versión 2.0a del grupo de Patterns and Practices de Microsoft. Para los que nos gusta en la lengua de cervantes:
ARQUITECTURA BASADA EN COMPONENTES.
Una arquitectura basada en componentes describe una aproximación de ingeniería de software al diseño y desarrollo de un sistema. Esta arquitectura se enfoca en la descomposición del diseño en componentes funcionales o lógicos que expongan interfaces de comunicación bien definidas. Esto provee un nivel de abstracción mayor que los principios de orientación por objetos y no se enfoca en asuntos específicos de los objetos como los protocolos de comunicación y la forma como se comparte el estado.
El estilo de arquitectura basado en componentes tiene las siguientes características:
• Es un estilo de diseño para aplicaciones compuestas de componentes individuales.
• Pone énfasis en la descomposición del sistema en componentes lógicos o funcionales que tienen interfaces bien definidas.
• Define una aproximación de diseño que usa componentes discretos, los que se comunican a través de interfaces que contienen métodos, eventos y propiedades.
Principios Fundamentales
Un componente es un objeto de software específicamente diseñado para cumplir con cierto propósito. Los principios fundamentales cuando se diseña un componente es que estos deben ser:
• Reusable. Los componentes son usualmente diseñados para ser utilizados en escenarios diferentes por diferentes aplicaciones, sin embargo, algunos componentes pueden ser diseñados para tareas específicas.
• Sin contexto especifico. Los componentes son diseñados para operar en diferentes ambientes y contextos. Información específica como el estado de los datos deben ser pasadas al componente en vez de incluirlos o permitir al componente acceder a ellos.
• Extensible. Un componente puede ser extendido desde un componente existente para crear un nuevo comportamiento.
• Encapsulado. Los componentes exponen interfaces que permiten al programa usar su funcionalidad. Sin revelar detalles internos, detalles del proceso o estado.
• Independiente. Los Componentes están diseñados para tener una dependencia mínima de otros componentes. Por lo tanto los componentes pueden ser instalados en el ambiente adecuado sin afectar otros componentes o sistemas.
Beneficios
Los siguientes son los principales beneficios del estilo de arquitectura basado en componentes:
• Facilidad de Instalación. Cuando una nueva versión esté disponible, usted podrá reemplazar la versión existente sin impacto en otros componentes o el sistema como un todo.
• Costos reducidos. El uso de componentes de terceros permite distribuir el costo del desarrollo y del mantenimiento.
• Facilidad de desarrollo. Los componentes implementan un interface bien definida para proveer la funcionalidad definida permitiendo el desarrollo sin impactar otras partes del sistema.
• Reusable. El uso de componentes reutilizables significa que ellos pueden ser usados para distribuir el desarrollo y el mantenimiento entre múltiples aplicaciones y sistemas.
• Mitigación de complejidad técnica. Los componentes mitigan la complejidad por medio del uso de contenedores de componentes y sus servicios. Ejemplos de servicios de componentes incluyen activación de componentes, gestión de la vida de los componentes, gestión de colas de mensajes para métodos del componente y transacciones.
Ejemplos
Tipos comunes de componentes usados en aplicaciones incluyen:
• Componentes de interfaz de usuario, como grillas, botones, etc., generalmente conocidos como “controles”.
• Componentes de ayuda que exponen un conjunto específico de funciones usados por otros componentes.
• Componentes que se no se usan con mucha frecuencia o son intensivos en recursos y deben ser actividades usando una aproximación de solo en el momento justo (Just in Time (JIT)). Estos son comunes en escenarios de componentes distribuidos o en componentes remotos.
• Componentes encolados, aquellos cuyos métodos pueden ser ejecutados de forma asíncrona usando colas de mensajes del tipo almacenamiento, entrega.
Juan Carlos Pelaez
Arquitecto de Sofware.
Keywords: 3Metas, Juan Pelaez, Arquitectura, Emprendimiento, Desarrollo de Software, Aplicaciones Distribuidas.
Publicado en : www.juanpelaez.com
Publicidad: Necesita Arquitectos en soluciones basadas en plataforma Microsoft? 3Metas Corp tiene un grupo de especialistas que pueden apoyar sus procesos de diseño, construcción e implementación de soluciones. Contáctenos al correo electrónico sales at 3metas.com