SlideShare una empresa de Scribd logo
1 de 26
Universidad Nacional de Misiones
    Facultad de Ciencias Exactas, Químicas y Naturales

   Tesis de grado Licenciatura en Sistemas de Información

Diseño de una interfaz de consulta a db4o basada en 
                      XQuery



                           Autor:
                     Sergio Fabián Vier

                          Tutores:
                    Mg. Javier Bazzocco
                   Ing. Ruben M. Castaño

                          Año 2009
Temario de la presentación
1. Alcance del trabajo
2. Revisión de la Literatura
3. Instrucciones de XQuery
4. API de Consultas SODA
5. Convirtiendo desde Java a XML
6. Diseño de la nueva API de consulta
7. Funcionalidades de la nueva API de consulta
8. Elementos Finales
                       Sergio Fabián Vier    2 de 26
Alcance del trabajo
Descripción del problema
➔   ¿Por qué XML?
    ●   Demanda creciente de tecnologías estandarizadas que
        permitan el intercambio de información entre Sistemas
        heterogéneos.
    ●   Es capaz de contener información que provenga de diversas
        fuentes de datos: documentos estructurados, bases de
        datos relacionales y bases de objetos.
    ●   Posee el XQuery, un lenguaje de consulta estándar,
        inteligente y robusto, optimizado para consultar todos los
        tipos de datos XML.


                             Sergio Fabián Vier               3 de 26
Alcance del trabajo                        continuación


Descripción del problema
➔   La Base de Objetos db4o
    ●   Las Bases de Objetos han logrado establecerse como un
        complemento (no como un reemplazo) a las Bases de Datos
        Relacionales para la resolución eficiente del desfasaje
        Objeto-Relacional.
    ●   Solución de persistencia embebida enfocada en dispositivos
        móviles, paquetes de software, sistemas de control de tiempo
        real, y sistemas con un elevado tráfico de información.


    No se ha integrado dentro de db4o una interfaz de consulta
    estandarizada como XQuery.

                              Sergio Fabián Vier                 4 de 26
Alcance del trabajo                       continuación


Objetivo General

  Diseñar una interfaz o API (Application Programming Interface)
  de consulta nativa a la base de objetos db4o, capaz de
  procesar el lenguaje XQuery. Debe permitir recuperar objetos
  persistentes en formato de documento XML y adaptarse a los
  requerimientos impuestos por esta Base de Objetos y la
  plataforma Java.




                          Sergio Fabián Vier                 5 de 26
Alcance del trabajo                                    continuación


Objetivos Específicos
  1.Establecer el “estado del arte” mediante una extensa revisión y evaluación
    bibliográfica.
  2.Determinar el subconjunto de instrucciones y funciones del lenguaje XQuery
    que serán utilizadas para poder realizar consultas sobre Documentos XML.
  3.Analizar la arquitectura del motor db4o, en especial determinar el
    comportamiento del contenedor de consultas (ObjectContainer).
  4.Definir reglas de correspondencia que permita determinar el mapeo de tipos
    de datos, así como las estructuras existentes, entre objetos de Java y XML.
  5.Plantear una estrategia clara para la conversión de las instrucciones XQuery a
    las construcciones existentes que brinda la API de consulta S.O.D.A.
  6.Mediante el análisis de características y restricciones de la API de consulta
    S.O.D.A, modelar la API que implemente el subconjunto de instrucciones
    XQuery.


                                 Sergio Fabián Vier                          6 de 26
Revisión de la Literatura
XML
 Es un lenguaje de marcas o etiquetas flexible el cual
 permite crear formatos de intercambio de información
 y compartir tanto el formato como los datos.
 ➔    Es posible almacenar y organizar una gran
      cantidad de información en forma personalizada.
 ➔    Ofrece muchas maneras de chequear la calidad del
      contenido de un documento.
 ➔    Es un estándar de la W3C, abierto y evolutivo.


                        Sergio Fabián Vier             7 de 26
Revisión de la Literatura              continuación


