FR2963840A1 - Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device - Google Patents

Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device Download PDF

Info

Publication number
FR2963840A1
FR2963840A1 FR1060925A FR1060925A FR2963840A1 FR 2963840 A1 FR2963840 A1 FR 2963840A1 FR 1060925 A FR1060925 A FR 1060925A FR 1060925 A FR1060925 A FR 1060925A FR 2963840 A1 FR2963840 A1 FR 2963840A1
Authority
FR
France
Prior art keywords
software
monitoring
execution
software component
information
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
FR1060925A
Other languages
French (fr)
Inventor
Philippe Gibert
Christophe Arnaud
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
France Telecom 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 France Telecom SA filed Critical France Telecom SA
Priority to FR1060925A priority Critical patent/FR2963840A1/en
Publication of FR2963840A1 publication Critical patent/FR2963840A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The method involves triggering execution of software graft (RA1) to define monitoring function designed to provide information on execution of software component (B1) to a monitoring device (30) during execution of software component. Information provided to the monitoring device by the software graft is displayed. Monitoring function applies a monitoring rule defining information to be provided to the monitoring device and conditions in which the information is provided. The function applied to the component is modified during execution of the software component. Independent claims are also included for the following: (1) a device for monitoring execution of software component, comprising a triggering unit (2) a platform coupled with a monitoring device for executing software component.

Description

Procédé de monitoring d'une exécution d'un composant logiciel Method for monitoring an execution of a software component

L'invention concerne le domaine de l'informatique, et, plus précisément, un procédé de monitoring d'une exécution d'un composant logiciel ainsi qu'un dispositif associé. Une architecture possible pour l'exécution de composants logiciels est celle définie dans le standard OSGI (Open Services Gateway Initiative). Dans une telle architecture, une plateforme centrale d'exécution de composants logiciels charge et exécute des composants logiciels de différentes provenances dont le code source n'a pas été nécessairement vérifié et/ou optimisé. Se pose ainsi la question du monitoring de l'exécution de ces composants logiciels. Le document de Tuukka Miettinen, intitulé "Resource monitoring and visualization of OSGI-based software components" (VT publications 685), disponible à l'adresse http://www.vtt.fi/inf/pdf/publications/2008/P685.pdf aborde cette question dans le cas d'une plateforme OSGI. Il est par exemple nécessaire de pouvoir contrôler la consommation, par ces composants logiciels, des ressources de la plateforme OSGI: mémoire, puissance de calcul, descripteurs réseaux, etc. Le risque est grand en effet que certains de ces composants logiciels consomment trop de ressources, voire entraînent une paralysie de la plateforme. En particulier, il est nécessaire de pouvoir détecter quels sont les composants logiciels fortement consommateurs de ressources, de disposer d'un audit des ressources consommées par ces composants logiciels et éventuellement d'arrêter l'exécution des composants logiciels fautifs et/ou de les désintaller. The invention relates to the field of computing, and more specifically, a method of monitoring an execution of a software component and an associated device. One possible architecture for running software components is that defined in the Open Services Gateway Initiative (OSGI) standard. In such an architecture, a central software component execution platform loads and executes software components from different sources whose source code has not necessarily been verified and / or optimized. This raises the question of monitoring the execution of these software components. Tuukka Miettinen's document, "Resource monitoring and visualization of OSGI-based software components" (VT publications 685), available at http://www.vtt.fi/inf/pdf/publications/2008/P685. pdf addresses this issue in the case of an OSGI platform. It is for example necessary to be able to control the consumption, by these software components, of the resources of the OSGI platform: memory, computing power, network descriptors, etc. The risk is high that some of these software components consume too many resources or even cause paralysis of the platform. In particular, it is necessary to be able to detect which software components consume a lot of resources, to have an audit of the resources consumed by these software components and possibly to stop the execution of the faulty software components and / or to unmount them. .

Or les outils de monitoring existant sur de type de plateforme sont insuffisants pour mesurer finement les ressources consommées: on doit en effet pouvoir disposer aussi bien d'information sur la mémoire et la puissance de calcul consommée, que sur l'utilisation de descripteurs de fichiers, les variables statiques verrouillées, etc. En outre, il apparaît souhaitable que les outils de monitoring soient adaptables à tout composant logiciel exécutable sur la plateforme, quelle que soit sa provenance, et ce avec un minimum d'efforts de développement logiciel. Ce qui n'est pas le cas avec la solution décrite dans le document précité, qui, par exemple en page 30, paragraphe "byte code instrumentation (BCI)", indique que le code source de l'application à monitorer doit être modifié pour la collecte des informations désirées. However, the existing monitoring tools on platform type are insufficient to measure the resources consumed finely: one must be able to have both information on the memory and computing power consumed, as on the use of file descriptors , static variables locked, etc. In addition, it seems desirable that the monitoring tools are adaptable to any software component executable on the platform, whatever its source, and with a minimum of software development efforts. This is not the case with the solution described in the aforementioned document, which, for example on page 30, paragraph "byte code instrumentation (BCI)", indicates that the source code of the application to be monitored must be modified to the collection of the desired information.

Un des buts de l'invention est de remédier à des problèmes, inconvénients ou insuffisances de l'état de la technique et/ou d'y apporter des améliorations. One of the aims of the invention is to remedy problems, disadvantages or shortcomings of the state of the art and / or to make improvements thereto.

L'invention concerne, selon un premier aspect, un procédé de monitoring d'une exécution d'un composant logiciel. Le procédé précité comprend: - une étape de déclenchement, au cours de l'exécution dudit composant logiciel, d'une exécution d'un greffon logiciel définissant une fonction de monitoring conçue pour fournir à un dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel, - une étape d'affichage d'au moins une information fournie au dispositif de monitoring par le greffon logiciel. The invention relates, according to a first aspect, to a method of monitoring an execution of a software component. The aforementioned method comprises: a step of triggering, during the execution of said software component, an execution of a software plug-in defining a monitoring function designed to provide a monitoring device with at least one piece of information about the execution of said software component, - a step of displaying at least one piece of information supplied to the monitoring device by the software plug-in.

Un greffon logiciel est un module logiciel qui est défini en utilisant une technologie de programmation par aspect. L'utilisation d'un greffon logiciel pour la définition et la mise en oeuvre d'une fonction de monitoring de composant logiciel rend la solution de monitoring non intrusive pour le programmeur du composant logiciel à monitorer: celui-ci n'a pas besoin d'avoir connaissance du code du greffon logiciel pour que le composant logiciel puisse être monitoré au moyen de ce greffon logiciel. En outre, un tel greffon logiciel est apte à monitorer l'exécution de tout composant logiciel. La solution de monitoring selon l'invention est ainsi adaptable au monitoring de tout composant logiciel, quelle que soit sa provenance, dès lors que ce composant logiciel respecte les interfaces de programmation de la plate-forme sous- jacente. L'approche programmation par aspect peut alors s'appliquer à ce composant logiciel. Enfin, un tel greffon logiciel définit, relativement à des opérations prédéfinies d'un code source d'un composant logiciel, quelle est ou quelles sont les fonctions à déclencher et quelles sont les informations à fournir au dispositif de monitoring lorsque des conditions, définies également par ce greffon logiciel, sont remplies au moment de l'exécution d'une telle opération. Dans le cadre de l'invention, la fonction définie par le greffon est une fonction de monitoring conçue pour fournir au un dispositif de monitoring une ou des informations sur l'exécution du composant logiciel monitoré. On peut ainsi finement monitorer l'exécution du composant logiciel et générer des informations sur son exécution et sa consommation de ressources, notamment être informé lorsque des événements suivants se produisent: surconsommation de ressources mémoire, de descripteurs réseau, d'inter-blocage entre composants, etc. A software plug-in is a software module that is defined using aspect-based programming technology. The use of a software plug-in for the definition and implementation of a software component monitoring function makes the monitoring solution non-intrusive for the programmer of the software component to be monitored: it does not need to have knowledge of the code of the software plugin so that the software component can be monitored by means of this software plugin. In addition, such a software plug-in is able to monitor the execution of any software component. The monitoring solution according to the invention is thus adaptable to the monitoring of any software component, regardless of its source, since this software component respects the programming interfaces of the underlying platform. The aspect programming approach can then be applied to this software component. Finally, such a software plug-in defines, with respect to predefined operations of a source code of a software component, what is or which functions are to be triggered and what information is to be provided to the monitoring device when conditions, also defined by this software plugin, are filled at the time of the execution of such an operation. In the context of the invention, the function defined by the graft is a monitoring function designed to provide the monitoring device with one or more information on the execution of the monitored software component. We can finely monitor the execution of the software component and generate information on its execution and its consumption of resources, including being informed when the following events occur: overconsumption of memory resources, network descriptors, inter-blocking between components etc.

