FR3102594A1 - Application generation set, associated method and program - Google Patents

Application generation set, associated method and program Download PDF

Info

Publication number
FR3102594A1
FR3102594A1 FR1912153A FR1912153A FR3102594A1 FR 3102594 A1 FR3102594 A1 FR 3102594A1 FR 1912153 A FR1912153 A FR 1912153A FR 1912153 A FR1912153 A FR 1912153A FR 3102594 A1 FR3102594 A1 FR 3102594A1
Authority
FR
France
Prior art keywords
list
application
data
elements
cardinality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1912153A
Other languages
French (fr)
Inventor
Christophe Blind
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to FR1912153A priority Critical patent/FR3102594A1/en
Publication of FR3102594A1 publication Critical patent/FR3102594A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2445Data retrieval commands; View definitions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L’invention concerne un ensemble de génération d’application comprenant - un système de configuration qui comprend : . un module de manipulation de données d’utilisation de l’application (4a, 4b), et comprenant des moyens pour définir des listes de données à parcourir ; . un module de définition de l’interface graphique d’application comprenant des éléments graphiques modifiables, et des éléments de parcours de liste, pour parcourir la liste et mettre en œuvre les requêtes de programme correspondantes ; - un système de génération de l’application (G.V.) comprenant des modules d’analyse des données saisies dans le système de configuration et configurés pour mettre en œuvre automatiquement les requêtes de programme pour générer l’application, caractérisé en ce qu’une modification des éléments graphiques modifiables entraine une mise en œuvre des requêtes de programme selon la liste et une modification correspondante de l’application. L’invention porte en outre sur une méthode et un programme associés. Figure de l’abrégé : Fig. 1The invention relates to an application generation assembly comprising - a configuration system which comprises:. a module for handling application usage data (4a, 4b), and comprising means for defining lists of data to be browsed; . a graphical application interface definition module comprising editable graphical elements, and list browse elements, to browse the list and implement the corresponding program requests; - an application generation system (GV) comprising modules for analyzing the data entered in the configuration system and configured to automatically implement the program requests to generate the application, characterized in that a modification modifiable graphic elements entails an implementation of the program requests according to the list and a corresponding modification of the application. The invention further relates to an associated method and program. Abstract figure: Fig. 1

Description

Ensemble de génération d’application, méthode et programme associésApplication generation set, associated method and program

La présente invention a trait au domaine de la réalisation d’applications, en particulier d’applications web telles que des sites internet ou toute application utilisant un système centralisé contenant notamment des données quel que soit la technologie de stockage des données.The present invention relates to the field of the production of applications, in particular web applications such as websites or any application using a centralized system containing in particular data regardless of the data storage technology.

L’invention concerne plus particulièrement un système et une méthode mise en œuvre par ordinateur, pour la réalisation d’applications telles que des sites internet.The invention relates more particularly to a system and a method implemented by computer, for the production of applications such as websites.

Dans ce domaine, une solution connue est le développement sur-mesure avec ou sans framework. Il s’agit de produire un logiciel spécialement conçu pour apporter une solution adaptée aux attentes pour l’application. Il nécessite donc l’intervention d’un ou de plusieurs développeurs qui, selon les besoins, vont déployer une application unique répondant spécifiquement aux fonctionnalités formulées.In this area, a known solution is custom development with or without a framework. It is a question of producing a software specially designed to provide a solution adapted to the expectations for the application. It therefore requires the intervention of one or more developers who, depending on the needs, will deploy a single application specifically responding to the formulated functionalities.

De plus, la notion de framework inclus un ensemble cohérent de composants logiciels structurels servant à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'une architecture logicielle.In addition, the notion of framework includes a coherent set of structural software components used to create the foundations as well as the outline of all or part of a software architecture.

Ainsi, la réalisation d’applications telles que des sites internet, comprend plusieurs aspects techniques relatifs aux hardwares et modules logiciels, interagissant de manière digitale pour réaliser une intégration de charte graphique spécifique identitaire, reproductible sur des ordinateurs par le biais de l’internet, et inclus également l’insertion d’informations données, relativement faciles à retrouver dans le monde par le biais de l’internet.Thus, the creation of applications such as websites, includes several technical aspects relating to hardware and software modules, interacting digitally to achieve integration of a specific identity graphic charter, reproducible on computers via the Internet, and also includes the insertion of given information, relatively easy to find in the world through the internet.

L’invention tente par ailleurs de mettre en place des solutions contre les risques de sécurité connus.The invention also attempts to implement solutions against known security risks.

Malheureusement, le développement de ces applications et sites internet sur mesure s’avère long, fastidieux et par conséquent très couteux.Unfortunately, the development of these custom applications and websites is long, tedious and therefore very expensive.

Une autre solution connue dans l’art antérieur est d’utiliser un CMS, ou Content Management System, à savoir un logiciel spécialement conçu pour la création et l’édition de sites internet. Les systèmes CMS proposent une interface graphique permettant de créer son site web de manière graphique mais limité aux fonctionnalités proposées. Si l’utilisateur a besoin de plus de fonctionnalités, alors il est obligé de passer en codage traditionnel.Another known solution in the prior art is to use a CMS, or Content Management System, namely software specially designed for creating and editing websites. CMS systems offer a graphical interface allowing you to create your website graphically but limited to the features offered. If the user needs more features, then he is forced to switch to traditional coding.

Une autre solution est d’utiliser une architecture MVC (Model – View – Controller ; ou Modèle-Vue-Contrôleur). Il s’agit d’une préconisation d’architecture logicielle pour permettre un découpage clair du code.Another solution is to use an MVC architecture (Model – View – Controller; or Model-View-Controller). This is a software architecture recommendation to allow a clear breakdown of the code.

Classiquement, le contrôleur est composé de 2 parties :
- le routeur qui est le point d’entrée unique des sollicitations du navigateur au système centralisé tel qu’un serveur. Cela permet de rendre du code commun entre les différentes pages web.
- le contrôleur spécifique gérant les spécificités de la page web.
Classically, the controller is composed of 2 parts:
- the router which is the single entry point for requests from the browser to the centralized system such as a server. This makes it possible to make common code between the different web pages.
- the specific controller managing the specificities of the web page.

De plus, la mise en place d’une architecture type MVC s’accompagne d’une arborescence des différents fichiers composant le code.In addition, the implementation of an MVC-type architecture is accompanied by a tree structure of the different files making up the code.

Un premier objectif est de proposer un système et une méthode permettant de réaliser une application telle qu’un site internet de manière rapide et aisée en comparaison au développement sur mesure.A first objective is to propose a system and a method making it possible to create an application such as a website quickly and easily compared to custom development.

Un deuxième objectif est de proposer un système et une méthode permettant de réaliser un site internet ayant davantage de possibilités de personnalisation en référence aux systèmes de type CMS, en permettant notamment de mettre en place facilement ses propres fonctionnalités.A second objective is to propose a system and a method making it possible to produce a website having more customization possibilities with reference to systems of the CMS type, in particular by making it possible to easily set up its own functionalities.

Pour atteindre ces objectifs, l’invention propose un ensemble de génération d’application comprenant :
- un système de configuration qui comprend :
. un module de manipulation de données d’utilisation de l’application, et comprenant des moyens pour définir des listes de données à parcourir ;
. un module de définition de l’interface graphique d’application comprenant des éléments graphiques modifiables, et des éléments de parcours de liste, pour parcourir la liste et mettre en œuvre les requêtes de programme correspondantes ;
. un module de gestion d’événements, configuré pour définir pour chaque type d’événements liés aux éléments graphiques possibles le comportement attendu ;
. un module d’éléments de cardinalité configuré pour encadrer le comportement des éléments de parcours de liste ;
- un système de génération de l’application comprenant des modules d’analyse des données saisies dans le système de configuration et configurés pour mettre en œuvre automatiquement les requêtes de programme pour générer l’application.
To achieve these objectives, the invention proposes an application generation set comprising:
- a configuration system that includes:
. a module for manipulating application usage data, and comprising means for defining lists of data to be traversed;
. an application graphical interface definition module comprising modifiable graphical elements, and list traversal elements, for traversing the list and implementing the corresponding program requests;
. an event management module, configured to define for each type of event linked to the possible graphic elements the expected behavior;
. a cardinality items module configured to frame the behavior of list traversal items;
- an application generation system comprising modules for analyzing data entered in the configuration system and configured to automatically implement the program requests to generate the application.

Selon un premier aspect, l’ensemble est configuré de sorte qu’une modification des éléments graphiques modifiables entraine une mise en œuvre des requêtes de programme selon la liste et une modification correspondante de l’application.According to a first aspect, the assembly is configured so that a modification of the modifiable graphic elements leads to an implementation of the program requests according to the list and a corresponding modification of the application.

Avantageusement, l’invention facilite la déclaration de ces fonctionnalités en permettant notamment une manipulation aisée des données et une aide à la gestion de problématique technique (sécurité, conflit d’accès).Advantageously, the invention facilitates the declaration of these functionalities by allowing in particular easy manipulation of the data and assistance in the management of technical problems (security, access conflict).

De préférence, l’ensemble comprend un système d’utilisation de l’application, permettant à l’utilisateur de l’application d’avoir accès à l’interface graphique, avec une gestion des données souhaitées (Sur le serveur, en mémoire du poste sur lequel fonctionne l’application, ou bien à l’interface graphique), et avec le comportement dynamique attendu.Preferably, the assembly includes a system for using the application, allowing the user of the application to have access to the graphical interface, with management of the desired data (On the server, in memory of the workstation on which the application runs, or to the graphical interface), and with the expected dynamic behavior.

Selon d’autres aspects pris isolément ou combinés selon toutes les combinaisons techniquement réalisables :
- le module de définition de l’interface graphique comprend des éléments graphiques standards tels que des cases à cocher, champ texte, vidéo, image, forme graphique, champ de date/heure, champ numérique, et/ou des éléments pré réalisés proposés tels que des menus, évaluation par des étoiles, et/ou des éléments programmés par l’utilisateur ; et/ou
- l’ensemble est configuré de sorte qu’une fois l’élément de cardinalité défini dans le système de configuration, alors le système de génération pourra créer une table en base de données qui correspondra à l’élément de cardinalité, et les relations de cette table avec les autres tables de la base de données, étant également déterminé depuis ce qui a été saisi dans le système de configuration ; et/ou
- l’ensemble est configuré de sorte qu’un rajout d’un champ dans un élément de cardinalité à l’aide du système de configuration ; pourra entrainer un rajout de colonne dans la table en base de données par le système de génération ; et/ou
- l’ensemble comprend un module de détection de non-conformité configuré pour enregistrer l’interface et les évènements ayant eu lieu et pour vérifier que cela correspond à l’interface modifiée ; et/ou
- le module de détection de non-conformité est configuré pour comparer l’interface obtenue avec une simulation de l’interface initiale à laquelle est ajoutée les modifications de l’utilisateur.
According to other aspects taken in isolation or combined according to all technically feasible combinations:
- the graphic interface definition module includes standard graphic elements such as checkboxes, text field, video, image, graphic form, date/time field, numeric field, and/or pre-made elements proposed such as menus, star ratings, and/or user-programmed items; and or
- the whole is configured so that once the cardinality element has been defined in the configuration system, then the generation system will be able to create a table in the database which will correspond to the cardinality element, and the relations of this table with the other tables in the database, also being determined from what has been entered in the configuration system; and or
- the set is configured so that an addition of a field in a cardinality element using the configuration system; may cause a column to be added to the database table by the generation system; and or
- the assembly comprises a non-conformity detection module configured to record the interface and the events that have taken place and to verify that this corresponds to the modified interface; and or
- the non-conformity detection module is configured to compare the interface obtained with a simulation of the initial interface to which the user's modifications are added.

