• No se han encontrado resultados

Diseño de Componentes

N/A
N/A
Protected

Academic year: 2021

Share "Diseño de Componentes"

Copied!
73
0
0

Texto completo

(1)
(2)

Objetivos

Estudiar los principales patrones para diseño de interfaces

Estudiar los principales patrones para diseño de componentes

Estudiar los principales estilos arquitectónicos utilizados en arquitecturas de componentes

(3)
(4)

Componentes - Interfaces

Responsabilidades del componente

Servicios ofrecidos

Protocolos utilizados / requeridos

(5)

Retos

Responsabilidades del componente

Especificación de contratos

Atributos de calidad

Expresividad y simplicidad

Bajo acoplamiento y estabilidad

Distribución de componentes

Heterogeneidad

Interfaces

(6)

Patrones

Explicit Interfase

Extension Interfase

Introspective Interface

Dynamic Invocation

Business Delegate

Proxy

Facade

Combined Method

Iterator

Enumeration Method

Batch Method

Interfaces

(7)

Interfaces

Explicit Interface Pattern

Separa el uso del componente de los detalles de implementación

Los clientes depende solo del contrato

Los clientes no deben conocer

Diseño interno

Detalles de implementación

(8)

Interfaces

Extension Interface Pattern

Permite exponer varias interfaces por parte de un componente

De forma estable para los clientes ante cambios y evolución en el componente

(9)

Interfaces

Instrospective Interface Pattern

Ofrece una interfaz suplementaria

Permite al cliente conocer el interior del componente

(10)

Interfases

Dynamic Invocation Pattern

Ofrece una interfaz sumplementaria

Permite a los clientes invocar métodos del componentes de forma dinámica

(11)

Interfaces

Business Delegate Pattern

Hace transparente a los clientes de un componente

Localización del componente

Lookup

Balanceo de carga

(12)

Interfaces

Proxy

Los clientes de un componente se comunican con un emisario en lugar del componente mismo

Seguridad

(13)

Interfaces

Facade

Un punto único de acceso para el cliente

(14)

Interfaces

Combined Method

El cliente debe realizar la invocación de

métodos en un orden particular muchas veces

No facilita su utilización

(15)

Interfaces

Iterator

Se requiere visitar elementos en un componente agregado

El cliente no quiere depender de la estructura interna

(16)

Interfaces

Enumeration Method

Se requiere iterar sobre elementos de un componente agregado

Se quiere invocar una acción en cada elemento

(17)

Interfaces

Batch Method

Se requiere visitar un subconjunto de componentes

Acceder a la colección es costoso

Remoto / Concurrente

Se define un único método en batch

(18)

Componentes

Niveles de granularidad y composición

Alta

Dificulta entendimiento, evolución y mantenimiento

Baja

Se requiere mayor integración y “pegante” entre los componentes

(19)

Patrones

Encapsulated Implementation

Whole-part

Composite

Master-Slave

Half Object

Replicated Component

Componentes

(20)

Componentes

Encapsulated Implementation

Esconde completamente los detalles de implementación

La implementación encapsulada puede evolucionar

(21)

Components

Whole-Part

Un componente agrupa mucha funcionalidad

No es práctico / apropiado construir un solo componente

Se particiona el componente en un elemento único que encapsula y orquesta partes

independientes

Este único elemento define las interfaces de acceso al componente

(22)

Componentes

Composite

Composición de partes recursiva

Objetos que soportan la misma interfaz

Se desea utilizar toda la jerarquía como si fuera una sola entidad

Se utiliza un componente interfaz con la funcionalidad común a todas las partes

(23)

Componentes

Master-Slave

Requerimientos de calidad altos

Imposibles de cumplir en un solo hilo de ejecución

Se subdivide el componente en tareas internas, ejecutadas en paralelo

(24)

Componentes

Half-Object plus Protocol

Se requiere utilizar componentes que residen en espacios de direcciones diferentes

Alto costo en transporte y latencia

Se divide el componente en varios “half object” en cada sitio local, solo con la lógica y datos

(25)

Componentes

Replicated Component Group

