FR3140970A1 - Method for deploying at least one software application, electronic device and corresponding computer program product - Google Patents

Method for deploying at least one software application, electronic device and corresponding computer program product Download PDF

Info

Publication number
FR3140970A1
FR3140970A1 FR2210691A FR2210691A FR3140970A1 FR 3140970 A1 FR3140970 A1 FR 3140970A1 FR 2210691 A FR2210691 A FR 2210691A FR 2210691 A FR2210691 A FR 2210691A FR 3140970 A1 FR3140970 A1 FR 3140970A1
Authority
FR
France
Prior art keywords
data
application
access
executable
passive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2210691A
Other languages
French (fr)
Inventor
Yoann HAMON
Nabil DITINI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Priority to FR2210691A priority Critical patent/FR3140970A1/en
Publication of FR3140970A1 publication Critical patent/FR3140970A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Procédé de déploiement d’applications, dispositif électronique et produit programme d’ordinateur correspondant L’invention concerne un procédé de déploiement d’une application logicielle passive dans un réseau de communication, ledit procédé comprenant : Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;Une sélection au moins partiellement automatique d’un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données  attendu via ledit accès;Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès. L’invention concerne aussi le dispositif électronique, système, produit programme d’ordinateur et support d’enregistrement correspondants. Figure pour l'abrégé : Fig. 3Method for deploying applications, electronic device and corresponding computer program product The invention relates to a method for deploying a passive software application in a communications network, said method comprising: Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application; An at least partially automatic selection of access to data from at least one data source of said network and/or to at least a data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access; Automatic creation of an active executable of which at least one software process comprises an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access. The invention also relates to the corresponding electronic device, system, computer program product and recording medium. Figure for abstract: Fig. 3

Description

Procédé de déploiement d’au moins une application logicielle, dispositif électronique et produit programme d’ordinateur correspondant1. Domaine techniqueMethod for deploying at least one software application, electronic device and corresponding computer program product1. Technical area

La présente application se rapporte au domaine général du déploiement d’applications, dans divers secteurs comme par exemple dans le secteur de l’industrie, de l’agriculture et/ou du médical.This application relates to the general field of application deployment, in various sectors such as for example in the industrial, agricultural and/or medical sectors.

Elle concerne notamment un procédé de déploiement d’application(s) logicielle(s) ainsi qu’un dispositif électronique adapté à la mise en œuvre d’un tel procédé, et les produit programme d’ordinateur et support d’enregistrement correspondants.It relates in particular to a method for deploying software application(s) as well as an electronic device adapted to the implementation of such a method, and the corresponding computer program product and recording medium.

2. Etat de la technique2. State of the art

