FR2898698A1 - Equipment`s e.g. heater, electronic module and remote server communication system for e.g. LAN network, has server applications each deciding transmission of request and transmitting reply to other application upon receiving request - Google Patents

Equipment`s e.g. heater, electronic module and remote server communication system for e.g. LAN network, has server applications each deciding transmission of request and transmitting reply to other application upon receiving request Download PDF

Info

Publication number
FR2898698A1
FR2898698A1 FR0602287A FR0602287A FR2898698A1 FR 2898698 A1 FR2898698 A1 FR 2898698A1 FR 0602287 A FR0602287 A FR 0602287A FR 0602287 A FR0602287 A FR 0602287A FR 2898698 A1 FR2898698 A1 FR 2898698A1
Authority
FR
France
Prior art keywords
application
module
communication
server
during
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.)
Granted
Application number
FR0602287A
Other languages
French (fr)
Other versions
FR2898698B1 (en
Inventor
Simon Bretin
Sebastien Buffo
Thomas Friol
Gillo Malpart
Sebastien Moran
Olivier Prouvost
David Sciamma
Vincent Thevenot
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.)
Sierra Wireless Solutions and Services SA
Original Assignee
Anyware Technologies 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 Anyware Technologies SA filed Critical Anyware Technologies SA
Priority to FR0602287A priority Critical patent/FR2898698B1/en
Priority to US12/282,950 priority patent/US8484285B2/en
Priority to EP07731145A priority patent/EP2010975A2/en
Priority to PCT/FR2007/000453 priority patent/WO2007104868A2/en
Publication of FR2898698A1 publication Critical patent/FR2898698A1/en
Application granted granted Critical
Publication of FR2898698B1 publication Critical patent/FR2898698B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25168Domotique, access through internet protocols
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25222Mailbox, email, mail system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Abstract

The system has a communication server application automatically communicating with an equipment to be supervised e.g. vehicle, and a remote server (140) via communication units (120, 125). Another communication server application makes the server to communicate with an electronic module. Each application decides transmission of a request to the other application based on a preset criterion, and transmits a reply to the other application, upon receiving the request. The module and the server transmit the reply encapsulating data or parameters of the device, to server or module, respectively. An independent claim is also included for a method for communication between an electronic module and a remote server.

Description

PROCEDE DE DEVELOPPEMENT D'UNE APPLICATION MACHINE A MACHINE 5 10 LaMETHOD FOR DEVELOPING A MACHINE MACHINE APPLICATION

présente invention concerne un procédé de développement d'une application machine à machine. Elle s'applique, en particulier, au contrôle et à la commande, à distance, d'équipements bureautiques, domestiques ou industriels, et de véhicules ou de bâtiments. Dans le domaine du contrôle et de la commande à distance d'un équipement, 15 généralement, un opérateur de surveillance fait régulièrement un passage de maintenance pour vérifier le bon fonctionnement de l'équipement et, en cas de défaut, alerter un service technique. Cette procédure présente de nombreux inconvénients. D'une part, le délai de détection d'une panne peut être important et, d'autre part, la qualité d'intervention du service technique est soumise à la qualité du rapport transmis par l'opérateur de surveillance. 20 Dans des systèmes plus automatisés, il est connu de munir l'équipement d'un module de communication à distance qui surveille l'état de l'équipement et qui, en fonction de franchissement de seuils, déclenche une alarme sur un terminal distant, par exemple en émettant un mini-message, connu sous le nom de SMS (pour short message system ou système de message court) à destination du téléphone mobile d'un responsable d'entretien. 25 Ces systèmes présentent de nombreux inconvénients. D'une part, ils ne permettent pas une gestion centralisée d'un ensemble d'équipements. D'autre part, ils sont soumis à la disponibilité du réseau de communication de l'alarme. De plus, ils demandent, pour leur programmation, l'intervention d'un informaticien qualifié. Enfin, ils ne peuvent pas être reprogrammés à distance. 30 La présente invention vise à remédier à ces inconvénients. A cet effet, selon un premier aspect, la présente invention vise un procédé de développement d'une application machine à machine entre un module de communication destiné à être associé à un équipement et un système informatique, caractérisé en ce qu'il comporte : 35 - une étape de définition de données logiques de l'application destinée à s'exécuter sur le module de communication, - une étape de mise en correspondance de chaque donnée logique à au moins un moyen d'acquisition ou de commande, physique ou logiciel, - une étape de définition de paramètres de configuration du module de communication qui permettent son interfaçage avec l'équipement, une étape de définition de données logiques de l'application destinée à s'exécuter sur le système informatique, une étape de mise en correspondance de chaque donnée logique à au moins un moyen de stockage du système informatique, une étape de définition de la communication entre le module et le système informatique, - une étape de génération de l'application qui s'exécutera sur le module et de celle qui s'exécutera sur le système informatique et - une étape de téléchargement sur le module de l'application qui s'exécutera sur le module et sur le système informatique, de celle qui s'exécutera sur le système informatique. Selon des caractéristiques particulières, au cours d'au moins une des étapes de définition de données logiques, on définit des équipements logiques manipulés par l'application, puis on leur ajoute des variables représentatives de leurs caractéristiques logiques.  The present invention relates to a method of developing a machine-to-machine application. It applies, in particular, to the remote control and control of office automation equipment, domestic or industrial, and vehicles or buildings. In the field of remote control and control of equipment, generally, a monitoring operator regularly makes a maintenance pass to check the correct operation of the equipment and, in the event of a fault, to alert a technical service. This procedure has many disadvantages. On the one hand, the delay of detection of a failure can be important and, on the other hand, the quality of intervention of the technical service is subject to the quality of the report transmitted by the surveillance operator. In more automated systems, it is known to provide the equipment with a remote communication module which monitors the state of the equipment and which, as a function of crossing thresholds, triggers an alarm on a remote terminal, for example by sending a mini-message, known as SMS (short message system or short message system) to the mobile phone of a maintenance manager. These systems have many disadvantages. On the one hand, they do not allow centralized management of a set of equipment. On the other hand, they are subject to the availability of the communication network of the alarm. In addition, they ask, for their programming, the intervention of a qualified computer scientist. Finally, they can not be reprogrammed remotely. The present invention aims to overcome these disadvantages. For this purpose, according to a first aspect, the present invention is directed to a method for developing a machine-to-machine application between a communication module intended to be associated with an equipment item and a computer system, characterized in that it comprises: a step of defining logical data of the application intended to execute on the communication module, a step of mapping each logical data item to at least one acquisition or control means, physical or software, a step of defining configuration parameters of the communication module that allow its interfacing with the equipment, a step of defining logical data of the application intended to execute on the computer system, a step of mapping of the communication module; each logical data to at least one storage means of the computer system, a step of defining the communication between the module and the system i computer, - a step of generating the application that will run on the module and that will run on the computer system and - a download step on the application module that will run on the module and on the computer system, the one that will run on the computer system. According to particular characteristics, during at least one of the logical data definition steps, logical devices manipulated by the application are defined, and variables representative of their logical characteristics are added thereto.

Selon des caractéristiques particulières, au cours d'au moins une des étapes de définition de données logiques, on met en oeuvre un éditeur qui permet de créer, modifier et supprimer des équipements logiques, sans référence à leur réalisation électronique, en définissant ses variables, au travers de paramètres, cette définition de variables et de paramètres étant contrainte par la compatibilité avec les fonctionnalités offertes par l'éditeur.  According to particular characteristics, during at least one of the logical data definition steps, an editor is used which makes it possible to create, modify and delete logical equipments, without reference to their electronic realization, by defining its variables, through parameters, this definition of variables and parameters being constrained by the compatibility with the functionalities offered by the editor.

