JSP-Turbo für das Internet! - XML Web CMS mit höchster Performance

Veröffentlicht am

Version 2 des XML Web Content Management Systems XIST4C der LivingLogic AG

Im Rahmen der Entwicklung von Version 2 des LivingLogic XML Web Content Management Systems (Web CMS) XIST4C wurde eine neue Technologie entwickelt, die die Auslieferung dynamischer Webseiten erheblich beschleunigt. Die Auslieferung der Webseiten erfolgt mit JavaServer Pages. Deshalb benutzen wir den Ausdruck JSP-Turbo für das Internet.

Das neue Release des XML Web Content Management Systems XIST4C beinhaltet nun folgende neue Features:

  • Pflege des Contents über den hierarchischen Baum der Sitemap
  • einfach änderbare Templates
  • Umfassende Versionsverwaltung der Beiträge
  • Workflow angepasst auf die Bedürfnisses des CMS (verbesserte Abläufe und Freigabeprozesse)
  • Rechtevergabe über Rollen
  • Das Web Content Management System (Web CMS) beruht vollständig auf XML-Technologie und ist damit Standards-basiert.

Technisch verbindet es die beiden Welten

  • JavaServer Pages (Struts) Elemente und
  • XIST/Python (XIST) Templates

auf die denkbar beste Art und Weise. Dies gilt für

  • die Effektivität der Template-Erstellung und
  • die Geschwindigkeit der Seitenauslieferung (JSP-Turbo).

Hintergrund der Technik

Hinter der Technologie steckt, dass mit XIST die Templates vorübersetzt werden und nur die wirklich notwendigerweise dynamischen Teile in JSP realisiert sind. Damit kann genau so schön wiederverwendbar gearbeitet werden wie man es von JSP-Taglibraries gewohnt ist. Allerdings hat man den grossen Vorteil, dass die Umsetzung der Tags nicht mehr dynamisch bei jedem Zugriff erfolgt, sondern einmal bei der Templateübersetzung passiert ist. Nur noch die dynamischen Teile, die in der Regel aus der Datenbank gespeist werden, werden über JSP eingebunden. Wiederverwendbare Komponenten sind somit möglich, allerdings in Python (XIST) geschrieben, nicht in Java. Mit der Transformationsengine von XIST werden diese Tags dann durch einen Vorverarbeitungsprozess in statische Elemente umgesetzt.

Die Arbeit, die dynamisch zur Laufzeit noch zu tun ist, verringert sich auf das unabdingbar Notwendige. Somit erhält man die bestmögliche Geschwindigkeit für JSP-Seiten! Damit ist der Name JSP-Turbo für das Internet gerechtfertigt :-)

Abgrenzung und Unterschiede zu XSL

Fragen Sie sich, wie sich unser Ansatz, XML, XIST und JSP zu verbinden, von der Kombination XML/XSL abgrenzt? Dazu sei auf folgende zwei gravierende Nachteile von XSL hingewiesen:

  • XSL bietet keine vollständig Programmiersprache, sondern ist Regel-basiert und erlaubt damit keine Ableitung und nur eine sehr eingeschränkte Wiederverwendbarkeit von Teilen des Layouts.
  • Die Umsetzung in HTML erfolgt serverseitig zur Laufzeit. Damit wird eine erheblich höhere Rechenleistung benötigt und die Performance der Seitenauslieferung ist schlechter.

Objektorientiertes Webdesign

Durch diese Technologie wird auch "objektorientiertes Webdesign" möglich.

Was bedeutet objektorientiertes Webdesign?

  • Die Teile des Designs werden in Klassen und Objekte umgesetzt.
  • Die Grundelemente können dadurch wiederverwendet werden (sogar in einem komponentenorientierten Sinn).
  • Es ist möglich, von Templates und Templatebausteinen abzuleiten.
  • Polymorphismus, das Überschreiben von Funktionalitäten wird ebenfalls möglich.
  • Das Parametrisieren der Templates (wie in manchen objektorientierten Sprachen möglich) ist auch bei unserem Vorgehen erlaubt.
  • Die Implementierung erfolgt in objektorientierten Sprachen (Java/Python)
  • Unser strengstes Prinzip lautet: Jede Funktionalität/jedes Feature wird genau an einer Stelle definiert! Dieses Prinzip wird durch objektorientiertes Webdesign erst ermöglicht. Damit wird eine zentrale Änderbarkeit gewährleistet und somit eine erhöhte Wartbarkeit erzielt.
  • Die Kapselung, ein weiteres objektorientiertes Merkmal erfolgt durch die Definition von Tagbibliotheken! Interne Logik wird vor dem Nutzer der Tagbibliothek verborgen. Wohldefinierte Interfaces sorgen für die Kommunikation mit den Tagfunktionalitäten.
  • Design-Templates können voneinander abgeleitet werden.
  • Zur Definition der Templates steht eine komplette objektorientierte Programmiersprache zur Verfügung.

Best of Breed

Insgesamt kann man den Ansatz als "Best of Breed" aus den Welten JavaServer Pages, XML und Python ansehen.

Als Ergebnis erhalten Sie: Eine möglichst grosse Effizienz bei derr Erstellung der Templates durch die Programmierer verbunden mit einer optimalen Geschwindigkeit der Seitenauslieferung. Denn dieser Ansatz ist leichter zu benutzen als JSP (es ist weniger Quellcode zu schreiben) und benötigt keine Stringverarbeitung zur Laufzeit mehr.

Die Vorgehensweise kann auch mit anderen Sprachen (z.B. PHP4, ASP, C#) zur Formulierung der Processing Instructions kombiniert werden. Damit können auch zukünftige Entwicklungen in unseren Ansatz integriert werden.

Das Framework des "JSP-Turbo" wird für das LivingLogic XML Web Content Management System XIST4C konsequent genutzt.