Selon un mode de réalisation du procédé selon l'invention, ladite fonction de monitoring applique au moins une règle de monitoring définissant la ou les informations à fournir audit dispositif de monitoring et les conditions dans lesquelles cette ou ces informations sont à fournir. Tout type d'informations peut ainsi être remonté et les conditions dans lesquelles ces informations sont à remonter sont de tout type, définissables librement par le concepteur du greffon. According to one embodiment of the method according to the invention, said monitoring function applies at least one monitoring rule defining the information or information to be provided to said monitoring device and the conditions under which this or these information is to be provided. Any type of information can be reassembled and the conditions in which this information is to be traced are of any type, freely defined by the designer of the graft.

Selon un mode de réalisation, le procédé selon l'invention comprend une étape de mise en oeuvre de moyens de sélection d'une règle de monitoring à utiliser, le greffon logiciel exécuté mettant en oeuvre une fonction de monitoring appliquant la règle sélectionnée. On rend ainsi paramétrable à souhait le monitoring de composants logiciels, puisqu'il suffit de disposer d'un greffon logiciel par fonction de monitoring que l'on désire appliquer. According to one embodiment, the method according to the invention comprises a step of implementing means for selecting a monitoring rule to be used, the executed software plug-in implementing a monitoring function applying the selected rule. It is thus possible to configure the monitoring of software components as desired, since it suffices to have a software plug-in for each monitoring function that one wishes to apply.

Selon un mode de réalisation du procédé selon l'invention, ledit greffon logiciel est utilisable pour le monitoring de plusieurs composants logiciels. En effet, le code de programme d'un greffon logiciel peut être défini sans connaissance du code de programme définissant le composant logiciel à monitorer. Il n'est en particulier pas nécessaire de créer un greffon spécifique pour un composant logiciel donné. According to one embodiment of the method according to the invention, said software plug-in can be used for monitoring several software components. Indeed, the program code of a software plug-in can be defined without knowledge of the program code defining the software component to monitor. In particular, it is not necessary to create a specific plugin for a given software component.

Selon un mode de réalisation, le procédé selon l'invention comprend une étape de modification, au cours de l'exécution dudit composant logiciel, de la fonction de monitoring appliquée audit composant logiciel. L'invention permet ainsi d'adapter à la volée, c'est-à-dire au cours même de l'exécution du composant logiciel, la fonction de monitoring au composant logiciel à monitorer. According to one embodiment, the method according to the invention comprises a step of modifying, during the execution of said software component, the monitoring function applied to said software component. The invention thus makes it possible to adapt on the fly, that is to say during the execution of the software component, the monitoring function to the software component to be monitored.

Selon un mode de réalisation particulier, le procédé selon l'invention l'étape de modification de la fonction de monitoring appliquée comprend: - une étape d'arrêt de l'exécution dudit greffon logiciel, - une étape de déclenchement, au cours de l'exécution dudit composant logiciel, d'une exécution d'un autre greffon logiciel définissant une autre fonction de monitoring, conçue pour fournir au dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel et appliquant au moins une autre règle de monitoring. De manière simple et souple, une modification de fonction de monitoring revient à un remplacement d'un greffon logiciel par un autre. Ce remplacement peut s'effectuer en outre pendant l'exécution même du composant logiciel faisant l'objet du monitoring. En effet, il est possible de déclencher et/ou arrêter l'exécution d'un tel greffon logiciel au cours même de l'exécution du composant logiciel à monitorer, et ce sans avoir à interrompre même momentanément cette exécution. La solution selon l'invention offre ainsi des possibilités d'embrayage/débrayage de fonction de monitoring à la demande. L'intérêt étant pouvoir, à tout moment, observer sélectivement certains composants logiciels pour ensuite ne plus observer ces composants logiciels et en observer d'autres. According to a particular embodiment, the method according to the invention the step of modifying the applied monitoring function comprises: a step of stopping the execution of said software plug-in, a triggering step, during the execution of said software component, an execution of another software plugin defining another monitoring function, designed to provide the monitoring device with at least one information on the execution of said software component and applying at least one other monitoring rule . In a simple and flexible way, a modification of the monitoring function amounts to a replacement of a software plug-in by another. This replacement can also be performed during the actual execution of the software component being monitored. Indeed, it is possible to trigger and / or stop the execution of such a software plug-in during the execution of the software component to be monitored, without having to interrupt this execution even momentarily. The solution according to the invention thus offers possibilities of clutch / disengagement of monitoring function on demand. The interest is being able, at any time, selectively observe some software components and then no longer observe these software components and observe others.

Selon une implémentation préférée, les différentes étapes du procédé selon l'invention sont mises en oeuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un dispositif de monitoring et étant conçu pour commander l'exécution des différentes étapes de ce procédé. En conséquence, l'invention vise aussi un programme, susceptible d'être exécuté par un ordinateur ou par un processeur de données, ce programme comportant des instructions pour commander l'exécution des étapes d'un procédé tel que mentionné ci-dessus. Ce programme peut 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. L'invention vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. According to a preferred implementation, the various steps of the method according to the invention are implemented by a software or computer program, this software comprising software instructions intended to be executed by a data processor of a monitoring device and being designed to control the execution of the different steps of this process. Accordingly, the invention is also directed to a program that can be executed by a computer or a data processor, which program includes instructions for controlling the execution of the steps of a method as mentioned above. This program can 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 a partially compiled form, or in any other form desirable shape. The invention also provides a data carrier readable by a data processor, and including instructions of a program as mentioned above. The information carrier may be any entity or device capable of storing the program.

Selon un deuxième aspect, l'invention concerne un dispositif de monitoring d'une exécution d'un composant logiciel, le dispositif comprenant - des moyens de déclenchement, au cours de l'exécution dudit composant logiciel, d'une exécution d'un greffon logiciel définissant une fonction de monitoring conçue pour fournir à un dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel, - des moyens d'affichage d'au moins une information fournie au dispositif de monitoring par le greffon logiciel. According to a second aspect, the invention relates to a device for monitoring an execution of a software component, the device comprising - means for triggering, during the execution of said software component, an execution of a plugin software defining a monitoring function designed to provide a monitoring device with at least one information on the execution of said software component, means for displaying at least one piece of information supplied to the monitoring device by the software plug-in.

Selon un troisième aspect, l'invention concerne une plateforme d'exécution de composants logiciels, couplée à un dispositif de monitoring selon le deuxième aspect de l'invention, comprenant une interface pour exécuter, au cours de l'exécution d'un dit composant logiciel, un greffon logiciel définissant une fonction de monitoring conçue pour fournir audit dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel. According to a third aspect, the invention relates to a software component execution platform, coupled to a monitoring device according to the second aspect of the invention, comprising an interface for executing, during the execution of a said component. software, a software plug-in defining a monitoring function designed to provide said monitoring device with at least one information on the execution of said software component.

Selon un mode de réalisation, l'invention est mise en oeuvre au moyen de modules / composants logiciels. Un module logiciel ou composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, passerelle, set- top-box, routeur, etc) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc). According to one embodiment, the invention is implemented by means of modules / software components. A software module or software component corresponds to one or more computer programs, one or more subroutines of a program, or more generally to any element of a program or software capable of implementing a program. function or a set of functions, as described below for the module concerned. Such a software component is executed by a data processor of a physical entity (terminal, server, gateway, set-top box, router, etc.) and is able to access the hardware resources of this physical entity (memories, supports recording, communication bus, input / output electronic boards, user interfaces, etc.).