Selon des caractéristiques particulières, avec ledit éditeur, la définition de données logiques se fait au moyen d'écran graphique guidant l'utilisateur en lui proposant des choix pour certains paramètres et en le laissant libre pour d'autres. Selon des caractéristiques particulières, au moins l'une des étapes de mise en correspondance et de définition de communication est réalisée au moyen d'interfaces graphiques contraignant l'utilisateur par rapport à la réalité physique du module de communication qu'il utilise. Selon des caractéristiques particulières, au cours d'au moins une l'étape de mise en correspondance, on met en oeuvre un éditeur qui permet d'associer chaque variable définie au cours de l'étape de définition de données logiques avec un moyen de stockage, cet éditeur limitant les choix en fonction des paramètres, des variables et des fonctionnalités offertes par le module de communication qui est programmé.  According to particular characteristics, with said editor, the definition of logical data is done by means of a graphic screen guiding the user by proposing him choices for certain parameters and leaving him free for others. According to particular characteristics, at least one of the mapping and communication definition steps is performed by means of graphic interfaces constraining the user with respect to the physical reality of the communication module that he uses. According to particular characteristics, during at least one of the mapping step, an editor is implemented which makes it possible to associate each variable defined during the step of defining logical data with a storage means. , this editor limiting the choices according to the parameters, the variables and the functionalities offered by the communication module which is programmed.

Selon des caractéristiques particulières, le procédé te que succinctement exposé ci-dessus comporte au moins une étape de définition de logique événementielle, au cours de laquelle on définit le fonctionnement de l'application informatique et les conditions de réalisation de ses actions.  According to particular features, the method briefly described above comprises at least one step of defining event logic, during which the operation of the computer application and the conditions for carrying out its actions are defined.

Selon des caractéristiques particulières, au moins une étape de définition de logique événementielle se fait de manière graphique en sélectionnant les données logiques à contrôler, en associant une notion de logique binaire et finalement en choisissant une action à exécuter parmi celles disponibles, les données logiques à contrôler, les relations de logique binaire et les actions à exécuter étant représentées par des éléments graphiques spécifiques. Selon des caractéristiques particulières, au cours de l'étape de définition de la communication entre le module et le système informatique, si au moins deux canaux de communication ont été définis, on définit le choix dynamique du canal de communication à utiliser.  According to particular characteristics, at least one event logic definition step is done graphically by selecting the logical data to be controlled, by associating a notion of binary logic and finally by choosing an action to be executed among those available, the logical data to control, the binary logic relations and the actions to be executed being represented by specific graphic elements. According to particular characteristics, during the step of defining the communication between the module and the computer system, if at least two communication channels have been defined, the dynamic choice of the communication channel to be used is defined.

Selon des caractéristiques particulières, au cours de l'étape de génération de l'application qui s'exécutera sur le module de communication et de l'application qui s'exécutera sur le système informatique, on effectue un assemblage de briques ou composants logicielles génériques ou spécifiques au module et au système informatique. Selon des caractéristiques particulières, au cours de l'étape de génération de l'application qui s'exécutera sur le module de communication, l'application est générée dans le langage natif du module de communication. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre, faite, dans un but explicatif et nullement limitatif en regard des dessins annexés dans lesquels : - la figure 1 représente, schématiquement, une implantation d'un mode de réalisation particulier du dispositif objet de la présente invention, - la figure 2 représente, sous forme d'un logigramme, un mode de réalisation particulier du procédé objet de la présente invention et -la figure 3 représente, sous forme d'un logigramme, un mode de réalisation particulier d'un procédé de programmation du dispositif objet de la présente invention. On observe, en figure 1, un équipement à superviser 100, un module électronique 110 associé à l'équipement 100 et comportant un contrôleur 115 et, préférentiellement, au moins deux moyens de communication 120 et 125, deux canaux de communication 130 et 135, un serveur d'exploitation 140, comportant deux moyens de communication 155 et 160 et un contrôleur 170 et conservant une base de données 145, un terminal de programmation 150 comportant un moyen de communication 165 et un terminal client 180 comportant un moyen d'affichage (non représenté) des données reçues de la part du serveur 140.  According to particular characteristics, during the generation step of the application that will run on the communication module and the application that will run on the computer system, it performs a brick assembly or generic software components or specific to the module and the computer system. According to particular characteristics, during the generation step of the application that will run on the communication module, the application is generated in the native language of the communication module. Other advantages, aims and features of the present invention will become apparent from the description which follows, made for an explanatory and non-limiting purpose with reference to the appended drawings, in which: FIG. 1 represents, schematically, an implementation of a Particular embodiment of the device which is the subject of the present invention; FIG. 2 represents, in the form of a logic diagram, a particular embodiment of the method which is the subject of the present invention; and FIG. 3 represents, in the form of a logic diagram. , a particular embodiment of a programming method of the device object of the present invention. FIG. 1 shows a device to be monitored 100, an electronic module 110 associated with the equipment 100 and comprising a controller 115 and, preferably, at least two communication means 120 and 125, two communication channels 130 and 135, an operating server 140, comprising two communication means 155 and 160 and a controller 170 and maintaining a database 145, a programming terminal 150 comprising a communication means 165 and a client terminal 180 comprising a display means ( not shown) data received from the server 140.

L'équipement à superviser 100 peut être fixe, comme, par exemple, une chaudière, un équipement bureautique ou un panneau d'affichage électronique, ou mobile, comme, par exemple, un équipement d'un véhicule d'une flotte de véhicules. Préférentiellement, l'équipement 100 comporte un contrôleur 101 et met en oeuvre des logiciels, en particulier pour contrôler l'état de capteurs 102 et/ou d'actionneurs 104 et pour communiquer par l'intermédiaire d'au moins un connecteur 103. Le module électronique 110 est adapté à recevoir, par l'intermédiaire du connecteur 103, des données de la part de l'équipement 100 et notamment des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement 100.  The equipment to be supervised 100 can be fixed, such as, for example, a boiler, an office equipment or an electronic billboard, or mobile, such as, for example, a vehicle equipment of a fleet of vehicles. Preferably, the equipment 100 comprises a controller 101 and implements software, in particular for controlling the state of sensors 102 and / or actuators 104 and for communicating via at least one connector 103. electronic module 110 is adapted to receive, via the connector 103, data from the equipment 100 and in particular signals representative of states or operating parameters of said equipment 100.

