Procédé de développement d'un portail Web, système de mise en œuvre et produit programme d'ordinateur correspondant
DOMAINE TECHNIQUE GENERAL
La présente invention concerne un procédé de développement d'un portail Web, le portail Web étant mis en œuvre localement par un navigateur d'un dispositif.
Elle concerne également un système mettant en œuvre le procédé et un produit programme d'ordinateur correspondant.
ETAT DE L'ART
On connaît des décodeurs dans le domaine des télécommunications.
Un décodeur est un dispositif électronique, relié à un téléviseur, qui convertit des signaux audiovisuels (parfois codés et transmis habituellement par câble coaxial, par ligne téléphonique ou par satellite) sous une forme leur permettant d'être correctement reçus et traités par le téléviseur. Il est ainsi nécessaire d'utiliser un décodeur pour avoir accès à des chaînes ou à des programmes de télévision qu i ne peuvent être d ispon ibles qu'à certaines conditions fixées par un diffuseur ou un distributeur.
En général, le fonctionnement du décodeur est géré grâce à un portail (« portai » en anglais), affiché au moins en partie sur le téléviseur, et permettant notamment une interaction avec un utilisateur du décodeur.
Les portails connus des décodeurs connus utilisent la technologie Web, à savoir une technologie fondée sur l'utilisation des hypertextes et des données hypermédias (c'est-à-dire une extension de l'hypertexte à des données multimédias, permettant d'inclure des liens entre des éléments textuels, visuels et sonores).
La technologie Web permet notamment la recherche d'information dans une arborescence, l'accès à cette information et sa visualisation, grâce à u n navigateu r Web, c'est-à-d ire un logiciel capable d'exploiter les ressources hypertextes et hypermédias.
Un portail connu pour un décodeur connu se présente ainsi comme un site Web, où sont stockées des données accessibles par le navigateur Web,
et proposant notam ment d es l iens entre des i nformation s et d es fonctionnalités.
Le portail est donc constitué d'un point d'entrée (une page d'accueil) et d'un ensemble de modules qui interagissent entre eux et/ou répondent à des événements extérieurs.
Un portail connu est en général créé en utilisant des langages connus de programmation Web, comme par exemple
le langage HTML (HyperText Markup Language), c'est-à-dire un langage de bal isage de texte, qui permet la création de documents hypertextes affichables par le navigateur Web ; le langage Javascript, c'est-à-dire un langage de rédaction de script (un script est un programme constitué d'une suite de commandes dispensant les utilisateurs de les saisir, et permettant d'effectuer une fonction particulière ou de contribuer à l'exécution d'un autre programme), le langage de rédaction
Javascript étant notamment destiné aux utilisateurs non spécialistes, et permettant d'intégrer des instructions préprogrammées dans la construction d'un document Web ; le langage PHP (PHP Hypertext Preprocessor) ;
- les feuilles de style en cascade (ou Cascading Style Sheets
(CSS)), c'est-à-dire des fichiers texte qui contiennent une liste de marqueurs HTML, ainsi que le formatage associé à chacun, et qui permettent de définir avec exactitude la police, la taille, la couleur et la disposition des éléments d'une page Web les uns par rapport aux autres...
En pratique, si un diffuseur ou un distributeur désire développer un portail pou r un décodeu r, il doit monter en interne u ne équ ipe déd iée de développement Web, ou externaliser le développement Web s'il ne possède pas ce type de connaissances ou s'il ne veut pas le développer en interne.
De plus, le développement d'une nouvelle fonctionnal ité par un développeur nécessite la création de pages de tests afin de vérifier le bon fonctionnement du portail. Une fois le développement effectué, l'intégrateur
doit lui aussi créer une page de test et il en va de même pour la partie validation. Ainsi, chaque évolution ultérieure du portail nécessite une étape supplémentaire d'intégration et une étape supplémentaire de validation, qui ne sont pas toujours aisées et qui demandent par conséquent du temps.
De même, une correction de bogue dans le portail ne peut pas être partagée avec d'autres portails, et l'on doit apporter une correction à chaque bogue de chaque portail.
PRESENTATION DE L'INVENTION
L'invention propose de pall ier au moins un de ces inconvén ients, en facilitant le développement de portails.
A cet effet, on propose selon l'invention un procédé de développement d'un portail Web, le portail Web étant mis en œuvre localement par un navigateur d'un dispositif, le procédé étant caractérisé en ce qu'il comporte
- une étape de configuration du portail, selon laquelle une interface d'un ordinateur permet la sélection et l'organisation d'un ensemble de modules de fonctionnalité et/ou de modules de gestion d'événement formant le portail Web, un code stocké sur un serveur étant associé à chacun desdits modules ;
- une étape de compilation, selon laquelle un processeur de l'ordinateur génère, à partir de l'ensemble, un fichier d'instructions pouvant être mises en œuvre par le navigateur ; et
- une étape de déchargement, selon laquelle le processeur décharge le fichier d'instructions et un groupe de codes associés aux modules sur le dispositif.
L'invention est avantageusement complétée par les caractéristiques suivantes, prises seules ou en une quelconque de leur combinaison techniquement possible :
- la sélection des modules de fonctionnalité et/ou des modules de gestion d'événement s'effectue à partir d'une bibliothèque de modules ;
- le processeur génère le fichier d'instructions par l'intermédiaire du serveur comportant un module PHP, le fichier étant en format d'objet orienté web utilisant des technologies W3C, préférentiellement HTML, JavaScript, CSS, XML, XSLT ou CGI ;
- chaque module est construit sous une même structure standard ;
- le fichier d'instructions comporte des instructions selon lesquelles les événements sont gérés par une pile de modules de gestion d'événement ou de modules de fonctionnalités ; et
- le procédé comporte de plus une étape de test du fichier d'instructions avant l'étape de déchargement.
L'invention concerne également un système mettant en œuvre le procédé, et un produit programme d'ordinateur correspondant.
L'invention présente de nombreux avantages.
Elle permet à un diffuseur ou à un distributeur de développer un portail par exemple pour un décodeur, sans monter en interne une équipe dédiée de développement Web, ni externaliser ce développement Web. L'invention permet en effet un détachement total des aspects logiciels et des langages de programmation Web, et permet donc à tout utilisateur de créer un portail, sans avoir de connaissances en développement Web. L'invention permet notamment de modifier rapidement le contenu d'un portail sans nécessité de connaissances en développement web.
L'invention permet de développer un portail à partir de briques logicielles déjà construites, ce qui permet de mutualiser les développements de fonctionnalités, les corrections de bogues, et d'ajouter de nouvelles fonctionnalités facilement.
L'invention permet notamment de mutualiser le développement entre développeurs, intégrateurs, et valideurs, notamment en ce qui concerne les pages de tests.
L'invention permet des ajouts, des suppressions, et des modifications des éléments constitutifs d'un portail, de manière dynamique, ce qui permet par exemple de tester rapidement des options d ifférentes pour des fonctionnalités.
Un portail développé par un procédé selon l'invention ne nécessite pas de serveur PHP pour fonctionner.
Il présente également des gains en performance d'affichage.
PRESENTATION DES FIGURES
D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels :
- la figure 1 représente schématiquement un mode de réalisation possible d'un système selon l'invention ;
- la figure 2 représente schématiquement une mise en œuvre possible d'un procédé selon l'invention ;
- la figure 3 représente schématiquement une structure possible d'une base de données d'un serveur d'un système selon l'invention ;
- la figure 4 représente schématiquement une structure possible d'un répertoire contenant un code source pour un portail ;
- les figures 5 à 10 représentent schématiquement des formulaires possibles d'une interface d'un ordinateur d'un système selon l'invention, pour le développement d'un portail ;
- la figure 1 1 représente schématiquement une étape de génération d'un fichier d'instructions à partir d'un ensemble de modules et de codes ;
- la fig u re 1 2 représente schématiq uement u ne gestion possi bl e d'événement sur un dispositif d'un système selon l'invention ; et
- la figure 13 représente schématiquement un formulaire possible d'une interface d'un ordinateur d'un système selon l'invention, pour la création d'un module ;
Sur l'ensemble des figures, les éléments similaires portent des références numériques identiques.
DESCRIPTION DETAILLEE
Les figures 1 et 2 représentent schématiquement un procédé possible selon l'invention mis en œuvre sur un système possible selon l'invention , le système comportant un dispositif 1 , un ordinateur 2 et un serveur 3.
Un procédé possible de développement d'un portail Web comporte principalement
une étape S1 de configuration du portail,
une étape S2 de compilation, et
une étape S4 de déchargement d'un fichier d'instructions et d'un groupe de codes sur le dispositif 1 , le dispositif comportant un navigateur utilisant la technologie Web et pouvant mettre en œuvre le fichier d'instructions et le groupe de codes. En effet, le portail Web est destiné à être mis en œuvre localement par le navigateu r 1 1 Web du d ispositif 1 lorsq ue le d ispositif 1 est en fonctionnement normal.
Le dispositif 1 peut être de tout type, comme par exemple un décodeur (« set top box » (STB) en anglais), un ord inateur, une passerelle (ou « gateway » en anglais), un compteur électrique, ou tout autre système embarqué possédant un navigateur.
Le dispositif 1 comporte ainsi notamment une interface 12.
L'interface 12 du dispositif 1 peut comprendre un écran et/ou une série de voyants l u m i neux et/ou u n cl avier et/ou u ne sou ris et/ou u ne télécommande (comportant par exemple un pavé numérique et/ou des touches colorées, avec les couleurs rouge, vert, jaune et bleu par exemple).
Le d ispositif 1 est autonome en ce sens qu'il n'est pas rel ié, en fonctionnement normal, à un serveur distant du type du serveur 3. Par exemple lorsque le dispositif 1 est un décodeur, il est, en fonctionnement normal, relié à un téléviseur et convertit des signaux audiovisuels (parfois codés et transmis habituellement par câble coaxial, par ligne téléphonique ou par satellite) sous une forme leur permettant d'être correctement reçus et traités par le téléviseur.
Le serveur 3 du système est équipé
- d'un serveur 32, utilisant la technologie Web, de préférence http (HyperText Transfer Protocol),
d'un module 33 PHP (PHP : Hypertext Preprocessor), ainsi que d'une base 31 de données (du type « MySQL » par exemple). L'ordinateur 2 comporte classiq uement u ne interface 21 et u n processeur 22.
Le processeur 22 comporte tous les moyens classiques de mémoire, de communication et de calcul pour la mise en œuvre du procédé selon
l'invention, et n'est donc pas repris en détail dans la suite de la présente description.
L'interface 21 comporte un écran et/ou des formulaires pouvant être affichés sur l'écran (et décrits plus en détail dans la suite de la présente description) et/ou un clavier et/ou une souris et/ou une télécommande de dispositif 1 .
Lors de l'étape S1 , l'interface 21 de l'ordinateur 2 permet la sélection et l'organisation d'un ensemble E1 formant le portail Web et constitué
- de modules 21 1 de fonctionnalité, et/ou
de modules 212 de gestion d'événement
souhaités par un utilisateur pour le portail.
L'ensemble E1 correspond à un squelette du portail Web souhaité sur le dispositif 1 , et les modules 21 1 et 21 2 correspondent à des actions exécutables notamment via le navigateur 1 1 du dispositif 1 .
On explicite ici la différence entre un module 21 1 et un module 212. Un module 21 1 de fonctionnalité est exécuté par le navigateur 1 1 lorsqu'une fonction de démarrage (fonction « start » en anglais) est appelée par le navigateur 1 1 . On peut également prévoir qu'un module 21 1 soit exécuté via un autre module 21 1 ; dans ce cas, le module appelant l'exécution de l'autre module est un module du type « menu » (comme le menu principal du portail par exemple).
Des exemples non limitatifs de modules 21 1 sont ainsi : des pages d'information sur le dispositif 1 (affichage du numéro de série, ...), des pages de configuration d'options audio, ...
Un module 212 de gestion d'événement est exécuté par le navigateur 1 1 lorsqu'il y a apparition d'au moins un événement donné. Les modules 212 sont traités plus en détail dans la suite de la présente description, mais on précise ici qu'un événement est par exemple une pression d'une touche sur la télécommande de l'interface 12 du dispositif 1 , l'extraction d'une carte électronique du dispositif 1 ou l'arrivé d'un nouveau signal au niveau du dispositif 1 . Un module 212 est non accessible par le menu, comme la gestion du volume sonore par exemple.
En l ien avec les modules 21 1 et 21 2, la base 31 de données du serveur 3 stocke des tables 321 , 322, 323 et 324 représentées sur la figure 3.
Chaque table 321 , dénommée par exemple scp_project, contient les informations globales pour un projet de portail donné.
Certaines des informations ne sont pas paramétrables et ont donc un usage exclusivement interne, alors que d'autres permettent de paramétrer chaque projet de portail.
Les informations peuvent être saisies par un utilisateur grâce à des formulaires de l'interface 21 , comme décrit dans la suite de la présente description.
Chaque table 321 comporte ainsi
un identifiant du projet (projectld)
un nom du projet (projectName)
- une version du portail (portalVersion)
une langue du portail (defaultLanguage).
La table 321 permet d'inclure éventuellement un module 212 dans le projet. Elle comporte ainsi une ligne (eventModuleList) qui contient la liste des modules qui ne sont déclenchés que par des événements.
La table 321 permet d'inclure éventuellement un module 21 1 dans le projet. Elle comporte ainsi une l igne (startingModuleld) permettant de spécifier le premier module qui sera lancé à l'exécution du portail, et qui pourra également appeler d'autres modules.
Elle contient aussi une ligne (templateld) permettant d'indiquer quel style d'interface (template en anglais) est utilisé par le projet.
Les styl es so n t d es m od u l es q u i possèdent des fonctions supplémentaires par rapport aux autres modules 21 1 ou 212. Chaque style est regroupé dans une table 323, par exemple dénommée scp_template, qui permet de sauvegarder les différentes informations du style, tel que son identifiant (Id), son nom (name), son chemin d'accès (path), ainsi que ses paramètres (param).
Chaque table 322, dénommée par exemple scp_module, contient les informations permettant de créer et configurer les modules 21 1 ou 212.
Comme on l'expliquera plus en détail dans la suite, chaque module 21 1 ou 212 possède un identifiant (moduleld) et un certain nombre de paramètres. Chaque module 21 1 ou 21 2 est ainsi répertorié dans la base 31 de données.
Chaque table 324, par exemple dénommée scp_icons, permet de simplifier l'util isation des icônes au sein de la base de donnée 31 , en associant au chemin d'accès de l'icône un identifiant qui pourra être ensuite util isé dans les paramètres de modules 21 1 ou 21 2. Les icônes sont également liées à un style.
La base 31 contient de plus des liens vers des codes 42 sources, contenus dans des fichiers 420, chaque code 42 correspondant à un module 21 1 ou 212.
A cet effet, comme le montre la figure 4, chaque code 42 est copié dans un répertoire 420 spécifique du serveur 3. Le répertoire 420 est dénommé par le nom du module 21 1 ou 212.
Le code 42 est copié sous la forme d'un fichier source du module 21 1 ou 212, au format Javascript ou HTML.
Chaque fichier de code 42 est dénommé par le nom du module 21 1 ou 212, préférentiellement suivi du numéro de version du module, par exemple sur trois caractères. L'util isateur peut donc sélectionner une version particulière du module 21 1 ou 212 en fonction de l'architecture du dispositif 1 (archi V1 ou archi V2 par exemple). Bien entendu, le répertoire spécifique 420 peut contenir d'autres répertoires, pour des ressources 41 spécifiques du module (icônes, images, sons, etc.).
On donne ci-après un exemple possible de mise en œuvre de l'étape
S1 .
Lors de l'étape S1 , l'utilisateur indique un identifiant d'un projet de portail dans l'interface 21 .
A cet effet, l'interface 21 comporte un formulaire HTML connu de l'homme du métier.
Les formu la i res HTM L util isent des fonctions con n ues HTM L exécutées par l'ordinateur 2, comme par exemple la fonction suivante qui permet de récupérer un objet de type « fenêtre ».
UI_getNewWindo (width, height, opacity)
Classiquement une fenêtre comporte trois zones distinctes :
une zone de titre,
un contenu, et
un pied de page.
Les fonctions HTML ci-dessous permettent de compléter chacune de ces zones.
indo .updateTitle (title) ;
window. updateContent (content)
indow. updateFooter ( footer) ;
On connaît également une fonction HTML permettant de positionner la fenêtre dans l'interface 21 .
windo . setPosition (top, left)
Les valeurs « top » et « left » doivent être indiquées en nombre de pixels ou bien en utilisant une chaîne de caractères 'CENTER'.
On connaît également les fonctions d'affichage et de masquage d'une fenêtre.
window. show (options) ;
window . hide ( ) ;
Les options de la fonction show peut être toute association des valeurs
'TITLE', 'CONTENT', et 'FOOTER', séparées par le caractère '|'.
Un exemple de formulaire HTML permettant à l'utilisateur d'indiquer un identifiant d'un projet de portail est représenté sur la figure 5.
Le formulaire de l'interface 21 comporte notamment des champs 101 , 102, 103 et 104.
Le champ 101 est le nom courant du portail.
Les champs 102 permettent de modifier ou de sélectionner
le nom du portail (« Portai name »),
le numéro de version du portail (« Portai version number »), - un module (« Live module ») exécuté au démarrage du portail
(champ non renseigné sur la figure 5), ainsi que
le style du module (« Template module ») à appliquer.
Les champs 103 permettent de configurer le style à appliquer, comme par exemple :
la taille du menu (« Menu size »),
l'opacité du menu (« Opacity »), ainsi que
- la couleur (« color ») utilisée.
Le champ 104 « Save » permet une sauvegarde des configurations. Les informations saisies dans les champs 101 à 103 sont donc copiées dans la table 321 correspondante sur le serveur 3.
Toujours lors de l'étape S1 , l'interface 21 permet la sélection et l'organisation de l'ensemble E1 de modules 21 1 ou 212 formant le portail Web.
A cet effet, l'interface 21 comporte un formulaire HTML d'arborescence du portail (« portai tree »), par exemple conforme à celui représenté sur la figure 6.
II est possible à l'utilisateur d'obtenir l'affichage du formulaire de l'arborescence du menu principal du portail, notamment en sélectionnant un onglet 20 (sélection par la souris de l'interface 21 ou par pression sur la touche jaune sur la télécommande de l'interface 21 par exemple).
Comme on peut le constater sur la figure 6, le formulaire HTM L comporte notamment des champs 201 à 210.
Le champ 201 est le titre du formulaire, présentant l'arborescence du portail sous forme de tableau comportant des colonnes.
Le tableau montre donc une partie E1 ' de l'ensemble E1 , ladite partie E1 ' étant constituée de modules 21 1 de fonctionnal ité souhaités par l'utilisateur.
La colonne 202 correspond à un numéro identifiant chaque module 21 1 de fonctionnalité.
La colonne 203 permet de supprimer un module du portail . Cette suppression est préférentiellement définitive.
La colonne 205 montre le type de module : « menu » ou « - » . On rappelle qu'un module ne peut pas être exécuté via un module du type « - », mais uniquement via un module du type « menu ».
La colonne 206 montre le nom du module tel qu'il apparaîtra dans le portail (« Label »).
La colonne 207 montre le nom du module dans une bibliothèque (« Library »).
La colonne 208 permet de modifier la position d'un module dans l'arborescence du portail.
En sélectionnant le champ 209 en association avec un module du type « menu », la bibliothèque, contenant notamment les mod u les 21 1 de fonctionnalité disponibles pour l'utilisateur, apparaît sur l'interface 21 .
U n exemple de form ula ire HTM L possible de l ' interface 21 et représentant la bibliothèque, pour l'ajout d'un module 21 1 à un module du type « menu » est représenté sur la figure 7.
Comme on peut le constater sur la figure 7, le formulaire HTM L comporte des champs 301 et 302.
Le ch am p 301 dénom me l a b i bl ioth èq u e et les cha m ps 302 représentent les modules 21 1 ou 21 2 disponibles pour l'utilisateur, sous forme d'icônes.
Le formulaire de la figure 7 permet d'ajouter à la partie E1 ' un module 21 1 souhaité audit module du type « menu », par clic de souris sur l'icône du module souhaité par exemple.
Par ailleurs, en sélectionnant le champ 210 sur le formulaire de la figure 6, il est possible d'ajouter un module de type « menu » à un autre module de type « menu », pour ajouter un « sous-menu » d a n s l'arborescence du portail.
Un exemple de formulaire HTML possible de l'interface 21 pour l'ajout d'un sous-menu à un menu, et s'affichant après la sélection du champ 210, est représenté sur la figure 8.
Comme on peut le constater sur la figure 8, le formulaire HTM L comporte notamment des champs 303, 304 et 305.
Le champ 305 donne le titre courant du nouveau sous-menu.
Le champ 303 donne le nom du nouveau sous-menu.
Les champs 304 permet de sélectionner un numéro d'identifiant d'icônes associées.
La colonne 204 du tableau de la figure 6 permet d'éditer et de modifier un sous-menu, la figure 9 montrant un formulaire possible de l'interface 21 , le formulaire contenant des champs 306 et 307.
Comme le montre la figure 9, le formulaire édité par sélection de la colonne 204 offre les mêmes possibilités de modifications du sous-menu que pour un menu de l'arborescence du menu principal (ajout de modules par le champ 306 et suppression de modules par le champ 307).
L'ensemble E1 comporte également des modules 21 2 de gestion d'événement.
Un exemple de formulaire HTM L possible de l 'interface 21 est représenté sur la figure 10.
Le formulaire représente une partie E1 " de l'ensemble E1 , la partie E 1 " regroupant sous forme de tableau des modules 21 2 de gestion d'événement.
Ce formulaire s'affiche par exemple en sélectionnant l'onglet 40 de l'interface 21 , la sélection s'effectuant par la souris ou par la touche bleue sur la télécommande de l'interface 21 .
Comme on peut le constater sur la figure 1 0, le formulaire HTML comporte des champs 401 à 408.
Le champ 401 est le titre du formulaire.
La colonne 402 correspond à un numéro identifiant chaque module
212.
La colonne 403 permet de supprimer un module du portail . Cette suppression est préférentiellement définitive.
La colonne 404 montre le nom du module dans la bibliothèque.
La colonne 405 montre le nom du module tel qu'il apparaîtra dans le portail (« Label »).
La colon ne 406 montre le chem in vers u n code 42 au format Javascript par exemple et associé au module 212.
La colonne 407 montre les événements gérés par le module 21 2.
Dans l'exemple de la figure 10, le portail ne comporte que le module 21 2 « volume », qui permet de gérer l'appui sur les touches V+ et V- (évènements 63235 et 6234).
En sélectionnant le champ 408, la bibliothèque, contenant notamment les modules 21 2 de gestion disponibles pour l'utilisateur, apparaît sur l'interface 21 . L'interface 21 permet d'ajouter à l'ensemble E1 un module 212 souhaité comme décrit précédemment pour un module 21 1 .
Lors de la sélection d'un module 21 1 ou 212 dans la bibliothèque de la figure 7, le nom du module 21 1 ou 212 correspondant est copié dans la table 321 correspondant au projet sur le serveur 3.
Une fois que l'utilisateur estime que l'ensemble E1 , constitué des parties E1 ' et E1 " et regroupant les modules 21 1 et 21 2 est complet, il indique au processeur, grâce à l'interface 21 , que tel est le cas. Il peut le faire par exemple grâce à un message sur l'interface 21 .
Lors de l'étape S2 de compilation, le processeur 22 de l'ordinateur 2 génère, à partir de l'ensemble E1 , un fichier E3 d'instructions pouvant être mises en œuvre par le navigateur 1 1 .
A cet effet, un formulaire de l'interface 21 permet à l'util isateur d'indiquer au processeur 2 l'identifiant du portail pour lequel le fichier E3 doit être généré.
Un exemple de code pouvant être prévu pour le formulaire HTML de l'interface 21 est par exemple:
<form name="generatePortal" action="main.php" method="post">
<input type="hidden" name="projectld" id="projectld_generate" value="13"/>
</form>
De manière classique, le formulaire HTML est ainsi défini avec les balises <form> et </form>. L'attribut "action" de la balise <form> permet de spécifier la page qui traitera les données fournies dans le formulaire par l'utilisateur : il s'agit ici de la page « main ». L'attribut "method" montre que la méthode de transmission est la méthode POST, également connue de l'homme du métier.
Le processeur 22 envoie donc une requête au module 33 PHP, pour que ce dernier exécute le fichier « main. php » correspondant au portail.
La distinction entre différents projets de portails se fait par exemple en spécifiant en argument, dans le nom du fichier, l'identifiant du projet souhaité.
Dans un premier temps, les fichiers Javascripts classiques sont chargés par le module 33.
Les fichiers classiques sont les fichiers contenant par exemple les constantes, les objets et fonctions globales, les fonctions de gestion des événements ou encore les fichiers de traduction.
Une instruction possible pour ce chargement est par exemple :
Ensuite vient le chargement par le module 33 des fichiers Javascripts contenant les codes 42 sources des modules 21 1 ou 212 utilisés par le portail.
Une instruction possible pour ce chargement est par exemple :
Le langage PH P est util isé par le module 33 du serveur 3 pour interpréter le code PH P précédent et générer du code qui pourra être interprété par le navigateur 1 1 , comme par exemple XHTML, HTML, CSS ou JavaScript, ici préférentiellement HTML et Javascript.
Ensu ite, les paramètres d u portail sont convertis en variables
Javascripts par le module 33.
Une instruction possible pour cette conversion est par exemple :
g_projectName = <?php echo ' " ' . $projectName . ' " ' ; ?>;
g_portalLanguage = <?php echo ' " ' . $defaultLanguage . ' " ' ; ?>;
Une table (g_iconTable) contenant les chemins d'accès aux icônes est créée par le module 33.
Une instruction possible pour cette création est par exemple :
Une autre table (gjnoduleTable), contenant les objets Javascripts correspondant aux modules inclus dans le portail grâce à l'ensemble E1 , est créée par le module 33, et chaque constructeur de module est appelé.
Une instruction possible pour cette création est par exemple :
Ainsi, comme le montre la figure 1 1 , à partir de l'ensemble E1 , et des fichiers comportant les codes 42 Javascripts ou HTML correspondant aux modules 21 1 et 212 de l'ensemble E1 , le processeur génère le fichier E3. Le fichier E3 ne contient que du code objet orienté web, utilisant des
technologies connues W3C (par exemple HTML, JavaScript, CSS, XML, XSLT, CGI...). Le fichier main. php peut ainsi être renommé main.html par exemple.
On appelle E2 le groupe de codes 42 utilisés par le portail.
On comprend que pendant les étapes S1 et S2 décrites ci-dessus, il faut un lien entre l'ordinateur 2 et le serveur 3.
Lors de l'étape S4 de déchargement, le processeur 22 décharge
le fichier E3 d'instructions, et
le groupe E2 de codes 42 associés aux modules 21 1 et 212 de l'ensemble E1
à partir du serveur 3 sur le dispositif 1 , comme le montre la figure 1 . Ceci suppose donc un lien entre le serveur 3 et le dispositif 1 .
A l'issue de l'étape S4, la connexion entre le serveur 3 et le dispositif 1 est rompue, et le dispositif 1 peut prendre un fonctionnement normal. Le lien entre l'ordinateur 2 et le serveur 3 peut également être rompu.
Pour prendre son fonctionnement normal, le navigateur 1 1 du dispositif 1 exécute une fonction, par exemple dénommée load_main() et contenue dans le fichier main.js, et qui permet :
- de lancer un module de démarrage du portail (référencé par le champ startingModuleld dans la table 321 ), et
- de créer un gestionnaire d'événement K de pression de touche (un événement K est un relâchement d'une touche d'un clavier d'ordinateur ou d'une télécommande de décodeur par exemple).
En effet, comme le montre la figure 1 2, on distingue deux types d'événements, à savoir :
les événements K de pression de touche, et dont le point d'entrée est une fonction par exemple dénommée keypress_eventHandler() ; et
les événements Event, apparus et détectés par le navigateur, dont le point d'entrée est la fonction par exemple dénommée
EventHandlerQ.
Le gestionnaire d'événement K de pression de touche créé et/ou le gestionna ire d 'événement Event appel lent la fonction par exemple dénommée MainEventHandlerQ.
Une instruction possible pour cet appel est par exemple :
document . addEventListener ( ' keyu ' ,
function(e) {MainEventHandler (e) ; }, false) ;
Lors d'un événement Event ou K, chaque événement est converti en un objet de type event_object, avec plusieurs paramètres sous forme de tableau, lors d'une étape A.
Le s o bj ets évé n e m e n ts so n t a l o rs g é ré s pa r l a fo n ct i o n mainEventHandler() lors des étapes B, C, D, E ou F.
Comme le montre la figure 1 1 , le fichier E3 d'instructions comporte en effet des instructions renvoyant vers le code 42 par exemple dénommé event.js, instructions selon lesquelles les événements sont gérés par une pile de modules 21 2 de gestion d'événement ou de modules 21 1 de fonctionnalités si ceux-ci sont actifs.
Ainsi, lors d'une étape B, l'objet événement est transmis au module actif se situant sur le haut d'une pile de modules.
Lors d'une étape C, l'objet événement est pris en compte par ledit module.
La fonction mainEventHandler() détermine en D si l'objet événement est géré par ledit module.
Si la réponse est oui, alors l'objet est traité et c'est la fin de la fonction mainEventHandler().
Si la réponse est non, la fonction mainEventHandler() détermine en E si ce même objet événement doit déclencher un (ou plusieurs) modules parmi une table g_eventTable. Lors d'une étape F, dans le cas de plusieurs modules devant être déclenchés, un paramètre permet de spécifier la priorité associée.
On passe alors à l'étape C déjà décrite.
Comme le montre la figure 13, l'interface 21 comporte un formulaire HTML permettant d'ajouter à la bibliothèque un nouveau module.
De manière très préférentielle, tous les modules 211 ou 212 possèdent la même structure standard avec notamment :
un constructeur,
un identifiant (également appelé « id »),
- un nom (également appelé « Label »), et
un type du module, précisant la fonction de démarrage « start » pour les modules 211 ou la méthode de gestion d'événement pour les modules 212. Le formulaire de la figure 13 comporte des champs 501 , 502, 503 et 504.
Les champs 502 comportent des champs obligatoires, notamment concernant le nom (Name), le nom du module tel qu'il apparaîtra dans le portail (« Label »), et le type du module. Suivant le type de module sélectionné, plus ou moins d'options supplémentaires peuvent apparaître.
Le champ 503 permet de saisir une description du module, à l'attention de l'utilisateur.
Le champ 504 permet la sauvegarde de la saisie.
Lors de la sauvegarde, une nouvelle table 322 est créée sur le serveur
3.
De même, préalablement ou postérieurement, un code 42 correspondant est créé sur le serveur 3.
Les codes 42 des modules sont codés en HTML mais très préférentiellement en Javascript, par exemple sous la forme
L'ordinateur 2 peut être incorporé en tout ou partie au dispositif 1 .
Le procédé peut de plus comporter une étape S3 facultative de test du fichier E3 d'instructions avant l'étape S4 de déchargement.
L'étape S3 de test concerne les modules 21 1 et 212, disponibles dans la bibliothèque commune à l'ensemble des projets de portail, de sorte que l'étape de test sert pour les évolutions ultérieures du portail ou pour un autre portail également.
De même, la correction des bogues sur les modules 21 1 ou 212 sert pour les évolutions ultérieures du portail ou pour un autre portail également.
L'invention concerne également un produ it programme d'ord inateur comportant des instructions qui, une fois chargées sur une mémoire d'un ordinateur, permettent la mise en œuvre d'un procédé selon l'invention. Le produit peut être sur tout support informatique, comme par exemple une mémoire ou un CD-Rom.