D'autres buts, caractéristiques et avantages de l'invention apparaîtront à travers la description qui va suivre, donnée uniquement à titre d'exemple non limitatif, et faite par référence aux dessins annexés dans lesquels: - la figure 1 représente de manière schématique un système de communication intégrant un dispositif selon l'invention; - la figure 2 représente un organigramme d'un mode de réalisation du procédé selon l'invention. Other objects, features and advantages of the invention will become apparent from the description which follows, given solely by way of nonlimiting example, and with reference to the appended drawings, in which: FIG. 1 schematically represents a communication system incorporating a device according to the invention; FIG. 2 represents a flowchart of one embodiment of the method according to the invention.

Le procédé de monitoring décrit ici fait appel à plusieurs technologies. Une première technologie est celle des plates-formes OSGi (Open Services Gateway Initiative). Ces plates-formes de service sont exploitées au travers d'interfaces logicielles (API, application program interface) formant une infrastructure logicielle (en anglais "framework") pour l'exploitation localement ou à distance de composants logiciels mettant en oeuvre ces services. Ces interfaces logicielles proposent notamment des fonctions de gestion de composants logiciels par le biais d'un répertoire de composants logiciels (nommé "registry") ainsi que des fonctions d'installation / désinstallation, d'exécution / arrêt, de modification de composants logiciels exécutés par une telle plateforme. Cette technologie est utilisable dans de nombreux domaines techniques, dont l'automobiles, l'automatisme industriel, les applications pour téléphones mobiles, la gestion de flottes de véhicules, etc. The monitoring method described here uses several technologies. A first technology is that of OSGi platforms (Open Services Gateway Initiative). These service platforms are exploited through software interfaces (APIs) that form a software infrastructure (in English "framework") for operating locally or remotely software components implementing these services. These software interfaces include functions for managing software components through a directory of software components (named "registry") as well as functions of installation / uninstallation, execution / shutdown, modification of executed software components. by such a platform. This technology can be used in many technical fields, including automobiles, industrial automation, mobile phone applications, fleet management, and more.

Une deuxième technologie est la programmation orientée aspect (AOP, aspectoriented programming). Cette technologie permet d'ajouter des fonctionnalités à modules logiciels déjà codés, sans que le programmeur de ce module logiciel n'ait besoin d'avoir connaissance de ces fonctionnalités. Elle repose sur la définition d'opérations prédéfinies, nommés points de jonction ("joint points" en anglais) susceptibles d'être exécutées au cours l'exécution du composant: par exemple, une entrée dans une boucle de traitement, un appel à une fonction, un retour à une fonction appelant une autre fonction, une initialisation de variables, une allocation mémoire, le démarrage ou arrêt du composant logiciel, etc. Relativement à ces points de jonctions sont définis un ensemble de conditions (appelés "pointcuts" en anglais) qui doivent être remplies au moment de l'exécution d'une telle opération pour qu'une fonction donnée (appelée "aspect", dans le contexte OAP) soit exécutée. Cette fonction est destinée à être mise en oeuvre par un greffon logiciel, c'est-à-dire un code de programme qui est chargé dynamiquement lorsque les conditions définies sont réunies et qui se greffe sur le code initial au point de jonction considéré. La programmation par aspect permet ainsi de spécifier les conditions d'exécution de greffons logiciels et de les gérer sans modifier le code du programme initial. Elle permet un développement procédant par différents niveaux d'abstraction, en précisant à chaque niveau d'abstraction les fonctions à exécuter, correspondant à une 6 exploitation particulière du code du programme initial dans un contexte donné. A second technology is Aspect Oriented Programming (AOP). This technology makes it possible to add functionalities to previously coded software modules, without the programmer of this software module needing to be aware of these functionalities. It is based on the definition of predefined operations, called joint points ("joint points" in English) that may be executed during the execution of the component: for example, an entry in a processing loop, a call to a function, a return to a function calling another function, an initialization of variables, a memory allocation, the starting or stopping of the software component, etc. Relative to these junction points are defined a set of conditions (called "pointcuts" in English) that must be fulfilled at the time of the execution of such an operation for a given function (called "aspect", in the context OAP) is executed. This function is intended to be implemented by a software plug-in, that is to say a program code that is loaded dynamically when the defined conditions are met and which is grafted on the initial code at the junction point considered. The aspect-based programming thus makes it possible to specify the conditions of execution of software plug-ins and to manage them without modifying the code of the initial program. It allows a development proceeding by different levels of abstraction, specifying at each level of abstraction the functions to be executed, corresponding to a particular exploitation of the code of the initial program in a given context.

Une troisième technologie est celle du monitoring d'applications logicielles. Cette technologie a pour but de collecter des informations relatives à l'exécution d'une application, par exemple des informations sur les ressources consommées par cette application (mémoire, puissance de calcul du processeur, descripteurs de fichiers, etc) au cours de son exécution. A third technology is the monitoring of software applications. The purpose of this technology is to collect information relating to the execution of an application, for example information on the resources consumed by this application (memory, computing power of the processor, file descriptors, etc.) during its execution. .

L'invention tire profit de ces différentes technologies pour la mise en oeuvre d'une solution de monitoring hautement performante, permettant notamment un monitoring fin des composants logiciels constituant une application logicielle. L'invention permet par exemple le monitoring de composants logiciels exécutés sur une plateforme OSGI. Une architecture d'un système de monitoring utilisé pour la mise en oeuvre de l'invention est décrite par référence à la figure 1. Cette architecture comprend: - une plateforme 10 de service, pour l'exécution de composants logiciels; un répertoire 20 de composants logiciels, susceptibles d'être exécutés par la plateforme 10 de service; - une interface 15 de commande et d'accès aux services proposés par la plateforme 10; un dispositif de monitoring 30. The invention takes advantage of these different technologies for the implementation of a high performance monitoring solution, including a fine monitoring of software components constituting a software application. The invention makes it possible, for example, to monitor software components executed on an OSGI platform. An architecture of a monitoring system used for the implementation of the invention is described with reference to FIG. 1. This architecture comprises: a service platform for the execution of software components; a directory 20 of software components, capable of being executed by the service platform 10; an interface 15 for controlling and accessing the services offered by platform 10; a monitoring device 30.

La plateforme 10 est par exemple une plateforme OSGI, couplée au répertoire 20 de composants logiciels et intégrant une machine virtuelle Java pour l'exécution de composants logiciels codés en Java. La plateforme 10 comprend une mémoire 11 pour le chargement de code de composants logiciels et un processeur 11 pour exécuter de tels composants logiciels. Le répertoire 20 est conçu pour le stockage et le référencement de composants logiciels B1, B2 susceptibles d'être chargés et exécutés par la plateforme 10. Il est géré par l'intermédiaire de la plateforme 10 de service. Le répertoire 20 est également conçu pour le stockage et le référencement de greffon logiciels RAI, R1B susceptibles d'être chargés et exécutés par la plateforme 10, conçus pour le monitoring de composants logiciels B1, B2 exécutés par cette plateforme. De manière connue, une telle plateforme OSGi comprend une interface de commande 15 pour définir quel composant est à charger et pour déclencher le chargement et l'exécution de ce composant par la plateforme. Via l'interface de commande 15, un dispositif distant, tel que le dispositif de monitoring 30, est susceptible de communiquer avec la plateforme 10 de service, de gérer les composants logiciels du répertoire 20 et de déclencher et monitorer l'exécution d'un ou plusieurs de ces composants logiciels. The platform 10 is for example a platform OSGI, coupled to the directory 20 of software components and integrating a Java virtual machine for the execution of software components coded in Java. Platform 10 includes a memory 11 for loading software component code and a processor 11 for executing such software components. The directory 20 is designed for storing and referencing software components B1, B2 may be loaded and executed by the platform 10. It is managed through the service platform 10. The directory 20 is also designed for storing and referencing software plug-ins RAI, R1B capable of being loaded and executed by the platform 10, designed for the monitoring of software components B1, B2 executed by this platform. In a known manner, such a platform OSGi comprises a control interface 15 for defining which component is to be loaded and for triggering the loading and execution of this component by the platform. Via the control interface 15, a remote device, such as the monitoring device 30, is able to communicate with the service platform 10, to manage the software components of the directory 20 and to trigger and monitor the execution of a or more of these software components.

