PROCEDE POUR LA PREPARATION DYNAMIQUE DE FICHIERS NUMERIQUES CORRESPONDANT A DES MOYENS D'INFORMATION TELS QUE DES PAGES AU FORMAT HTML
La présente invention concerne le domaine des télécommunications, et plus particulièrement de la communication sur réseaux informatiques tels que l'Internet ou des extranets, sous la forme de fichiers numériques constituant des pages selon le format html exploitables par un logiciel de type navigateur.
On connaît dans l'état de la technique la réalisation de serveur de pages html constituant un ensemble de fichiers comportant des liens hypertextes correspondant notamment à l'adresse d'un ou de plusieurs autres fichiers. Le problème qui se pose est celui de l'actualisation d'un tel ensemble de pages constituant un site. En effet, chaque modification d'une seule fiche implique la modification de tous les fichiers s'y référant, et plus généralement la refonte de toute l'architecture du site. De même, une modification de l'aspect graphique du site implique la modification de chacun des fichiers le constituant.
Le but de l'invention est de remédier à cet inconvénient un proposant un procédé permettant de construire de façon dynamique, « à la volée » des pages html formant un site.
A cet effet, l'invention concerne selon son acception la plus générale un procédé pour la préparation dynamique de fichiers numériques correspondant à des moyens
d'information tels que des pages au format HTML consultables par un logiciel navigateur, des messages électroniques, des fichiers numériques au format XML, ou équivalents caractérisé en ce qu'il consiste à charger dans une première base de données contenant des enregistrements correspondant à la structure d'objets informatiques et dans une deuxième base de données d'enregistrements correspondant au contenu de tels objets, et ensuite à générer dynamiquement un fichier d'information en réponse à une requête consistant à préparer un objet informatique éphémère dans lequel est enregistré une structure issue de la première base de données et un contenu issu de la deuxième base de données, l'objet informatique étant ensuite mis en forme pour être transmis à l'émetteur de la requête sous un format standardisé. L'objet informatique peut être composé d'une pluralité d'objets élémentaires.
Avantageusement, la préparation de l'objet informatique destiné à la mise en forme en réponse à une requête comporte une première étape de réception de la requête de l'utilisateur, une deuxième étape de chargement de la structure de l'objet, une troisième étape de chargement du contenu de l'objet, une quatrième étape de traitement de l'objet, une cinquième étape de mise en page de l'objet en fonction de l'action à exécuter et une dernière étape de mise en page de l'objet dans son contexte. Avantageusement, l'étape de réception de la requête utilisateur consiste à recueillir des paramètres comprenant au moins le type de réponse attendue, la nature de l'objet à traiter, l'identifiant de l'objet à traiter et la désignation
l'action à effectuer sur ledit objet, et à charger en mémoire ledit objet.
Selon une variante préférée, l'étape de réception comporte préalablement la mise à disposition d'un lien pour la récupération par l'utilisateur d'un fichier de paramétrage.
Selon une variante avantageuse, l'étape de chargement de la structure de l'objet consiste à charger dans l'objet depuis la première base de données les données relatives aux propriétés de l'objet, tels que l'identifiant de la propriété, le libellé de la propriété, l'index de cette propriété au sein de l'objet, le type de propriété et la nature de la propriété.
De préférence, l'étape de chargement du contenu de l'objet consiste à charger dans l'objet depuis la seconde base de données les données relatives au contenu de l'objet.
Avantageusement, les données relatives au contenu de l'objet comportent l'identifiant de la propriété, l'identifiant éventuel d'un objet parent, l'identifiant éventuel d'un objet enfant, le statut de l'élément, le code activité de 1 ' élément .
L'objet considéré peut être un objet générique se réutilisant lui-même chaque fois que nécessaire pour décrire une structure (une page, un produit) ou un processus (circuit de validation) . De préférence, l'étape de traitement de l'objet comporte des traitements de création d'un nouvel élément, de modification d'un élément, de suppression d'un élément ou d'affichage d'un élément ou d'une liste d'éléments.
Selon un mode de réalisation particulier, l'étape de mise en page de l'objet consiste à rediriger la requête utilisateur vers l'affichage de tout ou partie de page en réponse à son action. De préférence, l'étape de mise en page de l'objet dans son contexte consiste à réaliser l'assemblage de modules html incrustés de marqueurs spécifiques.
L'invention sera mieux comprise à la lecture de la description d'un exemple de mise en œuvre non limitatif qui suit.
La plate-forme utilisée par l'invention est essentiellement composée de produits logiciels comprenant d'un navigateur, d'un serveur http, d'un serveur métier, de composants logiciels spécifiques, et d'un protocole d'échange de données ainsi que de bases de données : SQL Server 7.0
Le processus selon l'invention correspond à une séquence de vie du composant logiciel spécifique. Dédié au web, ce processus en 6 étapes se déclenche à la suite de chaque requête ou x click' d'un internaute naviguant sur un site piloté par l'invention.
Etape 1 : Réception de la requête utilisateur La requête utilisateur sera du type : http: //www.noheto .net/contact . asp?parameters Output=2&objθCt_nat re≈OBJ&objβct_id≈888&object_action=view
Cette liste de paramètres liés à l'URL n'est pas exhaustive, mais doit cependant comporter au moins les 4 paramètres suivants :
output : type de réponse attendu (HTML, HTML+XML, HTML+mail...) ob j ect_nature : nature de l'objet traité object_id : identifiant de l'objet traité - ob ect_action : action à effectuer sur l'objet traité
La requête « 1 ' HTTP_request » récupère les paramètres de la requête et les place dans des variables privées du composant. )
Exemple de récupération des paramètres principaux : sOutput = request ('output') sObject_nature = request ( ,object_nature' ) sObject_id = request ( λobject_id' ) sObject_action = request ( 'ob ect_action' )
L'objet à traiter est chargé en mémoire : Set oObject as new object
Etape 2 : chargement de la structure de l'objet
Dans un premier temps, la structure de l'objet à traiter, c'est-à-dire ses propriétés, sont chargées dans l'objet oObject : Exemple d'un appel de chargement de la structure : voir annexe 1 Les enregistrements reçus de la table tabie_object de la base de données âb_str cture fournissent les renseignements suivants pour chaque propriété de l'objet : l'identifiant de la propriété - le libellé de la propriété l'index de cette propriété au sein de l'objet le type de propriété (ex : data, child, collection, image, music)
- la nature de la propriété (ex : id de l'objet en enfant si le type est c id) Cette liste n'est pas exhaustive. Elle doit être complétée par des champs communs à l'ensemble des enregistrements d'une base tels que la date de création de l'enregistrement, la date de dernière modification, l'identifiant ou le code sécurité de 1 ' opérateur .
Chaque propriété est chargée dans oobject au sein d'un tableau de propriétés ou d'objets enfants.
Exemple de tableau de propriétés et de tableau d'objets enfants : voir annexe 2.
Etape 3 : chargement du contenu de l'objet Dans un deuxième temps, le contenu de l'objet est chargé dans le périmètre des propriétés déterminées ci-dessus :
Exemple d'appel de chargement du contenu : annexe 3
Par souci d' évolutivité, les champs et le nom de la table tabie_(s3θbjoci.nat rel sont pseudo-numériques (ex : table t_4, champs c_4_2). Ainsi, les libellés de propriétés d'objet peuvent être exprimés de façon très variable et modifiés de façon régulière.
Les enregistrements reçus de la table tabie_(&objeet _naturo) de la base de données db_content fournissent les renseignements suivants pour chaque propriété de 1 ' ob j et :
l'identifiant de l'élément l'identifiant éventuel d'un objet parent l'identifiant éventuel d'un objet enfant le statut de l'élément - le code activité de 1 ' élément
Cette liste n'est pas exhaustive. Elle doit être complétée par des champs communs à l'ensemble des enregistrements d'une base tels que la date de création de l'enregistrement, la date de dernière modification, l'identifiant ou le code sécurité de 1' opérateur.
Certains éléments peuvent être composés de sous-éléments (ex : un objet abat-jour dans la description d'un objet lampe). Dans ce cas, l'objet parent connais l'identifiant du ou des objets enfants .
Etape 4 : traitement de l'objet
Les traitements communs à tous les objets sont :
New : création d'un nouvel élément de nature sObject_nature
Edit : modification d'un élément
Delete : suppression d'un élément - View : affichage d'un élément ou d'une liste d'éléments .
Des traitements spécifiques peuvent être appliqués à chaque élément. Ces traitements spécifiques sont déterminés par le moteur générique [« workflow »]qui associe à un objet une action. Cette action correspondra toujours à un changement de statut d'un de ses éléments.
Exemple de traitement d'un élément : annexe 4
Etape 5 : mise en page de l'objet en fonction de l'action exécutée
L'objet de cette étape est de rediriger la requête utilisateur vers l'affichage de tout ou partie de page en réponse à son action. Cette étape est directement dépendante du paramètre sobject_action et sera modifiable en fonction de l'objet à traiter.
Exemple de fonction de mise en page : annexe 5
Cette fonction utilise des "modèles" (templates) , C'est à dire des mises en pages HTML déterminées par la charte graphique de l'organisation utilisant la plate-forme selon l'invention.
Etape 6 : mise en page de l'objet dans son contexte
L'objet à été traité, le composant intègre cette nouvelle action dans son contexte, c'est-à-dire la page elle-même en réponse à l'URL.
Cette fonction réalise l'assemblage de 'blocks' html incrustés de propriétaires renseignés par les sous-éléments de la page.
Exemple de fonction de mise en pages : Annexe 6
Exemple de block HTML intégrant des propriétaires : Annexe 7
Exemple d'assemblage de blocks : Annexe 8
Pour chaque sous-élément, les étapes 2 à 6 sont reproduites. Comme chaque objet peut écrire des tags propriétaires dans sa mise en page, une fonction de reparse permet au composant de reparcourir la page jusqu'à ce qu'il n'y ai plus de tags propriétaires (de type <eB :Nom_user</eBN:Nom_user>) à remplacer.
1. Génération du premier objet logiciel... Et des autres
Etant donné que tout objet composant le site est de structure eBN, le premier eBN ne peut pas être généré via Internet.
Ains i , le premier obj et logiciel sera nommé Obj ect . Il comporte comme éléments les autres obj ets d' un site .
La procédure de création du premier eBN est la suivante : a- écriture d ' un script sql de création des tables tabie_object.db_structure et des tables associées aux obj ets de première connexion ( obj et, page, user) b- rédaction d ' un template de départ comportant au moins un tag propriétaire , c- Connexion du composant à la base de données via un fichier DSN.
Exemple de script de création de la table tabie_object : annexe . 9
L'objet object a la particularité de pouvoir créer et supprimer d'autres objets, c'est-à-dire d'autres tables dans la base de données :
1- Une table ou groupe de tables dites xde structure' contiennent les descriptifs et libellés de toutes les tables 'de contenu' 2- La création d'un nouvel objet correspond à la création d'une table 3-La suppression d'un objet correspond à la suppression logique de son descriptif dans la table table_object .
On appelle objet spécifique le nombre d'enregistrements actifs de la table table_ob ect , c'est-à-dire le nombre d'attributs actifs dans l'application.
2. le maillage des objets logiciels spécifiques
Tout objet du système est susceptible de devenir une ou plusieurs fois enfant et parent.
Les relations inter-objets sont établies lors de la définition ou la modification de la structure d'un objet. La relation peut être de type unitaire (child) ou multiple (collection)
Exemple relation d'objets :
Obj ect_nature = lamp
Obj ect_property (9 ) . type = child
. nature = lampfoot
Afin de gérer ces relations parent-enfant, chaque élément d'objet comporte une propriété parent et un propriété enfant.
L'objet 'enfant' fait référence à l'identifiant de l'élément enfant. - L'objet 'parent' fait référence à l'identifiant et à la nature de l'élément parent.