Le module électronique 110 est également adapté à envoyer des commandes à l'équipement 100, par l'intermédiaire du connecteur 103. Par ailleurs, les moyens de communication 120 et 125 permettent au module électronique 110 de communiquer, par l'intermédiaire des deux canaux de communication 130 et 135, avec le serveur 140 et, éventuellement, avec le terminal de programmation 150, sachant qu'un autre canal (non représenté) peut être utilisé pour la communication entre le module électronique 110 et le terminal de programmation 150. Les canaux de communication 130 et 135 sont, par exemple, des réseaux de téléphonie sans fil, par exemple de type GSM et GPRS, respectivement. Le module électronique 110 est adapté à télécharger des logiciels par l'intermédiaire de l'un, au moins, des réseaux 130 et 135 à partir du serveur 140 et/ou du terminal de programmation 150, sous commande extérieure, telle qu'un logiciel tiers ou un SMS. Le serveur 140 est de type connu et est adapté à interroger chaque module 110, à recevoir ses réponses, à agréger les données reçues et à déclencher des consignes ou des alarmes, en fonction des données reçues ou des données agrégées. Le serveur 140 est aussi adapté à fournir des données à des terminaux clients en se comportant comme serveur de la toile. Le terminal de programmation 150 est adapté à programmer des applications pour chaque module 110 et des applications pour chaque serveur 140. Le terminal de programmation 150 met en oeuvre une suite de développement détaillée plus loin dans la description. Le module électronique 110 et le serveur 140 et, plus précisément, les contrôleurs 115 et 170 sont adaptés à mettre en oeuvre, entre eux, le procédé de communication objet de la présente invention, tel que présenté en regard du logigramme de la figure 2, après une phase de programmation illustrée en figure 3.  The electronic module 110 is also adapted to send commands to the equipment 100, via the connector 103. Moreover, the communication means 120 and 125 allow the electronic module 110 to communicate, via the two channels. 130 and 135, with the server 140 and, optionally, with the programming terminal 150, knowing that another channel (not shown) can be used for the communication between the electronic module 110 and the programming terminal 150. Communication channels 130 and 135 are, for example, wireless telephony networks, for example GSM and GPRS, respectively. The electronic module 110 is adapted to download software via at least one of the networks 130 and 135 from the server 140 and / or the programming terminal 150, under external control, such as software third party or an SMS. The server 140 is of known type and is adapted to interrogate each module 110, to receive its responses, to aggregate the received data and to trigger instructions or alarms, according to the data received or the aggregated data. The server 140 is also adapted to provide data to client terminals by acting as the server of the web. The programming terminal 150 is adapted to program applications for each module 110 and applications for each server 140. The programming terminal 150 implements a development suite detailed later in the description. The electronic module 110 and the server 140 and, more precisely, the controllers 115 and 170 are adapted to implement, between themselves, the communication method which is the subject of the present invention, as presented with reference to the logic diagram of FIG. 2, after a programming phase illustrated in Figure 3.

Le terminal client 180, de type quelconque, téléphone mobile, assistant personnel numérique, ordinateur personnel ou serveur de réseau, par exemple, permet à un utilisateur, ou opérateur, d'accéder à la base de données 145 conservée par le serveur 140 et, en particulier, aux données concernant chacun des modules 110, après authentification et d'afficher ces données. Dans cette communication, le serveur 140 se comporte comme serveur de la toile pour permettre l'accès aux données avec une interface bien connue de tout utilisateur, c'est à dire un logiciel de navigation sur internet.  The client terminal 180, of any type, a mobile telephone, a personal digital assistant, a personal computer or a network server, for example, enables a user or operator to access the database 145 kept by the server 140 and, in particular, to the data concerning each of the modules 110, after authentication and to display these data. In this communication, the server 140 behaves as server of the web to allow access to data with an interface well known to any user, ie a browser software on the internet.

On observe, en figure 2, une étape 205 d'association, selon des techniques connues, du module électronique 110 doté du contrôleur programmable 115 avec ledit équipement 100 de telle manière que ledit module électronique 110 reçoive des signaux représentatifs d'états ou de paramètres de fonctionnement dudit équipement 100. Puis, au cours d'une étape 210, on implante une application de serveur de communication, par exemple de serveur de la toile, sur le module électronique 110. Par exemple, le serveur embarqué est programmé en Java (marque déposée) et possède une taille très réduite. On observe que ce serveur embarqué, caractéristique de la présente invention, permet la supervision et le contrôle à distance du module 110 et de l'équipement associé 100. A partir de l'étape 210, le module électronique 110 se comporte comme un serveur de communication, par exemple un serveur de la toile, ou serveur web . On rappelle qu'un serveur de communication comporte un logiciel qui répond à des requêtes provenant de clients, par exemple avec des moyens de communication dits http (acronyme de hypertext transfer protocol pour protocole de transfert hypertexte) ou des minimessages, connus sous le nom de SMS (acronyme de Short Message System, pour système à messages courts). On observe que, préférentiellement, le module électronique 110 ne fournit pas de page mais des données à insérer dans des pages fournies aux clients par le serveur 140. Ces données peuvent être fournies, par exemple, en SMS. Un déclenchement de communication entre le module 110 et le serveur 140 peut avoir lieu dans différentes circonstances : - en cas de détection d'événements déclenchant, par le module 110, par exemple en fonction de seuils appliqués à des capteurs associés à l'équipement 100, étape 212 ; par exemple, le module électronique 110 effectue une étape de comparaison des états ou paramètres de l'équipement 100 avec des valeurs prédéterminées qu'il conserve en mémoire et, en fonction du résultat de l'étape de comparaison, il déclenche une alarme sous forme d'une requête émise au serveur distant 140, en fonction d'un calendrier prédéterminé de communications entre le module 110 et le serveur 140, ce calendrier pouvant être gérer par le module 110 ou par le serveur 140 (cas exposé en figure 2, en étape 255), - en fonction de requêtes transmises par le terminal client 180, au cas où le données 35 conservées dans la base de données 145 seraient considérées comme obsolètes au vu de la requête reçue, étapes 250.  FIG. 2 shows a step 205 of association, according to known techniques, of the electronic module 110 provided with the programmable controller 115 with said equipment 100 in such a way that said electronic module 110 receives signals representative of states or parameters of operation of said equipment 100. Then, during a step 210, a communication server application, for example a web server, is implemented on the electronic module 110. For example, the embedded server is programmed in Java ( trademark) and has a very small size. It is observed that this embedded server, characteristic of the present invention, allows the remote supervision and control of the module 110 and the associated equipment 100. From step 210, the electronic module 110 behaves like a server. communication, for example a server of the web, or web server. It is recalled that a communication server includes software that responds to requests from clients, for example with means of communication called http (acronym for hypertext transfer protocol for hypertext transfer protocol) or minimessages, known as SMS (acronym for Short Message System, for short message system). It is observed that, preferably, the electronic module 110 does not provide a page but data to be inserted into pages supplied to the clients by the server 140. This data may be provided, for example, in SMS. A communication trip between the module 110 and the server 140 may take place in different circumstances: - in the event of detection of triggering events, by the module 110, for example as a function of thresholds applied to sensors associated with the equipment 100 step 212; for example, the electronic module 110 performs a step of comparing the states or parameters of the equipment 100 with predetermined values that it stores in memory and, depending on the result of the comparison step, it triggers an alarm in the form of a request sent to the remote server 140, according to a predetermined schedule of communications between the module 110 and the server 140, this calendar can be managed by the module 110 or the server 140 (case shown in Figure 2, in step 255), - according to requests transmitted by the client terminal 180, in the case where the data 35 stored in the database 145 would be considered as obsolete in view of the request received, steps 250.

