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.
- Ken Arnold, James Gosling, and David Holmes. The Java Programming Language. Addison-Wesley Professional, 4th edition, 2005. Google ScholarDigital Library
- Christian Bauer and Gavin King. Java persistence with Hibernate. Manning Publications Co., second edition, 2006. Google ScholarDigital Library
- 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 ScholarDigital Library
- Pierre Cointe. Une extension de VLISP vers les objets. Science of Computer Programming, 4:291--322, 1984.Google ScholarCross Ref
- William R. Cook. Policy-based authorization. (Unpublished manuscript), 2003.Google Scholar
- Oracle Corporation. Proxy (Java 2 Platform SE v1.4.2). http://docs.oracle.com/javase/1.3/docs/guide/reflection/proxy.html.Google Scholar
- David Flanagan. JavaScript: The Definitive Guide. O'Reilly & Associates, Inc., 3rd edition, 1998. Google ScholarDigital Library
- 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 ScholarDigital Library
- Adele Goldberg and David Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., 1983. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Brian R. Hunt, Ronald L. Lipsman, and Jonathan M. Rosenberg. A guide to MATLAB: for beginners and experienced users. Cambridge University Press, 2001. Google ScholarDigital Library
- Bjorn Karlsson. Beyond the C++ Standard Library: An Introduction to Boost. Addison-Wesley Professional, first edition, 2005.Google Scholar
- Richard Kelsey, William Clinger, and Jonathan Rees. Revised 5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(9), 1998. Google ScholarDigital Library
- Brian W. Kernighan and Dennis M. Ritchie. C Programming Language. Prentice Hall, 2nd edition, 1988. Google ScholarDigital Library
- 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 ScholarCross Ref
- Gregor Kiczales and Jim Des Rivieres. The Art of the Metaobject Protocol. MIT Press, 1991. Google ScholarDigital Library
- Shriram Krishnamurthi. Programming Languages: Application and Interpretation. April 2007.Google Scholar
- Robin Milner, Mads Tofte, and David Macqueen. The Definition of Standard ML. MIT Press, 1997. Google ScholarDigital Library
- Martin Odersky, Lex Spoon, and Bill Venners. Programming in Scala: A Comprehensive Step-by-Step Guide. Artima Incorporation, 2nd edition, 2011. Google ScholarDigital Library
- OMG. Meta Object Facility (MOF) Specification. Object Management Group, 2000.Google Scholar
- Alexander Reelsen. Play Framework Cookbook. Packt Publishing, 2011. Google ScholarDigital Library
- Guy Steele. Common Lisp: The Language. Digital Press, 1990. Google ScholarDigital Library
- Guy L. Steele, Jr. Common LISP: the language (2nd ed.). Digital Press, 1990. Google ScholarDigital Library
- Dave Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. EMF: Eclipse Modeling Framework. Addison-Wesley Professional, second edition, 2008. Google ScholarDigital Library
- 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 ScholarDigital Library
- Don Syme, Adam Granicz, and Antonio Cisternino. Expert F# (Expert's Voice in .Net). Google ScholarDigital Library
- Éric Tanter. Object-Oriented Programming Languages: Application and Interpretation. 2010.Google Scholar
- Dave Thomas, Chad Fowler, and Andy Hunt. Programming Ruby: The Pragmatic Programmers' Guide. Addison-Wesley Professional, second edition, 2008.Google Scholar
- 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 ScholarDigital Library
- Guido van Rossum. The Python Language Reference Manual. Network Theory Ltd, second edition, 2006.Google Scholar
- David A. Watt, Brian A. Wichmann, and William Findlay. Ada language and methodology. Prentice Hall International (UK) Ltd., 1987. Google ScholarDigital Library
- Niklaus Wirth. Programming in MODULA-2 (3rd corrected ed.). Springer-Verlag New York, Inc., 1985. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
Managed data: modular strategies for data abstraction
Recommendations
XML data update management in XML-enabled database
With the increasing demand for a proper and efficient XML data storage, XML-Enabled Database (XEnDB) has emerged as one of the popular solutions. It claims to combine the pros and limit the cons of the traditional Database Management Systems (DBMS) and ...
Utilizing an Airline Data Warehouse for Website Data Analytics: A Conceptual Design
Big Data Intelligence and ComputingAbstractAs a result of the Covid-19 outbreak, airlines are focusing more on online booking engines, which require airlines to segment clients, target personalized offers, and monitor channel performance, advertising spend, goal conversion, and campaign ...
Definition of Managed Objects for Fault Management of Satellite Network
IFITA '09: Proceedings of the 2009 International Forum on Information Technology and Applications - Volume 01It is a new subject for network management to investigate the fault management of satellite network. Fault management of satellite network can acquire data of managed objects by means of network management protocol. Multiplex network management protocol ...
Comments