Aus Linux-Magazin 02/2001

Das ArsDigita Community System

Philip Greenspun, Gründer von ArsDigita, mit Alex

ACS ist ein Werkzeug für Aufbau und Pflege von OnlineCommunities, also der Spezialfall eines Web Application Servers. Das ursprüngliche System arbeitet mit Oracle und dem AOL-Webserver, daneben gibt es OpenACS für Postgres und Apache.

Das ArsDigita Community System [1] (ACS) fällt etwas aus dem Rahmen. Es erfüllt typische Aufgaben eines Web Application Servers, wird aber nicht so bezeichnet. Es ist auf den Aufbau und die Pflege von Web-Communities fokussiert. Damit sind jedoch nicht nur die typischen offenen Communities im WWW gemeint, sondern der ganze Bereich projektorientierter Teamarbeit in über den Globus verteilten Arbeitsgruppen.

ACS ist mit seinen zirka 50 Modulen das umfangreichste freie Web-Standard-Softwarepaket. Seine Entstehung geht auf eine mehrwöchige Reise zurück: 1993 fährt der MIT-Dozent und Foto-Fan Philip Greenspun mit nach Alaska. Jede Woche schreibt er ein Kapitel über seine Reiseerlebnisse und veröffentlicht sie im Internet. Kurz nach seiner Rückkehr erscheint Mosaic, der erste Web-Browser, das Internet wird multimedial: Philip fügt den Reiseberichten seine Bilder hinzu. Um die vielen E-Mails zu beantworten, baut er ein System, das ihm diese Arbeit erleichtert.

In den nächsten drei Jahre erweitert er die Software von Photo.net zur Community-Software. Die Geschichte des Systems ist gut dokumentiert in “Philip and Alex’s Guide to Web Publishing” [2]. Philip spricht dort alle Techniken an, die beim Aufbau eines Web-Service benötigt werden.

Das Erbe der Vergangenheit – Oracle und TCL

Philip Greenspun entschied sich damals, folgende Technologien einzusetzen: den später in AOLServer umbenannten NaviServer, Oracle und TCL. Für den AOLServer sprach von Beginn an der integrierte TCL-Interpreter, so dass die Seitengenerierung multithreaded innerhalb des Webservers ablaufen kann. Beim Starten eines AOLServers werden die Datenbank-Connections geöffnet und während der Laufzeit offen gehalten, eine sonst sehr zeitaufwändige Operation. Seit einigen Jahren ist der AOLServer frei und Open Source.

Für Oracle entschied sich Greenspun vor allem wegen folgender Vorteile:

  • Oracle verwendet eine interne Versionsverwaltung, so dass lesende nie auf schreibende Transaktionen warten müssen und umgekehrt.
  • Oracle hat eine komplette Programmierumgebung innerhalb des Datenbankservers. Software, die innerhalb der Datenbank selbst läuft, braucht keine Daten zwischen Datenbank- und Webserver zu übertragen.
  • Oracle ist extrem stabil und sehr performant.

1997 gründet Philip mit einigen seiner Studenten ArsDigita. Sie nehmen den in drei Jahren entstandenen Source Code und hacken über den Sommer das ArsDigita Community System zusammen. ArsDigita stellt das ACS unter die GPL, jeder Interessierte kann sich das System von http://arsdigita.com herunterladen.

OpenACS komplett mit freier Software

Weil das klassische ACS zwar selbst frei ist, als Datenbank aber Oracle erfordert, riefen einige ehemalige Mitarbeiter von ArsDigita das OpenACS-Projekt [3] ins Leben und portieren Kern und Module auf PostgreSQL, die damals einzige freie Datenbank. Inzwischen wird in einem Ein-Mann-Projekt auch an einer Portierung zu Interbase [4] gearbeitet. In diesem Projekt ist auch ein Interbase-Treiber für den AOL-Webserver in Version 1.1 erschienen.

OpenACS gibt es als fertiges RPM-Paket für Red Hat [5], Pakete für andere Distributionen sind in Arbeit. Die Installation dauert etwa zehn Minuten. Um das ACS auch unter Apache zum Laufen zu bringen, wurde ein Modul entwickelt, dass die AOLServer-API unter Apache emuliert. OpenACS-RPM kann deshalb Apache als Webserver verwenden.

OpenACS basiert noch auf Version 3.2. Sobald die Datenbankschicht unter Postgres implementiert ist, werden die Portierungszyklen vermutlich erheblich kürzer. Solange es jedoch keine große Entwickler-Community gibt, wird das OpenACS wohl weiterhin dem ClassicACS erheblich hinterherhinkt: Bei ArsDigita arbeiten etwa 180 Entwickler.

Das Ende einer Werkzeugkiste

Frühere Versionen des ACS waren eher Programmier-Toolkits, die das Erstellen von Websites erheblich beschleunigten. Die Version 4 ist das erste voll integrierte Produkt: Der Kern des Systems wurde komplett redesignt und ein großer Teil der Applikationslogik in die Datenbank verlagert, so dass TCL inzwischen nur noch die Glue-Sprache ist.

Eine “Out of the box”-Installation kann mit etwas Konfiguration über den Web-Browser schon als einfache Website laufen. Mit dem Paket-Manager werden Applikationen aus dem Web geladen, installiert und in der Site Map an eine oder mehrere URLs gemountet. Ein Modul ist auf diese Weise beliebig oft instanzierbar. Alle im Folgenden genannten Module sind für ACS und für OpenACS verfügbar oder werden gerade portiert.

Philip Greenspun, Gründer von ArsDigita, mit Alex

Philip Greenspun, Gründer von ArsDigita, mit Alex

Der modulare Aufbau bleibt