XQuery
 El XML Query es un lenguaje funcional estandarizado
 por el W3C, que permite realizar consultas sobre
 colecciones de datos expresadas en XML.
  ➔   Permite seleccionar elementos XML, transformarlos,
      realizar cálculos, y retornar los resultados en una
      estructura a elección.
  ➔   Es flexible ya que está basado en expresiones
      combinables entre si.
  ➔   La expresiones FLWOR, nucleo de XQuery, son
      similares a lo que ofrece el SQL.
                        Sergio Fabián Vier            8 de 26
Revisión de la Literatura                          continuación


db4o
 La librería db4o que significa databases for objects, es una Base de
 Objetos basada completamente en el modelo orientado a objetos
 de la programación.
 ➔   Diseñada para ser simple, posibilita la persistencia transparente.
 ➔   Provee un entorno de cero-administración.
 ➔   Posee tamaño reducido, bajo consumo de memoria y un alto
     desempeño.
 ➔   Facilita la tarea de refactorización aplicaciones orientadas a
     objetos.
 ➔   Posee varios lenguajes de consultas: SODA, QBE, Native Query.



                              Sergio Fabián Vier                    9 de 26
Instrucciones de XQuery
Entre las instrucciones disponibles encontramos
➔   Expresiones XPath
      doc(“un.xml”) – “//” y “/” [@attr = “dat”] 
➔   Agregando atributos y elementos a resultados
      element – attribute – “{}”
➔   Expresiones FLWOR
      for – let – where – order by – return
➔   Funciones build-in
      sum – min – max – avg 

                         Sergio Fabián Vier    10 de 26
Instrucciones de XQuery
Expresiones FLWOR
➔   Tienen una funcionalidad similar a las distintas cláusulas de
    una sentencia SQL (select, from, where, order by).
➔   Es la estructura central (pero no la única) que dispone XQuery
    para realizar consultas.
➔   Permite manipular colecciones de datos XML en forma iterativa.


    En este trabajo, el procesamiento de instrucciones XQuery
    toma estas expresiones como base de la técnica de
    conversión.



                            Sergio Fabián Vier               11 de 26
API de Consultas S.O.D.A.
Provee clases para ejecutar consultas complejas en una
base de objetos. La idea básica de SODA es construir un
grafo, el cual es usado para expresar una consulta
dinámica y crearla en tiempo de ejecución.
➔   Mínimo número de llamadas a la API necesarias para
    crear una consulta.
➔   No requiere un analizador de consultas.
➔   Basada en Nodos, de fácil recorrido y manipulación.




                         Sergio Fabián Vier          12 de 26
API de Consultas S.O.D.A. continuación




Algunas equivalencias entre instrucciones XQuery – SODA

                       Sergio Fabián Vier           13 de 26
Convirtiendo desde
                Java a XML
El data binding o mapeo de componentes XML
desde y hacia el modelo de objetos de Java.




Esta trabajo está centrado en la técnica de marshalling.
                        Sergio Fabián Vier           14 de 26
Convirtiendo desde
                Java a XML                    continuación


➔   Esta técnica tiene que ser no intrusiva respecto
    al modelo de objetos.
➔   Se consideran solo tipos de datos primitivos en
    Java que tienen equivalentes en XML.


    La técnica de marshalling propuesta hace uso
    de la característica de reflexión del lenguaje
    Java.


                       Sergio Fabián Vier         15 de 26
Diseño de la nueva
               API de consulta
Restricciones de Diseño
➔   Impuestas por el entorno de ejecución
    1.Tamaño reducido y de bajo consumo de recursos.
    2.Autonomía y cero administración.
➔   Impuestas por la base de objetos
    1.Alto desempeño y confiabilidad.
    2.Portabilidad entre plataformas.
    3.Facilidad de uso e implementación.
    4.No se realizan modificaciones a los objetos.
                         Sergio Fabián Vier          16 de 26
Diseño de la nueva
            API de consulta              continuación


Integración dentro de db4o




                    Sergio Fabián Vier       17 de 26
