SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Integrando Squeak
         con bases de datos
             relacionales


German
¿Y esto?


       • ¿Quienes somos?
       • ¿Cómo surgió?
       • ¿Qué es?
German.
Mariano la parte de “Como surgió”.
Sí, nosotros también
         preferiríamos una OODB




German
Pero hay un “pequeño”
                problema...


                 La persistencia no es algo negociable en la
                          mayoría de las empresas




German

Acordarse de decir: “Aunque el lenguaje, tal vez si es negociable”
... y en última instancia,
         es mejor objetos con relacional,
             que java con relacional




German
Encuesta (1)
     ¿Qué cantidad de veces le exigieron usar un DBMS
                        específico?




German
Encuesta (2)
         ¿Qué DBMS le exigieron?




German
¿No se puede con
      Squeak?
   • Sólo dos drivers implementados
          de forma nativa: MySQL y
          PostgreSQL.
   • Hay un driver ODBC, pero tiene
          limitaciones.
   • GLORP/Squeak funciona sólo
          con PostgreSQL

Esteban
¿Entonces?




Esteban
Nuestra propuesta:




          SqueakDBX
          One driver to rule them all




Esteban
Arquitectura (I)
                   OpenDBX API


                 OpenDBX Platform


             OpenDBX Connector


           FFI             SqueakDBXPlugin


                    OpenDBX

Esteban
Arquitectura (2)




Esteban
¿Que hicimos hasta ahora?




Mariano
¡Aprobamos la materia!




Mariano
• Soporte para Oracle,
            PostgreSQL, MySQL,y
            SQLite3

          • Todo tipo de consultas:
            SQL, DDL, DML




Mariano
• 80 Tests
          • Cubren 100% de la funcionalidad
            implementada

          • Todos en verde, para todas las plataformas
            soportadas




Mariano
• Testeado en Linux y
            OSX

          • Windows, solo para
            PostgreSQL (por
            ahora)




Mariano
• Benchmarks y pruebas de carga
           Benchmark: PostgreSQL                  Pruebas de carga
    2000
                                             Hasta 15 threads
    1500                                     simultaneos probados
                                             ejecutando 100.000
    1000
                                             insersiones y select de los
     500                                     datos insertados.
      0
               SqueakDBX Time (millis)
               Native driver Time (millis)




Mariano
• Documentado todo en la wiki y en
            código




Mariano
Showtime!




Esteban
Showtime (1)
                       Conexiones
                      DBXConnection

          | conn settings |

           settings := DBXConnectionSettings
                   host: 'localhost'
                   port: '5432'
                   database: dbase'
                   userName: user'
                   userPassword: pass'.

          conn := DBXConnection
          platform: aPlatform new settings: settings

Esteban
Showtime (2)
                       Conexiones
                Conectar/abrir una conexión



               connect/disconnect



                  eci ales
            es esp
        cion                 open/close
     Op


Esteban
Showtime (3)
                       Ejecutando sentencias

                conn execute: ‘delete from lenguajes
                     where nombre = “Java”’



          •Todos los tipos de sentencias (SQL, DML y DDL)
           •Deben ser entendidas por el RDBMS



Esteban
Showtime (4)
                  Obteniendo resultados

    Consultas: DBXResultSet
    #columnCount
    #columnDescription
    #nextRow
    #rows y #rowsDo:
    DML: DBXResult
    #rowsAffected

Esteban
Showtime (5)
              Procesando resultados


          Registro del ResultSet: DBXRow

                  #values
                  #valueAt:
                  #valueNamed:




Esteban
¿Que es lo que vendrá?
Mariano
¿Qué es lo que vendrá? (1)

      • Integración con
          GLORP
      • Soporte para MS-SQL
      • Soporte en Windows

                          (En curso)

Mariano
¿Qué es lo que vendrá? (2)

          • Campos grandes de datos (BLOB/CLOB)
          • Triggers y stored procedures
          • Pool de conexiones integrado
          • Prepared statements


Mariano
¿Preguntas?