Se requiere garantiza alta disponibilidad de un componente

Se provee un grupo de componentes

Se instancian en diferentes nodos de ejecución

Un requerimiento es enviado a todo el grupo

(26)
(27)

Estilos

(28)

Estilos

(29)

Estilos

(30)

Estilos

(31)

Estilos

(32)

Estilos

(33)

Estilos

(34)

Estilos

(35)

Estilos

(36)

Estilos

(37)

Estilos

(38)

Estilos

(39)

Estilos

(40)

Estilos

(41)

Estilos

(42)

Estilos

(43)

Estilos

(44)

Estilos

(45)

Estilos

(46)

Estilos

(47)

Estilos

(48)

Estilos

(49)

Estilos

(50)

Estilos

(51)

Estilos

(52)

Estilos

(53)
(54)

Conectores

Realizan transferencia de control y datos entre componentes

Proveen servicios

Persistencia

Invocación

Mensajería

Transaccionalidad

(55)

Conectores

Roles Principales

Comunicación

Coordinación

Conversión

Facilitadores

(56)

Conectores

Tipos de Conectores • Procedure Call • Event • Data access • Linkage • Stream • Arbitrator • Adaptor • Distributor

(57)

Conectores

Procedure Call Connectors

Modela el flujo de control entre componentes (Coordinador)

(58)
(59)

Conectores

Event Connectors

Coordinan el flujo de control

Basado en la ocurrencia de un evento y la generación de mensajes

(60)
(61)

Conectores

Data Access Connectors

Permite a los componentes acceder información que reside en un

componente de almacenamiento

Puede almacenar datos de manera persistente o temporal

(62)
(63)

Conectores

Linkage Connectors

Facilitan la creación de canales de comunicación y coordinación

Utilizados por conectores de mas alto nivel

(64)
(65)

Conectores

Stream Connectors

Utilizados para transmitir grandes cantidades de datos entre procesos autónomos

Utilizados con otros conectores para acceso a BD y archivos

(66)
(67)

Conectores

Arbitrator Connectors

Ayudan en situaciones donde no se sabe el estado de los componentes

Ejemplo:Sincronización y concurrencia

Ayudan en la negociación de niveles de servicio

(68)
(69)

Conectores

Adaptor Connectors

Proveen facilidades para soportar interacción entre componentes

No diseñados para interoperar

(70)
(71)

Conectores

Distributor Connectors

Realizan la identificación e interacción de caminos y rutas de comunicación y

coordinación entre componentes

(72)

Plan de Trabajo

Lo que sigue

Documento Arquitectura

Escenarios Operacionales - Casos Uso

Punto de Vista Funcional

Diagrama de Componentes

Identificación / Documentación Servicios

Preparación para el desarrollo

Tutoriales Spring/OSGI

(73)

Referencias

Software Architecture: Foundations, Theory and Practice. Richard Taylor, Nenad

Medvidovic, and Eric Dashofy

Patter-Oriented Software Architecture, Volume 4. Frank Buschman

Referencias

Documento similar

El manifiesto de una aplicación se encuentra en el directorio raíz del paquete .apk y, aunque el sistema operativo no utiliza toda la información que contiene,

Por otro lado, será imprescindible el conocimiento de los componentes principales de la motocicleta -chasis, basculante o motor- como punto de partida para el diseño de los

Por lo anterior se considera que el desarrollo de un Sistema de Gestión de la Calidad es de vital importancia para MEDDEX, el cual tiene como finalidad

El Sistema de Gestión Penitenciaria de la República Bolivariana de Venezuela (SIGEP) fruto del proyecto de Humanización Penitenciaria, cuyo objetivo es realizar

Se habla de la arquitectura que conforma el sistema, los principales módulos con que cuenta, los patrones de diseño que fueron aplicados para garantizar una mejor solución,

Con el estudio de las diversas herramientas, tecnologías, patrones de arquitectura y diseño que organizan el desarrollo del sistema y haciendo uso de un lenguaje de

Este método sirvió para estudiar todo el estado del arte de los fenómenos relacionado no solo con el análisis y el diseño de una aplicación como resultado

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el