Diseño de Componentes



Documentos relacionados
Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Estilos y Patrones Arquitectónicos

Arquitectura cliente/servidor

Arquitectura cliente/servidor

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

Arquitecturas de Software

Components & Connectors Viewtype. Estilos

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

ARQUITECTURAS DE PROCESOS DE NEGOCIOS INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Capítulo 4. Diseño de un sistema para reconocimiento y consulta de las tarjetas Hu

Instructivo para la elaboración de un Manual Técnico

Análisis y Diseño de Soluciones de Software

6.8 La Arquitectura del Sistema. [Proceso]

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

Capítulo 7: Introducción a la dinámica de servicios Web

Estilos Arquitectónicos

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

Arquitectura de Software

DISEÑO DE COMPONENTES DE SOFTWARE *

- Necesidad de intercambiar información clínica entre diferentes aplicaciones. - Acuerdos de intercambio. Necesidad de ESTANDAR!

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

REDES y COMUNICACIONES I. Módulo 02: Modelo de Referencia OSI CONTENIDO

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

Conceptos básicos de Ingeniería de Software

Capítulo 5. Cliente-Servidor.

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

MODULO ADMINISTRATIVO

Desarrollo y servicios web

Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Despliegue de plataforma Q-flow

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Sistema de Mensajería Empresarial para generación Masiva de DTE

Sistemas de Operación II

Procesos. Bibliografía. Threads y procesos. Definiciones

TEMA 7: DIAGRAMAS EN UML

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

ARC 108 Component Model

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje


Documento de Arquitectura de Software. KunaySoft. Autores: Juan Camilo González Vargas. Javier Leonardo Parra Laguna

SISTEMAS DE INFORMACIÓN II TEORÍA

ARC 101 Architecture Overview Diagram

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

MARCO DE REFERENCIA PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Autenticación Centralizada

Arquitectura Cliente/Servidor

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Manual de Procedimientos

Generador GeneXus JAVA

SISTEMAS DE INFORMACIÓN III TEORÍA

Métricas. Valentin Laime. Calidad de Software

Actualización del Conjunto de Principios, Políticas, Estándares y Recomendaciones

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Unidad I Fundamentos de Sistemas Distribuidos. M.C. Juan Carlos Olivares Rojas

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Modelado y Diseño de Arquitectura de Software

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

Fundamentos de Bases de Datos Distribuidas

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

Service Oriented Architecture

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA Características

Sistemas de Operación II

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CONTENIDO. 1. Justificación del Modelo. 2. Metodología empleada para la definición del Modelo. 3. Generalidades del Modelo.

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

Modelo de Objetos Distribuidos

Modelado arquitectónico con UML

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

Propiedad Colectiva del Código y Estándares de Codificación.

Resumen obtenido de: Roger S. Pressman, Ingeniería de Software. Un enfoque práctico, quinta edición, Introducción al Diseño de Software

Workflows? Sí, cuántos quiere?

a) Cita y comenta brevemente los grados de acoplamiento. Clasifícalos y ordénalos en orden creciente al nivel de acoplamiento asociado.

Tema 4. Diseño arquitectónico.

MARCO DE REFERENCIA SISTEMAS DE INFORMACIÓN PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Estilos Arquitectónicos

Formatos para prácticas de laboratorio

La Intranet Gubernamental como elemento clave de la Interoperabilidad

2.1 Multibase. Información mas detallada sobre este sistema se encuentra en [Ceri y Pelagatti 1985].

Modelamiento de Procesos con BPMN

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

POLÍTICAS PARA EL DESARROLLO DE SISTEMAS INFORMÁTICOS.

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

Comunicación entre Procesos y Sockets

Servicios Área Ingeniería. Integración continua

Transcripción:

Diseño de Componentes 1

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 Estudiar los principales tipos de conectores 2

Diseño de Interfaces 3

Interfaces Componentes - Interfaces Responsabilidades del componente Servicios ofrecidos Protocolos utilizados / requeridos 4

Interfaces Retos Responsabilidades del componente Especificación de contratos Bajo acoplamiento y estabilidad Distribución de componentes Heterogeneidad Atributos de calidad Expresividad y simplicidad 5

Interfaces Patrones Explicit Interfase Extension Interfase Introspective Interface Dynamic Invocation Business Delegate Proxy Facade Combined Method Iterator Enumeration Method Batch Method 6

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 Sincronización 7

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 Interfaces con roles en el componente 8