Au cours d'une étape 215, le serveur qui veut initier une communication avec l'autre serveur, c'est à dire soit le serveur de communication du module 110, soit le serveur 140, détermine le meilleur support de communication entre le module électronique 110 et le serveur 140. Au cours de cette étape 215, on considère les critères suivants dans l'ordre de priorité décroissante : la disponibilité des canaux de communication, l'urgence de transmission du flux de données à transmettre, la tarification des opérateurs qui gèrent les différents canaux de communication. Grâce à cette étape, on garantit pratiquement le maintien de la capacité de communication entre le module électronique 110 et le serveur 140, même si l'un des canaux est indisponible. En fonction du canal de communication sélectionné au cours de l'étape 215, au cours de l'étape 220, on effectue la commutation de protocole de communication correspondant, le cas échéant. Puis, au cours d'une étape 225, on met en communication le module électronique 110 et ledit serveur distant 140, par exemple en mettant en oeuvre le protocole de transfert hypertexte http. Au cours d'une étape 230, le serveur 140 transmet une requête à destination du module 110 qui la reçoit, par exemple en mettant en oeuvre le protocole de transfert hypertexte http. Préférentiellement, pour chaque requête reçue, le module électronique 110 vérifie, pour des raisons de sécurité, au cours de l'étape 230, l'adresse du serveur émetteur de la requête. Au cours d'une étape 235, le module électronique 110 analyse la requête reçue, récupère les données requises, notamment auprès de l'équipement 100, traite ces données et émet une réponse à destination du serveur 140. Cette réponse encapsule ainsi des informations représentatives des états ou paramètres de l'équipement 100. Pour la description des étapes 230 et 235, on a considéré le cas où le serveur 140 initie la communication. Dans l'autre cas, dans lequel c'est le serveur de communication du module 110 qui initie la communication, l'étape 230 n'a pas lieu et, au cours de l'étape 235, le module électronique 110 récupère les données à transmettre, notamment auprès de l'équipement 100, traite ces données et émet un message à destination du serveur 140. Cette réponse encapsule ainsi des informations représentatives des états ou paramètres de l'équipement 100. Au cours d'une étape 240, le serveur 140 agrège et distribue les données collectées depuis les différents modules électroniques 110 vers les personnes, terminaux clients, bases de données et applications informatiques concernées. Cette agrégation comporte au moins la constitution d'un historique d'états des équipements 100 associés aux modules électroniques 110 et le déclenchement d'alerte en cas de panne, de besoin de maintenance préventive, par exemple de besoin de fourniture de consommable. Ces alertes sont déterminées en fonction des informations représentatives des états ou paramètres de l'équipement 100 reçues au cours de l'étape 235 ou agrégées au cours de l'étape 240. Lors d'une requête arrivant au serveur 140 de la part d'un terminal client 180, une base de données ou une application, au cours d'une étape 245, on vérifie que l'émetteur de cette requête est autorisé à l'émettre, selon des techniques connues. On observe que la requête émise par le terminal client 180 est une requête émise par un navigateur, le serveur 140 agissant alors en serveur de la toile. Puis, au cours d'une étape 250, on détermine si une requête à l'équipement 110 est nécessaire, en fonction de la requête reçue et de la durée écoulée depuis la dernière mise à jour des données concernant ce module et d'au moins un paramètre de configuration du serveur. Ainsi, on évite la lecture de la mémoire du module de l'équipement ou la mémoire de l'équipement si on dispose d'information suffisamment récente, par exemple dans le cas d'une requête concernant des données dont on connaît la valeur et l'évolution possible. Par exemple, un rafraîchissement de l'état du niveau de toner chaque semaine peut suffire. Si le résultat de l'étape 250 est positif, une requête à l'équipement 100 étant nécessaire, on passe à l'étape 215. Sinon, on passe à l'étape 255 au cours de laquelle on détermine la prochaine échéance d'une requête à adresser à l'équipement 100, on effectue la lecture des données requises par l'utilisateur, dans la base de données 145 et/ou on réalise une extrapolation des données récentes conservées dans la base de données et on fournit au terminal client 180, sous forme d'une page de la toile, les données requises par le terminal client, le terminal client affichant alors ces données. En réponse aux requêtes qu'il reçoit, le serveur 140 agrége des données provenant de bases de données et des données dynamiques physiques transmises par les modules électroniques 110, pour, par exemple, définir des fiches clients qu'il transmet à l'émetteur de la requête reçue au cours de l'étape 245. Au cours d'une étape 255, on détermine la prochaine date de requête à adresser au module électronique et lorsque cette date survient, on passe à l'étape 212.  During a step 215, the server that wants to initiate a communication with the other server, that is to say either the communication server of the module 110 or the server 140, determines the best communication medium between the electronic module 110 and the server 140. During this step 215, the following criteria are considered in the order of decreasing priority: the availability of the communication channels, the urgency of transmission of the data stream to be transmitted, the pricing of the operators who manage the different communication channels. With this step, it virtually ensures the maintenance of the communication capacity between the electronic module 110 and the server 140, even if one of the channels is unavailable. Depending on the communication channel selected in step 215, in step 220, the corresponding communication protocol switching is performed, if necessary. Then, during a step 225, the electronic module 110 is placed in communication with said remote server 140, for example by implementing the hypertext transfer protocol http. During a step 230, the server 140 transmits a request to the module 110 which receives it, for example by implementing the hypertext transfer protocol http. Preferably, for each request received, the electronic module 110 checks, for security reasons, in step 230, the address of the server issuing the request. During a step 235, the electronic module 110 analyzes the received request, retrieves the required data, in particular from the equipment 100, processes this data and sends a response to the server 140. This response thus encapsulates representative information. state or parameter of the equipment 100. For the description of the steps 230 and 235, the case where the server 140 initiates the communication was considered. In the other case, in which it is the communication server of the module 110 which initiates the communication, the step 230 does not take place and, during the step 235, the electronic module 110 retrieves the data at transmit, in particular to the equipment 100, processes this data and sends a message to the server 140. This response thus encapsulates information representative of the states or parameters of the equipment 100. During a step 240, the server 140 aggregates and distributes the data collected from the various electronic modules 110 to the persons, client terminals, databases and computer applications concerned. This aggregation comprises at least the constitution of a state of equipment history 100 associated with the electronic modules 110 and the triggering of alert in case of failure, the need for preventive maintenance, for example the need for supply of consumable. These alerts are determined according to the information representative of the states or parameters of the equipment 100 received during the step 235 or aggregated during the step 240. When a request arrives at the server 140 from a client terminal 180, a database or an application, during a step 245, it is verified that the issuer of this request is authorized to issue it, according to known techniques. It can be seen that the request sent by the client terminal 180 is a request sent by a browser, the server 140 then acting as the server of the web. Then, during a step 250, it is determined whether a request to the equipment 110 is necessary, according to the request received and the time elapsed since the last update of the data concerning this module and at least a server configuration parameter. Thus, the reading of the memory of the equipment module or the memory of the equipment is avoided if there is sufficiently recent information available, for example in the case of a query concerning data whose value and value are known. possible evolution. For example, a refresh of the state of the toner level each week may be sufficient. If the result of the step 250 is positive, a request to the equipment 100 being necessary, one proceeds to the step 215. Otherwise, one proceeds to the step 255 during which one determines the next expiry of a request to address the equipment 100, read the data required by the user, in the database 145 and / or extrapolate the recent data stored in the database and is provided to the client terminal 180 , in the form of a web page, the data required by the client terminal, the client terminal then displaying these data. In response to the requests it receives, the server 140 aggregates data from databases and physical dynamic data transmitted by the electronic modules 110, for example, to define customer records that it transmits to the issuer. the request received during step 245. During a step 255, the next request date to be addressed to the electronic module is determined and when this date occurs, proceed to step 212.

