1996•Scholarworks (University of Massachusetts Amherst)Requires access

Object management support for the construction of complex applications

Peri L. Tarr, Lori A. Clarke

Open publisher page 2 citations

Abstract

The definition and long-term management of data in complex systems requires extensive support, including-high-level type and behavior modeling, persistence, query-based and navigational access, consistency management, and concurrency control. Traditionally, some of these capabilities have been provided by programming languages (e.g., semantically rich type and behavior models and navigational access), while others have been provided by database management systems (e.g., persistence, queries, and concurrency control). No language or database has provided the full set of required capabilities, however. This has typically required developers to program in multiple paradigms, translating explicity between "programming language" and "database" models as necessary to use their respective capabilities. The object-oriented database approach has sought to reduce this impedance mismatch in certain areas, but discrepancies still remain. We have developed a different approach to addressing the object management needs of complex applications. This approach eliminates the dichotomy between "programming language" and "database" objects, thus allowing the full set of language and database capabilities to be applied equally to all objects. The resulting object management capabilities are provided in a programming language-like manner, sometimes referred to as a "database programming language." This allows software developers to define objects, their interrelationships, and their behavioral semantics in the same programming language in which they build the systems that manipulate these objects. The object management capabilities can be applied to any kinds of objects these systems may need to define, including non-traditional objects like threads and procedures. The database programming language approach thus reduces the burden on application developers and minimizes application complexity, resulting in more rapid development of more maintainable software. The database programming language approach raises several challenges, arising in part from the historically different goals of programming languages and databases. Languages are general-purpose and flexible, to support a wide variety of application semantics, while databases impose semantic restrictions to improve performance. Thus, fully integrating programming language and database object management capabilities requires expanding language and database semantics to accommodate capabilities from the other domain. It also requires addressing numerous integration problems that arise when these new semantic models are inconsistent with each other. The result must retain the power of the language and database, and still perform acceptably. In this research, we formally define some of these semantic models, and explore and attempt to address the set of interactions via a prototype implementation and experimental evaluation.

About this research paper

What this paper is about

The definition and long-term management of data in complex systems requires extensive support, including-high-level type and behavior modeling, persistence, query-based and navigational access, consistency management, and concurrency control. Traditionally, some of these capabilities have been provided by programming languages (e.g., semantically rich type and behavior models and navigational access), while others have been provided by database management systems (e.g., persistence, queries, and concurrency control). No language or database has provided the full set of required capabilities, however. This has typically required developers to program in multiple paradigms, translating explicity between "programming language" and "database" models as necessary to use their respective capabilities. The object-oriented database approach has sought to reduce this impedance mismatch in certain areas, but discrepancies still remain. We have developed a different approach to addressing the object management needs of complex applications. This approach eliminates the dichotomy between "programming language" and "database" objects, thus allowing the full set of language and database capabilities to be applied equally to all objects. The resulting object management capabilities are provided in a programming language-like manner, sometimes referred to as a "database programming language." This allows software developers to define objects, their interrelationships, and their behavioral semantics in the same programming language in which they build the systems that manipulate these objects. The object management capabilities can be applied to any kinds of objects these systems may need to define, including non-traditional objects like threads and procedures. The database programming language approach thus reduces the burden on application developers and minimizes application complexity, resulting in more rapid development of more maintainable software. The database programming language approach raises several challenges, arising in part from the historically different goals of programming languages and databases. Languages are general-purpose and flexible, to support a wide variety of application semantics, while databases impose semantic restrictions to improve performance. Thus, fully integrating programming language and database object management capabilities requires expanding language and database semantics to accommodate capabilities from the other domain. It also requires addressing numerous integration problems that arise when these new semantic models are inconsistent with each other. The result must retain the power of the language and database, and still perform acceptably. In this research, we formally define some of these semantic models, and explore and attempt to address the set of interactions via a prototype implementation and experimental evaluation.

Why it matters

OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

The definition and long-term management of data in complex systems requires extensive support, including-high-level type and behavior modeling, persistence, query-based and navigational access, consistency management, and concurrency control. Traditionally, some of these capabilities have been provided by programming languages (e.g., semantically rich type and behavior models and navigational access), while others have been provided by database management systems (e.g., persistence, queries, and concurrency control). No language or database has provided the full set of required capabilities, however. This has typically required developers to program in multiple paradigms, translating explicity between "programming language" and "database" models as necessary to use their respective capabilities. The object-oriented database approach has sought to reduce this impedance mismatch in certain areas, but discrepancies still remain. We have developed a different approach to addressing the object management needs of complex applications. This approach eliminates the dichotomy between "programming language" and "database" objects, thus allowing the full set of language and database capabilities to be applied equally to all objects. The resulting object management capabilities are provided in a programming language-like manner, sometimes referred to as a "database programming language." This allows software developers to define objects, their interrelationships, and their behavioral semantics in the same programming language in which they build the systems that manipulate these objects. The object management capabilities can be applied to any kinds of objects these systems may need to define, including non-traditional objects like threads and procedures. The database programming language approach thus reduces the burden on application developers and minimizes application complexity, resulting in more rapid development of more maintainable software. The database programming language approach raises several challenges, arising in part from the historically different goals of programming languages and databases. Languages are general-purpose and flexible, to support a wide variety of application semantics, while databases impose semantic restrictions to improve performance. Thus, fully integrating programming language and database object management capabilities requires expanding language and database semantics to accommodate capabilities from the other domain. It also requires addressing numerous integration problems that arise when these new semantic models are inconsistent with each other. The result must retain the power of the language and database, and still perform acceptably. In this research, we formally define some of these semantic models, and explore and attempt to address the set of interactions via a prototype implementation and experimental evaluation.

Key concepts: Computer science, Programming language, Consistency (knowledge bases), Software engineering, Concurrency, Object (grammar), Semantics (computer science), Object-oriented programming

Related papers

Back to paper searchBrowse research topicsOriginal source
Object management support for the construction of complex applications — Research Paper | ScholarLens