L’invention concerne en outre une méthode de création d’une application au moyen d’un ensemble selon l’une des revendications précédentes comprenant des étapes suivantes :
- définition de la charte graphique générale de l’application, comprenant des éléments graphiques modifiables,
- création, nommage de la page d’application telle qu’une page web, de ses entrées,
caractérisée par les étapes
- définition d’une liste à parcourir et d’un l’élément de « parcours de liste »,
et en ce qu’une modification des éléments graphiques modifiables entraine une mise en œuvre de requêtes de programme selon la liste et une modification correspondante de l’application.
The invention further relates to a method for creating an application by means of an assembly according to one of the preceding claims, comprising the following steps:
- definition of the general graphic charter of the application, including modifiable graphic elements,
- creation, naming of the application page such as a web page, its entries,
characterized by the steps
- definition of a list to browse and of a "list browse" element,
and in that a modification of the modifiable graphic elements leads to an implementation of program requests according to the list and a corresponding modification of the application.

Un autre objet de l’invention concerne un produit programme d’ordinateur comprenant des portions de code de programme enregistré sur un support utilisable dans une unité de commande, pour mettre en œuvre les modules d’un ensemble selon l’invention ou les étapes d’une méthode selon l’invention, lorsqu’il est exécuté par l’unité de commande.Another object of the invention relates to a computer program product comprising portions of program code recorded on a medium usable in a control unit, to implement the modules of a set according to the invention or the steps of a method according to the invention, when executed by the control unit.

L’invention sera davantage détaillée par la description de modes de réalisation non-limitatifs, et sur la base des figures annexées illustrant des variantes de l’invention, dans lesquelles :
est un schéma global de fonctionnement d’un site internet ;
est un schéma des différentes étapes de définition d’une application en utilisant l’invention ;
est un schéma d’une architecture MVC (modèle-vue-contrôleur) ;
est une illustration d’un lien de dépendance entre des tables ;
est un schéma des actions du contrôleur de la page l’application ;
est un schéma de l’automatisation de la sécurité.
The invention will be further detailed by the description of non-limiting embodiments, and on the basis of the appended figures illustrating variants of the invention, in which:
is an overall operating diagram of a website;
is a diagram of the different steps for defining an application using the invention;
is a diagram of an MVC (model-view-controller) architecture;
is an illustration of a dependency between tables;
is a diagram of the application's page controller actions;
is a diagram of security automation.

L’invention concerne la réalisation d’applications telles que des sites internet notamment, en particulier en utilisant des moyens informatiques. L’invention concerne plus particulièrement un système 1 et une méthode mise en œuvre par ordinateur, pour la réalisation d’applications.The invention relates to the production of applications such as websites in particular, in particular by using computer means. The invention relates more particularly to a system 1 and a method implemented by computer, for the realization of applications.

La réalisation d’applications, telles que les sites internet par exemple, comprend plusieurs aspects techniques relatifs aux hardwares et modules logiciels, interagissant de manière digitale pour réaliser une intégration de charte graphique spécifique identitaire, reproductible sur des ordinateurs par le biais de l’internet, et incluant également l’insertion d’informations données, relativement faciles à retrouver dans le monde par le biais de l’internet.The creation of applications, such as websites for example, includes several technical aspects relating to hardware and software modules, interacting digitally to achieve integration of a specific identity graphic charter, reproducible on computers via the Internet. , and also including the insertion of given information, relatively easy to find in the world through the internet.

L’invention ne se limite pas aux moyens présentés.
- le terme « Javascript » peut être interverti avec un autre langage ou code client.
- les « Base de données » peuvent être plus généralement des « systèmes de gestion des données »
- une « Page web » peut aussi être plus généralement une « IHM ».
The invention is not limited to the means presented.
- the term “Javascript” can be interchanged with another language or client code.
- “Databases” can more generally be “data management systems”
- a “Web page” can also more generally be an “HMI”.

Il est possible de créer une page web à partir une interface web, cela concerne surtout la définition des éléments d’IHM (Ex. en technologie web : HTML), et le style (Ex. en technologie web : CSS).It is possible to create a web page from a web interface, this mainly concerns the definition of the GUI elements (Ex. in web technology: HTML), and the style (Ex. in web technology: CSS).

Or un site web est constitué de :
- IHM : Code client : par exemple pages web : HTML + CSS + Javascript (Code client dynamisant la page),
- Logiciel serveur pour gérer les transitions entre les pages web et gérer les chargements/enregistrements des données,
- Requêtes d’accès aux données (généralement en SQL).
(On pourrait envisager d’autres systèmes de stockage de données que des bases de données, comme des fichiers par exemple).
A website is made up of:
- GUI: Client code: for example web pages: HTML + CSS + Javascript (Client code making the page more dynamic),
- Server software to manage transitions between web pages and manage data loading/savings,
- Data access queries (usually in SQL).
(One could consider other data storage systems than databases, such as files for example).

L'invention détaille comment gérer l'ensemble de ces activités depuis une interface web pour :
- Générer du code client et du logiciel serveur
- Générer la gestion du chargement/enregistrement des données en base de données, ou tout autre système de gestion des données.
The invention details how to manage all of these activities from a web interface to:
- Generate client code and server software
- Generate the management of the loading / recording of data in the database, or any other data management system.

Pour cela, un motif d'architecture innovant et une étude théorique exigeante ont été mis en œuvre.For this, an innovative architectural pattern and a demanding theoretical study have been implemented.

A cet effet, l’invention porte sur un ensemble comprenant un système de configuration et un système de génération. Le système de configuration permet à l’utilisateur de l’outil de configuration d’application d’indiquer des informations qui seront utilisées par le système de génération pour définir la structure des données. Le système de configuration permettra ensuite dans un deuxième temps de définir les données.To this end, the invention relates to an assembly comprising a configuration system and a generation system. The Configuration System allows the user of the Application Configuration Tool to specify information that will be used by the build system to define the data structure. The configuration system will then allow the data to be defined in a second step.

Outre le développement facilité, pouvoir définir la structure des données (plutôt que les données elles-mêmes) puis paramétrer les données permet de :
- de préférence, gérer aisément une gestion multilingues de l’application ;
- définir des templates d’application ; transférables (par BDD ou par fichier) puis paramétrables par un client ;
- connecter des données d’applications différentes.
In addition to easier development, being able to define the structure of the data (rather than the data itself) and then configure the data allows you to:
- preferably, easily manage multilingual management of the application;
- define application templates; transferable (by DB or by file) then configurable by a customer;
- connect data from different applications.

Un schéma global de fonctionnement d’un site internet est illustré en figure 1. De manière simplifiée, le système centralisé 2 tel qu’un serveur web a pour mission de constituer la page web, qui sera ensuite envoyée au navigateur web 3, et donc mise à disposition de l’utilisateur 4.An overall operating diagram of a website is illustrated in FIG. 1. In a simplified manner, the centralized system 2 such as a web server has the task of constituting the web page, which will then be sent to the web browser 3, and therefore made available to the user 4.

Généralement, c’est l’utilisateur 4 (Ex. : Adresse saisie dans le navigateur web) ou le navigateur web (Ex. : Clic sur un lien vers une autre page web dans une page web) qui demande au système centralisé 2 de fournir la page web, mais, il est possible que le système centralisé 2 envoie des données au navigateur dans le cas de mise en œuvre de web socket par exemple.Generally, it is the user 4 (Ex.: Address entered in the web browser) or the web browser (Ex.: Click on a link to another web page in a web page) who asks the centralized system 2 to provide the web page, but it is possible that the centralized system 2 sends data to the browser in the case of implementation of web socket for example.

Le système centralisé 2 peut envoyer l’ensemble de la page web, mais peut aussi envoyer des données qui seront ensuite utilisées par le code client de la page web pour ne mettre à jour qu’une partie de la page web.Centralized system 2 can send the entire web page, but can also send data that will then be used by the web page's client code to update only part of the web page.

Le mécanisme de chargement et d’enregistrement de page web (contenant notamment des données) est de préférence protégé, afin d’éviter qu’une personne malveillante puisse accéder à des données auxquelles il ne devrait pas avoir accès ou enregistrer des données qu’il ne devrait pas pouvoir enregistrer ou réaliser toute autre type d’action malveillante (Par exemple, un hacker malintentionné pourrait écraser toutes les données de la base de données).The mechanism for loading and saving a web page (including data) is preferably protected, in order to prevent a malicious person from accessing data to which he should not have access or saving data that he should not be able to record or perform any other type of malicious action (For example, a malicious hacker could overwrite all data in the database).

En effet, il est tout à fait possible que la personne malveillante biaise la page web envoyée au système centralisé 2, ainsi un site web ne pourra être réellement sécurisé qu’en cas de protection mise en place au niveau du système centralisé 2.Indeed, it is quite possible that the attacker skews the web page sent to the centralized system 2, so a website can only be truly secure if there is protection in place at the level of the centralized system 2.

Concernant le fonctionnement logiciel du système centralisé 2, tel qu’un serveur web, le cas général est détaillé selon une architecture trois tiers : Présentation (Navigateur) / Traitement / Accès aux données :Concerning the software operation of the centralized system 2, such as a web server, the general case is detailed according to a three-tier architecture: Presentation (Browser) / Processing / Access to data:

Le navigateur web 3 envoie au système centralisé 2 des données qui sont de deux types :
- des données saisies par l’utilisateur,
- des éléments de contexte permettant au système centralisé 2 de déterminer ce qu’il doit faire des données envoyées.
The web browser 3 sends to the centralized system 2 data which are of two types:
- data entered by the user,
- context elements allowing the centralized system 2 to determine what it should do with the data sent.

Le système de génération permet de générer l’interface entre l’application et un système centralisé. La structuration des données au niveau du système de configuration permet également de donner assez d’informations pour pouvoir générer ces éléments de contexte.The generation system is used to generate the interface between the application and a centralized system. The structuring of the data at the level of the configuration system also makes it possible to provide enough information to be able to generate these contextual elements.