Préférentiellement, la durée considérée comme suffisante entre deux mises à jour est paramétrable. On observe, en figure 3, la mise en oeuvre d'un procédé de développement de logiciel rapide et facile pour développer, générer et déployer des applications machine à machine et programmer, connecter et gérer les équipements lointains 100 et des serveurs applicatifs 140. Le procédé est mis en oeuvre dans un environnement de développement graphique et puissant afin de développer, générer et déployer des applications machine à machine beaucoup plus rapidement qu'avec une approche développement traditionnel et sans connaissance des langages de programmation. On minimise ainsi les coûts de développement et on maximise la productivité. Au cours d'une étape 305, on sélectionne le module de communication 110 qui va être programmé, étant entendu que l'interfaçage physique de ce module avec un équipement 100 a été réalisé préalablement, par exemple ou cours de son installation physique. Au cours d'une étape 310, on définit un modèle de données logiques de l'application destinée à s'exécuter sur le module de communication 110. Ce modèle se réalise en définissant des équipements logiques manipulés par l'application, puis en leur ajoutant des variables représentatives de leurs caractéristiques logiques. Cette définition se fait au moyen d'écran graphique guidant l'utilisateur en lui proposant des choix pour certains paramètres et en le laissant libre pour d'autres. Ce modèle de données logiques est totalement indépendant de la physique d'acquisition des données réelles existantes. Par exemple une centrale d'alarme sera représentée par ses variables logiques Etat (booléen représentant l'état marche ou arrêt de l'alarme) et EnAlarme (booléen représentant le déclenchement ou non de l'alarme). On met en oeuvre un éditeur qui permet de créer, modifier et supprimer des équipements logiques (sans référence à sa réalisation électronique) en définissant ses variables, au travers de paramètres tels que type de données (chaîne de caractère, numérique ou booléen), mode d'accès (écriture et/ou lecture), limites de variation (valeur ou longueur maximum et minimum). Cette définition de variables et paramètres est contrainte par la compatibilité avec les fonctionnalités offertes par l'éditeur. Par exemple, le type de données peut être limité aux trois exemples donnés ci-dessus et donc ne pas permettre un tableau. Au cours d'une étape 315, on effectue un Mapping ou une mise en correspondance pour que chaque variable du modèle de données logiques de l'application puisse être acquise (lecture) et/ou commandée (écriture) sur des supports physiques ou logiciels. Par ailleurs, cette configuration se réalise au moyen d'interfaces graphiques contraignant l'utilisateur par rapport à la réalité physique du module de communication 110 qu'il utilise. On met en oeuvre un éditeur qui permet d'associer chaque variable définie au cours de l'étape 310 avec un moyen d'acquisition ou de commande supporté par l'environnement. Cet éditeur limite les choix en fonction des paramètres des variables prédéfinis et des fonctionnalités offertes par le module 110 qui est programmé. Par exemple, la variable Etat de la centrale d'alarme pourra être associée à la broche GPIO (General Purpose Input Output) n 4 du module de communication, l'utilisateur ne pouvant pas choisir les broches 0 à 3 car celles-ci n'existent pas sur le module utilisé. On constitue donc, ici, une association spécifique au module électronique et équipements concernés par la programmation. Au cours d'une étape 320, on définit la logique événementielle, c'est-à-dire le fonctionnement de l'application informatique et les conditions de réalisation de ses actions. Par exemple, cette logique événementielle indique quelles combinaisons d'états de l'équipement provoquent quelles actions de la part du module électronique associé. Cette définition se fait de manière graphique en sélectionnant les données logiques à contrôler (représentées par des rectangles), en associant une notion de logique binaire (représentées par des relations entre les rectangles précédemment sélectionnés) et finalement en choisissant une action à exécuter parmi celles disponibles (représentées par des icônes). Ainsi, les données logiques à contrôler, les relations de logique binaire et les actions à exécuter sont préférentiellement représentées par des éléments graphiques spécifiques. Au cours d'une étape 325, on définit les paramètres de configuration du module de communication 110 qui permettront son interfaçage avec l'équipement 100. Cette configuration se réalise au travers d'interfaces graphiques limitant l'utilisateur par rapport aux réalités physiques des composants du module de communication 110. Par exemple, on pourra configurer la vitesse de communication d'un port série existant sur le module.  Preferably, the duration considered sufficient between two updates is configurable. FIG. 3 shows the implementation of a fast and easy software development method for developing, generating and deploying machine-to-machine applications and programming, connecting and managing remote equipment 100 and application servers 140. The method is implemented in a graphical and powerful development environment to develop, generate and deploy machine-to-machine applications much faster than with a traditional development approach and without knowledge of programming languages. This minimizes development costs and maximizes productivity. During a step 305, the communication module 110 is selected which will be programmed, it being understood that the physical interface of this module with a device 100 has been realized beforehand, for example or during its physical installation. During a step 310, a logical data model of the application intended to execute on the communication module 110 is defined. This model is realized by defining logical devices handled by the application and then adding them. variables representative of their logical characteristics. This definition is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free for others. This logical data model is totally independent of the actual data acquisition physics existing. For example, an alarm center will be represented by its logical variables State (boolean representing the on or off state of the alarm) and EnAlarm (boolean representing the triggering or not of the alarm). We implement an editor that allows to create, modify and delete logical devices (without reference to its electronic realization) by defining its variables, through parameters such as data type (string, numeric or boolean), mode access (write and / or read), variation limits (value or maximum and minimum length). This definition of variables and parameters is constrained by the compatibility with the features offered by the editor. For example, the data type may be limited to the three examples given above and thus not allow a table. During a step 315, Mapping or mapping is performed so that each variable of the logical data model of the application can be acquired (read) and / or ordered (write) on physical or software media. Moreover, this configuration is achieved by means of graphic interfaces constraining the user with respect to the physical reality of the communication module 110 that he uses. An editor is implemented which makes it possible to associate each variable defined during step 310 with an acquisition or control means supported by the environment. This editor limits the choices according to the parameters of the predefined variables and the functionalities offered by the module 110 which is programmed. For example, the state variable of the alarm center may be associated with the GPIO pin (General Purpose Input Output) n 4 of the communication module, the user can not choose the pins 0 to 3 because they do not do not exist on the module used. Thus, here is an association specific to the electronic module and equipment involved in programming. During a step 320, the event logic is defined, that is to say the operation of the computer application and the conditions of realization of its actions. For example, this event logic indicates which combinations of states of the equipment cause what actions on the part of the associated electronic module. This definition is done graphically by selecting the logical data to control (represented by rectangles), by associating a notion of binary logic (represented by relations between the previously selected rectangles) and finally by choosing an action to be executed from those available. (represented by icons). Thus, the logical data to be controlled, the binary logic relations and the actions to be executed are preferably represented by specific graphic elements. During a step 325, the configuration parameters of the communication module 110 that define its interface with the equipment 100 are defined. This configuration is achieved through graphical interfaces limiting the user with respect to the physical realities of the components. of the communication module 110. For example, it will be possible to configure the communication speed of an existing serial port on the module.

Au cours des étapes 330 à 345, on effectue les mêmes étapes que les étapes 310 à 325, respectivement, pour la programmation de l'application de communication à implanter du côté serveur considéré comme présélectionné car commun à différents modules 110. Ainsi, au cours de l'étape 330, on définit un modèle de données logiques de l'application destinée à s'exécuter sur le serveur 140. Ce modèle se réalise en définissant des matériels et logiciels logiques manipulés par l'application, puis en leur ajoutant des variables représentatives de leurs caractéristiques logiques. Cette définition se fait au moyen d'écran graphique guidant l'utilisateur en lui proposant des choix pour certains paramètres et en le laissant libre pour d'autres. Ce modèle logique est totalement indépendant de la physique de traitement ou de stockage des données réelles existantes. Cette définition de variables et paramètres est contrainte par la compatibilité avec les fonctionnalités offertes par l'éditeur. Au cours d'une étape 335, on effectue un Mapping ou une mise en correspondance pour que chaque variable du modèle de données logiques de l'application puisse être acquise (lecture) et/ou commandée (écriture) sur des supports physiques ou logiciels. Par ailleurs, cette configuration se réalise au moyen d'interfaces graphiques contraignant l'utilisateur par rapport à la réalité physique du serveur 140 et de ses périphériques qu'il utilise.  During steps 330 to 345, the same steps as steps 310 to 325, respectively, are performed for the programming of the communication application to be implemented on the server side considered preselected because common to different modules 110. Thus, during of step 330, a logical data model of the application intended to execute on the server 140 is defined. This model is realized by defining logical hardware and software manipulated by the application, then adding variables to them. representative of their logical characteristics. This definition is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free for others. This logic model is totally independent of the physics of processing or storing existing real data. This definition of variables and parameters is constrained by the compatibility with the features offered by the editor. During a step 335, a Mapping or Mapping is performed so that each variable of the logical data model of the application can be acquired (read) and / or ordered (written) on physical or software media. Moreover, this configuration is achieved by means of graphical interfaces constraining the user with respect to the physical reality of the server 140 and its peripherals that it uses.

