Abstract:
When building scalable systems that involve general-purpose computation and persistent data, object-oriented languages and relational databases are often essential components. Yet the impedance mismatch between these technologies has not been completely overcome by existing integration approaches. Call level interfaces like ODBC and JDBC are an unsafe and fragile form of metaprogramming: database queries are constructed at runtime as strings and executed as programs against the database engine. Object/relational mapping and persistent object systems do not support query shipping, in which complex queries are sent to the database for execution. This paper presents safe query objects, an integrated approach to impedance mismatch that allows query behavior to be defined using statically-typed objects and methods. In addition, safe query objects support query shipping by automatically generating code to execute queries remotely in a relational database. A concrete implementation of this solution is presented using the OpenJava macro language and Java Data Objects.
Citations
|
131
|
Orthogonally persistent object systems
– ATKINSON, R
- 1995
|
|
77
|
Domain Specific Embedded Compilers
– Leijen, Meijer
- 1999
|
|
62
|
Performance tradeoffs for client-server query processing
– Franklin, Jonsson, et al.
- 1996
|
|
60
|
OpenJava: A Class-based Macro System for Java
– Tatsubori, Chiba, et al.
- 2000
|
|
52
|
Static Checking of Dynamically Generated Queries in Database Applications
– GOULD, SU, et al.
- 2004
|
|
46
|
N.: MOCHA: a selfextensible database middleware system for distributed data sources
– Rodriguez-Martinez, Roussopoulos
- 2000
|
|
45
|
Accomplishments and research challenges in metaprogramming
– Sheard
|
|
43
|
Computation migration: Enhancing locality for distributed-memory parallel systems
– Hsieh, Wang, et al.
- 1993
|
|
24
|
Issues in the design of object-oriented database programming languages
– Bloom, Zdonik
|
|
21
|
Implementation of multiple specialization in logic programs
– Puebla, Hermenegildo
- 1995
|
|
18
|
Mapping Objects to Tables – A Pattern Language
– Keller
- 1997
|
|
10
|
SchemeUnit and SchemeQL: Two little languages
– Welsh, Solsona, et al.
- 2002
|
|
9
|
Java Data Objects (JDO
– Russell
- 2003
|
|
7
|
Representing database programs as objects
– Maier
- 1987
|
|
7
|
SQL/CLI - a new binding style for SQL
– Venkatrao, Pizzo
- 1995
|
|
5
|
Hibernate your data. onJava.com
– Cengija
- 2004
|
|
5
|
Oracle Application Server TopLink application developers guide, 10g (9.0.4). Oracle Corporation
– Dub, Sapir, et al.
- 2003
|
|
5
|
Linguistic reflection in Java
– Kirby, Morrison, et al.
- 1998
|
|
2
|
An approach to evolving database dependent systems
– Grechanik, Perry, et al.
- 2002
|
|
1
|
Creating reports with query objects
– Brant, Yoder
- 2000
|
|
1
|
DB/ADO: Making universal data access a reality
– OLE
- 1998
|