140 likes | 288 Views
SISTEMAS ORIENTADOS A OBJETOS PROBLEMÁTICA DE PERSISTENCIA. Víctor Anaya Mayte Redolar. Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia. Contenidos. Introducción. Arquitecturas de sistemas. Frameworks Mapeo de objetos a base de datos.
E N D
SISTEMAS ORIENTADOS A OBJETOS PROBLEMÁTICA DE PERSISTENCIA Víctor Anaya Mayte Redolar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia
Contenidos • Introducción. • Arquitecturas de sistemas. • Frameworks • Mapeo de objetos a base de datos. • Materialización y desmaterialización. • Relaciones y objetos complejos. • Transacciones.
Introducció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.
Arquitecturas 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.
Arquitectura de negocio simple Base de Datos • 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). cliente Línea de orden producto Capa Intermedia Buffer ventana cliente Buffer ventana Orden Objetos de Pantalla Cliente Nombre Dirección Orden NNN Datos Salvar
Arquitectura de negocio compleja Capa Intermedia • Commit: Volcado de datos en wrapper objects. • Integro. • Recuperación de los wrapper objects. • Distribución gracias a objetos observador. Cliente Línea Orden Producto Nombre Dirección Nombre Precio Items ObtNom() ActNom() ObNom() AcNom() ObtNom() ActNom() Objetos Envolventes Compras (cliente,producto,item) Actualiz() Objetos de servicio Observer Object
Arquitectura de sistemas técnicos Objetos de dominio • Commit: datos se guardan en objetos de dominio. • Integro. • Recuperación de datos de los objetos del dominio. • Distribución gracias a objetos observador. Cliente CambiarDir() ... Capa Intermedia Actualiz() Objetos Observador
Esquema 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
Mapeo 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.
Materialización - Desmaterializació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.
Materialización - Desmaterializació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.
Relaciones y objetos complejos • 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.
Transacciones • 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.
Conclusiones • 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.