WO2014090514A1 - Method for creating a client configuration simulator - Google Patents

Method for creating a client configuration simulator Download PDF

Info

Publication number
WO2014090514A1
WO2014090514A1 PCT/EP2013/074093 EP2013074093W WO2014090514A1 WO 2014090514 A1 WO2014090514 A1 WO 2014090514A1 EP 2013074093 W EP2013074093 W EP 2013074093W WO 2014090514 A1 WO2014090514 A1 WO 2014090514A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
rules
user
inference
manufacturing
Prior art date
Application number
PCT/EP2013/074093
Other languages
French (fr)
Inventor
Charles BENSOUSSAN
Alain Bensoussan
Original Assignee
Techform
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 Techform filed Critical Techform
Publication of WO2014090514A1 publication Critical patent/WO2014090514A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • the present invention relates to the field of software simulation methods.
  • It relates more particularly to a software application generation method for manipulating variable data linked together, in a manner consistent with coherence rules.
  • the invention aims first and foremost at a method of creating a custom integrated software application for a mobile computer comprising means of communication to an Internet-type data exchange network,
  • said application comprising a man-machine interface of the Model View Controller (MVC) type, consisting on the one hand of a data model, on the other hand of a visual interface and finally an event logic controller, said method comprising graphical means for enabling a user to develop said software application without directly writing computer code.
  • MVC Model View Controller
  • the event logic controller imposes relationships between the data of the model and the elements of the visualization according to a configurable set of coherence rules and rules of inference between these data, called "business rules" and defining an inference engine applied to model data and visualization elements.
  • the method includes a module for defining the user of these business rules without requiring the user to write lines of computer code directly.
  • the data on which the consistency rules are to be applied are visually designated on the human-machine interface by the user, and mathematical link rules between various data, or maximum or minimum thresholds are defined by the user.
  • Another aspect of the invention is a method for creating a software simulator of a product that can be configured according to different variants according to data defining the needs and constraints of a client, said method being intended to be implemented by a computer comprising means of communication to an Internet-type data exchange network,
  • said application comprising a man-machine interface of the MVC type, comprising:
  • said method comprising first graphical means for defining logical links between the data, to enable a user to develop said software simulator without directly writing computer code,
  • the invention is a method for creating and adapting custom built applications for PC media, mobile terminal or web network to allow a user to design, develop and deploy an application on computer terminal (tablet PC , smartphone, PC), said application allowing, in real time or in disconnected mode, to users professional customers (for example carpenters resellers, designers of electrical cabinets ..), commercial users, marketing or the office and Production, configure, manage, edit on screen, print and generate structured data to their databases (ERP, MRP, PDM) from configurable product and service information obtained in real time through choice of options and variants.
  • the method implements a display tree, in which the user chooses to display only part of a data schema on which he wants to work and the method applies links and rules of simple coherence and inference only on the elements constituting this part.
  • the method comprises a step of generating a set of data called "manufacturing data", generated from the display data and a set of manufacturing rules, previously defined.
  • the business rule definition module includes consistency rules applicable to these business rules, so as to highlight the possible conflicts between some of these rules during their generation by the user.
  • Another aspect of the invention is a method of manufacturing a product that can be configured according to different variants according to data defining the needs and constraints of a customer, comprising a method for creating a software simulator of a product such as as explained above.
  • the invention aims in yet another aspect a product / computer program adapted to implement a method as described above.
  • Figure 1 a schematic view of the elements involved in the implementation of a method according to the present description
  • FIG. 2 a flowchart of the different steps of the process.
  • the method is intended to be implemented in software by a set of computer systems.
  • the method comprises firstly a phase 100 of creation, by a company 32, provider of products or services, of an application configured according to a set of information presentation rules and calculation rules, these rules being specific to the business 32, and usually referred to as business rules (see Figures 1 and 2).
  • This phase of creation 100 is also called in the following description "software configuration", the method then being referred to as the "client configuration simulator creation method”.
  • this is an algorithmic modeling of the business rules of the company 32, and their presentation in an ergonomically clever and playful form to a user 22 to use data representative of variables related to the business of the business. enterprise 32.
  • the goal is to achieve a simulation system usable by a user 22, not expert in the business of enterprise 32, and yet complies with all its consistency rules.
  • the company 32 may be a manufacturer of portals. These portals are achievable according to various options, for example in a number of different materials, shapes and textures, and in various variants, for example variable width and height. In a more detailed example, they are possibly divisible into two doors, the sum of the widths corresponds to a portal location width. Different materials can be used for the doors, to the extent of the respect of certain constraints techniques. The heights of the two side edges of the gate may vary, within construction limits.
  • the purpose here is to propose a portal configuration simulator, enabling a potential customer 22 of the company 32 to configure a portal that corresponds to his specific data and his desires, without ever having to worry about the rules. which govern the relationships of the variables defining the portal between them.
  • a configurator must make it possible to vary as continuously as possible the parameters available to the user 22.
  • an implementation cost variable can be associated in real time with each configuration.
  • a second aim is to then correctly generate a manufacturing specification formatted according to the data presentation rules relevant for the manufacturer 32.
  • This first phase 100 of the method therefore accepts as inputs various business rules and a graphical representation mode of the data, and outputs a source code corresponding to a software configurator achieving the specified goals higher, that is to say by for example a software for defining a portal configuration that meets the particular needs and constraints of customers 22.
  • the method involves a first computer system 10, here called development server.
  • This development server 10 comprises a display screen 1 1, and hosts one or more software applications.
  • the application server 10 is for example a PC type computer, known per se. It may have conventional means of communication to the network, wired and / or radio. It is adapted to host in memory and execute a software application representing the part of the method implemented by said development server 10.
  • the method comprises secondly a phase 200 of use of the software application created, this use being carried out for example but not limited to the premises of the company 32. This use is similar, as has been said, performing a simulation process.
  • This simulation method makes it possible, for example, to configure a product intended for manufacturing according to the specific needs of a customer 22, and integrating the business rules of the company 32, that is to say, for example, manufacturing rules and sizing.
  • the method involves first, for this second phase 200, a computer system 15, here called application server (see Figure 1).
  • This application server 15 comprises a display screen 1 1, and hosts one or more software applications.
  • the application server 15 is for example a PC type computer, known per se. It has conventional means of communication to the network, wired and / or radio. It is adapted to host in memory and to execute a software application representing the part of the method implemented by said application server 15.
  • This application server 15 houses in particular the software application (called configurator) generated during the phase of the application. software configuration.
  • the second phase 200 of the method furthermore involves at least one second computer system, here called the user terminal 20.
  • this user terminal 20 is of PC type.
  • the user terminal 20 comprises calculation means (for example microprocessor), memory devices, and communication means 16 to the radio network. It is adapted to download and execute a software application containing the part of the method implemented by said user terminal 20.
  • Such a user terminal 20 is of a type known per se, and is therefore not detailed further here.
  • the user terminal 20 accesses via an Internet-type network to an application server 15, on which the application corresponding to the business rules of the company 32 is executed.
  • the user terminal 20 and the application server 15 are combined into a single machine, on which the software application (the configuration simulator) is executed. It will be understood that this second phase 200 of the method may involve several user terminals 20, or numerous application servers 15 whose applications (configuration simulators) may be totally different and relating to products independent of the company 32.
  • the method also implements an ERP enterprise data management server 30, associated with a set of terminals 35.
  • the data modified by the actions on the user terminals 20 on the application server 15 are transferred to the ERP server 30, for example in the form of manufacturing data.
  • Figure 2 illustrates a flowchart of the steps of a method according to an embodiment of the invention.
  • the configurator creation process is a hierarchical structure modeller of the enterprise data 32.
  • Data representation and manipulation module The following are the main modules involved in the implementation of the configuration method.
  • Data representation and manipulation module The following are the main modules involved in the implementation of the configuration method.
  • the data used in the configuration process is stored and manipulated as one or more hierarchical data structures.
  • the hierarchical data structure is the basic structure of the configuration engine. This hierarchical data structure is the one used in the inference engine implemented in the method.
  • the hierarchical data structure uses data access modules and links between the data for its assignment and the sets of definitions of each value.
  • the hierarchical data structure makes it possible to store and manipulate all the data of the company 32 with the same logic without worrying about its physical persistence and how it is formatted on the screen.
  • Each hierarchical data structure has a name in relation to its data schema, that is, a list of strongly typed fields, and a set of other data structures, possibly of different types.
  • variables are not dynamic as in Javascript (registered trademark), they have a strict type (integer, character string, date).
  • the configuration method secondly uses a schema describing the rules that govern a hierarchical structure of data.
  • a rules scheme is defined here as the description of the structure and set of rules that define a hierarchical structure of data.
  • An XSD format schema can be derived from a rule schema and can thus be used in http exchanges over an Internet type data communications network.
  • Inference rules associated with each simple type variable make the data structure active for value changes.
  • the hierarchical structure of data can be associated with an inference engine that allows the propagation and the resolution of the induction caused by the two rules associated with each simple type.
  • a change rule functions as an event when changing the value of a variable in a hierarchical data structure, so this rule is an explicit rule. It should be noted that there is not cascading here as in computer (the rule modifying in turn other variables which trigger in turn their explicit rule), one respects on the contrary the steps of the engine of inference. Unlike the definition rules (see below), a change rule only executes if the value of the variable has been modified, it does not take into account relationships with other variables, in inference steps the rule change is calculated before the definition rules.
  • a definition rule is used to define the value of a variable in a hierarchical data structure, depending on its environment. We recall here that a definition rule is the basis of inference, it is a rule that defines the value of the variable according to other variables.
  • This unique reference identifier Uri is the address of the variable in a hierarchical structure.
  • a set of write rules on these identifiers are defined.
  • a search method "Find” makes it possible to find an element according to its unique identifier of reference, a particular syntax makes it possible to search a hierarchical structure of data according to the value of one of its fields.
  • the unique reference identifier Uri serves to know the address of the associated variable.
  • Complex algorithms are of the WebRules or BusinessRules type, they are algorithmic rules that make it possible to link structures to each other, for example to transform a structure of configuration data into a structure for printing, or for injection into a type of software ERP, etc.
  • An extension is optionally made to a hierarchical data structure to add one or more search indexes in the case of a set of data, and to rely on the method known per se "Link".
  • a hierarchical data structure is a set of data that can only persist in memory.
  • a generic tool is used in the present configuration method for storing these collections of data structures in persistent memory. This generic tool is a collection of persistent data structures.
  • a collection of hierarchical data structures is associated with a single rule schema that describes the behavior of all elements (hierarchical data structures) in the collection.
  • a collection of data structures is also associated with a set of data providers (content providers made available for making configurations) that allow the physical storage of the collection according to different storage strategies.
  • a collection of data structures must be stored on disk, database, delocalized storage services (“cloud”), or other according to the strategy, and each strategy to its provider.
  • cloud delocalized storage services
  • conventional data providers are used, in memory, in the database, but other providers may be envisaged, such as the storage of data in lists of a type known per se under the name of SharePoint -the trademark- , in remote storage services (Cloud) or external data storage centers (Datacenters).
  • the method further comprises a module for representing the data manipulated in the previous module, in a format compatible with a display on computers connected to an Internet type network.
  • This exhibition is in the form of web services using the Microsoft architecture (IIS 7.0, WCF, .Net 3.5) (registered trademarks).
  • the REST architecture uses standards, in particular: URI as a universal syntax for addressing resources, HTTP a stateless protocol with a very limited number of operations,
  • Hyperlinks in (X) HTML and XML documents to represent both the content of the information and the transition between states of the application
  • the technological choices for implementation of the web service are an IIS 7.0 (registered trademark) server as a hosting platform for the service (application server 15), and in a non-limiting example of implementation of the method, a writing of the Windows Communication Foundation (WCF) service by using an object link to communicate the data model and the specific "binding" view that exposes (ie generates a visual interface) this service. respecting the REST architecture.
  • WCF is a package of Microsoft (registered trademark) that encloses communication protocols, this package is used in the present process for Silverlight (registered trademark), but not for html5.
  • the web server implemented in the present method offers services in the format compliant with the REST (Representational State Transfer) constraints in XML or JSON, or possibly another format known to those skilled in the art.
  • REST Representational State Transfer
  • the data is obtained from a web service to be linked (in the sense of the object link to communicate the data model and the user -binding) to the visual controls.
  • the method also includes a web service that supports the persistence and management of current configurations. It is built around an architecture of configurable caches, in order to give this Web service a great fluidity of use.
  • This web service contains temporary objects that allow the execution of different configurations, each is identified by a ticket whose life is managed by a strategy based on conditions specific to the application or client considered.
  • the method uses a set of descriptions of the data structure collections that make up the configuration.
  • the method further uses descriptors of collections of hierarchical structures of data sharing the same rule scheme (ie associated with the same inference engine).
  • Each collection of hierarchical data structures has its own customer data provider. Remember that a collection must be stored on disk, database, cloud, or other according to the strategy, and each strategy to its provider.
  • the method works on a set of basic variables (intended to be accessible to a user of the configurator).
  • a change in the value of a base variable causes the inference engine to start (the data manipulation module, ie the rule schema).
  • This module makes it possible to define rules in the databases which cause an event (example an addition, a modification). This event is related to the data cache (update) or the inference engine (modification of a definition rule).
  • a base variable is associated with constraints defined in the schema and rules verified by the inference engine. Some basic variables are associated with a parameter that defines their set of possible values.
  • the method retains, in the present nonlimiting example of implementation, at least one chronological list describing the basic variables modified by the user or the inference engine.
  • Each basic variable is described in particular by the location of the basic variable as well as its value, or by a set of key pairs / possible values for a base variable, this list defines the set of possible values of a base variable according to the state of a hierarchical data structure.
  • a configuration performed for a client 22 is a series of operations performed within a flow of data similar to a workflow.
  • the purpose of the configurator creation process is to propose a certain number of logical operator models and graphical objects that can be assembled within a parameterizable flow.
  • the method of creating a configurator uses the data and functionality of the data manipulation module, and the technologies known as Wpf, Wcf, Wf.
  • the method of creating an online configurator is based on an architecture of the type known as Multi-Tier (Multilevel Architecture), which means that some logical graphical objects are hosted in Web Services.
  • Multi-Tier Multilevel Architecture
  • the configurator creation method described here by way of example, provides a means of generating a client / server configurator in a simple and accessible manner.
  • the models proposed must be flexible to answer all the configurations.
  • the method includes configuration sessions on the associated server, and at each data modification the method makes a call to the associated session (cookie) which infers and returns the result to the client terminal 20.
  • a rule of the WebRule type is called which injects data from one session to another respecting a set of rules, so no calculation and no data is stored at the client 20 (according to a philosophy of "thin client").
  • the graphic objects are developed in Wpf language
  • the parameterization of the graphic objects is done by a simple push of a component and a link of the objects between them (binding) for allow communication between the data model and user visualization) semi automatic to the hierarchical structure of data within the Studio (registered trademark).
  • these hierarchical structures are (dynamic) data models.
  • the method comprises a data presentation module.
  • This data presentation module has the function of presenting the data (color, customer language, associated label, type of control), and modifying them using a graphic tool in the Studio (registered trademark).
  • a display is generated (frame) in the display technology used (Xaml or html5, or other to come) by applying the link objects between them (binding).
  • the method implements a step that makes it possible to navigate from a first data presentation module to a second data presentation module, in following the process desired by the customer. In this step, it ensures the passage of session identifiers, the return to the previous and the communication between the data presentation modules.
  • the display follows the flow of the data presentation modules by activating the associated "frame" (form or userControl).
  • Style sheets are provided for setting up configurations, allowing customization of the configuration in a few clicks.
  • the method uses several types of distinct elements:
  • command descriptor an object that allows (or causes) the transition of the data flow from a graphic object to another graphic object or a logical operator.
  • a command causes through a rule the passage of a data presentation module to another, or the call of a WebRule (calculation on the server)
  • a first step 1 10 of the phase 100 of software configurator creation the company 32 proceeds to the identification of the variables making it possible to define the products that it wants its customers to configure.
  • the inference rules are identified, then in a third step 130, the modes of representation of the variables are defined.
  • the system then proceeds, in a step 140, to a consistency check of the inference rules defined above. It then generates, in a step 150, a visual interface for users 22 of the configurator.
  • manufacturing rules are defined by the company 32, based on the variables defined in step 1 10.
  • the system displays, for the user 22, at least part of a data schema.
  • the user 22 modifies data according to his own needs, and the inference engine propagates the modifications to the other variables linked by inference rules.
  • the engine passes through several states that cycle cyclically until the stabilization of the data set or the detection of recurrence of cyclic data.
  • a first step 220 the system is waiting for modifications from a user 22 of the method.
  • the system Upon receipt of such a change, in a step 222, the system executes the relevant change rules.
  • the change rules are executed for all values in the edit stack, each change rule can change other data that is in turn stored in the next change stack.
  • the system searches for the use cases of the definition rules.
  • the search for the use cases is made in several states: first, all the definition rules are executed to determine the data used for each rule, subsequently only the rules related to the modified values are executed.
  • the definition rules are executed according to the modification stack and the use cases.
  • Each edit rule updates the relevant data that is added to the edit stack if it is really different from the previous value.
  • the system updates, in a step 228, all the data. All modified data is stored in a modification stack before being stored and compared to a data history. This edit stack is used to prevent the data set from being changed during the execution of the different rules. Each rule is executed from the same definition set, which avoids the problem execution of code on a set of data in modification.
  • the new configuration is displayed in a step 230 on the user interface.
  • the stabilization of the data set is obtained when there is no more modified data (variation below a predetermined threshold).
  • a cycle data does not converge to a set of values, but regularly returns to the same set of values
  • another strategy is deployed taking into account the history of the modifications.
  • it is sought, when updating the data, if an identical set has existed in the past.
  • selection rules previously entered by the company 32, are used to determine the best set of data among the sets returning regularly during the execution of the inference engine.
  • a step 240 the system generates the manufacturing data of the product defined by the user 22 and corresponding to its own needs and constraints.
  • the system transfers calculation data to an ERP server 30 of the enterprise 32.
  • the operating principle of the method described here differs from the prior art in which one looks at a configuration such as the opening of a plug through code located behind buttons.
  • a configuration is an application flow whose data is transported by hierarchical structures of data and the change of state (graphic object or logical operator) caused by commands.
  • the streams can multiply and merge in some logical operator, which gives the possibility of having multiple states at the same time, i.e., several graphic objects at a time.
  • This graph shows the flow of the configuration,
  • the graphic object passes the hand to the logical operator through a command, possibly subject to user rights.
  • the process uses a basic graphical environment that hosts all the other components, it consists of three areas: - an interactive and contextual Office 2007 (registered trademark) type banner
  • the basic graphical environment is optimized to work both on a workstation and in an internet explorer.
  • the basic graphical environment is not required in a configuration, but it is often the starting object, and it contains the basic commands that start the application flow.
  • the basic graphical environment hosts basic graphics objects.
  • Each such graphic object contains a workspace, and a portion of ribbon (a ribbon is a user interface element, introduced by Microsoft -tag file-, which replaces or supplements the previously known menu buttons and allows grouping commands associated to find them more easily) that will complete the ribbon of the basic graphical environment.
  • ribbon is a user interface element, introduced by Microsoft -tag file-, which replaces or supplements the previously known menu buttons and allows grouping commands associated to find them more easily
  • the ribbon associated with the graphic object is an assembly of group and descriptors of commands which makes it possible to respect the mechanism MVC (Model View Controller, in English "Model View Control”) and it is the commands associated with each button which make it possible to navigate from graphic object to graphic object.
  • MVC Model View Controller, in English "Model View Control”
  • MVC is a method of human-machine software interface design.
  • the human-machine interface comprises on the one hand a data model, on the other hand a visual interface, finally an event logic controller. It is clear that, in implementation variants, the method can also use other methods than MVC to navigate between the graphic objects.
  • Graphical objects are specialized to solve specific problems, but remain parameterizable through the rules associated with their hierarchical structure of data, and adaptable through Microsoft's StackPanel -posted marks- (command allowing to reorganize secondary elements in a hierarchy of elements, on a single line that can be oriented horizontally or vertically) which are enriched with components by dragging and dropping actions of available elements of the hierarchical data structure, in the form of a control.
  • Each logical operator is a linking component between two graphical objects or logical operators. There may be mentioned, for example but not limited to, logical operators of the type sending an email, writing to a file, searching for information in a Web Service.
  • a library of logical operators is provided in the method. This library of logical operators evolves over time.
  • the processed data in a logical operator is a hierarchical structure of data, and the flow continues through commands that are executed by triggers or programmable conditions.
  • An injection of a hierarchical structure of data takes place for the creation of the nomenclature in the ERP. Injection is the term used to transfer data from one structure to another. As a clarification, we can have a complex structure for the configuration of an object, and come and inject the result (significant data) into another structure (a quote instance for example). Once the operation is complete, a command is triggered to continue the flow.
  • the method uses a set of command descriptors. Each command is associated with an image, a state, a description and an implementation.
  • the command descriptors are grouped in an independent command manager. For the purposes of this method, a command descriptor uses the context of the current graphical object as input and provides context for the next graphical object. Because graphical objects can stack in certain configurations, some commands cause the simple closing of a graphic object.
  • An order may be the opening of a customer record, the order must extract the customer code from the current context to position the customer's edition graphic object on the right person.
  • the transport of data in the stream is through hierarchical structures (or containers) of data, the data can transit either through memory or through persistent collections of hierarchical data structures.
  • the software configuration method makes it possible to define the schemas of much easier than current database management systems (DBMS), and to implicitly validate data and inference relationships between data.
  • DBMS database management systems
  • the designer 32 thus more easily manipulates a logical tree; it's easier and more intuitive than making eye-to-eye comparisons.
  • An innovative first part of the process concerns the logical method of modeling business rules ordered in hierarchical structure in different schemas.
  • the intelligent data that represents the business rules is described in the diagram and is based on visualization and connection interfaces.
  • An innovative second part concerns the inference engine that governs the configuration schemas and the associated thousands of rule combinations, in real time at each change of state of the product data introduced by the end user.
  • An innovative third part concerns the automatic generation of computer code allowing the generation of applications of business configurations through a fun studio for non-IT experts.
  • An innovative fourth part concerns the dynamic design of business forms driven by schemas. These forms are generated based on the target platform of client computers (Silverlight, Windows8, HTML5 - registered trademarks).
  • This engine and the rules associated with the schemas are resident on web servers in the CLOUD and are accessible to laptops or user tablets in Windows, Android and IPAD (registered trademarks) multi-platform mode.

Abstract

The invention concerns a method for creating an integrated custom software application for a computer comprising means for communicating with an Internet data exchange network, said application comprising an MVC human-machine interface, consisting of a data model, a visual interface, and finally an event logic controller, said method comprising graphic means for allowing a user to develop said software application without directly writing computer code, the event logic controller imposing relations between the data of the model and the elements of the display according to a set of settable so-called "business rules", which are also defined by the user without the need to directly write lines of computer code.

Description

PROCÉDÉ DE CRÉATION DE SIMULATEUR DE CONFIGURATION CLIENT  METHOD FOR CREATING CLIENT CONFIGURATION SIMULATOR
La présente invention relève du domaine des procédés de simulation logicielle. The present invention relates to the field of software simulation methods.
Elle concerne plus particulièrement un procédé de génération d'application logicielle permettant de manipuler des données variables liées entre elles, de façon conforme à des règles de cohérence.  It relates more particularly to a software application generation method for manipulating variable data linked together, in a manner consistent with coherence rules.
Exposé de l'invention Presentation of the invention
L'invention vise en premier lieu un procédé de création d'une application logicielle intégrée sur mesure pour ordinateur mobile comportant des moyens de communication à un réseau d'échange de données de type Internet,  The invention aims first and foremost at a method of creating a custom integrated software application for a mobile computer comprising means of communication to an Internet-type data exchange network,
ladite application comportant une interface homme-machine de type MVC (Model View Controller, méthode de conception d'interface homme- machine de logiciel), constituée d'une part d'un modèle de données, d'autre part d'une interface visuelle, enfin d'un contrôleur de logique des événements, ledit procédé comportant des moyens graphiques pour permettre à un utilisateur de développer ladite application logicielle sans écrire directement de code informatique.  said application comprising a man-machine interface of the Model View Controller (MVC) type, consisting on the one hand of a data model, on the other hand of a visual interface and finally an event logic controller, said method comprising graphical means for enabling a user to develop said software application without directly writing computer code.
Le contrôleur logique d'événements impose des relations entre les données du modèle et les éléments de la visualisation selon un ensemble paramétrable de règles de cohérence et de règles d'inférence entre ces données, dites "règles métier" et définissant un moteur d'inférence appliqué aux données du modèle et aux éléments de visualisation.  The event logic controller imposes relationships between the data of the model and the elements of the visualization according to a configurable set of coherence rules and rules of inference between these data, called "business rules" and defining an inference engine applied to model data and visualization elements.
Avantageusement, le procédé comporte un module de définition par l'utilisateur de ces règles métier sans nécessiter l'écriture directe par ledit utilisateur de lignes de code informatique. Les données sur lesquelles doivent s'appliquer les règles de cohérence sont désignées visuellement sur l'interface homme-machine par l'utilisateur, et des règles de lien mathématique entre diverses données, ou de seuils maximums ou minimums sont définis par l'utilisateur. L'invention vise sous un autre aspect un procédé de création d'un simulateur logiciel d'un produit pouvant être configuré selon différentes variantes selon des données définissant les besoins et contraintes d'un client, ledit procédé étant destiné à être mis en œuvre par un ordinateur comportant des moyens de communication à un réseau d'échange de données de type Internet, Advantageously, the method includes a module for defining the user of these business rules without requiring the user to write lines of computer code directly. The data on which the consistency rules are to be applied are visually designated on the human-machine interface by the user, and mathematical link rules between various data, or maximum or minimum thresholds are defined by the user. Another aspect of the invention is a method for creating a software simulator of a product that can be configured according to different variants according to data defining the needs and constraints of a client, said method being intended to be implemented by a computer comprising means of communication to an Internet-type data exchange network,
ladite application comportant une interface homme-machine de type MVC, comportant :  said application comprising a man-machine interface of the MVC type, comprising:
- un modèle de données,  - a data model,
- une interface visuelle,  - a visual interface,
- un contrôleur de logique des événements,  an event logic controller,
ledit procédé comportant des premiers moyens graphiques de définition de liens logiques entre les données, pour permettre à un utilisateur de développer ledit simulateur logiciel sans écrire directement de code informatique,  said method comprising first graphical means for defining logical links between the data, to enable a user to develop said software simulator without directly writing computer code,
le contrôleur logique des événements imposant des relations entre les données du modèle et les éléments de la visualisation selon un ensemble paramétrables de règles dites "règles métier", définies par des seconds moyens graphiques de définition de liens logiques entre les données.  the logic controller of the events imposing relations between the data of the model and the elements of the visualization according to a set of parameterizable rules called "business rules", defined by second graphical means of defining logical links between the data.
On comprend que les produits cités ici peuvent comprendre plusieurs pièces et / ou mécanismes dont les dimensions ou caractéristiques respectives dépendent les unes des autres.  It is understood that the products mentioned here may comprise several parts and / or mechanisms whose respective dimensions or characteristics depend on each other.
On comprend que l'invention est un procédé permettant de créer et adapter des applications intégrées sur mesure pour les supports PC, terminal nomade ou réseau web pour permettre à un utilisateur de concevoir, de développer et de déployer une application sur terminal informatique (tablette PC, smartphone, PC), ladite application permettant, en temps réel ou en mode déconnecté, à des utilisateurs clients professionnels (par exemple des revendeurs de menuiserie, des concepteurs d'armoires électriques..), des utilisateurs commerciaux, du marketing ou du Bureau d'Etudes et Production, de configurer, gérer, éditer sur écran, imprimer et générer des données structurées vers leurs bases de données (ERP, MRP, PDM) à partir d'informations des produits et services configurables obtenues en temps réel à travers des choix d'options et de variantes. It is understood that the invention is a method for creating and adapting custom built applications for PC media, mobile terminal or web network to allow a user to design, develop and deploy an application on computer terminal (tablet PC , smartphone, PC), said application allowing, in real time or in disconnected mode, to users professional customers (for example carpenters resellers, designers of electrical cabinets ..), commercial users, marketing or the office and Production, configure, manage, edit on screen, print and generate structured data to their databases (ERP, MRP, PDM) from configurable product and service information obtained in real time through choice of options and variants.
Dans une mise en œuvre particulière, le procédé met en œuvre une arborescence d'affichage, dans laquelle l'utilisateur choisit d'afficher uniquement une partie d'un schéma de données sur laquelle il veut travailler et le procédé applique des liens et des règles de cohérence et d'inférence simples uniquement sur les éléments constituant cette partie. Avantageusement, le procédé comporte une étape de génération d'un ensemble de données dite "données de fabrication", générées à partir des données d'affichage et d'un ensemble de règles de fabrication, préalablement défini. Dans une mise en œuvre particulière, le module de définition de règles métier comporte des règles de cohérence applicables à ces règles métier, de manière à mettre en évidence les conflits éventuels entre certaines de ces règles lors de leur génération par l'utilisateur. L'invention vise sous un autre aspect un procédé de fabrication d'un produit pouvant être configuré selon différentes variantes selon des données définissant les besoins et contraintes d'un client, comportant un procédé de création d'un simulateur logiciel d'un produit tel qu'exposé plus haut. L'invention vise sous encore un autre aspect un produit / programme d'ordinateur adapté à mettre en œuvre un procédé tel qu'exposé plus haut. In a particular implementation, the method implements a display tree, in which the user chooses to display only part of a data schema on which he wants to work and the method applies links and rules of simple coherence and inference only on the elements constituting this part. Advantageously, the method comprises a step of generating a set of data called "manufacturing data", generated from the display data and a set of manufacturing rules, previously defined. In a particular implementation, the business rule definition module includes consistency rules applicable to these business rules, so as to highlight the possible conflicts between some of these rules during their generation by the user. Another aspect of the invention is a method of manufacturing a product that can be configured according to different variants according to data defining the needs and constraints of a customer, comprising a method for creating a software simulator of a product such as as explained above. The invention aims in yet another aspect a product / computer program adapted to implement a method as described above.
Présentation des figures Presentation of figures
Les caractéristiques et avantages de l'invention seront mieux appréciés grâce à la description qui suit, description qui expose les caractéristiques de l'invention au travers d'un exemple non limitatif d'application.  The characteristics and advantages of the invention will be better appreciated thanks to the description which follows, description which sets out the characteristics of the invention through a non-limiting example of application.
La description s'appuie sur les figures annexées qui représentent : Figure 1 : une vue schématique des éléments impliqués dans la mise en œuvre d'un procédé conforme à la présente description, The description is based on the appended figures which represent: Figure 1: a schematic view of the elements involved in the implementation of a method according to the present description,
Figure 2 : un organigramme des différentes étapes du procédé.  Figure 2: a flowchart of the different steps of the process.
Description détaillée d'un mode de réalisation de l'invention Detailed description of an embodiment of the invention
Le procédé est destiné à être mis en œuvre de façon logicielle par un ensemble de systèmes informatiques.  The method is intended to be implemented in software by a set of computer systems.
Le procédé comporte en premier lieu une phase 100 de création, par une entreprise 32, offreur de produits ou de services, d'une application configurée selon un ensemble de règles de présentation d'information et de règles de calcul, ces règles étant spécifiques au métier de l'entreprise 32, et étant usuellement désignées sous le nom de "règles métier" d'une entreprise (voir figures 1 et 2). Cette phase 100 de création est également appelée dans la suite de la description "configuration logicielle", le procédé étant alors cité sous le terme de "procédé de création de simulateur de configuration client". The method comprises firstly a phase 100 of creation, by a company 32, provider of products or services, of an application configured according to a set of information presentation rules and calculation rules, these rules being specific to the business 32, and usually referred to as business rules (see Figures 1 and 2). This phase of creation 100 is also called in the following description "software configuration", the method then being referred to as the "client configuration simulator creation method".
On comprend qu'il s'agit d'une modélisation algorithmique des règles métier de l'entreprise 32, et de leur présentation sous une forme ergonomiquement astucieuse et ludique à un utilisateur 22 devant utiliser des données représentatives de variables liées au métier de l'entreprise 32. Le but est de parvenir à un système de simulation utilisable par un utilisateur 22, non expert dans le métier de l'entreprise 32, et cependant conforme à toutes ses règles de cohérence.  It is understood that this is an algorithmic modeling of the business rules of the company 32, and their presentation in an ergonomically clever and playful form to a user 22 to use data representative of variables related to the business of the business. enterprise 32. The goal is to achieve a simulation system usable by a user 22, not expert in the business of enterprise 32, and yet complies with all its consistency rules.
A titre d'exemple purement explicatif et nullement limitatif, l'entreprise 32 peut être un fabricant de portails. Ces portails sont réalisables selon diverses options, par exemple en un certain nombre de matériaux, formes et textures différents, et selon diverses variantes, par exemple en largeur et hauteur variables. Dans un exemple plus détaillé, ils sont éventuellement divisibles en deux portes, dont la somme des largeurs correspond à une largeur d'emplacement d'implantation du portail. Différents matériaux peuvent être utilisés pour les portes, dans la mesure du respect de certaines contraintes techniques. Les hauteurs des deux bords latéraux du portail peuvent varier, dans des limites de construction. As a purely explanatory and in no way limiting example, the company 32 may be a manufacturer of portals. These portals are achievable according to various options, for example in a number of different materials, shapes and textures, and in various variants, for example variable width and height. In a more detailed example, they are possibly divisible into two doors, the sum of the widths corresponds to a portal location width. Different materials can be used for the doors, to the extent of the respect of certain constraints techniques. The heights of the two side edges of the gate may vary, within construction limits.
On comprend que le but est ici de proposer un simulateur de configuration de portail, permettant à un client potentiel 22 de l'entreprise 32 de configurer un portail qui corresponde à ses données spécifiques et à ses envies, sans jamais avoir à se préoccuper des règles métier qui régissent les relations des variables définissant le portail entre elles. Un tel configurateur doit permettre de faire varier de façon aussi continue que possible les paramètres disponibles à l'utilisateur 22. Dans le même temps, une variable de coût de réalisation peut être associée en temps réel à chaque configuration.  It is understood that the purpose here is to propose a portal configuration simulator, enabling a potential customer 22 of the company 32 to configure a portal that corresponds to his specific data and his desires, without ever having to worry about the rules. which govern the relationships of the variables defining the portal between them. Such a configurator must make it possible to vary as continuously as possible the parameters available to the user 22. At the same time, an implementation cost variable can be associated in real time with each configuration.
Un second but est de générer ensuite de façon correcte un cahier des charges de fabrication mis en forme selon les règles de présentation des données pertinentes pour le fabricant 32. A second aim is to then correctly generate a manufacturing specification formatted according to the data presentation rules relevant for the manufacturer 32.
Cette première phase 100 du procédé accepte donc en entrées des règles métier diverses et un mode de représentation graphique des données, et fournit en sortie un code source correspondant à un configurateur logiciel réalisant les buts spécifiés plus hauts, c'est-à-dire par exemple un logiciel de définition d'une configuration de portail répondant aux besoins et contraintes particulières de clients 22. This first phase 100 of the method therefore accepts as inputs various business rules and a graphical representation mode of the data, and outputs a source code corresponding to a software configurator achieving the specified goals higher, that is to say by for example a software for defining a portal configuration that meets the particular needs and constraints of customers 22.
Dans cette phase 100 de création de configurateur logiciel, le procédé implique un premier système informatique 10, ici dit serveur de développement. Ce serveur de développement 10 comporte un écran d'affichage 1 1 , et héberge une ou plusieurs applications logicielles. Le serveur d'applications 10 est par exemple un ordinateur de type PC, connu en soi. Il dispose éventuellement de moyens classiques de communication au réseau, par voie filaire et/ ou radioélectrique. Il est adapté à héberger en mémoire et exécuter une application logicielle représentant la partie du procédé mise en œuvre par ledit serveur de développement 10. Le procédé comporte en second lieu une phase 200 d'utilisation de l'application logicielle créée, cette utilisation étant réalisée par exemple mais non limitativement dans les locaux de l'entreprise 32. Cette utilisation s'apparente, comme on l'a dit, à l'exécution d'un procédé de simulation. Ce procédé de simulation permet par exemple de configurer un produit destiné à la fabrication selon les besoins spécifiques d'un client 22, et intégrant les règles métier de l'entreprise 32, c'est à dire, par exemple, des règles de fabrication et de dimensionnement. Le procédé implique en premier lieu, pour cette seconde phase 200, un système informatique 15, ici dit serveur d'applications (voir figure 1 ). Ce serveur d'applications 15 comporte un écran d'affichage 1 1 , et héberge une ou plusieurs applications logicielles. Le serveur d'applications 15 est par exemple un ordinateur de type PC, connu en soi. Il dispose de moyens classiques de communication au réseau, par voie filaire et/ ou radioélectrique. Il est adapté à héberger en mémoire et exécuter une application logicielle représentant la partie du procédé mise en œuvre par ledit serveur d'applications 15. Ce serveur d'applications 15 héberge notamment l'application logicielle (dite configurateur) générée lors de la phase de configuration logicielle. In this phase 100 of software configurator creation, the method involves a first computer system 10, here called development server. This development server 10 comprises a display screen 1 1, and hosts one or more software applications. The application server 10 is for example a PC type computer, known per se. It may have conventional means of communication to the network, wired and / or radio. It is adapted to host in memory and execute a software application representing the part of the method implemented by said development server 10. The method comprises secondly a phase 200 of use of the software application created, this use being carried out for example but not limited to the premises of the company 32. This use is similar, as has been said, performing a simulation process. This simulation method makes it possible, for example, to configure a product intended for manufacturing according to the specific needs of a customer 22, and integrating the business rules of the company 32, that is to say, for example, manufacturing rules and sizing. The method involves first, for this second phase 200, a computer system 15, here called application server (see Figure 1). This application server 15 comprises a display screen 1 1, and hosts one or more software applications. The application server 15 is for example a PC type computer, known per se. It has conventional means of communication to the network, wired and / or radio. It is adapted to host in memory and to execute a software application representing the part of the method implemented by said application server 15. This application server 15 houses in particular the software application (called configurator) generated during the phase of the application. software configuration.
La seconde phase 200 du procédé implique en outre au moins un second système informatique, dit ici terminal utilisateur 20. Dans le présent exemple, ce terminal utilisateur 20 est de type PC.  The second phase 200 of the method furthermore involves at least one second computer system, here called the user terminal 20. In the present example, this user terminal 20 is of PC type.
Le terminal utilisateur 20 comporte des moyens de calcul (par exemple microprocesseur), des dispositifs mémoire, et des moyens de communication 16 au réseau par voie radioélectrique. Il est adapté à télécharger et exécuter une application logicielle reprenant la partie du procédé mise en œuvre par ledit terminal utilisateur 20.  The user terminal 20 comprises calculation means (for example microprocessor), memory devices, and communication means 16 to the radio network. It is adapted to download and execute a software application containing the part of the method implemented by said user terminal 20.
Un tel terminal utilisateur 20 est de type connu en soi, et n'est donc pas détaillé plus avant ici.  Such a user terminal 20 is of a type known per se, and is therefore not detailed further here.
Dans un premier mode de réalisation, le terminal utilisateur 20 accède via un réseau de type Internet à un serveur d'application 15, sur lequel est exécutée l'application correspondant aux règles métier de l'entreprise 32. Dans un second mode de réalisation, le terminal utilisateur 20 et le serveur d'application 15 sont confondus en une seule machine, sur laquelle est exécutée l'application logicielle (le simulateur de configuration). On comprend que cette seconde phase 200 du procédé peut impliquer plusieurs terminaux utilisateurs 20, ou de nombreux serveurs d'applications 15, dont les applications (simulateurs de configuration) sont éventuellement totalement différentes et relatives à des produits indépendants de l'entreprise 32. In a first embodiment, the user terminal 20 accesses via an Internet-type network to an application server 15, on which the application corresponding to the business rules of the company 32 is executed. In a second embodiment, the user terminal 20 and the application server 15 are combined into a single machine, on which the software application (the configuration simulator) is executed. It will be understood that this second phase 200 of the method may involve several user terminals 20, or numerous application servers 15 whose applications (configuration simulators) may be totally different and relating to products independent of the company 32.
Dans un mode particulier, le procédé met également en œuvre un serveur de gestion de données d'entreprises ERP 30, associé à un ensemble de terminaux 35. Dans cette mise en œuvre, les données modifiées par les actions sur les terminaux utilisateurs 20 sur le serveur d'application 15 sont transférées vers le serveur ERP 30, par exemple sous forme de données de fabrication.  In a particular embodiment, the method also implements an ERP enterprise data management server 30, associated with a set of terminals 35. In this implementation, the data modified by the actions on the user terminals 20 on the application server 15 are transferred to the ERP server 30, for example in the form of manufacturing data.
Etapes du procédé Process steps
La figure 2 illustre un organigramme des étapes d'un procédé conforme à un mode de mise en œuvre de l'invention.  Figure 2 illustrates a flowchart of the steps of a method according to an embodiment of the invention.
Le procédé de création de configurateur est un modélisateur de structures hiérarchiques des données de l'entreprise 32.  The configurator creation process is a hierarchical structure modeller of the enterprise data 32.
Il utilise en entrées une identification et une définition des variables à considérer dans l'application client, un ensemble de règles de relations entre ces variables (inférences, équations entre ces variables...), des choix de modes de représentation de ces variables pour un utilisateur 22 non spécialiste. Ces entrées sont demandées progressivement à l'entreprise 32 lors de la création du simulateur de configuration, avec une capacité permanente à revenir sur des entrées précédentes, et à modifier celles-ci, de façon interactive.  It uses as input an identification and a definition of the variables to be considered in the client application, a set of rules of relations between these variables (inferences, equations between these variables ...), choices of modes of representation of these variables for a non-specialist user 22. These entries are progressively requested from company 32 when the configuration simulator is created, with a permanent ability to go back to previous entries, and to modify these, interactively.
On définit ci-dessous les principaux modules entrant dans la mise en œuvre du procédé de configuration. Module de représentation et de manipulation des données The following are the main modules involved in the implementation of the configuration method. Data representation and manipulation module
Structure hiérarchique de données  Hierarchical structure of data
Les données utilisées dans le procédé de configuration sont stockées et manipulées sous la forme d'un ou plusieurs structures hiérarchiques de données. La structure hiérarchique de données est la structure de base du moteur de configuration. Cette structure hiérarchique de données est celle qui est utilisée dans le moteur d'inférence mis en œuvre dans le procédé.  The data used in the configuration process is stored and manipulated as one or more hierarchical data structures. The hierarchical data structure is the basic structure of the configuration engine. This hierarchical data structure is the one used in the inference engine implemented in the method.
La structure hiérarchique de données utilise des modules d'accès aux données et de liens entre les données pour son affectation et les ensembles de définitions de chaque valeur.  The hierarchical data structure uses data access modules and links between the data for its assignment and the sets of definitions of each value.
La structure de données hiérarchique permet de stocker et de manipuler toutes les données de l'entreprise 32 avec une même logique sans se soucier de sa persistance physique et de la manière dont cela est mis en forme à l'écran. The hierarchical data structure makes it possible to store and manipulate all the data of the company 32 with the same logic without worrying about its physical persistence and how it is formatted on the screen.
Chaque structure hiérarchique de données possède un nom en relation avec son schéma de données, c'est-à-dire une liste de champs fortement typés, et un ensemble d'autres structures de données, éventuellement de type différent.  Each hierarchical data structure has a name in relation to its data schema, that is, a list of strongly typed fields, and a set of other data structures, possibly of different types.
On rappelle que, dans des champs fortement typés, les variables ne sont pas dynamiques comme en Javascript (marque déposée), elles ont un type strict (entier, chaîne de caractères, date).  It is recalled that, in strongly typed fields, the variables are not dynamic as in Javascript (registered trademark), they have a strict type (integer, character string, date).
Schéma de règles Rule schema
Le procédé de configuration utilise en second lieu un schéma décrivant les règles qui régissent une structure hiérarchique de données.  The configuration method secondly uses a schema describing the rules that govern a hierarchical structure of data.
Un schéma de règles est ici défini comme la description de la structure et de l'ensemble des règles qui définissent une structure hiérarchique de données. Un schéma au format XSD peut être déduit d'un schéma de règles et peut ainsi être utilisé dans les échanges http sur un réseau de communications de données de type Internet.  A rules scheme is defined here as the description of the structure and set of rules that define a hierarchical structure of data. An XSD format schema can be derived from a rule schema and can thus be used in http exchanges over an Internet type data communications network.
Dans cette figure, qui illustre un exemple non limitatif d'une partie du contenu d'un schéma de règles, on comprend qu'une variable d'un Type Complexe ici nommée « Toy » est composée d'occurrences d'une variable d'un Type Complexe « Board ». L'ensemble d'occurrence des variables « Board » forme un ensemble de données. Cet ensemble de données peut être représenté sous forme de tableau. In this figure, which illustrates a non-limiting example of a part of the content of a rules diagram, it is understood that a variable of a type Complex here named "Toy" is composed of occurrences of a variable of a Complex Type "Board". The set of occurrence of the "Board" variables forms a set of data. This dataset can be represented as a table.
On peut maîtriser cet ensemble d'occurrences aux travers de contraintes, par exemple de valeur minimum ou maximum.  We can control this set of occurrences through constraints, for example of minimum or maximum value.
Des règles d'inférences associées à chaque variable de type simple permettent de rendre la structure de données active aux changements de valeur. En effet la structure hiérarchique de données peut être associée à un moteur d'inférence qui permet la propagation et la résolution de l'induction provoquée par les deux règles associées à chaque type simple. Inference rules associated with each simple type variable make the data structure active for value changes. Indeed, the hierarchical structure of data can be associated with an inference engine that allows the propagation and the resolution of the induction caused by the two rules associated with each simple type.
Une règle de changement fonctionne comme un événement lors du changement de valeur d'une variable d'une structure de données hiérarchique, cette règle est donc une règle explicite. Il est à noter qu'il n'y a pas ici enchaînement en cascade comme en informatique (la règle modifiant à son tour d'autres variables qui déclenchent à leur tour leur règle explicite), on respecte au contraire les pas du moteur d'inférence. Contrairement aux règles de définition (voir plus bas), une règle de changement ne s'exécute que si la valeur de la variable a été modifiée, elle ne tient pas compte des relations avec les autres variables, dans les pas d'inférence la règle de changement est calculé avant les règles de définitions. Une règle de définition permet de définir la valeur d'une variable d'une structure de données hiérarchique, en fonction de son environnement. On rappelle ici qu'une règle de définition est à la base de l'inférence, c'est une règle qui définit la valeur de la variable en fonction des autres variables. Contrairement à une règle de changement, une règle de définition est implicite (c'est à dire que, par exemple, dans l'égalité v1 = v2 - v3, si v2 change v1 doit être recalculé). Elle doit déterminer son cas d'emploi pour pouvoir s'exécuter au moment opportun. Pendant un pas d'inférence toutes les règles sont calculées sur le même ensemble de valeur (équipotence entre les valeurs et le résultat), puis toutes les valeurs sont mises à jour, ainsi de suite jusqu'à la stabilisation de l'ensemble. A change rule functions as an event when changing the value of a variable in a hierarchical data structure, so this rule is an explicit rule. It should be noted that there is not cascading here as in computer (the rule modifying in turn other variables which trigger in turn their explicit rule), one respects on the contrary the steps of the engine of inference. Unlike the definition rules (see below), a change rule only executes if the value of the variable has been modified, it does not take into account relationships with other variables, in inference steps the rule change is calculated before the definition rules. A definition rule is used to define the value of a variable in a hierarchical data structure, depending on its environment. We recall here that a definition rule is the basis of inference, it is a rule that defines the value of the variable according to other variables. Unlike a rule of change, a definition rule is implicit (that is, in v1 = v2 - v3, for example, if v2 changes v1 must be recalculated). She must determine her employment case in order to be able to execute at the right moment. During an inference step all the rules are calculated on the same set of values (equipotence between the values and the result), then all the values are updated, so on until the stabilization of the whole.
Identifiant unique de référence Unique reference identifier
Un identifiant unique de référence (URI=Unique Référence Identifier) permet d'obtenir de manière unique une structure de données hiérarchique ou une donnée particulière dans une structure complexe. Cet identifiant unique de référence Uri est l'adresse de la variable dans une structure hiérarchique.  A unique reference identifier (URI = unique reference identifier) makes it possible to uniquely obtain a hierarchical data structure or a particular piece of data in a complex structure. This unique reference identifier Uri is the address of the variable in a hierarchical structure.
Un ensemble de règles d'écriture sur ces identifiants sont définies.  A set of write rules on these identifiers are defined.
Une méthode de recherche « Find » permet de retrouver un élément en fonction de son identifiant unique de référence, une syntaxe particulière permet de rechercher une structure hiérarchique de données en fonction de la valeur d'un de ses champs.  A search method "Find" makes it possible to find an element according to its unique identifier of reference, a particular syntax makes it possible to search a hierarchical structure of data according to the value of one of its fields.
Les identifiants uniques de référence servent principalement pour les piles, l'association d'une entité graphique (TextBox) avec une variable du modèle ("binding") et l'accès aux données dans les algorithmes complexes.  Unique reference identifiers are mainly used for stacks, the association of a graphic entity (TextBox) with a model variable ("binding") and access to data in complex algorithms.
L'identifiant unique de référence Uri sert à connaître l'adresse de la variable associée.  The unique reference identifier Uri serves to know the address of the associated variable.
Les algorithmes complexes sont de type WebRules ou BusinessRules, ce sont des règles algorithmiques qui permettent de lier des structures entre elles, par exemple de transformer une structure de données de configuration en une structure pour l'impression, ou pour injection dans un logiciel de type ERP, etc.  Complex algorithms are of the WebRules or BusinessRules type, they are algorithmic rules that make it possible to link structures to each other, for example to transform a structure of configuration data into a structure for printing, or for injection into a type of software ERP, etc.
Une extension est éventuellement faite à une structure hiérarchique de données pour y ajouter un ou plusieurs index de recherche dans le cas d'ensemble conséquent de données, et pour s'appuyer sur la méthode connue en soi « Link ».  An extension is optionally made to a hierarchical data structure to add one or more search indexes in the case of a set of data, and to rely on the method known per se "Link".
Outil de stockage de structures hiérarchiques de données Tool for storing hierarchical data structures
Une structure hiérarchique de données, telle que définie précédemment, est un ensemble de données qui ne peut persister qu'en mémoire. Pour pouvoir sauvegarder toutes les structure hiérarchique de données qui composent une configuration (une configuration est représentable comme un ensemble de collections de structures de données), on utilise, dans le présent procédé de configuration, un outil générique pour le stockage de ces collections de structures de données en mémoire persistante. Cet outil générique est une collection de structures de données persistantes. Une collection de structures hiérarchiques de données est associée à un schéma de règles unique qui décrit le comportement de tous les éléments (structures hiérarchiques de données) de la collection. A hierarchical data structure, as defined above, is a set of data that can only persist in memory. To be able to save all the hierarchical structure of data that make up a configuration (a configuration can be represented as a set of data structure collections), a generic tool is used in the present configuration method for storing these collections of data structures in persistent memory. This generic tool is a collection of persistent data structures. A collection of hierarchical data structures is associated with a single rule schema that describes the behavior of all elements (hierarchical data structures) in the collection.
Une collection de structures de données est également associée à un ensemble de fournisseurs de données (fournisseurs de contenus mis à disposition pour la réalisation de configurations) qui permettent le stockage physique de la collection en fonction de différentes stratégies de stockage.  A collection of data structures is also associated with a set of data providers (content providers made available for making configurations) that allow the physical storage of the collection according to different storage strategies.
Une collection de structures de données doit-être stockée sur disque, en base, dans des services de stockage délocalisés ("cloud"), ou autre suivant la stratégie, et chaque stratégie à son fournisseur (provider). On utilise ici par exemple des fournisseurs de données classiques, en mémoire, en base de données, mais d'autres fournisseurs peuvent être envisagés, comme le stockage de données dans des listes de type connu en soi sous le nom de SharePoint -marque déposée-, dans des services de stockage délocalisés (Cloud) ou des centres de stockage de données externes (Datacenters).  A collection of data structures must be stored on disk, database, delocalized storage services ("cloud"), or other according to the strategy, and each strategy to its provider. Here, for example, conventional data providers are used, in memory, in the database, but other providers may be envisaged, such as the storage of data in lists of a type known per se under the name of SharePoint -the trademark- , in remote storage services (Cloud) or external data storage centers (Datacenters).
Module de gestion graphique et d'exposition sur le Web ("service web") Graphical Management and Exhibition Module on the Web ("web service")
Le procédé comporte en outre un module de représentation des données manipulées dans le module précédent, selon un format compatible avec un affichage sur des ordinateurs reliés à un réseau de type Internet. Cette exposition se fait sous forme de services Web en utilisant l'architecture de Microsoft (IIS 7.0, WCF, .Net 3.5) (marques déposées).  The method further comprises a module for representing the data manipulated in the previous module, in a format compatible with a display on computers connected to an Internet type network. This exhibition is in the form of web services using the Microsoft architecture (IIS 7.0, WCF, .Net 3.5) (registered trademarks).
Dans un premier mode de réalisation, non limitatif, on utilise un service web qui respecte l'architecture REST (de l'anglais Representational State Transfert), connue en soi. In a first embodiment, non-limiting, using a web service that respects the REST architecture (of the English Representational State Transfer), known per se.
L'architecture REST utilise des standards, en particulier : URI comme syntaxe universelle pour adresser les ressources, HTTP un protocole sans état (en anglais stateless) avec un nombre très limité d'opérations, The REST architecture uses standards, in particular: URI as a universal syntax for addressing resources, HTTP a stateless protocol with a very limited number of operations,
Des hyperliens dans des documents (X)HTML et XML pour représenter à la fois le contenu des informations et la transition entre états de l'application,  Hyperlinks in (X) HTML and XML documents to represent both the content of the information and the transition between states of the application,
Les types MIME comme text/xml, text/html, image/jpeg, application/pdf, video/mpeg pour la représentation des ressources. Les choix technologiques d'implémentation du service web sont un serveur IIS 7.0 (marque déposée) comme plate-forme d'hébergement du service (serveur d'application 15), et, dans un exemple nullement limitatif de mise en œuvre du procédé, une écriture du service en WCF (Windows Communication Foundation) en utilisant un lien d'objets pour faire communiquer le modèle de données et la visualisation utilisateur ("binding") spécifique qui expose (c'est à dire génère une interface visuelle) ce service en respectant l'architecture REST. Il est à noter que WCF est un package de Microsoft (marque déposée) qui enferme des protocoles de communication, ce package est utilisé dans le présent procédé pour Silverlight (marque déposée), mais pas pour html5.  MIME types like text / xml, text / html, image / jpeg, application / pdf, video / mpeg for resource representation. The technological choices for implementation of the web service are an IIS 7.0 (registered trademark) server as a hosting platform for the service (application server 15), and in a non-limiting example of implementation of the method, a writing of the Windows Communication Foundation (WCF) service by using an object link to communicate the data model and the specific "binding" view that exposes (ie generates a visual interface) this service. respecting the REST architecture. It should be noted that WCF is a package of Microsoft (registered trademark) that encloses communication protocols, this package is used in the present process for Silverlight (registered trademark), but not for html5.
Le serveur WEB mis en œuvre dans le présent procédé propose des services au format conforme aux contraintes REST (Representational State Transfer) en XML ou JSON, ou éventuellement un autre format connu de l'homme du métier.  The web server implemented in the present method offers services in the format compliant with the REST (Representational State Transfer) constraints in XML or JSON, or possibly another format known to those skilled in the art.
De façon résumée, les données sont obtenues d'un service Web pour être liées (au sens du lien d'objets pour faire communiquer le modèle de données et la visualisation utilisateur -binding-) aux contrôles visuels.  In summary, the data is obtained from a web service to be linked (in the sense of the object link to communicate the data model and the user -binding) to the visual controls.
Le procédé comporte également un service web en charge la persistance et la gestion des configurations en cours. Il est bâti autour d'une architecture de caches configurables, de manière à donner à ce service Web une grande fluidité d'utilisation. The method also includes a web service that supports the persistence and management of current configurations. It is built around an architecture of configurable caches, in order to give this Web service a great fluidity of use.
Ce service web contient des objets temporaires qui permettent l'exécution de différentes configurations, chacune est identifiée par un ticket dont la durée de vie est gérée par une stratégie fonction de conditions spécifiques à l'application ou au client considérée. Le procédé utilise un ensemble de descriptions des collections de structures de données qui composent la configuration. This web service contains temporary objects that allow the execution of different configurations, each is identified by a ticket whose life is managed by a strategy based on conditions specific to the application or client considered. The method uses a set of descriptions of the data structure collections that make up the configuration.
Le procédé utilise en outre des descripteurs de collections de structures hiérarchiques de données partageant un même schéma de règles (c'est à dire associées au même moteur d'inférence). Chaque collection de structures hiérarchiques de données possède son propre fournisseur de données clients. On rappelle qu'une collection doit-être stockée sur disque, en base, sur le cloud, ou autre suivant la stratégie, et chaque stratégie à son fournisseur (provider).  The method further uses descriptors of collections of hierarchical structures of data sharing the same rule scheme (ie associated with the same inference engine). Each collection of hierarchical data structures has its own customer data provider. Remember that a collection must be stored on disk, database, cloud, or other according to the strategy, and each strategy to its provider.
Le procédé travaille sur un ensemble de variables de base (destinées à être accessibles à un utilisateur du configurateur).  The method works on a set of basic variables (intended to be accessible to a user of the configurator).
Une modification de la valeur d'une variable de base entraîne le démarrage du moteur d'inférence (le module de manipulation de données, c'est à dire le schéma de règles). Ce module permet de définir des règles dans les bases de données qui provoquent un événement (exemple un ajout, une modification). Cet événement est lié au cache de données (mise à jour) ou au moteur d'inférence (modification d'une règle de définition).  A change in the value of a base variable causes the inference engine to start (the data manipulation module, ie the rule schema). This module makes it possible to define rules in the databases which cause an event (example an addition, a modification). This event is related to the data cache (update) or the inference engine (modification of a definition rule).
Par exemple, à titre de clarification, si la valeur d'un stock est modifiée, les règles associées à la quantité restante sont mises à jour pendant la configuration. For example, for clarification, if the value of a stock is changed, the rules associated with the remaining quantity are updated during configuration.
Une variable de base est associée à des contraintes définies dans le schéma et à des règles vérifiées par le moteur d'inférence. Certaines variables de base sont associées à un paramètre qui définit leur ensemble des valeurs possibles.  A base variable is associated with constraints defined in the schema and rules verified by the inference engine. Some basic variables are associated with a parameter that defines their set of possible values.
Le procédé conserve, dans le présent exemple non limitatif de mise en œuvre, au moins une liste chronologique décrivant les variables de base modifiées par l'utilisateur ou le moteur d'inférence. Chaque variable de base est décrite notamment par la localisation de la variable de base ainsi que sa valeur, ou par un ensemble de paires clef / valeurs possibles pour une variable de base, cette liste définit l'ensemble des valeurs possible d'une variable de base en fonction de l'état d'une structure hiérarchique de données. Le procédé de création de configurateur The method retains, in the present nonlimiting example of implementation, at least one chronological list describing the basic variables modified by the user or the inference engine. Each basic variable is described in particular by the location of the basic variable as well as its value, or by a set of key pairs / possible values for a base variable, this list defines the set of possible values of a base variable according to the state of a hierarchical data structure. The process of creating a configurator
Une configuration effectuée pour un client 22 (par exemple conception d'un portail de dimensions et géométrie spécifiques) est une suite d'opérations effectuées au sein d'un flux de donnée semblable à un flux de travaux (en anglais workflow).  A configuration performed for a client 22 (for example, designing a portal of specific dimensions and geometry) is a series of operations performed within a flow of data similar to a workflow.
Certaines opérations sont de type logique et d'autres de type graphique Some operations are logical and some are graphical
(formulaire). La demanderesse a constaté qu'en affinant la granularité, un grand nombre de formulaires présentent des fonctionnements similaires, seule change la logique permettant au client de gérer le schéma des règles de la structure hiérarchique de données. (form). The Applicant has found that in refining granularity, a large number of forms have similar operations, only changes the logic allowing the client to manage the schema rules of the hierarchical structure of data.
En partant de ces observations, le procédé de création de configurateur a pour objectif de proposer un certain nombre de modèles d'opérateurs logiques et d'objets graphiques qui peuvent s'assembler au sein d'un flux paramétrable. Starting from these observations, the purpose of the configurator creation process is to propose a certain number of logical operator models and graphical objects that can be assembled within a parameterizable flow.
Le procédé de création de configurateur utilise les données et fonctionnalités du module de manipulation de données, et sur les technologies connues sous les noms Wpf, Wcf, Wf.  The method of creating a configurator uses the data and functionality of the data manipulation module, and the technologies known as Wpf, Wcf, Wf.
Le procédé de création de configurateur en ligne s'appuie sur une architecture de type connu sous le nom de Multi-Tier (architecture à plusieurs niveaux), ce qui signifie que certains objets graphiques logiques sont hébergés dans des Services web. Le procédé de création de configurateur, décrit ici à titre d'exemple, offre un moyen de générer un configurateur clients/Serveur d'une manière simple et accessible. The method of creating an online configurator is based on an architecture of the type known as Multi-Tier (Multilevel Architecture), which means that some logical graphical objects are hosted in Web Services. The configurator creation method, described here by way of example, provides a means of generating a client / server configurator in a simple and accessible manner.
Les modèles proposés doivent être souples pour répondre à toutes les configurations. Pendant une configuration complexe, il peut avoir plusieurs structures en inférence. Etant donné qu'il n'y a pas de données stockées sur le terminal client 20, le procédé comporte des sessions de configuration sur le serveur associé, et à chaque modification de données le procédé fait un appel vers la session associé (cookie) qui infère et renvoie le résultat au terminal client 20. Dans une autre variante de mise en œuvre du procédé, on appelle une règle de type WebRule qui injecte des données d'une session à une autre en respectant un ensemble de règles, ainsi aucun calcul et aucune donnée ne se trouve stockée chez le client 20 (selon une philosophie de "client léger"). The models proposed must be flexible to answer all the configurations. During a complex configuration, it can have several structures in inference. Since there is no data stored on the client terminal 20, the method includes configuration sessions on the associated server, and at each data modification the method makes a call to the associated session (cookie) which infers and returns the result to the client terminal 20. In another implementation variant of the method, a rule of the WebRule type is called which injects data from one session to another respecting a set of rules, so no calculation and no data is stored at the client 20 (according to a philosophy of "thin client").
Dans un mode de mise en œuvre décrit ici à titre d'exemple non limitatif, les objets graphiques sont développés en langage Wpf, le paramétrage des objets graphiques se fait par un simple push de composant et un lien des objets entre eux (binding) pour permettre la communication entre le modèle de données et la visualisation utilisateur) semi automatique à la structure hiérarchique de données au sein du Studio (marque déposée). In an implementation mode described here by way of non-limiting example, the graphic objects are developed in Wpf language, the parameterization of the graphic objects is done by a simple push of a component and a link of the objects between them (binding) for allow communication between the data model and user visualization) semi automatic to the hierarchical structure of data within the Studio (registered trademark).
Dans une autre mise en œuvre, ces structures hiérarchiques sont des modèles de données (dynamiques). Pour les associer à un affichage, le procédé comprend un module de présentation de données. Ce module de présentation de données à pour fonction de présenter les données (couleur, langue du client, étiquette associé, type de contrôle), et de les modifier à l'aide d'un outil graphique dans le Studio (marque déposée).  In another implementation, these hierarchical structures are (dynamic) data models. To associate them with a display, the method comprises a data presentation module. This data presentation module has the function of presenting the data (color, customer language, associated label, type of control), and modifying them using a graphic tool in the Studio (registered trademark).
A partir de ce module de présentation de données, on génère un affichage (frame) dans la technologie d'affichage utilisée (Xaml ou html5, ou autre à venir) en appliquant le lien des objets entre eux (binding).  From this data presentation module, a display is generated (frame) in the display technology used (Xaml or html5, or other to come) by applying the link objects between them (binding).
Pour lier tous les modules de présentation de données (associés chacun à une structure hiérarchique de données), le procédé met en œuvre une étape qui permet de naviguer d'un premier module de présentation de données à un second module de présentation de données, en suivant le processus désiré par le client. Dans cette étape, on s'assure du passage des identifiants de session, du retour au précédent et de la communication entre les modules de présentation de données.  To link all the data presentation modules (each associated with a hierarchical data structure), the method implements a step that makes it possible to navigate from a first data presentation module to a second data presentation module, in following the process desired by the customer. In this step, it ensures the passage of session identifiers, the return to the previous and the communication between the data presentation modules.
L'affichage suit le flux des modules de présentation de données en activant la présentation ("frame") (formulaire ou userControl) associée.  The display follows the flow of the data presentation modules by activating the associated "frame" (form or userControl).
Cette manière de paramétrer les formulaires permet de rendre accessible la technologie SilverLight (marque déposée) ou html5 (ou autre dans des variantes de mise en œuvre du procédé) très complexe et non accessible au non informaticien. Des feuilles de style sont fournies pour l'habillage des configurations, permettant la personnalisation de la configuration en quelques clics. This way of setting the forms makes it possible to render available SilverLight technology (trademark) or html5 (or other in implementation variants of the process) very complex and not accessible to the non-computer scientist. Style sheets are provided for setting up configurations, allowing customization of the configuration in a few clicks.
Le procédé utilise plusieurs types d'éléments distincts : The method uses several types of distinct elements:
environnement graphique de base, muni d'un menu interaction et d'un espace de travail contenant des objets graphiques.  basic graphical environment, with an interaction menu and a workspace containing graphic objects.
· objet graphique de base fourni dans une bibliothèque.  · Basic graphic object provided in a library.
opérateur logique (objet de calcul) ayant une fonctionnalité précise.  logical operator (computational object) having a specific functionality.
descripteur de commande, objet permettant (ou provoquant) la transition du flux de données d'un objet graphique vers un autre objet graphique ou un opérateur logique. Une commande provoque au travers d'une règle le passage d'un module de présentation de données à un autre, ou l'appel d'une WebRule (calcul sur le serveur)  command descriptor, an object that allows (or causes) the transition of the data flow from a graphic object to another graphic object or a logical operator. A command causes through a rule the passage of a data presentation module to another, or the call of a WebRule (calculation on the server)
structure hiérarchique de données, objet permettant le stockage des données fournies par les différents composants  hierarchical structure of data, object allowing the storage of the data provided by the different components
Fonctionnement du procédé Operation of the process
Le fonctionnement du procédé est illustré par l'organigramme de la figure The operation of the process is illustrated by the flow diagram of the figure
2. 2.
Dans une première étape 1 10 de la phase 100 de création de configurateur logiciel, l'entreprise 32 procède à l'identification des variables permettant la définition des produits qu'elle veut faire configurer par ses clients 22. Dans une seconde étape 120, les règles d'inférence sont identifiées, puis dans une troisième étape 130, les modes de représentation des variables sont définis. Le système procède alors, dans une étape 140, à une vérification de cohérence des règles d'inférence définies précédemment. Il génère alors, dans une étape 150, une interface visuelle destinée aux utilisateurs 22 du configurateur. Dans une étape 160, des règles de fabrication sont définies par l'entreprise 32, sur la base des variables définies dans l'étape 1 10. Dans une étape 210 de la phase 200 d'utilisation du configurateur, le système affiche, à destination de l'utilisateur 22, au moins une partie d'un schéma de données. In a first step 1 10 of the phase 100 of software configurator creation, the company 32 proceeds to the identification of the variables making it possible to define the products that it wants its customers to configure. In a second step 120, the inference rules are identified, then in a third step 130, the modes of representation of the variables are defined. The system then proceeds, in a step 140, to a consistency check of the inference rules defined above. It then generates, in a step 150, a visual interface for users 22 of the configurator. In a step 160, manufacturing rules are defined by the company 32, based on the variables defined in step 1 10. In a step 210 of the phase 200 of use of the configurator, the system displays, for the user 22, at least part of a data schema.
Puis l'utilisateur 22 vient modifier des données en fonction de ses besoins propres, et le moteur d'inférence propage les modifications aux autres variables liées par des règles d'inférence.  Then the user 22 modifies data according to his own needs, and the inference engine propagates the modifications to the other variables linked by inference rules.
Plus précisément, lors du fonctionnement du moteur d'inférence, le moteur passe à travers plusieurs états qui s'enchainent de manière cyclique jusqu'à la stabilisation de l'ensemble de données ou à la détection de la récurrence de données cycliques.  More specifically, during the operation of the inference engine, the engine passes through several states that cycle cyclically until the stabilization of the data set or the detection of recurrence of cyclic data.
Dans une première étape 220, le système est en attente de modifications de la part d'un utilisateur 22 du procédé.  In a first step 220, the system is waiting for modifications from a user 22 of the method.
Lors de la réception d'une telle modification, dans une étape 222, le système exécute les règles de changement pertinentes. Les règles de changement sont exécutées pour toutes les valeurs se trouvant dans la pile de modification, chaque règle de changement peut changer d'autres données qui sont à leur tour stockées dans la prochaine pile de modification.  Upon receipt of such a change, in a step 222, the system executes the relevant change rules. The change rules are executed for all values in the edit stack, each change rule can change other data that is in turn stored in the next change stack.
Puis dans une étape 224, le système recherche les cas d'emploi des règles de définition. La recherche des cas d'emploi se fait en plusieurs états : dans un premier temps toutes les règles de définitions sont exécutées pour déterminer les données utilisées pour chaque règle, par la suite ne sont exécutées que les règles liées aux valeurs modifiées.  Then in a step 224, the system searches for the use cases of the definition rules. The search for the use cases is made in several states: first, all the definition rules are executed to determine the data used for each rule, subsequently only the rules related to the modified values are executed.
Il exécute alors dans une étape 226 les règles de définition pertinentes. Les règles de définitions sont exécutées en fonction de la pile de modification et des cas d'emploi. Chaque règle de modification met à jour la donnée concernée qui vient s'ajouter dans la pile de modification si celle-ci est réellement différente de la valeur précédente.  It then executes in a step 226 the relevant definition rules. The definition rules are executed according to the modification stack and the use cases. Each edit rule updates the relevant data that is added to the edit stack if it is really different from the previous value.
Puis le système met à jour, dans une étape 228, l'ensemble des données. Toutes les données modifiées sont stockées dans une pile de modification avant d'être mémorisées et comparées à un historique des données. Cette pile de modification sert pour éviter que l'ensemble des données soit modifié pendant l'exécution des différentes règles. Chaque règle est exécutée à partir du même ensemble de définition, ce qui évite le problème d'exécution de code sur un ensemble de données en modification. Then the system updates, in a step 228, all the data. All modified data is stored in a modification stack before being stored and compared to a data history. This edit stack is used to prevent the data set from being changed during the execution of the different rules. Each rule is executed from the same definition set, which avoids the problem execution of code on a set of data in modification.
Lorsque ces données sont stabilisées, la nouvelle configuration est affichée dans une étape 230 sur l'interface utilisateur. La stabilisation de l'ensemble de données est obtenue quand il n'y a plus de données modifiées (variation inférieure à un seuil prédéterminé). Dans le cas de cycle (données ne convergent pas vers un ensemble de valeurs, mais revenant régulièrement sur un même jeu de valeurs) une autre stratégie est déployée en tenant compte de l'historique des modifications. Pour détecter les cycles, on recherche, lors de la mise à jour des données, si un ensemble identique a existé dans le passé. Dans ce cas, des règles de choix, préalablement entrées par l'entreprise 32, sont utilisées pour la détermination du meilleur ensemble de données parmi les ensembles revenant régulièrement lors de l'exécution du moteur d'inférence.  When this data is stabilized, the new configuration is displayed in a step 230 on the user interface. The stabilization of the data set is obtained when there is no more modified data (variation below a predetermined threshold). In the case of a cycle (data does not converge to a set of values, but regularly returns to the same set of values) another strategy is deployed taking into account the history of the modifications. To detect the cycles, it is sought, when updating the data, if an identical set has existed in the past. In this case, selection rules, previously entered by the company 32, are used to determine the best set of data among the sets returning regularly during the execution of the inference engine.
Dans une étape 240, le système génère les données de fabrication du produit défini par l'utilisateur 22 et correspondant à ses besoins et contraintes propres.  In a step 240, the system generates the manufacturing data of the product defined by the user 22 and corresponding to its own needs and constraints.
Enfin, dans une étape optionnelle 250, le système transfère des données de calcul à un serveur de type ERP 30 de l'entreprise 32.  Finally, in an optional step 250, the system transfers calculation data to an ERP server 30 of the enterprise 32.
Le principe de fonctionnement du procédé décrit ici se distingue de l'art antérieur dans lequel on regarde une configuration comme l'ouverture d'une fiche au travers de code se trouvant derrière des boutons. The operating principle of the method described here differs from the prior art in which one looks at a configuration such as the opening of a plug through code located behind buttons.
On imagine qu'une configuration est un flux applicatif dont la donnée est transportée par des structures hiérarchiques de données et le changement d'état (objet graphique ou opérateur logique) provoqué par des commandes. Dans le procédé décrit ici, les flux peuvent se multiplier et fusionner dans certain opérateur logique, ce qui donne la possibilité d'avoir plusieurs états en même temps, c'est-à-dire plusieurs objets graphiques à la fois.  We imagine that a configuration is an application flow whose data is transported by hierarchical structures of data and the change of state (graphic object or logical operator) caused by commands. In the method described here, the streams can multiply and merge in some logical operator, which gives the possibility of having multiple states at the same time, i.e., several graphic objects at a time.
On observe sur ce graphique le flux de déroulement de la configuration, L'objet graphique passe la main à l'opérateur logique au travers d'une commande, éventuellement soumise à des droits utilisateur.  This graph shows the flow of the configuration, The graphic object passes the hand to the logical operator through a command, possibly subject to user rights.
Le procédé utilise un environnement graphique de base qui héberge tout les autres composants, il est formé de trois zones : - un bandeau d'affichage type Office 2007 (marque déposée) interactif et contextuel, The process uses a basic graphical environment that hosts all the other components, it consists of three areas: - an interactive and contextual Office 2007 (registered trademark) type banner
- un objet de présentation sous forme d'onglet, et  - a presentation object in the form of a tab, and
- un espace de travail qui héberge les différents objets graphiques.  - a workspace that houses the different graphic objects.
L'environnement graphique de base est optimisé pour fonctionner aussi bien sur un poste de travail que dans un explorateur internet. The basic graphical environment is optimized to work both on a workstation and in an internet explorer.
L'environnement graphique de base n'est pas obligatoire dans une configuration, mais il est souvent l'objet de démarrage, et il contient les commandes de bases qui démarrent le flux applicatif.  The basic graphical environment is not required in a configuration, but it is often the starting object, and it contains the basic commands that start the application flow.
L'environnement graphique de base héberge des objets graphiques de base. Chaque tel objet graphique contient un espace de travail, et une partie de ruban (un ruban est un élément d'interface utilisateur, introduit par Microsoft -marque déposée-, qui remplace ou complète les boutons des menus connus précédemment et permet de regrouper des commandes associées pour les retrouver plus facilement) qui complétera le ruban de l'environnement graphique de base. The basic graphical environment hosts basic graphics objects. Each such graphic object contains a workspace, and a portion of ribbon (a ribbon is a user interface element, introduced by Microsoft -tag file-, which replaces or supplements the previously known menu buttons and allows grouping commands associated to find them more easily) that will complete the ribbon of the basic graphical environment.
Il existe une bibliothèque d'objets graphiques spécialisés (saisie de données, recherche, ...), un outil est proposé pour la conception d'un objet graphique, celui-ci étant associé à une structure hiérarchique de données, qui lui sert de contexte et une collection de structures hiérarchiques de données (associée à un schéma de règles unique) pour l'accès aux données, un mécanisme simple de push de composant est proposé au concepteur avec le minimum de variable de paramétrage.  There is a library of specialized graphic objects (data entry, research, ...), a tool is proposed for the design of a graphic object, which is associated with a hierarchical structure of data, which serves as its context and a collection of hierarchical data structures (associated with a single rule schema) for data access, a simple mechanism of component push is proposed to the designer with the minimum of parameter variable.
Le ruban associé à l'objet graphique est un assemblage de groupe et de descripteurs de commandes qui permet de respecter le mécanisme MVC (Modèle Vue contrôleur, en anglais "Model View Contrôler") et ce sont les commandes associées à chaque bouton qui permettent de naviguer d'objet graphique en objet graphique. On rappelle que MVC est une méthode de conception d'interface homme-machine de logiciel. Dans cette méthode, l'interface homme-machine comporte d'une part un modèle de données, d'autre part une interface visuelle, enfin un contrôleur de logique des événements. Il est clair que, dans des variantes de mise en œuvre, le procédé peut également utiliser d'autres méthodes que MVC pour naviguer entre les objets graphiques. The ribbon associated with the graphic object is an assembly of group and descriptors of commands which makes it possible to respect the mechanism MVC (Model View Controller, in English "Model View Control") and it is the commands associated with each button which make it possible to navigate from graphic object to graphic object. It is recalled that MVC is a method of human-machine software interface design. In this method, the human-machine interface comprises on the one hand a data model, on the other hand a visual interface, finally an event logic controller. It is clear that, in implementation variants, the method can also use other methods than MVC to navigate between the graphic objects.
Les objets graphiques sont spécialisés pour résoudre des problèmes spécifiques, mais restent paramétrables au travers des règles associées à leur structure hiérarchique de données, et aménageables au travers de StackPanel de Microsoft -marques déposées- (commande permettant de réorganiser des éléments secondaires dans une hiérarchie d'éléments, sur une seule ligne pouvant être orientée horizontalement ou verticalement) qui sont enrichies de composants par des actions de glisser / déposer d'éléments disponibles de la structure hiérarchique de données, sous forme de contrôle.  Graphical objects are specialized to solve specific problems, but remain parameterizable through the rules associated with their hierarchical structure of data, and adaptable through Microsoft's StackPanel -posted marks- (command allowing to reorganize secondary elements in a hierarchy of elements, on a single line that can be oriented horizontally or vertically) which are enriched with components by dragging and dropping actions of available elements of the hierarchical data structure, in the form of a control.
Chaque opérateur logique (objet de calcul) est un composant de liaison entre deux objets graphiques ou opérateurs logiques. On peut citer, par exemple mais non limitativement, des opérateurs logiques du genre envoi d'un mail, écriture dans un fichier, recherche d'information dans un Web Service. Each logical operator (computation object) is a linking component between two graphical objects or logical operators. There may be mentioned, for example but not limited to, logical operators of the type sending an email, writing to a file, searching for information in a Web Service.
Une bibliothèque d'opérateurs logiques est fournie dans le procédé. Cette bibliothèque d'opérateurs logiques évolue dans le temps.  A library of logical operators is provided in the method. This library of logical operators evolves over time.
La donnée traitée dans un opérateur logique est une structure hiérarchique de données, et la poursuite du flux se fait au travers de commandes qui sont exécutés par des déclencheurs ou des conditions programmables.  The processed data in a logical operator is a hierarchical structure of data, and the flow continues through commands that are executed by triggers or programmable conditions.
Dans l'exemple simple de création d'une nomenclature dans un logiciel de planification des ressources de l'entreprise (ERP), il existe un opérateur logique spécialisé pour cette opération, la structure hiérarchique de données en entrée est un extrait de la configuration, l'opérateur logique possède sa propre structure hiérarchique de données de nomenclature.  In the simple example of creating a BOM in Enterprise Resource Planning (ERP) software, there is a specialized logical operator for this operation, the hierarchical structure of input data is an excerpt from the configuration, the logical operator has its own hierarchical structure of BOM data.
Une injection d'une structure hiérarchique de données a lieu pour la création de la nomenclature dans l'ERP. L'injection est le terme que l'on emploie pour transférer des données d'une structure à une autre. A titre de clarification, on peut avoir une structure complexe pour la configuration d'un objet, et venir injecter le résultat (données significatives) dans une autre structure (une occurrence de devis par exemple). Une fois l'opération terminée, une commande est déclenchée pour la poursuite du flux. An injection of a hierarchical structure of data takes place for the creation of the nomenclature in the ERP. Injection is the term used to transfer data from one structure to another. As a clarification, we can have a complex structure for the configuration of an object, and come and inject the result (significant data) into another structure (a quote instance for example). Once the operation is complete, a command is triggered to continue the flow.
Le procédé utilise un ensemble de descripteurs de commande. Chaque commande est associée à une image, un état, une description et une implémentation. Les descripteurs de commande sont regroupés dans un gestionnaire de commande indépendant. Au sens du présent procédé, un descripteur de commande utilise en entrée le contexte de l'objet graphique courant et fournit un contexte à l'objet graphique suivant. Comme les objets graphiques peuvent s'empiler dans certaines configurations, certaines commandes provoquent la simple fermeture d'un objet graphique. The method uses a set of command descriptors. Each command is associated with an image, a state, a description and an implementation. The command descriptors are grouped in an independent command manager. For the purposes of this method, a command descriptor uses the context of the current graphical object as input and provides context for the next graphical object. Because graphical objects can stack in certain configurations, some commands cause the simple closing of a graphic object.
Pour clarifier la notion d'empilement des objets graphiques, on note que dans le procédé, on a un système de navigation dans lequel l'utilisateur peut avancer dans le processus, mais aussi revenir en arrière, ou au départ.  To clarify the notion of stacking graphic objects, we note that in the process, we have a navigation system in which the user can advance in the process, but also go back, or initially.
On a donc un fil d'Ariane (ou empilement) composé de module de présentation de données, et certaine commande permettent de manipuler ce fil, (suivant, retour, fin, revenir au début, ...)  So we have a breadcrumb (or stack) composed of data presentation module, and some command to manipulate this thread, (next, return, end, return to the beginning, ...)
Une commande peut-être l'ouverture d'une fiche client, la commande doit extraire le code du client du contexte courant pour positionner l'objet graphique édition du client sur la bonne personne. An order may be the opening of a customer record, the order must extract the customer code from the current context to position the customer's edition graphic object on the right person.
Le transport des données dans le flux se fait au travers de structures (ou conteneurs) hiérarchiques de données, les données peuvent transiter soit par la mémoire, soit au travers de collections persistantes de structures hiérarchiques de données.  The transport of data in the stream is through hierarchical structures (or containers) of data, the data can transit either through memory or through persistent collections of hierarchical data structures.
Avantages Advantages
Le procédé décrit plus haut présente plusieurs avantages :  The method described above has several advantages:
Il permet de séparer les raisonnements sur les relations entre les données de l'affichage et du stockage physique. Tout cela en restant compatible avec les standards mondiaux XSD (XML schéma), ce qui permet une grande compatibilité avec les systèmes existants ou futurs.  It makes it possible to separate the reasonings on the relations between the data of the display and the physical storage. All this while remaining compatible with the global standards XSD (XML schema), which allows a great compatibility with existing or future systems.
Le procédé de configuration logicielle permet de définir les schémas de données d'une manière beaucoup plus aisée que les systèmes de gestion de bases de données (SGBD) actuels, et de valider de manière implicite les données et les relations d'inférence des données entre elles. The software configuration method makes it possible to define the schemas of much easier than current database management systems (DBMS), and to implicitly validate data and inference relationships between data.
Le concepteur 32 manipule ainsi plus facilement un arbre logique ; c'est plus simple et plus intuitif que de faire des rapprochements de vue au moyen de jointure.  The designer 32 thus more easily manipulates a logical tree; it's easier and more intuitive than making eye-to-eye comparisons.
Dans un exemple de mise en œuvre réel du procédé, la demanderesse a constaté que certaines configurations comportent huit mille types dans un schéma, ces huit mille types étant liés de manière implicite (arborescence).  In an example of real implementation of the method, the Applicant has found that certain configurations have eight thousand types in a diagram, these eight thousand types being linked implicitly (tree).
Dans le cas d'une utilisation d'un système de gestion de base de données pour travailler sur cet ensemble, cela se traduit par huit mille tables et beaucoup plus de jointures qu'il faut appréhender en bloc.  In the case of using a database management system to work on this set, this translates into eight thousand tables and many more joins that must be apprehended en bloc.
Au contraire, dans l'arborescence utilisée dans le procédé, on affiche uniquement la partie sur laquelle l'on veut travailler et on applique des liens et des règles simples (on divise et on structure) sur les éléments constituant cette partie, ce que ne propose aucun système de gestion de base de données, lesquels travaillent à plat avec des jointures.  On the contrary, in the tree used in the process, we only display the part on which we want to work and we apply simple links and rules (we divide and structure) on the elements constituting this part, which offers no database management system, which work flat with joins.
La traduction d'un schéma peu complexe en UML, sous forme système de gestion de base de données, se traduirait, pour l'utilisateur, en un ensemble considérable de blocs et de traits se croisant, probablement incompréhensible car présenté dans son ensemble.  The translation of an uncomplicated UML schema into a database management system would result, for the user, in a considerable set of intersecting blocks and features, probably incomprehensible as presented as a whole.
Une première partie innovante du procédé, visible par l'utilisateur expert de l'entreprise 32 non informaticien, concerne la méthode logique de modélisation de règles métiers ordonnées en structure hiérarchique dans différents schémas. Les données intelligentes qui représentent les règles métier sont décrites dans le schéma et s'appuient sur des interfaces de visualisation et de liaisons. An innovative first part of the process, visible to the expert user of the non-computer company 32, concerns the logical method of modeling business rules ordered in hierarchical structure in different schemas. The intelligent data that represents the business rules is described in the diagram and is based on visualization and connection interfaces.
Une seconde partie innovante, concerne le moteur d'inférence qui régit les schémas de configuration et les milliers de combinaison de règles associées, en temps réel à chaque changement d'état des données produits introduite par l'utilisateur final. Une troisième partie innovante concerne la génération automatique de code informatique permettant ainsi la génération d'applications de configurations métiers à travers un studio ludique pour des experts métiers non-informaticiens. An innovative second part concerns the inference engine that governs the configuration schemas and the associated thousands of rule combinations, in real time at each change of state of the product data introduced by the end user. An innovative third part concerns the automatic generation of computer code allowing the generation of applications of business configurations through a fun studio for non-IT experts.
Une quatrième partie innovante concerne la conception dynamique de formulaires métiers pilotés par les schémas. Ces formulaires sont générés en fonction de la plate-forme cible des postes clients (Silverlight, Windows8, HTML5 - marques déposées).  An innovative fourth part concerns the dynamic design of business forms driven by schemas. These forms are generated based on the target platform of client computers (Silverlight, Windows8, HTML5 - registered trademarks).
Ce moteur et les règles associées aux schémas sont résidents sur serveurs WEB dans le CLOUD et sont accessibles aux PC portables ou tablettes utilisateurs en mode multi-plateforme Windows, Androïd et IPAD (marques déposées).  This engine and the rules associated with the schemas are resident on web servers in the CLOUD and are accessible to laptops or user tablets in Windows, Android and IPAD (registered trademarks) multi-platform mode.

Claims

REVENDICATIONS
1 . Procédé de création d'un générateur d'un ensemble de données dites "données de fabrication" d'un produit pouvant être configuré selon différentes variantes selon des paramètres définissant les besoins et contraintes d'un client (22), lesdits paramètres pouvant varier de façon continue, 1. A method of creating a generator of a set of data called "manufacturing data" of a product that can be configured according to different variants according to parameters defining the needs and constraints of a client (22), said parameters being able to vary from continuous way,
ledit procédé étant destiné à être mis en œuvre par un ordinateur (20) comportant des moyens de communication à un réseau d'échange de données de type Internet,  said method being intended to be implemented by a computer (20) comprising means of communication to an Internet type data exchange network,
ladite application comportant une interface homme-machine de type MVC, comportant  said application comprising a man-machine interface of the MVC type, comprising
- un modèle de données,  - a data model,
- une interface visuelle,  - a visual interface,
- un contrôleur de logique des événements,  an event logic controller,
caractérisé en ce que ledit procédé comporte des premiers moyens graphiques de définition de liens logiques entre les données, pour permettre à un utilisateur (32) de développer ledit générateur de données de fabrication, le contrôleur logique des événements imposant des relations entre les données du modèle et les éléments de la visualisation selon un ensemble paramétrables de règles dites "règles métier", définies par des seconds moyens graphiques de définition de liens logiques entre les données.  characterized in that said method includes first graphical means for defining logical links between the data, to allow a user (32) to develop said manufacturing data generator, the logic controller of the events imposing relationships between the model data and the elements of the visualization according to a configurable set of rules called "business rules", defined by second graphic means for defining logical links between the data.
2. Procédé selon la revendication 1 , caractérisé en ce que le procédé comporte un module de définition par l'utilisateur (32) de ces règles métier, les données sur lesquelles doivent s'appliquer les règles de cohérence étant désignées visuellement sur l'interface homme-machine par l'utilisateur (32), et des règles de lien mathématique entre diverses données, ou de seuils maximums ou minimums étant définis par l'utilisateur (32). 2. Method according to claim 1, characterized in that the method comprises a module for defining by the user (32) these business rules, the data on which the consistency rules must be applied being visually designated on the interface. human-machine by the user (32), and rules of mathematical link between various data, or of maximum or minimum thresholds being defined by the user (32).
3. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que le procédé met en œuvre une arborescence d'affichage, dans laquelle l'utilisateur (32) choisit d'afficher uniquement une partie d'un schéma de données sur laquelle il veut travailler et le procédé applique des liens et des règles de cohérence et d'inférence simples sur les éléments constituant cette partie. 3. Method according to any one of claims 1 to 2, characterized in that the method implements a display tree, in which the user (32) chooses to display only part of a data schema. on which he wants to work and the process applies links and simple rules of coherence and inference about the elements constituting this part.
4. Procédé selon l'une quelconque des revendications 2 à 3, caractérisé en ce que le module de définition de règles métier comporte des règles de cohérence applicables à ces règles métier, de manière à mettre en évidence les conflits éventuels entre certaines de ces règles lors de leur génération par l'utilisateur (32). 4. Method according to any one of claims 2 to 3, characterized in that the business rule definition module includes consistency rules applicable to these business rules, so as to highlight the possible conflicts between some of these rules. when they are generated by the user (32).
5. Procédé de fabrication d'un produit pouvant être configuré selon différentes variantes selon des paramètres définissant les besoins et contraintes d'un client, lesdits paramètres pouvant varier de façon continue, caractérisé en ce qu'il comporte un procédé de création d'un générateur de données de fabrication du produit, selon l'une quelconque des revendications 1 à 4. 5. A method of manufacturing a product that can be configured according to different variants according to parameters defining the needs and constraints of a customer, said parameters being able to vary continuously, characterized in that it comprises a method of creating a product manufacturing data generator according to any one of claims 1 to 4.
6. Procédé selon la revendication 5, caractérisé en ce qu'il comporte des phases et étapes suivantes : 6. Method according to claim 5, characterized in that it comprises the following phases and steps:
phase 100 de création d'un générateur de données de fabrication d'un produit,  phase 100 of creating a data generator for manufacturing a product,
- 1 10 : identification de variables permettant la définition de produits qu'on veut faire configurer par des clients 22.  - 1 10: identification of variables allowing the definition of products that customers want to configure 22.
- 120 : identification des règles d'inférence  - 120: identification of inference rules
- 140 : vérification de cohérence des règles d'inférence définies précédemment.  - 140: consistency check of the inference rules defined above.
- 160 : définition de règles de fabrication, sur la base des variables définies dans l'étape 1 10.  - 160: definition of manufacturing rules, based on the variables defined in step 1 10.
phase 200 d'utilisation du configurateur,  phase 200 of use of the configurator,
- 210 : affichage à destination d'un utilisateur 22, au moins une partie d'un schéma de données,  210: display to a user 22, at least part of a data schema,
- 220 : modification par l'utilisateur des données en fonction de ses besoins propres, et  - 220: modification by the user of the data according to his own needs, and
- propagation par le moteur d'inférence des modifications aux autres variables liées par des règles d'inférence. - propagation by the inference engine of modifications to others variables linked by rules of inference.
7. Procédé selon la revendication 6, caractérisé en ce que lors de l'étape de propagation d'une modification par le moteur d'inférence, le moteur passe à travers plusieurs états qui s'enchainent de manière cyclique jusqu'à la stabilisation de l'ensemble de données ou à la détection de la récurrence de données cycliques. 7. Method according to claim 6, characterized in that during the propagation step of a modification by the inference engine, the engine passes through several states that cycle cyclically until the stabilization of the engine. the data set or the detection of recurrence of cyclic data.
PCT/EP2013/074093 2012-12-11 2013-11-18 Method for creating a client configuration simulator WO2014090514A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1261871A FR2999314B1 (en) 2012-12-11 2012-12-11 METHOD FOR CREATING A CUSTOMER CONFIGURATION SIMULATOR
FR1261871 2012-12-11

Publications (1)

Publication Number Publication Date
WO2014090514A1 true WO2014090514A1 (en) 2014-06-19

Family

ID=48771486

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2013/074093 WO2014090514A1 (en) 2012-12-11 2013-11-18 Method for creating a client configuration simulator

Country Status (2)

Country Link
FR (1) FR2999314B1 (en)
WO (1) WO2014090514A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858185A (en) * 2019-03-08 2019-06-07 广东岭南职业技术学院 A kind of interior decoration design method based on AR virtual reality technology

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3061578A1 (en) * 2016-12-30 2018-07-06 Techform METHOD FOR GENERATING SOFTWARE APPLICATION: A CUSTOMER CONFIGURATION MANAGEMENT META-CONFIGURATOR

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844554A (en) * 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
WO2001029687A1 (en) * 1999-10-15 2001-04-26 Officefree.Com A table driven configurator on internet
US20070073763A1 (en) * 2005-09-23 2007-03-29 Christopher Betts Automated Creation of Model and View Code
US20100262902A1 (en) * 2009-04-08 2010-10-14 Microsoft Corporation Schema Based User Interface Mechanisms
WO2011104367A2 (en) * 2010-02-25 2011-09-01 Sita Information Networking Computing Ireland Limited Software application development tool

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844554A (en) * 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
WO2001029687A1 (en) * 1999-10-15 2001-04-26 Officefree.Com A table driven configurator on internet
US20070073763A1 (en) * 2005-09-23 2007-03-29 Christopher Betts Automated Creation of Model and View Code
US20100262902A1 (en) * 2009-04-08 2010-10-14 Microsoft Corporation Schema Based User Interface Mechanisms
WO2011104367A2 (en) * 2010-02-25 2011-09-01 Sita Information Networking Computing Ireland Limited Software application development tool

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
P. T. HELO ET AL: "Citarasa driven vehicle configurator", 2007 IEEE INTERNATIONAL CONFERENCE ON INDUSTRIAL ENGINEERING AND ENGINEERING MANAGEMENT, 1 December 2007 (2007-12-01), pages 1302 - 1306, XP055089493, ISBN: 978-1-42-441529-8, DOI: 10.1109/IEEM.2007.4419403 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858185A (en) * 2019-03-08 2019-06-07 广东岭南职业技术学院 A kind of interior decoration design method based on AR virtual reality technology
CN109858185B (en) * 2019-03-08 2022-09-02 广东岭南职业技术学院 Indoor decoration design method based on AR virtual reality technology

Also Published As

Publication number Publication date
FR2999314B1 (en) 2023-08-04
FR2999314A1 (en) 2014-06-13

Similar Documents

Publication Publication Date Title
US20140047413A1 (en) Developing, Modifying, and Using Applications
US8694544B2 (en) Layering concept for a repository of a user interface framework for web applications
CN107423053A (en) The webization model encapsulation and distributed approach of a kind of remote sensing image processing
CN109478180A (en) Cloud content status determines logic
WO2013140076A2 (en) Method and system for developing applications for consulting content and services on a telecommunications network
US20170329461A1 (en) Source service mapping for collaborative platforms
Mezzalira Building Micro-Frontends
EP2511842B1 (en) Digital model lookup from lightweight stations
WO2009147310A1 (en) Method for data management in a collaborative service-oriented workshop
Cetin et al. Legacy migration to service-oriented computing with mashups
Harrison et al. WS-RF workflow in Triana
EP3202115B1 (en) Method and device for connecting a group of information items
US11295273B2 (en) Normalized object exposure for collaborative platforms
WO2014090514A1 (en) Method for creating a client configuration simulator
EP2339516A1 (en) Method and system for interacting with an appplication shared between several users
US20170329498A1 (en) Polymorph rendering for collaborative platforms
EP2187321A1 (en) Method and system for editing an object represented on a web page
Feldman et al. Developing Business Intelligence Apps for SharePoint: Combine the Power of SharePoint, LightSwitch, Power View, and SQL Server 2012
US20150067157A1 (en) Optimize data exchange for mvc-based web applications
FR3061578A1 (en) METHOD FOR GENERATING SOFTWARE APPLICATION: A CUSTOMER CONFIGURATION MANAGEMENT META-CONFIGURATOR
Čechák Using GraphQL for content delivery in Kentico Cloud
CN106933543A (en) Intelligent business platform assembly development approach based on We3D
Lee et al. I-typed dmml: A novel dsl for direct manipulation interaction with virtual objects
Bleisinger et al. Killing the PLM Monolith–the Emergence of cloud-native System Lifecycle Management (SysLM)
Bueringer Development of a Cloud Platform for Business Process Administration, Modeling, and Execution

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13796022

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13796022

Country of ref document: EP

Kind code of ref document: A1