Le système centralisé 2 détermine le traitement à effectuer concernant les données reçues du navigateur 3. Notamment, des contrôles ont lieu pour assurer l’intégrité des données enregistrées.The centralized system 2 determines the processing to be carried out concerning the data received from the browser 3. In particular, checks take place to ensure the integrity of the recorded data.

Le système centralisé 2 applique le traitement déterminé ; notamment cela peut être l’enregistrement des données envoyées au serveur.The centralized system 2 applies the determined processing; in particular, this may be the recording of data sent to the server.

Le système centralisé 2 détermine le traitement à effectuer pour fournir les informations au navigateur 3 en retour.The centralized system 2 determines the processing to be carried out to provide the information to the browser 3 in return.

Le système centralisé 2 applique le traitement déterminé ci-dessus, avec la récupération possible des données.The centralized system 2 applies the processing determined above, with the possible recovery of the data.

Les informations sont envoyées au navigateur 3. Elles sont de 2 types :
- les données utilisées pour la page web : HTML, CSS, Code client, et Données
- les éléments de contexte d’utilisation permettant d’indiquer au navigateur web 3 comment utiliser les données dans la page web.
The information is sent to the browser 3. It is of 2 types:
- the data used for the web page: HTML, CSS, Client Code, and Data
- the use context elements making it possible to indicate to the web browser 3 how to use the data in the web page.

L’utilisation des éléments de contexte est particulièrement vraie, quand il s’agit de ne mettre à jour qu’une partie de la page web. Dans le cas d’un passage d’une page à une autre, les éléments de contexte correspondent au nom de la page source, et la page destinataire ainsi que ses données d’entrée.The use of context elements is particularly true when it comes to updating only part of the web page. In the case of a passage from one page to another, the context elements correspond to the name of the source page, and the destination page as well as its input data.

la figure 2 illustre une architecture MVC (modèle-vue-contrôleur).Figure 2 illustrates an MVC (model-view-controller) architecture.

Un standard de développement de site web consiste à appliquer une architecture dite MVC :
- V : Une vue contient la présentation de l'interface utilisateur, notamment l’aspect graphique.
- C : Un contrôleur contient la logique concernant les actions effectuées par l'utilisateur. Pour une meilleure gestion, le contrôleur est composé de deux parties :
. Le routeur qui est le point d’entrée unique des sollicitations du navigateur au système centralisé 2. Cela permet de rendre du code commun entre les différentes pages web.
. Le contrôleur spécifique gérant les spécificités de la page web.
- M : Un modèle contient les données et les traitements à effectuer sur les modèles (Une programmation objet se prête donc bien à cet exercice). Les modèles représentent les concepts utilisés dans l’application (Utilisateurs, mail, …).
A website development standard consists in applying a so-called MVC architecture:
- V: A view contains the presentation of the user interface, in particular the graphic aspect.
- C: A controller contains the logic concerning the actions carried out by the user. For better management, the controller is composed of two parts:
. The router, which is the single entry point for requests from the browser to the centralized system 2. This makes it possible to make common code between the different web pages.
. The specific controller managing the specifics of the web page.
- M: A model contains the data and the processing to be performed on the models (Object programming is therefore well suited to this exercise). The models represent the concepts used in the application (Users, email, etc.).

Une fois l’application générée et utilisée, le flux de données est toujours le même. De façon simplifiée : la page est chargée avec les données issues de la base de données, et les données saisies par l’utilisateur de l’application sont enregistrées en base de données.Once the application is generated and used, the data flow is always the same. In a simplified way: the page is loaded with the data from the database, and the data entered by the user of the application is saved in the database.

La particularité de l’invention est de rajouter lors de la description de la vue :
- les éléments de parcours de liste,
- les éléments des cardinalité,
- les mappings à l’enregistrement et au chargement.
The particularity of the invention is to add during the description of the view:
- list traversal elements,
- the elements of the cardinalities,
- mappings on saving and loading.

Ceci permet de définir des tables en base de données, leurs relations (ce qui est un élément fondamental des bases de données relationnelles), ainsi que les requêtes d’enregistrement et de chargement des données.This makes it possible to define tables in the database, their relationships (which is a fundamental element of relational databases), as well as the requests for saving and loading data.

La figure 3 illustre différentes étapes de définition d’une application telle qu’un site web en utilisant l’invention. Les étapes avec une bordure en gras sont spécifiques à l’invention.Figure 3 illustrates different steps for defining an application such as a website using the invention. Steps with a bold border are specific to the invention.

Les CMS sont des sites proposant des fonctionnalités prêtes avec la possibilité de les personnaliser dans une certaine mesure. L’invention ne rentre de préférence pas dans cette démarche : l’objectif est de fournir un outil pour simplifier et accélérer le développement d’un site web sur-mesure.CMS are sites that come with ready features with the ability to customize them to some extent. The invention preferably does not fit into this approach: the objective is to provide a tool to simplify and accelerate the development of a tailor-made website.

Le principe général de l’invention consiste à ajouter des compléments d’informations depuis le système de configuration de la vue pour permettre ensuite de générer l’ensemble de l’application, par exemple un site web, coté serveur et coté client.The general principle of the invention consists in adding additional information from the view configuration system to then allow the entire application to be generated, for example a website, server side and client side.

Cette simplification utilisera par contre des méthodes facilitatrices mises en œuvre par exemple par les CMS :
- l’utilisation d’interfaces graphiques et notamment WYSIWYG (« whatyouseeiswhatyouget ») ;
- l’automatisation de la réalisation d’un certain nombre de traitements techniques coté serveur et navigateur.
However, this simplification will use facilitating methods implemented for example by the CMS:
- the use of graphical interfaces and in particular WYSIWYG (“whatyouseeiswhatyouget”);
- the automation of the realization of a certain number of technical processing on the server and browser side.

Le graphique de la figure 3 explique les différentes étapes de définition d’une application en utilisant l’invention.The graph in Figure 3 explains the different steps for defining an application using the invention.

Le HTML/CSS, traitement javascript (=Code client), traitement serveur et modèle de base de données sont des éléments classiques mentionnés ci-dessous. « javascript » est un exemple de langage de programmation. D’autres langages pourraient être utilisés dans le cadre de l’invention tels que l’angular.The HTML/CSS, javascript processing (=Client code), server processing and database model are classic elements mentioned below. "javascript" is an example of a programming language. Other languages could be used in the context of the invention such as Angular.

Une attention est à porter à ces colonnes de la figure 3 :
- Modèle VUE : Il permet au créateur de la page web d’indiquer quelle est la structure des données de la page web. C’est cette connaissance qui sera exploitée pour définir le modèle de données du système centralisé, et le modèle logiciel des données locales de l’application générée.
- Modèle logiciel (code client/javascript): Utilisant la mémoire locale de la machine de l’utilisateur, il permet à la page web de manipuler les données, comme par exemple pour charger les données issues de la base de données.
Attention should be paid to these columns in Figure 3:
- VIEW model: It allows the creator of the web page to indicate what is the data structure of the web page. It is this knowledge that will be used to define the data model of the centralized system, and the software model of the local data of the generated application.
- Software model (client code/javascript): Using the local memory of the user's machine, it allows the web page to manipulate data, such as for example to load data from the database.

Les étapes de création d’une application en utilisant l’invention sont :
- E1/ Définition de la charte graphique générale de l’application. C’est une fonction classique des CMS.
- E2/ Création, nommage de la page d’application telle qu’une page web, et de ses entrées.
- E3/ Indication de l’autorisation de se connecter en direct à la page (C’est-à-dire en saisissant l’URL de la page web).
- E4/ Définition de la liste à parcourir et de l’élément de « parcours de liste ». C’est un concept propre à cette invention.
- E5/ Les comportements des éléments de parcours de liste doivent également être définis, notamment en cas d’ouverture par défaut, et en termes de traitement de fermeture par défaut.
- E6/ L’élément de cardinalité est un élément permettant de traiter différents types de fonctionnement lors du parcours de la liste. C’est un concept propre à cette invention.
- E7/ Grâce à l’introduction des deux items précédents, il est possible de générer automatiquement les tables en base de données, ainsi que les relations les liant, et de préférence effectuer des déclarations de clés fonctionnelles. Cela diffère des CMS qui associent simplement une table à un formulaire (=Ecriture). Il s’agit là de pouvoir modéliser et utiliser tout type de structure de données par niveau de cardinalité (=Modèle données système), pour une utilisation autant en lecture qu’en écriture de données. Ce format de données est également reporté pour stocker et gérer les données dans le navigateur web (=Modèle logiciel).
- E8/ Il s’agit de déclaration de blocs E8a et de champs E8, c'est-à-dire d’éléments IHM tels que HTML et CSS, notamment sous forme d’interface WYSIWYG.
- E9/ Ce bloc permet de lier les données de la vue aux données de la base de données. Il peut en outre y avoir un mapping avec des objets associables. L’innovation vient de E4/ E6/ et E9/ notamment qui permettent de définir n’importe quel type de structure de données ; et donc permet de créer tout type d’application.
- E10/ L’item précédent permet par un mécanisme de génération automatique de compléter les tables avec les champs liés (notamment par ajout, modification, ou suppression de colonnes), mais aussi de créer les requêtes de récupération de données, de mise à jour, ou de suppression d’élément en base de données.
- E11/ Déclaration des comportements en cas de non-conformité, de gestion de conflit d’accès, et de tentative de fraude coté navigateur et serveur, ainsi que les traitements coté navigateur et serveur. L’invention propose une méthode de détection générique de ce type de problème.
E12/ La dernière partie consiste à définir des traitements associés à des événements sur la page web (=Actions sur la page web par l’utilisateur principalement ou réception de signaux externes par websocket par exemple).
The steps for creating an application using the invention are:
- E1/ Definition of the application's general graphic charter. This is a classic CMS function.
- E2/ Creation, naming of the application page such as a web page, and its entries.
- E3/ Indication of authorization to connect directly to the page (ie by entering the URL of the web page).
- E4/ Definition of the list to be browsed and of the “list browsing” element. This is a concept specific to this invention.
- E5/ The behaviors of list traversal elements must also be defined, in particular in the case of default opening, and in terms of default closing processing.
- E6/ The cardinality element is an element making it possible to process different types of operation when traversing the list. This is a concept specific to this invention.
- E7/ Thanks to the introduction of the two previous items, it is possible to automatically generate the tables in the database, as well as the relations linking them, and preferably to make declarations of functional keys. This differs from CMSs which simply associate a table with a form (=Write). This is to be able to model and use any type of data structure by level of cardinality (= System data model), for use both in reading and writing data. This data format is also reported for storing and managing data in the web browser (=Software model).
- E8/ This concerns the declaration of E8a blocks and E8 fields, ie HMI elements such as HTML and CSS, in particular in the form of a WYSIWYG interface.
- E9/ This block is used to link view data to database data. There can also be a mapping with associable objects. The innovation comes from E4/ E6/ and E9/ in particular which make it possible to define any type of data structure; and therefore allows you to create any type of application.
- E10/ The previous item allows, through an automatic generation mechanism, to complete the tables with the linked fields (in particular by adding, modifying, or deleting columns), but also to create requests for data recovery, updating , or deleting an item from the database.
- E11/ Declaration of behavior in the event of non-compliance, management of access conflict, and attempted fraud on the browser and server side, as well as the processing on the browser and server side. The invention proposes a generic detection method for this type of problem.
E12/ The last part consists in defining processes associated with events on the web page (= Actions on the web page mainly by the user or reception of external signals by websocket for example).