Le dispositif de monitoring 30 est ainsi conçu pour exploiter la plateforme 10 au travers de l'interface 15 de commande. Le dispositif de monitoring 30 comprend dans ce but une interface 35 de communication avec la plateforme 10 via l'interface 15 de commande. La communication entre l'interface 35 et l'interface 15 est établie à travers un réseau de télécommunication ou à travers un lien local de communication, filaire ou non filaire. Le dispositif de monitoring 30 comprend en outre un composant de monitoring 37 conçu pour, lorsqu'il couplé à la plateforme 10 de service, dialoguer avec la plateforme 10 au travers des interfaces 15 et 35, afin de gérer les composants logiciels du répertoire 20, de déclencher et monitorer l'exécution d'un ou plusieurs de ces composants logiciels et ainsi mettre en oeuvre des fonctions de monitoring. Le composant de monitoring 37 est conçu pour exécuter des modules de monitoring RB1, RB2, chacun de ces modules étant couplé avec un greffon logiciel RA1, RA2 exécuté sur la plateforme 10. Par exemple le module de monitoring R1B est conçu pour dialoguer avec le greffon logiciel RAI: envoyer des commandes pour invoquer l'exécution du greffon logiciel RAI, établir une liaison de communication avec le greffon logiciel RAI et recevoir via cette liaison des notifications et informations sur l'exécution d'un composant logiciel B1 ou B2 exécuté sur la plateforme 10, produites par le greffon logiciel RA1 pendant son exécution. Il en va de même pour le module de monitoring R2B couplé au greffon logiciel RA2. The monitoring device 30 is thus designed to operate the platform 10 through the control interface 15. The monitoring device 30 comprises for this purpose an interface 35 for communication with the platform 10 via the control interface 15. The communication between the interface 35 and the interface 15 is established through a telecommunication network or through a local communication link, wired or wireless. The monitoring device 30 further comprises a monitoring component 37 designed for, when coupled to the service platform 10, to communicate with the platform 10 through the interfaces 15 and 35, in order to manage the software components of the directory 20, to trigger and monitor the execution of one or more of these software components and thus implement monitoring functions. The monitoring component 37 is designed to execute monitoring modules RB1, RB2, each of these modules being coupled with a software plug-in RA1, RA2 executed on the platform 10. For example, the monitoring module R1B is designed to interact with the plug-in RAI software: send commands to invoke the execution of the RAI software plugin, establish a communication link with the RAI software plugin and receive via this link notifications and information on the execution of a software component B1 or B2 executed on the platform 10, produced by the software plugin RA1 during its execution. The same goes for the R2B monitoring module coupled to the RA2 software plugin.

Le dispositif de monitoring 30 comprend en outre une première partie 31 d'interface utilisateur au moyen de laquelle un utilisateur peut commander l'exécution d'un ou plusieurs composants logiciels référencés dans le répertoire 20 et activer des fonctions de monitoring d'un ou de plusieurs des composants logiciels en cours d'exécution. Dans ce but, cette interface utilisateur 31 comprend des éléments d'interface (boutons, menus, etc), formant moyens pour: - sélectionner un composant logiciel à exécuter parmi une liste de composants logiciels référencés, liste fournie par exemple par la plateforme 10 par interrogation du répertoire 20 de composants logiciels; il peut être prévu à cet endroit que l'utilisateur sélectionne une application logicielle parmi une liste d'applications logicielles, chacun de ces application logicielles faisant appel à un ensemble de composants logiciels; déclencher l'exécution d'un composant logiciel sélectionné; sélectionner un composant logiciel à monitorer parmi une liste de composants logiciels en cours d'exécution; - sélectionner une fonction de monitoring et/ou une règle de monitoring à utiliser pour monitorer un ou plusieurs composants logiciels en cours d'exécution; - déclencher le monitoring d'un composant logiciel en cours d'exécution en activant une fonction et/ou règle de monitoring sélectionnée. The monitoring device 30 further comprises a first user interface part 31 by means of which a user can control the execution of one or more software components referenced in the directory 20 and activate monitoring functions of one or more several of the software components running. For this purpose, this user interface 31 comprises interface elements (buttons, menus, etc.), forming means for: selecting a software component to be executed from among a list of referenced software components, list provided for example by platform 10 by querying the directory 20 of software components; it can be provided there that the user selects a software application from a list of software applications, each of these software applications using a set of software components; trigger the execution of a selected software component; selecting a software component to monitor from a list of running software components; - select a monitoring function and / or a monitoring rule to be used to monitor one or more software components running; - trigger the monitoring of a software component that is running by activating a selected function and / or monitoring rule.

Dans le contexte de ce document, une fonction de monitoring sert à déclencher l'envoi, à un dispositif de monitoring, d'au moins une information (ou un message) sur l'exécution du composant logiciel monitoré. Cette fonction de monitoring applique au moins une règle de monitoring définissant : - une ou plusieurs conditions déterminant quand une information doit être envoyée au dispositif de monitoring - quelle est l'information à envoyer quand cette ou ces conditions sont vérifiées. Une fonction de monitoring est ainsi conçue pour vérifier si une ou plusieurs conditions sont vérifiées et pour envoyer la ou les informations définies par la ou les règles de monitoring associées à cette fonction. In the context of this document, a monitoring function is used to trigger the sending, to a monitoring device, of at least one piece of information (or a message) on the execution of the monitored software component. This monitoring function applies at least one monitoring rule defining: - one or more conditions determining when information must be sent to the monitoring device - what is the information to be sent when this or these conditions are verified. A monitoring function is thus designed to check if one or more conditions are verified and to send the information or information defined by the monitoring rules associated with this function.

Le dispositif de monitoring 30 comprend enfin une deuxième partie 32 d'interface utilisateur au moyen de laquelle sont affichées des informations collectées pendant le monitoring et qui sont relatives à l'exécution, au sein de la plateforme 10 de service, d'un ou de plusieurs composants logiciels. The monitoring device 30 finally comprises a second user interface part 32 by means of which information collected during the monitoring is displayed and which relates to the execution, within the service platform 10, of one or several software components.

Les informations collectées comprennent par exemple - une information sur une ou des ressources consommées pendant l'exécution du composant logiciel; - une information sur un événement particulier qui s'est produit pendant l'exécution du composant logiciel; - une information sur une ou des anomalies détectées pendant l'exécution du composant logiciel; - une valeur de variable d'état, déterminée à partir d'une ou de plusieurs des informations sur une ou des ressources consommées et/ou sur une ou des anomalies détectées; - un message d'alerte relatif au déroulement de l'exécution du composant logiciel monitoré. The information collected includes, for example - information on one or more resources consumed during the execution of the software component; - information about a particular event that occurred during the execution of the software component; - information on one or more anomalies detected during the execution of the software component; a state variable value, determined from one or more of the information on one or more resources consumed and / or on one or more anomalies detected; an alert message relating to the progress of the execution of the monitored software component.

