estilos y patrones arquitectonicosisis... · procesamiento en los componentes del modelo, y...
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/1.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/2.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/3.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/4.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/5.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/6.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/7.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/8.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/9.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/10.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/11.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/12.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/13.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/14.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/15.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/16.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/17.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/18.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/19.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/20.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/21.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/22.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/23.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/24.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/25.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/26.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/27.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/28.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/29.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/30.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/31.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/32.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/33.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/34.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/35.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/36.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/37.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042116/5e936eaaaeac2660ed459c40/html5/thumbnails/38.jpg)
LA ARQUITECTURA JEE ES MVC, MVP O MVVM ?