SqueakDBX

929 views

Published on

Talk presented in Smalltalks 2008, Buenos Aires, Argentina.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
929
On SlideShare
0
From Embeds
0
Number of Embeds
406
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SqueakDBX

  1. 1. Integrando Squeak con bases de datos relacionales German
  2. 2. ¿Y esto? • ¿Quienes somos? • ¿Cómo surgió? • ¿Qué es? German. Mariano la parte de “Como surgió”.
  3. 3. Sí, nosotros también preferiríamos una OODB German
  4. 4. 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”
  5. 5. ... y en última instancia, es mejor objetos con relacional, que java con relacional German
  6. 6. Encuesta (1) ¿Qué cantidad de veces le exigieron usar un DBMS específico? German
  7. 7. Encuesta (2) ¿Qué DBMS le exigieron? German
  8. 8. ¿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
  9. 9. ¿Entonces? Esteban
  10. 10. Nuestra propuesta: SqueakDBX One driver to rule them all Esteban
  11. 11. Arquitectura (I) OpenDBX API OpenDBX Platform OpenDBX Connector FFI SqueakDBXPlugin OpenDBX Esteban
  12. 12. Arquitectura (2) Esteban
  13. 13. ¿Que hicimos hasta ahora? Mariano
  14. 14. ¡Aprobamos la materia! Mariano
  15. 15. • Soporte para Oracle, PostgreSQL, MySQL,y SQLite3 • Todo tipo de consultas: SQL, DDL, DML Mariano
  16. 16. • 80 Tests • Cubren 100% de la funcionalidad implementada • Todos en verde, para todas las plataformas soportadas Mariano
  17. 17. • Testeado en Linux y OSX • Windows, solo para PostgreSQL (por ahora) Mariano
  18. 18. • 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
  19. 19. • Documentado todo en la wiki y en código Mariano
  20. 20. Showtime! Esteban
  21. 21. 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
  22. 22. Showtime (2) Conexiones Conectar/abrir una conexión connect/disconnect eci ales es esp cion open/close Op Esteban
  23. 23. 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
  24. 24. Showtime (4) Obteniendo resultados Consultas: DBXResultSet #columnCount #columnDescription #nextRow #rows y #rowsDo: DML: DBXResult #rowsAffected Esteban
  25. 25. Showtime (5) Procesando resultados Registro del ResultSet: DBXRow #values #valueAt: #valueNamed: Esteban
  26. 26. ¿Que es lo que vendrá? Mariano
  27. 27. ¿Qué es lo que vendrá? (1) • Integración con GLORP • Soporte para MS-SQL • Soporte en Windows (En curso) Mariano
  28. 28. ¿Qué es lo que vendrá? (2) • Campos grandes de datos (BLOB/CLOB) • Triggers y stored procedures • Pool de conexiones integrado • Prepared statements Mariano
  29. 29. ¿Preguntas? German
  30. 30. Queremos agradecer a... Norbert Sendetzky Alan Knight, GLORP Todd Blanchard Stephanne Ducasse Comité organizador German
  31. 31. Y a ustedes, ¡Gracias! German

×