Está en la página 1de 20

Arquitectura orientado a

Componentes web
Lic. Espinoza Robles Armando David
Referencia de Fuente: Dr. Javier Vélez Reyes
• 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.
• 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, y 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
• 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 una 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 no se usan con mucha frecuencia o son intensivos en
recursos y deben ser activados 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
Arquitectura para componentes web
• Arquitectura de Referencia Para Componentes Web
• Una arquitectura de referencia establece orientación acerca de cómo
pueden construirse soluciones orientadas a componentes Web.
• El problema a resolver es como estructurar los componentes para obtener de
comportamientos simples comportamientos mas complejos.
• Para esto se usa frecuentemente los Patrones de Composición.
• Estos patrones sirven para construir estructura complejas partiendo de
estructuras mas simples.
Component: Generalmente es una
interface o clase abstracta la cual tiene las
operaciones mínimas que serán utilizadas,
este componente deberá ser extendido por
los otros dos componentes Leaf y
Composite
Leaf: El leaf u hoja representa la parte
más simple o pequeña de toda la
estructura y este extiende o hereda
de Component
Composite: Aquí es donde está la
magia de este patrón, ya que el
composite es una estructura
conformada por otros Composite y
Leaf
Imaginemos un sistema de punto de venta, en el
cual se le pueden vender al cliente una serie de
productos, estos productos pueden ser
productos simples (Leaf) o paquetes
(Composite). El sistema permitirá crear Ordenes
de ventas las cuales están compuestas por 1 o
muchos productos.

Los paquete están creados a partir de un


conjunto de productos simples y otros
paquetes por lo que el precio de un paquete
esta calculado por el precio de sus hijos de
forma recursiva
Problemas de la composición
• La Composición en Palabras La composición es el proceso por el cual
se establece un conjunto de enlaces compositivos entre componentes
para permitir la comunicación.
El Proceso de Composición. Perspectiva de Caja Blanca

• Internamente, el proceso de composición se entiende como una


sucesión de 4 fases que se desarrollan en cascada: localizar, adaptar,
enlazar y contextualizar
Composición Estática & Dinámica
• La composición estática se produce una vez al principio del ciclo de
vida. La composición dinámica se repite recurrentemente en
respuesta a cambios ambientales
Construcción por Composición
• En la etapa de madurez I el desarrollo se orienta al cliente, se opera a
muy bajo nivel de abstracción y los índices de reutilización son casi
inexistentes
Construcción por Composición
• En la etapa de madurez II se construyen componentes Web que
encapsulan modelos de interacción recurrentes. Se fomenta la
abstracción y la reutilización
Construcción por Composición
• En la etapa de madurez III, las corporaciones reconocen las ventajas
de operar con un catálogo de componentes. Se construyen
aplicaciones por composición declarativa

También podría gustarte