Chapitre 1. Architecture de OpenLaszlo

Table des matières

1. Modes de déploiement
2. Client et Server : synopsis
3. Architecture de Laszlo côté Serveur
3.1. Compilateur d'interface (Interface Compiler)
3.2. Gestionnaire de données (Data Manager)
3.3. Gestionnaire de connection permanente (Persistent Connection Manager)
3.4. Cache
4. Architecture du Client Laszlo
4.1. Système d'événements (Event Manager)
4.2. Chargeur/Connecteur de données (Data Loader/Binder)
4.3. Système de mise en page et d'animation (Layout and Animation System)
4.4. Services système (OpenLaszlo Services System)
5. Flux de données des applications OpenLaszlo avec proxy
6. Modèle de Sécurité
7. Disponibilité sur plusieurs types d'appareils
8. Accessibilité

OpenLaszlo est une platforme de création de clients Internet riches à la fois faciles à développer et à déployer. L'architecture du système OpenLaszlo mélange la puissance et la facilité d'utilisation de l'architecture client/serveur avec les avantages en administration et en réduction des coûts des applications web. 

1. Modes de déploiement

Les applications OpenLaszlo peuvent être mises à disposition sur le web de deux façons :

  • Proxy. Le Serveur OpenLaszlo tourne sur votre machine et :

    • Compile les programmes sources quand nécessaire et envoie les binaires à exécuter sur le poste client,

    • Sert de proxy entre le poste client et d'autres serveurs sur Internet, avec éventuelle manipulation de données.

  • SOLO. Le compilateur OpenLaszlo est utilisé pour "précompiler" les programmes. Les binaires résultant sont placés sur le serveur. Quand le client exécute l'application, celle-ci contacte d'autres serveurs directement sans utiliser le serveur OpenLaszlo en tant que médiateur. On appelle ce mode de déploiement "sans serveur", ou "standalone". 

Les chapitres suivants expliquent en détail la différence entre les mode Proxy et Solo. De façon générale :

  • Les applications de type Proxy peuvent faire un certain nombre de choses supplémentaires par rapport aux applications Solo. Par contre, elles sont plus difficiles à déployer et réagissent parfois plus lentement. 

  • Les applications de type SOLO sont plus faciles à déployer et ont parfois de meilleures performances.

La plupart du temps, vous n'avez pas besoin de décider du mode de déploiement jusqu'à ce que vous soyez prêt à déployer, et le mode par défaut est généralement sans proxy (solo). En lisant les explications qui suivent, gardez à l'esprit que quand vous déployez vos applications de façon statique (solo), les fonctionnalités propres au Serveur OpenLaszlo (comme le décodage de médias ou le gestionnaires de connections permanentes) ne sont pas disponibles .

2. Client et Serveur : synopsis

Le Serveur OpenLaszlo est une application Java qui s'exécute dans un conteneur de servlets J2EE. Le Serveur OpenLaszlo peut communiquer avec d'autres serveurs et sources de données en utilisant un grand nombre de protocoles. Les applications OpenLaszlo écrites en LZX sont compilées par le Serveur OpenLaszlo et rendues disponibles en tant que bytecode pour le plug-in qui fonctionne dans le navigateur du poste client. Cela constitue le "front end". L'environnement d'exécution actuellement supporté, le plug-in Flash 5 ou plus, fonctionne de façon similaire et fiable sur un grand nombre de systèmes d'exploitation et de matériels, dont Windows, Pocket PC, Mac OS, Linux, Solaris et un grand nombre d'appareils mobiles ou tout intégrés. Le Serveur OpenLaszlo génère du bytecode au format SWF reconnu par le lecteur Flash de Macromedia (version 6 ou plus). Rien dans l'architecture OpenLaszlo n'est cependant liée à Flash. Dans le futur, OpenLaszlo pourrait utiliser d'autres clients d'exécution. (NdT Au moment où ce document a été traduit, OpenLaszlo venait juste de rendre possible la génération pour clients Ajax en plus de la génération pour clients Flash).  

