mod.smalltalk.org
"Integrating Smalltalk with the Apache Web Server."


Powered by
Zoku.net™


Contents

Apache Web Server Module for Smalltalk
by
Peter William Lount, peter@smalltalk.org

A few computer languages, Perl (perl.apache.org), PHP (php.apache.org), and Java java.apache.org) interoperate and tightly integrate with the Apache web server. While many Smalltalk systems are being used on the web and often implement their own web servers, because the HTTP protocol that drives a web server and web browsers is really simple to implement, the Apache has the largest market share of any web server. It makes sense to have Smalltalk tightly integrated with the Apache Web server. Any computer language that tightly intergrates and interoperates with the Apache Web server in an Open Source manner can gain prominance in the Web Site and Web Applications Market. Smalltalk has an excellent potential to be the engine behind many powerful, yet to be built, web sites.

[FastCGI]
The FastCGI Protocol
Integrating Smalltalk systems with Apache can be done using the popular and upto date FastCGI protocol module that has seen many years of development. The FastCGI protocol is avaliable for the primary web servers and works with multiple operating systems.

A major problem facing any lanuage being integrated with major web servers and operating systems is writing the code to work with all the possilble combinations of servers, OSes and Smalltalk virtual machines. Yick. A Smalltalk based FastCGI client implementation can solve this problem quickly.

What is FastCGI?
"FastCGI is a language independent, scalable, open extension to CGI that provides high performance and persistence without the limitations of server specific APIs. ... FastCGI applications use (TCP or Unix) sockets to communicate with the web server. This scalable architecture allows applications to run on the same platform as the web server or on many machines scattered across an enterprise network. ... FastCGI applications are fast because they're persistent. There is no per-request startup and initialization overhead. This makes possible the development of applications which would otherwise be impractical within the CGI paradigm (e.g. a huge Perl script, or an application which requires a connection to one or more databases)." - Module mod_fastcgi

What does this mean for Smalltalk?
By implementing a FastCGI client in Smalltalk level code and by installing the FastCGI module for our favorite web server we can easily integrate these two systems. As a significant added benefit it's possible that a Smalltalk based FastCGI client object framework would be portable across ALL versions of Smalltalk. The only problem that I can forsee is the variations in the TCP/IP libraries on the various Smalltalk systems. It seems to be very straightforward to implement the FastCGI client side of the protocol.


Progress
Any takers on writing an implementation?
Yes, there were some takers. Tomas Vanak took up the challenge and wrote the first implementation in a few weeks with some assistance from Peter W. Lount.

First Version Implemented and Now In Alpha Testing
Tomas and Peter have been busy testing and chasing a few obscure bugs in the code. We are also working on a sample yet useful application for Smalltalk.org. We are looking at publishing a first version soon once a few more issues are worked out. The first version is implemented in Squeak Smalltalk (it's all Smalltalk code!) and runs pretty darn good. It's awesome having the full Squeak development system running and catching errors with the Squeak debugger and fixing them on the fly - wow. It should be easy to port to other versions of Smalltalk. Integration of Smalltalk Application with the Apache web server is smooth, flexible, scaleable, and very powerful. Much more work needs to be done, watch this space, or jump in and help out. - Peter 20010327

First Version Now Released For Alpha Testing
Tomas Vanak, Peter W. Lount and Smalltalk.org are please to announce the first publicly available test version of FastCGI for Smalltalk or as Tomas calls it "FasTalk". You can obtain the download here after reading the license. FasTalk is released under a BSD style license.

FastCGI Smalltalk Email List
The email list is now suspended due to spam. We will have a new one in operation once the anti-spam system is in place.

Instructions for using the FastCGI for Smalltalk
Read and agree to the license. Download the Smalltalk source code for FasTalk FastCGI for Smalltalk. Install it in at least a Squeak Smalltalk 3.0 image. You'll need to install mod_fastcgi within your Apache setup. Configure your Apache web server so that at least one web site has the fastCGI configuration options set. Start the FastCGI application server. It sometimes takes a bit of fiddling to get the configuration correct but once you do you'll have a working FastCGI implementation to play with. Enjoy.

FastCGI Smalltalk Documentation
A preliminary instance diagram of the alpha version of FastCGI is available. Download it here: FastCGI_Smalltalk_design_v1b.pdf (7.38 KB).

We still need each FastCGI class documented, anyone up to it?


Related Links
FastCGI Related Links
FastCGI
FastCGI White Paper - A must read.
FastCGI Performance
FastCGI Specification

Apache Web Server Related Links
W3.org/XML
modules.apache.org
modules.apache.org/reference
apache.org
perl.apache.org,
php.apache.org
mod.smalltalk.org
XML.smalltalk.org