Publications from the <bigwig> project

The <bigwig> project

by Claus Brabrand, Anders Møller, and Michael I. Schwartzbach.

To appear in TOIT, 2002.

We present the results of the <bigwig> project, which aims to design and implement a high-level domain-specific language for programming interactive Web services.

A fundamental aspect of the development of the World Wide Web during the last decade is the gradual change from static to dynamic generation of Web pages. Generating Web pages dynamically in dialogue with the client has the advantage of providing up-to-date and tailor-made information. The development of systems for constructing such dynamic Web services has emerged as a whole new research area.

The <bigwig> language is designed by analyzing its application domain and identifying fundamental aspects of Web services inspired by problems and solutions in existing Web service development languages. The core of the design consists of a session-centered service model together with a flexible template-based mechanism for dynamic Web page construction. Using specialized program analyses, certain Web specific properties are verified at compile-time, for instance that only valid HTML 4.01 is ever shown to the clients. In addition, the design provides high-level solutions to form field validation, caching of dynamic pages, and temporal-logic based concurrency control, and it proposes syntax macros for making highly domain-specific languages.

The language is implemented via widely available Web technologies, such as Apache on the server-side and JavaScript and Java Applets on the client-side. We conclude with experience and evaluation of the project.

[ HTML | Postscript | PDF | bibtex ]

Growing Languages with Metamorphic Syntax Macros

by Claus Brabrand and Michael I. Schwartzbach.

Presented at PEPM 2002.

We present our experiences with a syntax macro language which we claim forms a general abstraction mechanism for growing (domain-specific) extensions of programming languages. Our syntax macro language is designed to guarantee type safety and termination.
    A concept of metamorphisms allows the arguments of a macro to be inductively defined in a meta level grammar and morphed into the host language. We also show how the metamorphisms can be made to operate simultaneously on multiple parse trees at once. The result is a highly flexible mechanism for growing new language constructs without resorting to compile-time programming. In fact, whole new languages can be defined at surprisingly low cost.
    This work is fully implemented as part of the <bigwig> system for defining interactive Web services, but could find use in many other languages.

[ Postscript | PDF | bibtex ]

Language-Based Caching of Dynamically Generated HTML

by Claus Brabrand, Anders Møller, Steffan Olesen, and Michael I. Schwartzbach.

To appear in World Wide Web Journal.

Increasingly, HTML documents are dynamically generated by interactive Web services. To ensure that the client is presented with the newest versions of such documents it is customary to disable client caching causing a seemingly inevitable performance penalty. In the <bigwig> system, dynamic HTML documents are composed of higher-order templates that are plugged together to construct complete documents. We show how to exploit this feature to provide an automatic fine-grained caching of document templates, based on the service source code. A <bigwig> service transmits not the full HTML document but instead a compact JavaScript recipe for a client-side construction of the document based on a static collection of fragments that can be cached by the browser in the usual manner. We compare our approach with related techniques and demonstrate on a number of realistic benchmarks that the size of the transmitted data and the latency may be reduced significantly.

[ Postscript | PDF | bibtex ]

Static Validation of Dynamically Generated HTML

by Claus Brabrand, Anders Møller, and Michael I. Schwartzbach.

Presented at PASTE 2001.

We describe a static analysis of <bigwig> programs that efficiently decides if all dynamically computed XHTML documents presented to the client will validate according to the official DTD. We employ two interprocedural flow analyses to construct a graph summarizing the possible documents. This graph is subsequently analyzed to determine validity of those documents.

[ Postscript | PDF | bibtex ]

PowerForms: Declarative Client-side Form Field Validation

by Claus Brabrand, Anders Møller, Mikkel Ricky, and Michael I. Schwartzbach.

In World Wide Web Journal, vol. 3, no. 4.

All uses of HTML forms may benefit from validation of the specified input field values. Simple validation matches individual values against specified formats, while more advanced validation may involve interdependencies of form fields.
    There is currently no standard for specifying or implementing such validation. Today, CGI programmers often use Perl libraries for simple server-side validation or program customized JavaScript solutions for client-side validation.
    We present PowerForms which is an add-on to HTML forms that allows a purely declarative specification of input formats and sophisticated interdependencies of form fields. While our work may be seen as inspiration for a future extension of HTML, it is also available for CGI programmers today through a preprocessor that translates a PowerForms document into a combination of standard HTML and JavaScript that works on all combinations of platforms and browsers.
    The definitions of PowerForms formats are syntactically disjoint from the form itself, which allows a modular development where the form is perhaps automatically generated by other tools and the formats and interdependencies are added separately.
    PowerForms has a clean semantics defined through a fixed-point process that resolves the interdependencies between all field values. Text fields are equipped with status icons (by default traffic lights) that continuously reflect the validity of the text that has been entered so far, thus providing immediate feed-back for the user. For other GUI components the available options are dynamically filtered to present only the allowed values.
    PowerForms are integrated into the <bigwig> system for generating interactive Web services, but is also freely available in an Open Source distribution as a stand-alone package.

[ Postscript | HTML | PDF | bibtex ]

A Type System for Dynamic Web Documents

by Anders Sandholm and Michael I. Schwartzbach.

Presented at POPL 2000.

Many interactive Web services use the CGI interface for communication with clients. They will dynamically create HTML documents that are presented to the client who then resumes the interaction by submitting data through incorporated form fields. This protocol is difficult to statically type-check if the dynamic document are created by arbitrary script code using printf statements. Previous proposals have suggested using static document templates which trades flexibility for safety. We propose a notion of typed, higher-order templates that simultaneously achieve flexibility and safety. Our type system is based on a flow analysis of which we prove soundness. We present an efficient runtime implementation that respects the semantics of only well-typed programs. This work is fully implemented as part of the <bigwig> system for defining interactive Web services.

[ Postscript | PDF ]

A Runtime System for Interactive Web Services

by Claus Brabrand, Anders Møller, Anders Sandholm, and Michael I. Schwartzbach.

Presented at WWW8,
Also in Journal of Computer Networks (1999).

Interactive web services are increasingly replacing traditional static web pages. Producing web services seems to require a tremendous amount of laborious low-level coding due to the primitive nature of CGI programming. We present ideas for an improved runtime system for interactive web services built on top of CGI running on virtually every combination of browser and HTTP/CGI server. The runtime system has been implemented and used extensively in <bigwig>, a tool for producing interactive web services.

[ Postscript | HTML | bibtex ]

Synthesizing Safety Controllers for Interactive Web Services

by Claus Brabrand.

Master's Thesis (December 1998).

We show how to use high-level synchronization constraints, written in a version of monadic second-order logic on strings, to synthesize safety controllers for interactive web services. On top of this, we introduce a syntactic level macro language that permits the language to be transparently extended with new constructs. These new constructs will appear as if they were an inherent part of the original language. Together, the macros and constraints, provide a means for extending the original language with sophisticated high-level concurrency abstractions.

Note: Chapter 4 of the Thesis is the paper "A Runtime System for Interactive Web Services".

[ Postscript | PDF ]

Distributed Safety Controllers for Web Services

by Anders Sandholm and Michael I. Schwartzbach.

Presented at ETAPS/FASE'98

We show how to use high-level synchronization constraints, written in a version of monadic second-order logic on finite strings, to synthesize safety controllers for interactive web services. We improve on the naive runtime model to avoid state-space explosions and to increase the flow capacities of services.

[ Postscript | PDF ]

Last updated: April 15, 2002
Valid HTML 4.01!