Академический Документы
Профессиональный Документы
Культура Документы
Arquitectura de Persistencia
2005
Qu es persistencia?
In computer science, persistence refers to the characteristic of data that outlives the execution of the program that created it.
Por qu es necesario?
Los datos en memoria se pierden La memoria es acotada
Arquitectura de Proyectos de IT
Problemas de persistencia
Performance
Acceso a disco Bsquedas Distribucin
Arquitectura de Proyectos de IT
Prevalencia Ortogonal
Arquitectura de Proyectos de IT
Archivos
XML Ancho fijo Csv DBF + IDX Archivos Indexados - VSAM Serializacin Snapshot
Smalltalk Self
Arquitectura de Proyectos de IT
Prevalencia
Caractersticas
Los datos se mantienen en memoria. Regularmente se hace un snapshot a disco
Implementaciones
Prevayler (Java) Bamboo (.Net) Madeleine (Ruby) Sprevayler (Smalltalk) Perlvayler (Perl)
Arquitectura de Proyectos de IT
Prevalencia
Ventajas
No hay transformacin, los datos se guardan en el formato que los usa el programa. Alto grado de transparencia. La performance es muchsimo ms alta.
Desventajas
La aplicacin debe poder ser contenida en memoria. Interoperabilidad. Falta la maduracin de un sistema hbrido.
Arquitectura de Proyectos de IT
Performance y escalabilidad
Grandes volmenes de datos o de transacciones
Arquitectura de Proyectos de IT
Tipos de DBMS
En red Jerrquicas Relacionales Objetos Asociativas Multidimensionales
Arquitectura de Proyectos de IT
Elementos
Tablas, relaciones, constraints, domains, keys Operadores relacionales Normalizacin
10
Arquitectura de Proyectos de IT
Bases de Objetos
11
Arquitectura de Proyectos de IT
Bases de Objetos
12
Arquitectura de Proyectos de IT
Bases de Objetos
Frameworks de persistencia
DB4O Omnibase (desapareciendo) EJB Entity Beans
Bases de Objetos
Gemstone Objectivity GOODS (Generic Object Oriented Database System)
Lenguajes de Consulta
OQL LINK
13
Arquitectura de Proyectos de IT
Bases de Objetos
Algunas clasificaciones
Activas / Pasivas Transformacin nativa / no nativa Embebidas
Reticencia a su uso
Interaccin con otras aplicaciones No parece tan sencillo cocinar datos Miedo
14
Arquitectura de Proyectos de IT
Bases de Objetos
Ventajas
Ms simple Ms rpido (trabajan con punteros en lugar de relaciones, navegacional en lugar de declarativo) Modificabilidad
Desventajas
Son ms rpidas para las bsquedas conocidas previamente. Desarrollos sobre mltiples plataformas. Interoperabilidad.
15
Arquitectura de Proyectos de IT
Multidimensionales
OLAP (cubos) Fact Table / Dimension Tables Vistas precalculadas, para las posibles agregaciones Grandes volmenes de datos a gran velocidad Datos histricos
16
Arquitectura de Proyectos de IT
NO-SQL
Surgen en parte para suplir limitaciones del modelo relacional
Escalabilidad Distribuidas por diseo Volumen de datos Esquemas flexibles Pueden o no implementar ACID
Tipos
Columns Key/Value Document
17
Arquitectura de Proyectos de IT
NO-SQL. Columns
Es parecido al modelo relacional, pero los datos son guardados ordenados por columna en lugar de por registro.
Las bsquedas son mucho ms rpidas Mas fcil calcular proyecciones relativas a una o pocas columnas. Es ms difcil realizar escrituras o consultas complejas (muchas columnas)
Ejemplos:
BigTable (Google) Hypertable
18
Arquitectura de Proyectos de IT
NO-SQL. Key/Value
La informacin se guarda organizado como un par clave/valor.
Tiene una alta flexibilidad, no es necesario modificar estructuras para agregar atributos. No es necesario lidiar con tipos de datos Es complicado hacer bsquedas por ms de un campo (AND y OR)
Ejemplos:
Cassandra (Facebook, Twitter, Digg) Tyrant
19
Arquitectura de Proyectos de IT
NO-SQL. Document
Guardan cualquier documento arbitrario, independientemente de la estructura.
Es mas fcil guardar estructuras que varan pese a referirse al mismo tipo de entidad. Suelen usar XML, YAML o JSON para retornar los datos a travs de un protocolo REST. No es tan fcil hacer consultas complejas (proyecciones, por ejemplo)
Ejemplos:
MongoDB (sourceforge, github) CouchDB
20
Arquitectura de Proyectos de IT
Estrategias de Uso
SQL Plano / Embebido / HQL / OQL Frameworks de persistencia
ORM No relacionales
Transparentes
Bases de Objetos Prevalencia Persistencia Ortogonal
21
Arquitectura de Proyectos de IT
SQL Plano
Muy difundido Inclusive desde la vista (por ejemplo JSP) Puede ser manual o generado Normalmente se introduce a travs de strings
22
Arquitectura de Proyectos de IT
Herramientas de Reporting
Jasper Reports
Externalizacin
XML
DAO
23
Arquitectura de Proyectos de IT
24
Arquitectura de Proyectos de IT
25
Arquitectura de Proyectos de IT
Mapeo Objetos-Relacional
Permite concentrarse en el negocio Puede tener problemas de performance. Ejemplos
Hibernate / NHibernate Castor JDO TopLink
Dos niveles
Mapeador de objetos Framework de persistencia.
26
Arquitectura de Proyectos de IT
Ejemplos
Ruby on Rails
27
Arquitectura de Proyectos de IT
28
Arquitectura de Proyectos de IT
29
Arquitectura de Proyectos de IT
30
Arquitectura de Proyectos de IT
31
Arquitectura de Proyectos de IT
Qu significa transparente?
(III)
Pero entonces cmo funciona? Programtica Declarativa Automtica / Inteligente / Heurstica Transparente para quin? Servicios Objetos de negocio Presentacin
32
Arquitectura de Proyectos de IT
33
Arquitectura de Proyectos de IT
34
Arquitectura de Proyectos de IT