Aller au contenu

Utilisateur:Babiberradakhalid/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

VDOM(Visual Dynamic Object Model) est une technologie inventée par Nicolas Korboulewsky en 1997 et qui a fait l’objet d’un dépôt de brevet en Août 1999. Elle a pour objectif d’apporter à l’industrie des applications Web une approche orientée composant, autorisant la réutilisabilité de code et simplifiant les processus de création d’applications Web et leur maintenance. Elle fonctionne de concert avec d’autres technologies qui sont E²VDOM (Enhanced Event VDOM) & WHOLE (Web Hyper Object Linking & Embedding).

La mise en œuvre de la technologie se fait au travers d’un serveur d’applications (VDOM) (Figure 1) communicant vers l’extérieur au travers du protocole HTTP.

La technologie VDOM se base sur le concept de composants logiciels, il s’agit de définir des éléments d’interface utilisateur encapsulant la logique de leur comportant associé à des attributs qui sont statiquement définis lors de la création de l’application mais dont la valeur peut être modifiée dans le temps.

D’autre part un composant logiciel VDOM peut interagir avec l’utilisateur via l’émission d’évènements (cependant la couche événementielle est plus précisément définie par la technologie E²VDOM).

La technologie VDOM n’impose pas le langage d’implémentation de la logique comportementale du composant, pour des raisons de simplicité d’implémentation celui-ci est normalement le même que le serveur d’application VDOM associé au composant. Dans sa version actuelle le langage est python.

Un composant VDOM de façon pratique est stocké sous la forme d’un fichier XML qui contient l’ensemble des caractéristiques de celui-ci, bien que ce fichier puisse être généré à la main, un logiciel permet de le générer plus facilement. Ce logiciel se nomme VDOM Type editor.


450

Figure 1 : Le logiciel permettant de générer le fichier XML d’un VDOM Type

Par analogie aux langages orientés objets, ce fichier XML est nommé VDOM Type, qui est équivalent au fichier de classe des LOO. Chaque fichier est utilisé par le serveur d’application VDOM pour instancier les objets se trouvant dans une application VDOM.


Les composants VDOM - Modèle

[modifier | modifier le code]

Il y a eu 2 évolutions majeures de l’implémentation de modèle de composant VDOM, la première qui allait avec la V1 du serveur d’application crée en 1998 et le nouveau modèle plus complet et implémentant tous les concepts de la technologie VDOM réalisé à partir de 2007.

Le premier modèle était basé essentiellement sur un principe d’encapsulation du comportement du composant au travers de ses attributs, le modèle de la version 2 apporte les améliorations suivantes :

  • Différenciation du modèle en 2 sous type, composant container et composant terminaux.
  • Support natif du multilingue
  • Fichier XML autosuffisant pour la description complète du composant.
  • Support du rendu des composants en fonction de la technologie du composant contenant ex : HTML, Flash, PDF, etc …
  • Création dynamique des composants lors du runtime.
  • Langage de description des applications en XML.


Les composants VDOM de type conteneur

[modifier | modifier le code]

Un composant VDOM de type conteneur est par définition un composant pouvant englober plusieurs autres composants, il définit aussi le type de rendu que les composants contenus doivent réaliser. Néanmoins tous les conteneurs ne définissent pas de façon explicite un nouveau type de rendu, dans ce cas celui-ci hérite du conteneur parent.

Dans cette catégorie de composants il existe 2 sous type, les Top Level Container (TLC) et les conteneurs simples. Ils se différencient par le fait d’être accessible ou non par une URL.

Pour créer une application web par exemple on utilisera des composants de type HTML Container.

Liste des composants VDOM de Type Top Level Container au 14/07/2013

HTML Container

Ce composant permet de créer des pages HTML.

Db Schema

Ce composant permet de stocker les informations d’une base de données relationnelle.

Desktop application

Ce composant stocke les données utilisées par la machine virtuelle VDOM Application Launcher, ce système permet de lancer des applications de type Windows, Mac OS, ou Linux qui ne sont pas installées en local mais qui sont directement chargées depuis l’application Web.

Ce composant ne peut contenir que des composants terminaux de type Desktop Form & Desktop Script.

Fichier:VDOM Type Desktop Application Icon.png

Desktop Shared

Ce composant permet de partager des ressources communes aux applications lancées par la machine virtuelle VDOM Application Launcher.

Full Text Index

Ce composant permet de gérer la base de données d’indexation plein texte. Il ne contient aucun composant terminal.

License Container

Ce composant permet de gérer le licensing de l’application en accord avec le système central de gestion PIS. C’est-à-dire de savoir si cette application peut être installée ou non sur le serveur d’application VDOM. Il ne contient aucun autre composant.

PrintToWeb Container

Ce composant permet de gérer le stockage des applications utilisées dans le cadre de la technologie PrintToWeb qui est un driver d’impression générique programmable permettant de transmettre les données d’impression à l’application VDOM. Il ne supporte que deux objets terminaux : PrintToWeb Action & PrintToWeb Script

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

Composant special permettant d’implémenter le protocole WebDAV dans une application VDOM. Il ne contient aucun autre composant.

XML Container

Ce composant permet d’exposer une structure XML via l’accès à une URL. Il ne contient aucun autre composant.

Tableau 1 : Liste des TLC disponible lors de la rédaction


La structure inter TLC (Top Level Container)

[modifier | modifier le code]

La technologie VDOM étant versatile, elle a été créée pour pouvoir produire aussi bien des applications Web que des sites Web. Dans ce dernier cas, contrairement aux applications, il existe une navigation entre page web, dans le cas de la technologie VDOM un site Internet est un ensemble de TLC de type HTML qui représente les pages. Pour représenter cette navigation entre pages une application VDOM contient dans sa description des liens entre les conteneurs comme on peut le voir sur la Figure 2.


Figure 2 : Structure d’une application VDOM


Ces liens sont organisés en niveaux visible ici par des couleurs différentes, ceci permet de différencier plusieurs chemin de navigation. Les chiffres permettent de définir un ordre lors de l’affichage via un composant VDOM.


Liste des composants VDOM utilisant la structure au 14/07/2013

Menu

Génère un menu basé sur la structure inter TLC.

Breadcrumbs

Ce composant permet de créer un élément d’interface utilisateur nommé fil d’Ariane, il calcule le chemin depuis le TLC de niveau le plus haut jusqu’au TLC affiché en fonction de la structure.

Tableau 2 : Liste des composants VDOM utilisant la structure


Les composants VDOM de type terminaux

[modifier | modifier le code]

Ces composants, contrairement aux précédents, ne peuvent contenir aucun autre composant. Chaque composant terminal doit être contenu dans un composant conteneur qu’il soit TLC ou non. Tous les composants terminaux ne peuvent pas être contenus dans tous les conteneurs, cependant ils ne dépendent pas non plus forcément que d’un seul conteneur. C’est le conteneur qui informe le composant terminal sur la manière de calculer sont rendu.

Par exemple pour un composant Image, s’il se trouve dans un conteneur de type HTML il devra générer un flux de caractères qui représentera une chaine HTML pour y être intégré, si le conteneur est de type FLASH, il fournira une structure qui pourra au travers du mécanisme du conteneur être compilé in fine en des données exploitables par un player Flash.

Il existe une hiérarchie d’héritage dans les composants VDOM qui est la suivante :

  • Composants VDOM génériques
    • Composants VDOM sans Interface Utilisateur
      • Composants VDOM avec Interface Utilisateur
        • Composants VDOM avec Interface Utilisateur piloté par les données.

Comme nous l’avons vu précédemment, une des caractéristiques principales des composants VDOM est de pouvoir définir leur comportement via un ensemble d’attributs qui sont lors de la conception de l’application définis statiquement, la figure ci-dessous représente l’interface (dans l’IDE) des attributs d’un composant de type Image.