Alternativement ou en combinaison, la réalisation de l’application peut être faite sur la base d’un ou plusieurs modèles (template) prédéveloppés ou réalisés suivant les étapes de la méthode de l’invention. On pourra parler de données de modèles. Les modifications sont alors faites à partir de la vue du modèle en cause.Alternatively or in combination, the realization of the application can be made on the basis of one or more models (template) predeveloped or produced according to the steps of the method of the invention. We can talk about model data. The modifications are then made from the view of the model in question.

La création de l’application est mise en œuvre par un ensemble de systèmes particuliers (ou kit). L’invention est mise en œuvre dans un système centralisé 2 tel qu’un serveur web connecté à des unités de commandes telles que des ordinateurs d’utilisateurs de l’application.The creation of the application is implemented by a set of particular systems (or kit). The invention is implemented in a centralized system 2 such as a web server connected to control units such as application user computers.

L’ensemble comprend un système de configuration d’application, qui comprend :
- un module de manipulation des données. Ces données pourront être situées lors de l’utilisation de l’application sur un système centralisé tel qu’un serveur, au niveau du poste de l’utilisateur de l’application, ou bien directement saisies dans l’interface graphique de l’utilisateur. Ce module peut permettre, entre autre, de définir des données à parcourir,
- un module de définition de l’interface graphique de site modifiable, permettant de définir plusieurs types d’éléments :
o des éléments graphiques standards (Ex. Cases à cocher, champ texte, vidéo, image, …) ;
o des éléments pré réalisés proposés par le site internet (Ex. : Menu, évaluation par des étoiles, ..) ;
o des éléments de parcours de liste, pour parcourir la liste et mettre en œuvre les requêtes de programme correspondantes ;
o des éléments de cardinalité, qui seront appelés par les éléments de parcours de liste à bon escient en fonction de leurs caractéristiques ;
- Un module de gestion d’événements, permettant de définir à chaque type d’événements possibles (Ex. Clic sur un bouton) le comportement attendu.
The set includes an application configuration system, which includes:
- a data manipulation module. This data may be located when using the application on a centralized system such as a server, at the application user's workstation, or directly entered in the user's graphical interface. . This module can be used, among other things, to define the data to be browsed,
- a module for defining the modifiable site graphical interface, allowing you to define several types of elements:
o standard graphic elements (e.g. check boxes, text field, video, image, etc.);
o pre-made elements offered by the website (Ex.: Menu, rating by stars, etc.);
o list browsing elements, to browse the list and implement the corresponding program requests;
o cardinality elements, which will be called by the list traversal elements wisely according to their characteristics;
- An event management module, allowing the expected behavior to be defined for each type of possible event (Ex. Click on a button).

Ainsi, l’invention facilite la déclaration de ces fonctionnalités en permettant notamment une manipulation aisée des données, une aide à la gestion de problématiques techniques (sécurité, conflit d’accès).Thus, the invention facilitates the declaration of these functionalities by allowing in particular easy manipulation of the data, assistance in the management of technical problems (security, access conflict).

L’ensemble comprend en outre un système de génération de l’application :The set also includes an application generation system:

L’analyse des données saisies dans le système de configuration d’application permet de mettre en œuvre automatiquement plusieurs éléments, notamment :
- la structure et les requêtes d’accès à la base de données,
- l’interface entre l’application et le serveur,
- le contrôleur.
Analyzing the data entered into the application configuration system automatically implements several things, including:
- the structure and the requests for access to the database,
- the interface between the application and the server,
- the controller.

L’ensemble comprend en outre un système d’utilisation de l’application :The set also includes a system for using the application:

Le système permet ensuite d’utiliser le système pour que l’utilisateur de l’application ait accès à l’interface graphique, avec une gestion des données souhaitée (sur le système centralisé 2, au niveau du poste sur lequel fonctionne l’application, ou bien à l’interface graphique), et avec le comportement dynamique attendu.The system then makes it possible to use the system so that the user of the application has access to the graphical interface, with the desired data management (on the centralized system 2, at the level of the station on which the application operates, or to the graphical interface), and with the expected dynamic behavior.

L’invention est basée sur des modules informatiques de réalisation de site web, permettant d’optimiser ladite réalisation en gain de temps par rapport au développement sur mesure, et en capacité de personnalisation par rapport aux systèmes CMS classiques.The invention is based on computer modules for website production, making it possible to optimize said production in terms of time savings compared to custom development, and in terms of customization capacity compared to conventional CMS systems.

Parmi ces modules, l’invention comprend un module de configuration de données de vues modifiables à afficher. Ce module permet de mettre en œuvre une définition de la charte graphique générale de l’application. Il s’agit en particulier du clavier et de la souris 4a, et du code serveur et données de l’application 4b.Among these modules, the invention comprises a module for configuring data of modifiable views to be displayed. This module makes it possible to implement a definition of the general graphic charter of the application. These are in particular the keyboard and mouse 4a, and the server code and application data 4b.

Ce module peut comprendre en outre des moyens pour la création, et le nommage de la page web, de ses entrées.This module may further comprise means for creating and naming the web page, its entries.

De plus, ce module peut comprendre en outre des moyens d’indication de l’autorisation de se connecter en direct à la page web (C’est-à-dire en saisissant l’URL de la page web).In addition, this module may also include means for indicating the authorization to connect directly to the web page (i.e. by entering the URL of the web page).

L’invention comprend un module de vue pour afficher une interface graphique modifiable. L’interface sera davantage détaillée plus bas.The invention includes a view module for displaying an editable graphical interface. The interface will be further detailed below.

L’invention comprend en outre un module de liste à parcourir, pour définir des données à parcourir, et les associer à des requêtes de programme correspondantes.The invention further comprises a browse list module, for defining data to browse, and associating it with corresponding program requests.

Ces modules font partie du système de configuration.These modules are part of the configuration system.

L’invention comprend en outre un système de gestion des données tel qu’une base de données relationnelle, pour associer des données de liste de vue à des données correspondantes de liste de serveur,The invention further includes a data management system such as a relational database, for associating view list data with corresponding server list data,

L’invention comprend en outre un module de parcours de liste, pour parcourir la liste et mettre en œuvre les requêtes de programme correspondantes.The invention further comprises a list traversal module, for traversing the list and implementing the corresponding program requests.

Le module de parcours de liste et de la liste à parcourir et le module d’élément de cardinalité ont été conçus pour mettre en place un système permettant d’identifier de manière unique les données d’une page web, cela quel que soit la fonctionnalité de l’application. La mise en place de ce système permettra par la suite de pouvoir gérer la lecture/écriture des données de la vue à la base de données.The List and To-Go List Parsing Module and Cardinality Element Module were designed to implement a system to uniquely identify data on a web page, regardless of functionality. of the app. The implementation of this system will then make it possible to manage the reading/writing of data from the view to the database.

Les constitutions classiques des requêtes de bases de données soulèvent certaines incertitudes et des ambigüités. En particulier, dans le cas d’un site de réservation d’hôtel avec une requête SQL permettant de récupérer les données afin d’associer une note à sa réservation serait du type :
« SELECT
hotel.adresse ,
reservation.datereservation ,
reservation.note
FROM reservation
JOIN hotel ON hotel.id = reservation.hotel _id
WHERE reservation.utilisateur _id = <mon id technique d’utilisateur> ».
The classic constitutions of database queries raise certain uncertainties and ambiguities. In particular, in the case of a hotel reservation site with an SQL query to retrieve data in order to associate a note with its reservation would be of the type:
SELECT
hotel.address ,
reservation.datereservation ,
reservation.note
FROM booking
JOIN hotel ON hotel.id = reservation.hotel _id
WHERE reservation.user_id = < my technical user id> ”.

L’analyse de la requête SQL ne permet pas de déterminer à quelle(s) donnée(s) fonctionnelles se rapporte(nt) la note sur la réservation : l’hôtel, la réservation, ou les deux (Dans notre cas, la note sur la réservation se rapporte bien entendu à la réservation).The analysis of the SQL query does not make it possible to determine to which functional data(s) the note on the reservation relates: the hotel, the reservation, or both (In our case, the note on the reservation naturally refers to the reservation).

L’invention propose de lever cette ambiguïté, de telle sorte que l’utilisateur n’ait pas à déclarer, dans la requête SQL, la manière de récupérer les données informatives, mais juste de définir les données à parcourir : C’est la liste à parcourir.The invention proposes to remove this ambiguity, so that the user does not have to declare, in the SQL query, the way of retrieving the informative data, but just to define the data to be browsed: This is the list to browse.

Dans l’exemple précédent, cela donnerait la requête de base de données suivante :
« SELECT id FROM reservation WHERE utilisateur_id = <mon idtechnique d’utilisateur> ».
In the previous example, this would yield the following database query:
"SELECT id FROM reservation WHERE user_id = <my technical user id> ".

L’implémentation de l’invention propose une interface graphique pour définir les requêtes SQL ; et un système complémentaire permettant de définir la manière de récupération des éléments informatifs complémentaires nécessitant de solliciter d’autres tables (ce que permettait la jointure avec le JOIN supprimé dans l’exemple). Ce système sera décrit plus bas.The implementation of the invention provides a graphical interface for defining SQL queries; and an additional system allowing to define the way of retrieval of the additional informative elements requiring to solicit other tables (which allowed the join with the JOIN deleted in the example). This system will be described below.

En complément, un moyen est mis en place pour pouvoir parcourir la liste définie, mais aussi pour pouvoir couvrir les besoins réels de réalisation de jointure : C’est l’élément de parcours de liste.In addition, a means is put in place to be able to browse the defined list, but also to be able to cover the real needs for performing a join: This is the list traversal element.

Par exemple, dans le cas où les champs d’une page web sont associés aux éléments à la requête suivante :
« SELECT liste1.id , liste2.id
FROM nom AS liste1
JOIN date AS liste2 ON liste 2 .valeur = liste 1 .datecreation
WHERE liste1.texte LIKE ’%a%’ AND liste2.valeur >’2019-01-02’ » ;
For example, in the case where the fields of a web page are associated with the elements of the following query:
« SELECT list1.id , list2.id
FROM name AS list1
JOIN date AS list2 ON list 2 .value = list 1 .datecreation
WHERE list1.text LIKE '%a%' AND list2.value >'2019-01-02' ”;

