Modeling Web Interactions

  • Paul Graunke
  • Robert Bruce Findler
  • Shriram Krishnamurthi
  • Matthias Felleisen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2618)


Programmers confront a minefield when they design interactive Web programs. Web interactions take place via Web browsers. With browsers, consumers can whimsically navigate among the various stages of a dialog and can thus confuse the most sophisticated corporate Web sites. In turn,Web services can fault in frustrating and inexplicable ways. The quickening transition from Web scripts toWeb services lends these problems immediacy.

To address this programming problem, we develop a foundational model of Web interactions and use it to formally describe two classes of errors. The model suggests techniques for detecting both classes of errors. For one class we present an incrementally checked record type system, which effectively eliminates these errors. For the other class, we introduce a dynamic safety check, which catches the mistakes relative to programmers’ simple annotations.


Type System Runtime System Type Judgment Constraint Check External Storage 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Atkins, D. L., T. Ball, G. Bruns and K. C. Cox. Mawl: A domain-specific language for form-based services. Software Engineering, 25(3):334–346, 1999.CrossRefGoogle Scholar
  2. 2.
    Brabrand, C., A. Møller, A. Sandholm and M. Schwartzbach. A language for developing interactive Web services, 1999. Unpublished manuscript.Google Scholar
  3. 3.
    Brabrand, C., A. Møller, A. Sandholm and M. I. Schwartzbach. A runtime system for interactive Web services. In Journal of Computer Networks, pages 1391–1401, 1999.Google Scholar
  4. 4.
  5. 5.
    Cardelli, L. Type systems. In Handbook of Computer Science and Engineering. CRC Press, 1996.Google Scholar
  6. 6.
    Coward, D. Java servlet specification version 2.3, October 2000.
  7. 7.
    Dierks, T. and C. Allen. The transport layer security protocol, January 1999.
  8. 8.
    Felleisen, M. and R. Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 102:235–271, 1992. Original version in: Technical Report 89-100, Rice University, June 1989.Google Scholar
  9. 9.
    Freier, A. O., P. Karlton and P. C. Kocher. Secure socket layer 3.0, November 1996. IETF Draft
  10. 10.
    Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.Google Scholar
  11. 11.
    Graham, P. Beating the averages.
  12. 12.
    Graunke, P., R. B. Findler, S. Krishnamurthi and M. Felleisen. Automatically restructuring programs for theWeb. In IEEE International Conference onAutomated Software Engineering, pages 211–222, 2001.Google Scholar
  13. 13.
    Graunke, P., S. Krishnamurthi, S. van der Hoeven and M. Felleisen. Programming the Web with high-level programming languages. In European Symposium on Programming, pages 122–136, 2001.Google Scholar
  14. 14.
    Hughes, J. Generalising monads to arrows. Science of Computer Programming, 37(1–3):67–111, May 2000.zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Microsoft Corporation.
  16. 16.
    NCSA. The Common Gateway Interface.
  17. 17.
    Pierce, B. C. Types and Programming Languages. MIT Press, 2002.Google Scholar
  18. 18.
    Queinnec, C. The influence of browsers on evaluators or, continuations to program Web servers. In ACM SIGPLAN International Conference on Functional Programming, pages 23–33, 2000.Google Scholar
  19. 19.
    Rémy, D. Type checking records and variants in a natural extension of ML. In ACM Symposium on Principles of Programming Languages, pages 77–88, 1989.Google Scholar
  20. 20.
    Sandholm, A. and M. I. Schwartzbach. A type system for dynamic Web documents. In Symposium on Principles of Programming Languages, pages 290–301, 2000.Google Scholar
  21. 21.
    Thiemann, P. WASH/CGI: Server-side Web scripting with sessions and typed, compositional forms. In Practical Applications of Declarative Languages, pages 192–208, 2002.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Paul Graunke
    • 1
  • Robert Bruce Findler
    • 2
  • Shriram Krishnamurthi
    • 3
  • Matthias Felleisen
    • 1
  1. 1.Northeastern UniversityUSA
  2. 2.University of ChicagoUSA
  3. 3.Brown UniversityUSA

Personalised recommendations