The zen Platform is both a J2EE development environment and a runtime environment functioning as middleware which encapsulates the complex technical interfaces of the J2EE specification and makes them available on a simplified and flexible abstraction layer. At its core is the zen Developer for the model-based development of zen applications, a database-based repository for storing application models and the zen Engine as runtime system which executes the application models.
An application's workflow only exists as a model at any given time, just like the data structures, the knowledge of the connection between data structures and business logic as well as all links to resources. The application model is defined using the zen Developer. A zen application is therefore not compiled like an ordinary application, but executed by the zen Engine during runtime in the course of the model definition. The many advantages of the zen Platform are a result of this dynamism and high flexibility. The zen Developer is integrated as plug-in into the widely used and freely available Java-IDE Eclipse.
The zen Engine reads the application models created with the zen Developer from the database (the repository) and is able to receive client requests. Such a client could be a web browser or any application which communicates with a zen application using a web service interface. The zen Engine processes the request based on the state of the respective workflow and data and the business logic linked with it.
A basic requirement for the use of the zen Engine is a servlet container which is sufficient for the deployment of most (non-business critical) applications. The zen Engine abstracts from the technical interfaces of the Enterprise JavaBeans Specification (EJB) and is therefore also able to be scaled using a cluster of application servers. You only need to adapt the configuration of the zen Engine, the models and application logic remain unaffected by the scaling process.
From a technical viewpoint the zen Platform is a multi-tier architecture. In most cases, the web container constitutes the front end of the system; validations and business logic are executed at the back end (J2EE application server). For applications which are not business critical or not operating at hight load, the back end can also be executed in the web container: In this case, like in the development phase, the zen Platform simulates the EJB container.
At the end of a request-response cycle the presentation layer receives the output data in XML format. Subsequently the data are converted to the desired target format using an XSL transformation on the basis of a style sheet. Since the zen Platform strictly distinguishes between front end and back end, i.e. presentation layer and application logic, it is possible to connect the application to any number of different independent output channels without affecting the business logic of the application, simply by exchanging the style sheet.
The style sheet can be selected dynamically as well; this is why the same application is able to support different output formats without undergoing further modifications. By exchanging the front end, you can even link different protocols with the same application without having to adapt the application. Existing output formats currently include XML, HTML, TEXT, WML(WAP) and PDF, and can be extended at will.