L’industrie connait aujourd’hui plus que jamais des défis environnementaux et sociétaux (sécurité du personnel, manque de disponibilité de personnel qualifié, concurrence...) la poussant à automatiser certaines opérations, comme des tâches de contrôle qualité, de sécurité et de maintenance prédictive, en lien avec des postes de production. Pour faire face à ces défis, les industriels s’appuient souvent des fournisseurs externes, multiples, spécialisés chacun dans la fourniture de solutions automatisées répondant à une problématique particulière. Des exemples de telles fournitures comprennent une application de détection de défaut par vision par ordinateur (ou « computer vision » selon la terminologie anglaise), une application de détection de panne par analyse de vibration, une application de détection de passage etc. Chaque fournisseur de solution amène à l’industriel son propre environnement : des capteurs dédiés, en majorité filaires, son propre matériel informatique (comme un serveur de proximité à installer dans le site industriel concerné, ou ses propres connexions avec les machines du client, en majorité filaires etc..)The industry is experiencing environmental and societal challenges today more than ever (personnel safety, lack of availability of qualified personnel, competition, etc.) pushing it to automate certain operations, such as quality control, safety and security tasks. predictive maintenance, linked to production stations. To face these challenges, manufacturers often rely on multiple external suppliers, each specialized in providing automated solutions responding to a particular problem. Examples of such supplies include a computer vision fault detection application, a vibration analysis fault detection application, a passage detection application, etc. Each solution provider brings its own environment to the manufacturer: dedicated sensors, mostly wired, its own computer hardware (such as a proximity server to be installed in the industrial site concerned, or its own connections with the client's machines, in majority wired etc.)

Cela conduit à une complexification du parc matériel et logiciel d’un industriel et à des difficultés à garder une vision d’ensemble de ce parc, pour un industriel.This leads to an increase in the complexity of a manufacturer's hardware and software portfolio and to difficulties in maintaining an overall vision of this portfolio for a manufacturer.

La présente demande a pour objet de proposer des améliorations à au moins certains des inconvénients de l’état de la technique.The purpose of this application is to propose improvements to at least some of the disadvantages of the state of the art.

3. Exposé de l'invention3. Presentation of the invention

La présente demande vise à améliorer la situation à l'aide notamment d'un procédé de déploiement au moins partiellement automatique d’une application logicielle passive dans un réseau de communication, ledit procédé comprenant :

  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données attendu via ledit accès;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès.
The present application aims to improve the situation using in particular a method of at least partially automatic deployment of a passive software application in a communications network, said method comprising:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one access to data from at least one data source of said network and/or to at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access;
  • An automatic creation of an active executable of which at least one software process includes an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access.

Dans au moins certains modes de réalisation, ledit procédé comprend un ajout dans une bibliothèque d’exécutables actifs dudit réseau de communication dudit premier exécutable actif créé. Dans au moins certains modes de réalisation, ledit premier exécutable ajouté est associé dans ladite bibliothèque à ladite au moins une source de données et/ou audit au moins un consommateur de données.In at least some embodiments, said method comprises adding said first active executable created to a library of active executables of said communication network. In at least certain embodiments, said first added executable is associated in said library with said at least one data source and/or said at least one data consumer.

Dans au moins certains modes de réalisation, ledit procédé comprend un lancement dudit premier exécutable actif ou une proposition d’un tel lancement.In at least some embodiments, said method comprises launching said first active executable or proposing such a launch.

Dans au moins certains modes de réalisation, ladite désignation est obtenue par accès à un fichier descriptif des données consommées et/ou produites par ladite application.In at least certain embodiments, said designation is obtained by accessing a descriptive file of the data consumed and/or produced by said application.

Dans au moins certains modes de réalisation, ledit accès est un accès à une base de données. Dans au moins certains modes de réalisation, ledit au moins un type de données via ledit accès est obtenu par scrutation dudit réseau. Dans au moins certains modes de réalisation, ledit accès est un canal d’un bus de données dudit réseau.In at least some embodiments, said access is access to a database. In at least certain embodiments, said at least one type of data via said access is obtained by scanning said network. In at least certain embodiments, said access is a channel of a data bus of said network.

Dans au moins certains modes de réalisation, lesdites données obtenues via ledit canal sont obtenues par souscription dudit processus logiciel audit canal de données pour recevoir les données en provenance de ladite au moins une source de données.In at least some embodiments, said data obtained via said channel is obtained by subscribing said software process to said data channel to receive data from said at least one data source.

Dans au moins certains modes de réalisation, ledit processus logiciel comprend une transmission desdites données desdites données à émettre sur ledit canal. Dans au moins certains modes de réalisation, lesdits canaux de données sont des canaux d’un bus de données MQTTIn at least some embodiments, said software process comprises a transmission of said data of said data to be transmitted on said channel. In at least some embodiments, said data channels are channels of an MQTT data bus

Les caractéristiques, présentées isolément dans la présente demande en lien avec certains modes de réalisation du procédé de la présente demande peuvent être combinées entre elles selon d’autres modes de réalisation de ce procédé. Selon un autre aspect, la présente demande concerne également un dispositif électronique adapté à mettre en œuvre le procédé de la présente demande dans l’un quelconque de ses modes de réalisations.The characteristics, presented separately in this application in connection with certain embodiments of the process of the present application, can be combined with each other according to other embodiments of this process. According to another aspect, the present application also relates to an electronic device adapted to implement the method of the present application in any of its embodiments.

Par exemple, la présente demande concerne ainsi un dispositif électronique comprenant un moins un processeur configuré pour un déploiement au moins partiellement automatique d’une application logicielle passive dans un réseau de communication, le processeur étant notamment configuré pour:

  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données attendu via ledit accès;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès.
For example, the present application thus concerns an electronic device comprising at least one processor configured for at least partially automatic deployment of a passive software application in a communications network, the processor being configured in particular for:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one access to data from at least one data source of said network and/or to at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access;
  • An automatic creation of an active executable of which at least one software process includes an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access.

La présente demande concerne aussi par exemple un système comprenant :

  • au moins un dispositif électronique comprenant un moins un processeur configuré pour un déploiement au moins partiellement automatique d’une première application logicielle passive dans un réseau de communication, le processeur étant notamment configuré pour:
  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données attendu via ledit accès;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès. Au moins un dispositif source et/ou un consommateur de données dudit réseau.
The present application also relates, for example, to a system comprising:
  • at least one electronic device comprising at least one processor configured for at least partially automatic deployment of a first passive software application in a communications network, the processor being configured in particular for:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one access to data from at least one data source of said network and/or to at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access;
  • An automatic creation of an active executable of which at least one software process includes an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access. At least one source device and/or one data consumer of said network.

La présente demande concerne aussi un programme d'ordinateur comprenant des instructions pour la mise en œuvre des divers modes de réalisation du procédé ci-dessus, lorsque le programme d’ordinateur est exécuté par un processeur et un support d’enregistrement lisible par un dispositif électronique sur lequel est enregistré le programme d’ordinateur.The present application also relates to a computer program comprising instructions for implementing the various embodiments of the above method, when the computer program is executed by a processor and a recording medium readable by a device electronic device on which the computer program is recorded.

Par exemple, la présente demande concerne ainsi un programme d'ordinateur comprenant des instructions pour la mise en œuvre, lorsque le programme est exécuté par un processeur d’un dispositif électronique, d'un procédé de déploiement au moins partiellement automatique d’une première application logicielle passive dans un réseau de communication, ledit procédé comprenant :

  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données attendu via ledit accès;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès.
For example, the present application thus relates to a computer program comprising instructions for the implementation, when the program is executed by a processor of an electronic device, of a method of at least partially automatic deployment of a first passive software application in a communications network, said method comprising:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one access to data from at least one data source of said network and/or to at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access;
  • An automatic creation of an active executable of which at least one software process includes an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access.

Par ailleurs, la présente demande concerne aussi un support d’enregistrement lisible par un processeur d’un dispositif électronique et sur lequel est enregistré un programme d’ordinateur comprenant des instructions pour la mise en œuvre, lorsque le programme est exécuté par le processeur, d'un procédé de déploiement au moins partiellement automatique d’une première application logicielle passive dans un réseau de communication, ledit procédé comprenant :

  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données attendu via ledit accès;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès.
Furthermore, the present application also relates to a recording medium readable by a processor of an electronic device and on which is recorded a computer program comprising instructions for the implementation, when the program is executed by the processor, of a method for at least partially automatic deployment of a first passive software application in a communications network, said method comprising:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one access to data from at least one data source of said network and/or to at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access;
  • An automatic creation of an active executable of which at least one software process includes an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access.

Les programmes mentionnés ci-dessus peuvent utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable.The programs mentioned above may use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in partially compiled form, or in n any other desirable shape.

Les supports d'informations mentionnés ci-dessus peuvent être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, un support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique.The information carriers mentioned above can be any entity or device capable of storing the program. For example, a medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or even a magnetic recording means.

Un tel moyen de stockage peut par exemple être un disque dur, une mémoire flash, etc.Such a storage means can for example be a hard disk, flash memory, etc.

D'autre part, un support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Un programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.On the other hand, an information carrier may be a transmissible medium such as an electrical or optical signal, which may be carried via an electrical or optical cable, by radio or by other means. A program according to the invention can in particular be downloaded onto an Internet-type network.

Alternativement, un support d'informations peut être un circuit intégré dans lequel un programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de l’un quelconque des modes de réalisation du procédé objet de la présente demande de brevet.Alternatively, an information carrier may be an integrated circuit in which a program is incorporated, the circuit being adapted to execute or to be used in the execution of any one of the embodiments of the method which is the subject of this application. patent.

De façon générale, par obtention d’un élément, on entend dans la présente demande par exemple une réception de cet élément depuis un réseau de communication, une acquisition de cet élément (via par exemple des éléments d’interface utilisateur ou des capteurs ou autres composants de mesure), une création de cet élément par divers moyens de traitement tels que par copie, encodage, décodage, transformation etc. et/ou un accès de cet élément depuis un support de stockage local ou distant accessible à au moins un dispositif mettant en œuvre, au moins partiellement, cette obtention.In general, by obtaining an element, we mean in the present application for example a reception of this element from a communication network, an acquisition of this element (via for example user interface elements or sensors or other measurement components), a creation of this element by various means of processing such as by copying, encoding, decoding, transformation etc. and/or access to this element from a local or remote storage medium accessible to at least one device implementing, at least partially, this obtaining.

4. Brève description des dessins4. Brief description of the drawings

D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation particuliers, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels :Other characteristics and advantages of the invention will appear more clearly on reading the following description of particular embodiments, given by way of simple illustrative and non-limiting examples, and the appended drawings, among which:

La présente une vue simplifiée d’un système, cité à titre d’exemple, dans lequel au moins certains modes de réalisation du procédé de la présente demande peuvent être implémentés.There presents a simplified view of a system, cited by way of example, in which at least certain embodiments of the method of the present application can be implemented.

La présente une vue simplifiée d’un dispositif adapté à mettre en œuvre au moins certains modes de réalisation du procédé de la présente demande.There presents a simplified view of a device adapted to implement at least certain embodiments of the method of the present application.

La présente un aperçu du procédé de la présente demande, dans certains de ses modes de réalisation.There presents an overview of the method of the present application, in some of its embodiments.

La illustre un exemple d’architecture d’un exécutable actif obtenu par le procédé de la présente demande, dans au moins certains de ses modes de réalisation.There illustrates an example of architecture of an active executable obtained by the method of the present application, in at least some of its embodiments.

La illustre un exemple d’implémentation du procédé de la présente demande, dans au moins certains de ses modes de réalisation.There illustrates an example of implementation of the method of the present application, in at least some of its embodiments.

5. Description des modes de réalisation5. Description of embodiments

La présente demande propose un procédé, au moins partiellement automatique, de déploiement d’applications logicielles au sein d’un environnement physique, plus ou complexe, comme un ensemble industriel (éventuellement distribué sur plusieurs sites). Les applications peuvent par exemple correspondre à des solutions logicielles mettant en œuvre des techniques d’intelligence artificielle (IA) ou à des programmes compilés et/ou interprétés plus classiques, fournis par divers fournisseurs.The present application proposes a method, at least partially automatic, for deploying software applications within a physical environment, more or more complex, such as an industrial unit (possibly distributed over several sites). Applications may, for example, correspond to software solutions implementing artificial intelligence (AI) techniques or to more traditional compiled and/or interpreted programs, provided by various suppliers.

Dans la présente demande, on entend par application ou ressource logicielle « passive », une ressource logicielle sous format binaire ou textuel s’exécutant uniquement si un autre exécutable l’a invoquée (ou « appelée ») en lui fournissant les éventuels paramètres d’entrée qu’il attend. Une telle ressource peut correspondre par exemple au code binaire obtenu par une compilation du code source d’une méthode ou d’une fonction logicielle.In the present application, the term “passive” application or software resource is understood to mean a software resource in binary or textual format that executes only if another executable has invoked (or “called”) it by providing it with any possible parameters. entry he is waiting for. Such a resource may correspond, for example, to the binary code obtained by compiling the source code of a method or software function.

Une ressource passive n’a pas été prévue pour obtenir elle-même ses paramètres d’entrée. C’est l’exécutable (passif ou actif) qui l’invoque, ou l’opérateur qui l’invoque via une ligne de commande par exemple, qui va affecter des valeurs à ses paramètres d’entrée. De même, la ressource passive se contente de « retourner », en fin d’exécution, son ou ses paramètres de sortie éventuel(s), à l’exécutable (passif ou actif) ou l’opérateur qui l’invoque.A passive resource has not been designed to obtain its input parameters itself. It is the executable (passive or active) which invokes it, or the operator which invokes it via a command line for example, which will assign values to its input parameters. Likewise, the passive resource simply “returns”, at the end of execution, its possible output parameter(s), to the executable (passive or active) or the operator which invokes it.

A l’opposé, on entend ici par application ou ressource « active », ou exécutable « actif », ou autonome, un code binaire logiciel capable de s’exécuter sans être invoqué par un autre exécutable, en acquérant par lui-même les valeurs des variables qu’il utilise. Une telle ressource peut correspondre par exemple au code binaire d’un processus logiciel obtenu par couplage (ou « link » selon la terminologie anglais) du code binaire obtenu par compilation du code source de ce processus et les codes binaires issues des compilations des méthodes, fonctions, dictionnaires qu’il utilise. Un tel code exécutable peut être lancé par une application logicielle (créant ainsi le processus objet du code) et s’exécuter ensuite en tâche de fond, en acquérant de lui-même les valeurs de ses paramètres d’entrée.In contrast, what is meant here by “active” application or resource, or “active” or autonomous executable, is software binary code capable of executing without being invoked by another executable, by acquiring the values by itself. variables it uses. Such a resource may correspond for example to the binary code of a software process obtained by coupling (or “link” according to English terminology) of the binary code obtained by compilation of the source code of this process and the binary codes resulting from the compilations of the methods, functions, dictionaries it uses. Such executable code can be launched by a software application (thus creating the process object of the code) and then run in the background, acquiring the values of its input parameters on its own.

Dans une infrastructure automatisée, un exécutable actif peut par exemple obtenir ses paramètres d’entrée parmi les données brutes disponibles sur une infrastructure de gestion de données, qu’il connait et avec laquelle il peut interagir (comme une base de données, un bus de données et/ou une autre application). Une telle interaction peut être prévue par exemple lors du développement du code source de l’exécutable, ou via un fichier de configuration. Par exemple, il peut obtenir ses paramètres d’entrée en se connectant à une base de données, ou en souscrivant à au moins un canal d’un bus de données mettant à disposition des données. Par données « mises à disposition », on entend ici à la fois les données véhiculées par le bus en provenance d’au moins une source des données (que l’exécutable va consommer) que les données émises sur le bus (par l’exécutable) et susceptibles d’être consommées par d’autres exécutables, ou à servir de commandes à des machines connectées à ce bus.In an automated infrastructure, an active executable can for example obtain its input parameters from the raw data available on a data management infrastructure, which it knows and with which it can interact (such as a database, a bus data and/or another application). Such an interaction can be planned for example during the development of the source code of the executable, or via a configuration file. For example, it can obtain its input parameters by connecting to a database, or by subscribing to at least one channel of a data bus making data available. By “made available” data, we mean here both the data transported by the bus coming from at least one data source (which the executable will consume) and the data transmitted on the bus (by the executable ) and likely to be consumed by other executables, or to serve as commands to machines connected to this bus.

Le procédé de la présente demande vise à modifier une ressource logicielle « passive » pour en faire un exécutable « actif », et ceci de manière au moins partiellement (voire totalement) automatique, par exemple sans réécriture de code, et/ou, au moins dans certains modes de réalisation, à déployer cet exécutable actif simplement, par exemple en le proposant sur une interface utilisateur.The method of the present application aims to modify a “passive” software resource to make it an “active” executable, and this in an at least partially (or even completely) automatic manner, for example without rewriting code, and/or, at least in certain embodiments, to deploy this active executable simply, for example by offering it on a user interface.

Par exemple, dans au moins certains modes de réalisation, l’exécutable actif créé à partir de l’application passive peut être rendu accessible (par exemple dans une bibliothèque d’exécutables) à une plateforme logicielle offrant une interface utilisateur permettant de lancer ces exécutables actifs.For example, in at least some embodiments, the active executable created from the passive application may be made accessible (e.g. in an executable library) to a software platform providing a user interface for launching such executables assets.

Ces exécutables actifs peuvent par exemple être définis de façon à s’exécuter en continue, en tâche de fond, en partageant entre eux des ressources logicielles ou matérielles à leur disposition, comme des capteurs, ou des machines qu’ils commandent. Ainsi, plusieurs applications « passives » peuvent partager (via leur encapsulation dans des exécutables actifs) une même source de données (comme un même capteur par exemple).These active executables can, for example, be defined so as to run continuously, in the background, by sharing among themselves the software or hardware resources at their disposal, such as sensors, or the machines that they control. Thus, several “passive” applications can share (via their encapsulation in active executables) the same data source (like the same sensor for example).

Les exécutables et leurs ressources logicielles ou matérielles peuvent dans certains modes de réalisation communiquer ensemble de façon asynchrone.Executables and their software or hardware resources can in certain embodiments communicate together asynchronously.

Dans certains mode de réalisation, un exécutable actif peut par exemple avoir la capacité à la fois de :

  • de s’alimenter au fil de l’eau avec des données provenant de cette ou de ces source(s) (par exemple des données acquises par un ou plusieurs capteurs connectés à la plateforme), par exemple via des mécanismes de souscription à au moins un canal de données véhiculant de telles données;
  • d’invoquer l’application passive avec des donnée d’entrée résultant de données provenant de cette/ces source(s);
  • transmettre au fil de l’eau des données résultants de l’invocation de l’application passive à d’autres exécutables (par exemple via des mécanismes de publication de ces résultats dans au moins un canal du bus de données adapté à véhiculer de telles données.
In certain embodiments, an active executable can for example have the capacity to both:
  • to be fed over time with data coming from this or these source(s) (for example data acquired by one or more sensors connected to the platform), for example via subscription mechanisms to at least a data channel carrying such data;
  • to invoke the passive application with input data resulting from data coming from this/these source(s);
  • transmit over time data resulting from the invocation of the passive application to other executables (for example via mechanisms for publishing these results in at least one channel of the data bus adapted to convey such data .

Selon les modes de réalisation, les données provenant de ces sources de données peuvent être des données « brutes » ou « non traitées » (ie des données acquises par cette/ces source(s) de données, par exemple telles que mesurées par ces sources de données, comme une vitesse lorsqu’une source de données est un capteur de vitesse), ou des données « traitées » , obtenue par traitement de données « brutes ». Il peut s’agir par exemple d’une donnée intégrant une interprétation d’une vitesse mesurée par un capteur de vitesse, comme une qualification de cette vitesse (trop vite, trop lent) éventuellement corrélée à d’autres données (état des pneumatiques sur une voiture, chaussée mouillée ou non, etc.)).Depending on the embodiments, the data coming from these data sources may be “raw” or “unprocessed” data (ie data acquired by this/these data source(s), for example as measured by these sources data, such as a speed when a data source is a speed sensor), or “processed” data, obtained by processing “raw” data. This may for example be data integrating an interpretation of a speed measured by a speed sensor, such as a qualification of this speed (too fast, too slow) possibly correlated with other data (state of the tires on a car, wet road or not, etc.)).

L’application passive elle-même peut par exemple être une application ne mettant en œuvre aucun mécanisme de communication asynchrone de données (comme une souscription à, ou une publication vers, au moins un canal de données)The passive application itself may for example be an application not implementing any asynchronous data communication mechanism (such as a subscription to, or publication to, at least one data channel)

L’invocation de l’application active peut par exemple permettre à l’exécutable actif créé d’interagir (via l’application passive) avec des équipements (par exemple des machines industrielles) connectées à la plateforme et auxquelles est dédiée l’application passive. La transmission des données (de sortie) résultant de l’invocation de l’application passive à d’autres exécutables en charge de la commande d’équipements comme des machines industrielles peut également permettre une commande indirecte (via ces « autres » exécutables) de ces équipements.The invocation of the active application can for example allow the created active executable to interact (via the passive application) with equipment (for example industrial machines) connected to the platform and to which the passive application is dedicated . The transmission of (output) data resulting from the invocation of the passive application to other executables responsible for controlling equipment such as industrial machines can also allow indirect control (via these “other” executables) of this equipment.

Dans au moins certains de ses modes de réalisation, le procédé peut ainsi aider à générer simplement des combinaisons d’exécutables, pour obtenir par exemple des fonctionnalités complexes complètement automatisées et personnalisées, dédiées par exemple aux besoins particuliers d’une entreprise.In at least some of its embodiments, the method can thus help to simply generate combinations of executables, to obtain for example completely automated and personalized complex functionalities, dedicated for example to the particular needs of a company.

Dans au moins certains de ses modes de réalisation, le procédé peut aider un utilisateur à mettre en œuvre diverses applications, en les intégrant de façon simple, au moins partiellement automatique, à son propre environnement, et ceci sans multiplier les interfaces utilisateurs, les matériels etc...In at least some of its embodiments, the method can help a user to implement various applications, by integrating them in a simple manner, at least partially automatically, into their own environment, and this without multiplying user interfaces, hardware etc...

On décrit à présent, en lien avec la , de façon plus détaillée la présente demande. La représente un système de télécommunication 100 dans lequel certains modes de réalisation de l’invention peuvent être mis en œuvre. Le système 100 comporte un ou plusieurs dispositifs électroniques, certains au moins pouvant communiquer entre eux via un ou plusieurs réseaux de communication, éventuellement interconnectés, comme un réseau local ou LAN (Local Area Network) et/ou un réseau de type étendu, ou WAN (Wide Area Network). Par exemple, le réseau peut comprendre un réseau LAN d’entreprise ou domestique et/ou un réseau WAN de type internet, ou cellulaire, GSM - Global System for Mobile Communications, UMTS - Universal Mobile Telecommunications System, Wi-Fi - Wireless, etc.) . Un exemple de tel réseau de communication est le bus de données 420 illustré en .We now describe, in connection with the , in more detail this application. There represents a telecommunications system 100 in which certain embodiments of the invention can be implemented. The system 100 comprises one or more electronic devices, at least some of which can communicate with each other via one or more communication networks, possibly interconnected, such as a local network or LAN (Local Area Network) and/or a wide area network, or WAN. (Wide Area Network). For example, the network may include a corporate or home LAN network and/or an internet or cellular WAN network, GSM - Global System for Mobile Communications, UMTS - Universal Mobile Telecommunications System, Wi-Fi - Wireless, etc. .) . An example of such a communication network is the data bus 420 illustrated in .

