AOLserver & OpenACS

Recently – while rolling several ideas in my head – I recognized how easy and comparatively cheap it is to rent a virtual user-mode-linux server.

I just decided to do so and was searching for an alternative Webserver and framework to write web applications. In the last years I’ve been stuck with this Apache/PHP/MySQL thing, that – surprisingly enough by the way – gains so much popularity. Surprisingly because PHP is such an ugly and strange language (much like Perl) and MySQL is far behind being a true business relevant and performant database system. It is still mainly for hobbyists… Anyboy who worked with postgresql or Oracle knows the advantages of triggers, foreign key constraints, stored procedures, full text search, XML support etc.

Now, what alternatives are there? The answer is: many. Too many.
But the one alternative that attracts me most is AOLserver. Together with AOLserver there exists a web development framework called OpenACS, which promises to provide a lot of web application components that are ready to run and can be assembled to form a complete, i.e. community oriented, site.

There are some interresting parts and take home messages for AOLserver:

  • it is multithreaded since the beginning
  • important: AOLserver has Tcl built in!
  • AOLserver has a modular architecture, allowing for modules being written in C or Tcl
  • Modules are available to extend the server for every relevant functionality (cache, XML, SSL…)
  • interresting: with the nsdb module, AOLserver can do direct database access, connection pooling and transactions – drivers are available for Oracle and Postgres. What to want more?
  • AOLserver can run PHP. So it is possible to use the many available out-of-the-box PHP scripts (I won’t write PHP by myself unless I get paid for that)

Also, there are some interresting parts for OpenACS:

  • It is a framework for writing and assembling web applications
  • OpenACS builds and depends on AOLserver and Postgresql or Oracle
  • Important: OpenACS is written in Tcl (and Pl/SQL, resp. Pl/pgSQL)
  • It’s architecture is modular
  • Modules are distinct web applications or so called "services" that are not visible (drivers, engines and the like)
  • Modules can be assembled to form a complete site. This and the maintenance is done via a simple web interface
  • One important module is the ACS templating system. It provides capabilities to change the site presentation easily and very powerful

I will have a closer look at the two with the goal to transfer my site to the new virtual server and OpenACS. The latter is a very complex system and it will take some time to get to speed with it. But I have the feeling that, once I’ve learned enough about the system, building web applications becomes an easy, pleasant and productive task.