Figure 3 : Interface de gestion des attribues d’un composant dans l’IDE (VDOM IDE)

L’autre façon de décrire une application est d’utiliser le VDOM XML, il s’agit d’une représentation XML de la hiérarchie de composants dont chaque Tag représente un composant avec un nom qui est défini lors de la création du type VDOM Cf Figure 1.

  1. <CONTAINER name="container_puzzle_home" zindex="5" hierarchy="5" top="97" height="402" width="971" left="0">
  2. <IMAGE name="puzle" hierarchy="2" value="2d26cd66-368c-42a1-998e-8b9f03ac3c94" height="357" zindex="2" width="956"/>
  3. <IMAGE name="ombre" hierarchy="1" top="337" value="31845f1f-a09b-4d78-91f8-5adb4a40e04c" height="44" zindex="1" width="865" left="25"/>
  4. <BUTTON name="button_download" image="e9dfee18-cad5-4c73-9498-872c9f837233" height="77" containerlink="0cad1257-4f60-4166-aaf3-f3e28e2796aa" top="194" zindex="20" width="192" left="718"/>
  5. </CONTAINER>
Figure 4 : Exemple de VDOM XML


VDOM Class : Création de composants VDOM à partir de composants VDOM natif.

[modifier | modifier le code]

Une des caractéristiques les plus intéressantes de la technologie VDOM est la possibilité de créer des composants à partir d’autres composants. Les composants VDOM chargés au démarrage par le serveur (VDOM Type) sont dit natif et les autres sont dit composites.


Liste des composants VDOM natif utilisé pour créer des composants composites

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.

VDOM Class

Le composant VDOM natif permettant de créer de façon visuelle un nouveau composant composite à base de composants VDOM natifs.

Object View

Le composant VDOM natif permettant d’instancier des composants VDOM composites définis par le composant VDOM Class et la source de données associée. A noter que ce composant gère le chargement Dynamique.

Tableau 3 : Liste des composants VDOM utilisé pour la création de composants composites.


Le principe de fonctionnement est le suivant, lors de la définition du composant VDOM Class, la méthode (script associé à l’instance de la classe) ‘onload’ est automatiquement appelée, comme pour tout composant VDOM. Dans cette méthode est définie l’association des données transmises par le composant VDOM Object View pour chaque instance. Les données transmises peuvent être de tout type à partir du moment où elles existent sous forme sérialisée, la plus part du temps une structure JSON est utilisée. L’instance ainsi crée affecte alors aux composants VDOM natifs leur valeur pour une instance donnée. Les mécanismes de gestion de l’affichage des instances sont définis par le composant VDOM Object View.

Nous allons illustrer ce principe dans le cas concret d’un logiciel de gestion de contacts réalisé en technologie VDOM.

Figure 5 : Instanciation d’une Classe VDOM


