VDOM Technology - VDOMBoxGroup/vdomserver1.3 GitHub Wiki
VDOM (Visual Dynamic Object Model) is a technology invented by Nicolas Korboulewsky in 1997 and patented in August 1999 to be moved to Open Source in 2006 and publicaly published in 2016. The main goal of this technology was to bring to the industry all the main concept of Component oriented design for web based application but with a general extension to any other plateform like Desktop application as well as mobile. The main idear was to save time by encapsulating UI Components into reusable one. This technology is the root part of 2 mores : E²VDOM (Enhanced Event VDOM) to add an event system to the component and WHOLE (Web Hyper Object Linking & Embedding) that define a generic API System for VDOM Based applications.
The implementation of this technology run in an application server (the source code is given here).
VDOM Technology is based on Software components, it consist of visuals components (Class with a rendering method) that encapsulate their own logic define by a set of attributes statically define during the design process if they are part of the general UI or dynamically evaluated by using a description language as XML.
The main job of the application server is to answer to a request by rendering all this components in a target technology (ex HTML) streamed to the client.
Each of the component support events trigged by the user & sent to the event engine of their direct container (or at least this one which difine the rendering technology they use) this is explicitely defined in E²VDOM.
VDOM is not define by any language and virtually any language can be use to implement the application server that implement VDOM technology. But in the case of this implementation we are using Python.
Each software component are stored as an XML file used by the VDOM Application server to rendre the output stream. Even if it's possible to build this file by Hand a software (VDOM Type Editor) is used to simplify the work :
This file is kind of equivalent of Class in OOP, all this files are registered in the Application Server and used to create the instance of the component during VDOM Structure Compilation process.
The implementation of VDOM Technology had 2 majors steps, the first one that came with the V1 of the VDOM Application server made in 1998 and a more advanced version with the actual V2 developped from 2007.
The V1 provided mainly the encapsulation while the V2 enhance it with :
- Semantic separation of the components in 2 sub-types Terminal Component or Container
- Multilingual native support
- Self-consistant description of the component in a single XML file
- True capability to support multi client technology while rendering according to the container (HTML, Flash, PDF, etc, ...)
- Dynamic creation of components at Runtime
- VDOM XML definition for serialized version of VDOM Components.
Liste des composants VDOM de Type Top Level Container au 14/07/2013 | ||
HTML Container |
This component is used to render HTML pages |
|
Db Schema |
This component represent a relational DB |
|
Desktop application |
This component is the container of a VDOM Desktop Application. This application is run by the VDOM Desktop Virtual Application The terminal components of this container are Desktop Form or Desktop Script |
|
Full Text Index |
This is the container of the text indexing specific DB. |
|
License Container |
This component manage the licensing system with the PIS (Partner Information System). It's a top level container but it contain no other component. |
|
PrintToWeb Container |
This component store PrintToWeb application. |
|
VDOM Package |
La technologie VDOM autorise la création de composants composites par assemblage de composants terminaux dans un container spécial nommé VDOM Class. Tous les containers VDOM Class sont regroupés dans un Top Level Container nommé VDOM Package. |
|
WebDAV Container |
This component |
|
XML Container |
Ce composant permet d’exposer une structure XML via l’accès à une URL. Il ne contient aucun autre composant. |