SISCweb
Do you call/cc in J2EE?
11 Apr 2007: SISCweb v0.5 Released
This release adds a space-safe implementation of Web Cells,
consolidates the interface from Scheme to JSP/Servlets, and
provides some incremental features and fixes.
Features
-
An implementation of web cells, as as described in the paper
Interaction-Safe
State for the Web
. New examples now help compare
web cells, SRFI-39 parameters, state-passing-style and
session attributes with respect to scope, backtracking and
cloning.
-
Much improved interface from SISCweb to JSPs and other standard
J2EE components:
-
Bindings can now be explicitely single-valued or
multi-valued, as in:
`((a . 1) (b 2 3)).
-
The send-forward/* functions pass bindings to the
dispatcher as request attributes for easy access via the
JSTL and the like. Multi-valued bindings are passed as
collection objects.
-
Vice-versa, attributes in a request forwarded to a
Scheme program are now included in the bindings
structure returned by
get-bindings
.
-
The
SISCHttpServletRequest.getBinding*()
methods are deprecated, and will disappear in the next
release.
-
Added publish/regexp to publish procedures using regular
expressions. Sub-expressions can be optionally mapped to
procedure parameters.
-
The SISC libraries (sisc.jar, etc.) can now be shared across
servlet contexts.
-
Miscellanea:
-
better compliance of plain HTML output via send-html/*;
-
added siscweb/text module for generating plain text;
-
added sql/mssql module from LShift's Icing [*];
-
logging rotation;
-
further internal refactoring and compatibility fixes.
Fixes/Bugs
After a context restart, continuation tables persisted within
sessions were not being purged of expired continuations. This
was partially fixed in v0.4 by limiting the number of
continuations per user, but is now completely resolved.
Looking Ahead
Objectives for the next SISCweb releases are:
-
Faster SXML generation, precompiled if possible.
-
Further work on including features from the
Icing framework.
-
Performance improvements, possibly including clustering.
Thanks
Special thanks for this release go to Ben Simon and Dan Muresan for
their bug reports and contributions.
02 Sep 2006: SISCweb v0.4 Released
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 Straaten.)
-
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.
Last updated: $Date: 2007/04/12 04:27:51 $