Die zen Platform ist einerseits eine J2EE-Entwicklungsumgebung und andererseits eine Laufzeitumgebung, die als Middleware die komplexen technischen Schnittstellen der J2EE-Spezifikation kapselt und über eine vereinfachte und flexible Abstraktionsschicht zur Verfügung stellt. Sie besteht im Kern aus dem zen Developer, in dem zen-Anwendungen modellbasiert entwickelt werden, einem datenbank-basierten Repository, in dem die Anwendungsmodelle abgelegt werden und schließlich der zen Engine als Laufzeitsystem, die diese Anwendungsmodelle ausführt.
Der Workflow einer Anwendung existiert zu jeder Zeit nur als Modell, ebenso die Datenstrukturen, das Wissen um die korrekte Verknüpfung von Datenstrukturen und Geschäftslogik wie auch alle Verknüpfungen mit Ressourcen. Das Anwendungsmodell wird mit dem zen Developer definiert. Eine zen-Anwendung wird daher nicht wie eine normale Anwendung kompiliert, sondern zur Laufzeit durch die zen Engine im Rahmen der Modelldefinition ausgeführt. Gerade aus der hohen Flexibilität und Dynamik, die sich daraus ergeben, resultieren die zahlreichen Vorteile der zen Platform. Der zen Developer ist als Plugin in die weit verbreitete und freie Java-IDE » Eclipse integriert.
Die zen Engine liest die mit dem zen Developer erstellten Anwendungsmodelle aus der Datenbank (dem Repository) und kann dann Anfragen von Clients entgegennehmen. Ein Client kann beispielsweise ein Web-Browser oder eine beliebige Anwendung sein, die mit einer zen-Anwendung über eine Web-Service-Schnittstelle kommuniziert. Die Anfrage wird von der zen Engine abhängig vom jeweiligen Workflow- und Datenzustand und der damit verknüpften Geschäftslogik bearbeitet.
Grundvoraussetzung für den Einsatz der zen Engine ist ein beliebiger Servlet-Container. Dieser ist bei vielen (nicht unternehmenskritischen) Anwendungen für den produktiven Einsatz ausreichend. Die zen Engine abstrahiert von den technischen Schnittstellen der Enterprise JavaBeans Spezifikation (EJB), daher kann sie ebenso über einen Cluster von Applikationsservern skalieren. Hierzu muß nur die Konfiguration der zen Engine angepaßt werden, die Modelle und die Anwendungslogik werden durch die Skalierung nicht beeinflußt.
Aus technischer Sicht ist die zen Platform eine Multi-Tier-Architektur. In den meisten Fällen stellt der Web-Container das Frontend des Systems dar, Validierungen und Geschäftslogik werden komplett im Backend (J2EE-Applikationsserver) ausgeführt. Für nicht unternehmenskritische Anwendungen oder Anwendungen mit geringer Last kann das Backend aber ebensogut im Web-Container ausgeführt werden: Die zen Platform simuliert in diesem Fall, ebenso wie in der Entwicklungsphase, den EJB-Container.
Die Darstellungsschicht (Presentation Layer) erhält am Ende eines Request-Response-Zyklus die Ausgabedaten in XML. Die Daten werden anschließend durch eine XSL-Transformation auf Basis eines Stylesheets ins gewünschte Zielformat übertragen. Da die zen Platform strikt zwischen Frontend und Backend beziehungsweise zwischen Darstellungsschicht und Anwendungslogik trennt, wird es möglich, Anwendungen durch einfachen Austausch des Stylesheets an beliebig viele verschiedene und voneinander unabhängige Ausgabekanäle zu koppeln, ohne die Geschäftslogik der Anwendung zu beeinflussen.
Die Auswahl des Stylesheets kann auch dynamisch erfolgen, daher ist es für die gleiche Anwendung ohne weitere Modifikation möglich, verschiedene Ausgabeformate zu bedienen. Durch den Austausch des Frontends können sogar unterschiedliche Protokolle an die gleiche Anwendung gekoppelt werden, ohne die Anwendung daran anpassen zu müssen. Die vorhandenen Ausgabeformate umfassen derzeit XML, HTML, TEXT, WML(WAP) und PDF. Sie sind zudem beliebig erweiterbar.