L'invention permet par exemple de détecter une des anomalies suivantes: Al) un composant logiciel a verrouillé une variable statique; un tel verrouillage peut paralyser l'exécution d'autres composants logiciels ayant besoin d'accéder à la variable statique verrouillée; A2) une consommation excessive de mémoire par un composant logiciel; un tel composant consomme une grande partie de la mémoire en conservant des références vers de nombreux et/ou paquets de données volumineux stockés en mémoire; une telle consommation excessive peut rendre impossible l'allocation de mémoire par d'autres composants logiciels d'exécutant sur la plateforme et déclencher une exception, c'est-à-dire l'émission d'une alerte signalant une anomalie d'exécution; A3) un composant logiciel exécute une boucle infinie: un tel composant logiciel peut rapidement consommer toutes la puissance de calcul du processeur (CPU) de la plateforme 10 ; A4) un composant logiciel crée des objets de manière répétitive sans les utiliser et/ou sans libérer l'espace mémoire servant au stockage de ces objets; un tel composant logiciel consomme inutilement les ressources du processeur (CPU); A5) un composant logiciel crée des tâches (nommées "threads" en anglais); un tel composant logiciel peut provoquer un crash de la plateforme 10 en dépassant le nombre de tâches supporté par cette plateforme; A6) un composant logiciel crée une tâche sans jamais retourner le contrôle au composant logiciel appelant; un tel composant logiciel bloque l'exécution du composant logiciel appelant; A7) un composant logiciel continue à s'exécuter même si la plateforme 10 tente de le désinstaller et/ou d'arrêter son exécution. L'invention permet la définition d'une grande variété de règles de monitoring. Comme déjà décrit ci-dessus, une règle de monitoring définit les conditions à vérifier avant l'envoi d'informations vers le dispositif de monitoring qui collecte ces informations. Ces conditions sont par exemple définies relativement aux anomalies détectées et/ou aux ressources consommées pour le ou les composants monitorés. L'information fournie est par exemple une variable d'état, représentative des ressources consommées par un composant logiciel en cours d'exécution et/ou des anomalies détectées pour ce composant logiciel. La valeur de la variable d'état fournie sera ainsi différente selon les ressources consommées et/ou les anomalies détectées. De telles règles de monitoring rendent configurable le monitoring de composants logiciels en ce qu'elles permettent de définir librement les conditions de déclenchement de l'envoi d'information / de messages d'alerte. Le tableau ci-dessous est un exemple de définition d'une fonction de monitoring à partir de trois règles de monitoring. Chaque ligne du tableau définit une de ces trois règles. La première colonne énonce les conditions devant être vérifiées pour que la valeur d'une variable d'état figurant dans la deuxième colonne soit envoyée: cette variable d'état est représentatif un état global de fonctionnement. Dans ce tableau, on note: Ccpu le pourcentage de la capacité du processeur qui est consommé par le composant logiciel monitoré; - HR (heap ratio) le pourcentage de l'espace mémoire système qui est consommé par le composant logiciel monitoré; NR le nombre de ressources consommées par le composant logiciel monitoré. Condition(s) Etat Aucune anomalie détectée "normal" 25% <= Ccpu <= 66% ou 25% <= HR "suspect" 8 < NR ou anomalie A6 ou A7 détectée 66% <= Ccpu ou 50% <= HR ou anomalie A2 ou A3 ou A4 "anormal" détectée Ce tableau indique que, selon la première règle de monitoring, lorsqu'aucune anomalie n'est détectée, la variable d'état remontée est "normal". Cette variable est représentative d'un fonctionnement normal. Ce tableau indique également que, selon la deuxième règle de monitoring, lorsque les conditions indiquées dans la deuxième ligne sont vérifiées (en prenant en compte les opérateurs booléens "ou" / "et"), la variable d'état remontée est "suspect". The invention makes it possible, for example, to detect one of the following anomalies: A1) a software component has locked a static variable; such a lock can paralyze the execution of other software components needing access to the locked static variable; A2) excessive memory consumption by a software component; such a component consumes a large part of the memory while maintaining references to numerous and / or large data packets stored in memory; such excessive consumption may make it impossible to allocate memory by other software components running on the platform and to raise an exception, that is to say the emission of an alert signaling an execution anomaly; A3) a software component executes an infinite loop: such a software component can quickly consume all the computing power of the processor (CPU) of the platform 10; A4) a software component repetitively creates objects without using them and / or without releasing the storage space for these objects; such a software component unnecessarily consumes CPU resources; A5) a software component creates tasks (called "threads" in English); such a software component can cause a crash of the platform 10 by exceeding the number of tasks supported by this platform; A6) a software component creates a task without ever returning the control to the calling software component; such a software component blocks the execution of the calling software component; A7) a software component continues to execute even if the platform 10 attempts to uninstall it and / or stop its execution. The invention allows the definition of a wide variety of monitoring rules. As already described above, a monitoring rule defines the conditions to be verified before sending information to the monitoring device that collects this information. These conditions are for example defined relative to the anomalies detected and / or resources consumed for the monitored component (s). The information provided is for example a state variable representative of the resources consumed by a running software component and / or anomalies detected for this software component. The value of the provided state variable will thus be different depending on the resources consumed and / or the anomalies detected. Such monitoring rules make configurable the monitoring of software components in that they allow to freely define the conditions for triggering the sending of information / alert messages. The table below is an example of how to define a monitoring function from three monitoring rules. Each row of the table defines one of these three rules. The first column states the conditions to be verified for the value of a state variable in the second column to be sent: this state variable is representative of a global state of operation. In this table, we note: Ccpu the percentage of the capacity of the processor that is consumed by the monitored software component; - HR (heap ratio) the percentage of system memory space that is consumed by the monitored software component; NR the number of resources consumed by the monitored software component. Condition (s) Condition No abnormality detected "normal" 25% <= Ccpu <= 66% or 25% <= HR "suspect" 8 <NR or A6 or A7 abnormality detected 66% <= Ccpu or 50% <= HR or anomaly A2 or A3 or A4 "abnormal" detected This table indicates that, according to the first monitoring rule, when no anomaly is detected, the ascending status variable is "normal". This variable is representative of normal operation. This table also indicates that, according to the second monitoring rule, when the conditions indicated in the second line are checked (taking into account the Boolean operators "or" / "and"), the raised state variable is "suspect" .

Pour une fonction de monitoring ou pour plusieurs est conçu et développé un greffon logiciel, comprenant des instructions de programme pour la mise en oeuvre de cette fonction de monitoring. Ce greffon logiciel est défini au moyen d'une technique de programmation par aspect, relativement à ces points de jonctions prédéfinis existant dans le code du composant logiciel à monitorer. Il n'est donc pas nécessaire d'effectuer une quelconque modification du code du composant logiciel à monitorer, ni même de personnaliser le greffon logiciel pour un composant logiciel particulier: le greffon logiciel ainsi défini est utilisable pour le monitoring de tout composant logiciel conforme aux interfaces de la plateforme. For a monitoring function or for several is designed and developed a software plug-in, including program instructions for the implementation of this monitoring function. This software plug-in is defined by means of an aspect programming technique, relative to these predefined junction points existing in the code of the software component to be monitored. It is therefore not necessary to make any modification of the code of the software component to be monitored, or even to customize the software plug-in for a particular software component: the software plug-in thus defined can be used for the monitoring of any software component conforming to the platform interfaces.

La méthode de monitoring selon l'invention est ainsi non intrusive pour le programmeur de composants logiciels. En particulier, celui-ci n'a pas besoin d'avoir connaissance de la fonction de monitoring et/ou des règles de monitoring mises en oeuvre par le greffon logiciel pour écrire le code du composant logiciel. Le code du greffon logiciel peut lui-même être écrit et/ou modifié à tout moment, par exemple après que les composants logiciels à monitorer aient été référencés dans le répertoire de composants 20, voire même au cours de l'exécution par la plateforme d'un tel composant logiciel. Un exemple simplifié de code source d'un greffon logiciel de monitoring est reproduit ci-dessous: // POINT CUTs // The monitoring method according to the invention is thus non-intrusive for the programmer of software components. In particular, it does not need to be aware of the monitoring function and / or monitoring rules implemented by the software plug-in to write the code of the software component. The code of the software plugin can itself be written and / or modified at any time, for example after the software components to be monitored have been referenced in the component directory 20, or even during execution by the platform. such a software component. A simplified example of the source code of a monitoring software plugin is reproduced below: // POINT CUTs //

