estilos y patrones arquitectonicosisis... · procesamiento en los componentes del modelo, y...

38
ESTILOS Y PATRONES ARQUITECTONICOS ISIS 3710

Upload: others

Post on 07-Apr-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

ESTILOS Y PATRONES ARQUITECTONICOSISIS 3710

Page 2: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Aplicaciones Web

ServidorCliente

Web browser/cliente http Servidor/Contenedor web

Componentes del lado del cliente: HTML, CSS, JS

Componentes del lado del servidor: JSP, JSF, PHP, EJBs

Page 3: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Aplicaciones Web

Cliente

Web browser/cliente http

Componentes del lado del cliente: HTML, CSS, JS

- Lógica de presentación - Clientes ligeros - Componentes se ejecutan en

el browser - Interacción con el usuario

Page 4: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Aplicaciones Web

Servidor

Servidor/Contenedor web

Componentes del lado del servidor: JSP, JSF, PHP, EJBs

- Lógica de negocio - Procesamiento

computacionalmente costoso - Bases de datos SQL/NoSQL - CDNs: content deliver network - Motores de minería de datos, BI

Page 5: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Aplicaciones Web

ServidorCliente

Web browser/cliente http Servidor/Contenedor web

Page 6: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Aplicaciones Web

Servidores, Servicios virtualizados, Servicios en

cloudCliente

Web browser/cliente http Servidor/Contenedor web

Page 7: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Aplicaciones Web

Servidores, Servicios virtualizados, Servicios en

cloudCliente

Cliente rico que accede a servicios

vía http

Servidor/Contenedor web

Page 8: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos arquitectónicos

http://www.vintage-views.com/architectural-styles/

Page 9: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos arquitectónicos

Conjunto de decisiones que explican una aproximación genérica para el diseño de un sistema de software:

• Componentes

• Conectores (interacciones entre componentes)

• Restricciones acerca de cómo deben ser combinados los componentes y conectores

• Modelo computacional asociado al estilo

Page 10: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Page 11: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Page 12: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

La computación/procesamiento es dirigido por el flujo de datos en el sistema

Page 13: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Page 14: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Interacción por invocación síncrona de capacidades proporcionadas por

los componentes

Page 15: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Page 16: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Los componentes interactúan mediante eventos/mensajes

asíncronos

Page 17: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Page 18: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Los componentes interactúan mediante colecciones de datos

compartidos y persistentes

Page 19: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Estilos basados en componentes y conectores

C & C

Data flow Call-return Event-based Repository

Batch sequential

Pipes and filters Client-server Peer to peer Point to point

messaging Shared dataPublish-suscribe

Pipeline UNIX pipe-and-filter Multi-tier

SOA Blackboard

Page 20: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Call return

• Representa un modelo computacional en el cual los componentes proporcionan servicios que pueden ser invocados por otros de forma síncrona.

• Un componente que invoca un servicio permanece en estado de bloqueo mientras el servicio termina.

Page 21: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Call return: cliente servidor

• Clientes invocan servicios proporcionados por un servidor.

• La interacción se hace a través de un protocolo basado en un esquema de request/reply (por ejemplo HTTP)

• El cliente requiere conocer el servidor y el servicio a invocar; los servidores no conocen los clientes.

Page 22: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Call return: SOA

• Clientes invocan servicios proporcionados por los servidores, en un ambiente heterogéneo.

• La interacción se hace mediante invocación directa o mediante el uso de un bus empresarial (ESB).

• Es event-based porque puede usar motores de orquestación/coreografía e invocar servicios de forma asíncrona

Cliente

Proveedor

Proveedor

Bus

Cliente

Proveedor

Proveedor

Page 23: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Event based

• Se caracteriza por una federación bajamente acoplada de componentes que disparan comportamientos en otros a través de eventos.

• Pueden ser punto a punto u operar en un modelo de publicación-suscripción.

Page 24: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Event based: Publish-suscribe

• Los conectores se suscriben a un conjunto de eventos

• El conector entre los componentes es un bus de eventos: los componentes anuncian eventos en el bus, y el bus entrega los eventos a los componentes respectivos (suscriptores)

Bus

Page 25: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Patrón vs Estilo

Contexto y problema

Decisiones de diseño Estilo

Patrón

El patrón incluye la descripción del contexto y problema a solucionar

Page 26: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Controller (MVC)

http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html

http://heim.ifi.uio.no/~trygver/2007/MVC_Originals.pdf

Page 27: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Controller (MVC)

Vista

Modelo

Controlador

Eventos del usuario

Vista a pintar

Solicita procesamiento

Toma datos

Notifica cambios

Page 28: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Controller (MVC)

Controlador: acepta solicitudes del usuario, invoca procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el mapeo entre las acciones del usuario y la modificación del modelo.

Vista: envía eventos al controlador, y pinta los datos contenidos en los componentes del modelo.

Modelo: contiene los datos, reglas y lógica de negocio. No debe tener ningún detalle acerca de la interfaz gráfica.

Page 29: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Presenter (MVP)

Page 30: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Presenter 1 (MVP - Passive view)

Vista

ModeloPresentador

Eventos del usuario

Vista a pintar, datos,

actualiza vista

Solicita procesamiento, cambia modelo

Datos, Notifica cambios

Page 31: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Presenter 1 (MVP - Passive view)

Vista

ModeloPresentador

Eventos del usuario

Vista a pintar, datos,

actualiza vista

Solicita procesamiento, cambia modelo

Datos, Notifica cambios

Interfaz de la vista, útil para mock testing

Page 32: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Presenter 2 (MVP - Supervising Controller)

Vista

ModeloPresentador

Eventos del usuario

Vista a pintar, datos,

actualiza vista

Solicita procesamiento, cambia modelo

Datos, Notifica cambios

binding

Page 33: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View ViewModel (MVVM)

https://blogs.msdn.microsoft.com/johngossman/2005/10/08/introduction-to-modelviewviewmodel-pattern-for-building-wpf-apps/

Page 34: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View ViewModel (MVVM)

Vista

ModeloVistaModelo

Solicita procesamiento, cambia modelo

Datos, Notifica cambios

binding, commands,

notificaciones

Page 35: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Model View Whatever (MV*, MVW)

https://plus.google.com/+AngularJS/posts/aZNVhj355G2

Page 36: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

EN LOS PATRONES MVC, MVP, MVVM, DONDE SE LOCALIZAN LA LOGICA DE NEGOCIO Y LA LOGICA DE PRESENTACION ?

Page 37: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

Arquitectura JEE (multi-tier)

EIS tier

Web tier

Client tierBrowser, Applets Cliente rico Java

Servlets, JSP, JSF Web Services REST, SOAP

POJOs, Beans, Helpers, Facades, ApplicationServices, DAOs

Biz tierEJBs, JPA entities

Bases de datos Sistemas legados

Page 38: ESTILOS Y PATRONES ARQUITECTONICOSisis... · procesamiento en los componentes del modelo, y determina cual vista debe ser desplegada. Define el flujo de la aplicación. Realiza el

LA ARQUITECTURA JEE ES MVC, MVP O MVVM ?