Diseño de la nueva
           API de consulta              continuación


Modelo propuesto




                   Sergio Fabián Vier       18 de 26
Diseño de la nueva
                     API de consulta                        continuación


Flujo del proceso de ejecución de consultas

1. Iniciación de la API.
2. Generar el plan de ejecución.
3. Ejecución del plan.
4. Enlazar los resultados                               ´
y generar XML.




                                                        ´


                                   Sergio Fabián Vier           19 de 26
Funcionalidades de la nueva
            API de consulta
De cara al usuario
➔   El uso de una fachada simplifica el uso de la API.
➔   Las referencias múltiples encontradas en el modelo de
    objetos son mantenidas.
➔   Los objetos son serializados a XML sin la necesidad
    de especificar cómo.
Internamente
➔   Flujo de ejecución guiado por un planificador,
    encargado de generar el plan de ejecución.


                          Sergio Fabián Vier             20 de 26
Funcionalidades de la nueva
           API de consulta      continuación


Plan de ejecución, el proceso de transformación de XQuery




                         Sergio Fabián Vier            21 de 26
Funcionalidades de la nueva
              API de consulta      continuación


Utilización de la API de consulta
➔     Tres interfases: XQuery, XSet y ExtObjectContainer.
Ejemplo de uso con una consulta XQuery
   
   String xquery = “for $prod in doc('catalogo.xml')//producto“ +
                   “let $prodDept := $prod/@departamento“ +
                    “where $prodDept='ACC' or $prodDept='FEM'“ +
                    “return $prod/nombre”;
   ... 
   ExtObjectContainer db = Db4o.openFile(ruta); // conectar la db
   XQuery xq = db.xquery();                // crear una instancia
   xq.setXQuery(xquery);                 // asignar la consulta
   XSet result = xq.execute();          // ejecutar la consulta
   System.out.println(result.getXml());   // procesar el resultado

                            Sergio Fabián Vier               22 de 26
Elementos Finales
Discusión de los Resultados
A favor:
 ➔ Diseño de API nativo y unificado a db4o.


 ➔ Bajo consumo de recursos.


 ➔ Proceso de conversión de instrucciones equivalente.


 ➔ No condiciona el entorno de ejecución de db4o.


En contra:
 ➔ El proceso de data binding diseñado, deja de lado el soporte de

   ciertas instrucciones Java.
 ➔ Las consultas complejas pueden estar limitadas por el soporte

   de la API.


                            Sergio Fabián Vier               23 de 26
Elementos Finales                  continuación


Conclusiones
➔   La API propuesta es viable de implementar en
    entornos con estrictos requerimientos en consumo de
    recursos computacionales, pero no así en los que se
    dispone de mayores márgenes de los mismos.
➔   En entornos de altas prestaciones, igualmente puede
    pesar más el buen comportamiento que tendría la API
    sobre grandes colecciones de objetos bajo la base de
    objetos db4o.



                        Sergio Fabián Vier           24 de 26
Elementos Finales                continuación


Trabajo Futuro
➔   Implementación de la API diseñada.
➔   Soporte de XML Schema, generarlo en base al
    modelo y operar con él.
➔   Soporte de nuevas instrucciones XQuery propuestas:
    actualización de XML vía XQuery Update.




                        Sergio Fabián Vier         25 de 26
Muchas gracias

Más contenido relacionado

Similar a Tesis Licenciatura

Similar a Tesis Licenciatura (20)

Laravel
LaravelLaravel
Laravel
 
Visualfoxpro3
Visualfoxpro3Visualfoxpro3
Visualfoxpro3
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Trabajo de case grupal
Trabajo de case grupalTrabajo de case grupal
Trabajo de case grupal
 
Trabajo de case grupal
Trabajo de case grupalTrabajo de case grupal
Trabajo de case grupal
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregido
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptx
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
 
ORMphp Beta v1.0 - Presentación
ORMphp Beta v1.0 - PresentaciónORMphp Beta v1.0 - Presentación
ORMphp Beta v1.0 - Presentación
 