pointcut bundleStarted(BundleContext bc) : execution (* BundleActivator.start(BundleContext)) && args (bc); pointcut bundleStarted (BundleContext bc): execution (* BundleActivator.start (BundleContext)) && args (bc);

pointcut bundleStoppedQ : execution (* BundleActivator.stop(BundleContext)); pointcut threadRunQ : execution (* Runnable.run()) && !within(ThreadAspect); pointcut bundleStoppedQ: execution (* BundleActivator.stop (BundleContext)); pointcut threadRunQ: execution (* Runnable.run ()) &&! within (ThreadAspect);

pointcut heapRequest() : call (*.new(..)) && !within(ThreadAspect); pointcut heapRequest (): call (* .new (..)) &&! within (ThreadAspect);

Ce code définit plusieurs points de jonction: - "pointcut bundleStarted(BundleContext bc)" : définit une fonction à exécuter au démarrage d'un composant logiciel ; - pointcut bundleStoppedO" : définit une fonction à exécuter à la fin de l'exécution d'un composant logiciel ; - " pointcut threadRun()" : définit une fonction à exécuter au démarrage par un composant logiciel d'une sous-tâche ("thread" en anglais); - " pointcut heapRequestO" : définit une fonction à exécuter suite à une allocation de mémoire demandée par un composant logiciel. This code defines several junction points: - "pointcut bundleStarted (BundleContext bc)": defines a function to execute when starting a software component; - pointcut bundleStoppedO ": defines a function to execute at the end of the execution of a software component -" pointcut threadRun () ": defines a function to execute at startup by a software component of a subtask (" thread "-" pointcut heapRequestO ": defines a function to execute following a memory allocation requested by a software component.

L'utilisation d'un greffon logiciel mettant en oeuvre une fonction de monitoring et appliquant une règle de monitoring permet de modifier, au cours de l'exécution d'un composant logiciel, la règle ou la fonction de monitoring couramment utilisée pour un composant logiciel. Si on considère qu'une modification de règle / fonction revient à remplacer une règle R1 / fonction Fl initiale par une autre règle R2 / fonction F2, différente de la règle R1 / fonction Fi, la modification de règle / fonction de monitoring revient à : - arrêter l'exécution du greffon logiciel RAI mettant en oeuvre la fonction de monitoring F1, appliquant la règle Ri et conçue pour envoyer au dispositif de monitoring au moins une information sur l'exécution d'un composant logiciel visé, - déclencher, au cours de l'exécution du composant logiciel, une exécution d'un autre greffon logiciel RA2, définissant la fonction de monitoring F2, appliquant la règle de monitoring R2 et conçue pour fournir au dispositif de monitoring au moins une information sur l'exécution d'un composant logiciel visé. Le remplacement d'une règle / fonction de monitoring par une autre permet par exemple de remonter des informations différentes et/ou de considérer des anomalies différentes et/ou de définir des critères de déclenchement de remontée d'alerte différents. The use of a software plug-in implementing a monitoring function and applying a monitoring rule makes it possible to modify, during the execution of a software component, the rule or the monitoring function commonly used for a software component. . If we consider that a modification of rule / function amounts to replacing an initial rule R1 / function F1 by another rule R2 / function F2, different from the rule R1 / function Fi, the modification of rule / function of monitoring returns to: stopping the execution of the software plug-in RAI implementing the monitoring function F1, applying the rule Ri and designed to send to the monitoring device at least one piece of information on the execution of a targeted software component, to trigger, during of the execution of the software component, an execution of another software plug-in RA2, defining the monitoring function F2, applying the monitoring rule R2 and designed to provide the monitoring device with at least one information on the execution of a software component targeted. The replacement of one rule / monitoring function by another makes it possible for example to trace different information and / or to consider different anomalies and / or to define different triggering triggering criteria.

L'invention permet également l'activation / désactivation à tout moment de fonctions / règles de monitoring. L'activation d'une fonction de monitoring revient à déclencher, à travers l'interface 15 de commande, l'exécution d'un greffon logiciel mettant en oeuvre cette fonction / règle de monitoring. La désactivation d'une fonction de monitoring revient à stopper, à travers l'interface 15 de commande, l'exécution d'un greffon logiciel mettant en oeuvre cette fonction / règle de monitoring. L'utilisateur qui observe les informations envoyées au dispositif de monitoring peut par exemple adapter le nombre de greffons logiciels en cours d'exécution si la plateforme est déjà chargée par ailleurs par l'exécution des composants logiciels ou bien sélectionner des fonctions de monitoring moins consommatrices de ressources. The invention also allows activation / deactivation at any time of functions / monitoring rules. The activation of a monitoring function amounts to triggering, through the control interface 15, the execution of a software plug-in implementing this function / monitoring rule. The deactivation of a monitoring function amounts to stopping, through the control interface, the execution of a software plug-in implementing this function / monitoring rule. The user who observes the information sent to the monitoring device can, for example, adapt the number of software plugins that are running if the platform is already loaded by the execution of the software components or select less demanding monitoring functions. of resources.

Un mode de réalisation du procédé selon l'invention est décrit par référence à la figure 2: il correspond à un scénario possible pour le monitoring de composants logiciels. Dans ce qui suit, l'utilisateur U1 désigne une personne physique ou bien une application de monitoring exécutant automatiquement les opérations décrites ici concernant cet utilisateur. A l'étape 200, un utilisateur U1 du dispositif de monitoring 30 sélectionne une application logicielle parmi une liste d'applications logicielles référencées dans le répertoire 15. On suppose, pour simplifier, que cette application logicielle comprend un seul composant logiciel B2. A l'étape 210, l'utilisateur déclenche au moyen de l'interface utilisateur 31 l'exécution de cette application logicielle: une commande d'exécution est alors transmise par le dispositif de monitoring 30 à la plateforme 10 au travers des interfaces 35 et 15. En réponse à cette commande d'exécution, la plateforme 10 charge en mémoire le code du composant logiciel B2 puis exécute le composant logiciel B2. A l'étape 220, un utilisateur sélectionne une fonction F1 de monitoring parmi une liste de fonctions de monitoring disponibles et demande le déclenchement du monitoring de l'application logicielle sélectionnée à l'étape 200 au moyen de la fonction F1 sélectionnée. Cette sélection de fonction de monitoring revient à une sélection d'un greffon logiciel parmi ceux référencés par le répertoire 20. Cette sélection déclenche l'exécution par le dispositif de monitoring 30 du module R1B, qui invoque l'exécution du greffon logiciel RAi. Une commande de chargement de code de monitoring est alors transmise par le dispositif de monitoring 30 à la plateforme 10 au travers des interfaces 35 et 15. En réponse à cette commande de chargement, la plateforme 10 charge en mémoire le code d'un composant logiciel de monitoring, réalisé sous forme de greffon logiciel RAI, mettant en oeuvre la fonction de monitoring sélectionnée. Ce code est chargé sans arrêt de l'exécution du composant logiciel B2 à monitorer. Le module R1B établit alors une liaison de communication avec le greffon logiciel RAI et peut recevoir via cette liaison des notifications et informations sur l'exécution du composant logiciel B2 exécuté sur la plateforme 10, notifications et informations qui sont produites par le greffon logiciel RAI pendant son exécution. One embodiment of the method according to the invention is described with reference to FIG. 2: it corresponds to a possible scenario for the monitoring of software components. In what follows, the user U1 designates a natural person or a monitoring application automatically executing the operations described here concerning this user. In step 200, a user U1 of the monitoring device 30 selects a software application from a list of software applications referenced in the directory 15. It is assumed, for simplicity, that this software application comprises a single software component B2. In step 210, the user triggers by means of the user interface 31 the execution of this software application: an execution command is then transmitted by the monitoring device 30 to the platform 10 through the interfaces 35 and 15. In response to this execution command, the platform 10 loads in memory the code of the software component B2 and then executes the software component B2. In step 220, a user selects a monitoring function F1 from among a list of available monitoring functions and requests the triggering of the monitoring of the software application selected in step 200 by means of the selected function F1. This selection of a monitoring function returns to a selection of a software plug-in from those referenced by the directory 20. This selection triggers the execution by the monitoring device 30 of the module R1B, which invokes the execution of the software plug-in RAi. A monitoring code loading command is then transmitted by the monitoring device 30 to the platform 10 through the interfaces 35 and 15. In response to this loading command, the platform 10 loads into memory the code of a software component. monitoring, realized in the form of RAI software plug-in, implementing the selected monitoring function. This code is loaded without stopping the execution of the software component B2 to monitor. The module R1B then establishes a communication link with the software plug-in RAI and can receive via this link notifications and information on the execution of the software component B2 executed on the platform 10, notifications and information that are produced by the software plugin RAI during its execution.