'''' Figure 6 : Instanciation multiple grâce au composant VDOM Object View

La figure 5 nous montre comment la Classe définie à droite s’instancie et propose le rendu d’une fiche de contact, la classe est composée d’un composant Image & de plusieurs composants Texte, chacun de ces composants reçoit lors de l’instanciation les valeurs qu’il doit utiliser pour calculer le rendu. L’illustration d’instanciation multiple est présentée Figure 6 grâce au composant Object View.


Application VDOM

[modifier | modifier le code]

Une application VDOM est par définition un logiciel utilisant la technologie VDOM. Physiquement une application VDOM est un fichier XML qui contient l’ensemble des données qui la représente. Pour fonctionner l’application VDOM nécessite un serveur d’applications VDOM.

L’avantage d’avoir un seul fichier décrivant l’ensemble de l’application est la facilité de déploiement de cette application, contrairement aux serveurs Web classiques qui nécessitent un grand nombre de fichiers qu’il n’est souvent pas facile de déployer.


Un composant VDOM de type conteneur est par définition un composant pouvant englober plusieurs autres composants, il

Ce fichier XML est architecturé autour de plusieurs sections qui représentent chacune une partie de l’application :

Structure d’un fichier XML d’application VDOM

<Information>

Cette section fournit un ensemble d’informations sur l’application comme son nom, son ID, la version du serveur d’application requise le langage utilisé.

<Objects>

C’est là que se trouve la structure hiérarchique des composants VDOM instanciés avec une référence au Type VDOM natif formant l’application, chaque enfant représente un TLC équivalent pour une application HTML à une page, puis les enfants des TLC représentent son contenu.

<Actions>

Dans ce tag sont stockés les scripts associés, seul les composants conteneurs possèdent un ensemble de script.

<E2VDOM>

Une application interagit avec l’utilisateur, cette interaction génère des évènements, ce Tag contient la structure évènementielle : Evènement -> Action relative à cette application. Cette partie correspond à la technologie E²VDOM.

<Librairies>

Pour augmenter la réutilisabilité du code, un mécanisme de librairie est implémenté, c’est dans ce tag que sont stockées toutes les librairies.

<Structure>

Comme nous l’avons vu précédemment une application VDOM stocke une notion de structure de l’application qui est définie par une relation orientée entre TLC. C’est dans ce tag que ces informations sont stockées.

<Resources>

Une application VDOM est auto-suffisante, ce qui signifie que l’ensemble des informations doit se trouver dans le fichier d’application y compris les données binaires telles que les images. La section ressources permet de les stocker, le format XML n’étant pas binaire un encodage en BASE 64 des données binaires est effectué.

<Databases>

La plateforme VDOM Box fournit au serveur d’application VDOM une solution intégrée de base de données permettant de les stocker dans une structure de type base relationnelle. Cette base est sqlLite qui représente l’ensemble des données en un unique fichier binaire. Il est stocké dans cette section encodée en BASE64.

<Security>

Le serveur VDOM possède un mécanisme d’accès à ses données internes soit pour l’utilisation via des API ou autres transferts contrôlés par une ACL (Access Control List). Chaque instance de composant possède sa propre ACL ainsi que l’application. Pour ne pas avoir en permanence à redéfinir des comptes génériques comme celui utilisé dans le cadre de la technologie WHOLE pour fournir des API, l’application permet d’automatiquement créer les comptes dans le serveur. Ces données sont stockées dans cette section.

Tableau 4 : Structure d’une application VDOM


La logique applicative des applications est implémentée sous forme de scripts qui sont attachés aux composants VDOM de type conteneurs. Ces scripts sont évalués dans le serveur d’application lors d’un évènement générer par l’utilisateur (via la technologie E²VDOM) ou appelés de façon distante (via la technologie WHOLE).

Les résultats sont bien sur différents. Dans le premier cas le script aura pour but la plupart du temps de modifier dynamique le rendu d’un composant VDOM en changeant ses attributs, le second devra retourner des données sérialisées.

La technologie VDOM ne définit aucun langage en particulier à utiliser dans ces scripts, cependant celui-ci dépend de l’implémentation associée dans le serveur d’application VDOM. Il existe sur la version actuelle du serveur deux langages utilisable :

  • Python : C’est le langage natif du serveur, il permet d’accéder à l’ensemble des fonctionnalités.
  • VScript : Il s’agit d’un langage spécifique (VDOM Script) inspiré de VB Script, le serveur possède un compilateur qui compile VScript > Python. Le compilateur est aussi disponible sous forme de composant logiciel interne lorsque l’application est développée en Python, il permet ainsi de fournir une solution de scripting aux applications VDOM écrites en python.


VDOM Application Launcher : Une machine virtuelle pour application Desktop

[modifier | modifier le code]

Pour pallier aux limitations intrinsèques des applications Web qui sont l’impossibilité d’interagir avec le système hôte ou de lancer des processus en arrière-plan.

Le principe de VDOM Application launcher est de charger depuis l’application Web des scripts qui seront exécutés en local sur la machine hôte. Le moteur de script utilisé est QtScript, il implémente le langage ECMAScript (qui sert de base à JavaScript). Ce moteur permet de gérer des interfaces utilisateurs, ce qui permet de réaliser des applications complètes. Un environnement de développement dédié existe pour créer de telles applications, il se nomme VDOM Script Editor.

Outils de développement

[modifier | modifier le code]

Pour donner vie à une technologie, tout un écosystème est nécessaire. Les outils de développement sont une des pierres angulaires de celui-ci. La plateforme VDOM Box dispose de 3 produits majeurs.

Créer des applications VDOM directement depuis une structure XML n’est évidemment pas envisageable, pour que cette opération soit rendue possible l’IDE a été au cœur de la conception de la technologie VDOM. En effet le rendu WYSIWYG est absolument nécessaire, ainsi les composants VDOM disposent en natif d’une capacité à générer une structure XML interprétable par l’IDE représentant le composant dans un environnement WYSYWYG.


VDOM IDE Screen shot
Editeur WYSYWYG

Gestion des évènements

g Editeur de scripts

Gestion des bases de données


VDOM Script Editor

[modifier | modifier le code]

Il existe un autre IDE qui se nomme VDOM Script IDE, il permet de développer les applications intégrées à l’application Web qui fonctionne dans l’environnement de la machine virtuelle VDOM Application Launcher ou le driver générique d’impression PrintToWeb.


'VDOM IDE Screen shot

Editeur de Script mode VDOM Application

Editeur d’UI mode VDOM Application


Cet IDE permet de concevoir de véritables applications qui soient multiplateforme. En effet, le moteur de script crée une couche d’abstraction entre l’OS et l’application qui permet de ne pas avoir à se soucier de celui-ci.

PowerPack Builder

[modifier | modifier le code]

Une technologie qui a pour but de créer des applications Web pour une plateforme nécessite un système de déploiement et de configuration. Si nous prenons Windows, les applications pour cet OS sont installées via ce que l’on nomme des Installeurs. Ceux-ci ont pour tâche d’automatiser un certain nombre d’opérations de déploiement sur l’OS et de configuration.


Une application Web déployée sur une plateforme est de la même manière susceptible d’avoir des mécanismes de déploiement automatisé.

Dans le vocable VDOM, une application intégrée dans un installer est appelée PowerPack. Pour créer ces installeurs il existe un outil qui se nomme PowerPack Builder. Celui-ci permet de créer des scénarios de déploiement sur la plateforme VDOM Box et de générer l’installeur associé. L’installeur est généré en technologie FLASH/ Adobe Air qui le rend multiplateforme mais aussi intégrable dans des sites Internet et construire des Market Place.


PowerPack Installer

Serveur d’application VDOM

[modifier | modifier le code]

Le serveur d’application VDOM

[modifier | modifier le code]

Fichier:Plateforme VDOM BOX 2.png

Figure 2 : Schéma du serveur d’application VDOM


LIENS DE RÉFÉRENCE :

https://www.facebook.com/VDOMCommunity?fref=ts

http://www.vdom-box-international.com

http://www.cybertronique.com/accueil.vdom

http://meetingburkina-fr.vdom.net/TempSite/3055.asp?rang=

http://www.vdombox.ru/home.vdom

http://technical.training.vdom.net/TempSite/3296.asp?rang=

http://www.fpc.fr/vente-en-ligne/product.php?id_product=3583

http://blog.technopark.ma/?p=124

http://www.bgtronic.com/TempSite/260.asp?rang=

http://www.vdom-box-international.com/Images/S87/Article_VDOM_Box_ENG-1.pdf

http://www.vdom-box-international.com/Images/S87/COMMUNIQUE-DE-PRESSE-RUSSIE-NANO.pdf

http://www.vdom-box-international.com/Images/S87/COMMUNIQUE-DE-PRESSE-RUSSIE-SCHOOL-PROJECT.pdf

http://www.vdom-box-international.com/Images/S87/COMMUNIQUE-DE-PRESSE-RUSSIE-PROJET_RECHERCHE.pdf