ArsDigita Visit - 8/6/2000
On August 6th, I met with a number of ArsDigitans to discuss ACS,
OpenACS, Interbase and Postgres. On the ArsDigita end were
Michael Yoon, Adam Farkas, Kai Wu, Brian Quinn, Hugh Brock, and
Barbara Link. Barbara is with the ArsDigita Foundation, while everyone
else is with ArsDigita Corp proper. On the OpenACS end, there was
Gerald Ruderman and myself. Gerald has done little in terms of OpenACS
development, but tons in terms of usage and evangelism.
After months of quasi-ignorance of OpenACS, it seems that ArsDigita
has found a serious need to be fully open-source. Mostly, this is
related to the ArsDigita Foundation and the rising interest that
non-profits have in building serious web sites. Oracle remains too
pricey, while the concept of open-source is truly in touch with the
non-profit
attitude. The hoopla surrounding the Interbase release was clearly
noticed, and it seems important to ArsDigita to port to it because
Interbase is well known in the commercial world.
In my mind, the port to Interbase is a great idea (more choice is
always better), as long as the community is involved in the process,
and as long as the PostgreSQL compatibility is neither shunned nor
broken. After all, PostgreSQL already has a strong community, and is
truly an "insanely great" piece of software.
It seems that ArsDigita now understands the importance of working
within the context of OpenACS and gaining the respect and approval of
the growing community. Thus, after a short discussion, it was agreed
that Sebastian, ArsDigita's Interbase expert, will focus all of his
time on OpenACS. The first step will be to build a generic DB
abstraction scheme using the current DB connection API. This will be
done in such a way as to support both Postgres and Interbase (and
Oracle, or any other RDBMS). Only once this is done will specific
Interbase work be undertaken. This is great news! Note that we're not
expecting this to be a perfect, 100% abstraction, but at least to cut
through 90% of the generic DB queries. Note also that this doesn't in
any way simplify the porting of the data model and stored procedures,
which remains a purely vendor-specific task.
In order to move rapidly towards the future of the ACS, this DB
abstraction layer will be implemented in the context of ACS 4.0. For
those of you who still doubt it, ACS 4.0 is a *massive* overhaul of
the entire data model and code structure. The core ACS 4.0 will be
*very* interesting. In order to give as many people as possible an
early glimpse into what's to come, ArsDigita has also agreed to open
up for reading their CVS tree, including the latest 4.0 branch. If
you're interested in contributing to OpenACS 4.0, I recommend taking a
look at this stuff ASAP (news of the open CVS tree will come
shortly). We want to move fast and release soon after Classic ACS 4.0
(which is planned for September 1st, but will surely slip).
What's truly interesting in ACS 4.0:
- a completely revamped core data model that is much more solid and
makes use of inheritance principles. Needless to say, the
implementation in Postgres should be much easier than even the Oracle
implementation! Go Object-Relational!
- a new content repository
- a revamped package manager (yes, modularity!)
- true scoping and subcommunities
- a web repository for sharing community-contributed packages
- a few other goodies (content management, workflow, etc...)
Overall, ACS 4.0 is looking like a very interesting upgrade . There
are roadblocks still ahead, mostly in ensuring that 4.0 is complete
enough to allow module compatibility and extensions in future 4.x
versions. Most important, however, is the amount of thought and
engineering put into ACS 4.0: it is significantly better than for
earlier ACS versions.
The web repository for community-contributed packages will help
non-ArsDigitans contribute to the ACS. The package manager is already
very powerful, and ArsDigita has agreed to look into making it
data-store aware, so that packages are either Oracle, Interbase,
Postgres, or a combination of those (think fat binaries).
The final picture? ArsDigita seems interested in moving towards a more
community-centric approach to developing the ACS. This remains to be
backed up by actions, but those seem to be in the works. Things to
remember:
- Sebastian will work on OpenACS, first on database abstraction,
then
on Interbase specifics.
- ACS 4.0 will be available, during development, by CVS.
- A web repository of community-contributed packages will soon be
launched.
- ArsDigita wants to be a truly open-source company.
I have high hopes for the weeks to come, and I hope the OpenACS
community will once again rise to the occasion to kick off OpenACS 4.0
shortly after the official launch of ACS Classic 4.0.