CONTRACTS FOR COOPERATION BETWEEN WEB SERVICE PROGRAMMERS AND HTML DESIGNERS
Keywords:
interactive Web services, HTML, XML templates, static analysisAbstract
Interactive Web services consist of a mixture of HTML fragments and program code. The fragments, which are maintained by designers, are combined to form HTML pages that are shown to the clients. The code, which is maintained by programmers, is executed on the server to handle the business logic. Current Web service frameworks provide little help in separating these constituents, which complicates cooperation between programmers and HTML designers. We propose a system based on XML templates and formalized contracts allowing a exible separation of concerns. The contracts act as interfaces between the programmers and the HTML designers and permit tool support for statically checking that both parties fulll their obligations. This ensures that (1) programmers and HTML designers work more independently focusing on their own expertises, (2) theWeb service implementation is better structured and thus easier to develop and maintain, (3) it is guaranteed that only valid HTML is sent to the clients even though it is constructed dynamically, (4) the programmer uses the XML templates consistently, and (5) the form input elds being sent to the client always match the code receiving those values. Additionally, we describe tools that aid in the construction and management of contracts and XML templates.
Downloads
References
Alfred V. Aho, John E. Hopcroft, and Je rey D. Ullman. Data Structures and Algorithms.
Addison-Wesley, January 1983.
David Atkins, Thomas Ball, Glenn Bruns, and Kenneth Cox. Mawl: a domain-speci c language
for form-based services. IEEE Transactions on Software Engineering, 25(3):334{346, May/June
Nicola Ken Barozzi et al. Cocoon, 2003. http://cocoon.apache.org/.
Kent Beck. Extreme Programming Explained. Addison-Wesley, October 1999.
Bert Bos, Hakon Wium Lie, Chris Lilley, and Ian Jacobs. Cascading style sheets, level 2, CSS2
speci cation, May 1998. W3C Recommendation. http://www.w3.org/TR/REC-CSS2/.
Claus Brabrand, Anders Mller, and Michael I. Schwartzbach. The project. ACM
Transactions on Internet Technology, 2(2):79{114, 2002.
Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and Francois Yergeau. Extensible
Markup Language (XML) 1.0 (third edition), February 2004. W3C Recommendation.
Aske Simon Christensen and Anders Mller. JWIG User Manual. BRICS, Department of
Computer Science, University of Aarhus, June 2002. Notes Series NS-02-6. Available from
http://www.brics.dk/JWIG/manual/.
Aske Simon Christensen, Anders Mller, and Michael I. Schwartzbach. Extending Java for highlevel
Web service construction. ACM Transactions on Programming Languages and Systems,
(6):814{875, 2003.
Aske Simon Christensen, Anders Mller, and Michael I. Schwartzbach. Precise analysis of string
expressions. In Proc. 10th International Static Analysis Symposium, SAS '03, volume 2694 of
LNCS, pages 1{18. Springer-Verlag, June 2003.
James Clark. XSL transformations (XSLT), November 1999. W3C Recommendation.
Christian Cryder et al. Barracuda, 2003. http://barracudamvc.org/.
Emden Gansner, Eleftherios Koutso os, and Stephen North. Drawing graphs with dot, February
Available from http://www.research.att.com/sw/tools/graphviz/.
Benjamin Geer, Mike Bayer, et al. FreeMarker, 2003. http://freemarker.
sourceforge.net/.
Christian Kirkegaard, Anders Mller, and Michael I. Schwartzbach. Static analysis of XML transformations
in Java. IEEE Transactions on Software Engineering, 30(3):181{192, March 2004.
G. Krasner and S. Pope. A cookbook for using the model view controller user interface paradigm
in Smalltalk-80. Journal of Object-Oriented Programming, 1(3):26{49, August/September 1988.
David A. Ladd and J. Christopher Ramming. Programming the Web: An application-oriented
language for hypermedia services. World Wide Web Journal, 1(1), January 1996. O'Reilly &
Associates. Proc. 4th International World Wide Web Conference, WWW4.
Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and
Design and the Uni ed Process. Pearson Education, July 2001.
Craig R. McClanahan et al. Struts, 2002. http://jakarta.apache.org/struts/.
Anders Mller. Document Structure Description 2.0, December 2002. BRICS, Department
of Computer Science, University of Aarhus, Notes Series NS-02-7. Available from
Anders Mller. dk.brics.automaton { nite-state automata and regular expressions for Java, 2005.
http://www.brics.dk/automaton/.
Steven Pemberton et al. XHTML 1.0: The extensible hypertext markup language, January 2000.
W3C Recommendation. http://www.w3.org/TR/xhtml1.
Dave Raggett, Arnaud Le Hors, and Ian Jacobs. HTML 4.01 speci cation, December 1999. W3C
Recommendation. http://www.w3.org/TR/html4/.
Gal Schachor, Adam Chace, and Magnus Rydin. JSP Tag Libraries. Manning Publications, May
Govind Seshadri. Understanding JavaServer Pages Model 2 architecture, December
Available from http://www.javaworld.com/javaworld/jw-12-1999/
jw-12-ssj-jspmvc.html.
Jon S. Stevens et al. Turbine, 2003. http://jakarta.apache.org/turbine/.
Sun Microsystems. Java Servlet Speci cation, Version 2.3, 2001. Available from
http://java.sun.com/products/servlet/.
Sun Microsystems. JavaServer Pages Speci cation, Version 1.2, 2001. Available from
http://java.sun.com/products/jsp/.
Jason van Zyl et al. Velocity, 2003. http://jakarta.apache.org/velocity.
WAP Forum. Wireless Markup Language, version 2.0, September 2001. Wireless Application
Protocol Forum. Available from http://www.wapforum.org/.
Justin Wells et al. WebMacro, 2003. http://www.webmacro.org/.