Estilos Arquitectónicos



Documentos relacionados
Estilos Arquitectónicos

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

Arquitectura de Proyectos en IT

Arquitectura de Software III: Elaboración. Contenido del curso. III: Elaboración

Arquitecturas de Software


Curso: Diseño Orientado a Objetos Patrones de Diseño

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

Arquitectura de Software

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

Curso: Patrones de Diseño de Arquitecturas de tipo Enterprise

Escuela Técnica Superior de Ingeniería. Informática. Grado en Ingeniería Informática

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

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

Estilos y Patrones Arquitectónicos

Introducción. - Gráfica tomada del Artículo de José David Parra

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

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Service Oriented Architecture: Con Biztalk?

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

Arquitectura de Software: Estilos y Patrones

Resumen. Introducción

Patrones de software y refactorización de código

Service Oriented Architecture

ARQUITECTURAS DE SOFTWARE ORIENTADAS A SERVICIOS

IDeP. Service Oriented Network Architecture SONA. IDeP SA La Punta, San Luis, Agosto 2008

Capítulo 5. Cliente-Servidor.

Patrones de Diseño Orientados a Objetos 2 Parte

Creando Arquitecturas

Planificaciones Arquitectura de Software. Docente responsable: DIEZ EDUARDO LUIS. 1 de 6

Service Oriented Architecture

Arquitectura cliente/servidor

Ingeniería de Software Repaso de Requerimientos y Diseño

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Sistema de gestión de tareas y proyectos

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Comunicación Indirecta

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

Creación de Soluciones usando Patrones

Anexo 4 Documento de Arquitectura

Arquitectura Cliente/Servidor

- MANUAL TÉCNICO - Implantación de software de Marketing Online

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

SISTEMAS DE INFORMACIÓN II TEORÍA

Applied SOA Fundamentals and Best Practices

SDT Sistema de Provisioning y Conciliación

Arquitectura cliente/servidor

Fundamentos del diseño 3ª edición (2002)

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

Capítulo 4. Prueba de Adaptabilidad

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software

Diseño de Redes LAN Introducción a Redes. Derman Zepeda Vega dzepeda@unan.edu.ni

Patrones de diseño. Programación III.I.T.I. de Sistemas. Contenidos. Información sobre patrones de diseño. Motivación.

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria 2007

Arquitecturas y Tecnologías de Aplicaciones Empresariales

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Arquitectura de Aplicaciones Empresariales. Lic. Esteban Cesar Calabria

OLIMPO Servidor Universal

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

Gestión de Configuración del Software

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

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

Introducción. Objetivo. Implementar un detector de malware con software libre empleando el protocolo Netflow.

Tema 1. Arquitectura Cliente/Servidor

Arquitecturas de Software

Diseño de Componentes

Taller de Sistemas de Información 1. Clase 2 Sistemas de información Arquitectura

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Seminario en CD Bases para Java

Planificaciones Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5

JAVA 2 ENTERPRISE EDITION

MACROPROCESO GESTIÓN TECNOLÓGICA

Figure 9-1: Phase C: Information Systems Architectures

INTEGRACIÓN DE SISTEMAS HEREDADOS

Despliegue de plataforma Q-flow

JAVA EE 5. Arquitectura, conceptos y ejemplos.

e-commerce vs. e-business

Título: Optimización de Procesos de Negocio con SOA / BPM Nombre y Apellido: Mario Bolo bolo@ar.ibm.com Fecha: 15/08/2012

Capítulo 2 : Marco Teórico

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

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

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Los requisitos de accesibilidad en un proyecto software. Implicaciones de usuarios discapacitados en el proceso software

Acoplamiento e interoperabilidad

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

Evolución de Plantillas Genéricas para la descripción de Casos de Uso a Plantillas Genéricas para Análisis y Diseño

La Intranet Gubernamental como elemento clave de la Interoperabilidad

SIGPRE Sistema de Gestión Presupuestaria

Transcripción:

Estilos Arquitectónicos Ing. Ariel Cassan 2005

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 2

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 3

Qué es un patrón? Los patrones son soluciones reutilizables. Tipos de patrones De sistema (o estilos arquitectónicos) De diseño (por ejemplo GoF) De codificación (buenas prácticas y estándares) Anti-Patterns Una arquitectura combina muchos patrones o estilos 4

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 5

Estilos arquitectónicos Un patrón o estilo arquitectónico define: Qué forma tienen los componentes Qué forma tiene la comunicación entre esos componentes Qué restricciones se ponen a esa comunicación 6

Estilos arquitectónicos Estructuración Dataflow Systems Batch Secuential Pipes & Filters Call & Return Hierarchical Layers Sistemas distribuidos Broker Comunicación Forwarder-Receiver Client-Dispatcher-Server Publisher-Subscriber Sistemas Interactivos MVC Sistemas Adaptables Microkernel 7

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 8

Patrones de estructuración - Dataflow Serie de transformaciones de sucesivos datos de entrada. Los datos fluyen a través de los componentes del sistema. Estilos Batch Secuential Pipes & Filters 9

DataFlow - Batch Sequential Los pasos de procesamiento son programas independientes Cada paso se completa antes de comenzar el siguiente. Los datos se transmiten entre programas como un todo. datos datos datos Prog 1 Prog 2 Prog 3 10

DataFlow - Pipe & Filters Hincapié en la transformación incremental de los datos. Los filtros transforman los datos sin retener información de estado. Los pipes mueven los datos entre los filtros pero permiten la flexibilidad en las conexiones. 11