German
Queremos agradecer a...

                        Norbert Sendetzky

                          Alan Knight,
         GLORP           Todd Blanchard

                        Stephanne Ducasse


                       Comité organizador


German
Y a ustedes, ¡Gracias!




German

Más contenido relacionado

Similar a SqueakDBX

Tic 06 Componentes del ordenador SOFTWARE
Tic 06 Componentes del ordenador SOFTWARETic 06 Componentes del ordenador SOFTWARE
Tic 06 Componentes del ordenador SOFTWARE
Rosa Fernández
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Andrés Iturralde
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
Software Guru
 

Similar a SqueakDBX (20)

Programación visual con VB.NET
Programación visual con VB.NETProgramación visual con VB.NET
Programación visual con VB.NET
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Tic 06 Componentes del ordenador SOFTWARE
Tic 06 Componentes del ordenador SOFTWARETic 06 Componentes del ordenador SOFTWARE
Tic 06 Componentes del ordenador SOFTWARE
 
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
Construyendo las aplicaciones del futuro con visual studio 11 y .net framewor...
 
Matriz Comparativa Lms
Matriz Comparativa LmsMatriz Comparativa Lms
Matriz Comparativa Lms
 
visual fox pro
visual fox provisual fox pro
visual fox pro
 
SQL Server Fundamentals
SQL Server FundamentalsSQL Server Fundamentals
SQL Server Fundamentals
 
Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack Big data para desarrolladores utilizando hadoop y openstack
Big data para desarrolladores utilizando hadoop y openstack
 
Big Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStackBig Data para desarrolladores utilizando Hadoop y OpenStack
Big Data para desarrolladores utilizando Hadoop y OpenStack
 
Presentación instalacion de base de datos 2012 r3.0
Presentación instalacion de base de datos 2012 r3.0Presentación instalacion de base de datos 2012 r3.0
Presentación instalacion de base de datos 2012 r3.0
 
Sdl
SdlSdl
Sdl
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
 
Metacoretex
MetacoretexMetacoretex
Metacoretex
 
Integracion y Entrega Continua con Docker para SQL Server
Integracion y Entrega Continua con Docker para SQL ServerIntegracion y Entrega Continua con Docker para SQL Server
Integracion y Entrega Continua con Docker para SQL Server
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
TIC 06: Componentes del ordenador: SOFTWARE
TIC 06: Componentes del ordenador: SOFTWARETIC 06: Componentes del ordenador: SOFTWARE
TIC 06: Componentes del ordenador: SOFTWARE
 
Dockeriza tu SQL Server
Dockeriza tu SQL ServerDockeriza tu SQL Server
Dockeriza tu SQL Server
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 
SMBD 2011
SMBD 2011SMBD 2011
SMBD 2011
 

Más de Mariano Martínez Peck

Más de Mariano Martínez Peck (11)

Smalltalk and Business
Smalltalk and BusinessSmalltalk and Business
Smalltalk and Business
 
Web Development with Smalltalk
Web Development with SmalltalkWeb Development with Smalltalk
Web Development with Smalltalk
 
Object garphs swapping
Object garphs swappingObject garphs swapping
Object garphs swapping
 
Metacello
MetacelloMetacello
Metacello
 
Efficient Proxies in Smalltalk
Efficient Proxies in SmalltalkEfficient Proxies in Smalltalk
Efficient Proxies in Smalltalk
 
DBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database SuiteDBXTalk: Smalltalk Relational Database Suite
DBXTalk: Smalltalk Relational Database Suite
 
Clustered Serialization with Fuel
Clustered Serialization with FuelClustered Serialization with Fuel
Clustered Serialization with Fuel
 
PhD Thesis Defense Presentation
PhD Thesis Defense PresentationPhD Thesis Defense Presentation
PhD Thesis Defense Presentation
 
Building you own Pharo images with Metacello
Building you own Pharo images with Metacello Building you own Pharo images with Metacello
Building you own Pharo images with Metacello
 
Visualizing Objects and Memory Usage
Visualizing Objects and Memory UsageVisualizing Objects and Memory Usage
Visualizing Objects and Memory Usage
 
