Abstract
Web applications are complex software artefacts whose creation and maintenance is not feasible without abstractions, or models. Many special-purpose languages are used today as notations for these models. We show that functional programming languages can be used as modelling languages, offering substantial benefits. The precision and expressive power of functional languages helps in developing concise and maintainable specifications. We demonstrate our approach with the help of a simple example web site, using Haskell as the implementation language.
Chapter PDF
Similar content being viewed by others
References
Ceri, S.: Web Modeling Language (WebML): a modeling language for designing Web sites. Computer Networks (Amsterdam, Netherlands: 1999) 33(1-6), 137–157 (2000)
Chawathe, S., Garcia-Molina, H., Hammer, J., Ireland, K., Papakonstantinou, Y., Ullman, J.D., Widom, J.: The TSIMMIS project: Integration of heterogeneous information sources. In: 16th Meeting of the Information Processing Society of Japan, Tokyo, Japan, pp. 7–18 (1994)
Clark, J.: XSL Transformations (XSLT) Version 1.0. W3C Recommendation (1999), http://www.w3.org/TR/xslt
Conallen, J.: Modeling Web application architectures with UML. Communications of the ACM 42(10), 63–70 (1999)
Erwig, M.: Inductive graphs and functional graph algorithms. Journal of Functional Programming 11(5), 467–492 (2001)
Fernández, M., Florescu, D., Levy, A.Y., Suciu, D.: Declarative specification of Web sites with Strudel. VLDB Journal 9(1), 38–55 (2000)
Fleer, J.: Entwurf und Implementierung eines erweiterbaren Web-Portals. Studienarbeit. University of Koblenz-Landau, Koblenz (2005)
Fraternali, P.: Tools and approaches for developing data-intensive Web applications: a survey. ACM Computing Surveys 31(3), 227–263 (1999)
Garzotto, F., Paolini, P., Schwabe, D.: HDM – a model-based approach to hypertext application design. ACM Transactions on Information Systems 11(1), 1–26 (1993)
Gipp, T.: Functional Web Site Specification. Logos Verlag Berlin, Berlin (2006)
Gipp, T., Ebert, J.: Web engineering does profit from a functional approach. In: Koch, N., Vallecillo, A., Rossi, G. (eds.) MDWE 2005. Workshop on Model-driven Web Engineering, July 2005, pp. 40–49. University of Wollongong (2005)
Gorshkova, E., Novikov, B.: Exploiting UML extensibility in the design of web information systems. In: Proc. Fifth International Baltic Conference on Databases and Information Systems, Tallinn, Estonia, June 2002, pp. 49–64 (2002)
Hanus, M.: Type-oriented construction of web user interfaces. In: PPDP’06. Proc. of the 8th International ACM SIGPLAN Conference on Principle and Practice of Declarative Programming, pp. 27–38. ACM Press, NewYork (2006)
Isakowitz, T., Stohr, E.A., Balasubramanian, P.: RMM: A methodology for structured hypermedia design. Communications of the ACM 38(8), 34–44 (1995)
Jones, S.P., Blackwell, A., Burnett, M.: A user-centred approach to functions in Excel. SIGPLAN Not. 38(9), 165–176 (2003)
Kappel, G., Pröll, B., Reich, S., Retschitzegger, W. (eds.): Web Engineering: Systematische Entwicklung von Web-Anwendungen. dpunkt.verlag, Heidelberg (2004)
Knapp, A., Koch, N., Zhang, G., Hassler, H.-M.: Modeling business processes in web applications with ArgoUWE. In: Baar, T., Strohmeier, A., Moreira, A., Mellor, S.J. (eds.) UML 2004 - The Unified Modeling Language. Model Languages and Applications. LNCS, vol. 3273, pp. 69–83. Springer, Heidelberg (2004)
Koch, N.: A comparative study of methods for hypermedia development. Technical Report 9905, Ludwig Maximilians-Universität München (November 1999)
Koch, N., Kraus, A., Hennicker, R.: The authoring process of the UML-based Web engineering approach (June 2001) (on-line) http://www.dsic.upv.es/~west/iwwost01/files/contributions/NoraKoch/Uwe.pdf
Krishnamurthi, S., Hopkins, P.W., McCarthy, J., Graunke, P.T., Pettyjohn, G., Felleisen, M.: Implementation and use of the plt scheme web server. Higher-Order and Symbolic Computation (2007)
Mecca, G., Merialdo, P., Atzeni, P.: Araneus in the era of XML. IEEE Data Engineering Bulletin 22(3), 19–26 (1999)
Meijer, E., van Velzen, D.: Haskell server pages - functional programming and the battle for the middle tier. Electronic Notes in Theoretical Computer Science, vol. 41(1) (2001)
Meliá, S., Kraus, A., Koch, N.: Mda transformations applied to web application development. In: Lowe, D.G., Gaedke, M. (eds.) ICWE 2005. LNCS, vol. 3579, pp. 465–471. Springer, Heidelberg (2005)
Nunes, D.A., Schwabe, D.: Rapid prototyping of web applications combining domain specific languages and model driven design. In: ICWE ’06. Proceedings of the 6th international conference on Web engineering, pp. 153–160. ACM Press, NewYork (2006)
Peterson, J., Chitil, O.: The Haskell Home Page. (December 2004) http://www.haskell.org/
Schwabe, D., Rossi, G.: The object-oriented hypermedia design model. Communications of the ACM 38(8), 45–46 (1995)
Thiemann, P.: Modeling HTML in Haskell. In: Pontelli, E., Santos Costa, V. (eds.) PADL 2000. LNCS, vol. 1753, p. 263. Springer, Heidelberg (2000)
Thiemann, P.: A typed representation for HTML and XML documents in Haskell. Journal of Functional Programming 12(4 and 5), 435–468 (2002)
Thiemann, P.: An Embedded Domain-Specific Language for Type-Safe Server-Side Web-Scripting. ACM Transactions on Internet Technology 5(1), 1–46 (2005)
Thiemann, P.: Web Authoring System Haskell (WASH) (February 2007) http://www.informatik.uni-freiburg.de/~thiemann/haskell/WASH/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gipp, T., Ebert, J. (2007). Functional Web Applications. In: Baresi, L., Fraternali, P., Houben, GJ. (eds) Web Engineering. ICWE 2007. Lecture Notes in Computer Science, vol 4607. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73597-7_16
Download citation
DOI: https://doi.org/10.1007/978-3-540-73597-7_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-73596-0
Online ISBN: 978-3-540-73597-7
eBook Packages: Computer ScienceComputer Science (R0)