Para Flor :P
Para Flor :PPara Flor :P
Para Flor :P
 
Persistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_softwarePersistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_software
 
Balotario resuelto
Balotario resueltoBalotario resuelto
Balotario resuelto
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Manual hibernate
Manual hibernateManual hibernate
Manual hibernate
 
FHIR HL7
FHIR  HL7FHIR  HL7
FHIR HL7
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Programación del curso inf212 - POO
Programación del curso inf212 - POOProgramación del curso inf212 - POO
Programación del curso inf212 - POO
 
Linq
LinqLinq
Linq
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 

Último

Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxRosabel UA
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
los cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivoslos cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivosOrdinolaSernaquIrene
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxRAMON EUSTAQUIO CARO BAYONA
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOMARIBEL DIAZ
 

Último (20)

Presentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptxPresentación Bloque 3 Actividad 2 transversal.pptx
Presentación Bloque 3 Actividad 2 transversal.pptx
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
los cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivoslos cinco reinos biologicos 0 de los seres vivos
los cinco reinos biologicos 0 de los seres vivos
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docxMODELO DE INFORME DE INDAGACION CIENTIFICA .docx
MODELO DE INFORME DE INDAGACION CIENTIFICA .docx
 
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADOPLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
PLAN DE TUTORIA- PARA NIVEL PRIMARIA CUARTO GRADO
 