Dans l'environnement OpenLaszlo, le client désigne l'application LZX qui s'exécute dans le navigateur de l'utilisateur, et le serveur désigne le Serveur OpenLaszlo (qui peut lui-même communiquer avec d'autres serveurs). Le client LZX et le Serveur OpenLaszlo communiquent en utilisant HTTP; le Serveur OpenLaszlo envoie du bytecode et l'application LZX envoie du XML. 

Toutes les fonctionnalités supplémentaires de la plateforme OpenLaszlo, dont le streaming de médias et la mise à jour, s'appuient sur HTTP et HTTPS. Les applications qui s'appuient sur OpenLaszlo peuvent ainsi rester compatibles avec les pare-feux d'entreprise. C'est une fonctionnalité critique pour les applications Internet publiques. 

Figure 1.1. Architecture Client-Server de Laszlo

Laszlo Client-Server Architecture

3. Architecture de Laszlo côté Serveur

Le Serveur OpenLaszlo s'exécute dans un serveur d'applications standard J2EE ou un conteneur de servlets Java avec JRE 1.3 ou supérieur. Ces environnements montent très bien en charge ainsi que le Serveur OpenLaszlo lui-même. Les applications OpenLaszlo fonctionnent sur tous les systèmes d'exploitations qui prennent en charge ces produits. OpenLaszlo supporte Windows, Solaris, Linux et Mac OS X.

Le Serveur OpenLaszlo est composé de cinq sous-systèmes principaux :

  • le Compilateur d'interface (Interface Compiler)

  • le Transcodeur de médias (Media Transcoder)

  • le Gestionnaire de données (Data Manager)

  • le Gestionnaire de connection permanente (Persistent Connection Manager)

  • le Cache

Figure 1.2. Laszlo Server Architecture

Laszlo Server Architecture

3.1. Compilateur d'Interface (Interface Compiler)

Le Compilateur d'interface est constitué d'un compilateur de balises LZX et d'un compilateur de Script. Le compilateur d'interface peut aussi faire appel au compilateur de médias ou au gestionnaire de données pour compiler des médias ou des données qui sont embarquées dans l'applications.

Les compilateurs de balises LZX et de script transforment la description d'applications par balises et code JavaScript en bytecode exécutable (swf pour Flash) sur le poste client. Ce code est placé dans le cache, d'où il est envoyé au client. Suivant l'application qui est invoquée, il est envoyé soit en tant que fichier .swf, soit en tant que page HTML avec un objet .swf embarqué. 

Le Transcodeur de média convertit tout un ensemble de types de médias en un format unique qui puisse être interprété par le système d'affichage du client. Cela permet aux applications OpenLaszlo d'afficher les types de médias supportés d'une façon unique dans une fenêtre commune, sans faire appel à des applications externes ou interpréteurs supplémentaires. 

Le Transcodeur de média convertit automatiquement les types de données suivants : JPEG, GIF, PNG, MP3, TrueType, et SWF (dessins et animations seulement).

3.2. Gestionnaire de Données (Data Manager)

Le Gestionaire de données est constitué d'un compilateur de données qui convertit toutes les données en un format de données binaire compressé, lisible par les applications OpenLaszlo, et d'un ensemble de connecteurs qui permettent aux applications OpenLaszlo de récupérer des données via XML/HTTP. Les applications OpenLaszlo peuvent ainsi s'interfacer sur le réseau avec des bases de données, des services web XML, et des fichiers ou exécutables sur des serveurs web.

3.3. Gestionnaire de Connection Permanente (Persistent Connection Manager)

Le Gestionnaire de Connection Permanente gère les authentifications et un système de messages temps réel pour les applications qui en ont besoin. Il fournit un système de messagerie et d'avertissement temps-réel, par envoi de données avec HTTP. 

[Warning] Attention

Cette fonctionnalité est provisoire. Elle fonctionne avec une capacité limitée et si elle peut être utilisée pour le développement, nous recommandons de ne pas l'utiliser en production (sauf peut-être en cas de faible charge et pour des besoins non critiques). Prenez contact directement avec Laszlo Systems si vous avez des questions sur la robustesse d'une application qui utiliserait cette version du gestionnaire de connections.

3.4. Cache

Le Cache contient les versions récemment compilées des applications. La première fois qu'une application OpenLaszlo est appelée, elle est compilée et le fichier SWF résultant est envoyé au client. Une copie est également mise en cache sur le serveur, pour que des demandes suivantes n'aient pas besoin d'attendre la compilation.

4. Architecture du Client Laszlo

L'architecture du client Laszlo est constituée de la Bibliothèque OpenLaszlo Temps-Réel (OpenLaszlo Runtime Library : ORL), une bibliothèque incluse dans toute application OpenLaszlo qui fournit des services temps-réel (comme par exemple une horloge ou une fonction d'attente) et un système de rendu pour visualiser les graphismes 2D et faire entendre les sons. Aucune de ces classes ne repose sur des services Flash ou n'utilise le modèle objet de Flash. Le lecteur Flash est seulement utilisé comme un système de visualisation. 

Figure 1.3. Architecture du Client Laszlo

Laszlo Client Architecture

Exemple 1.1. Application Vide

<canvas/>

Quand cette application fonctionne, même si elle ne "fait rien", elle maintient néanmoins une connection avec le serveur, et toutes les fonctionnalités nécessaires pour faire fonctionner une application LZX ont déjà été chargées. 

Il y a principalement quatre composants dans la Bibliothèque OpenLaszlo Temps-Réel (ORL) : le Système d'événements, le Chargeur/Connecteur de données, le système de mise en page et d'animation et un ensemble de Services Système. 