Es gibt eine ausgefeilte Rechtevergabe, die User, Usergruppen und ineinander verschachtelte Usergruppen kennt und sicheren Web-Applikationen mit fein granulierten Zugriffsrechten ermöglicht. Sehr große, hierarchische Web-Anwendungen können so im Webbrowser erstellt und administriert werden.

Das Content Repository stellt eine API bereit, die das Verwalten von Inhalten beliebiger Typen kapselt. Versionsverwaltung, Kategorisierung, Permissioning und Workflow werden von den entsprechenden Funktionen beachtet, so dass sich Entwickler auf das Erstellen der benutzerorientierten Applikation konzentrieren können. Ein Beispiel für eine Anwendung dieser Schicht ist das Content-Management-System [6] des ACS.

Das Workflow-Modul besitzt Funktionen, die das Entwickeln von prozessorientierten Anwendungen erheblich erleichtert. Intern werden die Workflow-Prozesse auf Petrinetze abgebildet, das System ist generisch und kann mit relativ wenig Aufwand von einem Entwickler verwendet werden. Zwei Beispielanwendungen sind das Workflow-Modul als Applikation und das Ticket-Tracker-Modul.

Weitere Service-Module sind Notification (E-Mail-Alerts auf Objekte), Messaging (etwa Erstellen von Web-Boards oder E-Mails), LDAP-Authentifizierung und das Templating-System. Diese Abstraktionsschichten erleichtern das Anpassen des ACS an eigene Vorstellungen und angepasste Systeme profitieren von der Weiterentwicklung der Kern-Module.

Für jede Funktion ein Modul

Die Applikations-Module können in fünf Kategorien eingeteilt werden:

  • Collaboration: Da das ACS aus einem auf Zusammenarbeit ausgerichteten Webforum entstanden ist, sind die Collaboration-Module am wichtigsten und umfangreichsten. Address Book, Bulletin Board, Bookmarks, Calendar, Chat, File-Storage, Intranet, Ticket oder WimpyPoint (Web-basierte Präsentationen) bilden das Rückgrat der meisten ACS-gestützten Websites.
  • Die Publishing-Module unterstützen und vereinfachen das Administrieren des Inhalts: Adserver, Banner Ideas, Display, Dynamic Publishing System, FAQ, General Comments, General Permissions, Graphing, News, Poll, Prototype Builder und Spam.
  • Die Personalization-Module ermöglichen das Anpassen einer Website an Benutzer oder Benutzergruppen: Portals, User Groups, User Session Tracking und Member Value.
  • Die Site-Management-Module Audit und Site-Wide-Search unterstützen Auditing und kategorisiertes Site-weites Suchen.
  • Die Transaction-Module umfassen vor allem das E-Commerce-Modul fürs Aufsetzen eines Amazon-ähnlichen Shops und die Classifieds Ads (Kleinanzeigen).

Dokumentation ist alles – doch es gibt noch mehr

Zu offener und freier Software gehört eine gute Dokumentation, deshalb enthält jedes ACS die Handbücher für Programmierer in Form von HTML-Dateien. Der Dokumentationsstandard schreibt vor, dass dort die “Requirements” eines Moduls beschrieben werden müssen. Die Bulletin Boards von ArsDigita [7] und OpenACS [8] sind eine weitere gute Informationsquelle für Web- und Datenbankentwickler. Das ArsDigita Systems Journal hingegen ist ein allgemein gehaltenes Online-Magazin zum Thema webbasierte Informationssysteme. Dort befinden sich auch Online-Ausgaben der drei Computerbücher, die Philip Greenspun geschrieben hat: Das bereits erwähnte “Philip and Alex’s Guide to Web Publishing”, “SQL for Web Nerd” und “TCL for Web Nerds” [9]. Interessant – vor allem für kleine Communities – sollte auch das OpenACS-Hosting-Angebot der Firma Furfly [10] sein.

ArsDigita arbeitet seit einigen Monaten mit Hochdruck an einer Java-Version des ACS, die unter Apache läuft. Der kommerzielle Markt verlangt danach und die Firma hofft auf erheblich stärkeres Echo in der freien Software-Szene. Ein Alphaversion ist bereits Mitte November erschienen, der endgültige Stand sollte zum Erscheinen des Heftes downloadbar sein. sein. Aktuelle Informationen dazu finden sich im Developer-Bereich der ArsDigita-Website. (uwo)

Infos

[1] ArsDigita-Homepage:http://www.arsdigita.com

[3] OpenACS: http://openacs.org

[2] Philip Greenspun: “Philip and Alex’s Guide to Web Publishing” (Verlag Morgan Kaufmann; ISBN: 1558605347)

[4] Interbase-Variante von ACS: http://acs.lavsa.com/acs-interbase/

[5] Open-ACS Pakete zum Download: http://openacs.org/software.adp

[6] Content Management System: http://cms.arsdigita.com

[7] BBoard von ArsDigita: http://www.arsdigita.com/bboard

[8] BBoard von OpenACS: http://openacs.org/bboard

[9] Philip Greenspuns Bücher online: http://www.arsdigita.com/books/

[10] ACS-Hosting: http://openacs.furfly.net/services.html

Der Autor

Dirk Gomez ist seit Jahren bekennender Fan von “Philip and Alex’s Guide to Web Publishing”. Außerdem entwickelt er seit fast zehn Jahren Datenbank-Applikationen. Martin “theBernd” Schmeil war in den letzten vier Jahre Sybase / Oracle-DBA und -Entwickler in einer großen Multimediaagentur. Er veröffentlicht (non profit) die gelben Seiten des Punkrock “BDEBL” gedruckt und demnächst mit dem ACS vielleicht auch (wieder) online.

 

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben