Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
Ada language and methodology
The C programming language
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
The entity-relationship model—toward a unified view of data
ACM Transactions on Database Systems (TODS) - Special issue: papers from the international conference on very large data bases: September 22–24, 1975, Framingham, MA
A guide to MATLAB: for beginners and experienced users
A guide to MATLAB: for beginners and experienced users
The semantic data model: a modelling mechanism for data base applications
SIGMOD '78 Proceedings of the 1978 ACM SIGMOD international conference on management of data
The Definition of Standard ML
JavaScript: The Definitive Guide
JavaScript: The Definitive Guide
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
The Adaptive Object-Model Architectural Style
WICSA 3 Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance
Java(TM) Programming Language, The (4th Edition)
Java(TM) Programming Language, The (4th Edition)
"One Size Fits All": An Idea Whose Time Has Come and Gone
ICDE '05 Proceedings of the 21st International Conference on Data Engineering
Common Lisp: The Language
EMF: Eclipse Modeling Framework 2.0
EMF: Eclipse Modeling Framework 2.0
Agile Web Development with Rails
Agile Web Development with Rails
Java Persistence with Hibernate
Java Persistence with Hibernate
Expert F# (Expert's Voice in .Net)
Expert F# (Expert's Voice in .Net)
Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition
Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition
Play Framework Cookbook
Morphing: safely shaping a class in the image of others
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Hi-index | 0.00 |
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.