A l'étape 225, la plateforme 10 exécute le greffon logiciel RAI et met en oeuvre ainsi la fonction F1 de monitoring définie par ce greffon logiciel RAI: les règles de monitoring associées à la fonction de monitoring sélectionnée sont vérifiées et la ou les informations à remonter sont envoyées par le greffon logiciel au module R1B du dispositif de monitoring au travers des interfaces 15 et 35. Tout ou partie des informations envoyées par le greffon logiciel RAI sont affichées dans l'interface utilisateur 32 du dispositif de monitoring 30. A l'étape 230, un utilisateur sélectionne une autre fonction F2 de monitoring parmi la liste de fonctions de monitoring disponibles et demande le remplacement de la fonction F1 par la fonction F2 pour le monitoring de l'application logicielle sélectionnée à l'étape 200. Cette sélection déclenche l'exécution par le dispositif de monitoring 30 du module R2B, qui invoque l'exécution du greffon logiciel RA2. Une commande de remplacement de code de monitoring est alors transmise par le dispositif de monitoring 30 à la plateforme 10 au travers des interfaces 35 et 15. En réponse à cette commande de remplacement, la plateforme 10 arrêt l'exécution du greffon logiciel RAI puis charge en mémoire le code d'un autre composant logiciel de monitoring RA2, réalisé lui-aussi sous forme de greffon logiciel RA2, mettant en oeuvre la fonction de monitoring sélectionnée. Ce code est chargé sans arrêt de l'exécution du composant logiciel B2 à monitorer. In step 225, the platform 10 executes the software plug-in RAI and thus implements the monitoring function F1 defined by this software plug-in RAI: the monitoring rules associated with the selected monitoring function are checked and the information or information to back are sent by the software plug-in to the module R1B of the monitoring device through the interfaces 15 and 35. All or part of the information sent by the RAI software plug-in is displayed in the user interface 32 of the monitoring device 30. step 230, a user selects another monitoring function F2 from the list of available monitoring functions and requests the replacement of the function F1 by the function F2 for the monitoring of the software application selected in step 200. This selection triggers the execution by the monitoring device 30 of the module R2B, which invokes the execution of the software plugin RA2. A control code replacement command is then transmitted by the monitoring device 30 to the platform 10 through the interfaces 35 and 15. In response to this replacement command, the platform 10 stops the execution of the RAI software plugin then load in memory the code of another software monitoring component RA2, also made in the form of software plug-in RA2, implementing the selected monitoring function. This code is loaded without stopping the execution of the software component B2 to monitor.

Le module R2B établit alors une liaison de communication avec le greffon logiciel RA2 et peut recevoir via cette liaison des notifications et informations sur l'exécution du composant logiciel B2 exécuté sur la plateforme 10, notifications et informations qui sont produites par le greffon logiciel RA2 pendant son exécution. A l'étape 235, la plateforme 10 exécute le greffon logiciel RA2 et met en oeuvre ainsi la fonction F2 de monitoring définie par ce greffon logiciel RA2: les règles de monitoring associées à la fonction de monitoring sélectionnée sont vérifiées et la ou les informations à remonter sont envoyées par le greffon logiciel au module R2B du dispositif de monitoring au travers des interfaces 15 et 35. Tout ou partie des informations envoyées par le greffon logiciel RA2 sont affichées dans l'interface utilisateur 32 du dispositif de monitoring 30. A l'étape 240, un utilisateur du dispositif de monitoring 30 demande l'arrêt de l'exécution du greffon logiciel RA2 chargé à l'étape 237. Une commande d'arrêt est alors transmise par le dispositif de monitoring 30 à la plateforme 10 au travers des interfaces 35 et 15. En réponse à cette commande d'arrêt, la plateforme 10 arrête l'exécution du greffon logiciel RA2, alors que celle du composant logiciel B2 se poursuit. Les étapes 200 à 240 peuvent ensuite être répétées pour une autre application logicielle. Le scénario décrit ici peut se généraliser au cas de monitoring de plusieurs composants logiciels B1, B2 pour chacun desquels une fonction de monitoring est exécutée au moyen d'un des greffons logiciels RAI, RA2 mettant en oeuvre cette fonction. Le système de monitoring selon l'invention est ainsi souple et adaptable à toute situation, quels que soient les composants logiciels B1, B2 en cours d'exécution. The module R2B then establishes a communication link with the software plug-in RA2 and can receive via this link notifications and information on the execution of the software component B2 executed on the platform 10, notifications and information that are produced by the software plug-in RA2 during its execution. In step 235, the platform 10 executes the software plug-in RA2 and thus implements the monitoring function F2 defined by this software plug-in RA2: the monitoring rules associated with the selected monitoring function are checked and the information or information to back are sent by the software plug-in to the module R2B of the monitoring device through the interfaces 15 and 35. All or part of the information sent by the software plug-in RA2 is displayed in the user interface 32 of the monitoring device 30. step 240, a user of the monitoring device 30 requests the stop of the execution of the software graft RA2 loaded in step 237. A stop command is then transmitted by the monitoring device 30 to the platform 10 through the interfaces 35 and 15. In response to this stop command, the platform 10 stops the execution of the software graft RA2, while that of the software component B2 continues. Steps 200-240 can then be repeated for another software application. The scenario described here can be generalized to the case of monitoring of several software components B1, B2 for each of which a monitoring function is executed by means of one of the RAI, RA2 software plugins implementing this function. The monitoring system according to the invention is thus flexible and adaptable to any situation, regardless of the software components B1, B2 being executed.

Grâce à ce système, il est envisageable de créer parallèlement, au cours de l'exécution d'un composant logiciel, un nouveau greffon logiciel pour la mise en oeuvre d'une nouvelle fonction de monitoring, adaptée à la détection de certaines anomalies ou à la remontée d'informations concernant un problème particulier détecté pour ce composant logiciel, puis de référencer ce greffon logiciel dans le répertoire 20 avant d'invoquer l'exécution de ce greffon logiciel et ainsi d'améliorer l'analyse et la compréhension du problème détecté. With this system, it is conceivable to create in parallel, during the execution of a software component, a new software plug-in for the implementation of a new monitoring function, adapted to the detection of certain anomalies or to the feedback of information concerning a particular problem detected for this software component, then to reference this software plugin in the directory 20 before invoking the execution of this software plugin and thus to improve the analysis and the understanding of the detected problem .

Claims (9)