On met en oeuvre un éditeur qui permet d'associer chaque variable définie au cours de l'étape 330 avec un moyen d'acquisition ou de commande supporté par l'environnement. Cet éditeur limite les choix en fonction des paramètres des variables prédéfinis et des fonctionnalités offertes par le serveur 140 qui est programmé. On constitue donc, ici, une association spécifique au serveur 140 et à ses périphériques concernés par la programmation. Au cours d'une étape 340, on définit la logique événementielle, c'est-à-dire le fonctionnement de l'application informatique et les conditions de réalisation de ses actions. Par exemple, cette logique événementielle indique quelles combinaisons d'états provoquent quelles actions de la part du serveur 140 ou de ses périphériques. Cette définition se fait de manière graphique en sélectionnant les données logiques à contrôler (représentées par des rectangles), en associant une notion de logique binaire (représentées par des relations entre les rectangles précédemment sélectionnés) et finalement en choisissant une action à exécuter parmi celles disponibles (représentées par des icônes).  An editor is implemented which makes it possible to associate each variable defined during step 330 with an acquisition or control means supported by the environment. This editor limits the choices according to the parameters of the predefined variables and the functionalities offered by the server 140 which is programmed. Here, therefore, there is an association specific to the server 140 and its peripherals involved in the programming. During a step 340, the event logic is defined, that is to say the operation of the computer application and the conditions of realization of its actions. For example, this event logic indicates which state combinations cause which actions on the part of the server 140 or its peripherals. This definition is done graphically by selecting the logical data to control (represented by rectangles), by associating a notion of binary logic (represented by relations between the previously selected rectangles) and finally by choosing an action to execute from those available. (represented by icons).

Au cours d'une étape 345, on définit les paramètres de configuration du serveur 140 et de ses périphériques qui permettront son interfaçage avec le module 110. Cette configuration se réalise au travers d'interfaces graphiques limitant l'utilisateur par rapport aux réalités physiques du serveur 140 et de ses périphériques. Par exemple, on pourra configurer la vitesse de communication d'un port série existant sur le serveur.  During a step 345, the configuration parameters of the server 140 and its peripherals are defined which will enable it to be interfaced with the module 110. This configuration is achieved through graphical interfaces limiting the user with respect to the physical realities of the device. server 140 and its peripherals. For example, it will be possible to configure the communication speed of an existing serial port on the server.

Puis, au cours d'une étape 365, on définit la communication entre le module et le serveur. On met en oeuvre un éditeur qui permet de sélectionner les moyens de communication en fonction des capacités de communication offertes par le module de communication 110. Si au moins deux canaux de communication ont été définis, l'étape 365 permet également d'organiser le choix dynamique du canal de communication à utiliser. Cette organisation vise à conserver un lien entre le module électronique et le serveur, même si un moyen de communication était défaillant. Par exemple, le choix dépend des canaux disponibles et/ou des prix des canaux de communication. Au cours de cette étape, les choix sont effectués graphiquement grâce notamment à des boites à choix multiples, des champs textes et des interfaces se rafraîchissant en fonction des choix faits précédemment. Puis, au cours d'une étape 370, on génère l'application qui s'exécutera sur le module 110 et celle qui s'exécutera sur le serveur 140. Cette application est un assemblage de briques ou composants logicielles génériques, par exemple le serveur de communication, de serveur de la toile ou web , ou spécifiques. Les briques et composants logiciels sont sélectionnés en fonction des choix effectués précédemment, de manière déterministe. Ces choix faits précédemment contraignent aussi l'ordre d'exécution de ces briques ou composants, ce qui assure le bonfonctionnement de l'application générée. Par exemple, les briques concernent l'une le serveur de communication, serveur de la toile ou serveur SMS, l'autre la communication GPRS, ...  Then, during a step 365, the communication between the module and the server is defined. An editor is used which makes it possible to select the communication means according to the communication capacities offered by the communication module 110. If at least two communication channels have been defined, step 365 also makes it possible to organize the choice. dynamic communication channel to use. This organization aims to maintain a link between the electronic module and the server, even if a means of communication was faulty. For example, the choice depends on the available channels and / or the price of the communication channels. During this step, the choices are made graphically thanks to multiple choice boxes, text fields and interfaces refreshing according to the choices made previously. Then, during a step 370, the application that will run on the module 110 and the one that will run on the server 140 is generated. This application is an assembly of bricks or generic software components, for example the server. communication, web server or web, or specific. The bricks and software components are selected according to the choices made previously, in a deterministic manner. These choices made previously also constrain the order of execution of these bricks or components, which ensures the smooth operation of the application generated. For example, the bricks concern one the communication server, web server or SMS server, the other the GPRS communication, ...

