Hostname: page-component-78c5997874-s2hrs Total loading time: 0 Render date: 2024-11-13T03:44:17.270Z Has data issue: false hasContentIssue false

An ER-based framework for declarative web programming*

Published online by Cambridge University Press:  30 October 2012

MICHAEL HANUS
Affiliation:
Institut für Informatik, CAU Kiel, D-24098 Kiel, Germany (e-mail: mh@informatik.uni-kiel.de, sven@koschnicke.de)
SVEN KOSCHNICKE
Affiliation:
Institut für Informatik, CAU Kiel, D-24098 Kiel, Germany (e-mail: mh@informatik.uni-kiel.de, sven@koschnicke.de)

Abstract

We describe a framework to support the implementation of web-based systems intended to manipulate data stored in relational databases. Since the conceptual model of a relational database is often specified as an entity-relationship (ER) model, we propose to use the ER model to generate a complete implementation in the declarative programming language Curry. This implementation contains operations to create and manipulate entities of the data model, supports authentication, authorization, session handling, and the composition of individual operations to user processes. Furthermore, the implementation ensures the consistency of the database w.r.t. the data dependencies specified in the ER model, i.e., updates initiated by the user cannot lead to an inconsistent state of the database. In order to generate a high-level declarative implementation that can be easily adapted to individual customer requirements, the framework exploits previous works on declarative database programming and web user interface construction in Curry.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2012 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Footnotes

*

This work was partially supported by the German Research Council (DFG) under grant Ha 2457/5-2.

References

Antoy, S., Echahed, R. and Hanus, M. 2000. A needed narrowing strategy. Journal of the ACM 47, 4, 776822.Google Scholar
Antoy, S. and Hanus, M. 2010. Functional logic programming. Communications of the ACM 53, 4, 7485.CrossRefGoogle Scholar
Brassel, B., Hanus, M. and Müller, M. 2008. High-level database programming in Curry. In Proc. of the Tenth International Symposium on Practical Aspects of Declarative Languages (PADL'08), Hudak, P. and Warren, D. S., Eds. LNCS, vol. 4902. Springer, Berlin, 316332.Google Scholar
Chen, P. P.-S. 1976. The entity-relationship model—toward a unified view of data. ACM Transactions on Database Systems 1, 1, 936.Google Scholar
Fischer, S. 2005. A functional logic database library. In Proc. of the ACM SIGPLAN 2005 Workshop on Curry and Functional Logic Programming (WCFLP 2005), Antony, S. and Hanus, M., Eds. ACM Press, New York, 5459.Google Scholar
Hanus, M. 1997. A unified computation model for functional and logic programming. In Proc. of the 24th ACM Symposium on Principles of Programming Languages (Paris). Jones, N. D., Ed. ACM Press, New York, 8093.Google Scholar
Hanus, M. 2001. High-level server side web scripting in Curry. In Proc. of the Third International Symposium on Practical Aspects of Declarative Languages (PADL'01). LNCS, Ramakrishnan, I. V., Ed. vol. 1990, Springer, Berlin, 7692.Google Scholar
Hanus, M. 2006. Type-oriented construction of web user interfaces. In Proc. of the 8th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP'06), Maher, M., Ed. ACM Press, New York, 2738.Google Scholar
Hanus, M. 2007a. Multi-paradigm declarative languages. In Proc. of the International Conference on Logic Programming (ICLP 2007). LNCS, Dahl, V. and Niemelä, I., Eds. vol. 4670. Springer, Berlin, 4575.Google Scholar
Hanus, M. 2007b. Putting declarative programming into the web: Translating Curry to JavaScript. In Proc. of the 9th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP'07), Podelski, A., Ed. ACM Press, New York, 155166.Google Scholar
Hanus, M., ed. 2012. Curry: An integrated functional logic language (vers. 0.8.3). URL: http://www.curry-language.org Google Scholar
Huseby, S. 2003. Innocent Code: A Security Wake-Up Call for Web Programmers. Wiley, West Sussex, England.Google Scholar
Krasner, G. and Pope, S. 1988. A cookbook for using the model-view-controller user interface in Smalltalk-80. Journal of Object-Oriented Programming 1, 3, 2649.Google Scholar
Meijer, E. and van Velzen, D. 2000. Haskell server pages: Functional programming and the battle for the middle tier. In Proc. of the ACM SIGPLAN Haskell Workshop. ACM Press, Montreal.Google Scholar
Peyton Jones, S., ed. 2003. Haskell 98 Language and Libraries—The Revised Report. Cambridge University Press, Cambridge, UK.Google Scholar
Plasmeijer, R. and Achten, P. 2006. iData for the world wide web - programming interconnected web forms. In Proc. of the 8th International Symposium on Functional and Logic Programming (FLOPS 2006). LNCS, Hagiya, M. and Wadler, P., Eds. vol. 3945. Springer, Berlin, 242258.Google Scholar
Wadler, P. 1997. How to declare an imperative. ACM Computing Surveys 29, 3, 240263.Google Scholar
Yuan, M., Orshalick, J. and Heute, T. 2009. Seam Framework: Experience the Evolution of Java EE, 2nd ed. Prentice Hall, Upper Saddle River, New Jersey.Google Scholar