| Alessandro Colomba 2006-09-02, 10:00 pm |
| After a bit of a hiatus, I'm pleased to announce the release of
SISCweb v0.4, available at:
http://siscweb.sourceforge.net/
This release introduces improvements in continuation management,
better performance under load, and logging.
NOTES
This release requires at least SISC 1.15, but SISC 1.16 is recommended
because of radical improvements in I/O performance. This is also the
first SISCweb release to work with SISC 1.16.
FEATURES
- The configuration entries required in the web.xml file are now
fewer, and are documented in the manual. Only one Listener and the
adapter servlet are mandatory. Most configuration parameters are now
optional and represented as environment entries.
- Values of environment entries, normally accessible through the
application server's administrative interface, are picked up within
a minute (provided that the application server allows changing them
without a context restart.)
- Configurable resource-bounding limits the number of continuation
groups per user, how frequently continuations can be created, how
often expired continuations are removed, and how many are
persisted. This makes SISCweb more resilient to load.
- SISCweb applications now respond to DELETE and PUT in addition to
the usual GET and POST. (Continuations and REST can actually work
well together, as explained by Anton Van Strateen at
http://ll4.csail.mit.edu/slides/rest-slides.pdf)
- Continuation storage via Hibernate is no more. Storing individual
continuations was overall more expensive than serializing the whole
continuation table, and altered the semantics of programs. Since
application servers offer a variety of session storage mechanisms,
including database persistence, the Hibernate option had no reason
to be.
- The file WEB-INF/sisc.properties is picked up and used to initialize
the SISC interpreter.
- SISCweb now logs most of its operations at various logging levels.
- Miscellaneous internal refactorings.
FIXES/BUGS
After a context restart, continuation tables persisted within sessions
were not being purged of expired continuations.
Unfortunately this is still an open issue for some application
servers, e.g. Tomcat (but not others, e.g. Resin.) Since the number of
continuation groups per user is limited anyway, this is not a
showstopper.
LOOKING AHEAD
Objectives for the next SISCweb releases are:
- Faster SXML generation, precompiled if possible.
- Inclusion of some features from the Icing framework.
- Improvements in the interface between SISCweb and JSPs.
- Performance improvements, possibly including clustering.
THANKS
Special thanks for this release go to Ben Simon and Dan Muresan.
OVERVIEW
SISCweb is a framework aimed to facilitate writing stateful Scheme web
applications in J2EE environments.
FEATURES
SISCweb sports an interactive, REPL-based web application development
style. Developers can write applications interactively, without ever
restarting the context, and, insofar as it is desirable, without ever
losing application state. (In fact, save for the Java portion, SISCweb
itself is developed interactively in its own REPL.)
Through the use of continuations, SISCweb does away with the
page-centric execution model typical of web applications [*]. Every
time a response is sent to the browser, the program execution flow is
suspended, to be then resumed from that exact point when the browser
submits a request.
[*] More information can be found in this paper: Christian
Queinnec. "Inverting back the inversion of control or, continuations
versus page-centric programming". Technical Report 7, LIP6. May
2001. (http://www-spi.lip6.fr/~queinnec/Papers/www.ps.gz)
REQUIREMENTS
SISCweb requires a J2EE 1.3 application server and a JDK 1.4 or
later. More detailed information is contained in the documentation.
CREDITS
SISCweb is based on SISC (sisc.sf.net), a Scheme interpreter for the
JVM, and is heavily influenced by other Lisp web frameworks:
- the PLT web server collection
(http://download.plt-scheme.org/sche...tml/web-server/)
- SUnet (http://www.scsh.net/resources/sunet.html)
- AllegroServe (http://allegroserve.sourceforge.net/)
A couple of initial design decisions were also lifted from Matthias
Radestock's servlet code in the contrib section of the SISC CVS tree.
Also special thanks to Anton van Straaten, Dominique Boucher, Ben
Simon, Dan Muresan and Felix Klock for bug reports, suggestions,
and/or work in support of SISCweb.
CONTRIBUTING, BUG REPORTS
Comments, ideas, and bug reports are welcome at:
acolomba@users.sourceforge.net
Thank you!
(C) 2005-2006 Alessandro Colomba <acolomba@users.sourceforge.net>
___
Alessandro
|