skip to main content
10.1145/2384592.2384609acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Managed data: modular strategies for data abstraction

Published: 19 October 2012 Publication History

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.

References

[1]
Ken Arnold, James Gosling, and David Holmes. The Java Programming Language. Addison-Wesley Professional, 4th edition, 2005.
[2]
Christian Bauer and Gavin King. Java persistence with Hibernate. Manning Publications Co., second edition, 2006.
[3]
Peter Pin-Shan Chen. The entity-relationship model - towards a unified view of data. ACM Trans. Database Syst., 1(1):9--36, March 1976.
[4]
Pierre Cointe. Une extension de VLISP vers les objets. Science of Computer Programming, 4:291--322, 1984.
[5]
William R. Cook. Policy-based authorization. (Unpublished manuscript), 2003.
[6]
Oracle Corporation. Proxy (Java 2 Platform SE v1.4.2). http://docs.oracle.com/javase/1.3/docs/guide/reflection/proxy.html.
[7]
David Flanagan. JavaScript: The Definitive Guide. O'Reilly & Associates, Inc., 3rd edition, 1998.
[8]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., 1995.
[9]
Adele Goldberg and David Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., 1983.
[10]
Michael Hammer and Dennis McLeod. The semantic data model: a modelling mechanism for data base applications. In Proceedings of the International Conference on Management of Data (SIGMOD), pages 26--36. ACM Press, 1978.
[11]
Shan Huang, David Zook, and Yannis Smaragdakis. Morphing: Safely shaping a class in the image of others. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 4609, pages 399--424. Springer Berlin / Heidelberg, 2007. 10.1007/978-3-540-73589-2-19.
[12]
Paul Hudak, Simon Peyton Jones, Philip Wadler, Brian Boutel, Jon Fairbairn, Joseph Fasel, María M. Guzmán, Kevin Hammond, John Hughes, Thomas Johnsson, Dick Kieburtz, Rishiyur Nikhil, Will Partain, and John Peterson. Report on the programming language Haskell: a non-strict, purely functional language version 1.2. SIGPLAN Not., 27(5):1--164, May 1992.
[13]
Brian R. Hunt, Ronald L. Lipsman, and Jonathan M. Rosenberg. A guide to MATLAB: for beginners and experienced users. Cambridge University Press, 2001.
[14]
Bjorn Karlsson. Beyond the C++ Standard Library: An Introduction to Boost. Addison-Wesley Professional, first edition, 2005.
[15]
Richard Kelsey, William Clinger, and Jonathan Rees. Revised 5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(9), 1998.
[16]
Brian W. Kernighan and Dennis M. Ritchie. C Programming Language. Prentice Hall, 2nd edition, 1988.
[17]
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 1241, pages 220--242. Springer Berlin / Heidelberg, 1997.
[18]
Gregor Kiczales and Jim Des Rivieres. The Art of the Metaobject Protocol. MIT Press, 1991.
[19]
Shriram Krishnamurthi. Programming Languages: Application and Interpretation. April 2007.
[20]
Robin Milner, Mads Tofte, and David Macqueen. The Definition of Standard ML. MIT Press, 1997.
[21]
Martin Odersky, Lex Spoon, and Bill Venners. Programming in Scala: A Comprehensive Step-by-Step Guide. Artima Incorporation, 2nd edition, 2011.
[22]
OMG. Meta Object Facility (MOF) Specification. Object Management Group, 2000.
[23]
Alexander Reelsen. Play Framework Cookbook. Packt Publishing, 2011.
[24]
Guy Steele. Common Lisp: The Language. Digital Press, 1990.
[25]
Guy L. Steele, Jr. Common LISP: the language (2nd ed.). Digital Press, 1990.
[26]
Dave Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. EMF: Eclipse Modeling Framework. Addison-Wesley Professional, second edition, 2008.
[27]
Michael Stonebraker and Ugur Cetintemel. "One Size Fits All": An idea whose time has come and gone. In Proceedings of the 21st International Conference on Data Engineering (ICDE), pages 2--11. IEEE Computer Society, 2005.
[28]
Don Syme, Adam Granicz, and Antonio Cisternino. Expert F# (Expert's Voice in .Net).
[29]
Éric Tanter. Object-Oriented Programming Languages: Application and Interpretation. 2010.
[30]
Dave Thomas, Chad Fowler, and Andy Hunt. Programming Ruby: The Pragmatic Programmers' Guide. Addison-Wesley Professional, second edition, 2008.
[31]
Dave Thomas, David Hansson, Leon Breedt, Mike Clark, James Duncan Davidson, Justin Gehtland, and Andreas Schwarz. Agile Web Development with Rails. Pragmatic Bookshelf, 2006.
[32]
Guido van Rossum. The Python Language Reference Manual. Network Theory Ltd, second edition, 2006.
[33]
David A. Watt, Brian A. Wichmann, and William Findlay. Ada language and methodology. Prentice Hall International (UK) Ltd., 1987.
[34]
Niklaus Wirth. Programming in MODULA-2 (3rd corrected ed.). Springer-Verlag New York, Inc., 1985.
[35]
Joseph W. Yoder and Ralph E. Johnson. The adaptive object-model architectural style. In Proceedings of the IFIP Conference on Software Architecture: System Design, Development and Maintenance, pages 3--27. Kluwer, B.V., 2002.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Onward! 2012: Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
October 2012
258 pages
ISBN:9781450315623
DOI:10.1145/2384592
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. composition
  2. interpretation
  3. schema

Qualifiers

  • Research-article

Conference

SPLASH '12
Sponsor:

Acceptance Rates

Onward! 2012 Paper Acceptance Rate 13 of 43 submissions, 30%;
Overall Acceptance Rate 40 of 105 submissions, 38%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media