L'application générée destinée à être exécutée sur le module de communication 110 est générée dans le langage natif de celui-ci. Au cours d'une étape 375 on télécharge chacune des applications sur le module et le serveur, on lance ses applications, avec ou sans réinitialisation. Les avantages principaux de ce procédé de développement sont les suivants : 1/ sa facilité d'utilisation : une approche de programmation graphique guidant les choix de développement de l'utilisateur ; une approche de programmation de haut niveau : o utilisation de briques de modèle de données efficaces pour définir la logique de l'application et la lier à un dispositif de communication ; o utilisation d'un dispositif d'association des paramètres logiques et physiques (moyen d'acquisition) de l'application ; o mise à disposition d'un assistant de configuration pour définir tous les paramètres de communication entre le module 110 et le serveur 140 ; - une génération de code informatique automatique ; un ensemble de composants d'application prêts à l'emploi : o un serveur web embarqué ; o une librairie de protocoles applicatifs (Modbus, Nmea, par exemple) pour une interconnexion aisée avec des équipements spécifiques tels que PLC (acronyme de Programmable Logic Controller pour, en français, automate programmable), dispositif de télémétrie, modules GPS (acronyme de Global Positioning System pour système de positionnement global), par exemple ; o un serveur web classique permettant d'accéder aux informations métier de l'application développée ; o des modèles d'applications, des pages de présentation, des composants graphiques (connus sous le nom de widgets). 2/ Une connexion d'une extrémité à l'autre pour développer et déployer une solution machine à machine complète depuis les équipements éloignés jusqu'aux serveurs applicatifs, permettant la communication par l'intermédiaire de réseaux, par exemple GSM (acronyme de Global System for Mobile communication pour, en français, système de communication globale pour équipements mobiles), GPRS (acronyme de Global Packet Radio Service pour, en français, système de communication radio par paquets), Edge, Wifi (acronyme de Wireless Fidelity pour, en français, Fidélité sans fil), LAN (Local Area Network pour, en francais réseau local). 3/ La sécurité par le biais de mécanismes de sécurité intégrés : la mise en oeuvre du protocole de transfert de données sécurisé https, de dispositifs d'authentification de personnes, de terminaux ou d'applications, de gestion de profils d'utilisateurs ; 4/ Les performances grâce à : l'optimisation de codes embarqués pour une emprise minimale sur les ressources, en particulier ressources de mémoire, des modules électroniques et une fiabilité maximale et - l'optimisation de bande passante utilisée sur les réseaux de communication, par compression de données pour minimiser les coûts de trafic de données entre les modules électroniques 110 et les serveurs 140 ; 5/ Maintenance et mise à jour : fourniture, diagnostic, maintenance et téléchargement d'applications à distance, grâce à des capacités de communication à distance fournies par le module 110 et 6/ Récupération de données depuis les modules électroniques distants 110 pour stockage dans le système de traitement d'information (serveur 140), pour réalisation de rapports, facturation, base de connaissance, par exemple. Grâce à la mise en oeuvre de cet environnement de développement, on développe une solution globale et centralisée. Pratiquement, la suite de développement organise le développement et s'abstrait de la forme d'exécution. Un macro-langage graphique permet de s'affranchir de connaissance de langage informatique. On observe que les éléments et la programmation sont conservés en mémoire du terminal de programmation 150 et peuvent être édités et téléchargés à distance sur le module 110 et/ou sur le serveur 140 à tout moment. Le macro-langage graphique et l'environnement graphique utilisent ainsi, à la fois, des parties génériques et des parties spécifiques pour des modules particuliers. Grâce à ces caractéristiques, le langage de programmation est indépendant du module électronique et de son fournisseur, des BSP (acronyme de Board Support Package pour, en français, ensemble de support de bureau) ou MSP (module support package pour, en français, ensemble de support de module) ou de l'ensemble de pilotes permettant leur commande.  The generated application intended to be executed on the communication module 110 is generated in the native language thereof. During a step 375 we download each of the applications on the module and the server, we launch its applications, with or without reinitialization. The main advantages of this development process are as follows: 1 / its ease of use: a graphical programming approach guiding the development choices of the user; a high-level programming approach: o use of efficient data model bricks to define the logic of the application and link it to a communication device; o use of a device for associating the logical and physical parameters (acquisition means) of the application; o provision of a configuration wizard to define all the communication parameters between the module 110 and the server 140; - a generation of automatic computer code; a set of ready-to-use application components: o an embedded web server; o a library of application protocols (Modbus, Nmea, for example) for easy interconnection with specific equipment such as PLC (acronym for Programmable Logic Controller for, in French, PLC), telemetry device, GPS modules (acronym for Global Positioning System for global positioning system), for example; o a classic web server allowing access to the business information of the developed application; o application templates, presentation pages, graphic components (known as widgets). 2 / An end-to-end connection to develop and deploy a complete machine-to-machine solution from remote devices to application servers, enabling communication over networks, for example GSM (acronym for Global System for Mobile communication for, in French, global communication system for mobile devices), GPRS (acronym for Global Packet Radio Service for, in French, packet radio communication system), Edge, Wifi (acronym for Wireless Fidelity for, in French , Loyalty Wireless), LAN (Local Area Network for, French Local Area Network). 3 / Security through integrated security mechanisms: the implementation of the https secure data transfer protocol, personal authentication devices, terminals or applications, management of user profiles; 4 / The performances thanks to: the optimization of embedded codes for a minimal influence on the resources, in particular memory resources, electronic modules and a maximum reliability and - the optimization of bandwidth used on the networks of communication, by data compression to minimize the cost of data traffic between the electronic modules 110 and the servers 140; 5 / Maintenance and update: provision, diagnosis, maintenance and download of applications remotely, thanks to remote communication capabilities provided by the module 110 and 6 / Data recovery from the remote electronic modules 110 for storage in the information processing system (server 140) for reporting, billing, knowledge base, for example. Thanks to the implementation of this development environment, we develop a global and centralized solution. Practically, the development suite organizes the development and abstracts from the form of execution. A graphical macro-language makes it possible to dispense with knowledge of computer language. It is observed that the elements and the programming are stored in the memory of the programming terminal 150 and can be edited and remotely downloaded to the module 110 and / or the server 140 at any time. The graphical macro-language and the graphical environment thus use, at the same time, generic parts and specific parts for particular modules. Thanks to these characteristics, the programming language is independent of the electronic module and its supplier, the BSP (acronym for Board Support Package for, in French, set of desktop support) or MSP (module support package for, in French, together module support) or the set of drivers allowing their order.

Claims (11)

REVENDICATIONS 1 û Procédé de développement d'une application machine à machine entre un module de communication (110) destiné à être associé à un équipement (100) et un système informatique (140), caractérisé en ce qu'il comporte : - une étape de définition (310) de données logiques de l'application destinée à s'exécuter sur le module de communication, une étape de mise en correspondance (315) de chaque donnée logique à au moins un moyen d'acquisition ou de commande, physique ou logiciel, - une étape de définition de paramètres de configuration du module de communication (325) qui permettent son interfaçage avec l'équipement, - une étape de définition (330) de données logiques de l'application destinée à s'exécuter sur le système informatique, - une étape de mise en correspondance (335) de chaque donnée logique à au moins un moyen de stockage du système informatique, - une étape de définition de la communication entre le module et le système informatique, - une étape de génération de l'application (370) qui s'exécutera sur le module et de celle qui s'exécutera sur le système informatique et - une étape de téléchargement (375) sur le module de l'application qui s'exécutera sur le module et sur le système informatique, de celle qui s'exécutera sur le système informatique.  1 - Method for developing a machine-to-machine application between a communication module (110) intended to be associated with a device (100) and a computer system (140), characterized in that it comprises: a step of defining (310) logical data of the application intended to execute on the communication module, a step of matching (315) each logical data to at least one acquisition or control means, physical or software a step of defining configuration parameters of the communication module (325) that allow its interface with the equipment; a step of defining (330) logical data of the application intended to execute on the computer system; - a step of matching (335) each logical data to at least one storage means of the computer system, - a step of defining the communication between the module and the computer system, - an application generation step (370) that will execute on the module and one that will run on the computer system and - a download step (375) on the application module that will run on the module and on the computer system, the one that will run on the computer system. 2 û Procédé selon la revendication 1, caractérisé en ce que, au cours d'au moins une des étapes de définition (310, 330) de données logiques, on définit des équipements logiques manipulés par l'application, puis on leur ajoute des variables représentatives de leurs caractéristiques logiques.2 - Process according to claim 1, characterized in that, during at least one of the logical data definition steps (310, 330), logical devices manipulated by the application are defined and variables are added thereto. representative of their logical characteristics. 3 û Procédé selon la revendication 2, caractérisé en ce que, au cours d'au moins une des étapes de définition (310, 330) de données logiques, on met en oeuvre un éditeur qui permet de créer, modifier et supprimer des équipements logiques, sans référence à leur réalisation électronique, en définissant ses variables, au travers de paramètres, cette définition de variables et de paramètres étant contrainte par la compatibilité avec les fonctionnalités offertes par l'éditeur.3 - Process according to claim 2, characterized in that, during at least one of the logical data definition steps (310, 330), an editor is implemented which makes it possible to create, modify and delete logical equipments. , without reference to their electronic realization, by defining its variables, through parameters, this definition of variables and parameters being constrained by the compatibility with the functionalities offered by the editor. 4 û Procédé selon la revendication 3, caractérisé en ce que, avec ledit éditeur, la définition de données logiques se fait au moyen d'écran graphique guidant l'utilisateur en lui proposant des choix pour certains paramètres et en le laissant libre pour d'autres.4 - Process according to claim 3, characterized in that, with said editor, the definition of logical data is done by means of a graphic screen guiding the user by offering him choices for certain parameters and leaving him free to other. 5 û Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, au moins l'une des étapes (315, 335) de mise en correspondance et de définition de communication est réalisée au moyen d'interfaces graphiques contraignant l'utilisateur par rapport à la réalité physique du module de communication qu'il utilise.5 - Process according to any one of claims 1 to 4, characterized in that, at least one of the steps (315, 335) of mapping and communication definition is performed by means of graphic interfaces constraining the user in relation to the physical reality of the communication module that he uses. 6 û Procédé selon la revendication 3, caractérisé en ce que, au cours d'au moins une l'étape de mise en correspondance (315, 335), on met en oeuvre un éditeur qui permet d'associer chaque variable définie au cours de l'étape de définition de données logiques (310, 330) avec un moyen de stockage, cet éditeur limitant les choix en fonction des paramètres, des variables et des fonctionnalités offertes par le module de communication (110) qui est programmé.6 - Process according to claim 3, characterized in that, during at least one matching step (315, 335), an editor is implemented which makes it possible to associate each variable defined during the the step of defining logical data (310, 330) with a storage means, this editor limiting the choices according to the parameters, variables and functions offered by the communication module (110) that is programmed. 7 û Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comporte au moins une étape de définition de logique événementielle (320, 340), au cours de laquelle on définit le fonctionnement de l'application informatique et les conditions de réalisation de ses actions.7 - Process according to any one of claims 1 to 6, characterized in that it comprises at least one event logic definition step (320, 340), during which the operation of the computer application is defined and the conditions for carrying out its actions. 8 û Procédé selon la revendication 7, caractérisé en ce qu'au moins une étape de définition de logique événementielle (320, 340) se fait de manière graphique en sélectionnant les données logiques à contrôler, en associant une notion de logique binaire et finalement en choisissant une action à exécuter parmi celles disponibles, les données logiques à contrôler, les relations de logique binaire et les actions à exécuter étant représentées par des éléments graphiques spécifiques.8. Process according to claim 7, characterized in that at least one event logic definition step (320, 340) is done graphically by selecting the logical data to be checked, by associating a notion of binary logic and finally by choosing an action to execute among those available, the logical data to be controlled, the binary logic relations and the actions to be executed being represented by specific graphic elements. 9 - Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que, au cours de l'étape (325) de définition de la communication entre le module et le système informatique, si au moins deux canaux de communication (130, 135) ont été définis, on définit le choix dynamique du canal de communication à utiliser.9 - Process according to any one of claims 1 to 8, characterized in that, during the step (325) of defining the communication between the module and the computer system, if at least two communication channels (130 , 135) have been defined, the dynamic choice of the communication channel to be used is defined. 10 û Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que, au cours de l'étape de génération de l'application (370) qui s'exécutera sur le module de communication (110) et de l'application qui s'exécutera sur le système informatique (140), on effectue un assemblage de briques ou composants logicielles génériques ou spécifiques au module et au système informatique.10. Process according to any one of claims 1 to 9, characterized in that, during the generation step of the application (370) which will execute on the communication module (110) and the application that will run on the computer system (140), it performs an assembly of bricks or software components generic or specific to the module and the computer system. 11 û Procédé selon la revendication 10, caractérisé en ce que, au cours de l'étape de génération de l'application (370) qui s'exécutera sur le module de communication (110), l'application est générée dans le langage natif du module de communication.Method according to claim 10, characterized in that, during the generation step of the application (370) which will execute on the communication module (110), the application is generated in the native language. of the communication module.
FR0602287A 2006-03-15 2006-03-15 METHOD FOR DEVELOPING A MACHINE MACHINE APPLICATION Expired - Fee Related FR2898698B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0602287A FR2898698B1 (en) 2006-03-15 2006-03-15 METHOD FOR DEVELOPING A MACHINE MACHINE APPLICATION
US12/282,950 US8484285B2 (en) 2006-03-15 2007-03-15 Method and device for communication between a device and a server
EP07731145A EP2010975A2 (en) 2006-03-15 2007-03-15 Method and device for communication between a device and a server
PCT/FR2007/000453 WO2007104868A2 (en) 2006-03-15 2007-03-15 Method and device for communication between a device and a server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0602287A FR2898698B1 (en) 2006-03-15 2006-03-15 METHOD FOR DEVELOPING A MACHINE MACHINE APPLICATION

