SISTEMAS ORIENTADOS A OBJETOS PROBLEMÁTICA DE PERSISTENCIA
-
Upload
winthrop-conrad -
Category
Documents
-
view
21 -
download
2
description
Transcript of SISTEMAS ORIENTADOS A OBJETOS PROBLEMÁTICA DE PERSISTENCIA
29/01/03 1
SISTEMAS ORIENTADOS A SISTEMAS ORIENTADOS A OBJETOSOBJETOS
PROBLEMÁTICA DE PROBLEMÁTICA DE PERSISTENCIAPERSISTENCIA
Víctor Anaya Mayte Redolar
Laboratorio de Sistemas de Información
Facultad de InformáticaUniversidad Politécnica de Valencia
29/01/03 2
ContenidosContenidos
Introducción. Arquitecturas de sistemas. Frameworks
Mapeo de objetos a base de datos. Materialización y desmaterialización. Relaciones y objetos complejos. Transacciones.
29/01/03 3
IntroducciónIntroducción
La Orientación a Objetos promete ventajas: Desarrollo entendible por el usuario. Fácil mantenimiento. Reusabilidad de objetos en otras aplicaciones.
Objetos deteriorados: sin datos (subrutinas de librerías). Operaciones triviales (CRUD).
Sistemas no OO si solo O.deteriorados.
29/01/03 4
Arquitecturas de sistemasArquitecturas de sistemas
Tres tipos de arquitecturas en aplicaciones OO [Soren Lauesen]: arquitectura para aplicaciones de negocios
simples. arquitectura para aplicaciones de negocios
complejas. arquitectura para sistemas técnicos.
29/01/03 5
Arquitectura de negocio Arquitectura de negocio simplesimple
Commit al cerrar la ventana.
Falla la integridad (duplicación de datos).
Recuperación de datos al abrir una ventana.
Falla distribución. (un mismo campo con distintos valores según el objeto de pantalla).
clienteLínea
de ordenproducto
Buffer ventana cliente
NombreDirección
Cliente
Salvar
OrdenNNN Datos
Buffer ventana Orden
Base de Datos
Capa Intermedia
Objetos de Pantalla
29/01/03 6
Arquitectura de negocio Arquitectura de negocio complejacompleja
Commit: Volcado de datos en wrapper objects.
Integro. Recuperación de los
wrapper objects. Distribución gracias a
objetos observador.
Capa Intermedia
NombreDirección
ObtNom()ActNom()
Línea Orden
Producto
ItemsNombrePrecio
ObNom()AcNom()
ObtNom()ActNom()
Objetos Envolventes
Observer Object
Compras(cliente,producto,item)
Actualiz()
Cliente
Objetos de servicio
29/01/03 7
Arquitectura de sistemas Arquitectura de sistemas técnicostécnicos
Commit: datos se guardan en objetos de dominio.
Integro. Recuperación de datos
de los objetos del dominio.
Distribución gracias a objetos observador.
Objetos de dominio
Capa Intermedia
Objetos Observador
ClienteCambiarDir()
...
Actualiz()
29/01/03 8
Esquema de persistenciaEsquema de persistencia
Extendido uso de base de datos relacionales. Necesidad de guardar objetos persistentes. Diseño de framework. Características:
Cjto. de clases que prestan servicio. Clases reutilizables y expansibles. Definición de subclases. Comportamiento
añadido
29/01/03 9
Mapeo de objetosMapeo de objetos
Objetivo: representar objetos como tablas. Correspondencia entre tuplas y objetos gracias a
un IDO (Identificador Globalmente Único). Patrón Representación de objetos como tablas:
cada objeto un IDO. la tabla tiene IDO como clave primaria.
29/01/03 10
Materialización - Materialización - DesmaterializaciónDesmaterialización
Clase Intermediario de objetos. Ventajas: Baja acoplamiento, alta cohesión.
Uso de métodos de plantilla definición de comportamiento concreto en subclases.
Uso de caches para mejorar prestaciones y permitir transacciones.
Uso de Agente Virtual materialización lenta o por demanda.
29/01/03 11
Materialización - Materialización - DesmaterializaciónDesmaterialización
Tipos de caché, según estado:
Limpia y nueva: objetos nuevos sin
modificaciones.
Limpia y vieja: objetos nuevos, modificados.
Sucia y nueva: objetos materializados de una
BD, sin modificaciones
Sucia y vieja: materializados de una BD,
modificados.
Eliminar nueva: objetos nuevos a eliminar.
Eliminar vieja: objetos materializados a eliminar.
29/01/03 12
Relaciones y objetos Relaciones y objetos complejoscomplejos
Representación de relaciones mediante tablas asociativas. Clave ajena desde el identificador de los objetos
que componen la relación. Tabla asociativa cuya clave primaria es el par de
identificadores de objetos de la relación. Materialización por demanda o por niveles para los
objetos complejos.
29/01/03 13
TransaccionesTransacciones
Commit: caches sucias: guardar a base de datos. caches eliminidas: se eliminan de memoria y en
caso de ser vieja de la base de datos. cache vieja y limpia: ignorar.
Rollback: Cache vieja y limpia: ignorar. El resto borrar.
29/01/03 14
ConclusionesConclusiones
La mejor forma de abordar aplicaciones de negocio es la arquitectura compleja.
Es difícil encontrar sistemas OO reales. No se cubren la expectativas esperadas. La Orientación a Objetos facilita la tarea de
desarrollo de aplicaciones, pero mantener datos en memoria secundaria se complica mucho auge de BD relacionales.