1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011.

Slides:



Advertisements
Presentaciones similares
INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Advertisements

Red Social: “Un millón de Amigos”.
Estructura de un Sistema Operativo
Java 2 Platform Enterprise Edition
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Modelo de 2 Capas Cliente/Servidor.  Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le.
1 Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Mayo 2011.
Arquitectura de Software. Contenido 1. Introducción 2. Características de la arquitectura 3. Los casos de uso y la arquitectura 4. Descripción de la arquitectura.
1 Universidad Del Caribe Telemática Sistemas Operativos Distribuidos y de Tiempo Real “Modelos de Sistemas” Profesor: Joel Antonio Trejo Sánchez Integrantes:
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
La Plataforma Holmes Irisel Consulting 2016.
Conferencia # 3 Ingeniería de Software II
11 de enero PFC 2016 Proyecto Final de Carrera – 2015 Semestre 2 – Oscar Escudero Sanchez Andorra la Vella - Andorra Copyright © 2016 Adrián Chavero Ramos.
Protocolo de comunicación
Sistemas Distribuidos
MODELO CLIENTE -SERVIDOR
ARQUITECTURA DE COMPUTADORES
Aplicaciones Web 1 CAPITULO 1 Introducción a las aplicaciones Web Ing. Jeffery Naranjo Msc
Ingeniería de Sistemas Requerimientos
Modelo de 3 capas. Qué es la arquitectura de una aplicación? La arquitectura se refiere a la forma en la que es diseñada tanto física como lógicamente.
Definición de un Sistema Distribuido
QUÉ SON Las redes informáticas son conjuntos de dispositivos interconectados entre sí para intercambiar información y recursos a través de un medio común.
QUÉ SON Las redes informáticas son conjuntos de dispositivos interconectados entre sí para intercambiar información y recursos a través de un medio común.
REDES DE ORDENADORES ANA ARAGÓN NOGALES.
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
SOL GUTIÉRREZ Y MARIANA HEINTZ 4°C Prof. Gustavo price
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
ARQUITECTURA DE SOFTWARE Y SUS COMPONENTES Integrantes: Luis Morel Braulio Jiménez Yeuris Ossers Rawel Lauciano
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
Page 1. Page 2 Los lineamientos básicos que debe contener las paginas HTML.
ESTRUCTURA DE S.OPERATIVO
ESTRUCTURA DE SISTEMAS OPERATIVOS
ESTRUCTURA DEL SISTEMA OPERATIVO INTEGRANTES: *CARBAJAL GONZALES, ESMERALDA *GONZALES CABRERA, MIRIAM *OTRIZ SARAVIA, KAREN.
ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS INTEGRANTES: -SIAS ALVAREZ -GUTIÉRREZ ROBLES -GELDRES HUAYCOCHEA.
Patrones de Diseño Sistemas de Información II – IS 445 Docente: Lisber Arana Hinostroza Mayo
Servidores web. ¿Cómo funciona la web? Internet Cliente Web ( Netscape, Internet Explorer, Firefox, etc.) Servidor Web Servidor de nombres (DNS) 2.
Características Generales y Entornos de Desarrollo
Java Enterprise edition
Curso: fundamentos de redes Profesor: Miguel farfan Sesion: 03
Arquitectura cliente/servidor 2008
MIDDLEWARE Y PROGRAMACION WEB DISTRIBUIDA. ¿ QUE ES MIDDLEWARE?
Servidor de Reportes basado en Tecnología Java y XML
Arquitectura de Software
helppeople Single Sign -On
“Conceptos Básicos de Java”
Spring Framework.
Nuestros canales de comunicación Gestión de la Calidad del Software Modelos y Estándares de Calidad en el Software.
ARQUITECTURA DEL PROYECTO. La estructura modelo vista controlador se muestra en la siguiente ilustración : ESTRUCTURA DE PROYECTOS DE MVC.
EVOLUCIÓN DEL SOFTWARE  ¿Qué es software?  Es un producto y, al mismo tiempo el vehículo para entregarlo (Pressman 2002)  El software ha sufrido cambios.
Arquitectura Aplicaciones Web
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Construcción de Sistemas Colaborativos (Arquitectura y construcción)
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS CHACALIAZA BOZA MARGARET AMARLLY.
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FILIAL CHINCHA ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Por: Nestares Torres Luis Jesús Enrique.
ESTRUCTURA DE SISTEMAS OPERATIVOS - ROY CANEPA JUAN FABIO
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS CHACALIAZA BOZA MARGARET AMARLLY.
Estructura de Sistemas Operativos
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS Magallanes Napa, Anthony Yair.
Ha llegado el momento de dar una mirada al interior de los Sistemas Operativos. En las siguientes secciones examinaremos cuatro estructuras distintas.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS - MENDOZA MOLINA ARIANA
Conjunto de programas contenidos en un núcleo o kernel que efectúan la gestión de los procesos básicos de un Sistema informático, y permite la normal.
Estructura de los Sistemas Operativos
SISTEMAS OPERATIVOS Estudiante: Rojas De la Cruz Jesus Manuel. Ciclo: VI. Turno: Noche.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS By Pachas Garay Bruno.
Cliente Servidor Petición Respuesta Aplicaciones Cliente-Servidor.
EVOLUCIÓN DEL SOFTWARE  ¿Qué es software?  Es un producto y, al mismo tiempo el vehículo para entregarlo (Pressman 2002)  El software ha sufrido cambios.
Transcripción de la presentación:

