From a development perspective, modern applications today are usually designed and implemented under the MVC (Model View Controller) paradigm. The resulting separation of layers allows a clear layout of the application and simplifies its extension. To a great extent, the quality of the software depends directly on the clear separation of the individual layers.
Even relatively simple applications often have complicated controllers and data models, let alone the complexity of business critical applications. And a clear separation of concerns cannot always be followed through. Especially the view is often not completely detached from the application logic. This increasing complexity turns the maintenance and support as well as the addition of extensions into a very time-consuming and costly venture. The zen Platform overcomes these limitations on different levels.
An application controller controls the entire application flow or workflow of an application. The zen Platform allows the workflow to be graphically modelled using the zen Developer. Since the workflow is executed during runtime by the integrated controller of the zen Platform, the development of the controller will then be already completed. Hence the complexity of the development and maintenance of the controller is reduced to the graphic modelling of the application workflow.
The zen Platform does not integrate the application business logic into the controller. Rather, the business logic is developed and managed separately within workflow driven and data driven operations, thus structuring it according to different concerns and keeping it separate from the rest of the system. Even for sophisticated business critical applications, this allows the business logic to be easily developed, maintained and extended.
Similar to the workflow, the application model is defined graphically in the zen Developer. Usually, the application code for validating the model is directly integrated in the model and therefore dependent on it. This easily makes the validation very complex, since there is no clear separation of model and validation. Changes in the model always entail changes in the data validation. In addition to that, the reuse of data is made more difficult. Therefore the zen Platform separates the model from its validation, so that the data validation is a separate entity of its own which is entirely decoupled from the model.
On the zen Platform, the view, i.e. the presentation layer of an application is completely separated from controller, business logic, model, and data validation. The strict separation of presentation and application logic enables the zen Platform to support any number of output formats on the basis of the same application without having any impact on the application itself. This way, new additional output formats can be added any time without having to adjust the application.
Separation of Concerns