















|
<Publications>
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 ]
|
|
|