Skip to Main content Skip to Navigation
Conference papers

Managed Data: Modular Strategies For Data Abstraction

Abstract : Managed Data is a two-level approach to data abstraction in which programmers first define data description and manipulation mechanisms, and then use these mechanisms to define specific kinds of data. Managed Data allows programmers to take control of many important aspects of data, including persistence, access/change control, reactivity, logging, bidirectional relationships, resource management, invariants and validation. These features are implemented once as reusable strategies that can apply to many different data types. Managed Data is a general concept that can be implemented in several ways, including reflection, metaclasses, and macros. In this paper we argue for the importance of Managed Data and present a novel implementation of Managed Data based on interpretation of data models. We show how to inherit and compose interpreters to implement the features described above. Our approach allows Managed Data to be used in object-oriented languages that support reflection over field access (overriding the "dot" operator) or dynamic method creation. We also show how self-describing data models are useful for bootstrapping, allowing Managed Data to be used definition of Data Managers themselves. As a case study, we used Managed Data in a web development framework from the Ensō project to reuse database management and access control mechanisms across different data definitions.
Document type :
Conference papers
Complete list of metadata
Contributor : Jurgen Vinju Connect in order to contact the contributor
Submitted on : Friday, November 23, 2012 - 10:21:14 PM
Last modification on : Thursday, January 20, 2022 - 4:15:34 PM

Links full text




Alex Loh, Tijs van Der Storm, William Cook. Managed Data: Modular Strategies For Data Abstraction. Onward! 2012 - ACM international symposium on New ideas, new paradigms, and reflections on programming and software, Oct 2012, Tucson, United States. pp.179-194, ⟨10.1145/2384592.2384609⟩. ⟨hal-00756886⟩



Record views