Tesis Licenciatura

  • 1. Universidad Nacional de Misiones Facultad de Ciencias Exactas, Químicas y Naturales Tesis de grado Licenciatura en Sistemas de Información Diseño de una interfaz de consulta a db4o basada en  XQuery Autor: Sergio Fabián Vier Tutores: Mg. Javier Bazzocco Ing. Ruben M. Castaño Año 2009
  • 2. Temario de la presentación 1. Alcance del trabajo 2. Revisión de la Literatura 3. Instrucciones de XQuery 4. API de Consultas SODA 5. Convirtiendo desde Java a XML 6. Diseño de la nueva API de consulta 7. Funcionalidades de la nueva API de consulta 8. Elementos Finales Sergio Fabián Vier 2 de 26
  • 3. Alcance del trabajo Descripción del problema ➔ ¿Por qué XML? ● Demanda creciente de tecnologías estandarizadas que permitan el intercambio de información entre Sistemas heterogéneos. ● Es capaz de contener información que provenga de diversas fuentes de datos: documentos estructurados, bases de datos relacionales y bases de objetos. ● Posee el XQuery, un lenguaje de consulta estándar, inteligente y robusto, optimizado para consultar todos los tipos de datos XML. Sergio Fabián Vier 3 de 26
  • 4. Alcance del trabajo continuación Descripción del problema ➔ La Base de Objetos db4o ● Las Bases de Objetos han logrado establecerse como un complemento (no como un reemplazo) a las Bases de Datos Relacionales para la resolución eficiente del desfasaje Objeto-Relacional. ● Solución de persistencia embebida enfocada en dispositivos móviles, paquetes de software, sistemas de control de tiempo real, y sistemas con un elevado tráfico de información. No se ha integrado dentro de db4o una interfaz de consulta estandarizada como XQuery. Sergio Fabián Vier 4 de 26
  • 5. Alcance del trabajo continuación Objetivo General Diseñar una interfaz o API (Application Programming Interface) de consulta nativa a la base de objetos db4o, capaz de procesar el lenguaje XQuery. Debe permitir recuperar objetos persistentes en formato de documento XML y adaptarse a los requerimientos impuestos por esta Base de Objetos y la plataforma Java. Sergio Fabián Vier 5 de 26
  • 6. Alcance del trabajo continuación Objetivos Específicos 1.Establecer el “estado del arte” mediante una extensa revisión y evaluación bibliográfica. 2.Determinar el subconjunto de instrucciones y funciones del lenguaje XQuery que serán utilizadas para poder realizar consultas sobre Documentos XML. 3.Analizar la arquitectura del motor db4o, en especial determinar el comportamiento del contenedor de consultas (ObjectContainer). 4.Definir reglas de correspondencia que permita determinar el mapeo de tipos de datos, así como las estructuras existentes, entre objetos de Java y XML. 5.Plantear una estrategia clara para la conversión de las instrucciones XQuery a las construcciones existentes que brinda la API de consulta S.O.D.A. 6.Mediante el análisis de características y restricciones de la API de consulta S.O.D.A, modelar la API que implemente el subconjunto de instrucciones XQuery. Sergio Fabián Vier 6 de 26
  • 7. Revisión de la Literatura XML Es un lenguaje de marcas o etiquetas flexible el cual permite crear formatos de intercambio de información y compartir tanto el formato como los datos. ➔ Es posible almacenar y organizar una gran cantidad de información en forma personalizada. ➔ Ofrece muchas maneras de chequear la calidad del contenido de un documento. ➔ Es un estándar de la W3C, abierto y evolutivo. Sergio Fabián Vier 7 de 26
  • 8. Revisión de la Literatura continuación XQuery El XML Query es un lenguaje funcional estandarizado por el W3C, que permite realizar consultas sobre colecciones de datos expresadas en XML. ➔ Permite seleccionar elementos XML, transformarlos, realizar cálculos, y retornar los resultados en una estructura a elección. ➔ Es flexible ya que está basado en expresiones combinables entre si. ➔ La expresiones FLWOR, nucleo de XQuery, son similares a lo que ofrece el SQL. Sergio Fabián Vier 8 de 26
  • 9. Revisión de la Literatura continuación db4o La librería db4o que significa databases for objects, es una Base de Objetos basada completamente en el modelo orientado a objetos de la programación. ➔ Diseñada para ser simple, posibilita la persistencia transparente. ➔ Provee un entorno de cero-administración. ➔ Posee tamaño reducido, bajo consumo de memoria y un alto desempeño. ➔ Facilita la tarea de refactorización aplicaciones orientadas a objetos. ➔ Posee varios lenguajes de consultas: SODA, QBE, Native Query. Sergio Fabián Vier 9 de 26
  • 10. Instrucciones de XQuery Entre las instrucciones disponibles encontramos ➔ Expresiones XPath doc(“un.xml”) – “//” y “/” [@attr = “dat”]  ➔ Agregando atributos y elementos a resultados element – attribute – “{}” ➔ Expresiones FLWOR for – let – where – order by – return ➔ Funciones build-in sum – min – max – avg  Sergio Fabián Vier 10 de 26
  • 11. Instrucciones de XQuery Expresiones FLWOR ➔ Tienen una funcionalidad similar a las distintas cláusulas de una sentencia SQL (select, from, where, order by). ➔ Es la estructura central (pero no la única) que dispone XQuery para realizar consultas. ➔ Permite manipular colecciones de datos XML en forma iterativa. En este trabajo, el procesamiento de instrucciones XQuery toma estas expresiones como base de la técnica de conversión. Sergio Fabián Vier 11 de 26
  • 12. API de Consultas S.O.D.A. Provee clases para ejecutar consultas complejas en una base de objetos. La idea básica de SODA es construir un grafo, el cual es usado para expresar una consulta dinámica y crearla en tiempo de ejecución. ➔ Mínimo número de llamadas a la API necesarias para crear una consulta. ➔ No requiere un analizador de consultas. ➔ Basada en Nodos, de fácil recorrido y manipulación. Sergio Fabián Vier 12 de 26
  • 13. API de Consultas S.O.D.A. continuación Algunas equivalencias entre instrucciones XQuery – SODA Sergio Fabián Vier 13 de 26
  • 14. Convirtiendo desde Java a XML El data binding o mapeo de componentes XML desde y hacia el modelo de objetos de Java. Esta trabajo está centrado en la técnica de marshalling. Sergio Fabián Vier 14 de 26
  • 15. Convirtiendo desde Java a XML continuación ➔ Esta técnica tiene que ser no intrusiva respecto al modelo de objetos. ➔ Se consideran solo tipos de datos primitivos en Java que tienen equivalentes en XML. La técnica de marshalling propuesta hace uso de la característica de reflexión del lenguaje Java. Sergio Fabián Vier 15 de 26
  • 16. Diseño de la nueva API de consulta Restricciones de Diseño ➔ Impuestas por el entorno de ejecución 1.Tamaño reducido y de bajo consumo de recursos. 2.Autonomía y cero administración. ➔ Impuestas por la base de objetos 1.Alto desempeño y confiabilidad. 2.Portabilidad entre plataformas. 3.Facilidad de uso e implementación. 4.No se realizan modificaciones a los objetos. Sergio Fabián Vier 16 de 26
  • 17. Diseño de la nueva API de consulta continuación Integración dentro de db4o Sergio Fabián Vier 17 de 26
  • 18. Diseño de la nueva API de consulta continuación Modelo propuesto Sergio Fabián Vier 18 de 26
  • 19. Diseño de la nueva API de consulta continuación Flujo del proceso de ejecución de consultas 1. Iniciación de la API. 2. Generar el plan de ejecución. 3. Ejecución del plan. 4. Enlazar los resultados ´ y generar XML. ´ Sergio Fabián Vier 19 de 26
  • 20. Funcionalidades de la nueva API de consulta De cara al usuario ➔ El uso de una fachada simplifica el uso de la API. ➔ Las referencias múltiples encontradas en el modelo de objetos son mantenidas. ➔ Los objetos son serializados a XML sin la necesidad de especificar cómo. Internamente ➔ Flujo de ejecución guiado por un planificador, encargado de generar el plan de ejecución. Sergio Fabián Vier 20 de 26
  • 21. Funcionalidades de la nueva API de consulta continuación Plan de ejecución, el proceso de transformación de XQuery Sergio Fabián Vier 21 de 26
  • 22. Funcionalidades de la nueva API de consulta continuación Utilización de la API de consulta ➔ Tres interfases: XQuery, XSet y ExtObjectContainer. Ejemplo de uso con una consulta XQuery     String xquery = “for $prod in doc('catalogo.xml')//producto“ + “let $prodDept := $prod/@departamento“ + “where $prodDept='ACC' or $prodDept='FEM'“ + “return $prod/nombre”;    ...  ExtObjectContainer db = Db4o.openFile(ruta); // conectar la db XQuery xq = db.xquery();    // crear una instancia xq.setXQuery(xquery);      // asignar la consulta XSet result = xq.execute();          // ejecutar la consulta System.out.println(result.getXml());   // procesar el resultado Sergio Fabián Vier 22 de 26
  • 23. Elementos Finales Discusión de los Resultados A favor: ➔ Diseño de API nativo y unificado a db4o. ➔ Bajo consumo de recursos. ➔ Proceso de conversión de instrucciones equivalente. ➔ No condiciona el entorno de ejecución de db4o. En contra: ➔ El proceso de data binding diseñado, deja de lado el soporte de ciertas instrucciones Java. ➔ Las consultas complejas pueden estar limitadas por el soporte de la API. Sergio Fabián Vier 23 de 26
  • 24. Elementos Finales continuación Conclusiones ➔ La API propuesta es viable de implementar en entornos con estrictos requerimientos en consumo de recursos computacionales, pero no así en los que se dispone de mayores márgenes de los mismos. ➔ En entornos de altas prestaciones, igualmente puede pesar más el buen comportamiento que tendría la API sobre grandes colecciones de objetos bajo la base de objetos db4o. Sergio Fabián Vier 24 de 26
  • 25. Elementos Finales continuación Trabajo Futuro ➔ Implementación de la API diseñada. ➔ Soporte de XML Schema, generarlo en base al modelo y operar con él. ➔ Soporte de nuevas instrucciones XQuery propuestas: actualización de XML vía XQuery Update. Sergio Fabián Vier 25 de 26