Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

EZRO Content Management System

Einleitung

Development InfoStructure (devIS) ist ein kleines Beratungsunternehmen in Arlington, Virginia, das für seine Arbeit im Bereich E-Government bekannt ist. Dazu gehört die Entwicklung kleiner, mittlerer und großer Systeme.

devIS EZ Reusable Objects (EZRO) ist ein Content-Management-System, das für viele verschiedene Arten von Websites verwendet werden kann, einschließlich traditioneller Informationspräsentationsseiten wie http://www.devis.com/, Portale wie http://www.milspouse.org/, Trainingsseiten wie http://cable.devis.com/ und Coach-Style-Sites. Eine Coaching-Site erscheint als Rahmen am Bildschirmrand und steuert eine andere Website, um den Benutzer durch diese Website zu führen, wie in http://www.careeronestopcoach.org/.

EZRO entstand aus einer Reihe von Verträgen mit dem Arbeitsministerium über die Jahre 2001 bis 2004. Es wurde unter dem Namen Workforce Connections entwickelt. devIS hat sein Urheberrecht dem Arbeitsministerium abgetreten, um es im Januar 2004 als Open-Source-Tool veröffentlichen zu können. EZRO ist eine fortgeschrittenere Version der von devIS unter der GPL veröffentlichten Workforce Connections-Software.

EZRO Screenshot

Die Repository-Management-Oberfläche von EZRO wird verwendet, um Inhalte für die darauf basierenden Websites zu erstellen und zu verwalten Vergrößern

Warum Python

EZRO wurde ursprünglich als Engine für das DisabilityInfo-Portal des Arbeitsministeriums entwickelt, das ursprünglich Disability.gov hieß, später in DisabilityDirect.gov umbenannt wurde und jetzt DisabilityInfo.gov heißt. Die Website ist eine Portal-Website, die von Mitarbeitern jeder der wichtigsten Behörden gepflegt wird, darunter die Ministerien für Arbeit, Bildung, Verkehr, Verteidigung, Handel sowie die Social Security Administration und das Gesundheits- und Sozialministerium. Das Arbeitsministerium, die federführende Behörde, hatte die endgültige redaktionelle Entscheidungsbefugnis.

Benötigt wurde ein Content-Management-System, das eine verteilte Bearbeitung und eine zentrale redaktionelle Kontrolle ermöglichte und für Behinderte vollständig zugänglich sein musste. Um die Sache zu erschweren, wurde durch eine Exekutivverordnung von Präsident Bush verfügt, dass die Website innerhalb von sechzig Tagen online gehen musste. Obwohl bereits einige Arbeiten begonnen hatten und eine frühere Version der Website existierte, war die Frist für die Fertigstellung extrem knapp. Da die Website zu den wenigen vom Weißen Haus angeordneten Websites gehören sollte, musste sie auf Anhieb richtig gemacht werden.

devIS entschied von Anfang des Projekts an, dass unser Code zwei allgemeine Anforderungen erfüllen musste. Erstens sollte die Software zu einem späteren Zeitpunkt, nach Erfüllung der ursprünglichen Frist, als Open Source veröffentlicht werden. Zweitens musste sie portabel genug sein, um auf mehreren Plattformen zu laufen.

Für die Arbeit wurden Python und Zope, ein in Python geschriebener Webanwendungsserver, ausgewählt. devIS nutzte Zope bereits seit 1999 und verfügte bereits über viele Entwickler, die sich mit Zope auskannten, einschließlich des Besitzers und Entwicklers von ZopeLabs.

Zu diesem Zeitpunkt entwickelte devIS seine Webanwendungen noch mit der Zope-Verwaltungsoberfläche, DTML (dynamic template markup language) Tags und kurzen Python-Skripten zur Erstellung dynamischer Websites. Die Zope-Verwaltungsoberfläche war jedoch keine gute Umgebung für Gruppenarbeit: Ein Entwickler konnte versehentlich die Arbeit eines anderen Entwicklers überschreiben, ohne Warnung, und es gab keine ausreichende Versionskontrolle.

Da fünf Entwickler halb- bis volltags an diesem Projekt arbeiteten, war klar, dass eine bessere Lösung benötigt wurde. Die natürliche Schlussfolgerung war, mit der Entwicklung in Python unter Verwendung des in Zope verfügbaren Products-Frameworks zu beginnen. Ein Zope-Produkt ist ein Paket aus Code, Grafiken und Vorlagen, das eine wiederverwendbare Webfunktionalität bereitstellt. Wir konnten die integrierten Zope-Komponenten, die wir täglich nutzten und liebten, wie Benutzerverwaltung und einfache Veröffentlichung von Objekten im Web, mit der Flexibilität von Python und seiner großen internen Bibliothek kombinieren. Dies ermöglichte es uns auch, den Quellcode außerhalb der Zope-Objektdatenbank und auf dem Dateisystem zu speichern, wo er mit unserer bestehenden CVS-Infrastruktur für Quellcodekontrolle und Berichterstattung verwendet werden konnte.