REVENDICATIONS1. Procédé de monitoring d'une exécution d'un composant logiciel (B1, B2), le procédé comprenant - une étape de déclenchement, au cours de l'exécution dudit composant logiciel, d'une exécution d'un greffon logiciel (RAI, RB1) définissant une fonction de monitoring conçue pour fournir à un dispositif de monitoring (30) au moins une information sur l'exécution dudit composant logiciel, - une étape d'affichage d'au moins une information fournie au dispositif de monitoring par le greffon logiciel. REVENDICATIONS1. A method of monitoring an execution of a software component (B1, B2), the method comprising - a step of triggering, during the execution of said software component, an execution of a software plugin (RAI, RB1 ) defining a monitoring function designed to provide at least one information on the execution of said software component to a monitoring device (30), - a step of displaying at least one information supplied to the monitoring device by the software plug-in . 2. Procédé de monitoring selon la revendication 1 dans lequel ledit greffon logiciel définit, relativement à des opérations prédéfinies d'un code source dudit composant logiciel, quelle est la ou quelles sont les informations à fournir lorsque des conditions, définies également par ce greffon logiciel, sont remplies au moment de l'exécution d'une telle opération. 2. Monitoring method according to claim 1, wherein said software plugin defines, with respect to predefined operations of a source code of said software component, what is the information to be provided when conditions, also defined by this software plugin. , are fulfilled at the time of the execution of such an operation. 3. Procédé de monitoring selon la revendication 1 dans lequel ladite fonction de monitoring applique au moins une règle de monitoring définissant la ou les informations à fournir audit dispositif de monitoring et les conditions dans lesquelles cette ou ces informations sont à fournir. 3. The monitoring method according to claim 1, wherein said monitoring function applies at least one monitoring rule defining the information or information to be provided to said monitoring device and the conditions under which this or these information is to be provided. 4. Procédé de monitoring selon la revendication 1 comprenant une étape de modification, au cours de l'exécution dudit composant logiciel, de la fonction de monitoring appliquée audit composant logiciel. 4. The monitoring method according to claim 1 comprising a step of modifying, during the execution of said software component, the monitoring function applied to said software component. 5. Procédé de monitoring selon la revendication 4, dans lequel l'étape de modification comprend: - une étape d'arrêt de l'exécution dudit greffon logiciel, - une étape de déclenchement, au cours de l'exécution dudit composant logiciel, d'une exécution d'un autre greffon logiciel définissant une autre fonction de monitoring, conçue pour fournir au dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel et appliquant au moins une autre règle de monitoring. 5. Monitoring method according to claim 4, wherein the modifying step comprises: a step of stopping the execution of said software plug-in, a triggering step, during the execution of said software component, an execution of another software plug-in defining another monitoring function, designed to provide the monitoring device with at least one information on the execution of said software component and applying at least one other monitoring rule. 6. Procédé de monitoring selon la revendication 1 comprenant une étape de mise en oeuvre de moyens de sélection d'une règle de monitoring à utiliser, le greffon logiciel exécuté mettant en oeuvre une fonction de monitoring appliquant la règle sélectionnée. 6. Monitoring method according to claim 1 comprising a step of implementing means for selecting a monitoring rule to be used, the executed software plug-in implementing a monitoring function applying the selected rule. 7. Procédé de monitoring selon la revendication 1 dans lequel ledit greffon logiciel est utilisable pour le monitoring de plusieurs composants logiciels. 7. Monitoring method according to claim 1 wherein said software plugin is used for monitoring several software components. 8. Dispositif de monitoring (30) d'une exécution d'un composant logiciel, le dispositif comprenant - des moyens de déclenchement, au cours de l'exécution dudit composant logiciel, d'une exécution d'un greffon logiciel définissant une fonction de monitoring conçue pour fournir à un dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel, - des moyens d'affichage d'au moins une information fournie au dispositif de monitoring par le greffon logiciel. 8. Device for monitoring (30) an execution of a software component, the device comprising - means for triggering, during the execution of said software component, an execution of a software plug-in defining a function of monitor designed to provide a monitoring device with at least one information on the execution of said software component, - means for displaying at least one piece of information supplied to the monitoring device by the software plug-in. 9. Plateforme d'exécution de composants logiciels, couplée à un dispositif de monitoring (30) selon la revendication 9, comprenant une interface pour exécuter, au cours de l'exécution d'un dit composant logiciel, un greffon logiciel définissant une fonction de monitoring conçue pour fournir audit dispositif de monitoring au moins une information sur l'exécution dudit composant logiciel. 9. A software component execution platform, coupled to a monitoring device (30) according to claim 9, comprising an interface for executing, during the execution of a said software component, a software plug-in defining a function of monitoring device designed to provide the monitoring device with at least one information on the execution of said software component.
FR1060925A 2010-12-21 2010-12-21 Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device Pending FR2963840A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1060925A FR2963840A1 (en) 2010-12-21 2010-12-21 Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1060925A FR2963840A1 (en) 2010-12-21 2010-12-21 Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device

Publications (1)

Publication Number Publication Date
FR2963840A1 true FR2963840A1 (en) 2012-02-17

Family

ID=44276186

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1060925A Pending FR2963840A1 (en) 2010-12-21 2010-12-21 Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device

Country Status (1)

Country Link
FR (1) FR2963840A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188018A (en) * 2019-05-29 2019-08-30 广州伟宏智能科技有限公司 A kind of data are synchronous to replicate software O&M monitoring system
CN115934940A (en) * 2022-11-30 2023-04-07 南京晓庄学院 Management software security maintenance system based on internet information technology

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165892A1 (en) * 2001-05-03 2002-11-07 Doug Grumann Method and apparatus to extract the health of a service from a host machine
US6519638B1 (en) * 1999-06-01 2003-02-11 International Business Machines Corporation Object-oriented framework for the generic collection of system data
US20080306712A1 (en) * 2007-06-08 2008-12-11 Bea Systems, Inc. Performance Monitoring Infrastructure for Distributed Transaction Service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519638B1 (en) * 1999-06-01 2003-02-11 International Business Machines Corporation Object-oriented framework for the generic collection of system data
US20020165892A1 (en) * 2001-05-03 2002-11-07 Doug Grumann Method and apparatus to extract the health of a service from a host machine
US20080306712A1 (en) * 2007-06-08 2008-12-11 Bea Systems, Inc. Performance Monitoring Infrastructure for Distributed Transaction Service

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HOLLINGSWORTH J K ET AL: "MDL: a language and compiler for dynamic program instrumentation", PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES., 1997. PROCEEDINGS. , 1997 INTERNATIONAL CONFERENCE ON SAN FRANCISCO, CA, USA 10-14 NOV. 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 10 November 1997 (1997-11-10), pages 201 - 212, XP010261151, ISBN: 978-0-8186-8090-8, DOI: DOI:10.1109/PACT.1997.644016 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110188018A (en) * 2019-05-29 2019-08-30 广州伟宏智能科技有限公司 A kind of data are synchronous to replicate software O&M monitoring system
CN115934940A (en) * 2022-11-30 2023-04-07 南京晓庄学院 Management software security maintenance system based on internet information technology

Similar Documents

Publication Publication Date Title
US8555238B2 (en) Programming and development infrastructure for an autonomic element
US11722376B2 (en) Execution of a topology
US10673882B2 (en) Network flow control of internet of things (IoT) devices
US9426090B2 (en) Method and system for policy based lifecycle management of virtual software appliances
US11842222B2 (en) Using scripts to bootstrap applications with metadata from a template
US8510712B1 (en) Testing in-container software objects
US9218100B2 (en) Method and system for partitioning asset management plugins
JP2007500386A (en) Grid organization
Huang et al. The art of app compartmentalization: Compiler-based library privilege separation on stock android
US8661456B2 (en) Extendable event processing through services
WO2014202932A1 (en) Enforcing software compliance
JP2007500385A (en) Grid browser component
WO2012161974A1 (en) Monitoring service in a distributed platform
WO2021162860A1 (en) Multi-tenant java agent instrumentation system
FR2963840A1 (en) Method for monitoring execution of software component on platform by data processor of e.g. physical entity, involves triggering execution of software graft defining monitoring function designed to provide information to monitoring device
US10073689B2 (en) Managing application lifecycles within a federation of distributed software applications
Wang et al. Stakeholder interactions to support service creation in cloud computing
US10747590B2 (en) Application logging adapters
Lopez-de-Ipina et al. Dynamic discovery and semantic reasoning for next generation intelligent environments
CN115480775A (en) Cloud and primary container platform integration method and system
Liu et al. Implementing adaptive performance management in server applications
Valetto et al. A uniform programming abstraction for effecting autonomic adaptations onto software systems
Keller et al. Towards a CIM schema for runtime application management
Shmelkin et al. Towards role-based context-aware monitoring systems
US11989558B2 (en) Automatic generation of a cloud integration adapter from a standard, programming language-agnostic interface specification