1 Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011

2 Diseño Arquitectónico Arquitectura del Software Bibliotecas / Componentes Patrones de Diseño Clases / Funciones Frameworks (Marcos) Estilos Arquitectónicos

3 Diseño Arquitectónico ¿Qué es un estilo? - ¿Qué es un estilo arquitectónico?

4 Estilos Arquitectónicos Art Deco Deconstructivismo

5 Estilos Arquitectónicos Los ingenieros civiles, cuando tienen que construir un puente generalmente seleccionan un tipo de puente determinado que se adapte a las necesidades del contexto y del problema a resolver...

6 Estilos Arquitectónicos La arquitectura de un sistema de software puede basarse en uno (o en varios) modelos o estilos arquitectónicos bien conocidos Un estilo arquitectónico define una familia de sistemas (cierto tipo de sistemas) en términos de patrones estructurales, de control, de comunicación, etcétera Fuente: Sommerville (Cap 11)

7 Estilos Arquitectónicos Un conjunto de conectores entre componentes (comunicación, coordinación, cooperación, etcétera) Restricciones que definen cómo se integran los componentes para formar el sistema Un conjunto de componentes (con sus responsabilidades) Modelos que permiten comprender las propiedades de un sistema general en función de las propiedades conocidas de las partes que lo integran Un estilo arquitectónico describe: Fuente: Pressman (Cap 10)

8 Estilos Arquitectónicos Para todas las arquitecturas (estilos arquitectónicos) mostrados a continuación es necesario preguntarse: ¿Qué ventajas tiene el estilo? ¿Qué desventajas tiene? ¿En qué contextos aplica?

9 ¿Otros aspectos de la gestión de proyectos? Una reflexión final sobre lo profundo del abismo Seguridad Rendimient o Usabilidad Confiabilida d EscalabilidadPortabilidadReusabilidad Disponibilida d Facilidad de Prueba Eficiencia (memoria, ejecución) Mantenibilidad ¿De qué forma impacta el uso un estilo en las propiedades del sistema? Modificabilid ad Extensibilida d otras...

10 Estilos Arquitectónicos Fuente: Una arquitectura monolítica describe una aplicación en la que toda la funcionalidad del sistema (ej. acceso a datos, interfaz de usuario, lógica, etcétera) está implementada y mezclada en una sola capa. Esto, en la gran mayoría de los casos, no es una buena idea... ¿Por qué? Sistema (TODO EL SISTEMA) ¿Tip: Recuerdan el ejemplo del sistema de empaquetamiento de Sommerville y la discusión subsecuente?

11 Estilos Arquitectónicos (Repositorio / Pizarrón) Aplicación / Modulo 1 Aplicación / Modulo 2 Aplicación / Modulo 3 Aplicación / Modulo 4... Aplicación / Modulo N Repositorio (Base de Datos, Sistema de Archivos, Memoria Compartida, etcétera) Repositorio / Pizarron

12 Estilos Arquitectónicos (Cliente / Servidor) Cliente 1 Cliente 2 Cliente N... Servidor 1 Servidor N... Petición Respuesta Red Internet, LAN, WAN Cliente Servidor

13 Estilos Arquitectónicos (Cliente / Servidor) Cliente “Liviano” vs Cliente Pesado Client e Servido r Petición Respuesta Red Liviano: Lógica de la Aplicación solamente del lado del servidor Pesado: Lógica de la Aplicación parcial o totalmente del lado del cliente

14 Estilos Arquitectónicos (Cliente / Servidor - WEB) Fuente Imagen: web

15 Estilos Arquitectónicos (Cliente / Servidor - WEB) Fuente Imagen: web

16 Estilos Arquitectónicos (Tuberías y Filtros) Filtro 1 Filtro 2 Filtro 3 Filtro 5Filtro 4 Tuberías (Flujo de Datos / Información) Filtros (Transformación de Datos / Información) Tuberías y Filtros

17 Estilos Arquitectónicos (Tuberías y Filtros) Tuberías y Filtros

18 Estilos Arquitectónicos (Tuberías y Filtros) Tuberías y Filtros

19 Arquitectura (Ejemplo) Arquitectura por Capas Capa 1 Capa 2 Capa N... API (Application programming interface) Interfaz Mas Seguridad / Protección Menos Abstracción

20 Arquitectura (Ejemplo) Capa de Presentación (Interfaz Gráfica de Usuario) (HTML, Swing, Qt, GTK, etcétera) Capa de Proceso / Negocio (Lógica / Reglas de Negocio) Capa de Persistencia BD Arquitectura a tres Capas (Muy utilizado en aplicaciones empresariales)