Object swapping issues and the imagesegment implementation
Object swapping issues and the imagesegment implementationObject swapping issues and the imagesegment implementation
Object swapping issues and the imagesegment implementation
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

SqueakDBX

  • 1.
  • 2. Integrando Squeak con bases de datos relacionales German
  • 3. ¿Y esto? • ¿Quienes somos? • ¿Cómo surgió? • ¿Qué es? German. Mariano la parte de “Como surgió”.
  • 4. Sí, nosotros también preferiríamos una OODB German
  • 5. Pero hay un “pequeño” problema... La persistencia no es algo negociable en la mayoría de las empresas German Acordarse de decir: “Aunque el lenguaje, tal vez si es negociable”
  • 6. ... y en última instancia, es mejor objetos con relacional, que java con relacional German
  • 7. Encuesta (1) ¿Qué cantidad de veces le exigieron usar un DBMS específico? German
  • 8. Encuesta (2) ¿Qué DBMS le exigieron? German
  • 9. ¿No se puede con Squeak? • Sólo dos drivers implementados de forma nativa: MySQL y PostgreSQL. • Hay un driver ODBC, pero tiene limitaciones. • GLORP/Squeak funciona sólo con PostgreSQL Esteban
  • 11. Nuestra propuesta: SqueakDBX One driver to rule them all Esteban
  • 12. Arquitectura (I) OpenDBX API OpenDBX Platform OpenDBX Connector FFI SqueakDBXPlugin OpenDBX Esteban
  • 14. ¿Que hicimos hasta ahora? Mariano
  • 16. • Soporte para Oracle, PostgreSQL, MySQL,y SQLite3 • Todo tipo de consultas: SQL, DDL, DML Mariano
  • 17. • 80 Tests • Cubren 100% de la funcionalidad implementada • Todos en verde, para todas las plataformas soportadas Mariano
  • 18. • Testeado en Linux y OSX • Windows, solo para PostgreSQL (por ahora) Mariano
  • 19. • Benchmarks y pruebas de carga Benchmark: PostgreSQL Pruebas de carga 2000 Hasta 15 threads 1500 simultaneos probados ejecutando 100.000 1000 insersiones y select de los 500 datos insertados. 0 SqueakDBX Time (millis) Native driver Time (millis) Mariano
  • 20. • Documentado todo en la wiki y en código Mariano
  • 22. Showtime (1) Conexiones DBXConnection | conn settings | settings := DBXConnectionSettings host: 'localhost' port: '5432' database: dbase' userName: user' userPassword: pass'. conn := DBXConnection platform: aPlatform new settings: settings Esteban
  • 23. Showtime (2) Conexiones Conectar/abrir una conexión connect/disconnect eci ales es esp cion open/close Op Esteban
  • 24. Showtime (3) Ejecutando sentencias conn execute: ‘delete from lenguajes where nombre = “Java”’ •Todos los tipos de sentencias (SQL, DML y DDL) •Deben ser entendidas por el RDBMS Esteban
  • 25. Showtime (4) Obteniendo resultados Consultas: DBXResultSet #columnCount #columnDescription #nextRow #rows y #rowsDo: DML: DBXResult #rowsAffected Esteban
  • 26. Showtime (5) Procesando resultados Registro del ResultSet: DBXRow #values #valueAt: #valueNamed: Esteban
  • 27. ¿Que es lo que vendrá? Mariano
  • 28. ¿Qué es lo que vendrá? (1) • Integración con GLORP • Soporte para MS-SQL • Soporte en Windows (En curso) Mariano
  • 29. ¿Qué es lo que vendrá? (2) • Campos grandes de datos (BLOB/CLOB) • Triggers y stored procedures • Pool de conexiones integrado • Prepared statements Mariano
  • 31. Queremos agradecer a... Norbert Sendetzky Alan Knight, GLORP Todd Blanchard Stephanne Ducasse Comité organizador German
  • 32. Y a ustedes, ¡Gracias! German