Comme illustré en , le système 100 peut également comprendre plusieurs dispositifs électroniques, comme des terminaux (tel qu’un ordinateur portable 110, un smartphone 130, une tablette 120), des objets connectés 160 ( par exemple des machines de production (comme des outillages électroniques) ou des capteurs, et/ou un serveur 140 (par exemple un serveur d’applications) et/ou un dispositif de stockage 150.As illustrated in , the system 100 can also include several electronic devices, such as terminals (such as a laptop 110, a smartphone 130, a tablet 120), connected objects 160 (for example production machines (such as electronic tools) or sensors, and/or a server 140 (for example an applications server) and/or a storage device 150.

Le système peut également comprendre des éléments de gestion et/ou d’interconnexion réseau (non représentés).The system may also include network management and/or interconnection elements (not shown).

La illustre une structure simplifiée d’un dispositif électronique 200 du système 100, par exemple l’un des dispositifs 110, 120, 130, 140, 150, 160 de la , adapté à mettre en œuvre le procédé de la présente demande. Comme illustré, selon les modes de réalisation, il peut s’agir d’un serveur, d’un terminal ou d’un objet connecté. Le dispositif 200 peut par exemple jouer le rôle de plateforme de gestion d’exécutables dans la présente demande. Il peut dans certains modes de réalisation est compatible avec des plateformes du commerce (comme la plateforme « Kubernetes » ©) de déploiement d’applications.There illustrates a simplified structure of an electronic device 200 of the system 100, for example one of the devices 110, 120, 130, 140, 150, 160 of the , suitable for implementing the method of the present application. As illustrated, depending on the embodiments, it may be a server, a terminal or a connected object. The device 200 can for example play the role of an executable management platform in the present application. In certain embodiments, it can be compatible with commercial platforms (such as the “Kubernetes” © platform) for deploying applications.

Le dispositif 200 comprend notamment au moins une mémoire M 210 comme une mémoire tampon, une mémoire volatile, par exemple de type RAM (pour « Random Access Memory » selon la terminologie anglaise), et/ou une mémoire non volatile (par exemple de type ROM (pour « Read Only Memory » selon la terminologie anglaise). Le dispositif 200 peut également comprendre une unité de traitement UT 220, équipée par exemple d'au moins un processeur P 222, et pilotée par un programme d'ordinateur PG 212 stocké en mémoire M 210. A l'initialisation, les instructions de code du programme d'ordinateur PG sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur P. Ledit au moins un processeur P 222 de l'unité de traitement UT 220 peut notamment mettre en œuvre, individuellement ou collectivement, l'un quelconque des modes de réalisation du procédé de la présente demande (décrit notamment en relation avec la figures 3), selon les instructions du programme d'ordinateur PG.The device 200 notably comprises at least one memory M 210 such as a buffer memory, a volatile memory, for example of the RAM type (for “Random Access Memory” according to English terminology), and/or a non-volatile memory (for example of the RAM type). ROM (for “Read Only Memory” according to English terminology) The device 200 can also include a processing unit UT 220, equipped for example with at least one processor P 222, and controlled by a stored computer program PG 212. in memory M 210. At initialization, the code instructions of the computer program PG are for example loaded into a RAM memory before being executed by the processor P. Said at least one processor P 222 of the processing unit processing UT 220 can in particular implement, individually or collectively, any of the embodiments of the method of the present application (described in particular in relation to Figures 3), according to the instructions of the computer program PG.

Le dispositif peut également comporter, ou être couplé à, au moins un module d’entrée/ sortie I/O 230, tel qu’un module de communication, permettant par exemple au dispositif 200 de communiquer avec d’autres dispositifs du système 100, via des interfaces de communication filaires ou sans fils, et/ou tel qu’un module d’interfaçage avec un utilisateur du dispositif (aussi appelé plus simplement dans cette demande « interface utilisateur »).The device can also include, or be coupled to, at least one I/O input/output module 230, such as a communication module, allowing for example the device 200 to communicate with other devices of the system 100, via wired or wireless communication interfaces, and/or such as an interfacing module with a user of the device (also called more simply in this application “user interface”).

Par interface utilisateur du dispositif, on entend par exemple une interface intégrée au dispositif 200, ou une partie d’un dispositif tiers couplé à ce dispositif par des moyens de communication filaires ou sans fils. Par exemple, il peut s’agir d’un écran secondaire du dispositif ou d’un ensemble de hauts parleurs connectés par une technologie sans fils au dispositif.By user interface of the device, we mean for example an interface integrated into the device 200, or a part of a third-party device coupled to this device by wired or wireless communication means. For example, it may be a secondary screen of the device or a set of speakers connected by wireless technology to the device.

Une interface utilisateur peut notamment être une interface utilisateur, dite «de sortie», adaptée à un rendu (ou au contrôle d’un rendu) d’un élément de sortie d‘une application informatique utilisée par le dispositif 200, par exemple une application s’exécutant au moins partiellement sur le dispositif 200 ou une application « en ligne » s’exécutant au moins partiellement à distance, par exemple sur le serveur 140 du système 100. Des exemples d’interface utilisateur de sortie du dispositif incluent un ou plusieurs écrans, notamment au moins un écran graphique (tactile par exemple), un ou plusieurs haut-parleurs, un casque connecté.A user interface may in particular be a so-called “output” user interface, adapted to a rendering (or to the control of a rendering) of an output element of a computer application used by the device 200, for example an application running at least partially on the device 200 or an “online” application running at least partially remotely, for example on the server 140 of the system 100. Examples of output user interfaces of the device include one or more screens, in particular at least one graphic screen (touchscreen for example), one or more speakers, a connected headset.

Par ailleurs, une interface utilisateur peut être une interface utilisateur, dite «d’entrée», adaptée à une acquisition d’une commande d’un utilisateur du dispositif 200. Il peut s’agir notamment d’une action à effectuer en lien avec un item rendu sur une interface de sortie du dispositif, et/ou d’une commande à transmettre à une application informatique utilisée par le dispositif 200 (par exemple un exécutable actif comme introduit ci-avant), par exemple une application s’exécutant au moins partiellement sur le dispositif 200 ou une application « en ligne » s’exécutant au moins partiellement à distance, par exemple sur le serveur 140 du système 100. Des exemples d’interface utilisateur d’entrée du dispositif 200 incluent un moyen d’acquisition audio et/ou vidéo (microphone, caméra (webcam) par exemple), un clavier, une souris.Furthermore, a user interface may be a so-called "input" user interface, adapted to acquiring a command from a user of the device 200. It may in particular be an action to be carried out in connection with an item rendered on an output interface of the device, and/or a command to be transmitted to a computer application used by the device 200 (for example an active executable as introduced above), for example an application running at less partially on the device 200 or an "online" application running at least partially remotely, for example on the server 140 of the system 100. Examples of input user interface of the device 200 include an acquisition means audio and/or video (microphone, camera (webcam) for example), a keyboard, a mouse.

De tels moyens d’entrées/sorties peuvent par exemple être adaptés à une gestion (création, mémorisation, sélection, lancement, paramétrage etc.) d’au moins un exécutable. Ils peuvent permettre par exemple un paramétrage des entrées/sorties d’une ressource (ou application) « passive » à déployer sous forme d’un exécutable actif (par exemple une désignation d’au moins un canal de données à utiliser pour fournir des paramètres d’entrée à la ressource via l’exécutable à déployer et/ou une désignation d’au moins un canal de données à alimenter, via l’exécutable, avec des paramètres de sortie fournis par cette ressource, une désignation d’au moins une source de données pour cet exécutable à déployer et/ou d’un destinataire de données pour cet exécutable).Such input/output means can for example be adapted to management (creation, storage, selection, launch, configuration, etc.) of at least one executable. They can allow for example a configuration of the inputs/outputs of a “passive” resource (or application) to be deployed in the form of an active executable (for example a designation of at least one data channel to be used to provide parameters input to the resource via the executable to be deployed and/or a designation of at least one data channel to be supplied, via the executable, with output parameters provided by this resource, a designation of at least one data source for this executable to be deployed and/or a data recipient for this executable).

Dans certains modes de réalisation, les modules d’entrées/ sorties peuvent également comprendre des moyens de communication adaptés à recevoir des données (par exemple des données acquises par un autre dispositif comme des images, des mesures etc..) et/ou de moyens d’acquisitions de ces données. Ces moyens d’acquisition peuvent comprendre des capteurs physiques ou logiciels aptes à l’acquisition de telles données. De tels modules d’entrées/sorties peuvent notamment être adaptés à consommer des données circulant sur au moins un canal 422, 424 d’un bus 420 de données et/ou à émettre des données sur au moins un canal 426 d’un bus 420 de données (voir ).In certain embodiments, the input/output modules may also include communication means adapted to receive data (for example data acquired by another device such as images, measurements, etc.) and/or means acquisition of this data. These acquisition means may include physical or software sensors capable of acquiring such data. Such input/output modules can in particular be adapted to consume data circulating on at least one channel 422, 424 of a data bus 420 and/or to transmit data on at least one channel 426 of a bus 420 data (see ).

Ledit au moins un microprocesseur du dispositif 200 peut notamment être adapté pour un déploiement au moins partiellement automatique d’une première application logicielle passive dans un réseau de communication. Ledit processeur peut notamment être configuré pour:

  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins une source de données dudit réseau et/ou d’au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données mises à disposition et/ou attendues dans ledit réseau;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée mise à disposition par ladite source de données sélectionnée et/ou avec en paramètre(s) de sortie au moins une donnée attendue par ledit au moins un consommateur sélectionné.
Said at least one microprocessor of the device 200 can in particular be adapted for at least partially automatic deployment of a first passive software application in a communication network. Said processor can in particular be configured to:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one data source of said network and/or of at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data put available and/or expected in said network;
  • An automatic creation of an active executable of which at least one software process comprises an invocation of said passive application with as input parameter(s) at least one piece of data made available by said selected data source and/or with as parameter ( s) output at least one piece of data expected by said at least one selected consumer.

Dans certains modes de réalisation, le procédé de la présente demande peut être mis en œuvre de façon distribuée entre au moins deux dispositifs 110, 120, 130, 140, 150 ou 160 du système 100. Ainsi, dans certains modes de réalisation, un premier dispositif (par exemple un serveur 140 du système 100) peut construire un exécutable « actif » (selon le procédé de la présente demande) qu’il communique à au moins un second dispositif (par exemple un terminal 110 ou le dispositif de stockage 150 du système 100), de qui un troisième dispositif (comme le terminal 110, ou le serveur 140) pourra ultérieurement obtenir ce modèle. L’exécutable peut ensuite être lancé sur le second et/ou le troisième dispositif (par exemple le serveur 140, ou un autre serveur, ou le terminal 110) (selon le procédé de la présente demande).In certain embodiments, the method of the present application can be implemented in a distributed manner between at least two devices 110, 120, 130, 140, 150 or 160 of the system 100. Thus, in certain embodiments, a first device (for example a server 140 of the system 100) can construct an “active” executable (according to the method of the present application) which it communicates to at least a second device (for example a terminal 110 or the storage device 150 of the system 100), from which a third device (such as terminal 110, or server 140) can subsequently obtain this model. The executable can then be launched on the second and/or third device (for example the server 140, or another server, or the terminal 110) (according to the method of the present application).

Dans d’autres modes de réalisation, le procédé de la présente demande peut être mis en œuvre localement par le dispositif 200.In other embodiments, the method of the present application can be implemented locally by the device 200.

Une mise en œuvre distribuée du procédé peut permettre de déployer en parallèle un même exécutable sur plusieurs dispositifs (par exemple pour permettre une redondance de traitements critiques) en mettant en commun certains traitements pour l’obtention de l’exécutable « actif » à partir d’une application passive.A distributed implementation of the method can make it possible to deploy the same executable in parallel on several devices (for example to allow redundancy of critical processing) by pooling certain processing operations to obtain the "active" executable from 'a passive application.

Par ailleurs, une implémentation locale à un dispositif peut aider à simplifier la mise en œuvre de la solution objet de la présente demande, et donc aider à limiter son coût d’implémentation. Elle peut aussi aider à préserver la confidentialité de certaines données sensibles ou de certains traitements secrets (comme des secrets de fabrication faisant partie du savoir-faire d’une entreprise) dont on souhaite éviter la diffusion.Furthermore, a local implementation of a device can help to simplify the implementation of the solution which is the subject of this application, and therefore help to limit its implementation cost. It can also help preserve the confidentiality of certain sensitive data or certain secret processing operations (such as manufacturing secrets forming part of a company's know-how) whose dissemination we wish to avoid.

Certains des modules d‘entrée -sorties ci-dessus sont optionnels et peuvent donc être absents du dispositif 200 dans certains modes de réalisation. Notamment, lorsque le procédé est mis en œuvre localement, certains modules d’entrées/sorties liés à la transmission ou à la réception de données peuvent être absents.Some of the above input-output modules are optional and may therefore be absent from the device 200 in certain embodiments. In particular, when the process is implemented locally, certain input/output modules linked to the transmission or reception of data may be absent.

Par le terme « module » ou le terme « composant » ou «élément » du dispositif, on entend ici un élément matériel, notamment câblé, ou un élément logiciel, ou une combinaison d’au moins un élément matériel et d’au moins un élément logiciel. Le procédé selon l’invention peut donc être mis en œuvre de diverses manières, selon ses modes de réalisation, notamment sous forme câblée et/ou sous forme logicielle.By the term "module" or the term "component" or "element" of the device, we mean here a hardware element, in particular wired, or a software element, or a combination of at least one hardware element and at least one software element. The method according to the invention can therefore be implemented in various ways, depending on its embodiments, in particular in wired form and/or in software form.

On présente à présent, en lien avec les figures 3 et 4, certaines mises en œuvre du procédé 300 de la présente demande sur un dispositif électronique (qui peut être similaire au dispositif 200 de la ). tel que le serveur 140 ou le terminal 110 de la .We now present, in connection with Figures 3 and 4, certain implementations of the method 300 of the present application on an electronic device (which may be similar to the device 200 of the ). such as the server 140 or the terminal 110 of the .

Comme illustré, le procédé 300 peut comprendre une obtention 310 des caractéristiques d’au moins une application logicielle à déployer dans ledit réseau de communication.As illustrated, the method 300 may include obtaining 310 the characteristics of at least one software application to be deployed in said communication network.

Cette obtention peut comprendre notamment une obtention 312 de l’application elle-même et une obtention 314 de sa description. Selon les modes de réalisation, ces deux étapes peuvent être effectuées en parallèle, ou successivement (sans préjugé de leur ordre respectif), ou encore, ces deux étapes peuvent être réunies en seule étape, où l’application et sa description sont obtenues ensemble (par exemple dans un même flux de données).This obtaining may include in particular obtaining 312 of the application itself and obtaining 314 of its description. Depending on the embodiments, these two steps can be carried out in parallel, or successively (without prejudice to their respective order), or else, these two steps can be combined in a single step, where the application and its description are obtained together ( for example in the same data flow).

Dans certains modes de réalisation, l’application et/ou sa description peut être reçue d’un autre dispositif (via des moyens de communication) ; par exemple téléchargée depuis un serveur d’applications (par exemple par un opérateur, via une interface web), ou chargée depuis un support de stockage interne ou externe (tel qu’un disque dur externe ou qu’une clé USB par exemple), Après obtention, l’application et/ou sa description reçue(s) peut par exemple être chargée pour y être mémorisée, sur un support de stockage (comme un support non transitoire tel qu’un disque dur) de la plateforme.In certain embodiments, the application and/or its description can be received from another device (via means of communication); for example downloaded from an application server (for example by an operator, via a web interface), or loaded from an internal or external storage medium (such as an external hard drive or a USB key for example), After obtaining, the application and/or its description received can for example be loaded to be stored there, on a storage medium (such as a non-transitory medium such as a hard disk) of the platform.

Par exemple, un fournisseur d’applications ou un fournisseur d’un équipement à commander peut fournir une application (par exemple une application de commande de de cet équipement), sous forme d’un code binaire ou d’un fichier texte (comme un script), et une description de l’application. Cette description peut par exemple préciser si l’application possède des paramètres d’entrée et/ou de sortie, et si c’est le cas, le nombre, le type, l’ordre, et /ou l’éventuelle valeur par défaut de ces paramètres. Il peut s’agir par exemple d’une liste exhaustive et ordonnée (selon l’ordre des paramètres lors de l’invocation de l’application), indiquant le type de chacun des paramètres d’entrée et/ou de sortie.For example, an application provider or a provider of equipment to be controlled may provide an application (for example an application for controlling this equipment), in the form of a binary code or a text file (such as a script), and a description of the application. This description can for example specify whether the application has input and/or output parameters, and if so, the number, type, order, and/or possible default value of these parameters. It may for example be an exhaustive and ordered list (according to the order of the parameters when invoking the application), indicating the type of each of the input and/or output parameters.

Selon les modes de réalisation, la description peut être transmise sous diverses formes, comme un document papier ou électronique, transmis via un support de stockage, ou téléchargé, conjointement à l’application ou de façon séparée.Depending on the embodiments, the description can be transmitted in various forms, such as a paper or electronic document, transmitted via a storage medium, or downloaded, jointly with the application or separately.

Le format du document électronique peut différer selon les modes de réalisation. Dans le cas d’un document électronique, il peut s’agir d’un document au format « pdf », ou basé sur le format « HTML» (pour « HyperText Markup Language » en anglais), ou d’un fichier descriptif interprétable automatiquement. Par exemple, il peut utiliser un format particulier au fournisseur d’applications ou de l’équipement à commander ou utiliser un format standard de sérialisation de données, comme le format connu sous le nom de YAML, ou un format utilisant un langage de balisage, comme HTML.The format of the electronic document may differ depending on the embodiments. In the case of an electronic document, it may be a document in "pdf" format, or based on the "HTML" format (for "HyperText Markup Language" in English), or an interpretable descriptive file automatically. For example, it may use a format specific to the application provider or equipment to be ordered or use a standard data serialization format, such as the format known as YAML, or a format using a markup language, like HTML.

L’obtention 314 de la description peut par exemple mettre en œuvre une transcription d’au moins une partie d’un document papier ou électronique (comme un document au format « pdf ») dans un format interprétable automatiquement. Cette transcription peut par exemple être effectuée manuellement par un opérateur via une interface homme machine (comme une interface web) du dispositif 200 ou de façon automatique, par exemple via des techniques automatiques d’analyse de documents telles que des techniques automatiques de reconnaissance de caractères, d’analyse syntaxique et/ou sémantique etc..Obtaining 314 the description can for example implement a transcription of at least part of a paper or electronic document (such as a document in “pdf” format) in an automatically interpretable format. This transcription can for example be carried out manually by an operator via a human machine interface (such as a web interface) of the device 200 or automatically, for example via automatic document analysis techniques such as automatic character recognition techniques. , syntactic and/or semantic analysis etc.

Comme illustré en , le procédé peut comprendre dans certains modes de réalisation, une obtention 320 d’une description des données susceptibles d’être véhiculées vers des dispositifs du système 100 (comme des capteurs, des caméras etc.. ou d’autres exécutables actifs du système 100) (et donc susceptible d’alimenter, via un exécutable actif, l’application obtenue 310 ) et vice versa des données susceptibles d’être attendues par des dispositifs du système 100.As illustrated in , the method may include in certain embodiments, obtaining 320 a description of the data likely to be conveyed to devices of the system 100 (such as sensors, cameras, etc. or other active executables of the system 100 ) (and therefore capable of supplying, via an active executable, the application obtained 310) and vice versa with data likely to be expected by devices of the system 100.

Dans l’exemple de la , les dispositifs du système 100 utilisent un ou plusieurs canaux d’un bus de données pour s’échanger de façon asynchrone des informations en utilisant par exemple un protocole de messagerie utilisant un mécanisme d’abonnements (ou de souscriptions) à des évènements et/ou de publications d’évènements.In the example of the , the devices of the system 100 use one or more channels of a data bus to asynchronously exchange information using for example a messaging protocol using a subscription mechanism (or subscriptions) to events and/or or event publications.

Selon les modes de réalisation, le protocole de messagerie peut être divers, il peut dans exemple s’agir d’un protocole de messagerie basé sur un protocole standard de communication comme TCP/IP (de l'anglais Transmission Control Protocol (TCP) et Internet Protocol (IP) , comme MQTT (pour Message Queuing Telemetry Transport).Depending on the embodiments, the messaging protocol can be diverse, for example it can be a messaging protocol based on a standard communication protocol such as TCP/IP (from the English Transmission Control Protocol (TCP) and Internet Protocol (IP), such as MQTT (for Message Queuing Telemetry Transport).

Une description des données circulant sur le bus de données peut par exemple être obtenue auprès d’une entité gestionnaire du bus de données.A description of the data circulating on the data bus can for example be obtained from an entity managing the data bus.

Par exemple, certaines modes de réalisation peuvent utiliser une entité de type « Broker » dans le cas d’un bus MQTT et/ou une analyse dynamique 322 des données effectivement mises à disposition sur le bus.For example, certain embodiments can use a “Broker” type entity in the case of an MQTT bus and/or a dynamic analysis 322 of the data actually made available on the bus.

Par exemple, dans le cas d’un bus MQTT, un abonnement au canal ‘#’ permet de recevoir les données circulant sur tous les canaux actifs. Chaque message de données peut alors indiquer par exemple le canal utilisé.For example, in the case of an MQTT bus, a subscription to channel ‘#’ allows you to receive data circulating on all active channels. Each data message can then indicate, for example, the channel used.

Dans certains modes de réalisation, un système déclaratif peut également mis en place afin de permettre à une source de données (un capteur par exemple) de signaler qu’elle est active et qu’elle utilise un canal spécifique.In certain embodiments, a declarative system can also be implemented to allow a data source (a sensor for example) to signal that it is active and that it is using a specific channel.

Ainsi, un canal dédié peut par exemple être utilisé pour générer (et/ou diffuser) un annuaire des canaux disponibles. Chaque source peut par exemple émet un signal sur ce canal (par exemple dans un format bien défini). Les exécutables (abonnés à ce canal peuvent alors être averti du canal utilisé par la source et s’enregistrer (ou non) dans les destinataires du canal de la source.Thus, a dedicated channel can for example be used to generate (and/or broadcast) a directory of available channels. Each source can for example emit a signal on this channel (for example in a well-defined format). Executables (subscribed to this channel) can then be notified of the channel used by the source and register (or not) in the recipients of the source channel.

Une analyse dynamique des canaux peut par exemple utiliser un outil de détection de type (comme le détecteur de type « Java Data Type »), afin d’obtenir dynamiquement le type de données d’au moins un canal du bus (par exemple automatiquement lors de l’utilisation du procédé de la présente demande, avant ou pendant l’exécution de l’exécutable actif. Dans le cas de l’outil Java Data Type, l’analyse dynamique d’une donnée circulant sur un canal de données peut permettre par exemple de retrouver un type primitif, de bas niveau, de Java, comme le type « booléen », le type « caractère », le type « entier », le type « nombre flottant », ou le type « double ». Bien entendu, les formats identifiés lors de l’analyse dynamique peuvent varier selon les modes de réalisation (par exemple selon l’outil de détection de type utilisé).A dynamic channel analysis can for example use a type detection tool (such as the “Java Data Type” type detector), in order to dynamically obtain the data type of at least one channel of the bus (for example automatically when of the use of the method of the present application, before or during the execution of the active executable. In the case of the Java Data Type tool, the dynamic analysis of data circulating on a data channel can allow. for example to find a primitive, low-level Java type, such as the “boolean” type, the “character” type, the “integer” type, the “floating number” type, or the “double” type. , the formats identified during the dynamic analysis may vary depending on the embodiments (for example depending on the type detection tool used).

La description des données susceptibles de circuler sur le bus de données peut notamment comprendre un identifiant d’au moins un dispositif et/ou processus source de telles données (comme les éléments 442, 444 de la ) et/ou d’un dispositif et/ou processus consommateur de telles données(comme l’élément 446 de la ), et/ou au moins un format de ces données. Elle peut aussi comprendre dans certains modes de réalisation, une fréquence probable et/ou demandée des mises à disposition de telles données, une taille probable, minimale ou maximale de ces données etc.The description of the data likely to circulate on the data bus may in particular include an identifier of at least one device and/or process source of such data (such as elements 442, 444 of the ) and/or a device and/or process consuming such data (such as element 446 of the ), and/or at least one format of this data. It may also include in certain embodiments, a probable and/or requested frequency of making such data available, a probable, minimum or maximum size of this data, etc.

Dans l’exemple de la , le procédé peut comprendre une mise en correspondance 330 entre au moins une portion de la description de l’application, relative aux paramètres d’entrée et/ou de sortie de l’application, et les données susceptibles de circuler sur le bus de données.In the example of the , the method may include a mapping 330 between at least a portion of the description of the application, relating to the input and/or output parameters of the application, and the data likely to circulate on the data bus .

Par exemple, lorsqu’un type (primitif par exemple) de données circulant sur le bus est identique à un type (primitif par exemple) d’un paramètre d’entrée ou de sortie de l’application, le canal de circulation sera considéré comme un canal possible de mise à disposition de données (par ou pour un exécutable invoquant l’application) et mémorisé en association 334 du paramètre d’entrée ou de sortie de l’application concerné.For example, when a type (primitive for example) of data circulating on the bus is identical to a type (primitive for example) of an input or output parameter of the application, the circulation channel will be considered as a possible channel for making data available (by or for an executable invoking the application) and stored in association 334 with the input or output parameter of the application concerned.

Lorsqu’un type de données susceptibles de circuler sur au moins un des canaux du bus est différent d’un type d’un paramètre d’entrée ou de sortie de l’application, le procédé peut comprendre une lecture 332 d’une table de conversion associant au moins un couple constitué d’un premier et d’un second type de données (primitifs par exemple) avec au moins une méthode de conversion à utiliser pour convertir des données de ce premier type en données de ce second type.When a type of data capable of circulating on at least one of the bus channels is different from a type of an input or output parameter of the application, the method can include a reading 332 of a table of conversion associating at least one pair consisting of a first and a second type of data (primitives for example) with at least one conversion method to be used to convert data of this first type into data of this second type.

La table de conversion (comme l’élément 430 de la ) peut être stockée par exemple sur le dispositif 200 ou dans un dispositif de stockage comme le dispositif 150 du système 100).The conversion table (like element 430 of the ) can be stored for example on the device 200 or in a storage device such as the device 150 of the system 100).

La lecture 332 de la table de conversion peut permettre d’identifier une méthode de conversion à utiliser pour convertir au moins une donnée circulant sur au moins un des canaux du bus en au moins un paramètre d’entrée de l’application, ou pour convertir au moins un paramètres de sortie de l’application en donnée adaptée à circuler sur au moins un des canaux du bus.Reading 332 of the conversion table can make it possible to identify a conversion method to be used to convert at least one piece of data circulating on at least one of the bus channels into at least one application input parameter, or to convert at least one output parameter of the application in data adapted to circulate on at least one of the channels of the bus.

Si la lecture de la table de conversion permet d’identifier une méthode de conversion entre un canal de données et un paramètre d’entrée ou de sortie de l’application, le canal de circulation sera considéré comme un canal possible de mise à disposition de données (par ou pour un exécutable invoquant l’application), moyennant l’utilisation de la méthode de conversion. Ce canal de données sera alors mémorisé en association avec le paramètre d’entrée et/ou de sortie de l’application concernée, et la méthode de conversion (ou un lien vers cette méthode) à utiliser.If reading the conversion table makes it possible to identify a method of conversion between a data channel and an input or output parameter of the application, the circulation channel will be considered as a possible channel for making the data available. data (by or for an executable invoking the application), using the conversion method. This data channel will then be stored in association with the input and/or output parameter of the application concerned, and the conversion method (or a link to this method) to use.

La mise en correspondance aboutit ainsi, dans l’exemple illustré, à une éventuelle association 334, à une donnée d’entrée ou de sortie, d’au moins un canal de mise à disposition de données, ainsi qu’optionnellement à au moins une méthode de conversion associée.The matching thus results, in the example illustrated, in a possible association 334, with input or output data, with at least one data provision channel, as well as optionally with at least one associated conversion method.

Lorsque au moins un paramètre d’entrée ou de sortie n’est associée à aucun canal, et, dans le cas d’un paramètre d’entrée, ne possède aucune valeur par défaut, le procédé peut comprendre une génération d’un message d’alerte et son émission vers un autre dispositif distant et/ou à son rendu vers une interface homme machine du dispositif 200. En effet, il peut être nécessaire d’affecter manuellement une valeur par défaut à un paramètre d’entrée et/ou de modifier ou d’ajouter un canal et/ou une source de données au système 100 pour permettre la mise à disposition de données d’un type correspondant (éventuellement via une conversion) au paramètre d’entrée.When at least one input or output parameter is not associated with any channel, and, in the case of an input parameter, has no default value, the method may include generating a message alert and its transmission to another remote device and/or its rendering to a human machine interface of the device 200. Indeed, it may be necessary to manually assign a default value to an input parameter and/or modify or add a channel and/or a data source to the system 100 to enable the provision of data of a type corresponding (possibly via conversion) to the input parameter.

On notera qu’un paramètre de sortie qui n’est associé à aucun canal peut tout simplement être ignoré par l’exécutable invoquant l’application passive.Note that an output parameter which is not associated with any channel can simply be ignored by the executable invoking the passive application.

Dans certains modes de réalisation, le procédé peut comprendre une sélection, parmi les canaux associés à un paramètre d’entrée ou de sortie de l’application, d’au moins un canal de données à utiliser lors d’une invocation de l’application passive. Dans certains modes de réalisation, cette sélection peut être automatique.In certain embodiments, the method may comprise a selection, among the channels associated with an input or output parameter of the application, of at least one data channel to be used during an invocation of the application passive. In certain embodiments, this selection may be automatic.

Par exemple, la sélection d’au moins un canal de données peut être automatique dans des cas où un seul canal est associé à un paramètre d’entrée et/ou de sortie de l’application, ou lorsque la sélection se base sur l’application de règles paramétrées préalablement. Par exemple, une règle peut indiquer que les données de tous les canaux associés à un paramètre d’entrée doivent être utilisées comme paramètre d’entrée de l’application (l’exécutable surveillant alors l’ensemble de ces canaux), ou encore qu’un paramètre de sortie doit être mis à disposition (émis par exemple) sur tous les canaux associés à ce paramètre de sortie.For example, the selection of at least one data channel may be automatic in cases where a single channel is associated with an input and/or output parameter of the application, or when the selection is based on the application of previously configured rules. For example, a rule can indicate that the data from all channels associated with an input parameter must be used as the application's input parameter (the executable then monitors all of these channels), or that 'an output parameter must be made available (emitted for example) on all channels associated with this output parameter.

Dans certains modes de réalisation, le procédé peut comprendre un rendu 336 des canaux associés à un paramètre de l’application, ainsi que par exemple des caractéristiques de ces canaux (comme un identifiant d’au moins un dispositif source ou consommateur des données circulant sur un canal ), de façon à permettre à un opérateur de faire un choix parmi le ou les canaux associés au paramètre concerné et/ou de confirmer la sélection (automatique) d’un ou de plusieurs canaux.In certain embodiments, the method may include a rendering 336 of the channels associated with a parameter of the application, as well as for example characteristics of these channels (such as an identifier of at least one source or consumer device of the data circulating on a channel), so as to allow an operator to make a choice among the channel(s) associated with the parameter concerned and/or to confirm the (automatic) selection of one or more channels.

Dans un tel mode de réalisation , le procédé peut comprendre une acquisition 338 d’une désignation d’au moins un des canaux associé au paramètre. La désignation peut par exemple comprendre au moins un identifiant d’au moins un canal de données à sélectionner (ou en variante à ne pas utiliser) et/ou au moins un identifiant d’au moins un dispositif source ou consommateur de données utilisant un canal de données à sélectionner (ou en variante à ne pas utiliser).In such an embodiment, the method may include an acquisition 338 of a designation of at least one of the channels associated with the parameter. The designation may for example include at least one identifier of at least one data channel to be selected (or alternatively not to be used) and/or at least one identifier of at least one data source or consumer device using a channel of data to select (or alternatively not to use).

Dans l’exemple de la , le procédé peut comprendre une création 340 automatique d’un exécutable actif 410 en charge d’invoquer l’application passive en utilisant les données mises à disposition via les canaux sélectionnés lors de la mise en correspondance 330. La illustre un exemple de l’architecture logicielle d’un tel exécutable 410 et de son environnement.In the example of the , the method may include an automatic creation 340 of an active executable 410 responsible for invoking the passive application using the data made available via the channels selected during the matching 330. illustrates an example of the software architecture of such an executable 410 and its environment.

Un tel exécutable 410 peut comprendre:

  • un élément logiciel offrant une fonctionnalité de souscription (ou abonnement) et/ou de désabonnement à au moins un premier canal 422, 424 d’un bus de données 420 (par exemple les canaux associés à un paramètre d’entrée de l’application sélectionnés lors de la mise en correspondance 330) ou en variante, plus spécifiquement, aux mises à disposition de données, via ce premier canal 422, 424, en provenance d’au moins une première source 442, 444 de données ;
  • un élément logiciel en charge d’écouter en permanence sur le premier canal 422, 424, et d’obtenir les données circulant sur ce premier canal 422, 424 ou , en variante, les données en provenant de la première source 442, 444;de données utilisant ce premier canal)
  • un élément logiciel offrant une conversion éventuelle d’au moins une donnée (« brute » par exemple) mise à disposition sur le premier canal, en au moins une donnée d’un type connu (« donnée primitive ») et/ou une conversion éventuelle d’au moins une donnée primitive en au moins une donnée de format adapté au paramètre d’entrée 414 associé au premier canal 422, 424, en utilisant par exemple une méthode de conversion associée à ce paramètre d’entrée 414 et à ce premier canal 422, 424 lors de la mise en correspondance 330;
  • un élément logiciel adapté à une invocation de l’application « passive » 412 avec en paramètre(s) d’entrée 414 au moins une donnée obtenue via l’écoute sur le premier canal 422, 424 (et éventuellement convertie) (ou une donnée fonction de la donnée obtenue)
  • un élément logiciel offrant une conversion éventuelle d’au moins un paramètre(s) 416 de sortie de l’application 412 invoquée, en utilisant la méthode de conversion associée à ce paramètre de sortie 416 lors de la mise en correspondance 330 et
  • un élément logiciel adapté à une mise à disposition du paramètre de sortie 416 (ou d’une donnée fonction de ce paramètre) sur un deuxième canal 426 associé à ce paramètre de sortie 416 et sélectionné lors de la mise en correspondance 330 et éventuellement converti
Such an executable 410 may include:
  • a software element offering a subscription (or subscription) and/or unsubscription functionality to at least a first channel 422, 424 of a data bus 420 (for example the channels associated with an input parameter of the selected application during matching 330) or alternatively, more specifically, to the provision of data, via this first channel 422, 424, coming from at least a first data source 442, 444;
  • a software element responsible for permanently listening on the first channel 422, 424, and obtaining the data circulating on this first channel 422, 424 or, alternatively, the data coming from the first source 442, 444; data using this first channel)
  • a software element offering a possible conversion of at least one piece of data (“raw” for example) made available on the first channel, into at least one piece of data of a known type (“primitive data”) and/or a possible conversion of at least one primitive data into at least one data of format adapted to the input parameter 414 associated with the first channel 422, 424, using for example a conversion method associated with this input parameter 414 and this first channel 422, 424 when matching 330;
  • a software element adapted to an invocation of the “passive” application 412 with as input parameter(s) 414 at least one piece of data obtained via listening on the first channel 422, 424 (and possibly converted) (or a piece of data depending on the data obtained)
  • a software element offering a possible conversion of at least one output parameter(s) 416 of the invoked application 412, using the conversion method associated with this output parameter 416 during the matching 330 and
  • a software element adapted to making the output parameter 416 (or data based on this parameter) available on a second channel 426 associated with this output parameter 416 and selected during the matching 330 and possibly converted

Selon les modes de réalisation, l’exécutable peut comprendre divers autres éléments logiciels. Par exemple, dans certains modes de réalisation, il peut comprendre un module de génération de traces de l’invocation de l’application passive (ie d’alertes rapportant cette invocation) vers un dispositif d’un opérateur.Depending on the embodiments, the executable may include various other software elements. For example, in certain embodiments, it may include a module for generating traces of the invocation of the passive application (ie alerts reporting this invocation) towards an operator's device.

Ces éléments logiciel peuvent être mis en œuvre dans des modules logiciel distincts ou commun. Par exemple, dans certains modes de réalisation, au moins certains de ces éléments logiciels peuvent être mis en œuvre par un module logiciel commun appelé par la suite Publish/subscrib Proxy . Le code d’au moins certains de ces éléments et/ou module(s) logiciel(s) peut être identique quelle que soit l’application passive du système 100, l’instanciation des élément(s) et/ou module(s) logiciel(s) se faisant par exemple en utilisant la description obtenue 310 de l’application, la description obtenue 320 des données mises en circulation sur le bus et/ou les associations mémorisées lors de la mise en correspondance 330 du procédé de la présente demande.These software elements can be implemented in separate or common software modules. For example, in certain embodiments, at least some of these software elements may be implemented by a common software module hereinafter called Publish/subscrib Proxy. The code of at least some of these software elements and/or module(s) may be identical regardless of the passive application of the system 100, the instantiation of the element(s) and/or module(s) software(s) being done for example using the description obtained 310 of the application, the description obtained 320 of the data put into circulation on the bus and/or the associations stored during the matching 330 of the method of the present application .

L’exécutable actif (ou autonome) peut par exemple être créé 342 de façon automatique, à partir de l’application passive et (par exemple) du et/ou des modules logiciels ci-dessus, via des outils de génération d’exécutable; comme des outils utilisant des techniques d’encapsulation comme la technologie Docker ©. Ainsi, dans l’exemple de la , l’exécutable actif peut être obtenu via le programme « Image Docker » ©. Un tel programme peut aider par exemple à obtenir un exécutable en quelques secondes.The active (or autonomous) executable can for example be created 342 automatically, from the passive application and (for example) the software modules and/or above, via executable generation tools; such as tools using encapsulation techniques such as Docker © technology. So, in the example of the , the active executable can be obtained via the “Image Docker” © program. Such a program can help, for example, to obtain an executable in a few seconds.

Dans l’exemple de la , le procédé peut comprendre une mémorisation de l’exécutable actif créé. Cette mémorisation peut par exemple comprendre un ajout 344 dans une bibliothèque d’exécutables, accessible à un opérateur, pour permettre un déploiement 360 ultérieur de cet exécutable sur le dispositif 200 (ou un autre dispositif du système 100). Cet ajout peut être optionnel dans certains modes de réalisation.In the example of the , the method may include storing the active executable created. This storage can for example include an addition 344 in a library of executables, accessible to an operator, to allow subsequent deployment 360 of this executable on the device 200 (or another device of the system 100). This addition may be optional in certain embodiments.

Comme illustré en , le procédé peut comprendre un rendu 350 d’informations représentative des exécutables actifs à la disposition d’un opérateur (via une bibliothèque telle que mentionnée ci-dessus par exemple). Par exemple les informations représentatives d’un exécutable actif peuvent inclure des informations relatives au système 100 (comme les dispositifs présents dans le système, leurs capacités mémoire et /ou de traitement, leurs connexions (USB, série, bus), etc..) des informations relatives à l’exécutable actif lui-même (comme un identifiant de l’exécutable actif et/ou sa taille mémoire), des informations relatives à l’application passive à partir de laquelle a été généré cet exécutable actif (par exemple une information présente dans la description de l’application passive, comme un identifiant de l’application, un libellé (explicatif par exemple) associé à l’application, un format et/ou une taille minimale ou maximale d’au moins un paramètre d’entrée ou de sortie de l’application), des informations relatives à au moins un dispositif ou processus, source et/ou consommateur de données mises à disposition sur un canal sélectionné pour l’application (par exemple une information présente dans la description des canaux du bus de données, comme un identifiant et/ou un libellé de ce dispositif ou processus, source et/ou consommateur de données, un format et/ou une taille minimale ou maximale d’au moins une donnée mise à disposition par/pour ce dispositif sur le bus, etc.. Un opérateur peut ainsi avoir la possibilité, par exemple, de vérifier la configuration de l’exécutable actif.As illustrated in , the method may include a rendering 350 of information representative of the active executables available to an operator (via a library as mentioned above for example). For example, the information representative of an active executable may include information relating to the system 100 (such as the devices present in the system, their memory and/or processing capacities, their connections (USB, serial, bus), etc.) information relating to the active executable itself (such as an identifier of the active executable and/or its memory size), information relating to the passive application from which this active executable was generated (for example a information present in the description of the passive application, such as an identifier of the application, a label (explanatory for example) associated with the application, a format and/or a minimum or maximum size of at least one parameter of input or output of the application), information relating to at least one device or process, source and/or consumer of data made available on a channel selected for the application (for example information present in the description of the channels of the data bus, such as an identifier and/or a label of this device or process, source and/or consumer of data, a format and/or a minimum or maximum size of at least one piece of data made available by/for this device on the bus, etc. An operator can thus have the possibility, for example, of checking the configuration of the active executable.

Des informations relatives à l’état courant du bus, aux dispositif et/ou processus, source et/ou consommateur de données, présents à l’instant courant sur le bus et/ou aux autres exécutables en cours d’exécution sur la plateforme et aux dispositif ou processus, source et/ou consommateur de données pour ces autres exécutables peuvent également être rendus.Information relating to the current state of the bus, to the device and/or process, source and/or consumer of data, present at the current time on the bus and/or to other executables currently running on the platform and to the device or process, source and/or consumer of data for these other executables can also be rendered.

Le rendu peut être optionnel dans certains modes de réalisation.Rendering may be optional in certain embodiments.

Dans certains modes de réalisation, le procédé peut comprendre une mise à jour 352 éventuelle de l’exécutable actif. Une telle mise à jour 352 peut prendre par exemple la forme d’un remplacement d’une version antérieure d’un processus actif par une version ultérieure (générée comme déjà exposé par le procédé de la présente demande). Dans certains modes de réalisation, l’exécutable actif peut par exemple recevoir via un canal spécifique du bus de donnée une commande de désabonnement à au moins un canal sélectionné (ou en variante une commande de désabonnement à une source de données utilisant ce canal) et une nouvelle commande d’abonnement à un nouveau canal (ou en variante une nouvelle commande d’abonnement à une source de données utilisant ce canal) .L’exécution d’une telle commande peut par exemple comprendre une validation automatique de la commande, utilisant la table de conversion introduite précédemment.In certain embodiments, the method may include a possible update 352 of the active executable. Such an update 352 can for example take the form of replacing a previous version of an active process with a later version (generated as already explained by the process of the present application). In certain embodiments, the active executable can for example receive via a specific channel of the data bus a command to unsubscribe to at least one selected channel (or alternatively a command to unsubscribe to a data source using this channel) and a new subscription command to a new channel (or alternatively a new subscription command to a data source using this channel). The execution of such a command may for example include automatic validation of the command, using the conversion table introduced previously.

Une telle mise à jour peut par exemple survenir lorsque les données d’une source de données nouvellement présentes dans le système (un capteur par exemple), sont plus pertinentes que celles d’une source de données déjà présentes dans le système.Such an update can, for example, occur when the data from a data source newly present in the system (a sensor for example), are more relevant than those from a data source already present in the system.

Une telle possibilité de mise à jour peut être optionnelle dans certains modes de réalisation.Such an update possibility may be optional in certain embodiments.

Dans l’exemple illustré en , le procédé peut comprendre un déploiement 360 de l’exécutable actif créé. Ce déploiement 360 comprendre un lancement 362 de l’exécutable actif (sur la plateforme donnant accès à plusieurs exécutables introduite ci-dessus par exemple). Ainsi, dans l’exemple illustré en , où l’exécutable actif est créé sous forme d’un environnement d’exécution de type « Docker » ©, lors du déploiement du docker, le programme principal (ie l’exécutable actif) du docker se lance. Dans certains modes de réalisation, où la mise en correspondance est effectuée avant création de l’exécutable actif, celui-ci s’abonne automatiquement aux canaux sélectionnés correspondant au(x) paramètre(s) d’entrée de l’application passive. Lors de la réception d’au moins une donnée via au moins un de ces canaux, l’exécutable la convertit éventuellement puis invoque l’exécutable « passif » comme expliqué ci-avant, s’il a obtenu l’ensemble des paramètres d’entrée (ou au moins ceux n’ayant pas de valeur par défaut) de l’application. Si une première donnée correspondant à un premier paramètre d’entrée est reçue alors qu’aucune donnée n’est encore disponible pour un second paramètre d’entrée, la première donnée peut être stockée temporairement (au moins jusqu’à l’expiration d’une première durée (time out selon la terminologie anglaise) jusqu’à réception de données correspondant aux autres paramètres d’entrée de l’application. L’invocation de l’application peut donc être effectuée de façon asynchrone par rapport à la mise à disposition de données sur un canal.In the example illustrated in , the method may include a 360 deployment of the created active executable. This 360 deployment includes a 362 launch of the active executable (on the platform giving access to several executables introduced above for example). Thus, in the example illustrated in , where the active executable is created in the form of a “Docker” © type execution environment, when deploying the docker, the main program (ie the active executable) of the docker is launched. In some embodiments, where the matching is performed before creation of the active executable, it automatically subscribes to the selected channels corresponding to the input parameter(s) of the passive application. When receiving at least one piece of data via at least one of these channels, the executable optionally converts it then invokes the “passive” executable as explained above, if it has obtained all of the parameters. entry (or at least those without a default value) of the application. If a first data corresponding to a first input parameter is received while no data is yet available for a second input parameter, the first data can be stored temporarily (at least until the expiration of a first duration (time out according to English terminology) until reception of data corresponding to the other input parameters of the application. The invocation of the application can therefore be carried out asynchronously with respect to the provision. data on a channel.

Dans certains modes de réalisation, la mise en correspondance peut être effectuée manuellement, par exemple après le lancement de l’exécutable actif. Dans de tels modes de réalisation, la mise en correspondance peut être effectuée plusieurs fois (par exemple quand un nouveau canal de données, ou une nouvelle source de données paraît intéressant à un opérateur, ou quand un nouveau consommateur de données, pouvant être intéressé par le résultat de l’exécution de l’application passive est nouvellement présent dans le système). Dans de tels modes de réalisation, pouvant induire une modification des souscriptions aux canaux du bus de données, le module logiciel peut comprendre un désabonnement de certains canaux.In some embodiments, the matching may be performed manually, for example after launching the active executable. In such embodiments, the matching can be performed several times (for example when a new data channel, or a new data source appears interesting to an operator, or when a new data consumer, who may be interested in the result of the execution of the passive application is newly present in the system). In such embodiments, which may induce a modification of subscriptions to data bus channels, the software module may include an unsubscription of certain channels.

De tels modes de réalisation peuvent permettre par exemple de modifier les sources de données utilisées comme paramètres d’entrée de l’application passive, comme de modifier l’utilisation des résultats d’exécution de l’application, sans arrêter l’exécution de l’exécutable actif.Such embodiments may make it possible, for example, to modify the data sources used as input parameters of the passive application, such as to modify the use of the execution results of the application, without stopping the execution of the application. 'active executable.

Le procédé objet de la présente demande a été détaillé ci-dessus.The process which is the subject of the present application has been detailed above.

Un tel procédé, dans au moins certains de ses modes de réalisation; peut par exemple aider un opérateur à construire et à lancer (par exemple de façon simple) des exécutables actifs, ou autonomes, utilisant des procédures automatisées, et éventuellement à combiner facilement ces exécutables (par exemple via des fonctionnalités de chainage d’action offertes par une interface homme machine de la plateforme), par exemple via des fonctionnalités de chainage connues sous le nom de « low code » (comme par exemple l’outil « NodeRed »).Such a method, in at least some of its embodiments; can for example help an operator to build and launch (for example in a simple way) active or autonomous executables, using automated procedures, and possibly to easily combine these executables (for example via action chaining functionalities offered by a human machine interface of the platform), for example via chaining functionalities known as “low code” (such as the “NodeRed” tool).

On présente un exemple d’utilisation du procédé de la présente demande en liaison avec la : Dans cet exemple, on suppose que le système 100 comprend une machine industrielle telle qu’un convoyeur M1 512, M2 514, installée une zone industrielle Z1 510.An example of use of the method of the present application is presented in connection with the : In this example, it is assumed that the system 100 includes an industrial machine such as a conveyor M1 512, M2 514, installed in an industrial zone Z1 510.

Le procédé est mis en œuvre:

  • d’une part pour obtenir une première procédure P1 automatique effectuant un contrôle visuel de la qualité des pièces produites par la machine industrielle, avec arrêt du convoyeur et génération d’un message (email, sms) en cas de défaut,
  • et d’autre part pour obtenir une seconde procédure P2 automatique limitant l’accès à une zone Z1 510 dans laquelle est effectué le contrôle par la procédure P1 car celle-ci peut présenter un danger pour des opérateurs du fait des arrêt et redémarrage du convoyeur.
The process is implemented:
  • on the one hand to obtain a first automatic P1 procedure carrying out a visual check of the quality of the parts produced by the industrial machine, with stopping of the conveyor and generation of a message (email, SMS) in the event of a defect,
  • and on the other hand to obtain a second automatic P2 procedure limiting access to a zone Z1 510 in which the control is carried out by the P1 procedure because this can present a danger for operators due to stopping and restarting of the conveyor .

L’automatisation de la procédure P1 nécessite par exemple le déploiement d’un exécutable actif (ici un Image Docker) I1 créé , selon le procédé de la présente demande, à partir d’une application IA1 d’un fournisseur F1, spécialisé en vision par ordinateur.The automation of the procedure P1 requires for example the deployment of an active executable (here a Docker Image) I1 created, according to the method of the present application, from an application IA1 from a supplier F1, specialized in vision by computer.

Par exemple, l’application passive A1 peut être une application mettant en œuvre des techniques d’intelligence artificielle (IA) pour détecter des fissures dans un objet, et ayant :

  • un paramètre d’entrée au format Base64, JPEG (pour « Joint Photographic Expert Group »), PNG (pour » Portable Network Graphics »), SVG (pour « Scalable Vector Graphics »), ou WebP (pour « Web Picture » ), permettant à l’application d’acquérir une photo de l’objet ;
  • un paramètre de sortie sous forme d’un booléen, ou JSON représentatif de la détection ou non d’une fissure et/ou éventuellement de la localisation sur l’image de la fissure.
For example, the passive application A1 can be an application implementing artificial intelligence (AI) techniques to detect cracks in an object, and having:
  • an input parameter in Base64, JPEG (for “Joint Photographic Expert Group”), PNG (for “Portable Network Graphics”), SVG (for “Scalable Vector Graphics”), or WebP (for “Web Picture”) format, allowing the application to acquire a photo of the object;
  • an output parameter in the form of a Boolean, or JSON representing the detection or not of a crack and/or possibly the location on the image of the crack.

Dans une zone de supervision 530, un collecteur de données 532 en provenance de capteurs collecte 522 en temps réel les données des capteurs. Ainsi, à chaque détection la caméra C1 transmet ses données (ici des images) au collecteur 532 qui les distribue via le bus de données 538 (par exemple sur des canaux spécifiques) aux exécutables I1 534 et I2 536.In a supervision zone 530, a data collector 532 from sensors collects sensor data 522 in real time. Thus, at each detection the camera C1 transmits its data (here images) to the collector 532 which distributes them via the data bus 538 (for example on specific channels) to the executables I1 534 and I2 536.

L’exécutable actif I1 souscrit par exemple à un canal de données S1 véhiculant des données de format base 64 (correspondant par exemple à des images publiées par une caméra C1 512 située à proximité du convoyeur).The active executable I1 subscribes for example to a data channel S1 conveying base 64 format data (corresponding for example to images published by a camera C1 512 located near the conveyor).

L’exécutable actif I1 reçoit ainsi les images de la caméra C1 et les utilise pour invoquer l’application IA1 qui analyse ces images.The active executable I1 thus receives the images from the camera C1 and uses them to invoke the application IA1 which analyzes these images.

Les images peuvent par exemple être véhiculées dans un format binaire via un des canaux ou être véhiculées en format Base64 .The images can for example be conveyed in a binary format via one of the channels or be conveyed in Base64 format.

L’exécutable I1 publie à chaque analyse d’une image par l’application IA1 le résultat (booléen) de cette analyse dans un second canal S2.The executable I1 publishes each time an image is analyzed by the application IA1 the result (Boolean) of this analysis in a second channel S2.

Dans cet exemple, un exécutable « lowcode » LC1 peut en outre être créé pour utiliser les résultats fournis via le canal S2 par l’exécutable I1. Par exemple l’exécutable LC1 peut souscrire au canal S2 et à chaque réception via ce canal d’une donnée (« True » par exemple) indiquant un défaut, il envoie un email ou sms d’alerte à un contact dont les coordonnées sont accessibles à l’exécutable LC1.In this example, a lowcode executable LC1 can additionally be created to use the results provided via the S2 channel by the executable I1. For example, the LC1 executable can subscribe to the S2 channel and each time data is received via this channel (“True” for example) indicating a fault, it sends an email or SMS alert to a contact whose contact details are accessible to the LC1 executable.

Par ailleurs, l’automatisation de la procédure P2 nécessite par exemple le déploiement d’un exécutable actif (ici un Image Docker également) I2 créé, selon le procédé de la présente demande, à partir d’une application IA2 d’un fournisseur F2, spécialisé dans la détection de franchissement.Furthermore, the automation of the P2 procedure requires, for example, the deployment of an active executable (here also a Docker Image) I2 created, according to the method of the present application, from an IA2 application from a supplier F2 , specialized in crossing detection.

L’exécutable actif I2 souscrit par exemple au même canal de données S1 que l’exécutable actif I1 (véhiculant des données de format base 64 correspondant par exemple à des images publiées par la même caméra C1.The active executable I2 subscribes for example to the same data channel S1 as the active executable I1 (carrying base 64 format data corresponding for example to images published by the same camera C1.

L’exécutable actif I2 536 reçoit ainsi les images de la caméra C1 et les utilise pour invoquer l’application IA2 qui analyse ces images pour détecter un franchissement d’un délimitateur de zone (ici Z1). L’exécutable I2 publie à chaque analyse d’une image par l’application IA2 le résultat (booléen) de cette analyse dans un troisième canal S3. Un exécutable de type « low code » (par exemple l’exécutable LC1 ou un autre exécutable) souscrire au canal S3 et à chaque réception via ce canal S3 d’une donnée (« True » par exemple) indiquant un franchissement du délimitateur de la zone Z1, il envoie un email ou sms d’alerte à un contact dont les coordonnées sont accessibles à l’exécutable LC1. L’exécutable IA2 publie une donnée (par exemple une donnée booléenne dont la valeur correspondant à une commande d’arrêt par exemple) dans le canal des contrôleurs des machines M1 et M2 qui à leur tour détectent cette donnée et interprètent cette valeur et arrêtent 524 les convoyeurs M1 et M2 (par exemple des jumeaux numériques des machines M1 et M2).The active executable I2 536 thus receives the images from camera C1 and uses them to invoke the IA2 application which analyzes these images to detect the crossing of a zone delimiter (here Z1). The I2 executable publishes each time an image is analyzed by the IA2 application the result (Boolean) of this analysis in a third S3 channel. A “low code” type executable (for example the LC1 executable or another executable) subscribes to the S3 channel and each time data is received via this S3 channel (“True” for example) indicating a crossing of the delimiter of the zone Z1, it sends an email or SMS alert to a contact whose contact details are accessible to the LC1 executable. The executable IA2 publishes data (for example Boolean data whose value corresponds to a stop command for example) in the channel of the controllers of the machines M1 and M2 which in turn detect this data and interpret this value and stop 524 the M1 and M2 conveyors (e.g. digital twins of the M1 and M2 machines).

L’exemple ci-dessus montre l’application du procédé de la présente demande pour obtenir, de façon au moins partiellement automatique, et plus facilement que certaines solutions de l’art antérieur, des procédures complexes de contrôle, particulière aux besoins d’un système et/ou de ses utilisateurs.The example above shows the application of the method of the present application to obtain, in an at least partially automatic manner, and more easily than certain solutions of the prior art, complex control procedures, particular to the needs of a system and/or its users.

Des exemples d’implémentation ont été testés par les inventeurs, avec par exemple:

  • une machine disposant au minimum de 2 CPU, 2Go de RAM,
  • une latence inférieure à 10ms,
  • un nombre d’ exécutables actifs de l’ordre d’une dizaine ;
  • des connectiques USB ;
  • des capacité de connectivité par Ethernet ;
  • des machines industrielles du client avec automate connectable via Ethernet ou sans fil ;
  • des capteurs connectables via Ethernet ou sans fil ;
  • des applications comportant des techniques d’Intelligence Artificielle et/ou des services, de fournisseurs du marché.
Implementation examples have been tested by the inventors, for example:
  • a machine with at least 2 CPUs, 2GB of RAM,
  • a latency less than 10ms,
  • a number of active executables of around ten;
  • USB connectors;
  • Ethernet connectivity capabilities;
  • customer's industrial machines with PLC connectable via Ethernet or wireless;
  • sensors connectable via Ethernet or wireless;
  • applications comprising Artificial Intelligence techniques and/or services from market suppliers.

Au moins certains modes de réalisation du procédé de la présente demande peuvent aider une entreprise/un opérateur (ou utilisateur) à limiter le coût et/ou l’impact de l'automatisation d’opérations afférentes à son activité, tout en aidant à maintenir un niveau de performance de ces opérations.At least certain embodiments of the method of the present application can help a company/operator (or user) to limit the cost and/or impact of the automation of operations relating to its activity, while helping to maintain a level of performance of these operations.

Au moins certains modes de réalisation du procédé de la présente demande peuvent par exemple aider un industriel à limiter les coûts d’installation ou d’usage de matériel (comme des capteurs ou des serveurs) en lien avec une application (en utilisant par exemple du matériel déjà opérationnel en lien avec d’autres applications).At least certain embodiments of the method of the present application can for example help an industrial company to limit the costs of installation or use of equipment (such as sensors or servers) in connection with an application (for example by using hardware already operational in connection with other applications).

Au moins certains modes de réalisation du procédé de la présente demande peuvent par exemple aider un industriel à limiter la densité en matériel dans un environnement physique tel un site industriel.At least certain embodiments of the method of the present application can, for example, help an industrial company to limit the material density in a physical environment such as an industrial site.

Au moins certains modes de réalisation du procédé de la présente demande peuvent par exemple aider un industriel à limiter l’hétérogénéité de son parc logiciel et/ou matériel et/ou à simplifier les modalités de surveillance, d’évolution et/ou de maintenance de ce parc.At least certain embodiments of the method of the present application can for example help an industrial company to limit the heterogeneity of its software and/or hardware fleet and/or to simplify the methods of monitoring, evolution and/or maintenance of this park.

Au moins certains modes de réalisation du procédé de la présente demande peuvent par exemple aider un industriel à limiter les conflits d’accès à des automates de machines, dont l’impact peut être désastreuxAt least certain embodiments of the method of the present application can, for example, help an industrial company to limit conflicts of access to machine automation, the impact of which can be disastrous.

Au moins certains modes de réalisation du procédé de la présente demande peuvent par exemple aider à obtenir, de façon au moins relativement simple, des analyses de bout en bout de certaines chaînes de production..At least certain embodiments of the method of the present application can for example help to obtain, in at least a relatively simple manner, end-to-end analyzes of certain production chains.

La présente demande peut s’’appliquer à des applications logicielles « passives » diverses et notamment des applications en lien avec tout type d’équipement (comme de type « IoT » (pour « Internet of Things » selon la terminologie anglaise) ou industriel, fixe ou mobile, etc..)This application may apply to various “passive” software applications and in particular applications related to any type of equipment (such as “IoT” type (for “Internet of Things” according to English terminology) or industrial, fixed or mobile, etc.)

Par exemple, le procédé de la présente demande peut être mise en œuvre dans les sites industriels possédant un parc de machines équipées d’automates, pour aider à automatiser des procédures complexes. Ainsi, il peut par exemple créer des exécutables actifs à partir d’applications « passives » de divers fournisseurs, par exemple des fournisseurs spécialisés dans les problématiques suivantes :For example, the process of the present application can be implemented in industrial sites having a fleet of machines equipped with automation, to help automate complex procedures. For example, it can create active executables from “passive” applications from various suppliers, for example suppliers specializing in the following issues:

Contrôle de sécurité de zone avec arrêt automatisé et notification des alertes au personnel habilité ;Area security control with automated shutdown and alert notification to authorized personnel;

Contrôle de qualité des pièces usinées à la sortie de machines d’usinage avec isolement des pièces défectueuses (par exemple dans des zones différentes selon leur niveau et/ou type de défaut) ;Quality control of machined parts at the exit of machining machines with isolation of defective parts (for example in different areas depending on their level and/or type of defect);

Application de calibrage automatique après détection de défaut ;Application of automatic calibration after fault detection;

Détection préventive de panne via des capteurs de vibration et des applications mettant en œuvre des techniques d’’Intelligence Artificielles associéesPreventive fault detection via vibration sensors and applications implementing associated Artificial Intelligence techniques

Collecte de données et génération de statistiques et aux métriquesData collection and generation of statistics and metrics

Modifications de procédures de production à la volée et mesure des impacts de différentes versions de procédures.Modifications to production procedures on the fly and measurement of the impacts of different versions of procedures.

Claims (10)

Procédé de déploiement au moins partiellement automatique d’une application logicielle passive dans un réseau de communication, ledit procédé comprenant :
  • Une obtention du code binaire de ladite application passive et d’une désignation du ou des type(s) de données consommées et/ou produites par ladite application ;
  • Une sélection au moins partiellement automatique d’au moins un accès aux données d’au moins une source de données dudit réseau et/ou vers au moins un consommateur de données dudit réseau, ladite sélection tenant compte dudit au moins un type désigné et d’au moins un type de données attendu via ledit accès;
  • Une création automatique d’un exécutable actif dont au moins un processus logiciel comprend une invocation de ladite application passive avec en paramètre(s) d’entrée au moins une donnée obtenue via ledit accès et/ou avec en paramètre(s) de sortie au moins une donnée à émettre via ledit accès.
Method for at least partially automatic deployment of a passive software application in a communications network, said method comprising:
  • Obtaining the binary code of said passive application and a designation of the type(s) of data consumed and/or produced by said application;
  • An at least partially automatic selection of at least one access to data from at least one data source of said network and/or to at least one data consumer of said network, said selection taking into account said at least one designated type and at least one type of data expected via said access;
  • An automatic creation of an active executable of which at least one software process includes an invocation of said passive application with as input parameter(s) at least one piece of data obtained via said access and/or with as output parameter(s) at least one piece of data to be transmitted via said access.
Procédé selon la revendication 1 où ledit procédé comprend un ajout dans une bibliothèque d’exécutables actifs dudit réseau de communication dudit exécutable actif créé.A method according to claim 1 wherein said method comprises adding said created active executable to an active executable library of said communication network. Procédé selon la revendication 2 où ledit exécutable ajouté est associé dans ladite bibliothèque à ladite au moins une source de données et/ou audit au moins un consommateur de données.Method according to claim 2 wherein said added executable is associated in said library with said at least one data source and/or said at least one data consumer. Procédé selon l’une quelconque des revendications 1 à 3 où ledit procédé comprend un lancement dudit exécutable actif ou une proposition d’un tel lancement.Method according to any one of claims 1 to 3 wherein said method comprises launching said active executable or proposing such a launch. Procédé selon l’une quelconque des revendications 1 à 4 où ladite désignation est obtenue par accès à un fichier descriptif des données consommées et/ou produites par ladite application.Method according to any one of claims 1 to 4 where said designation is obtained by access to a descriptive file of the data consumed and/or produced by said application. Procédé selon l’une quelconque des revendications 1 à 5 où ledit accès est un accès à une base de données.Method according to any one of claims 1 to 5 where said access is access to a database. Procédé selon l’une quelconque des revendications 1 à 5 où ledit au moins un type de données attendu via ledit accès est obtenu par scrutation dudit réseau.Method according to any one of claims 1 to 5 where said at least one type of data expected via said access is obtained by scanning said network. Procédé selon l’une quelconque des revendications 1 à 5 ou 7 où ledit accès est un canal d’un bus de données dudit réseau.Method according to any one of claims 1 to 5 or 7 where said access is a channel of a data bus of said network. Procédé selon la revendication 8 où lesdites données obtenues via ledit canal sont obtenues par souscription dudit processus logiciel audit canal de données pour recevoir les données en provenance de ladite au moins une source de données.A method according to claim 8 wherein said data obtained via said channel is obtained by subscribing said software process to said data channel to receive data from said at least one data source. Procédé selon l’une des revendication 8 ou 9 où ledit processus logiciel comprend une transmission desdites données à émettre sur ledit canal.Method according to one of claims 8 or 9 where said software process comprises a transmission of said data to be transmitted on said channel.
FR2210691A 2022-10-17 2022-10-17 Method for deploying at least one software application, electronic device and corresponding computer program product Pending FR3140970A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2210691A FR3140970A1 (en) 2022-10-17 2022-10-17 Method for deploying at least one software application, electronic device and corresponding computer program product

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2210691 2022-10-17
FR2210691A FR3140970A1 (en) 2022-10-17 2022-10-17 Method for deploying at least one software application, electronic device and corresponding computer program product

Publications (1)

Publication Number Publication Date
FR3140970A1 true FR3140970A1 (en) 2024-04-19

Family

ID=84362168

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2210691A Pending FR3140970A1 (en) 2022-10-17 2022-10-17 Method for deploying at least one software application, electronic device and corresponding computer program product

Country Status (1)

Country Link
FR (1) FR3140970A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054716A1 (en) * 2010-08-24 2012-03-01 Thales Deployment method and device and assistance in deploying components forming an embedded real time system
US20190286424A1 (en) * 2017-06-03 2019-09-19 Apple Inc. Integration of learning models into a software development system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054716A1 (en) * 2010-08-24 2012-03-01 Thales Deployment method and device and assistance in deploying components forming an embedded real time system
US20190286424A1 (en) * 2017-06-03 2019-09-19 Apple Inc. Integration of learning models into a software development system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
VAN ENGELEN ROBERT: "Code generation techniques for developing light-weight XML Web services for embedded devices", PROCEEDINGS ACM SAC, 14 March 2004 (2004-03-14), 2 Penn Plaza, Suite 701New YorkNY10121-0701USA, pages 854 - 861, XP055963746, ISBN: 978-1-58113-812-2, Retrieved from the Internet <URL:https://dl.acm.org/doi/pdf/10.1145/967900.968075> [retrieved on 20230509], DOI: 10.1145/967900.968075 *

Similar Documents

Publication Publication Date Title
US9058571B2 (en) Tool for automated transformation of a business process definition into a web application package
US10635433B2 (en) Cross application behavior customization
US8843832B2 (en) Architecture, system and method for a real-time collaboration interface
EP1193948A2 (en) Communications system based on the SOAP protocol
Indrasiri et al. gRPC: up and running: building cloud native applications with Go and Java for Docker and Kubernetes
Helu et al. Scalable data pipeline architecture to support the industrial internet of things
CN111447170B (en) Data processing method and system, computer system and computer readable medium
US11294740B2 (en) Event to serverless function workflow instance mapping mechanism
Di Martino et al. A semantic IoT framework to support RESTful devices' API interoperability
EP3555745B1 (en) Device for loading data into computer processing units from a data source
EP1255409A1 (en) Conversion between textual and binary BIFS (Binary Format for scene) format
CN116860266A (en) Application containerized deployment method and device, electronic equipment and storage medium
Bader et al. Towards Enabling Cyber-Physical Systems in Brownfield Environments: Leveraging Environmental Information to Derive Virtual Representations of Unconnected Assets
Indrasiri et al. Design Patterns for Cloud Native Applications
EP3846417B1 (en) Method for sharing iot functionalities and device for sharing
CN102479082A (en) Method and system for providing client end interface information, and client end interface generating device
FR3140970A1 (en) Method for deploying at least one software application, electronic device and corresponding computer program product
CN109218338B (en) Information processing system, method and device
US11663114B2 (en) Method and system for automatically testing event-driven microservices
CN111897565A (en) Data processing method, device and equipment based on Internet of things
EP3506566B1 (en) Method and device for remote monitoring of multiple connected objects
CN114679458A (en) Privatization deployment method and device suitable for multiple clouds
CN112783903B (en) Method and device for generating update log
CN112698817A (en) Message access method, device, system and storage medium based on micro-service architecture
US20110213826A1 (en) Secretly transmitting messages over public channels

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240419