21 Arquitectura (Ejemplo con más detalle) BD Motor de Workflow (CledaFlow, CledaScheduler y CledaBase) Hibernate JDBC Documentos MVC CledaMVC (Struts1) o Echo2 Modelo de Dominio Servlets Navegador WEB CledaTags CledaCore Aplicación Arquitectura a tres Capas (Muy utilizado en aplicaciones empresariales)

22 Estilos Arquitectónicos (Arquitectura por Capas) Arquitectura por Capas

23 Estilos Arquitectónicos (Arquitectura por Capas) Arquitectura por Capas

24 Estilos Arquitectónicos (Control Centralizado - Síncrono) Control Centralizado Programa Principal Rutina 1Rutina 2Rutina 3 Rutina 1.1Rutina 1.2Rutina 2.1 Rutina 3.1Rutina 3.2

25 Estilos Arquitectónicos (Control Centralizado - Asíncrono) Control Centralizado Controlado r del Sistema Procesos Tipo 1 (Ej: Sensores) Procesos Tipo 2 (Ej: Cálculo) Procesos Tipo 4 (Ej: Actuadores) Procesos Tipo 3 (Ej: Fallos) Procesos Tipo 5 (Ej: Fallos)

26 Estilos Arquitectónicos (Sistemas Dirigidos por Eventos) Cada subsistema genera eventos según su condición y define que eventos de otros subsistemas desea atender Manejador de Eventos Subsistema 1 Subsistema 2... Subsistema N El manejador de eventos se encarga de enviar los eventos generados a aquellos sistemas interesados en recibirlos

27 Estilos Arquitectónicos (Interprete / Máquina Virtual) Programa a Interpretar Máquina Virtual Hardware Real (CPU, dispositivos, memoria, etc) Hardware Simulado (CPU, dispositivos, etc) Datos (Estado del Programa)

28 Estilos Arquitectónicos (Interprete / Máquina Virtual) “Write once, run anywhere” Sun Microsystems

29 Estilos Arquitectónicos (Interprete / Máquina Virtual) “Write once, run anywhere” Sun Microsystems

30 Estilos Arquitectónicos (Interprete / Máquina Virtual) Código Java Foo.java Código Scala Foo.scl Código Clojure Foo.clj Código JRuby Foo.rub y Código Jython Foo.phy Java Byte Code Compilador Clojure (...) Compilador Scala (...) Compilador Jython (...) Compilador JRuby (...) Compilador Java (javac) UnixLinuxWindowsMac JVM Java Runtime + La flexibilidad de la arquitectura Java

31 Estilos Arquitectónicos (RPC / RMI) RPC: Remote Procedure Call RMI: Remote Method Invocation

32 Estilos Arquitectónicos (RPC / RMI) RPC: Remote Procedure Call RMI: Remote Method Invocation

33 Estilos Arquitectónicos (Arquitecturas de Objetos Distribuidos / CORBA) Objeto1 (Instancia) Nodo 1 Nodo 2 Nodo N Objeto2 (Instancia) Objeto3 (Instancia) Objeto N (Instancia) Red (Bus software) Nodo Cliente El nodo cliente utiliza (de forma transparente) los objetos que existe y están corriendo en los demás nodos

34 Estilos Arquitectónicos (Sist. Distribuidos / Arquitecturas Peer To Peer) P1 P7 P4 P6P2 P8P3 P5 P9 Un par puede jugar un rol de cliente y/o de servidor, dependiendo de las necesidades del momento Cada uno de los pares descubre a sus otros pares y establecen conexiones al mismo nivel (no de forma jerárquica) cooperando para lograr un objetivo determinado

35 Estilos Arquitectónicos (Sist. Distribuidos / Arquitecturas Peer To Peer) Cada uno de los pares descubre a sus otros pares y establecen conexiones al mismo nivel (no de forma jerárquica) cooperando para lograr un objetivo determinado P1 P7 Servidor / Coordin ador P6P2 P8P3 P5 P9 Un “servidor” puede servir para coordinar el descubrimiento de los pares

36 Estilos Arquitectónicos (Arquitectura basada en Plugins) Fuente: API (Application programming interface) Interfaz bien definida

37 Estilos Arquitectónicos (Plugins / Eclipse) Una estrategia basada en plugins hace que un sistema pueda ser fácilmente extendido y complementado por terceras partes

38 Estilos Arquitectónicos (Plugins / Eclipse)

39 Estilos Arquitectónicos (Arquitecturas de Referencia) Normalmente se obtienen por medio del estudio de una clase de aplicación (de un dominio en particular) Representan una arquitectura ideal que incluye todas las características que cierto tipo (clase) de sistema podría incorporar

40 Lecturas Recomendadas Pressman, Ingeniería del Software, Capítulo 10 Mary Shaw, David Garlan, Software Architecture Perspectives on an Emerging Discipline (Está en la biblioteca) Sommerville, Ingeniería del Software, Capítulos 11, 12 y 13 (En ese orden de prioridades) Patrones Arquitectónicos

41 Gracias ¡Gracias!