Lehrgebiet InformationssystemeFB Informatik |
||
|
Generating Call-Level Interfaces for Advanced Database Application ProgrammingUdo Nink, Theo Härder, Norbert RitterDepartment of Computer ScienceUniversity of Kaiserslautern P O Box 3049, 67653 Kaiserslautern, Germany e-mail: {haerder,ritter}@informatik.uni-kl.de Paper as gzipped PostScriptAbstractIt has ever been a hard problem to provide application programming interfaces for database systems without sacrificing some advantages of either the database management system or of the programming languages. Various approaches have been proposed. We discuss application programming interfaces with respect to SQL3 and its object-relational extensions as well as to object-oriented programming languages. It is argued that generated call-level interfaces are better suited than classical call-level interfaces and language embeddings to couple database languages to object-oriented programming languages. Profiting from code generation and early binding of type information, generated call-level interfaces improve the pros of embeddings while obviating the cons of classical call-level interfaces. We propose an architecture for generated call-level interfaces consisting of a cache module, a generated run-time system, and a compiler that generates parts of the (generated) call-level interface. The partial generation is specified using a configuration language, which we propose to describe application-specific early binding of type information corresponding to data models, schemas, and queries. With this approach, one can control the sharing of database type information for application programs as well as the deferrable adaptation of applications to different needs by extending interfaces and by replacing implementations.KeywordsApplication Programming Interfaces, Call-Level Interfaces, Host Language Integration, Complex Objects.in: Proc. 25th Int. Conf. on Very Large Data Bases, Edingurgh, 1999, pp. 575-586. |