Patrones de estructuración Call & Return Estilo arquitectónico dominante El sistema se ve como una serie de llamadas a procedimientos y funciones. Estilos Hierarchical Layers Main Program - Subroutines Object Oriented 12

Call & Return Hierachical Layers Cada capa: Provee servicios a la capa superior Es cliente de la capa inferior No todos los sistemas pueden ser arquitecturados en capas La mayor dificultad es encontrar los niveles de abstracción adecuados. 13

Call & Return Hierachical Layers Ventajas: Permite dividir un sistema complejo mediante abstracción. Mejoras en una capa impactan en todo el sistema Suponen reusabilidad y fácil intercambio Facilitan el testing unitario de la funcionalidad de cada capa Desventajas: Posible deterioro de performance con muchas capas. Cambios suelen tener que replicarse en todas las capas 14

Call & Return Hierachical Layers Arquitectura 2 capas: Cliente - Servidor 15

Call & Return Hierachical Layers Arquitectura 3 capas 16

Call & Return Hierachical Layers Arquitectura 4 capas 17

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 18

Patrones sobre sistemas distribuidos Broker Un componente Broker coordina la comunicación entre clientes y servidores. Los clientes y servidores utilizan componentes proxy para comunicarse con el broker. Permite que la distribución de la aplicación sea transparente para los implementadores. Posibilita la interoperabilidad de tecnologías heterogéneas 19

Patrones sobre sistemas distribuidos Broker Ejemplos de uso: CORBA, World Wide Web 20

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 21

Patrones de comunicación Muchos sistemas de software distribuyen sus componentes a través de redes, por lo que requieren comunicación. Estilos: Forwarder-Receiver Client-Dispatcher-Server Publisher-Subscriber 22

Forwarder-receiver Provee encapsulamiento del mecanismo de comunicación 23

Forwarder-receiver Empleado en escenarios de comunicación peer to peer Desacopla a los clientes del mecanismo de IPC implementado Mejora la portabilidad del código cliente a otras plataformas Mejora la modificabilidad del mecanismo de IPC subyacente 24

Client-Dispatcher-Server Provee Location Transparency para el cliente Oculta los detalles del establecimiento del canal de comunicación entre cliente y servidor 25

Client-Dispatcher-Server El servidor se registra con el Dispatcher Un cliente solicita al Dispatcher un canal de comunicación para un servidor específico (por nombre) El Dispatcher localiza al servidor, establece un canal de comunicación con el mismo y lo retorna al cliente El cliente envía una solicitud al servidor de manera directa 26

Publisher-Subscriber Mantiene la sincronización entre componentes cooperativos. Un componente publisher notifica a muchos consumidores subscribers suscriptos a él. Análogo al patrón de diseño Observer. 27

Publisher-Subscriber 28

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 29

Patrones sobre sistemas interactivos Mayoría de software tiene algún tipo de interacción con el usuario El objetivo es separar la funcionalidad principal de las vistas de presentación. Estilos principales: MVC MVP MVVM 30

MVC (Model View Controller) Origen a principios de 80s para Smalltalk Divide la aplicación en 3 tipos de componentes: modelos, vistas y controladores. Modelo: principal funcionalidad e información Vista: muestra información al usuario Controlador: controla los inputs del usuario 31

MVC (Model View Controller) 32

MVC (Model View Controller) Habitualmente combinado con el patrón de diseño Observer para las actualizaciones de vistas. Ventajas: Múltiples vistas del mismo modelo Vistas sincronizadas Base potencial para construir un framework Desventajas: Número de actualizaciones potencialmente alto Alto acoplamiento entre los tres componentes 33

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 34

Patrones sobre sistemas adaptables Los sistemas de software cambian con el tiempo, así como los sistemas operativos, plataformas, etc Se buscan arquitecturas que se adapten a estos cambios a futuro. Estilos: Microkernel 35

Microkernel Separa la funcionalidad core de extensiones y de aplicaciones del cliente. Es fundamental encontrar un equilibrio entre la cantidad de funcionalidades para el microkernel. Utiliza extensiones internas y externas para resolver las funcionalidades esperadas por los clientes. Encapsulan la funcionalidad elemental, que puede no cambiar a medida que el software/hardware evoluciona 36

Microkernel Ejemplos: API de un SO, IDEs 37

Microkernel Microkernel: ofrece los servicios fundamentales y administra los recursos. Internal Servers: ofrece funcionalidad específica de la plataforma. Son como extensiones del microkernel y se activan bajo demanda. External Servers: utiliza el microkernel para implementar su propio punto de vista de la plataforma y ofrece una API de mayor nivel a sus clientes. Clients: representan una aplicación que consume los servicios de un Servidor Externo a través de un Adapter. 38

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 39

Agenda # Tema Duración 1 Que es un Patrón? 5 min 2 Introducción a estilos arquitectónicos 5 min 2.1 De Estructuración 20 min 2.2 Sistemas distribuidos 5 min 2.3 De Comunicación 10 min 2.4 Sistemas interactivos 15 min 2.5 Sistemas adaptables 10 min 2.6 Otros 5 min 3 Bibliografía 5 min. 40

Bibliografía Pattern Oriented Software Architecture: A System of Patterns. John Wiley & Sons, 1996. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996. Shaw, M., Garlan, D. Patterns of Enterprise Application architecture. Addison- Wesley, 2002. Fowler, M. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Gamma, E., Helm, R., Johnson, R., Vlissides, J. 41