Alors, cela sera défini dans l’invention avec ce type de forme:
« Elément de parcours de liste nommé liste 1 » tel que « liste 1 : SELECT id FROM nom WHERE nom. texte LIKE %a%’ »
« Elément de parcours de liste nommé liste 2 » tel que « liste 2 : SELECT id FROM date WHERE date.valeur >’2019-01-02’ ANDdate.valeur =liste1.datecreation »
So, this will be defined in the invention with this type of form:
List traversal item named list 1 ” such as “ list 1: SELECT id FROM name WHERE name. text LIKE ' %a%' "
" List traversal element named list 2 " such as " list 2: SELECT id FROM date WHERE date.value >'2019-01-02' ANDdate.value = list1.datecreation "

Il est donc possible ici de faire appel aux données de liste 1 ou de liste 2 tout en ayant une dépendance entre la liste 1 et la liste 2.It is therefore possible here to call on the data from list 1 or list 2 while having a dependency between list 1 and list 2.

L’utilisateur définit la récupération des données sous forme de 2 requêtes plutôt qu’une seule. Par contre, l’implémentation des 2 requêtes pourra être faite en une seule requête (Ce qui est beaucoup plus performant en temps de calcul).The user defines the data retrieval as 2 queries rather than just one. On the other hand, the implementation of the 2 requests can be done in a single request (which is much more efficient in computation time).

Comme mentionné précédemment, il est nécessaire d’arriver à déterminer quels sont les identifiants d’une liste à parcourir, afin de pouvoir ensuite identifier les éléments de cardinalité qui seront associés à l'élément de liste à parcourir.As mentioned previously, it is necessary to be able to determine which are the identifiers of a list to be traversed, in order to then be able to identify the cardinality elements which will be associated with the list element to be traversed.

Ainsi, il est nécessaire de connaitre les différentes formes possibles de constitution des listes à parcourir pour déterminer l’identifiant de la liste.Thus, it is necessary to know the different possible forms of constitution of the lists to be scanned to determine the identifier of the list.

Généralement, l’identifiant d’une liste à parcourir est un identifiant d’une table ; mais il existe quelques singularités par exemple :
- L’utilisation de UNION nécessite de distinguer la requête
- L’utilisation de GROUP BY fait que les identifiants sont les éléments utilisés dans le « GROUP BY ». Exception faite si la requête est de type « SELECT MAX/MIN(identifiant) FROM table WHERE … GROUP BY … », où dans ce cas précis l’identifiant est de type identifiant de la table
- Il est possible de constituer une liste de manière mathématique ou algorithmique : par exemple tous les éléments allant de 1 jusqu’à 10.
Generally, the identifier of a list to browse is an identifier of a table; but there are some singularities for example:
- Using UNION requires distinguishing the query
- The use of GROUP BY means that the identifiers are the elements used in the "GROUP BY". Except if the query is of the "SELECT MAX/MIN(identifier) FROM table WHERE … GROUP BY …" type, where in this specific case the identifier is of the table identifier type
- It is possible to build a list mathematically or algorithmically: for example all the elements ranging from 1 to 10.

En synthèse, la détermination des identifiants fonctionnels d’un élément de cardinalité s’obtient grâce à la connaissance des données suivantes :
- La définition et l’analyse (détaillées ci-dessous) de l’arborescence des éléments à parcourir et des éléments de cardinalité ;
- Les identifiants fonctionnels des listes d’éléments à parcourir ;
- L’obligation ou pas d’associer l’élément de cardinalité à son rédacteur ;
- L’obligation ou pas d’associer l’élément de cardinalité à son instant d’enregistrement ;
- La cardinalité de l’élément de cardinalité (détaillé ci-dessous).
In summary, the determination of the functional identifiers of a cardinality element is obtained thanks to the knowledge of the following data:
- The definition and analysis (detailed below) of the tree structure of elements to browse and cardinality elements;
- The functional identifiers of the lists of elements to browse;
- The obligation or not to associate the cardinality element with its writer;
- The obligation or not to associate the cardinality element with its recording time;
- The cardinality of the cardinality element (detailed below).

Cela permet donc de :
- Identifier de manière unique chaque élément de cardinalité appelé dans la page web ; donc tous les éléments contenus dans les éléments de cardinalité (C’est-à-dire tous les éléments de la page);
- Définir les tables de bases de données ainsi que les liens de type « clefs fonctionnelles » ;
- Identifier en base de données l’élément à lire, mettre à jour, ou à supprimer.
This therefore allows you to:
- Uniquely identify each cardinality element called in the web page; so all the elements contained in the cardinality elements (i.e. all the elements on the page);
- Define the database tables as well as the "functional keys" type links;
- Identify in the database the element to read, update, or delete.

Le système comprend en outre un module d’élément de cardinalité pour préciser le comportement de champs contenus dans le module de parcours de liste.The system further includes a cardinality element module to specify the behavior of fields contained in the list traversal module.

Lors du parcours des différents éléments de la liste, il peut être intéressant de préciser le comportement des champs contenus dans l’élément de parcours de liste.When browsing the different elements of the list, it may be interesting to specify the behavior of the fields contained in the list browsing element.

Dans une variante, il y a une alternance hiérarchique entre les éléments de parcours de liste et les éléments de cardinalité. Ainsi, les éléments de parcours de liste peuvent contenir des éléments de cardinalité, et les éléments de cardinalité peuvent contenir des éléments de parcours de liste.In a variant, there is a hierarchical alternation between the list traversal elements and the cardinality elements. Thus, list traversal elements can contain cardinality elements, and cardinality elements can contain list traversal elements.

Ainsi, on peut distinguer plusieurs comportements possibles. Ces comportements seront définis à l’aide de nouveaux blocs : ce sont les éléments de cardinalité.Thus, several possible behaviors can be distinguished. These behaviors will be defined using new blocks: these are the cardinality elements.

Les différents comportements des éléments de cardinalité sont :
- Le bloc n’est appelé qu’une seule fois ET que s’il existe au moins un élément dans la liste à parcourir ;
- Le bloc n’est appelé qu’une seule fois ET que s’il n’existe pas d’élément dans la liste à parcourir ;
- Le bloc n’est appelé qu’une seule fois (quel que soit le nombre d’éléments dans la liste à parcourir) ;
- Le bloc est appelé 1 fois par élément de la liste à parcourir ;
- Le bloc est appelé 1 fois par élément de la liste à parcourir ou 1 fois s’il n’existe pas d’éléments dans la liste à parcourir.
The different behaviors of cardinality elements are:
- The block is only called once AND only if there is at least one element in the list to browse;
- The block is only called once AND only if there is no element in the list to browse;
- The block is only called once (regardless of the number of elements in the list to browse);
- The block is called once per element of the list to browse;
- The block is called once per element of the list to browse or once if there are no elements in the list to browse.

Ces mécanismes permettent de donner de la latitude pour gérer les différentes fonctionnalités que l’on pourrait avoir besoin.These mechanisms make it possible to give latitude to manage the different functionalities that one might need.

L’invention vise à dissocier les requêtes d’accès aux données entre celles qui définissent les données à parcourir et le parcours de la structure de la table de données pour pouvoir récupérer des informations.The invention aims to dissociate the data access requests between those which define the data to be traversed and the traversal of the structure of the data table in order to be able to retrieve information.

Prenons comme exemple une application contenant
- Un élément de parcours de liste nommé listeA associé à une liste construite mathématiquement allant de 1 jusqu’à 10 par pas de 1 ; contenant un élément de cardinalité nommé cardinaliteA de type« appel à chaque élément de la liste à parcourir » ; contenant lui-même un bloc IHM nommé texteA de type « texte à saisir » ;
- Un élément de parcours de liste nommé listeD ; contenant un élément de cardinalité nommé cardinaliteD de type « appel à chaque élément de la liste à parcourir » ; contenant lui-même un bloc IHM nommé texteD de type « texte à saisir »,
- Un élément de parcours de liste nommé listeE ; contenant un élément de cardinalité nommé cardinaliteE de type « appel à chaque élément de la liste à parcourir » ; contenant lui-même un bloc IHM nommé texteE de type « texte à saisir ».
Take as an example an application containing
- A list traversal element named listeA associated with a mathematically constructed list ranging from 1 to 10 in steps of 1; containing a cardinality element named cardinaliteA of type "call to each element of the list to browse"; itself containing an HMI block named textA of the "text to enter"type;
- A list traversal element named listeD; containing a cardinality element named cardinaliteD of type “call to each element of the list to browse”; itself containing an HMI block named textD of the "text to enter" type,
- A list traversal element named listeE; containing a cardinality element named cardinaliteE of type "call to each element of the list to browse"; itself containing an HMI block named textE of the "text to enter" type.

Puis un élément de parcours de liste nommé listeB associé à une liste à parcourir constituée de données de l’élément de cardinalité cardinaliteA. listeB contient un élément de cardinalité nommé cardinalitéB de type « appel à chaque élément de la liste à parcourir ».Then a list traversal element named listB associated with a list to traverse consisting of data from the cardinality element cardinalityA. listB contains a cardinality element named cardinalityB of type "call each element of the list to iterate".

L’élément de cardinalité cardinaliteB contient :
-un bloc IHM nommé texteB de type texte à saisir.
- un élément de parcours de liste nommé listeC associé à une liste à parcourir de type SQL utilisant un « GROUP BY » groupé avec un champ texteF et avec un champ nommé maxdate issu d’une fonction d’agrégat dans la requête SQL. listeC contient un élément de cardinalité nommé cardinalitéC de type « appel à chaque élément de la liste à parcourir ».
The cardinality element cardinalityB contains:
-an HMI block named textB of type text to enter.
- a list traversal element named listeC associated with an SQL-type traversal list using a "GROUP BY" grouped with a textF field and with a field named maxdate from an aggregate function in the SQL query. listeC contains a cardinality element named cardinalitéC of type “call to each element of the list to browse”.

L’élément de cardinalité cardinaliteC contient à la fois
- un bloc IHM nommé texteC de type texte à saisir ;
- un bloc IHM nommé lienD de type lien vers un élément de cardinalité faisant référence un élément à l’élément de cardinalité D ;
- un bloc IHM nommé listederoulanteE de type liste déroulante dépendant de E du type.
The cardinality element cardinaliteC contains both
- an HMI block named textC of type text to enter;
- an IHM block named lienD of type link to an element of cardinality referring an element to the element of cardinality D;
- an HMI block named listederoulanteE of drop-down list type depending on E of the type.

