Ars Digita Community System

ACS is dead since about 2001. The latest incarnation of ACS is OpenACS, available at -- EGLim
A free and open-source framework for building web services. In prior lives, it was written using Tcl and AOLserver. Now, it's in Java.

It does all sorts of things for you: it has a persistence layer for database independence and to isolate code from changes in schemas; user and session management; a bunch of services such as workflow and search that can be used by applications that use the ACS. There's also a content management system. -- RichardLi

Isn't this just another word for ApplicationServer? The reason I ask is because PhilipGreenspun traditionally had a big aversion to the concept of application server at all (notably slamming Kiva). -- WillSargent

It depends on your definition of application server. Some people view application servers as the environment that runs in the middle of your n-tier architecture e.g., servlet/EJB containers such as WebLogic, WebSphere, Oracle iAS. ACS is a system that runs on top of this layer (in the same way that AtgDynamo, Turbine, WebLogic commerce server, or Oracle portals runs on top of the servlet/EJB containers). -- RichardLi

(Note: switched AtgDynamo to second category above -- WillSargent)
So you would classify ACS as an application rather than an ApplicationServer. This makes sense to me, except that I was under the impression ACS came with its own infrastructure (connection pooling, etc).

-- WillSargent

I would better name it a application framework. Application servers are hybrids of application framework and application platform. --ManfredSchaefer

ACS does provide a lot of infrastructure, but in a database-independent and application-server-independent way. For instance, it includes a persistence layer that handles mapping objects to relational databases. IIRC, the ACS connection pooling mechanism is a thin wrapper around JDBC so that it integrates with Log4J (Apache project open-source logging system). --RichardLi
It has a pretty cool memoization function that lets you wrap any function call in a memoize function, specifying how long you want to cache the value for. Using it is really quite painless, almost making up for the fact that it's in Tcl.

The ACS "Intranet" module (the part of ACS used by ArsDigita itself to manage its projects) has been reincarnated and is not part of Project/Open at

EditText of this page (last edited January 18, 2005) or FindPage with title or text search