Publications (2)

Publication Number Publication Date
FR2898698A1 true FR2898698A1 (en) 2007-09-21
FR2898698B1 FR2898698B1 (en) 2008-12-05

Family

ID=37307415

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0602287A Expired - Fee Related FR2898698B1 (en) 2006-03-15 2006-03-15 METHOD FOR DEVELOPING A MACHINE MACHINE APPLICATION

Country Status (1)

Country Link
FR (1) FR2898698B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012045369A1 (en) * 2010-10-08 2012-04-12 Nokia Siemens Networks Oy Apparatus and method for communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114144A1 (en) * 2003-06-25 2004-12-29 Nokia Corporation Method of configuring parameters of machine-to-machine module and machine-to-machine module
FR2857190A1 (en) * 2003-07-01 2005-01-07 Wavecom Wireless application implementing process for radio communication module, involves downloading automaton from remote server in which it has been previously defined and automatically executing it in radio communication terminal
WO2005043262A2 (en) * 2003-10-20 2005-05-12 Sensorlogic, Inc. Behavior agent based system and process for machine to machine applications and services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114144A1 (en) * 2003-06-25 2004-12-29 Nokia Corporation Method of configuring parameters of machine-to-machine module and machine-to-machine module
FR2857190A1 (en) * 2003-07-01 2005-01-07 Wavecom Wireless application implementing process for radio communication module, involves downloading automaton from remote server in which it has been previously defined and automatically executing it in radio communication terminal
WO2005043262A2 (en) * 2003-10-20 2005-05-12 Sensorlogic, Inc. Behavior agent based system and process for machine to machine applications and services

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012045369A1 (en) * 2010-10-08 2012-04-12 Nokia Siemens Networks Oy Apparatus and method for communication
EP2943038A1 (en) * 2010-10-08 2015-11-11 Nokia Solutions and Networks Oy Apparatus and method for communication
US10104519B2 (en) 2010-10-08 2018-10-16 Beijing Xiaomi Mobile Software Co., Ltd. Apparatus and method for communications

Also Published As

Publication number Publication date
FR2898698B1 (en) 2008-12-05

Similar Documents

Publication Publication Date Title
WO2007104868A2 (en) Method and device for communication between a device and a server
US20200413320A1 (en) Management of applications for a device located at a premises
US11227080B2 (en) Industrial automation information contextualization method and system
US11900790B2 (en) Method, system and apparatus for automated reporting of account and sensor zone information to a central station
CN113075909B (en) Industrial data service platform
US10387011B2 (en) System and method to capture and document cross-product compatibility status information for industrial devices
US8132127B2 (en) System and methodology providing adaptive interface in an industrial controller environment
EP1164756B1 (en) System of access to automation equipment via a proximity wireless network
CA2342129C (en) Programmable automatic control access system based on wap architecture
US20160330082A1 (en) System and method to capture and document cross-product compatibility status information for industrial devices
CA2992429A1 (en) Data model for home automation
KR20050000345A (en) Method and apparatus for self-configuring supervisory control and data acquisition(scada) system for distributed control
EP1420316A1 (en) Instant messaging for event notification and exchanging data in an industrial controller environment
EP1726124A1 (en) System and method for remotely monitoring equipment with the aid of at control, device, radiocommunications module and corresponding program
CN112835604A (en) System gray scale version release management method, system, device and medium
CN103152370A (en) Service gateway system of internet of things and application method
CN115248692A (en) Device and method for supporting cloud deployment of multiple deep learning framework models
US20240028014A1 (en) Field Device Digital Twins in Process Control and Automation Systems
FR2898698A1 (en) Equipment`s e.g. heater, electronic module and remote server communication system for e.g. LAN network, has server applications each deciding transmission of request and transmitting reply to other application upon receiving request
FR2898697A1 (en) Equipment`s e.g. heater, electronic module and remote server communication system for e.g. LAN network, has server applications each deciding transmission of request and transmitting reply to other application upon receiving request
US11656610B2 (en) Quick connection techniques for skid communicator tool
US20170302512A1 (en) Universal control and monitoring of security systems and security components
US20240028006A1 (en) Nebula Fleet Management
EP2086282B1 (en) Self-adaptive communication system
FR2857190A1 (en) Wireless application implementing process for radio communication module, involves downloading automaton from remote server in which it has been previously defined and automatically executing it in radio communication terminal

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20111130