Links - Smalltalk Web Servers: Seaside and AIDA/Web

Updated Sept 7 2008: added seaBreeze link

Seaside

To get a good feel for Seaside development environment, read the excellent technical introduction by Shaffer Consulting.

Note that the article was written in 2005 and may be obsolete in parts. For example, Seaside now supports several object-oriented databases, including Gemstone.

Seaside is an advanced technology and went through several rounds of bugginess in its development. Recent versions seem to be far more stable, as witnessed by the proliferation of Seaside functionality in all major versions of Smalltalk. In fact, you still get a goodly amount of bugginess because many of the early Seaside applications one finds on the Web are buggy, though it's difficult to distinguish between the two at times. One expects that this will improve in the coming months.

There are a surprising number of good Seaside tutorials on the web.

Inchingforward.com has a collection of well-written tutorials on Seaside, geared for intermediate programmers. The link is to the 'Seaside' category of the blog, which creates a single largish HTML page ( approx. 500K ) with multiple articles. Scroll to the bottom of the page for the first tutorial of the series.

Shore components for Seaside webapps.

Seaside is distributed as a package of applications called GLASS - GemStone, Linux, Apache, Seaside, and Smalltalk. The announcement of GLASS from Gemstone. Cincom's James Robertson on GLASS.

AIDA/Web

While Seaside is all the rage these days, AIDA/Web by Janko Mivšek also deserves mention.

AIDA/Web is a web server and framework for complex web applications with integrated Ajax support, rich collection of web components to build web pages programatically, MVC-like separation of presentation from domain, nice looking and bookmarkable url links, with integrated session and security management and many more.

Swazoo

Among many other things, Janko helps maintain Swazoo, the base HTTP Server used by both Seaside and AID/Web.

From the Swazoo site:

Swazoo (Smalltalk Web Application Zoo) is an open source, vendor agnostic, dialect neutral Smalltalk HTTP server with resource and web request resolution framework.Its main features are:

  • HTTP 1.1 and virtual site support
  • concept of hierarchical Resources allows pluggable addition of new web resources like static page servers, wikis, dynamic web frameworks ...
  • clean web request resolution framework
  • static web serving
  • SSL support via OpenSSL interface

 

Continuation Servers

An excellent discussion of continuation servers and Seaside can be found at BrainBell.com. It gives several examples of the radical simplification possible with Seaside. The use of the term 'continuation server' is somewhat debatable, but the idea is clear enough - Seaside manages all user interaction and session state more or less invisibly to the webapp programmer.

IBM's take on continuations and web servers.

An informative account of installing Squeak and a Seaside server on Ubuntu Linux by Ramon Leon. Check out the other articles.