SISCWeb (web framework)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
SISCWeb
Developer(s) Alessandro Colomba
Stable release 0.5 / April 27, 2007
Operating system Cross-platform via JVM
Type Web application framework
License GNU Lesser General Public License
Website siscweb.sourceforge.net

SISCweb is a framework to facilitate writing stateful Scheme web applications in a J2EE environment.

By using continuations, SISCweb does away with the page-centric execution model typical of web programming. Every time the program sends a response to the browser, its state is suspended, to be then resumed from that exact point when the browser submits a request.

One implication of this approach is that local variables in scope when the response is sent will still be in scope when the subsequent request is received, making much of the session-object data shuffling needless. Another consequence is that, much like in console-based applications, the conversational state between client and server is constantly maintained—hence the term "stateful."

SISCweb is implemented in SISC, a Scheme interpreter for the JVM with support for full continuations.

Features[edit]

SISCweb is both a compact engine to manage continuations and a collection of small libraries to ease web development. Benefiting from both its implementation language, Scheme, and its environment, J2EE, SISCweb offers:

  • An interactive, REPL-based web application development style.
  • Developers can write web applications incrementally without ever needing to restart the J2EE context or the application itself.
  • A powerful, yet unobtrusive SXML-based extension to HTML mostly oriented toward flow control.
  • It is possible to define closures on the fly, and associate them to a link.
  • Solid support for using standard J2EE view components such as JSP/Servlets in place of SXML.
  • A handy (if incomplete) SQL library easily extended to various database vendors through plug-in Scheme modules.
  • Generation of Graphviz graphs through an SXML version of DOTML.

External links[edit]