EZRO Architecture

EZRO wurde in Python als Zope-Produkt entwickelt. Es interagiert mit anderen Zope-Produkten und verwendet aspell als externen Prozess für die Rechtschreibprüfung. Die Content-Management-Oberfläche und die veröffentlichten Web-Inhalte werden den Benutzern über Apache oder einen anderen Webserver bereitgestellt. Vergrößern

Implementierung

Die Entwicklung der EZRO Content-Management-Lösung begann mit der Annahme, dass die Anwendung im Laufe der Zeit wachsen würde, wie die meisten Softwareprojekte. Die anfängliche Wahl fiel zwischen der Erstellung der Software von Grund auf oder der Verwendung eines bereits vorhandenen Frameworks wie Zope CMF oder Plone, die beide etwa zur gleichen Zeit wie die Entwicklung von EZRO veröffentlicht wurden.

Nach sorgfältiger Prüfung der Alternativen wurde entschieden, dass die Entwicklung einer neuen Lösung zu einem Produkt führen würde, das besser auf die Bedürfnisse und Anforderungen des Kunden zugeschnitten ist, ohne den erheblichen Overhead, der durch die nicht benötigten Teile von CMF oder Plone verursacht wurde.

Da Python eine sehr schnelle Entwicklung ermöglicht, stand diese Wahl im Einklang mit der sehr engen ursprünglichen Frist für das DisabilityInfo-Projekt. Innerhalb von zwei Wochen war ein funktionierender Prototyp für den Kunden bereit. Die erste produktionsreife Version der Software wurde in nur drei weiteren Wochen fertiggestellt, basierend auf dem Prototyp.

Durch die Verwendung von Python wurde der Wartungsaufwand erheblich reduziert. Im Laufe des nächsten Jahres konnten die devIS-Entwickler schnell und einfach neue EZRO-Funktionen hinzufügen, als Reaktion auf Anfragen des Kunden. Als devIS neue Kunden gewann, wurde EZRO eingesetzt, um die Entwicklungskosten neuer Projekte zu senken. Auf diese Weise wuchs das Tool in Funktionen und Umfang zu dem, was es heute ist.

Das übersichtliche Layout und die Struktur von Python machten auch den später als Open Source veröffentlichten Code lesbarer. Dies war ein Vorteil, wenn neue Entwickler an Bord geholt wurden, da sie schnell einsteigen und den Code sofort verstehen konnten.

Aufgrund der plattformübergreifenden Natur von Python läuft EZRO gleichermaßen gut unter Microsoft Windows und jedem Unix-ähnlichen Betriebssystem, einschließlich Linux und MacOS X. devIS hat eine eigenständige EZRO-Umgebung mit einem Installer für Windows veröffentlicht und verteilt das EZRO Zope Product in Tar-Archivform für andere Umgebungen. Die Software ist auf Zope, Aspell und PyXML angewiesen, aber aufgrund der Portabilität von Python laufen all diese Drittanwendungen ebenfalls auf den meisten anderen Betriebssystemen.

EZRO läuft problemlos auf einem einzelnen Rechner, wird aber in der devIS-Produktionsanlage auf drei redundanten Servern für die öffentlich zugänglichen Websites und auf einem vierten sicheren Server für das administrative Backend eingesetzt.

Schlussfolgerung

Python und Zope zusammen boten devIS unglaubliche Flexibilität und ermöglichten die schnelle Implementierung neuer Funktionen, was wiederum die Kunden von devIS sehr zufriedenstellte. Das OSHA Training Institute nutzt EZRO zur Entwicklung seiner Schulungsmaterialien und hat devIS mitgeteilt, dass sie täglich Tausende von Dollar an Entwicklungskosten einsparen. Als Bonus haben die Leute, die es zur Entwicklung ihrer Kurse nutzen, Freude an der Arbeit und der Nutzung dieses Tools. In keiner anderen Tool-Sammlung haben die devIS-Mitarbeiter eine solche Einfachheit der Implementierung gefunden.

Über die Autoren

Andy J. Williams Affleck ist der Projektmanager für EZRO und M. Adam Kendall ist der leitende Entwickler des Projekts. Andy hat einen Ed.M. vom Programm "Technology in Education" an der Harvard Graduate School of Education und verfügt über langjährige Erfahrung in der Entwicklung von Lösungen für Online-Lernen und -Lehren. Adam ist der Gründer von zopelabs.com, hat einen BFA in Digital Design und über 9 Jahre Erfahrung in der Webprogrammierung.