Modeling Web Interactions
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.
KeywordsType System Runtime System Type Judgment Constraint Check External Storage
- 2.Brabrand, C., A. Møller, A. Sandholm and M. Schwartzbach. A language for developing interactive Web services, 1999. Unpublished manuscript.Google Scholar
- 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.BrightPlanet. DeepWeb. http://www.completeplanet.com/Tutorials/DeepWeb/.
- 5.Cardelli, L. Type systems. In Handbook of Computer Science and Engineering. CRC Press, 1996.Google Scholar
- 6.Coward, D. Java servlet specification version 2.3, October 2000. http://java.sun.com/products/servlet/.
- 7.Dierks, T. and C. Allen. The transport layer security protocol, January 1999. http://www.ietf.org/rfc/rfc2246.txt.
- 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.Freier, A. O., P. Karlton and P. C. Kocher. Secure socket layer 3.0, November 1996. IETF Draft http://wp.netscape.com/eng/ssl3/ssl-toc.html.
- 10.Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.Google Scholar
- 11.Graham, P. Beating the averages. http://www.paulgraham.com/avg.html.
- 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.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
- 15.Microsoft Corporation. http://www.microsoft.com/net/.
- 16.NCSA. The Common Gateway Interface. http://hoohoo.ncsa.uiuc.edu/cgi/.
- 17.Pierce, B. C. Types and Programming Languages. MIT Press, 2002.Google Scholar
- 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.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.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.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