4.1. Système d'événements (Event System)

Le Système d'événements reconnaît et prend en charge les événéments tels que les clics de boutons de souris ou les envois de données par le serveur. Ce composant permet une programmation standard d'événements sur le client. Par rapport aux applications Internet classiques, les applications OpenLaszlo réduisent la charge des serveurs en permettant aux applications clientes de trier, traiter et valider avec un affichage dynamique suivant l'état de l'application.

4.2. Chargeur/Connecteur de données (Data Loader/Binder)

Le Chargeur de données se place en contrôleur de données, en acceptant les flux de données réseau sur Serveur OpenLaszlo et en les connectant aux éléments graphiques d'affichage tels que les champs de texte, les formulaires et les éléments de menus.

4.3. Système de mise en page et d'animation (Layout and Animation System)

Le Système de mise en page et d'animation fournit aux applications OpenLaszlo un système de mise en page basé sur des contraintes entre les éléments graphiques ainsi qu'un système d'animations des changements d'états dans l'interface. Ce composant vous permet de construire une interface dynamique avec très peu de programmation. Cela vous permet de positionner un nombre variables d'éléments graphiques en utilisant un positonnement relatif ou absolu par pixels. Quand les animations fonctionnent, les mises à jour de l'interface se font d'une façon continue, laissant bien apparaître à l'utilisateur les changements.

4.4. Services Système OpenLaszlo

Le Système temps-réel OpenLaszlo inclut le support d'horloges (timers), de son et de fenêtres modales. 

5. Flux de données des applications OpenLaszlo avec proxy

Cet exemple utilise une applications OpenLaszlo du serveur appelée weather.lzx. Le diagramme qui suit illustre comment cette application s'exécute sur le serveur OpenLaszlo.

Figure 1.4. Flux de données de l'application Laszlo "Weather"

Laszlo Application Data Flow diagram for the Weather Application

Commençant par l'utilisateur validant l'adresse URL de l'application Weather, ce diagramme illustre la séquence d'échanges de données entre le client et le serveur, avec mise à disposition des données par un Service Web XML, et renvoi au client. 

Dans les applications OpenLaszlo, la couche de présentation s'exécute sur le poste client et reste séparée de la couche métier. Le Serveur OpenLaszlo envoie les données dans un format binaire compressé plutôt que dans un format texte, ce qui permet de réduire les échanges par rapport aux applications HTML ou autres applications Web. Le système de cache à la fois sur le serveur et le client permet de réduire les exécutions de code et les transmissions.

6. Modèle de Sécurité

La plateforme OpenLaszlo supporte le protocole sécurisé SSL. Les transmissions de données à travers Internet peuvent être cryptées en utilisant SSL et HTTPS. Les applications OpenLaszlo s'exécutent sur le poste client dans le bac à sable (sandbox) du lecteur Flash, et ne peuvent pas écrire sur le système local de fichiers ou accéder à l'environnement du poste client. 

Les services web et bases de données utilisées par une application OpenLaszlo sont aussi sécurisées en utilisant un modèle d'authentificaiton par utilisateur. Ce mécanisme permet d'éviter l'utilisation du Serveur OpenLaszlo comme d'un proxy ou passerelle vers des services ou données non sécurisées. 

7. Disponibilités sur plusieurs types d'appareils

L'architecture OpenLaszlo est conçue pour être disponibles sur plusieurs types d'appareils. Son système de mise en page dynamique permet à la plateforme de faire des modifications intelligentes comme la taille totale de l'affichage. Cela facilite le travail nécessaire pour adapter une application à différents types de matériels et tailles d'écrans.

Tous les affichages dans les applications OpenLaszlo utilisent des animations basées sur le temps et non sur un nombre d'images, ce qui permet ainsi de s'adapter de façon transparente aux différences de rapidité des processeurs suivant les matériels. Une transition d'interface définie comme devant durer 500 millisecondes durera 500 millisecondes, indépendamment du nombre d'images affichées - les animations sur processeurs rapides auront plus d'images et seront plus fluides mais garderont la même durée de transition. 

8. Accessibilité

OpenLaszlo supporte en partie la spécification Microsoft Active Accessibilty qui dit : "en utilisant 'Active Accessibility' et en suivant des règles de graphisme accessible, les développeurs peuvent rendre les applications fonctionnant sous Windows plus accessibles à beaucoup de personnes ayant des capacités visuelles, auditives ou motrices réduites." Pour aller plus loin, lisez le Chapitre 14, Structure des programmes. Ce support implique l'installation de logiciels tiers sur la machine cliente, et ne s'adresse qu'aux personnes affichant les applications Laszlo avec le lecteur Flash sous Internet Explorer.