Le tableau ci-dessous détaille les données disponibles depuis l’élément de cardinalité C: Table accessible Elément disponible Attributs accessibles 1 B texteB "value" (Sauf pour graduation et icur)
Si présent Date création, date de dernière modification, et utilisateur ayant créé l'information
Autres caractéristiques HTML du champ (disabled hidden, …) si existants et présent dans la page WEB
2 B.parcours=>A texteA 3 B.parcours=>A.parcours graduation 4 C texteC 5 C.parcours texteF 6 C.parcours maxdate 7 C.lienD=>D texteD 8 C listederoulanteE 9 C.listederoulanteE=>E texteE 10 C icur 11 B icur
The table below details the data available from the C cardinality element: no. Accessible table Item available Accessible attributes 1 B textB "value" (Except for graduation and icur)
If present Creation date, last modification date, and user who created the information
Other HTML characteristics of the control (disabled hidden, …) if existing and present in the WEB page
2 B.course=>A textA 3 B.path=>A.path graduation 4 VS textC 5 C. course textF 6 C. course maxdate 7 C.linkD=>D textD 8 VS rolling list 9 C.dropdown listE=>E textE 10 VS here 11 B here

Les raisons qui expliquent l’accès aux données sont :
- n°4 et 8 : Les données sont présentes dans l’élément de cardinalité ;
- n°7 : Les liens vers d’autres tables sont définis dans l’élément de cardinalité ;
- n°9 : La liste déroulante fait référence à cette table ;
- n°5 et 6 : Ceux sont les données associées à l’élément parcouru ;
- n°1 : Il est possible d’obtenir les données présentes dans les éléments de cardinalité amont ;
- n°2 : Les données associées aux éléments parcourus amont sont accessibles ;
- n°3 : Capacité de cheminement dans la structure (Enchainement de « .parcours »), et la récupération de données de type liste constituée avec le nom « graduation » dédié ;
- n°10 et 11 : Les numéros d’incrément des listes parcourues au sein d’un bloc de cardinalité.
The reasons for accessing the data are:
- n°4 and 8: The data is present in the cardinality element;
- n°7: Links to other tables are defined in the cardinality element;
- n°9: The drop-down list refers to this table;
- Nos. 5 and 6: These are the data associated with the item browsed;
- n°1: It is possible to obtain the data present in the upstream cardinality elements;
- n°2: The data associated with the elements traversed upstream are accessible;
- n°3: Ability to progress in the structure (Sequence of ".parcours"), and the recovery of list type data constituted with the dedicated name "graduation";
- n°10 and 11: The increment numbers of the lists traversed within a block of cardinality.

Ainsi, le lien aux données est très adhérent à la vue, ce qui montre une nouvelle fois que le schéma de modèle des données (dont la base de données) est donc complètement défini par la forme de la vue dans cette invention, et permet de naviguer aisément au sein de ce modèle de données.Thus, the link to the data is very adherent to the view, which shows once again that the data model schema (including the database) is therefore completely defined by the form of the view in this invention, and makes it possible to navigate easily within this data model.

Il est possible si besoin d’insérer des requêtes de lecture de données si besoin de récupérer d’autres informations.It is possible if necessary to insert requests to read data if necessary to retrieve other information.

Le graphique de la figure 4 montre qu’il est possible d’associer de manière unique :
- un élément de la table A à un élément de la table B en suivant le lien de B vers A (Parcours, lien, liste déroulante), cf flèche du haut sur la figure 4, possible pour toutes les données de B pointant vers la table A ;
- ET Un élément de la table C à un élément de la table B si l’unicité est assurée : un élément C ne peut être associé qu’à un seul élément B cf flèche du bas sur la figure 4, où la table C n’est associée qu’à l’identifiant technique de B (= 1 clef unique et pas de sauvegarde par utilisateur ou par enregistrement).
The graph in Figure 4 shows that it is possible to uniquely associate:
- an element of table A to an element of table B by following the link from B to A (Browse, link, drop-down list), see top arrow in figure 4, possible for all data from B pointing to the table A;
- AND An element of table C with an element of table B if uniqueness is ensured: an element C can only be associated with a single element B cf bottom arrow in figure 4, where table C n is associated only with the technical identifier of B (= 1 unique key and no backup per user or per record).

Un mapping des données en base de données est effectué.A mapping of the data in the database is carried out.

