Position Paper - Análisis y diseño de software orientado a aspectos
Aspect Oriented Data Warehousing
Eduardo Rodríguez, Janina Rubacha, Andrea Venegas
Departamento de Computación --- Facultad de Ciencias Exactas y Naturales --- Universidad
de Buenos Aires --- Argentina
Información de Contacto
Eduardo Rodríguez
e-mail: eduardo@dc.uba.ar
C/ Rufino Blanco, 10 --- 4° B, 28028 Madrid/España
Tel: (+34) 91.355.14.80
Abstract
El objetivo de este proyecto de investigación en curso es aplicar las técnicas de Orientación a
Aspectos y separación de concerns a la definición de un modelo conceptual para el diseño de
bases de datos multidimensionales que brinde un alto nivel de adaptabilidad en entornos
cambiantes, y facilite la reusabilidad de sus componentes. El proyecto pretende proveer un modelo
donde estén integradas todas las etapas del ciclo de vida multidimensional. En especial, se
analizará la aplicación de dichas técnicas a la automatización de procesos ETL (extracción,
transformación y carga).
Motivación
Históricamente, la modelización de bases de datos multidimensionales para la construcción de un
Data Warehouse estuvo estrechamente ligada a la implantación física del mismo y, a pesar de que
el Data Warehousing ha recorrido una larga trayectoria desde sus comienzos a mediados de los
‘90s, sigue careciendo un modelo conceptual generalizado que se diferencie y distancie de las
implementaciones físicas dominantes hasta el momento. Esto ha generado como resultado
implantaciones estáticas, rígidas y deficientemente documentadas, que adolecen de la flexibilidad
necesaria para adaptarse a los cambios constantes del entorno de negocio de las empresas. El
advenimiento del paradigma OO, su poder semántico, entre otras virtudes, y, más recientemente,
la Orientación a Aspectos resultan una excelente combinación para la definición de un modelo
conceptual que represente las necesidades de análisis multidimensional con flexibilidad,
completitud y con el grado reusabilidad y adaptabilidad a los cambios que exige el análisis de datos
a lo largo de grandes períodos de tiempo en entornos altamente dinámicos.
En este proyecto pretendemos aplicar las técnicas de Orientación a Aspectos y separación de
concerns a la definición de un modelo conceptual basado en Objetos para el diseño de bases de
datos multidimensionales. A continuación ejemplificaremos la problemática expuesta a través de
dos casos relacionados con una experiencia real de diseño e implantación de una base de datos
multidimensional.
Un Organismo Gubernamental decide implementar un “Sistema de Control de la Recaudación”.
Objetivo del Organismo: Tener una visión integrada y consolidada de las obligaciones de pago y
recaudación de los contribuyentes de cada una de las regiones que componen la estructura de
este Organismo Recaudador, y ser capaz de obtener respuestas a consultas tales como “¿Cuál es
la recaudación para el período P para la región R abierto por sucursales y tipo de Impuesto?”, o
“Compare el índice de cumplimiento de pagos para el período P con los períodos anteriores abierto
por Impuesto”.
Características del Negocio: Este organismo es responsable por la gestión de la recaudación de un
conjunto de impuestos y obligaciones de los contribuyentes. Un contribuyente puede tener más de
una obligación, de acuerdo con su actividad. El contribuyente debe no sólo pagar la obligación sino
que debe presentar la declaración de la obligación, o la rectificación de la misma en el caso en que
en la primer presentación hubiera habido errores. Asimismo, dependiendo del tipo de
contribuyente, pueden admitirse diferentes métodos de pago y posibilidades de moratorias. Por
otro lado, este Organismo se encuentra estructurado geográficamente en regiones, cada una bajo
una dirección diferente, responsable por la recaudación de la propia región. Para realizar un
seguimiento del grado de cumplimiento de las metas de recaudación impuestas, es necesario
identificar el volumen recaudado, el porcentaje de obligaciones presentadas versus esperadas, la
cantidad de presentaciones originales versus rectificaciones, y cantidad y monto de morosidad.
Primer Caso: Condiciones de Negocio altamente dinámicas
Luego de evaluar los requerimientos de información, sus reglas de negocio y las fuentes de datos
reales se definieron dimensiones, métricas e indicadores asociados a las políticas de vencimientos
y pagos de las obligaciones e impuestos vigentes en ese momento. Se definieron, entre otras, las
dimensiones de obligaciones e impuestos junto con la de actividades y tipo de contribuyente. Estas
definiciones no presentaron mayores complejidades al momento de su modelización, sin embargo,
no fue ese el caso al llegar a moratoria. Las moratorias deben su complejidad a la poca
estandarización; en sí mismas son condiciones de recaudación temporales que afectan a un
conjunto de contribuyentes, con una vigencia de tiempo limitada, a través de descuentos por el
pago de montos adeudados, en nuevas fechas de vencimientos. Tomando esto en cuenta, se
definió una dimensión moratoria contando con atributos tales como fecha de inicio, vigencia y
descuento por pago. Asimismo se identificaron indicadores para el seguimiento de las
recaudaciones por moratoria como monto adeudado por moratoria, cantidad de pagos por
moratoria, cantidad recaudada por moratoria y cantidad de contribuyentes en una moratoria dada.
El objetivo de generalización del modelo multidimensional asociado al tratamiento de las
moratorias no fue exitoso. Cada moratoria que este Organismo impulsaba era diferente de la
anterior, impactando no solo en los procesos de transformación y carga de las condiciones
particulares de la moratoria, sino también en la actualización de los datos de todos los
contribuyentes que se encontrarían afectados por la misma. La consecuencia fue la necesidad de
desarrollar un proceso específico por cada nueva moratoria que se lanzaba. Más aún, las
condiciones particulares de cada nueva moratoria generalmente impactaban también en el modelo
multidimensional implementado hasta el momento ya que, por ejemplo, los cambios en la forma de
pago de la moratoria (varios vencimientos con diferentes descuentos asociados) debían ser
reflejados para su análisis a través de la creación de nuevos indicadores al estilo “Cantidad de
Pagos efectuados antes del 1er. vencimiento de la moratoria” o “Recaudación al 1er. vencimiento”.
Al haber sido concebido como un modelo multidimensional estrechamente vinculado a su
implantación física, todo nuevo indicador requería la alteración de tablas relacionales o,
directamente, la creación de un nuevo esquema físico con las consecuencias dañinas de la
migración de datos que esto implicaba.
Segundo Caso: Sensibilidad de la Información
Debido a la sensibilidad de la información a almacenar en la base de datos multidimensional, el
Organismo se mostró muy estricto en la definición de roles de usuarios y perfiles de análisis. Estos
perfiles se basan en las vistas o datos que pueden analizar los usuarios de acuerdo a su rol y al
nivel de detalle que pueden analizar. En este caso, se definieron roles de dirección general,
dirección de región y analistas de región.
• El perfil asociado a la dirección general, permitía acceder a toda la información de todas las
regiones a cualquier nivel de detalle.
• El perfil asociado a la dirección de la región permitía ver la recaudación a nivel de detalle de
contribuyente solo para su propia región, y a nivel de totales de recaudación por región para
todas las regiones.
• El perfil de analista de la región permitía solamente acceder a los datos de su propia región,
con un nivel de detalle de Tipo de Contribuyente.
Para poder implementar permisos de visualización de indicadores a diferentes niveles de
granularidad o consolidación, hubo que definir nuevos indicadores y, consecuentemente, nuevas
tablas, para una misma métrica bajo diferentes denominaciones y niveles de sumarización. Esto se
debió a que, para poder implementar las restricciones de acceso de acuerdo a perfiles a nivel de la
aplicación de análisis (OLAP), fue necesario configurar por perfil la lista de indicadores con permiso
de visualización, ya que la forma de restringir el “drill down” hacia un nivel de detalle no autorizado
sólo era posible a nivel de indicador y no por el nivel de detalle solicitado por el usuario. En
consecuencia, se crearon tantos indicadores como restricciones de visualización por granularidad
existían. Paralelamente, para asegurar el acceso sólo a los datos de la región del usuario, se debió
tener en cuenta en el modelo el diseño de tablas o vistas por región. Como resultado, toda
creación de un perfil nuevo en la Organización, implicó un cambio en el modelo multidimensional,
dada su estrecha relación con su implantación física.
Frente a estos casos reales, se vuelve evidente que sus necesidades no son soportadas
adecuadamente por las herramientas actuales y las metodologías de modelización de bases de
datos multidimensionales tradicionales, ya que
• En el primer caso no se disponía de herramientas para definir correctamente el concepto de
moratoria –solo se contaba con jerarquías de dimensiones y hechos- lo que obligó a redefinirlo
una y otra vez para cada caso particular. Esto terminó afectando directamente a los procesos
de transformación y carga del Data Warehouse porque, al no contar con un modelo
multidimensional independiente de la implantación física, todo nuevo indicador creado requería
la alteración de tablas relacionales, o directamente la creación de un nuevo esquema físico con
las consecuentes migraciones de datos. Una moratoria es un concepto con características
altamente cambiantes, y es aquí donde se evidencia la necesidad de contar con un modelo
conceptual que considere la naturaleza compleja y dinámica del problema. Los modelos
orientados a objetos son, por excelencia, preferidos para modelar este tipo de situaciones de
alto dinamismo, particularmente por su capacidad de encapsulamiento de conceptos comunes
y por su poder de anticipación al cambio, que es lo que se requiere en el problema aquí
planteado.
• En el segundo caso sigue siendo evidente que la estrecha relación entre el modelo
multidimensional y el esquema físico subyacente dificulta la tarea de definir y, aun más, de
mantener el Data Warehouse, en este caso, en lo que respecta a perfiles de usuario y
permisos de visualización de la información. Nuestra perspectiva es que la aplicación de un
diseño orientado a objetos ayudaría mucho para proveer estas facilidades. Además, el hecho
de que haya sido necesario crear diferentes indicadores para satisfacer las necesidades de
análisis de los perfiles y que se hayan tenido que crear diferentes vistas para soportar las
restricciones de visualización de la información evidencian que, en primer lugar, cada indicador
puede analizarse desde diferentes puntos de vista según el perfil para el cual se lo desea
definir. Por otro lado, deben considerarse restricciones de seguridad sobre las diferentes vistas
que aparecen como cuestiones totalmente ortogonales a la definición de los indicadores. Esto
nos sugiere que el concepto de seguridad, en sí mismo, puede ser tomado como un concern
transversal al modelo multidimensional.
Como consecuencia de lo observado, creemos que la creación de un modelo conceptual orientado
a objetos y la aplicación de técnicas orientadas a aspectos nos permitirán lograr mayor grado de
reusabilidad y encapsulamiento de comportamientos transversales del Data Warehouse, facilitando
así el diseño y la reutilización de sus componentes.
El Proceso de Data Warehousing
Históricamente, la modelización y el diseño de Data Warehouses se han relacionado
estrechamente con las implantaciones físicas de sus bases de datos multidimensionales,
dividiéndose en dos grandes tendencias: ROLAP (Relational OLAP) y MOLAP (Multidimensional
OLAP). El énfasis en la implementación de estas dos grandes tendencias privaron a las técnicas
de modelización y diseño de bases de datos multidimensionales de la abstracción necesaria que
debiera caracterizar a todo modelo conceptual.
Es por esta razón que en los últimos años diversos equipos de investigación han sugerido
propuestas de modelos lógicos y conceptuales de Data Warehousing [AgGuSa97, CaTo98,
LIWa96, TrPa98]. En particular, podemos apreciar que últimamente la modelización de base de
datos multidimensionales se ha visto enriquecida por los primeros pasos en la definición de
modelos y frameworks multidimensionales basados en objetos [TrPa98], [BuSoHa98],
[AbSaSa01a], [BiTjWa00], [BuSoHa98], [TrPa98], [Tr99], [TrPaGo99], [TrPaGoYe01], [VaSe99].
Esto se debe, en parte, a que el resultado buscado es un modelo conceptual que se acerque más
a la concepción que tiene el usuario sobre el universo de modelado [AbSaSa00b]. En nuestra línea
de investigación estamos tomando, entonces, un enfoque orientado a objetos como punto de
partida para brindar mayor expresividad y representar mejor las necesidades de análisis
multidimensional de los negocios [Kel00]. Nuestra intención es, al aplicar las técnicas de
Orientación a Aspectos, alcanzar la reutilización y adaptabilidad también requeridas. Nuestro
trabajo partirá de los modelos mencionados, procurando enriquecerlos y estandarizarlos.
La Orientación a Aspectos
Cada paso en la evolución de los lenguajes de programación (desde assembler puro hasta la los
tipos abstractos de datos) ha brindado mayor claridad y habilidad en la identificación y separación
de concerns (propiedades o áreas de interés) a nivel de código. Esta necesidad creciente de
diseñar código más modular, con interfaces claras y reusables, condujo al desarrollo y utilización
de las técnicas de programación orientada a objetos (POO). Pero el éxito en el desarrollo de
sistemas simples llevó a aspirar a una mayor complejidad, lo cual derivó en una mayor necesidad
de separación de concerns. Con esto se evidenció que los lenguajes OO poseían ciertas
limitaciones en cuanto a la separación de concerns, ya que muchos requerimientos no se
descomponían con nitidez en comportamiento centrado en un único lugar. En síntesis, tanto la
tecnología de objetos como las técnicas de programación procedural resultaron tener dificultades
en la localización de concerns que involucraban restricciones globales y comportamiento
pandémico. De este modo, hay importantes decisiones de diseño que, por cruzar transversalmente
la funcionalidad básica del sistema, no quedan capturadas correctamente por estas técnicas. Esta
deficiencia en el diseño se traduce en código entrelazado y excesivamente difícil de desarrollar y
mantener. A raíz de estas cuestiones de diseño que surgen con la POO se plantean otras técnicas
de diseño y programación que se engloban en los mecanismos de POP –Post Object Oriented
Programming– que buscan aumentar la expresividad del paradigma de orientación a objetos. La
programación orientada a aspectos surge entonces como una nueva evolución en la línea de las
tecnologías para separación de concerns. Se ha definido a la Orientación a Aspectos como “la
habilidad de identificar, encapsular y manipular sólo aquellas partes del código fuente que sean
relevantes a un concepto, objetivo o un propósito en particular, que en caso contrario aparecerían
diseminadas en la jerarquía de clases, permitiendo mayor claridad en el diseño, adaptabilidad,
encapsulamiento de propiedades o comportamientos transversales, facilidad de reutilización e
interfaces claras entre otras ventajas [ElFiBa01]”.
Así como la orientación a objetos comenzó exclusivamente como una técnica de programación y
con el tiempo influyó también a otras etapas del ciclo de vida, tales como el análisis y diseño de
arquitectura, algo similar está ocurriendo con la Orientación a Aspectos, a partir del enfoque AOSD
(Aspect Oriented Software Development), que apunta a mejorar los costos de desarrollo,
mantenimiento y reuso en el diseño de sistemas complejos [NaPeMu02].
Aspectos y Data Warehousing
Hemos observado que las propuestas de modelos multidimensionales orientados a objetos
desarrolladas hasta el presente - [TrPa98], [BuSoHa98], [AbSaSa01a], [AbSaSa00a], [BiTjWa00],
[Tr99], [TrPaGo99], [TrPaGoYe01] no cubren todos los aspectos de la funcionalidad de un modelo
multidimensional, ya que adolecen de definiciones importantes en cuanto a conceptos relacionados
con las operaciones a aplicar sobre los clases definidas en los mismos –atributo dimensional,
dimensión, hecho y cubo. Por otro lado, los modelos existentes no proveen operaciones para
manejar multicubos, ya que no contemplan operaciones del estilo “Drill Through” que permitirían
combinar varios cubos a partir de las dimensiones que tienen en común. Por lo tanto, nuestro
proyecto busca extender las propuestas existentes a un modelo conceptual orientado a objetos
completo, y promoviendo una estandarización de las primitivas utilizadas, a partir de los diagramas
UML correspondientes.
Por otra parte, pretendemos mostrar cómo puede ser útil la aplicación de la tecnología orientada a
aspectos a este nuevo modelo conceptual de bases de datos multidimensionales orientado a
objetos para lograr claridad en el diseño, mayor adaptabilidad en un entorno altamente cambiante y
la reusabilidad de sus componentes. Creemos que muchas de las características colaterales que
requieren los modelos multidimensionales para su implantación efectiva, como el manejo de
diferentes perfiles de usuario para diferentes puntos de vista de los facts o las conformed
dimensions [Kim98], así como la seguridad, concepto que debería manejarse a nivel conceptual ya
que está altamente ligado con la forma de analizar y gestionar la información, pueden ser
adecuadamente modeladas con aspectos.
También entendemos que la aplicación de la tecnología orientada a aspectos a nuestro modelo
impactará directamente en el diseño y automatización de una de las etapas más críticas del Data
Warehousing como es la ETL (extracción, transformación y carga), facilitando su desarrollo,
implantación, adaptabilidad y, principalmente, la reusabilidad de sus componentes ante nuevos
requerimientos, acoplando estos procesos de la manera modular y reusable propugnada.
La literatura publicada hasta el presente no es pródiga en el análisis de los vínculos entre la
Orientación a Aspectos y la tecnología de bases de datos. Los trabajos existentes se centran en la
evolución de bases de datos orientadas a objetos [RaSa00], [RaGr02] o en el desarrollo de la capa
middleware [Jac01]. No conocemos todavía un trabajo que intente separar, tal como nos
proponemos, las tareas que son colaterales de aquellas intrínsecas a la funcionalidad del Data
Warehouse (es decir, por ejemplo, el manejo de dimensiones y hechos).
Referencias
[AbSaSa00a] Albelló, A; Samos, J., Saltor, F., A Data Warehouse Multidimensional Data Models
Classification. Tech. Rep. LSI-2000-6. Dept. Lenguajes y Sistemas Informáticos (Univ. de
Granada), 2000.
[AbSaSa00b] Albelló, A., Samos, J., Saltor, F., Benefits of an Object-Oriented Multidimensional
Data Model. LNCS 1944, 141-152, Springer, 2000.
[AbSaSa00a] Albelló, A., Samos, J., Saltor, F., Understanding Analysis Dimensions in a
Multidimensional Object-Oriented Model. In 3rd International Workshop on Design and
Management of Data Warehouses, 2001.
[AbSaSa01a] Abelló, A; Samos, J; Saltor, F., Understanding Facts in a Multidimensional ObjectOriented Model. In 4th International Workshop on Data Warehousing and OLAP, 32-39, 2001
[AgGuSa97] R. Agrawal, A; Gupta, A; Sarawagi, S., Modeling Multidimensional Databases. In Proc.
of the 13th Int'l Conference on Data Engineering, 1997.
[Bar98] Bardou, D., Roles, Subjects and Aspects: How do they relate? Position paper at the Aspect
Oriented Programming Workshop. 12th European Conference on OO Programming, 1998.
[BiTjWa00] Binh, N; Tjoa, A.M; Wagner, R. An Object Oriented Multidimensional Data Model for
OLAP. In Proc. of 1st Int. Conf. on Web-Age Information Management, LNCS 1864, 69-82.
Springer, 2000.
[BuSoHa98] Buzydlowski, J.W; Song, I. Y.; Hassell, L., A Framework for Object-Oriented On-line
Analytical Processing. In Int. Workshop on Data Warehousing and OLAP (DOLAP), 1998.
[CaTo98] Cabibbo, L., Torlone, R., A Logical Approach to Multidimensional Databases. In
Advances in Database Technology, 1998.
[ElFiBa01] Elrad, T., Filman, R., Bader, A., Aspect Oriented Programming, Communications of the
ACM, Vol.44, 2001.
[HaSa97] Hacid, M., Sattler, U., An Object-Centered Multi-Dimensional Data Model with
Hierarchically Structured Dimensions. Proc. of the IEEE Knowledge and Data Engineering
Workshop, 1997.
[Jac01] Arno Jacobsen, H., Middleware architecture design based on aspects, the open
implementation metaphor and modularity, Aspect Oriented Programming and Separation of
Concerns, Proceedings of the International Workshop, 2001.
[Kel00] Keller, D., Data Warehousing: El Ciclo de Vida Dimensional Orientado a Objetos, Tesis de
Licenciatura, Depto. de Computación, Facultad de Cs. Exactas y Naturales, Univ. de Buenos Aires,
2000.
[Kim98] Kimball, R. et al, The Data Warehouse Lifecycle Toolkit, Wiley Computer Publishing, 1998.
[LiOrOv01] Lieberherr, K; Orleans, D; Ovlinger, J., Aspect Oriented Programming with Adaptive
Methods, Communications of the ACM, Vol.44, 2001.
[LiWa96] Li, C., Wang, X. S., A Data Model for Supporting On-Line Analytical Processing. In
Proceedings Conference on Information and Knowledge Management, 81-88, 1996.
[Lu01] Luján Mora, S., Multidimensional Modeling using UML and XML. In 12th Workshop for PhD
Students in OO Systems, http://www.softlab.ece.ntua.gr/facilities/public/AD/phdoos02
[NaPeMu02] Navasa, A; Pérez, M., Murillo, J. et al (2002). Aspect Oriented Software Architecture: a
Structural Perspective. In Workshop on Early Aspects: Aspect-Oriented Requirements Engineering
and Architecture Design. Aspect.Oriented Software Development Conference, 2002
[OsTa01] Osher, H., Tarr, P., Using Multidimensional Separation of Concerns to (re)shape evolving
software, Communications of the ACM, Vol.44, 2001.
[RaGr02] Rashid, A, Green, R., An Aspect-Oriented Framework for Schema Evolution in ObjectOriented Databases. Aspect Oriented Software Development (AOSD2002), 2002.
[RaSa00] Rashid, A., Sawyer, P., Object Database Evolution using Separation of Concerns In
SigMod Record, Vol. 29, No 4, 2000.
[TrPa98] Trujillo, J., Palomar, M., An Object Oriented Approach to Multidimensional Modeling
(OOMD), Proc. First International Workshop on Data Warehousing and OLAP (DOLAP), 1998.
[Tr99] Trujillo, J. The GOLD Model: An OO Multidimensional Data Model for Multidimensional
Databases. In ECOOP Workshop for PhD Students in OO Systems, 24-30, 1999
[TrPaGo99] Trujillo, J., Palomar, M., Gómez, J. Detecting Patterns and OLAP Operations in GOLD
model. In 2nd Intl Workshop on Data Warehousing and OLAP, 1999.
[TrPaGoYe01] Trujillo, J., Palomar, M., Gómez, J., Song, I.Y., Designing Data Warehouses with OO
Conceptual Models. IEEE Computer, special issue on Data Warehouses 34, 66-75, 2001.
[VaSe99] Vassiliadis, P., Sellis, T., A Survey of Logical Models for OLAP Databases. In SIGMOD
Record, 28(4):64--69, 1999.
View publication stats