127
Arquitectura del Software Escuela de Ingeniería Informática Universidad de Oviedo Comportamiento Jose Emilio Labra Gayo Curso 2020/2021

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

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Arquitectura del SoftwareE

scu

ela

de

Inge

nie

ría

Info

rmát

ica

Un

iver

sid

ad d

e O

vied

o