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 2012Publication 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Christian Bauer and Gavin King. Java persistence with Hibernate. Manning Publications Co., second edition, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Pierre Cointe. Une extension de VLISP vers les objets. Science of Computer Programming, 4:291--322, 1984.Google ScholarGoogle ScholarCross RefCross Ref
  5. William R. Cook. Policy-based authorization. (Unpublished manuscript), 2003.Google ScholarGoogle Scholar
  6. Oracle Corporation. Proxy (Java 2 Platform SE v1.4.2). http://docs.oracle.com/javase/1.3/docs/guide/reflection/proxy.html.Google ScholarGoogle Scholar
  7. David Flanagan. JavaScript: The Definitive Guide. O'Reilly & Associates, Inc., 3rd edition, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Adele Goldberg and David Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Brian R. Hunt, Ronald L. Lipsman, and Jonathan M. Rosenberg. A guide to MATLAB: for beginners and experienced users. Cambridge University Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Bjorn Karlsson. Beyond the C++ Standard Library: An Introduction to Boost. Addison-Wesley Professional, first edition, 2005.Google ScholarGoogle Scholar
  15. Richard Kelsey, William Clinger, and Jonathan Rees. Revised 5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(9), 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Brian W. Kernighan and Dennis M. Ritchie. C Programming Language. Prentice Hall, 2nd edition, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  18. Gregor Kiczales and Jim Des Rivieres. The Art of the Metaobject Protocol. MIT Press, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Shriram Krishnamurthi. Programming Languages: Application and Interpretation. April 2007.Google ScholarGoogle Scholar
  20. Robin Milner, Mads Tofte, and David Macqueen. The Definition of Standard ML. MIT Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Martin Odersky, Lex Spoon, and Bill Venners. Programming in Scala: A Comprehensive Step-by-Step Guide. Artima Incorporation, 2nd edition, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. OMG. Meta Object Facility (MOF) Specification. Object Management Group, 2000.Google ScholarGoogle Scholar
  23. Alexander Reelsen. Play Framework Cookbook. Packt Publishing, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Guy Steele. Common Lisp: The Language. Digital Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Guy L. Steele, Jr. Common LISP: the language (2nd ed.). Digital Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Dave Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. EMF: Eclipse Modeling Framework. Addison-Wesley Professional, second edition, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Don Syme, Adam Granicz, and Antonio Cisternino. Expert F# (Expert's Voice in .Net). Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Éric Tanter. Object-Oriented Programming Languages: Application and Interpretation. 2010.Google ScholarGoogle Scholar
  30. Dave Thomas, Chad Fowler, and Andy Hunt. Programming Ruby: The Pragmatic Programmers' Guide. Addison-Wesley Professional, second edition, 2008.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Guido van Rossum. The Python Language Reference Manual. Network Theory Ltd, second edition, 2006.Google ScholarGoogle Scholar
  33. David A. Watt, Brian A. Wichmann, and William Findlay. Ada language and methodology. Prentice Hall International (UK) Ltd., 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Niklaus Wirth. Programming in MODULA-2 (3rd corrected ed.). Springer-Verlag New York, Inc., 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Managed data: modular strategies for data abstraction

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • 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

      Copyright © 2012 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 19 October 2012

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Onward! 2012 Paper Acceptance Rate13of43submissions,30%Overall Acceptance Rate40of105submissions,38%

      Upcoming Conference

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader