Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby...
Transcript of Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby...
![Page 1: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/1.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Comportamiento
Jose Emilio Labra GayoCurso 2020/2021
![Page 2: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/2.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Estilos según comportamientoFuncionamiento en tiempo de ejecuciónComponentes y conectores
![Page 3: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/3.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
![Page 4: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/4.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Secuencial BatchPipes & Filters
Pipes & Filters Interfaz Uniforme
![Page 5: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/5.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Secuencial - Batch
Programas separados son ejecutados en ordenLos datos deben pasarse de un programa al
siguiente
NotaEl estilo secuencial (batch) puede considerarse el abuelo de los estilos arquitectónicos
Etapa
Puerto escritura
Etapa
ComponenteEtapa
Conectorentre etapasEtapa
PuertoLectura
![Page 6: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/6.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Secuencial - BatchElementos:
Programas ejecutables independientesRestricciones
Encadenar salida de un programa a entrada de otroNormalmente, un programa debe esperar a que
termine la ejecución el programa anterior
![Page 7: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/7.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Secuencial - Batch
VentajasDébil acoplamiento entre
componentesRe-configurabilidadDepuración
Se puede depurar cada entrada de forma independiente
ProblemasNo proporciona interfaz
interactivoRequiere intervención
externaNo hay soporte para
concurrenciaBaja velocidad (throughput)
Alta latencia
Definiciones: Throughput: velocidad a la que algo puede procesarse
Ejemplo: nº trabajos/segundoLatencia: retardo experimentado por un proceso
Ejemplo: 2 segundos
![Page 8: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/8.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Secuencial - BatchProblemas
No proporciona interfaz interactivoRequiere intervención externaNo hay soporte para concurrencia
Baja velocidad (throughput)Alta latencia
![Page 9: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/9.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & FiltersDatos fluyen a través de tuberías (pipes) y son
procesados mediante filtros
Filtro
Puerto Lectura
Puerto Escritura
Filtro
Componentefiltro
Pipe óTubería
Filtro
Filtro Filtro
![Page 10: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/10.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & FiltersElementos
Filtro: componente que transforma los datos. Los filtros pueden ejecutarse concurréntemente.Tipos de filtros
Fuentes de datos (entrada al sistema)FlujoSumideros (sinks) (salida del sistema)
Tubería (Pipe): Lleva datos de la salida de un filtro a la entrada de otro filtroPropiedades: tamaño de búffer, formato de datos,
protocolo de interacción
![Page 11: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/11.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & Filters
RestriccionesTuberías conectan salidas de un filtro a entrada de otroLos filtros deben estar de acuerdo sobre los formatos
que admiten
![Page 12: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/12.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & FiltersVentajas
Comprensión global sistemaComportamiento total = suma
comportamiento de cada filtro
Reconfiguración: Filtros pueden recombinarse
Evolución y extensibilidad: Crear/añadir nuevos filtrosSe pueden sustituir filtros
viejos por nuevosTestabilidad
Verificación independiente de cada filtro
RendimientoPermite ejecución
concurrente entre filtros
RetosPosibles retardos si hay
tuberías largasDifícil pasar estructuras de
datos complejasNo interactividad
Un filtro no puede interactuar con el entorno
BackpressureConsumidores que reciben más
cantidad de datos de la que pueden procesar
![Page 13: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/13.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & FiltersAplicaciones
Unixwho | wc -l
Yahoo PipesJava StreamsFlow based programming
https://en.wikipedia.org/wiki/Flow-based_programmingStream programming
![Page 14: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/14.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & Filters - interfaz uniformeVariación de Pipes & Filters en la que los filtros
tienen la misma interfazElementos
Los mismos que en Pipes & FiltersRestricciones
Los filtros deben tener una interfaz uniforme
![Page 15: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/15.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & Filters - interfaz uniformeVentajas:
Facilita desarrollo independiente de filtrosMás fácil porque el interfaz es conocido
ReconfigurabilidadFacilita la comprensión del sistema
Problemas:Empeora rendimiento si los datos deben
transformarse desde su representación originalMarshalling
![Page 16: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/16.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Pipes & Filters - interfaz uniformeEjemplos:
Sistema operativo UnixProgramas con una entrada (stdin) y dos salidas
(stdout y stderr)Arquitectura de la Web: REST
![Page 17: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/17.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Master-Slave
![Page 18: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/18.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Master-SlaveMaestro divide el trabajo en subtareasAsigna cada subtarea a diferentes nodosEl resultado computacional se obtiene a partir de
los resultados de los nodos esclavos
Slave 1 Slave 2
Master
Slave N. . .
Problema
tarea 1 tarea 2 tarea N
Solución
resultado Nresultado 2resultado 1
![Page 19: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/19.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Master-SlaveElementos
Master: Se encarga de coordinar la ejecuciónSlave: realiza una tarea y devuelte un resultado
RestriccionesLos slave se encargan únicamente de realizar la
computaciónEl control es realizado desde el nodo Master
![Page 20: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/20.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Master-SlaveVentajas
Computación paralelaTolerancia a fallos
ProblemasDificultad de coordinación entre nodos slaveDependencia de nodo MasterDependencia de configuración física
![Page 21: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/21.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Master-SlaveAplicaciones:
Sistemas de control de procesosSistemas empotradosSistemas tolerantes a fallosSistemas de búsqueda de soluciones precisas
![Page 22: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/22.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVC: Modelo - vista - controladorVariaciones de MVC
PAC: Presentación - Abstracción - ControlDCI : Datos - Contexto - Interacción
![Page 23: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/23.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVCMVC: Modelo - Vista - Controlador
Trygve Reenskaug, finales de los 70Solución para GUIIncorpora un controlador para separar el modelo
de la vista que se ofrece al usuarioEl usuario trabaja con un "modelo mental" del
modelo real, que se ofrece a través de vistas
![Page 24: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/24.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVC
Modelo: Lógica de negocio y estadoVista: Muestra datos al usuarioControlador: Coordina interacción, vistas y modelo
Modelo mental
Controlador
Modelo
Vista 1
Vista 2
Usuario
CuboEsferaCono
![Page 25: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/25.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVCElementos
ModeloRepresenta lógica de negocio y estadoEnlace con almacén de datos y actualización
VistaMuestra contenidos de un modelo
ControladorRecibe interacciones del usuario con la vistaCoordina acciones a realizar por modeloCreación/coordinación de vistas
![Page 26: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/26.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVCRestricciones
El controlador se encarga de procesar los eventos del usuario
La vista se encarga únicamente de mostrar valores del modelo
Modelo es independiente de controladores/vistas
![Page 27: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/27.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVCVentajas
Múltiples vistas del mismo modelo
Sincronización de vistasSeparación de
incumbenciasInteracción (controlador),
funcionalidad (modelo)Facilidad para crear nuevas
vistas y controladoresIntercambiar look & feel
Potencial para creación de marcos genéricos
ProblemasMayor complejidad en
desarrollo de GUIsAcoplación entre
controladores y vistasControlador/Vistas
dependen del interfaz del modelo
Dificultades con herramientas GUI
![Page 28: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/28.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MVC
AplicacionesMuchos marcos de aplicación Web siguen MVC
Ruby on Rails, Spring MVC, Play, etc.Diferencia
Push: el controlador envía órdenes a la vistaRuby on Rails, Struts1
Pull: el controlador recibe órdenes de la vistaPlay! Framework, Struts2
![Page 29: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/29.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Variaciones de MVCPACModel-View-PresenterModel View ViewModelModel View Update...
![Page 30: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/30.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PAC
PAC: Presentación-Abstracción-ControlJerarquía de agentesCada agente contiene 3 componentes
PresentaciónAbstracción Control
Agente PAC
PresentaciónAbstracción Control
Agente PAC
PresentaciónAbstracción Control
Agente PAC
![Page 31: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/31.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PAC
ElementosAgentes con
Presentación: aspecto de visualizaciónAbstracción: modelo de datos de un agenteControl: conecta los componentes anteriores y permite la
comunicación entre agentesRelación jerárquica entre agentes
RestriccionesCada agente se encarga de un aspecto de la
funcionalidadEn cada agente no hay comunicación directa entre
Abstracción y PresentaciónComunicación a través de componente de control
![Page 32: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/32.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PACVentajas
Separación de responsabilidades
Soporte para cambios y extensionesmodificar un agente sin
modificar el restoMultitarea
Los agentes pueden ejecutarse en paralelo
ProblemasComplejidad del sistema
Demasiados agentes pueden generar una estructura compleja y difícil de mantener
Complejidad del componente de controlComponentes de control
gestionan comunicaciónSu calidad es fundamental
para la calidad del sistemaRendimiento
Sobrecarga de comunicación entre agentes
![Page 33: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/33.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PACAplicaciones
Sistema de monitorización de redesRobots móviles
RelacionesRelacionado con MVC
En MVC el componente de Presentación se separa en Vista y Controlador
En MVC no hay componentes de control ni jerarquía de agentes.
Redescubierto y rebautizado como MVC jerárquico
![Page 34: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/34.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Datos compartidosBlackboardBasados en reglas
![Page 35: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/35.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Datos compartidosVarios componentes independientes acceden al
mismo estadoAplicaciones basadas en un modelo centralizado
Componente Componente
Datoscompartidos
Componente...
![Page 36: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/36.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Datos compartidosElementos
Almacén de datosBase de datos o repositorio centralizado
ComponentesProcesadores que acceden a la memoria compartida
![Page 37: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/37.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Datos compartidosRestricciones
Componentes actúan sobre el estado globalLos componentes no se comunican entre sí
Sólo a través del estado compartidoEl estado garantiza la estabilidad de los datos
![Page 38: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/38.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Datos compartidos
VentajasComponentes
independientesNo necesitan conocer
existencia de otros componentes
Facilita comunicación entre componentes
Consistencia de datosEstado global centralizadoBackup único de todo el
sistema
ProblemasPunto de fallo único
Fallo del almacén puede comprometer todo el sistema
Distribución del almacén puede ser costosa
Posible cuello de botellaIneficiencia en
comunicaciónSincronización en acceso
a memoria compartida
![Page 39: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/39.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Datos compartidosAplicaciones
Gran cantidad de sistemas utilizan este esquemaAlgunas variantes
Este patrón se conoce también como:Shared Memory, Repository, Shared data, etc.
BlackboardSistemas basados en reglas
![Page 40: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/40.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
BlackboardProblemas complejos de difícil solución
Se dividen en fuentes de conocimiento que resuelven partes del problema
Cada fuente de conocimiento agrega soluciones parciales en el blackboard
Fuente conocimiento
Fuenteconocimiento
Blackboard
FuenteConocimiento ...
Control
![Page 41: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/41.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Blackboard
ElementosBlackboard: Almacén de datos centralFuente de conocimiento: resuelve una parte del
problema y va añadiendo los resultados parcialesControl: Organiza tareas y chequea estado del
trabajo
Fuente conocimiento
Fuenteconocimiento
Blackboard
FuenteConocimiento ...
Control
![Page 42: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/42.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
BlackboardRestricciones
El problema se descompone en partesCada fuente de conocimiento sólo resuelve una
parte del problemaEl blackboard contiene soluciones parciales que
van mejorándose
Fuente conocimiento
Fuenteconocimiento
Blackboard
FuenteConocimiento ...
Control
![Page 43: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/43.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Blackboard
VentajasExperimentación
Aplicable para problemas abiertos
Facilita cambio de estrategias
ReusabilidadFuentes de
conocimiento reutilizables
Tolerancia a fallos
ProblemasDepuración
No hay garantía de encontrar solución adecuada
Dificultad para establecer estrategia central de control
RendimientoPuede ser necesario rechazar
hipótesis incorrectasAlto coste de desarrollo
Implementación del paralelismo
Necesidad de sincronizar acceso al blackboard
![Page 44: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/44.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
BlackboardAplicaciones
Sistemas de reconocimiento del hablaHEARSAY-II
Reconocimiento de patronesPredicción atmosféricaJuegos Análisis de estructura molecular
Crystalis
![Page 45: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/45.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Sistemas basados en reglasVariante de memoria compartida
Memoria compartida = Base de conocimientoContiene reglas y hechos
Motor de inferencia
Base de conocimiento
Interfaz de usuario
![Page 46: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/46.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Sistemas basados en reglasElementos:
Base de conocimiento: Conjunto de hechos y reglas sobre un determinado dominio
Interfaz de usuario: Accede a la base de conocimiento para consultar/modificar
Motor de inferencia: Sistema encargado de responder consultas a partir de los datos y la base de conocimiento
Motor de inferencia
Base de conocimiento
Interfaz de usuario
![Page 47: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/47.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Sistemas basados en reglasRestricciones:
Base de conocimiento declarativaSe basa en reglas del tipo:
IF antecedentes THEN consecuenteExpresividad limitada respecto lenguajes imperativos
Motor de inferencia
Base de conocimiento
Interfaz de usuario
![Page 48: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/48.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Sistemas basados en reglas
VentajasMantenibilidad
Solución declarativaPuede ser gestionada
por expertos del dominio
Separación de responsabilidadesAlgoritmoConocimiento del
dominioReutilización
ProblemasDepuraciónRendimiento
Sistema de inferenciaCreación y mantenimiento
de las reglasActualización de las reglas
en tiempo de ejecuciónAprendizaje de nuevas
reglasIntrospección
![Page 49: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/49.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Sistemas basados en reglasAplicaciones
Sistemas expertosSistemas de producciónLibrerías de reglas en Java
JRules, Drools, JESSLenguajes basados en reglas
PrologBRMS - Business rules management systems
![Page 50: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/50.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Call-returnCliente-ServidorArquitecturas basadas en eventos
Publish-SubscribeModelos de Actores
![Page 51: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/51.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Call-returnUn componente realiza una llamada a otro
componente y espera a recibir la respuesta
Componente A Componente B
call
return
![Page 52: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/52.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Call-returnElementos
Componente que realiza la llamadaComponente que devuelve la respuesta
RestriccionesComunicación síncrona:
Componente que realiza llamada queda esperando la respuesta.
Componente A Componente B
call
return
![Page 53: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/53.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Call-returnVentajas
Sencillo de implementarProblemas
Problemas para ejecución concurrenteComponente queda bloqueado esperando respuesta
Puede estar ocupando recursos generando bloqueosEntornos distribuidos
Poco aprovechamiento de capacidades computacionales
![Page 54: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/54.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-ServidorVariación de sistemas en capas
2 capas separadas físicamente (2-tier)Funcionalidad separada en varios servidoresClientes se conectan a los servicios
Interfaz Petición/respuesta
Red
petición
respuesta
clienteservidor
![Page 55: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/55.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-ServidorElementos
Servidor: ofrece servicios a través de un protocolo petición/respuesta
Cliente: realiza peticiones y procesa las respuestasProtocolo de red: gestión de comunicación entre
clientes y servidores
Red
petición
respuesta
ClienteServidor
![Page 56: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/56.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-ServidorRestricciones
Clientes se comunican con servidoresNo al revés
Clientes son independientes de otros clientesLos servidores no conocen a los clientesProtocolo de red ofrece garantías de comunicación
petición
respuesta
ClienteServidor
![Page 57: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/57.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-Servidor
VentajasServidores pueden estar
distribuidosSeparación de funcionalidad
cliente/servidorDesarrollo independienteEscalabilidad
Funcionalidad general disponible para todos los clientesAunque no todos los
servidores deben ofrecer toda la funcionalidad
ProblemasCada servidor puede ser
un punto de falloAtaques a un servidor
Rendimiento impredecibleDependencia de la red y
del sistemaSeguridad
Problemas si los servidores pertenecen a otras organizacionesCómo garantizar calidad
de servicio
![Page 58: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/58.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-ServidorVariantes
Sin estadoServidor replicadoCon caché
![Page 59: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/59.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Red
Cliente-Servidor sin estadoRestricción:
El servidor no almacena información sobre los clientes
Ante la misma petición responde la misma respuesta
petición
respuesta
ClienteServidor
![Page 60: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/60.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-Servidor sin estadoVentajas
EscalabilidadProblemas
Gestión del estado de la aplicaciónCliente debe recordar peticiones Estrategias mantener información entre peticiones
![Page 61: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/61.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Red
Servidor ReplicadoRestricción
Varios servidores ofrecen el mismo servicioOfrecer al cliente la ilusión de que solamente hay un
servidor
petición
respuestacliente
servidor
servidor
servidor
Servidorabstracto
![Page 62: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/62.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Servidor ReplicadoVentajas
Mejora tiempos de respuestaMenor latenciaTolerancia a fallos
ProblemasMantenimiento de consistenciaSincronización
![Page 63: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/63.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-servidor con cachéCaché = mediador entre cliente/servidor
Almacena copias de respuestas anteriores a peticiones del servidorCuando se repite la petición, se devuelve la respuesta
sin necesidad de consultar el servidor
Redpetición
respuestacliente servidor
Caché
![Page 64: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/64.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-servidor con cachéElementos:
Añade nodos intermedios con cachéRestricciones
Algunas peticiones se resuelven en el nodo cachéEl nodo caché contiene política de gestión de
respuestasTiempo de expiración
![Page 65: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/65.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Cliente-servidor con caché
Ventajas:Menor carga en la red
Muchas peticiones repetidas se almacenan en caché
Menor tiempo de respuestaRespuestas de caché
llegan antes
ProblemasComplejidad de
configuraciónSe requiere política de
expiraciónNo apropiado en ciertos
dominios Si se requiere fidelidad de
respuestasEj. sistemas en tiempo real
![Page 66: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/66.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Arquitectura basada en eventosEDA (Event-Driven-Architecture)
Productoresde eventos
Procesador de eventos
Consumidoresde eventos
![Page 67: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/67.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Basados en eventosElementos:
Evento: Algo que ha ocurrido (≠ petición)
Productor de eventosGenerador de eventos (sensores, sistemas, ...)
Consumidor de eventosBD, aplicaciones, cuadros de mando, ...
Procesador de eventosCanal de transmisiónProcesador que filtra y transforma eventos
Productoreseventos
Procesadoreventos
Consumidoreseventos
evento evento
![Page 68: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/68.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Basados en eventosRestricciones:
Comunicación asíncronaProductores generan eventos en cualquier momentoA los consumidores les llegan eventos en cualquier
momentoRelación uno-a-muchos
Un evento puede ser enviado a varios consumidores
Productoreseventos
Procesadoreventos
Consumidoreseventos
evento evento
![Page 69: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/69.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Basados en eventos
VentajasDesacoplamiento
Productor de eventos no depende del consumidor, ni viceversa.
AtemporalidadLos eventos se publican sin
necesidad de esperar por la finalización de un ciclo
AsincronicidadPara publicar un evento no
es necesario esperar a terminar de procesar otro evento
ProblemasSolución no secuencial
Posible pérdida de controlConsistencia del sistemaDificultad de depuración
Productoreseventos
Procesadoreventos
Consumidoreseventos
evento evento
![Page 70: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/70.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Basados en eventosAplicaciones
Redes de procesamiento de eventosEvent-Stream-Processing (ESP)Complex-event-processing
VariacionesPublish-subscribeModelos de actores
Patrones relacionadosCQRS, Event sourcing
Productoreseventos
Procesadoreventos
Consumidoreseventos
evento evento
![Page 71: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/71.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Publish-subscribe
Componentes se subscriben a un canal para recibir mensajes de otros componentes
Componente
Bus de eventosPuerto suscripción
Puerto Publicación
Componente
Componente Componente
Componente
![Page 72: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/72.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Publish-subscribeElementos:
Componente: Componente que se suscribe al bus de eventos
Puerto de publicaciónSe registra para publicar mensajes
Puerto de suscripciónSe registra para recibir cierto tipo de mensajes
Bus de eventos (canal de mensajes): Transmite mensajes a los suscriptores
Bus eventos
Componente Componente
Componente Componente Componente
![Page 73: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/73.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Publish-subscribeRestricciones:
Separación puerto de suscripción/publicaciónUn componente puede tener ambos puertos
Comunicación no directaEn general, comunicación asíncronaA través de canal de mensajesComponentes delegan responsabilidad al canal
Bus eventos
Componente Componente
Componente Componente Componente
![Page 74: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/74.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Publish-subscribe
VentajasCalidad de comunicación
Mayor eficienciaDepuración
Bajo acoplamientoSuscriptores no dependen
de publicadores...ni viceversa
Escalabilidad
ProblemasSe añade nivel de
indirecciónComunicación directa
puede ser más eficiente
Implementación complejaPuede requerir COTS
Bus eventos
Componente Componente
Componente Componente Componente
![Page 75: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/75.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Modelos de Actores
Utilizados para computación concurrenteActores en lugar de objetosNo hay estado compartido entre actoresPaso de mensajes asíncrono
Desarrollos teóricos desde 1973 (Carl Hewitt)Aplicaciones en telecomunicaciones (Erlang)
![Page 76: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/76.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Modelos de actoresElementos
Actor: entidad computacional con estadoSe comunica con los actores enviando mensajesProcesa los mensajes de uno en uno
MensajesDirecciones: Identifican a los actores (mailing address)
![Page 77: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/77.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Modelos de actoresRestricciones (1)
Un actor solamente puede:Enviar mensajes a otros actores
Los mensajes son inmutablesCrear nuevos actoresModificar cómo va a procesar siguiente mensaje
Los actores están desacopladosEl receptor no depende del emisor
![Page 78: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/78.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Modelos de actoresRestricciones (2)
Paralelismo:Todas las acciones pueden hacerse en paraleloNo hay estado global compartidoLos mensajes pueden llegar en cualquier orden
Direcciones localesUn actor sólo puede enviar mensajes a direcciones
conocidas (porque se le pasaron o porque las crea)
![Page 79: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/79.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Modelos de actoresVentajas
ParalelismoTrasparencia y escalabilidad
Direcciones internas vs externas
Modelos de actores no locales
Servicios Web, sistemas multi-agentes
ProblemasEnvío de mensajes
Cómo garantizar que los mensajes llegan
Coordinación entre actores
Sistemas no consistentes por definición
![Page 80: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/80.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Modelos de actoresImplementaciones
Erlang (lenguaje de programación)Akka
AplicacionesSistemas reactivosEjemplos: Ericsson, Facebook, twitter
![Page 81: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/81.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
CQRS
Command Query Responsability SeggregationSeparar el modelo en 2 partes
Command (modificación): Realiza cambiosQuery (consulta): Sólo realiza consultas, actualiza interfaz
Aplicación
Modelo
InterfazUsuario
BaseDatos
![Page 82: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/82.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
CQRS
Command Query Responsability SeggregationSeparar el modelo en 2 partes
Command (modificación): Realiza cambiosQuery (consulta): Sólo realiza consultas, actualiza interfaz
Aplicación
Query
InterfazUsuario
BaseDatos
Command
![Page 83: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/83.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
CQRSVentajas
EscalabilidadOptimizar consultas
(sólo lectura)Comandos
asíncronosFacilita
descomposición de equipos
ProblemasOperaciones híbridas
(consulta/comando)Ejemplo: pop() en una
pilaComplejidad
En entornos CRUD puede ser excesivo
SincronizaciónPosibilidad de consultas
sobre datos no actualizadosAplicaciones
Axon Framework
![Page 84: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/84.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Event Sourcing
Capturar cambios del estado mediante eventosPermite seguir traza de cómo se llegó a un
determinado estadoEvent Store
Siempre se añaden eventos (no se cambian)
Write
----------------------------------------------------------------------
Eventstore
Gestoreventos
Read
![Page 85: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/85.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Event Sourcing
Elementos Almacén de eventos
Almacena cambios en el estadoEventos
No cambian, se enuncian en pasado
Write
----------------------------------------------------------------------
Eventstore
Gestoreventos
Read
![Page 86: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/86.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Event Sourcing
Tolerancia a fallosTrazabilidad
Determinar estado de aplicación en cada momento
ReconstrucciónSi aparecen eventos erróneos,
se pueden deshacer sus acciones y reconstruir el resto
EscalabilidadBD de sólo append
Novedad desarrolloDiferente de sistemas
tradicionalesConsistencia de datos
Eventual consistencyActualización software
Convivir versiones de eventos diferentes?
Gestión de recursosGranularidad de los eventosAlmacenamiento de eventos
crece con tiempoRequiere crear instantáneas
(snapshots)
Ventajas Problemas/retos
![Page 87: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/87.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Event sourcingAplicaciones
Sistemas de bases de datosDatomic, EventStore
![Page 88: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/88.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PluginsMicrokernelReflectionIntérpretes y DSLCódigo móvilCódigo bajo demanda
![Page 89: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/89.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PluginPlugin
PluginsPermite extender el sistema mediante la
incorporación de plugins que añaden nuevas funcionalidades
Motor tiempoejecución Sistema base
Plugin
![Page 90: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/90.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PluginsElementos
Sistema base: Sistema que admite la incorporación de plugins
Plugins: Componentes que pueden ser añadirse o eliminarse dinámicamente
Motor de ejecución: Arranca, localiza, inicializa y ejecuta plugins
PluginPlugin
Motor tiempoejecución Sistema base
Plugin
![Page 91: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/91.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PluginsRestricciones
El motor en tiempo de ejecución se encarga de la gestión de los plugins
El sistema admite añadir/eliminar pluginsLos plugins pueden depender de otros
Debe declarar sus dependencias y el API que exporta
PluginPlugin
Motor tiempoejecución Sistema base
Plugin
![Page 92: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/92.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Plugins
VentajasExtensibilidad
Mejorar funcionamiento de aplicación de forma no prevista inicialmente
PersonalizaciónAplicación puede crecer bajo
demandaAdaptarse a nuevos
requisitos
ProblemasConsistencia
Los plugins deben incorporarse al sistema de forma consistente
RendimientoRetardo en búsqueda de plugins
Seguridad Plugins realizados por terceras
partesGestión de plugins y dependencias
![Page 93: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/93.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
PluginsEjemplos
Eclipse Firefox
TecnologíasSistemas de componentes: OSGi
![Page 94: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/94.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Microkernel
Identificar funcionalidad mínima en microkernelLa funcionalidad extra se implementa mediante
servidores internosLa comunicación al exterior se realiza mediante
servidor externo
MicrokernelAdaptadorServidor internoServidor
internoServidor interno
Servidor externoCliente
Sistema
![Page 95: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/95.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MicrokernelElementos
Microkernel: Funcionalidad mínimaServidor interno: Funcionalidad extraServidor externo: Ofrece API externaCliente: Aplicación externa
Adaptador: Componente que se comunica con servidor externo
MicrokernelAdaptadorServidor internoServidor
internoServidor interno
Servidor externoCliente
Sistema
![Page 96: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/96.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MicrokernelRestricciones:
El microkernel implementa solamente la funcionalidad mínima
El resto de funcionalidad es implementada por servidores internos
La comunicación del cliente con el sistema se realiza a través de los servidores externos
![Page 97: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/97.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MicrokernelVentajas
PortabilidadSólo es necesario portar el
kernelFlexibilidad y extensibilidad
Añadir nueva funcionalidad mediante nuevos servidores internos
Seguridad y fiabilidadEncapsular partes críticasLos errores en partes
externas no afectan al microkernel
ProblemasRendimiento
Sistema monolítico puede ser más eficiente
Complejidad de diseñoIdentificar componentes del
kernelDifícil separar partes a
servidores internosPunto de fallo único
Si falla el microkernel puede comprometerse la seguridad
![Page 98: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/98.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
MicrokernelAplicaciones
Sistemas operativosJuegosEditores
![Page 99: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/99.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
ReflectionCambiar la estructura y comportamiento de una
aplicación de forma dinámicaSistemas que pueden modificarse a sí mismos
ElementosNivel base: Implementa lógica de la aplicaciónMetanivel: Aspectos que pueden modificarseProtocolo metaobjetos: Interfaz que permite
modificar el metanivel
Nivel base
Metanivel
Protocolo Metaobjetos
![Page 100: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/100.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
ReflectionRestricciones
El nivel base utiliza aspectos del metanivel para su funcionamiento
Durante la ejecución, el sistema puede modificar el metanivel mediante el protocolo metaobjetos
Nivel base
Metanivel
Protocolo Metaobjetos
![Page 101: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/101.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Reflection
VentajasFlexibilidad
El sistema puede adaptarse a condiciones cambiantes
No es necesario modificar código fuente ni detener ejecución para realizar cambios en sistema
ProblemasImplementación
No todos los lenguajes facilitan la meta-programación
RendimientoPuede ser necesario realizar
optimizaciones para limitar la reflexividad
Seguridad: Mantenimiento de consistencia
![Page 102: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/102.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
ReflectionAplicaciones
Muchos lenguajes dinámicos soportan reflectividadScheme, CLOS, Ruby, Python, ....
Sistemas inteligentesCódigo auto-modificable
Nivel base
Metanivel
Protocolo Metaobjetos
![Page 103: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/103.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Intérpretes y DSLsIncluyen un lenguaje de dominio específico que
es interpretado por el sistema
Contexto
IntérpretePrograma
en DSL
Aplicación
Usuario
![Page 104: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/104.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Intérpretes y DSLs
ElementosIntérprete: Módulo que ejecuta el programaPrograma: Escrito en lenguaje de dominio específico
(DSL)El DSL puede estar pensado para que el propio usuario final
pueda escribir sus programas en élContexto: Entorno en el que se ejecuta el programa
Contexto
IntérpretePrograma
en DSL
Aplicación
Usuario
![Page 105: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/105.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Intérpretes y DSLsRestricciones
El intérprete ejecuta un programa modificando el contexto
Es necesario definir el DSLSintaxis (gramática)Semántica (comportamiento)
![Page 106: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/106.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Intérpretes y DSLs
VentajasFlexibilidad
Modificar comportamiento según necesidades del usuario
UsabilidadLos usuarios finales
pueden escribir sus programas
Mayor satisfacciónAdaptabilidad
Facilidad para adaptarse a nuevas situaciones
ProblemasDiseño del lenguaje
Sintaxis y semántica del DSLComplejidad de
implementaciónCreación del intérpreteSeparación de
contexto/intérpreteRendimiento
Posibles programas no óptimos
SeguridadPosibles programas
incorrectos
![Page 107: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/107.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Intérpretes y DSLsVariaciones:
DSL empotrados
![Page 108: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/108.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
DSLs empotradosEmbedded DSLsLenguajes de dominio específico que están
empotrados en lenguajes de alto nivelTécnica muy utilizada en lenguajes dinámicos
como Haskell, Ruby, Scala, etc.Ventajas:
Se reutiliza la sintaxis del lenguaje anfitrión Acceso a librerías y entornos del lenguaje anfitrión
ProblemasSeparación entre DSL y lenguaje anfitrión
![Page 109: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/109.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código móvilCódigo que se transfiere de una máquina a otra
Sistema A transfiere un programa para que se ejecute en el sistema B
El sistema B debe contener un intérprete del lenguaje correspondiente
Red
Sistema A
SistemaB
Intérprete
Programa
![Page 110: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/110.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código móvilElementos
Intérprete: Ejecuta el códigoPrograma: Código que se transfiereProtocolo de red: Encargado de transferir el código
Red
Sistema A
SistemaB
Intérprete
Programa
![Page 111: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/111.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código móvilRestricciones
El programa debe poder ejecutarse en el sistema receptor
El protocolo de red se encarga de transferir el programa
Red
Sistema A
SistemaB
Intérprete
Programa
![Page 112: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/112.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código móvilVentajas
Flexibilidad y adaptación a diferentes entornosProblemas
Complejidad de la implementaciónSeguridad
Red
Sistema A
SistemaB
Intérprete
Programa
![Page 113: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/113.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código móvilVariantes
Código bajo demandaEvaluación remotaAgentes móviles
![Page 114: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/114.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Red
Código bajo demandaCódigo es descargado y ejecutado cuando el
cliente lo solicitaCombinación de código móvil y cliente-servidorEjemplo:
ECMAScript
Cliente
Programa
ServidorPetición
IntérpreteRespuesta
![Page 115: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/115.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código bajo demandaElementos
ClienteServidorCódigo que se transmite del servidor al cliente
RestriccionesEl código reside o se genera en el servidorSe transmite al cliente cuando el cliente lo solicitaSe ejecuta en el cliente
El cliente debe tener un intérprete del lenguaje correspondiente
![Page 116: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/116.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código bajo demandaVentajas
Mejora experiencia de usuario
Extensibilidad: La aplicación puede añadir nuevas funcionalidades no previstasNo es necesario descargar
o instalar la aplicaciónConcepto de Beta
permanenteAdaptación a entorno del
cliente
ProblemasSeguridadCoherencia
Difícil garantizar comportamiento homogéneo en diferentes tipos de clientesEl cliente puede incluso no
ejecutar el programaRecordar: Diseño
responsable
![Page 117: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/117.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Código bajo demandaAplicaciones:
RIA (Rich Internet Applications)HTML5 estandariza gran cantidad de APIsMejora coherencia entre clientes
VariacionesAJAX
Originalmente: Asynchronous Javascript and XMLEl programa que se ejecuta en el cliente envía
peticiones asíncronas de información al servidor sin detener su ejecución
![Page 118: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/118.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Evaluación remotaEl sistema A envía código al sistema B para que
lo ejecute y le devuelva los resultados
Sistema A
Sistema B
Respuesta(Resultado)
Intérprete
Programa
Petición
Red
![Page 119: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/119.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Evaluación remotaElementos
Sistema emisor: Realiza una petición adjuntando un programa
Sistema receptor: Ejecuta el programa y devuelve una respuesta con los resultados
RestriccionesSistema receptor ejecuta el programa
Debe tener intérprete del lenguaje correspondienteProtocolo de red transfiere el programa y las
respuestas
![Page 120: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/120.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Evaluación remotaVentajas
Aprovechar capacidades de terceras partesCapacidades computacionales, de memoria, etc.
ProblemasSeguridad
Código no confiableVirus = variante de este estilo
Configuración
![Page 121: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/121.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Evaluación remotaEjemplo:
Computación voluntariaSETI@HOME
Sirvió de base para sistema BOINC Berkeley Open Infrastructure for Network Computing
Otros proyectos: Folding@HOME, Predictor@Home, AQUA@HOME, etc.
![Page 122: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/122.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Agentes móvilesCódigo y datos pueden moverse de una máquina
a otra para su ejecuciónUn proceso lleva su estado de una máquina a otraEl código puede moverse de forma autónoma
Sistema B
Programa Intérprete
Sistema A
Programa Intérprete
![Page 123: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/123.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Agentes móvilesElementos
Agente móvil: Programa que se ejecuta de un sistema a otro de forma autónoma
Sistema: Entorno de ejecución en que se ejecuta el agente móvil
Protocolo de red: transfiere el estado del agente
Sistema B
Programa Intérprete
Sistema A
Programa Intérprete
![Page 124: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/124.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Agentes móvilesRestricciones
Los sistemas alojan y ejecutan los agentes móvilesLos agentes móviles pueden decidir cambiar su
ejecución de un sistema a otroPueden comunicarse con otros agentes
Sistema B
Programa Intérprete
Sistema A
Programa Intérprete
![Page 125: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/125.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Agentes móviles
VentajasReducción de tráfico en la red
Se transmiten bloques de código que se ejecutan
Paralelismo implícitoTolerancia a fallos de redConceptualmente sencillos
Agente = unidad independiente de ejecución
Posibilidad de sistemas de agentes móviles
Adaptación a cambios en el entornoSistemas reactivos y de
aprendizaje
ProblemasComplejidad de la
configuraciónSeguridad
Código malicioso o erróneo
![Page 126: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/126.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o
Agentes móvilesAplicaciones
Recuperación de informaciónWeb crawlers
Sistemas peer-to-peerTelecomunicacionesControl remoto y monitorización
Sistemas:JADE (Java Agent DEvelopment framework)Aglets de IBM
![Page 127: Presentación de PowerPoint...MVC. Aplicaciones. Muchos marcos de aplicación Web siguen MVC. Ruby on Rails, Spring MVC, Play, etc. Diferencia. Push: el controlador envía órdenes](https://reader035.fdocumento.com/reader035/viewer/2022070223/61427203d9e4dc11f47f0e52/html5/thumbnails/127.jpg)
Arquitectura del SoftwareE
scu
ela
de
Inge
nie
ría
Info
rmát
ica
Un
iver
sid
ad d
e O
vied
o