Interfaces Instrospective Interface Pattern Ofrece una interfaz suplementaria Permite al cliente conocer el interior del componente Facilita el monitoreo y control del componente 9

Interfases Dynamic Invocation Pattern Ofrece una interfaz sumplementaria Permite a los clientes invocar métodos del componentes de forma dinámica En tiempo de ejecución 10

Interfaces Business Delegate Pattern Hace transparente a los clientes de un componente Localización del componente Lookup Balanceo de carga Manejo de error 11

Interfaces Proxy Los clientes de un componente se comunican con un emisario en lugar del componente mismo Seguridad Localización Remota 12

Interfaces Facade Un punto único de acceso para el cliente Varios componentes involucrados 13

Interfaces Combined Method El cliente debe realizar la invocación de métodos en un orden particular muchas veces No facilita su utilización Promueve la inyección de defectos 14

Interfaces Iterator Se requiere visitar elementos en un componente agregado El cliente no quiere depender de la estructura interna El componente no quiere revelar su estructura 15

Interfaces Enumeration Method Se requiere iterar sobre elementos de un componente agregado Se quiere invocar una acción en cada elemento No siempre Iterator funciona (Grafos, Arboles) 16

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 Retornar un arreglo con los resultados 17

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 18

Componentes Patrones Encapsulated Implementation Replicated Component Whole-part Composite Master-Slave Half Object 19

Componentes Encapsulated Implementation Esconde completamente los detalles de implementación La implementación encapsulada puede evolucionar 20

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 21

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 22

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 23

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 requeridos 24

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 Se utiliza la primer respuesta obtenida 25

Estilos Arquitectónicos 26

Estilos Layered (Virtual Machine) 27

Estilos Layered (Virtual Machine) 28

Estilos Layered (Virtual Machine) 29

Estilos Layered (Client-Server) 30

Estilos Layered (Client-Server) 31

Estilos Dataflow (Batch-Sequential) 32

Estilos Dataflow (Batch-Sequential) 33

Estilos Dataflow (Pipe-and-Filter) 34

Estilos Dataflow (Pipe-and-Filter) 35

Estilos Shared Memory (BlackBoard) 36

Estilos Shared Memory (BlackBoard) 37

Estilos Shared Memory (Rule-Based) 38

Estilos Shared Memory (Rule-Based) 39

Estilos Interpreter (Interpreter) 40

Estilos Interpreter (Interpreter) 41

Estilos Interpreter (Mobile code) 42

Estilos Interpreter (Mobile code) 43

Estilos Implicit Invocation (Publish-subscribe) 44

Estilos Implicit Invocation (Publish-subscribe) 45

Estilos Implicit Invocation (Event-based) 46

Estilos Implicit Invocation (Event-based) 47

Estilos Peer-to-Peer 48

Estilos Peer-to-Peer 49

Estilos C2 50

Estilos C2 51

Estilos C2 52

Conectores 53

Conectores Realizan transferencia de control y datos entre componentes Proveen servicios Persistencia Invocación Mensajería Transaccionalidad Normalmente considerados Componentes 54

Conectores Roles Principales Comunicación Coordinación Conversión Facilitadores 55

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

Conectores Procedure Call Connectors Modela el flujo de control entre componentes (Coordinador) Flujo de datos - Parámetros (Comunicación) 57

Conectores 58

Conectores Event Connectors Coordinan el flujo de control Basado en la ocurrencia de un evento y la generación de mensajes Usados en aplicaciones distribuidas 59

Conectores 60

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 61

Conectores 62

Conectores Linkage Connectors Facilitan la creación de canales de comunicación y coordinación Utilizados por conectores de mas alto nivel 63

Conectores 64

Conectores Stream Connectors Utilizados para transmitir grandes cantidades de datos entre procesos autónomos Utilizados con otros conectores para acceso a BD y archivos 65

Conectores 66

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 Ejemplo: Scheduling, Load Balancing 67

Conectores 68

Conectores Adaptor Connectors Proveen facilidades para soportar interacción entre componentes No diseñados para interoperar Proveen servicios de conversión 69

Conectores 70

Conectores Distributor Connectors Realizan la identificación e interacción de caminos y rutas de comunicación y coordinación entre componentes Ejemplo: DNS, Routing, Switching 71

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 Ambiente de desarrollo y producción 72

Referencias Software Architecture: Foundations, Theory and Practice. Richard Taylor, Nenad Medvidovic, and Eric Dashofy Patter-Oriented Software Architecture, Volume 4. Frank Buschman 73