En reprenant le champ nommé texteC dans l’exemple précédent, le mapping par défaut aurait la forme indiquée ci-dessous ; mais il serait possible de préciser le fonctionnement autrement comme cela est montré dans le deuxième bloc ci-dessous :
Mapping par défaut
« Enregistrement et chargement : C.texteC
Valeur par défaut si chargement indéfini :  "  " »
« Enregistrement : C.texteC
Chargement  : B .texteB
Valeur par défaut si chargement indéfini :  "Bonjour" »
Using the field named textC in the previous example, the default mapping would have the form shown below; but it would be possible to specify the operation differently as shown in the second block below:
Default mapping
Saving and loading: C.texteC
Default value if indefinite loading: """
Record : C.texteC
Loading : B .textB
Default value if indefinite loading: "Hello" »

Les éléments de parcours de liste, de cardinalité, et IHM (par exemple HTML) peuvent être utilisés pour réaliser des tableaux. La navigation facilitée des données permet donc de pouvoir s’approcher d’un fonctionnement proposé par les tableurs bureautiques.List traversal, cardinality, and UI (e.g. HTML) elements can be used to make arrays. The easier navigation of data therefore makes it possible to approach an operation proposed by office spreadsheets.

Au moins 5 fonctionnalités sont mises à disposition pour pouvoir reconstituer un fonctionnement s’approchant de celui proposé par des tableurs :
- Connaître les valeurs d’incrément courant au sein d’élément ;
- Parcourir les données au sein de la structure des données ;
- Définir des variables pouvant être des tableaux de valeurs ;
- Mettre à disposition des fonctions de manipulation de liste pour pouvoir manipuler la vue (Ajout d’un élément dans une liste en précisant l’index, dimension d’une liste, suppression d’un élément dans une liste) ;
- Effectuer des calculs permanents, et également sur des tableaux de valeurs.
At least 5 functionalities are made available to be able to reconstruct an operation approaching that proposed by spreadsheets:
- Know the current increment values within the element;
- Browse data within the data structure;
- Define variables that can be arrays of values;
- Provide list manipulation functions to be able to manipulate the view (Adding an item to a list by specifying the index, dimension of a list, deleting an item from a list);
- Perform permanent calculations, and also on tables of values.

En appelant « icur  » le numéro d’incrément dans la liste parcourue de l’élément de cardinalité, dans l’exemple précédent : la référence «C.texteC» est en réalité un abrégé de «C[ B .icur , C.icur ]. texteC».By calling " icur  » the increment number in the list traversed by the element of cardinality, in the previous example: the reference « C.texteC » is actually an abbreviation of « C[ B .icur , C.icur ]. textC ".

Avec ce type de rédaction, il devient possible de faire référence à l’élément précédent de cette manière :
« C[B.icur - 1 , C.icur ].texteC »
With this type of redaction, it becomes possible to refer to the previous element in this way:
“C[B.icur - 1 , C.icur ].textC”

Mais, il serait aussi possible de faire appel à tous les éléments entourant la valeur (Si vue tableau) :
C[ De (B.icur-1) à (B.icur+1) , De (C.icur-1) à (C.icur+1) ].texteC
But, it would also be possible to call on all the elements surrounding the value (If table view):
C[ From (B.icur-1) to (B.icur+1) , From (C.icur-1) to (C.icur+1) ].textC

De manière plus générale, il est possible que la récupération des éléments du modèle logiciel puisse être effectuée par des listes pour ne pas limiter l’utilisation des données :More generally, it is possible that the retrieval of software model elements can be performed by lists so as not to limit the use of data:

Tableau = Elément de parcours de liste [ <Liste 1 à définir> , <Liste 2 à définir> ]Array = List browse element [ <List 1 to define> , <List 2 to define> ]

Concernant la manipulation des éléments de la vue, étant donné le principe des éléments de parcours de bloc, l’ajout d’un élément dans une liste a pour conséquence de rajouter des éléments dans la vue.Concerning the manipulation of the elements of the view, given the principle of the block traversal elements, the addition of an element in a list has the consequence of adding elements in the view.

Dans un exemple du type :
- date ="01/01/2019 ; 02/01/2019 ; 03/01/2019 ; 04/01/2019 "
- nom =" Alfred ; Bob ; Gérard ; Roger "
In an example like:
- date="01/01/2019;02/01/2019;03/01/2019;04/01/2019"
- name = "Alfred;Bob;Gerard;Roger"

Le tableau correspondant est le suivant : Date 01/01/19 02/01/19 03/01/19 04/01/19 Nom Alfred ________ ________ ________ ________ Bob ________ ________ ________ ________ Gérard ________ ________ ________ ________ Roger ________ ________ ________ ________ The corresponding table is as follows: Date 01/01/19 01/02/19 01/03/19 01/04/19 Name Alfred ________ ________ ________ ________ Bob ________ ________ ________ ________ Gerard ________ ________ ________ ________ roger ________ ________ ________ ________

Un rajout de valeur dans :
- la liste "nom" a pour conséquence d’ajouter une ligne au tableau ;
- la liste "date" a pour conséquence d’ajouter une colonne au tableau.
Added value in:
- the "name" list results in adding a line to the table;
- the "date" list results in adding a column to the table.

Ainsi, si :
-date ="01/01/2019 ; 02/01/2019 ; 03/01/2019 ; 04/01/2019 ; 05/01/2019 "
-nom =" Alfred ; Bob ; Gérard ; Roger ; Néo "
So, if:
-date="01/01/2019;01/02/2019;01/03/2019;01/04/2019;01/05/2019"
-name = "Alfred;Bob;Gerard;Roger;Neo"

Alors le tableau deviendra : Date 01/01/19 02/01/19 03/01/19 04/01/19 04/01/19 Nom Alfred ________ ________ ________ ________ _______ Bob ________ ________ ________ ________ ________ Gérard ________ ________ ________ ________ ________ Roger ________ ________ ________ ________ ________ Néo ________ ________ ________ ________ ________ Then the table will become: Date 01/01/19 01/02/19 01/03/19 01/04/19 01/04/19 Name Alfred ________ ________ ________ ________ _______ Bob ________ ________ ________ ________ ________ Gerard ________ ________ ________ ________ ________ roger ________ ________ ________ ________ ________ Neo ________ ________ ________ ________ ________

Par ailleurs, comme pour certains Framework javascript (AngularJS ou autres), il est possible de définir une formule à un champ et une réactualisation automatique en cas de changement sur une donnée d’entrée.Moreover, as for some javascript frameworks (AngularJS or others), it is possible to define a formula for a field and an automatic update in the event of a change to an input data.

Il est important que les calculs soient possibles sur des données de type tableau de valeurs. On pourra parler de calcul permanent.It is important that calculations be possible on data of the table of values type. We can talk about permanent calculation.

Dans le cadre de la création de la page web, le système comprend une interface graphique aboutie.As part of the creation of the web page, the system includes a complete graphical interface.

Cette interface permet :
- (de manière classique pour les CMS) de définir du HTML, du CSS, et la charte graphique de l’application ;
- (de manière classique pour les frameworks des codes client du navigateur web) de définir les champs de calcul basé sur les données de la page web et remis à jour en temps réel.
This interface allows:
- (in a classic way for CMS) to define HTML, CSS, and the graphic charter of the application;
- (in a classic way for the frameworks of the client codes of the web browser) to define the calculation fields based on the data of the web page and updated in real time.

Mais l’invention propose aussi de définir depuis une interface graphique :
- De nouveaux éléments : Notamment les « Eléments de parcours » et les « Eléments de cardinalité », détaillés plus haut,
- Des requêtes de bases de données,
- Des fonctions de code client (par exemple javascript),
- D’associer un traitement à un événement de la page web (Arrivée d’un flux ou action utilisateur). A noter, que l’initialisation du bloc est un événement en tant que tel.
- De préférence, afin de pouvoir faciliter l’utilisation de l’outil, l’utilisation de bouton pictogramme ou de clavier numérique est mise en place.
But the invention also proposes to define from a graphical interface:
- New elements: In particular the “Elements of course” and the “Elements of cardinality”, detailed above,
- Database queries,
- Client code functions (e.g. javascript),
- To associate a process with an event of the web page (Arrival of a flow or user action). Note that block initialization is an event as such.
- Preferably, in order to facilitate the use of the tool, the use of pictogram button or numeric keypad is implemented.

Les avantages d’une utilisation graphique sont multiples. Cela permet de :
- Structurer naturellement le code, ce qui donne de la facilité pour lier et retrouver ce qui est associé à une fonctionnalité donnée d’IHM (par exemple HTML/CSS/Javascript/SQL/Code serveur) ;
- Contrôler les saisies de l’utilisateur. Ainsi, l’outil est plus intuitif, donc plus facilement pris en main et avec moins de possibilité de coquille dans le code ;
- Rendre l’information plus lisible et de prendre à la charge de l’outil la rédaction de syntaxe technique, de sorte que le temps de formation est diminué.
The advantages of a graphic use are multiple. This allows to :
- Structure the code naturally, which makes it easier to link and find what is associated with a given UI functionality (for example HTML/CSS/Javascript/SQL/Server code);
- Check user input. Thus, the tool is more intuitive, therefore easier to handle and with less possibility of typos in the code;
- Make the information more readable and take charge of the technical syntax writing tool, so that the training time is reduced.

L’outil peut permettre à l’utilisateur d’écrire directement du code pour que les possibilités offertes par l’outil ne limitent pas les fonctionnalités utilisables.The tool can allow the user to write code directly so that the possibilities offered by the tool do not limit the usable functionalities.

La figure 5 détaille les actions possibles du contrôleur de la page web.Figure 5 details the possible actions of the web page controller.

En fonction des évènements, signaux, timers, données de la vue, le contrôleur C envoie au système centralisé une demande de chargement d’une page vers le système centralisé 2 (S1) ;Based on events, signals, timers, view data, controller C sends centralized system a request to load a page to centralized system 2 (S1);

Les données sauvegardées sont ensuite chargées en local côté client (S2) ;The saved data is then loaded locally on the client side (S2);

Le navigateur local envoie un appel au générateur de vue G.V.(S3) qui réalise un changement des caractéristiques de la vue V (S4) ;The local browser sends a call to the view generator G.V.(S3) which performs a change in the characteristics of the view V(S4);

Le changement correspondant des données est enregistré en local (S5), puis transmis au système centralisé 2 pour y être enregistré (S6) ;The corresponding change in data is recorded locally (S5), then transmitted to the centralized system 2 to be recorded there (S6);

Il s’en suit un appel de réalisation d’un calcul côté serveur (S7).This is followed by a call to perform a server-side calculation (S7).

Le contrôleur a 2 fonctions principales.The controller has 2 main functions.

Sa première fonction consiste à mettre en place le socle technique, et ainsi alléger la quantité de code à produire par le développeur utilisant l’outil :
- Mettre en place une structure de données issue de la récupération des données en base de données notamment ;
- Appeler le générateur de vue pour utiliser ces données et afficher la vue ;
- Faire appel à des fonctions techniques existantes (Détection de non-conformité par exemple).
Its first function is to set up the technical base, and thus reduce the amount of code to be produced by the developer using the tool:
- Set up a data structure resulting from the recovery of data in the database in particular;
- Call the view generator to use this data and display the view;
- Use existing technical functions (detection of non-conformity for example).

Sa deuxième fonction principale consiste à réunir l’ensemble des traitements fonctionnels définis par le développeur web :
- Traitement coté navigateur en cas d’obligation de saisie de données ;
- Traitement coté navigateur en cas de non-conformité de saisie de données ;
- Traitement en cas d’événements, notamment il est possible de :
o Modifier les données en appelant de nouveaux chargements depuis la base de données ou en modifiant les données déjà chargées en interne ;
o Réactualiser des éléments de la vue (En particulier des éléments de cardinalité) ;
o Fournir à la base de données lors d’un enregistrement les données pour se synchroniser avec les données locales. Notamment, cela implique d’indiquer quelles données constituent les données en local de la page web ;
o La demande de chargement de page se gère de manière spéciale. En effet, il est possible de quitter la page en cours de saisie de données.
Its second main function is to bring together all the functional processes defined by the web developer:
- Processing on the browser side in the event of an obligation to enter data;
- Browser-side processing in the event of data entry non-compliance;
- Processing in the event of events, in particular it is possible to:
o Modify data by calling new loads from the database or modifying data already loaded internally;
o Update elements of the view (In particular cardinality elements);
o Provide the database during a save with the data to synchronize with the local data. In particular, this involves indicating which data constitutes the local data of the web page;
o The page load request is handled in a special way. Indeed, it is possible to leave the page during data entry.

Ainsi, l’outil propose un traitement dédié de départ/chargement de page, afin d’éviter de la redite de code.Thus, the tool offers a dedicated start/page load processing, in order to avoid code repetition.

La figure 6 illustre l’automatisation de la sécurité.Figure 6 illustrates security automation.

Une tentative de fraude depuis l’application consiste pour un utilisateur à faire quelque chose qu’il ne pourrait pas pouvoir faire en utilisant normalement la page web (=Utilisation du clavier souris classiquement au sein de la page web).A fraud attempt from the application consists of a user doing something that he could not do by using the web page normally (=Use of the keyboard mouse conventionally within the web page).

Ainsi, l’idée générale consiste à enregistrer les événements provoqués par les manipulations de clavier/souris sur la vue et de s’assurer que le formulaire reçu correspond bien à ces opérations. On pourra parler de module de détection de non-conformité.Thus, the general idea is to record the events caused by keyboard/mouse manipulations on the view and to ensure that the received form corresponds to these operations. We can speak of a non-compliance detection module.

Différentes manières de faire sont possibles, la figure 6 en précise une.Different ways of doing things are possible, figure 6 specifies one of them.

Les étapes sont :
- C1/ Envoi de la page web au navigateur. Le système centralisé 2 enregistre une sauvegarde de la page web. Une base de données est associée.
- C2/ Des événements se produisent sur la page et sont enregistrées au niveau du navigateur. Dans la vue il y a notamment la visibilité, cessibilité, restriction de valeur. L’historique des évènements est enregistré.
- C3/ Lors de l’envoi de la page web au système centralisé, le système centralisé vérifie qu’il n’y a pas de problème. Notamment :
o Tentative de forçage de données
o Conflit d’accès (En vérifiant s’il y a eu un enregistrement de données durant la saisie utilisateur)
The steps are:
- C1/ Sending the web page to the browser. Centralized System 2 saves a backup of the web page. A database is associated.
- C2/ Events occur on the page and are recorded at the browser level. In the view there is in particular visibility, transferability, restriction of value. The event history is recorded.
- C3/ When sending the web page to the centralized system, the centralized system checks that there is no problem. Notably :
o Attempt to force data
o Access conflict (Checking if there was a data save during user input)

L’invention proposée permet de réaliser des applications telles que des sites web.The proposed invention makes it possible to carry out applications such as websites.

Notamment, les données utilisateurs sont renseignées à partir de listes.In particular, user data is filled in from lists.

Ainsi, il est possible de générer des applications qui pourraient être copiées ou clonées, et personnaliser à l’aide du renseignement des données utilisateurs.Thus, it is possible to generate applications that could be copied or cloned, and customize using user data intelligence.

En d’autres termes, l’outil proposé permet de générer des applications telles que des sites web applicatifs, mais aussi des sites web de type SAAS.In other words, the proposed tool makes it possible to generate applications such as application websites, but also SAAS type websites.

L’invention proposera un système d’optimisation des clefs fonctionnelles dans le cas où il y aurait un enchaînement d’éléments de parcours de liste.The invention will propose a system for optimizing functional keys in the case where there is a sequence of list traversal elements.

Par exemple : Cas 1: On veut constituer une vue permettant de saisir le total de vente de produit par jour, par vendeur.For example: Case 1: We want to build a view to enter the total product sales per day, per salesperson.

Dans ce cas, il est indispensable de faire référence au jour et au vendeur pour pouvoir enregistrer la donnée (=Saisie du total de vente).In this case, it is essential to refer to the day and to the salesperson in order to be able to record the data (= Entry of the sales total).

Cas 2 : On veut constituer une vue avec un bloc par magasin, qui contiendra la liste des vendeurs du magasin. Il est possible d’associer un commentaire libre pour chaque vendeur.Case 2: We want to create a view with one block per store, which will contain the list of sellers in the store. It is possible to associate a free comment for each seller.

Ici, il ne serait pas pertinent de faire référence au magasin et au vendeur pour enregistrer la donnée (=Saisie du commentaire), car la connaissance du vendeur permet de retrouver l'information du magasin. Ce serait un problème de le faire, car cela revient à créer de l’information en double, ce qui complexifie ensuite la gestion des données, voire crée des incohérences (si les 2 informations se contredisent).Here, it would not be relevant to refer to the store and the seller to record the data (=Entering the comment), because knowing the seller makes it possible to find the store information. It would be a problem to do so, because it amounts to creating duplicate information, which then complicates data management, or even creates inconsistencies (if the 2 pieces of information contradict each other).

Ainsi, une analyse complémentaire est faite, afin de déterminer les clefs indispensables, et identifier les clefs potentiellement redondantes.Thus, an additional analysis is made, in order to determine the essential keys, and to identify the potentially redundant keys.

Voici un exemple de procédé :
1/ Détermination "naive" de toutes les clefs
Cas 1 : clef de la liste1 : Identifiant du vendeur / clef de la liste2 : Valeur du jour ;
Cas 2 : clef de la liste1 : Identifiant du magasin / clef de la liste 2 : Identifiant du vendeur ;
2/ Vérification en remontant les listes, que le système ne fait pas référence à une clef d’une liste plus en amont.
Dans le cas 2, un vendeur est associable à un magasin (On retrouve la clef de la liste 1 en remontant les identifiants de la liste 2). Ainsi, « magasin » est une référence potentiellement redondante.
Here is an example of a process:
1/ "Naive" determination of all the keys
Case 1: list key1: Vendor identifier / list key2: Value of the day;
Case 2: List key 1: Store ID / List key 2: Vendor ID;
2/ Verification by going up the lists, that the system does not refer to a key from a list further upstream.
In case 2, a seller can be associated with a store (We find the key of list 1 by going back to the identifiers of list 2). Thus, "store" is a potentially redundant reference.

Plus généralement, l’invention mise en place permet d’obtenir les caractéristiques de référence très probable (ce qui permet notamment de constituer une structure de modèle de données sans avoir de vraies compétences en la matière) ; mais il reste possible pour un utilisateur du système de configuration d’enlever ou de rajouter des références s’il le souhaite pour garder une totale liberté sur le modèle.More generally, the invention implemented makes it possible to obtain the very probable reference characteristics (which in particular makes it possible to constitute a data model structure without having real skills in the matter); but it remains possible for a user of the configuration system to remove or add references if he wishes to keep total freedom on the model.

Claims (8)

Ensemble de génération d’application mis en œuvre par ordinateur comprenant
  • un système de configuration qui comprend
    . un module de manipulation de données d’utilisation de l’application (4a, 4b), et comprenant des moyens pour définir des listes de données à parcourir ;
    . un module de définition (E1) de l’interface graphique d’application comprenant des éléments graphiques modifiables, et des éléments de parcours de liste (E4), pour parcourir la liste et mettre en œuvre les requêtes de programme correspondantes ;
    . un module de gestion d’événements, configuré pour définir, pour chaque type d’événements liés aux éléments graphiques possibles, le comportement attendu (E5, E7) ;
    . un module d’éléments de cardinalité (E6, E7) configuré pour encadrer le comportement des éléments de parcours de liste ;
  • un système de génération de l’application (C, G.V.) comprenant des modules d’analyse des données saisies dans le système de configuration et configurés pour mettre en œuvre automatiquement les requêtes de programme pour générer l’application,
caractérisé en ce que l’ensemble est configuré de sorte qu’une modification des éléments graphiques modifiables entraine une mise en œuvre des requêtes de programme selon la liste et une modification correspondante de l’application.
Computer-implemented application generation set comprising
  • a configuration system that includes
    . an application usage data manipulation module (4a, 4b), and comprising means for defining lists of data to be traversed;
    . a definition module (E1) of the graphic application interface comprising modifiable graphic elements, and list traversal elements (E4), for traversing the list and implementing the corresponding program requests;
    . an event management module, configured to define, for each type of event linked to the possible graphic elements, the expected behavior (E5, E7);
    . a cardinality items module (E6, E7) configured to frame the behavior of list traversal items;
  • an application generation system (C, GV) comprising modules for analyzing the data entered in the configuration system and configured to automatically implement the program requests to generate the application,
characterized in that the assembly is configured so that a modification of the modifiable graphic elements leads to an implementation of the program requests according to the list and a corresponding modification of the application.
Ensemble de génération selon la revendication précédente, dans lequel le module de définition de l’interface graphique (E1) comprend des éléments graphiques standards tels que des cases à cocher, champ texte, vidéo, image, forme graphique, champ de date/heure, champ numérique et/ou des éléments pré réalisés proposés tels que des menus, évaluation par des étoiles, et/ou des éléments programmés par l’utilisateur.Generation set according to the preceding claim, in which the graphic interface definition module (E1) comprises standard graphic elements such as check boxes, text field, video, image, graphic form, date/time field, numeric field and/or suggested pre-made items such as menus, star ratings, and/or user-programmed items. Ensemble de génération selon l’une des revendications précédentes configuré de sorte qu’une fois l’élément de cardinalité défini dans le système de configuration, alors le système de génération créera une table en table en base de données qui correspondra à l’élément de cardinalité, et les relations de cette table avec les autres tables de la base de données, étant également déterminées depuis ce qui a été saisi dans le système de configuration.Generation set according to one of the preceding claims configured so that once the cardinality element has been defined in the configuration system, then the generation system will create a table in database table which will correspond to the element of cardinality, and the relationships of this table to other tables in the database, also being determined from what has been entered into the configuration system. Ensemble de génération selon l’une des revendications précédentes configuré de sorte qu’un rajout d’un champ dans un élément de cardinalité à l’aide du système de configuration ; entrainera un rajout de colonne dans la table en base de données par le système de génération.Generation set according to one of the preceding claims configured so that an addition of a field in a cardinality element using the configuration system; will cause a column to be added to the database table by the generation system. Ensemble de génération selon l’une des revendications précédentes, comprenant un module de détection de non-conformité configuré pour enregistrer l’interface et les évènements ayant eu lieu et pour vérifier que cela correspond à l’interface modifiée.Generation set according to one of the preceding claims, comprising a non-conformity detection module configured to record the interface and the events that have taken place and to verify that this corresponds to the modified interface. Ensemble de génération selon la revendication précédente, dans lequel le module de détection de non-conformité est configuré pour comparer l’interface obtenue avec une simulation de l’interface initiale à laquelle est ajoutée les modifications de l’utilisateur.Generation set according to the preceding claim, in which the non-compliance detection module is configured to compare the interface obtained with a simulation of the initial interface to which the user's modifications are added. Méthode de création d’une application au moyen d’un ensemble de génération d’application mis en œuvre par ordinateur selon l’une des revendications précédentes comprenant des étapes suivantes
(E1) Définition de la charte graphique générale de l’application, comprenant des éléments graphiques modifiables,
(E2) Création, nommage de la page d’application telle qu’une page web, de ses entrées,
caractérisée par les étapes
(E4) Définition d’une liste à parcourir et d’un l’élément de « parcours de liste »,
et en ce qu’une modification des éléments graphiques modifiables entraine une mise en œuvre de requêtes de programme selon la liste et une modification correspondante de l’application.
Method of creating an application by means of a computer-implemented application generation assembly according to one of the preceding claims comprising the following steps
(E1) Definition of the general graphic charter of the application, including modifiable graphic elements,
(E2) Creation, naming of the application page such as a web page, its entries,
characterized by the steps
(E4) Definition of a list to browse and a "list browsing" element,
and in that a modification of the modifiable graphic elements leads to an implementation of program requests according to the list and a corresponding modification of the application.
Produit programme d’ordinateur comprenant des portions de code de programme enregistré sur un support utilisable dans une unité de commande, pour mettre en œuvre les modules d’un ensemble selon l’une des revendications 1 à 6, ou une méthode selon la revendication précédente, lorsqu’il est exécuté par l’unité de commande.Computer program product comprising portions of program code recorded on a medium usable in a control unit, to implement the modules of a set according to one of Claims 1 to 6, or a method according to the preceding claim , when executed by the control unit.
FR1912153A 2019-10-29 2019-10-29 Application generation set, associated method and program Pending FR3102594A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1912153A FR3102594A1 (en) 2019-10-29 2019-10-29 Application generation set, associated method and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1912153 2019-10-29
FR1912153A FR3102594A1 (en) 2019-10-29 2019-10-29 Application generation set, associated method and program

Publications (1)

Publication Number Publication Date
FR3102594A1 true FR3102594A1 (en) 2021-04-30

Family

ID=70456814

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1912153A Pending FR3102594A1 (en) 2019-10-29 2019-10-29 Application generation set, associated method and program

Country Status (1)

Country Link
FR (1) FR3102594A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324377A1 (en) * 2011-06-15 2012-12-20 Microsoft Corporation User interface extensibility for web application development tool

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120324377A1 (en) * 2011-06-15 2012-12-20 Microsoft Corporation User interface extensibility for web application development tool

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GHIANI GIUSEPPE ET AL: "An environment for End-User Development of Web mashups", INTERNATIONAL JOURNAL OF HUMAN-COMPUTER STUDIES, ELSEVIER, AMSTERDAM, NL, vol. 87, 1 December 2015 (2015-12-01), pages 38 - 64, XP029361559, ISSN: 1071-5819, DOI: 10.1016/J.IJHCS.2015.10.008 *
ZHANG J ET AL: "MOCKUP-DRIVEN FAST-PROTOTYPING METHODOLOGY FOR WEB APPLICATION DEVELOPMENT", SOFTWARE PRACTICE & EXPERIENCE, WILEY & SONS, BOGNOR REGIS, GB, vol. 33, no. 13, 10 November 2003 (2003-11-10), pages 1251 - 1272, XP001046051, ISSN: 0038-0644, DOI: 10.1002/SPE.547 *

Similar Documents

Publication Publication Date Title
Richardson Microservices patterns: with examples in Java
JP7490729B2 (en) Development of spreadsheet-based software applications
US11281847B2 (en) Generating content objects using an integrated development environment
EP3549013B1 (en) Spreadsheet-based software application development
US20200150938A1 (en) Spreadsheet-Based Software Application Development
US10796075B2 (en) System and method for the generation and editing of text content in website building systems
WO2005045698A2 (en) Method of producing a current view from at least one variable source information object in a computer environment
Ciaburro et al. Hands-on machine learning on google cloud platform: Implementing smart and efficient analytics using cloud ml engine
Leung et al. Beginning PowerApps
CA2419377C (en) Interface system for accessing data in a database
Freeman Pro entity framework core 2 for asp. net core mvc
Ravindran Django Design Patterns and Best Practices: Industry-standard web development techniques and solutions using Python
Scott JavaScript everywhere: building cross-platform applications with GraphQL, React, React Native, and Electron
Feldman et al. Developing Business Intelligence Apps for SharePoint: Combine the Power of SharePoint, LightSwitch, Power View, and SQL Server 2012
FR3102594A1 (en) Application generation set, associated method and program
Langit Foundations of SQL Server 2005 Business Intelligence
Raviv Collect, Combine, and Transform Data Using Power Query in Excel and Power BI
Wijaya Data Engineering with Google Cloud Platform: A practical guide to operationalizing scalable data analytics systems on GCP
EP2074531A1 (en) Information processing method
Chen et al. Reliable Machine Learning
Palacio Distributed Data Systems with Azure Databricks: Create, deploy, and manage enterprise data pipelines
Allchin Tableau Prep: Up & Running
WO2011128311A2 (en) Method for recording data, device, and corresponding computer program product
Brennan Teamit: Technical Report
Kashel et al. Microsoft SQL Server 2008 R2 Master Data Services

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20210430

RX Complete rejection

Effective date: 20211117