FR2821942A1 - System for simultaneously monitoring and testing distinct processes executed independently on information systems, comprises monitoring and testing module connected to processes by multiplexing - Google Patents
System for simultaneously monitoring and testing distinct processes executed independently on information systems, comprises monitoring and testing module connected to processes by multiplexing Download PDFInfo
- Publication number
- FR2821942A1 FR2821942A1 FR0103157A FR0103157A FR2821942A1 FR 2821942 A1 FR2821942 A1 FR 2821942A1 FR 0103157 A FR0103157 A FR 0103157A FR 0103157 A FR0103157 A FR 0103157A FR 2821942 A1 FR2821942 A1 FR 2821942A1
- Authority
- FR
- France
- Prior art keywords
- sep
- processes
- execution
- distinct
- response
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
<Desc/Clms Page number 1> <Desc / Clms Page number 1>
PROCEDE ET SYSTEME DE SUIVI ET DE CONTROLE D'EXECUTION SIMULTANE D'UNE PLURALITE DE PROCESSUS DISTINCTS EXECUTES INDEPENDAMMENT SUR DES SYSTEMES INFORMATIOUES. METHOD AND SYSTEM FOR MONITORING AND CONTROLLING SIMULTANEOUS EXECUTION OF A PLURALITY OF SEPARATE PROCESSES EXECUTED INDEPENDENTLY ON COMPUTER SYSTEMS.
La multiplication des échanges de données par des systèmes informatiques distincts, connectés en réseau par exemple, a connu un essor sans précédent, en raison de la mise en place du réseau Internet et de la création de sites d'accès à des informations, des services et/ou des produits disponibles dans le commerce, d'une part, et de l'augmentation, régulière, de la puissance de calcul allouée aux systèmes informatiques précités, d'autre part. The multiplication of data exchanges by separate computer systems, networked for example, has experienced an unprecedented boom, due to the establishment of the Internet and the creation of sites for access to information, services and / or commercially available products, on the one hand, and the regular increase in computing power allocated to the aforementioned computer systems, on the other hand.
Parallèlement, le développement de langages de haut niveau, tels que le langage JAVA a permis la mise à disposition du grand public d'applications spécifiques exécutées par exemple en mode interactif entre terminaux constitutifs des systèmes informatiques distincts précités, ces applications étant exécutées sous forme de processus distincts spécifiques. At the same time, the development of high-level languages, such as the JAVA language, has made it possible for the general public to make available specific applications executed for example in interactive mode between terminals constituting the aforementioned separate computer systems, these applications being executed in the form of specific distinct processes.
Alors que le problème de la sécurisation des transactions entre les processus précités a pu être résolu par des solutions satisfaisantes mettant en oeuvre des systèmes informatiques embarqués, tels que des cartes à microprocesseur, munis de moyens cryptographiques, permettant la mise en oeuvre de chiffrement/déchiffrement des données transmises ou reçues, la multiplication des processus distincts spécifiques précités pose en outre le problème de la fiabilité de l'exécution de ces processus, la notion de fiabilité précitée recouvrant, au moins partiellement, la notion de sécurisation des transactions mises en oeuvre entre les parties à ces transactions. While the problem of securing transactions between the aforementioned processes has been solved by satisfactory solutions implementing embedded computer systems, such as microprocessor cards, provided with cryptographic means, allowing the implementation of encryption / decryption data transmitted or received, the multiplication of specific separate processes above also poses the problem of the reliability of the execution of these processes, the concept of reliability above covering, at least partially, the concept of securing transactions implemented between parties to these transactions.
<Desc/Clms Page number 2> <Desc / Clms Page number 2>
A l'heure actuelle, les langages de haut niveau précités, tels que par exemple le langage JAVA, sont susceptibles de permettre la mise en oeuvre de protocoles de suivi et de contrôle d'exécution d'un processus donné exécuté par un système informatique donné, protocole plus communément désigné par protocole de débogage. L'exécution de ce type de protocole met en oeuvre des commandes adressées au processus objet de l'opération de suivi et de contrôle, des réponses adressées par ce même processus et des événements spécifiques à ce processus et permet d'engendrer une représentation abstraite de ce processus et de l'ensemble des tâches de ce dernier, tâches organisées en une hiérarchie de groupes de tâches. At present, the aforementioned high-level languages, such as for example the JAVA language, are capable of enabling the implementation of protocols for monitoring and controlling the execution of a given process executed by a given computer system. , more commonly referred to as a debug protocol. The execution of this type of protocol implements commands addressed to the process object of the monitoring and control operation, responses addressed by this same process and events specific to this process and makes it possible to generate an abstract representation of this process and all the tasks of the latter, tasks organized into a hierarchy of task groups.
La mise en oeuvre de tels protocoles peut être réalisée, lorsque le processus est exécuté par l'intermédiaire d'un programme JAVA, ou correspondant à une sémantique proche du langage JAVA, à partir d'un outil logiciel de suivi et de contrôle de l'exécution, dit outil de débogage, client du protocole JDWP pour JAVA WIRE DEBUG PROTOCOL. Le protocole JDWP est spécifié par la société SUN MICROSYSTEMS. Les spécifications complètes du protocole JDWPO, sont notamment disponibles sur le site WEB http ://java. sun. com/j2se/1. 3/docs/guide/jpda/jdwp-spec. html. The implementation of such protocols can be performed, when the process is executed via a JAVA program, or corresponding to a semantics close to the JAVA language, from a software tool for monitoring and control of the JAVA program. runtime, says debugging tool, JDWP protocol client for JAVA WIRE DEBUG PROTOCOL. The JDWP protocol is specified by the company SUN MICROSYSTEMS. The complete specifications of the JDWPO protocol are available on the website http: // java. sun. com / j2se / 1. 3 / docs / guide / jpda / jdwp-spec. html.
Un tel protocole peut être mis en oeuvre, d'une part, par toute machine virtuelle JAVA version 1.2 et 1.3 offrant un mode de débogage et, d'autre part, par tout outil de débogage conforme aux spécifications du protocole JDWP. L'utilisation d'un tel protocole permet, notamment, de séparer fortement l'outil de débogage proprement dit de sa machine cible, c'est à dire du processus exécuté objet du suivi et du contrôle d'exécution ou débogage. Cette Such a protocol can be implemented, on the one hand, by any JAVA virtual machine version 1.2 and 1.3 providing a debugging mode and, on the other hand, by any debugging tool in accordance with the specifications of the JDWP protocol. The use of such a protocol makes it possible, in particular, to strongly separate the debugging tool itself from its target machine, that is to say from the executed process object tracking and execution control or debugging. This
<Desc/Clms Page number 3> <Desc / Clms Page number 3>
forte séparation est rendue possible grâce aux caractéristiques intrinsèques de ce type de protocole selon lesquelles, d'une part, la seule connaissance du processus soumis au débogage dont dispose l'outil de débogage provent du protocole JDWP en tant que tel, l'outil de débogage n'ayant pas à accéder aux fichiers de code objet compilés de l'application exécutée selon le processus à déboguer alors que l'accès par l'outil de débogage aux fichiers du code source de l'application peut être effectué aux seules fins d'affichage de ses derniers en mode texte, en l'absence de toute interprétation, alors que, d'autre part, les commandes du protocole JDWP sont génériques et indépendantes de l'application à déboguer et utilisent notamment des identificateurs d'objets ou de classes numériques de tailles variables, ce qui permet bien entendu une mise en oeuvre adaptée à une grande variété de processus cibles à déboguer.
strong separation is made possible by the intrinsic characteristics of this type of protocol according to which, on the one hand, the only knowledge of the debugging process available to the debugging tool comes from the JDWP protocol as such, the debugging that does not have access to the compiled object code files of the application that is running according to the process being debugged, while access by the debugging tool to the source code files of the application can be done for the sole purpose of display of the latter in text mode, in the absence of any interpretation, while, on the other hand, the commands of the JDWP protocol are generic and independent of the application to be debugged and use particular identifiers of objects or numerical classes of variable sizes, which of course allows an implementation adapted to a wide variety of target processes to debug.
Pour cette raison, chaque processus cible à déboguer, constitué par un serveur JDWPO sur lequel se connecte l'outil de débogage, ne doit pas nécessairement être constitué par une machine virtuelle JAVA mais doit simplement se comporter comme tel. For this reason, each target process to be debugged, consisting of a JDWPO server on which the debugging tool connects, does not have to be a JAVA virtual machine, but must simply behave as such.
La présente invention a pour objet, la mise en oeuvre d'un procédé et d'un système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques distincts, accessibles par réseau. It is an object of the present invention to provide a method and system for monitoring and controlling the simultaneous execution of a plurality of distinct independently executed processes on separate computer systems accessible by network.
En particulier un autre objet de la présente invention est la mise en oeuvre d'un procédé et d'un système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés In particular another object of the present invention is the implementation of a method and a system for monitoring and controlling the simultaneous execution of a plurality of distinct processes executed.
<Desc/Clms Page number 4> <Desc / Clms Page number 4>
r indépendamment sur des systèmes informatiques distincts à partir d'un protocole de suivi et de contrôle d'exécution, dit protocole de débogage, autorisant une forte séparation de l'outil de débogage proprement dit de chacun des processus soumis au débogage simultané, protocole de débogage tel que le protocole JDWPO.
r independently on separate computer systems from an execution monitoring and control protocol, called the debugging protocol, allowing a strong separation of the debugging tool itself from each of the processes subjected to simultaneous debugging, protocol de debug debugging such as the JDWPO protocol.
Le système et le procédé de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques distincts, objets de la présente invention, opèrent sur chacun de ces processus contenant un ensemble de tâches organisées en une hiérarchie de groupes de tâches. L'exécution de chacun de ces processus est suivie individuellement et contrôlée par l'intermédiaire d'un protocole de suivi et de contrôle d'exécution indépendant de chacun de ces processus, ce protocole permettant, à partir de commandes adressées à un processus, de réponses adressées par ce processus et d'événements spécifiques de ce processus, d'engendrer une représentation abstraite de ce processus. The system and method for monitoring and controlling the simultaneous execution of a plurality of separate processes executed independently on separate computer systems, objects of the present invention, operate on each of these processes containing a set of tasks organized into a hierarchy groups of tasks. The execution of each of these processes is monitored individually and controlled by means of a protocol for monitoring and control of execution independent of each of these processes, this protocol making it possible, from commands addressed to a process, to responses addressed by this process and specific events of this process, to engender an abstract representation of this process.
Ils sont remarquables en ce que ce système permet de et ce procédé consiste à, au moyen d'une liaison unique support du protocole de suivi et de contrôle d'exécution spécifique, engendrer au moins une commande de suivi et de contrôle d'exécution spécifique, conformément à ce protocole de suivi et de contrôle d'exécution spécifique, multiplexer, d'une part, l'ensemble des commandes engendrées conformément au protocole de contrôle et de suivi d'exécution spécifique vers chacun de ces processus, et, d'autre part, assurer la transmission des réponses et événements en provenance de chaque processus. L'ensemble They are remarkable in that this system allows for and this method consists of, by means of a single link support of the specific tracking and execution control protocol, generating at least one specific tracking and execution control command. according to this specific monitoring and execution control protocol, multiplex, on the one hand, all the commands generated in accordance with the control protocol and specific execution monitoring to each of these processes, and, on the other hand, ensure the transmission of the responses and events from each process. All
<Desc/Clms Page number 5> <Desc / Clms Page number 5>
r des commandes de suivi et de contrôle d'exécution, des réponses et des événements multiplexés constituant cette représentation abstraite est configurée par l'opération de multiplexage selon une combinaison formant un processus virtuel unique regroupant l'ensemble des tâches de chacun des processus contrôlés, ce qui permet d'assurer le suivi et le contrôle d'exécution simultané de cette pluralité de processus sur cette liaison unique.
r tracking and execution control commands, responses and multiplexed events constituting this abstract representation is configured by the multiplexing operation in a combination forming a single virtual process grouping all the tasks of each of the controlled processes, which makes it possible to ensure the monitoring and control of simultaneous execution of this plurality of processes on this single link.
Le procédé et le système objets de la présente invention trouvent application au suivi et au contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques, ces systèmes informatiques pouvant être accessibles en réseau. Ces systèmes peuvent être eux-mêmes distincts, et consister en un système embarqué, tel qu'une carte à microprocesseur. L'un au moins de ces processus distincts peut être mis en oeuvre grâce à une suite d'instructions séquentielles interprétées, communément désignées par script en langage anglo-saxon. The method and system objects of the present invention are applicable to the simultaneous execution monitoring and control of a plurality of separate processes executed independently on computer systems, which computer systems can be accessed in a network. These systems can themselves be separate, and consist of an embedded system, such as a microprocessor card. At least one of these distinct processes can be implemented by means of a sequence of interpreted sequential instructions, commonly referred to as Anglo-Saxon scripting.
Le procédé et le système objets de la présente invention seront mieux compris à la lecture de la description et à l'observation des dessins ci-après dans lesquels : - la figure la représente, à titre illustratif, un organigramme du procédé de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques distincts, conformément à l'objet de l'invention ; - la figure Ib représente, à titre illustratif, un détail de mise en oeuvre de l'opération de multiplexage du The method and system that are the subject of the present invention will be better understood on reading the description and on observing the following drawings in which: FIG. 1a represents, by way of illustration, a flowchart of the method of monitoring and simultaneous execution control of a plurality of separate processes executed independently on separate computer systems, in accordance with the object of the invention; FIG. 1b represents, by way of illustration, a detail of implementation of the multiplexing operation of
<Desc/Clms Page number 6> <Desc / Clms Page number 6>
r procédé objet de l'invention tel que représenté en figure la ; - la figure le représente, à titre illustratif, un exemple de constitution d'une combinaison formant un processus virtuel unique regroupant l'ensemble des tâches de chacun des processus distincts contrôlés ; - la figure 2a représente, à titre illustratif, un schéma synoptique de l'architecture du système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques conforme à l'objet de la présente invention ; - la figure 2b représenté, à titre illustratif, un schéma fonctionnel d'un multiplexeur permettant la mise en oeuvre du système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques, objet de l'invention, tel que représenté en figure 2a ; - la figure 2c représente, à tire illustratif, un diagramme d'état d'un cycle de vie d'un traitement mis en oeuvre dans le multiplexeur représenté en figure 2b ; - la figure 2d représente, à tire illustratif, un organigramme de la création et de l'exécution de tout traitement, par le module de gestion des traitements inclus dans le multiplexeur illustré en figure 2b ; - la figure 2e représente, à tire illustratif, un diagramme séquentiel d'échange de messages de commande, de messages de réponse entre le module 1 de suivi et de contrôle d'exécution et le module 2 de multiplexage, d'une part, et de messages de sous-commande, de messages de sous-réponse entre le module 2 de multiplexage et
r method object of the invention as shown in Figure la; FIG. 1 represents, by way of illustration, an example of constituting a combination forming a single virtual process grouping together all the tasks of each of the distinct controlled processes; FIG. 2a represents, by way of illustration, a schematic diagram of the architecture of the system for monitoring and controlling the simultaneous execution of a plurality of distinct processes executed independently on computer systems in accordance with the subject of the present invention. ; FIG. 2b represented, by way of illustration, a block diagram of a multiplexer enabling the implementation of the system for monitoring and controlling the simultaneous execution of a plurality of distinct processes executed independently on computer systems, object of invention, as shown in Figure 2a; FIG. 2c represents, as an illustration, a state diagram of a life cycle of a processing implemented in the multiplexer represented in FIG. 2b; FIG. 2d represents, as an illustration, a flowchart of the creation and execution of any processing, by the processing management module included in the multiplexer illustrated in FIG. 2b; FIG. 2e represents, for illustrative purposes, a sequential diagram for exchanging control messages, response messages between the tracking and execution control module 1 and the multiplexing module 2, on the one hand, and subcommand messages, sub-response messages between the multiplexing module 2 and
<Desc/Clms Page number 7> <Desc / Clms Page number 7>
r--------------------------------------------------différents processus distincts Pl à P3 correspondant à la configuration de ces processus telle qu'illustrée en figure le, d'autre part ; - la figure 3a représente, à titre illustratif, un exemple de mise en oeuvre d'application du procédé et du système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques dans le cas où les processus sont des processus de type GSM, serveur
OTA ; - la figure 3b représente, à titre illustratif, un exemple de mise en oeuvre d'application du procédé et du système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment lorsque l'un de ces processus est mis en oeuvre par une interprétation d'un langage séquentiel.
r ------------------------------------------------- different distinct processes P1 to P3 corresponding to the configuration of these processes as illustrated in FIG. 1a, on the other hand; FIG. 3a represents, by way of illustration, an exemplary implementation of the method and the system for monitoring and controlling the simultaneous execution of a plurality of separate processes executed independently on computer systems in the case where processes are processes of type GSM, server
OTA; FIG. 3b represents, by way of illustration, an exemplary implementation of the method and the system for monitoring and controlling the simultaneous execution of a plurality of distinct processes executed independently when one of these processes is implemented by an interpretation of a sequential language.
Le procédé de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques sera maintenant décrit en liaison avec la figure la et les figures suivantes. The method of monitoring and controlling the simultaneous execution of a plurality of separate processes executed independently on computer systems will now be described in conjunction with Figure la and the following figures.
D'une manière générale, on considère une pluralité de processus distincts chaque processus étant noté Pi, i désignant l'indice identifiant le processus et pouvant à priori être quelconque et compris entre 1 et n. On considère ainsi un ensemble de processus Pi contenant chacun un ensemble de tâches, ces tâches étant organisées en une hiérarchie de groupe de tâches. In a general manner, a plurality of distinct processes is considered, each process being denoted by Pi, where i denotes the index identifying the process and can be a priori any and between 1 and n. We consider a set of processes Pi each containing a set of tasks, these tasks being organized into a hierarchy of task group.
On considère ainsi la situation de départ ST dans laquelle les groupes de tâches pour tout processus Pi sont notés A [kil et B [k2l les tâches sont notées a [k3l et b [k4l One considers thus the starting situation ST in which the groups of tasks for any process Pi are noted A [kil and B [k2l the tasks are noted with [k3l and b [k4l
<Desc/Clms Page number 8> <Desc / Clms Page number 8>
r indépendamment du nombre de tâches et/ou de groupes de tâches considérés et des valeurs de ki, k2, k3 et k4. Les paramètres entre crochets correspondant à des identificateurs locaux particuliers, lesquels seront explicités ultérieurement dans la description.
r irrespective of the number of tasks and / or groups of tasks considered and the values of ki, k2, k3 and k4. Parameters between brackets corresponding to particular local identifiers, which will be explained later in the description.
Dans cette situation de départ ST on considère la mise en oeuvre d'un protocole de suivi et de contrôle d'exécution, ce protocole permettant de contrôler chaque processus Pli l'exécution de chacun de ces processus étant suivie individuellement et contrôlée par l'intermédiaire du protocole précité. In this starting situation ST one considers the implementation of a protocol of follow-up and control of execution, this protocol making it possible to control each process Pli the execution of each of these processes being followed individually and controlled by the intermediary of the aforementioned protocol.
Le protocole de suivi et de contrôle d'exécution est indépendant de chacun des processus Pi et permet, à partir de commandes Ci adressées à un processus, le processus Pi, de réponses Ri adressées par ce processus à cette commande, ces réponses Ri, et enfin d'événements Ei spécifiques de ce processus, d'engendrer une représentation abstraite de ce processus et de l'ensemble des tâches de ce processus grâce aux réponses et événements précités. A l'étape de départ ST, le protocole est noté P {Ci, Ei, Ri} = P. The monitoring and execution control protocol is independent of each of the processes Pi and allows, from commands Ci addressed to a process, the process Pi, responses Ri addressed by this process to this command, these responses Ri, and finally, specific Ei events of this process, to generate an abstract representation of this process and all the tasks of this process thanks to the aforementioned answers and events. At the start step ST, the protocol is noted P {Ci, Ei, Ri} = P.
D'une manière générale, on indique que le procédé, objet de la présente invention, consiste à mettre en oeuvre le protocole précité indépendamment pour chaque processus Pi distinct, et, grâce à cette indépendance et à la représentation abstraite de chacun des processus distincts Pi, d'obtenir un suivi et un contrôle d'exécution simultané de chacun des processus distincts précités. In general, it is indicated that the method, which is the subject of the present invention, consists in implementing the aforementioned protocol independently for each distinct Pi process, and, thanks to this independence and to the abstract representation of each of the distinct processes Pi , to obtain simultaneous monitoring and control of the execution of each of the aforementioned distinct processes.
En référence à la figure la, le procédé, objet de la présente invention consiste alors, en une étape A, à engendrer au moins une commande Ci de suivi et de contrôle With reference to FIG. 1a, the method which is the subject of the present invention then consists, in a step A, in generating at least one command Ci for monitoring and control
<Desc/Clms Page number 9> <Desc / Clms Page number 9>
r d'exécution pour au moins l'un des processus distincts Pi, cette commande étant bien entendu engendrée conformément au protocole de suivi et de contrôle d'exécution choisi. Bien entendu, on comprend que l'étape A peut être réalisée ou répétée pour l'ensemble des processus Pi distincts afin d'assurer le suivi et le contrôle d'exécution simultané de la pluralité des processus distincts précités.
r execution for at least one of the separate processes Pi, this command being naturally generated in accordance with the chosen protocol for monitoring and execution control. Of course, it will be understood that step A can be performed or repeated for the set of distinct processes Pi in order to ensure the simultaneous execution monitoring and control of the plurality of the aforementioned distinct processes.
L'étape A est alors suivie d'une étape B consistant à multiplexer l'ensemble des commandes Ci, des réponses Ri et des événements Ei engendrés conformément au protocole de contrôle et de suivi d'exécution P précédemment cité. Step A is then followed by a step B of multiplexing the set of commands Ci, Ri responses and Ei events engendered in accordance with the above-mentioned control and execution monitoring protocol P.
L'opération de multiplexage précitée est notée MUX {Ci, Ri, Vil. The aforementioned multiplexing operation is denoted MUX {Ci, Ri, Vil.
L'opération de multiplexage réalisée à l'étape B permet, d'une part, après traitement, la retransmission de chaque commande de suivi et de contrôle d'exécution vers chacun des processus distincts Pi précités, et d'autre part, après traitement, la retransmission des réponses Ri et des événements Ei en provenance des processus Pi précédemment mentionnés vers le processus de suivi et de contrôle d'exécution, l'opération de multiplexage réalisant sensiblement une opération de traduction de l'adressage des commandes et des réponses et des événements, ainsi qu'il sera décrit ci-après. The multiplexing operation performed in step B allows, firstly, after processing, the retransmission of each control and execution control command to each of the aforementioned separate processes Pi, and secondly, after processing , retransmitting the responses Ri and Ei events from the aforementioned processes Pi to the process of monitoring and execution control, the multiplexing operation substantially performing a translation operation of the addressing commands and responses and events, as will be described below.
Selon un aspect particulièrement remarquable du procédé, objet de la présente invention, l'ensemble des commandes de suivi et de contrôle d'exécution, des réponses et des événements multiplexés constituant la représentation abstraite est configuré par l'opération de multiplexage selon une combinaison formant un processus According to a particularly remarkable aspect of the method, object of the present invention, the set of follow-up and execution control commands, responses and multiplexed events constituting the abstract representation is configured by the multiplexing operation in a combination forming a process
<Desc/Clms Page number 10> <Desc / Clms Page number 10>
r---------------------------------------------------------virtuel unique regroupant l'ensemble des tâches de chacun des processus contrôlés.
r ------------------------------------------------- -------- unique virtual grouping all the tasks of each controlled process.
A l'étape B de la figure la, la représentation abstraite, selon la combinaison formant processus virtuel unique, est notée RA = UVP {Ci, Ri, Ei}. In step B of FIG. 1a, the abstract representation, according to the single virtual process combination, is denoted RA = UVP {Ci, Ri, Ei}.
La notation précédente indique que le processus virtuel unique regroupe l'ensemble des tâches de chacun des processus contrôlés. Ce mode opératoire permet d'assurer le suivi et le contrôle d'exécution simultané de la pluralité des processus Pi précédemment cités, ainsi qu'il sera décrit de manière plus détaillée ultérieurement dans la description. The preceding notation indicates that the single virtual process groups together all the tasks of each of the controlled processes. This procedure makes it possible to ensure the simultaneous execution monitoring and control of the plurality of processes Pi mentioned above, as will be described in more detail later in the description.
Une description plus détaillée de l'opération de multiplexage B représentée en figure la sera maintenant donné en liaison avec la figure lb. A more detailed description of the multiplexing operation B shown in FIG. 1a will now be given in connection with FIG.
Dans le but de construire par multiplexage la combinaison formant un processus virtuel unique regroupant l'ensemble des tâches de chacun des processus contrôlés, l'opération de multiplexage précitée peut consister avantageusement, en une étape, B1 à attribuer un identificateur local unique IDL = k [0, 2M[ à chaque élément constitutif d'un processus distinct, élément constitué par exemple par une tâche ou un groupe de tâches. L'opération d'attribution précitée est effectuée conformément au protocole de suivi et de contrôle d'exécution spécifique choisi, dans lequel à chaque tâche ou groupe de tâches est attribué un identificateur numérique unique, au niveau de chaque processus distinct Pi concerné. Ainsi chaque tâche ou groupe de tâches ou tout autre élément d'un processus distinct Pi est In order to multiplex the combination forming a single virtual process grouping all the tasks of each of the controlled processes, the aforementioned multiplexing operation may advantageously consist, in one step, B1 to assign a unique local identifier IDL = k [0, 2M [to each constituent element of a distinct process, an element constituted for example by a task or a group of tasks. The aforementioned allocation operation is performed in accordance with the chosen specific tracking and execution control protocol, in which each task or group of tasks is assigned a unique numeric identifier at each distinct process Pi concerned. So every task or group of tasks or any other element of a separate Pi process is
<Desc/Clms Page number 11> <Desc / Clms Page number 11>
r-------------------------------identifié par l'identificateur local distinct qui lui est associé.
r ------------------------------- identified by the distinct local identifier associated with it.
Toutefois, un tel identificateur local ne permet pas, à lui seul, d'identifier le processus distinct Pi auquel la tâche ou le groupe de tâches précité appartient. However, such a local identifier does not, on its own, identify the distinct process Pi to which the aforementioned task or task group belongs.
Pour cette raison, l'étape Bl est suivie d'une étape B2, consistant à associer à chaque processus distinct contrôlé et au processus virtuel unique une référence de processus spécifique Pur1. Cette opération permet, outre la discrimination et l'identification de chaque processus distinct Pi, d'installer le processus virtuel unique en un processus spécifique différent des processus distincts Pi contrôlés, mais traité, du point de vue du multiplexage et du protocole de suivi et de conduite d'exécution, de manière semblable au traitement de suivi et le contrôle d'exécution de chaque processus distinct Pi par le protocole de suivi et de contrôle d'exécution spécifique choisi. For this reason, the step B1 is followed by a step B2 consisting of associating with each separate controlled process and with the unique virtual process a specific process reference Pur1. This operation allows, in addition to discrimination and identification of each distinct process Pi, to install the single virtual process in a specific process different from the separate processes Pi controlled, but processed, from the point of view of the multiplexing and the tracking protocol and Execution behavior, similar to the follow-up processing and execution control of each separate process Pi by the specific tracking and execution control protocol chosen.
Dans ce but, la référence de processus spécifique PRi peut être définie comme une valeur numérique prise dans un ensemble de valeurs numériques, représentatives de l'ensemble des valeurs de référence de processus spécifique. De manière plus particulière, l'une des valeurs de référence spécifique parmi cet ensemble des valeurs de référence de processus spécifique est réservée pour attribution comme référence de processus virtuel unique. A titre d'exemple non limitatif, la valeur de référence spécifique attribuée comme référence de processus virtuel unique peut être la valeur s=O, à chaque processus distinct contrôlé Pi étant réservé une valeur
i 2 1, représentative de chaque processus distinct For this purpose, the specific process reference PRi may be defined as a numerical value taken from a set of numerical values, representative of the set of specific process reference values. More specifically, one of the specific reference values among this set of specific process reference values is reserved for assignment as a single virtual process reference. By way of non-limiting example, the specific reference value assigned as a single virtual process reference may be the value s = 0, with each separate controlled process Pi being reserved a value
i 2 1, representative of each distinct process
<Desc/Clms Page number 12> <Desc / Clms Page number 12>
r contrôlé. Dans ces conditions, le couple formé par un identificateur local IDL = k et une valeur de référence spécifique, constituant une référence de processus spécifique, est représentatif de l'élément de la représentation abstraite du processus distinct contrôlé associé à cet identificateur local, pour i 1, respectivement d'un élément virtuel constitutif de la combinaison formant le processus virtuel unique, pour i=0=8. Ainsi, l'ensemble E des valeurs de référence de processus spécifique peut être défini comme E= [0, n].
r controlled. Under these conditions, the pair formed by a local identifier IDL = k and a specific reference value, constituting a specific process reference, is representative of the element of the abstract representation of the separate controlled process associated with this local identifier, for i 1, respectively of a virtual element constituting the combination forming the single virtual process, for i = 0 = 8. Thus, the set E of the specific process reference values can be defined as E = [0, n].
Afin de permettre l'identification des couples précités conformément au protocole de suivi et de contrôle d'exécution spécifique retenu, dans lequel à toute tâche ou groupe de tâches est attribué un identificateur numérique unique, l'étape B2 précitée est suivie d'une étape B3 consistant à associer à tout couple formé par un identificateur local IDL = k et par une valeur de référence de processus spécifique un identificateur global distinct IDG. A titre d'exemple non limitatif, chaque identificateur global distinct peut être choisi dans un ensemble G de valeurs numériques spécifiques, défini par G = [0, 2P[ où P est un entier donné. Ainsi, l'ensemble des identificateurs globaux appartenant à l'ensemble G, et qui sont obtenus pour chaque groupe de tâches virtuel constituant la combinaison formant le processus virtuel unique, permet d'assurer l'opération de multiplexage par mise en correspondance entre identificateurs globaux et identificateurs locaux par processus distinct contrôlé. In order to allow the identification of the aforementioned couples in accordance with the selected specific monitoring and execution control protocol, in which any task or group of tasks is assigned a unique numerical identifier, the aforementioned step B2 is followed by a step B3 consisting in associating with any pair formed by a local identifier IDL = k and by a specific process reference value a separate global identifier IDG. By way of nonlimiting example, each distinct global identifier can be chosen from a set G of specific numerical values, defined by G = [0, 2P [where P is a given integer. Thus, the set of global identifiers belonging to the set G, which are obtained for each virtual task group constituting the combination forming the single virtual process, makes it possible to ensure the multiplexing operation by mapping global identifiers together. and local identifiers by separate controlled process.
En ce qui concerne la mise en oeuvre de l'étape B3, on indique que, l'obtention d'une valeur numérique unique IDG représentative d'un couple (i, IDL) peut être mise en With regard to the implementation of step B3, it is indicated that obtaining a unique numerical value IDG representative of a pair (i, IDL) can be set to
<Desc/Clms Page number 13> <Desc / Clms Page number 13>
r oeuvre par calcul de valeurs croissantes dans l'ensemble G des valeurs retenues ou par appel d'une fonction de codage/décodage, laquelle, à un couple (i, IDL), fait correspondre une valeur numérique unique IDG.
It works by calculating increasing values in the set G of the values retained or by calling a coding / decoding function, which, at a pair (i, IDL), matches a unique numerical value IDG.
Le processus de multiplexage permettant la mise en oeuvre du procédé, objet de la présente invention, sera décrit de manière illustrative en liaison avec la figure le. The multiplexing process for implementing the method, object of the present invention, will be described in an illustrative manner with reference to FIG.
Sur la figure le, on a représenté les différents processus Psi... Pi... Pn. In FIG. 1c, the different processes Psi ... Pi ... Pn are represented.
Le processus Pl est réputé, suite à la réception de commandes Ci, transmettre des réponses Ri concernant le groupe de tâches A [14], B [16] comportant la tâche unique a [15] et le groupe de tâches B [16] consistant en un groupe de tâches C [17] lui-même formé les tâches b [18] et c [19]. The process Pl is deemed, following the reception of commands Ci, to transmit responses Ri concerning the task group A [14], B [16] comprising the unique task a [15] and the task group B [16] consisting of in a group of tasks C [17] itself formed tasks b [18] and c [19].
Le processus Pi, pour i=2, suite à la réception de commandes Ci est réputé transmettre des réponses Ri relative à un groupe de tâches A [0] consistant une tâche unique al. The process Pi, for i = 2, following the receipt of commands Ci is deemed to transmit responses Ri relative to a task group A [0] consisting of a single task al.
Le processus Pn, pour n=3, suite à des commandes Cn est réputé transmettre des réponses relatives à un groupe de tâches A [10] formé par une tâche a [12] et une tâche b [13] et par un autre groupe de tâches B[ll] comprenant une tâche C [14] et un autre groupe de tâches C [15], lui-même formé par deuxtâchesd [16] ete [17]. Oncomprendbiensûrqu'outre les réponses Ri, l'un des processus distincts Pi ou autre peut également transmettre des événements, noté Ei, Ei ou En respectivement. The process Pn, for n = 3, following commands Cn is deemed to transmit responses relating to a task group A [10] formed by a task a [12] and a task b [13] and by another group of tasks B [ll] comprising a task C [14] and another task group C [15], itself formed by two tasks d [16] and [17]. It is understood that apart from the responses Ri, one of the separate processes Pi or other can also transmit events, denoted Ei, Ei or En respectively.
A chaque groupe de tâches émanant d'un processus distinct contrôlé Pi est attribué un identificateur global Each task group from a separate controlled process Pi is assigned a global identifier
<Desc/Clms Page number 14> <Desc / Clms Page number 14>
r IDG, IDG=O, à IDG=5 dans l'exemple donné, cet identificateur global fédérateur et traducteur permettant d'établir la combinaison précédemment mentionnée dans la description, cette combinaison consistant en une pluralité d'objets virtuels, distincts des objets de représentation abstraite, et formant le processus virtuel unique regroupant l'ensemble des tâches et groupe de tâches de chacun des processus distincts contrôlés. Le mode opératoire séquentiel de l'opération de multiplexage permettant la mise en oeuvre d'une telle combinaison sera décrit ultérieurement dans la description.
r IDG, IDG = O, at IDG = 5 in the example given, this unifying global identifier and translator making it possible to establish the combination previously mentioned in the description, this combination consisting of a plurality of virtual objects, distinct from the objects of the abstract representation, and forming the single virtual process grouping all the tasks and task group of each of the separate controlled processes. The sequential operation of the multiplexing operation allowing the implementation of such a combination will be described later in the description.
Une description plus détaillée d'un système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment sur des systèmes informatiques distincts conformes à l'objet de la présente invention sera maintenant donnée en liaison avec les figures 2a à 2d. A more detailed description of a system for monitoring and controlling the simultaneous execution of a plurality of distinct processes executed independently on separate computer systems according to the subject of the present invention will now be given in connection with FIGS. 2d.
D'une manière générale, on indique que le système, objet de la présente invention, sera décrit dans le cas où le protocole P de suivi et de contrôle d'exécution est un
0 protocole JDWP, afin de donner des éléments concrets de mise en oeuvre d'un tel système, et du procédé correspondant. In general, it is indicated that the system, which is the subject of the present invention, will be described in the case where the protocol P of monitoring and control of execution is a
0 JDWP protocol, to give concrete elements of implementation of such a system, and the corresponding method.
Toutefois, on indique que tout protocole distinct du protocole JDWP peut être mis en oeuvre pour autant que les processus Pi se comportent comme des machines virtuelles répondant au critère d'indépendance stricte du protocole de suivi et de contrôle d'exécution et des processus distincts Pi mis en oeuvre simultanément. Outre le critère d'indépendance stricte précité, le protocole de suivi et de contrôle d'exécution indépendant de chacun des However, it is indicated that any protocol distinct from the JDWP protocol can be implemented as long as the processes Pi behave as virtual machines meeting the criterion of strict independence of the protocol for monitoring and control of execution and distinct processes Pi implemented simultaneously. In addition to the strict criterion of independence mentioned above, the protocol for monitoring and controlling the independent execution of each of the
<Desc/Clms Page number 15> <Desc / Clms Page number 15>
r processus Pi doit permettre la mise en oeuvre d'une représentation abstraite de chaque processus et de l'ensemble des tâches de chacun des processus P mentionnés.
Pi process must allow the implementation of an abstract representation of each process and the set of tasks of each process P mentioned.
Dans ces conditions, ainsi que représenté en figure 2a, le système SY, objet de l'invention, comprend un module 1 de suivi et de contrôle d'exécution permettant la mise en oeuvre du protocole P de suivi et de contrôle d'exécution. In these conditions, as shown in FIG. 2a, the system SY, which is the subject of the invention, comprises a module 1 for monitoring and execution control enabling implementation of the protocol P for monitoring and execution control.
Dans le cas de la mise en oeuvre d'un protocole JDWP le module 1 de suivi et de contrôle d'exécution est constitué par un outil de débogage unique et standard normalement disponible dans le commerce par exemple. In the case of the implementation of a JDWP protocol, the module 1 for monitoring and control of execution is constituted by a single and standard debugging tool normally commercially available for example.
En outre, le système SY, objet de l'invention comprend un module de multiplexage 2, lequel est interconnecté, d'une part, au module 1 de suivi et de contrôle d'exécution, et d'autre part, à chacun des processus distincts Pi. Les interconnexions précitées sont mises en oeuvre par l'intermédiaire d'une liaison unique, supportant la mise en oeuvre du protocole P de suivi et de contrôle d'exécution. In addition, the SY system, which is the subject of the invention, comprises a multiplexing module 2, which is interconnected, on the one hand, with the execution monitoring and control module 1, and on the other hand, with each of the processes The aforementioned interconnections are implemented via a single link, supporting the implementation of the protocol P monitoring and execution control.
En ce qui concerne l'implantation physique du module 1 de suivi et de contrôle d'exécution et du module 2 de multiplexage, on indique que l'implantation de ces derniers peut être quelconque pourvu que les liaisons entre le module 1 de suivi et de contrôle d'exécution et le module 2 de multiplexage, d'une part, et entre le module 2 de multiplexage et chacun des processus distincts Pi, d'autre part, soient constituées par des liaisons permettant l'application du protocole P de débogage, c'est With regard to the physical implementation of the module 1 for monitoring and control of execution and the module 2 of multiplexing, it is indicated that the implementation of these may be any provided that the links between the module 1 monitoring and execution control and the multiplexing module 2, on the one hand, and between the multiplexing module 2 and each of the separate processes Pi, on the other, are constituted by links allowing the application of the debugging protocol P, it is
<Desc/Clms Page number 16> <Desc / Clms Page number 16>
r à dire dans l'exemple de mise en oeuvre présentement 1 décrit, du protocole JDWP
D'une manière plus spécifique, on indique que le module 2 de multiplexage permet, d'une part, après traitement, la retransmission des commandes Ci engendrées par le module 1 de suivi et de contrôle d'exécution vers les processus distincts Pi, et d'autre part, après traitement, la retransmission des réponses Ri ainsi que des événements Ei engendrés et en provenance des processus distincts Pi.
r to say in the implementation example currently 1 described, the JDWP protocol
More specifically, it is indicated that the multiplexing module 2 makes it possible, on the one hand, after processing, to retransmit the commands Ci generated by the execution monitoring and control module 1 to the separate processes Pi, and on the other hand, after processing, the retransmission of the responses Ri as well as events Ei generated and coming from the separate processes Pi.
Dans ces conditions, la représentation abstraite RA est configurée par le module 2 de multiplexage selon une combinaison formant un processus virtuel unique, le processus UVP {Ci, Ri, Ei} précédemment mentionné dans la description et décrit en liaison avec la figure lc. Under these conditions, the abstract representation RA is configured by the multiplexing module 2 in a combination forming a single virtual process, the UVP process {Ci, Ri, Ei} previously mentioned in the description and described in connection with FIG. 1c.
Un tel agencement issu de la construction par multiplexage permet d'assurer le suivi et le contrôle d'exécution simultané par multiplexage de l'ensemble et de la pluralité des processus distincts Pi. Such an arrangement resulting from the multiplexing construction makes it possible to monitor and control simultaneous execution by multiplexing the set and the plurality of distinct processes Pi.
On comprend ainsi, en référence à la figure le, que pour un ensemble de processus distincts Pi comportant au moins un groupe de tâches, la combinaison précitée comprend un groupe de tâches virtuel associé à chacun des processus distincts Pi par le module multiplexeur 2. It will thus be understood, with reference to FIG. 1c, that for a set of distinct processes Pi comprising at least one group of tasks, the aforementioned combination comprises a virtual task group associated with each of the distinct processes Pi by the multiplexer module 2.
Chaque groupe de tâches virtuel comprend la hiérarchie des groupes de tâches et des tâches du processus distinct correspondant, constituant la représentation abstraite RA selon le processus virtuel unique UVP {Ci, Ri, Ei}. Each virtual task group comprises the hierarchy of task groups and corresponding separate process tasks, constituting the abstract representation RA according to the unique virtual process UVP {Ci, Ri, Ei}.
Dans le cas plus particulier où le protocole P de suivi et de contrôle d'exécution est le protocole JDWP, In the more particular case where the protocol P of monitoring and execution control is the JDWP protocol,
<Desc/Clms Page number 17> <Desc / Clms Page number 17>
r le module 1 de suivi et de contrôle d'exécution est configuré en mode client JDWP 0. Chaque système informatique distinct et le processus Pi distinct conduit par ce dernier, constitue alors une machine configurée en
mode serveur JDWPO, laquelle peut être identifiée par un nom unnomdemachinearbitraireMNipar exemple.
r Runtime Monitoring and Execution Module 1 is configured in JDWP 0 client mode. Each separate computer system and the separate Pi process driven by it, is then a machine configured as a
JDWPO server mode, which can be identified by a name such as anmachinearmachineMNipar example.
Dans ces conditions, le module 1 de suivi et de contrôle d'exécution configuré en mode client JDWP et chacune des machines configurées en mode serveur JDWP exécutant chaque processus distinct Pi, sont connectés au module de multiplexage 2 par un canal de communication quelconque, dont la seule contrainte est la transmission des commandes, des réponses et des événements selon le
0 protocole JDWP On comprend ainsi, que le système SY, objet e l'invention, permet à partir d'une pluralité de processus distincts Pi de constituer un processus virtuel unique dans lequel, chaque groupe de tâches et bien entendu chaque tâche, associés à chaque processus distinct Pi conserve son individualité et la spécificité de ses réponses, ce qui permet bien entendu d'assurer le suivi et le contrôle d'exécution simultané de l'ensemble des processus distincts Pi. Under these conditions, the tracking and execution control module 1 configured in JDWP client mode and each of the machines configured in JDWP server mode executing each separate process Pi, are connected to the multiplexing module 2 by any communication channel, of which the only constraint is the transmission of orders, responses and events according to the
It is thus understood that the system SY, which is the subject of the invention, makes it possible, from a plurality of distinct processes Pi, to constitute a single virtual process in which each group of tasks and, of course, each task, associated with each distinct process Pi retains its individuality and the specificity of its responses, which of course makes it possible to monitor and control the simultaneous execution of all the distinct processes Pi.
Une description plus détaillée du module multiplexeur 2 dans un mode de mise en oeuvre spécifique non limitatif, sera maintenant donnée en liaison avec la figure 2b. A more detailed description of the multiplexer module 2 in a specific nonlimiting implementation mode will now be given in connection with FIG. 2b.
D'une manière générale, on indique que le module 2 de multiplexage comprend au moins un module 20 de gestion In general, it is indicated that the multiplexing module 2 comprises at least one management module 20
<Desc/Clms Page number 18> <Desc / Clms Page number 18>
r des commandes émises par le module 1 de suivi et de contrôle d'exécution, et un module 21 de gestion des événements transmis par les processus distincts Pi. Le module de gestion des événements 21 est précédé d'un module séparateur 23 permettant d'assurer la séparation des messages de sous-réponse respectivement de sous- événements, engendrés par chaque processus distinct Pi.
r commands issued by the module 1 monitoring and execution control, and a module 21 for managing events transmitted by the separate processes Pi. The event management module 21 is preceded by a separator module 23 allowing separating the sub-response or sub-event messages generated by each distinct process Pi.
D'une manière générale, on indique que la désignation de messages de sous-événements, respectivement de sous-réponses ou de sous-commandes, désigne des messages d'événements, de réponses respectivement de commandes conformes au protocole JDWP et transitant entre le module de multiplexage 2 et l'un des processus distincts Pi. In general, it is indicated that the designation of sub-event, sub-response or sub-command messages respectively designates messages of events, responses and commands respectively compliant with the JDWP protocol and transiting between the module. multiplexing 2 and one of the separate processes Pi.
De la même manière, on désigne par messages de commande respectivement messages de réponse ou encore messages d'événement, tout message conforme au protocole JDWP transitant entre le module de multiplexage 2 et le module 1 de suivi et de contrôle d'exécution. In the same way, control messages, respectively, response messages or event messages, are denoted by any JDWP protocol message transiting between the multiplexing module 2 and the execution monitoring and control module 1.
Dans le cadre de la mise en oeuvre du module de multiplexage 2, représenté en figure 2b, on indique que le module séparateur 23 des messages de sous-réponse/messages de sous-événement peut être constitué par un module classique, le protocole JDWP autorisant la discrimination des messages de réponse et des messages d'événement, c'est à dire des messages de sous-réponse et des messages de sous-événement conformément au système, objet de la présente invention, par simple discrimination d'une valeur de champ introduite dans les messages précités à cet effet. In the context of the implementation of the multiplexing module 2, represented in FIG. 2b, it is indicated that the separator module 23 of the sub-response messages / sub-event messages can be constituted by a conventional module, the JDWP protocol authorizing the discrimination of the response messages and the event messages, ie sub-response messages and sub-event messages according to the system, object of the present invention, by simple discrimination of a field value introduced in the aforementioned messages for this purpose.
<Desc/Clms Page number 19> <Desc / Clms Page number 19>
r Enfin, le module 2 de multiplexage comprend un module de gestion des traitements 22, lequel permet, sous le contrôle du module 20 de gestion des commandes, de créer un traitement pour chaque commande reçue. Chaque traitement créé permet, d'une part, d'envoyer des messages de sous-commande vers et de recevoir les messages de sousréponse correspondant à ces messages de sous-commande venant des processus distincts contrôlés, et, d'autre part, d'envoyer le message de réponse correspondant à la commande considérée vers le module 1 de suivi et de contrôle d'exécution.
Finally, the multiplexing module 2 comprises a processing management module 22, which allows, under the control of the command management module 20, to create a processing for each command received. Each created process makes it possible, on the one hand, to send subcommand messages to and to receive the sub-response messages corresponding to these subcommand messages coming from the different controlled processes, and, on the other hand, to send the response message corresponding to the command in question to the module 1 tracking and execution control.
Le module 22 de gestion des traitements permet en outre, sous le contrôle du module 21 de gestion des événements, de créer un traitement pour chaque message de sous-événement reçu d'un des processus contrôlés distinct Pl. Ces derniers traitements permettent, d'une part, d'envoyer des messages de sous-commande vers et de recevoir les messages de sous-réponse correspondant à ces messages de sous-commande venant des processus distincts contrôlés Pi, et, d'autre part d'envoyer des messages d'événement vers le module 1 de suivi et de contrôle d'exécution. The processing management module 22 furthermore makes it possible, under the control of the event management module 21, to create a processing for each sub-event message received from one of the distinct controlled processes P1. These latter processes make it possible to on the one hand, to send subcommand messages to and to receive the sub-response messages corresponding to these subcommand messages from the separate controlled processes Pi, and, on the other hand, to send messages of event to module 1 tracking and execution control.
D'une manière générale, le module de gestion des traitements 22, lequel crée et exécute les traitements précités, comporte un module 220 de gestion du multiplexage des identificateurs, alors que le module de gestion des événements 21 permet de traiter simultanément une pluralité de sous-événements pour transmettre des sous-commandes aux processus distincts Pi. Le module de gestion des commandes 20 permet, au contraire, de traiter simultanément plusieurs commandes par l'intermédiaire du In a general manner, the processing management module 22, which creates and executes the aforementioned processes, comprises a module 220 for managing the multiplexing of the identifiers, whereas the event management module 21 makes it possible to simultaneously process a plurality of subnodes. -events to transmit subcommands to separate processes Pi. The command management module 20 allows, on the contrary, to simultaneously process several commands via the
<Desc/Clms Page number 20><Desc / Clms Page number 20>
module de gestion du multiplexage des identificateurs 220 pour engendrer les sous-commandes destinées à chacun des processus distincts Pi. identifier multiplexing management module 220 to generate the subcommands for each of the distinct processes Pi.
Le fonctionnement global du module 2 de multiplexage représenté en figure 2b, peut être résumé de la manière ci-après. Les messages de commande transmis par le module 1 de suivi et de contrôle d'exécution sont transmis au multiplexeur 2 et en particulier au module 20, de gestion des commandes, lequel, par l'intermédiaire du module 22 de gestion des traitements, engendre un traitement approprié en fonction du contenu du message de commande précité. Ce traitement, une fois exécuté, fournit un paquet JDWP constituant un message de réponse, lequel est bien entendu transmis au module 1 de suivi et de contrôle d'exécution. Au cours de son exécution, le traitement mis en oeuvre par le module 22 de gestion des traitements, est habilité à transmettre des messages de sous-commande, ces messages de sous-commande étant conformes au protocole JDWPO précédemment cité, à certains des processus Pi, ces messages de sous-commande étant bien entendu fonction du message de commande qui a déclenché la création du traitement. En outre, le traitement mis en oeuvre par le module 22 de gestion des traitements peut également recevoir un message de sous-réponse correspondant et continuer le calcul en fonction du contenu du message de sous-réponse précité. The overall operation of the multiplexing module 2 shown in FIG. 2b can be summarized as follows. The control messages transmitted by the tracking and execution control module 1 are transmitted to the multiplexer 2 and in particular to the command management module 20, which, via the processing management module 22, generates a message. appropriate treatment according to the content of the aforementioned command message. This processing, once executed, provides a JDWP packet constituting a response message, which is of course transmitted to the module 1 for monitoring and execution control. During its execution, the processing implemented by the processing management module 22 is able to transmit subcommand messages, these subcommand messages being in accordance with the JDWPO protocol mentioned above, to some of the Pi processes. , these subcommand messages being of course depending on the command message which triggered the creation of the processing. In addition, the processing implemented by the processing management module 22 may also receive a corresponding sub-response message and continue the calculation according to the content of the aforementioned sub-response message.
D'une manière plus spécifique, on indique que les messages de sous-événement désignent les paquets JDWP e provenant des processus distincts Pi mais qui ne constituent pas des messages de sous-réponse. On rappelle que la discrimination entre messages de sous-événement et More specifically, it is indicated that the sub-event messages designate the JDWP packets e from the separate processes Pi but that do not constitute sub-response messages. It is recalled that the discrimination between sub-event messages and
<Desc/Clms Page number 21> <Desc / Clms Page number 21>
r messages de sous-réponse est effectuée au niveau du module 23 séparateur sous-réponse/sous-événement. Sur discrimination d'un message de sous-événement, ce message est transmis au module 21 de gestion des événements, lequel engendre un traitement approprié en fonction du contenu du message de sous-événement précité. On rappelle également, que le traitement précité engendré par le module 21 de gestion des événements peut, si nécessaire, au cours de l'exécution de ces derniers, envoyer des messages de sous-commande à certains des processus distincts Pi, recevoir les messages de sous-réponse correspondants et continuer le calcul en fonction des contenus de ces derniers. Lorsque le traitement est terminé, traitement défini par le module de gestion des événements 21, le module 22 de gestion des traitements, qui a exécuté le traitement précité, fournit un paquet JDWP constitutif d'un message d'événement, lequel est transmis au module 1 de suivi et de contrôle d'exécution.
r sub-response messages is performed at sub-response / sub-event separator module 23. On discrimination of a sub-event message, this message is transmitted to the event management module 21, which generates an appropriate processing according to the content of the aforementioned sub-event message. It is also recalled that the aforementioned processing generated by the event management module 21 can, if necessary, during the execution of the latter, send subcommand messages to some of the distinct processes Pi, receive the messages of corresponding sub-responses and continue the calculation according to the contents of the latter. When the processing is finished, processing defined by the event management module 21, the processing management module 22, which has executed the aforementioned processing, provides a JDWP packet constituting an event message, which is transmitted to the module 1 monitoring and control of execution.
Plusieurs traitements mis en oeuvre dans le module de multiplexage 2, peuvent être exécutés simultanément. En particulier, à un moment donné, plusieurs traitements peuvent être en attente d'un message de sous-réponse à un message de sous-commande envoyé précédemment. Le module 22 de gestion des traitements ordonnance alors l'exécution des différents traitements, gère l'envoi des souscommandes aux différents processus distincts Pi et la réception des sous-réponses correspondantes, ainsi que l'envoi des messages de réponse respectivement messages d'événement au module 1 de suivi et de contrôle d'exécution. Several processes implemented in the multiplexing module 2 can be executed simultaneously. In particular, at a given time, several processes may be waiting for a sub-response message to a subcommand message sent previously. The processing management module 22 then orders the execution of the various processes, manages the sending of the subcommands to the different distinct processes Pi and the reception of the corresponding sub-responses, as well as the sending of the response messages respectively event messages. to module 1 monitoring and control of execution.
<Desc/Clms Page number 22> <Desc / Clms Page number 22>
r Une description plus détaillée de la mise en oeuvre d'un traitement au niveau du module de multiplexage 2 et en particulier du module 22 de gestion des traitements, sera maintenant donnée en liaison avec les figures 2c et 2d.
A more detailed description of the implementation of a processing at the level of the multiplexing module 2 and in particular of the processing management module 22, will now be given in connection with FIGS. 2c and 2d.
D'une manière générale, on rappelle que la notion de traitement concerne, au niveau du module 22 de gestion des traitements, la mise en oeuvre des opérations permettant la construction de la représentation abstraite, configurée selon une combinaison formant un processus virtuel unique, composée d'autant de groupes de tâches que de processus contrôlés, conformément à l'objet de la présente invention. Cette notion de traitement est donc spécifique au procédé et au système, objets de la présente invention, chaque traitement T mettant en oeuvre une pluralité d'états, lesquels seront décrits en relation avec la figure 2c précitée. In general, it is recalled that the notion of processing concerns, at the level of the processing management module 22, the implementation of the operations enabling the construction of the abstract representation, configured according to a combination forming a single virtual process, composed of as many groups of tasks as controlled processes, according to the object of the present invention. This concept of treatment is therefore specific to the method and the system, objects of the present invention, each T processing implementing a plurality of states, which will be described in relation to Figure 2c above.
En référence à la figure précitée, on indique que chaque traitement T, suite à sa création sous contrôle soit par le module de gestion des commandes 20, soit par le module de gestion des événements 21, peut se trouver soit dans l'état disponible, soit dans l'état bloqué, soit dans l'état terminé. With reference to the above-mentioned figure, it is indicated that each processing T, following its creation under control either by the command management module 20 or by the event management module 21, can be in the available state, either in the off state or in the completed state.
Ainsi que représenté sur la figure 2c précitée, les différents états de chaque traitement T peuvent avantageusement être gérés de la manière ci-après : - dans l'état disponible, le traitement T peut être exécuté, l'exécution étant représentée par la flèche en boucle fermée sur l'état disponible précité ; - dans l'état bloqué, le traitement T est en attente d'un message de sous-réponse consécutif à un As represented in FIG. 2c above, the different states of each treatment T can advantageously be managed in the following manner: in the available state, the processing T can be executed, the execution being represented by the arrow in FIG. closed loop on the aforementioned available state; in the blocked state, the processing T is waiting for a sub-response message consecutive to a
<Desc/Clms Page number 23> <Desc / Clms Page number 23>
r message de sous-commande. Dans l'état bloqué précité, il est alors possible d'extraire du traitement T un message de sous-commande et un numéro identificateur i de processus Pi, auquel le traitement T a envoyé le message de sous-commande précité ; - dans l'état terminé, le traitement T permet d'extraire un paquet JDWP, lequel constitue un message de réponse ou un message d'événement transmis au module 1 de suivi et de contrôle d'exécution.
r subcommand message. In the aforementioned blocked state, it is then possible to extract from the processing T a subcommand message and a process identifier number Pi, to which the processing T has sent the aforementioned subcommand message; in the finished state, the processing T makes it possible to extract a packet JDWP, which constitutes a response message or an event message transmitted to the module 1 for monitoring and execution control.
Une description plus détaillée du mode opératoire global du module 22 de gestion des traitements sera maintenant donnée en liaison avec la figure 2d. A more detailed description of the overall operating mode of the processing management module 22 will now be given in connection with FIG. 2d.
La figure 2d représente un organigramme de mise en oeuvre, donné à titre d'exemple non limitatif, de l'ordonnancement de l'exécution des traitements T. Bien entendu, d'autres modes de mise en oeuvre des traitements précités peuvent être envisagés, ou le cas échéant, être confiés au contrôle du système d'exploitation du module multiplexeur 2. FIG. 2d represents an implementation flowchart, given by way of non-limiting example, of the scheduling of the execution of the treatments T. Of course, other embodiments of the aforementioned processes can be envisaged, or if necessary, be entrusted to the control of the operating system of the multiplexer module 2.
Le mode de mise en oeuvre représenté en figure 2d illustre la gestion des traitements, lesquels sont susceptibles d'occuper chacun l'ensemble des états représentés en figure 2c et indique, pour l'ensemble des traitements, la transition d'un état à un autre état, lors de la réception d'une sous-réponse. The embodiment shown in FIG. 2d illustrates the management of the processes, which may each occupy all the states represented in FIG. 2c and indicate, for all the treatments, the transition from a state to a state. other state, when receiving a sub-response.
Le mode opératoire représenté en figure 2d correspond au cas où pour l'un quelconque des processus distincts Pi soumis à un suivi et à un contrôle d'exécution simultané conforme au procédé, objet de la présente invention, ce suivi et ce contrôle d'exécution est générateur d'un message de sous-réponse du processus The operating mode represented in FIG. 2d corresponds to the case where for any one of the distinct processes Pi subjected to a monitoring and a simultaneous execution control according to the method, object of the present invention, this monitoring and this execution control. is generating a process sub-response message
<Desc/Clms Page number 24> <Desc / Clms Page number 24>
r distinct Pi considéré, ce message de sous réponse étant transmis au module multiplexeur 2, cette sous-réponse étant attendue par l'un des traitements T bloqué géré par le module 22 de gestion des traitements. Le traitement correspond, par exemple, à la transformation d'un message de commande en une succession de couples de messages de sous-commande et de sous-réponse pour constituer la représentation abstraite selon le processus virtuel unique.
r distinct Pi considered, this sub-response message being transmitted to the multiplexer module 2, this sub-response being expected by one of the blocked processing T managed by the processing management module 22. The processing corresponds, for example, to the transformation of a control message into a succession of pairs of subcommand and subresponse messages to constitute the abstract representation according to the single virtual process.
Dans ces conditions, le processus de gestion des traitements comprend au moins une étape 1000 de test de disponibilité d'un message de sous-réponse SR en provenance d'un processus distinct contrôlé Pi. Sur réponse positive à l'étape 1000 du test précité, une étape 1001 de test d'existence d'un traitement bloqué en attente de ce message de sous-réponse en provenance du processus distinct Pi considéré est prévue. La réponse négative à l'étape de test 1001 d'existence de traitement bloqué est suivie d'un retour à l'étape de test de disponibilité 1000, l'absence d'un tel traitement bloqué dénotant une erreur de ce processus, cette sous-réponse étant alors ignorée. La réponse positive à l'étape de test d'existence 1001 d'un traitement T bloqué, est suivie d'une étape 1002 de déblocage de ce traitement T bloqué et de communication de la sous-réponse SR à ce traitement. Suite à l'étape de déblocage 1002 ou sur réponse négative à l'étape de test de disponibilité d'une sous-réponse 1000, une étape 1003 de test de disponibilité d'un autre traitement T'est prévue. Au test 1003, le traitement est noté T', ce traitement pouvant être distinct ou non du traitement T. Under these conditions, the process of treatment management comprises at least one step 1000 of availability test of an SR sub-response message from a separate controlled process Pi. On positive response in step 1000 of the aforementioned test , a step 1001 of testing for the existence of a blocked processing waiting for this sub-response message from the distinct process Pi considered is provided. The negative response to the test step 1001 of blocked processing existence is followed by a return to the availability test step 1000, the absence of such a blocked processing denoting an error of this process, this under -response is then ignored. The positive response to the existence test step 1001 of a blocked treatment T is followed by a step 1002 of unblocking this blocked treatment T and communicating the subresponse SR to this treatment. Following the unblocking step 1002 or on the negative response in the availability test step of a sub-response 1000, a step 1003 of the availability test of another processing is scheduled. In the test 1003, the treatment is noted T ', this treatment may or may not be distinct from the treatment T.
<Desc/Clms Page number 25> <Desc / Clms Page number 25>
r----------------------------------------------------------. La réponse négative à l'étape de test 1003 de disponibilité d'un autre traitement T', est suivie d'un retour à l'étape de test 1000 de disponibilité d'une sousréponse, tous les traitements étant alors bloqués. La réponse positive à l'étape de test de disponibilité 1003 d'un autre traitement T', est suivie d'une étape d'exécution d'un pas de calcul de cet autre traitement, cette étape d'exécution étant notée 1004.
r ------------------------------------------------- ---------. The negative response to the test step 1003 of availability of another treatment T 'is followed by a return to the test step 1000 of availability of a sub-response, all the processing being then blocked. The positive response to the availability test step 1003 of another processing T 'is followed by a step of executing a calculation step of this other processing, this execution step being denoted 1004.
Suite à l'étape d'exécution 1004, une étape 1005 de test d'existence d'un blocage de cet autre traitement T'est prévue. La réponse positive à l'étape 1005 de test de blocage du traitement T', résultant de la demande par ce traitement de l'émission d'une sous-commande SC'à un processus distinct Pi,, est suivie d'une étape 1006 d'envoi de cette sous-commande SC'à cet autre processus
Pi.. La commande SC'et i', identificateur de Pi,, sont extraits du traitement T'en fonction des impératifs de ce dernier. Following the execution step 1004, a step 1005 of testing for the existence of a blockage of this other processing is provided. The positive response to the process blocking test step 1005 T ', resulting from the request by this processing of the transmission of a subcommand SC' to a separate process Pi ,, is followed by a step 1006 sending this SC_ subcommand to this other process
Pi .. The command SC 'and i', identifier Pi ,, are extracted from the processing T 'according to the imperatives of the latter.
Sur réponse négative au test 1005 d'existence d'un blocage du traitement T', une étape de test 1007 de fin de traitement relatif à cet autre traitement T'est prévue. On a negative response to the test 1005 for the existence of a blocking of the treatment T ', a test step 1007 of the end of the treatment relating to this other treatment is provided.
La réponse positive à l'étape de test 1007 de fin de ce traitement T'est suivie d'une étape 1008 de transmission d'un message de réponse ou d'un message d'événement, extraits du traitement T', au module 1 de suivi et de contrôle d'exécution. La réponse négative à l'étape de test 1007 est suivie d'un retour à l'étape de test 1000 de disponibilité d'une sous-réponse en provenance d'un processus distinct contrôlé quelconque. The positive response to the test step 1007 at the end of this processing is followed by a step 1008 of transmitting a response message or an event message, extracted from the processing T ', to the module 1 monitoring and control of execution. The negative response in the test step 1007 is followed by a return to the test step 1000 of availability of an under-response from any controlled discrete process.
Différents exemples représentatifs des traitements T créés pour répondre à un message de commande en Various representative examples of the processing T created to respond to a command message in
<Desc/Clms Page number 26> <Desc / Clms Page number 26>
r provenance du module 1 de suivi et de contrôle d'exécution seront maintenant donnés ci-après.
From the tracking and execution control module 1 will now be given below.
Il existe globalement trois types de comportement possible : 1. Le contenu du message de commande est transformé puis envoyé en tant que message de sous-commande à un processus distinct Pi déterminé. Suite à la réception du message de sous-réponse correspondant, le contenu de ce message de sous-réponse est transformé et renvoyé en tant que message de réponse au message de commande initial, vers le module 1 de suivi et de contrôle d'exécution. Le traitement T est alors terminé. There are generally three types of possible behavior: 1. The contents of the control message are transformed and sent as a subcommand message to a distinct process Pi determined. Following receipt of the corresponding sub-response message, the content of this sub-response message is transformed and returned as a response message to the initial command message, to the tracking and execution control module 1. The treatment T is then completed.
2. Le contenu du message de commande est analysé et une réponse est construite directement par le traitement T et envoyée au module 1 de suivi et de contrôle d'exécution. 2. The content of the command message is analyzed and a response is constructed directly by the processing T and sent to the module 1 for monitoring and execution control.
3. Le traitement T échange une séquence de messages de sous-commande/messages de sous-réponse avec les différents processus distincts Pi. Plusieurs messages de sous-commande peuvent éventuellement être envoyés au même processus Pi ou à des processus distincts différents. En fonction des messages de sous-réponse correspondants, le traitement T construit la réponse à la commande initiale. 3. The process T exchanges a sequence of subcommand messages / subreport messages with the different distinct processes Pi. Several subcommand messages may possibly be sent to the same process Pi or to different distinct processes. Depending on the corresponding sub-response messages, the processing T builds the response to the initial command.
Ces trois types de comportement permettent de construire la représentation abstraite RA, configurée par l'opération de multiplexage selon la combinaison formant le processus virtuel unique composé des groupes de tâches correspondant à chaque processus contrôlé, chaque groupe de tâches contenant la hiérarchie de tâches du processus distinct correspondant. These three types of behavior make it possible to construct the abstract representation RA, configured by the multiplexing operation according to the combination forming the single virtual process composed of the groups of tasks corresponding to each controlled process, each group of tasks containing the hierarchy of tasks of the process. separate correspondent.
<Desc/Clms Page number 27> <Desc / Clms Page number 27>
r----------------------------------------------------------. Dans le but d'illustrer chacun des trois comportements possibles, un exemple sera donné afin de montrer comment le module de multiplexage 2 transmet au module 1 de suivi et de contrôle d'exécution toutes les tâches de l'ensemble des processus distincts Pi sous la forme d'un processus virtuel unique, en relation avec la figure 2e.
r ------------------------------------------------- ---------. In order to illustrate each of the three possible behaviors, an example will be given in order to show how the multiplexing module 2 transmits to the monitoring and execution control module 1 all the tasks of the set of distinct processes Pi under the form of a single virtual process, in relation with Figure 2e.
En particulier, on rappelle que, dans le cadre du p protocole JDWP, les tâches d'un processus désignées par threads en langage anglo-saxon, sont organisées en groupes de tâches désignés par thread groups. Chaque groupe de tâches contient un ensemble, éventuellement vide de groupe de tâches et un ensemble, éventuellement vide de tâches. In particular, it is recalled that, in the framework of the p JDWP protocol, the tasks of a process designated by threads in English language, are organized into groups of tasks designated by thread groups. Each task group contains a set, possibly empty group of tasks and a set, possibly empty of tasks.
La hiérarchie globale des tâches d'un processus Pi est alors définie par un ensemble de groupes de tâches racines. The global hierarchy of tasks in a Pi process is then defined by a set of root task groups.
Chaque tâche contient en outre, des informations dynamiques associées à l'exécution de la tâche correspondante, ces informations dynamiques pouvant consister en une pile d'exécution et plus généralement en un état interne de l'exécution de la tâche. Le module 1 de suivi et de contrôle d'exécution peut alors accéder à cet état par l'intermédiaire de commandes JDWP spécifiques mises en oeuvre dans le cas du protocole JDWP Le module 1 de suivi et de contrôle d'exécution peut également contrôler l'exécution de chaque tâche, par exemple, suspendre cette exécution à l'aide d'autres commandes spécifiques. Each task also contains dynamic information associated with the execution of the corresponding task, which dynamic information can consist of an execution stack and more generally an internal state of execution of the task. The tracking and execution control module 1 can then access this state by means of specific JDWP commands implemented in the case of the JDWP protocol. The execution monitoring and control module 1 can also control the execution. execution of each task, for example, suspend this execution using other specific commands.
Pour accéder à la hiérarchie des tâches, le protocole de suivi et de contrôle d'exécution spécifique, JDWP utilise, notamment, les commandes suivantes : To access the task hierarchy, the specific tracking and execution control protocol, JDWP uses, among other things, the following commands:
<Desc/Clms Page number 28> <Desc / Clms Page number 28>
Cl : VirtualMachine. ToplevelThreadGroups : renvoie la liste des identificateurs des groupes de tâches racines i C2 : ThreadGroupReference. Children : envoie le contenu d'un groupe de tâches ; C3 : ThreadReference. Name et ThreadGroupReference. Name : renvoie le nom associé à une tâche ou à un groupe de tâches donné.
Cl: VirtualMachine. ToplevelThreadGroups: Returns the list of identifiers for root task groups i C2: ThreadGroupReference. Children: sends the contents of a task group; C3: ThreadReference. Name and ThreadGroupReference. Name: Returns the name associated with a given task or group of tasks.
Typiquement, le protocole d'exécution JDWP est utilisé pour lancer la commande Cl puis récursivement C2 pour connaître toute la hiérarchie des tâches et groupes de tâches et enfin, la commande C3. Typically, the JDWP execution protocol is used to launch the command C1 and then recursively C2 to know the whole hierarchy of the tasks and groups of tasks and finally the command C3.
Disposant ainsi de l'identificateur, identificateur local, de toutes les tâches, le processus de suivi et de contrôle d'exécution JDWP peut alors utiliser des commandes spécifiques pour accéder à leur état d'exécution et contrôler cette exécution. With the identifier, the local identifier, of all the tasks, the JDWP tracking and execution control process can then use specific commands to access their execution status and control this execution.
Les réponses aux commandes précitées seront maintenant décrites ci-après : Commande Cl
La commande Cl, en tant que telle, ne contient aucune donnée en dehors des codes qui dénotent le type de commande, code de classe 1, code de commande 5 dans ce cas. Le format de la réponse est donné par le tableau ciaprès : The answers to the aforementioned orders will now be described below:
The command Cl, as such, contains no data outside the codes which denote the type of command, class code 1, command code 5 in this case. The format of the answer is given by the table below:
<Desc/Clms Page number 29> <Desc / Clms Page number 29>
<tb>
<tb> int <SEP> groups <SEP> (Number <SEP> of <SEP> thread <SEP> groups <SEP> that <SEP> follow)
<tb> Nombre <SEP> de <SEP> groupes <SEP> qui <SEP> suivent.
<tb> <Tb>
<tb> int <SEP> groups <SEP> (Number <SEP> of <SEP> thread <SEP> groups <SEP> that <SEP> follow)
<tb><SEP> number of <SEP><SEP> groups that <SEP> follow.
<Tb>
(Repeated <SEP> groups <SEP> times)
<tb> Répété <SEP> groups <SEP> fois
<tb> threadGroupID <SEP> group <SEP> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> Groupes <SEP> de <SEP> tâches <SEP> de <SEP> premier <SEP> niveau
<tb> (racine)
<tb> (Repeated <SEP> groups <SEP> times)
<tb> Repeated <SEP> groups <SEP> times
<tb> threadGroupID <SEP> group <SEP> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> Groups <SEP> of <SEP><SEP> Tasks of <SEP> First <SEP> Level
<tb> (root)
<Tb>
Dans le tableau précité,"threadGroupID"désigne un identificateur de groupe de tâches. Cet identificateur est un nombre entier qui permet de retrouver l'objet de type ThreadGroup associé au groupe de tâches. En effet, en langage JAVA@, le protocole JDWP étant relatif à ce langage, chaque groupe de tâches, respectivement chaque tâche, est représenté par un objet JAVA@, instance de la classe, java. lang. ThreadGroup, respectivement java. lang. Thread ou d'une sous-classe. In the above table, "threadGroupID" refers to a task group identifier. This identifier is an integer that can be used to find the ThreadGroup object associated with the task group. Indeed, in JAVA @ language, the JDWP protocol being relative to this language, each group of tasks, respectively each task, is represented by a JAVA @ object, instance of the class, java. lang. ThreadGroup, respectively java. lang. Thread or subclass.
Les identificateurs de groupe de tâches et de tâches sont donc pris dans le même espace que les identificateurs d'objets que le protocole de suivi et de contrôle d'exécution spécifique JDWP est susceptible de récupérer, par exemple en demandant la valeur d'une variable du processus distinct Pi soumis au suivi et au contrôle d'exécution. Task and task group identifiers are therefore taken in the same space as the object identifiers that the JDWP specific tracking and execution control protocol is likely to retrieve, for example by requesting the value of a variable the separate Pi process subject to monitoring and enforcement.
Commande C2
La commande C2 contient les informations suivantes : C2 command
The C2 command contains the following information:
<Desc/Clms Page number 30> <Desc / Clms Page number 30>
<tb>
<tb> threadGroupID <SEP> Group <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de <SEP> tâches
<tb> (The <SEP> thread <SEP> group <SEP> object <SEP> ID).
<tb> <Tb>
<tb> threadGroupID <SEP> Group <SEP><SEP><SEP><SEP><SEP><SEP><SEP> ID
<tb> (The <SEP> thread <SEP> group <SEP> object <SEP> ID).
<Tb>
La réponse à cette commande C2, présente alors le format suivant :
The response to this command C2, then has the following format:
<tb>
<tb> int <SEP> ChildThread <SEP> Nombre <SEP> de <SEP> tâches <SEP> filles
<tb> s
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> <Tb>
<tb> int <SEP> ChildThread <SEP> Number <SEP> of <SEP> Tasks <SEP> girls
<tb> s
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<Tb>
Repeated <SEP> childThreads <SEP> times <SEP> :
<tb> threadID <SEP> ChildThread <SEP> Identification <SEP> de <SEP> tâche <SEP> fille
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> int <SEP> Chai <SEP> 1 <SEP> groups <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> fils
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread <SEP> groups).
<tb> Repeated <SEP> childThreads <SEP> times <SEP>:
<tb> threadID <SEP> ChildThread <SEP> Identification <SEP> of <SEP> task <SEP> girl
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> int <SEP> Chai <SEP> 1 <SEP> groups <SEP> Number <SEP> of <SEP> groups <SEP> of <SEP><SEP> threads
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread <SEP> groups).
<Tb>
Repeated <SEP> childGroups <SEP> times <SEP> :
<tb> threadGroup <SEP> childGroup <SEP> Identification <SEP> de <SEP> groupe <SEP> de <SEP> tâches
<tb> ID <SEP> fils
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> Repeated <SEP> childGroups <SEP> times <SEP>:
<tb> threadGroup <SEP> childGroup <SEP> SEP <SEP> Identification <SEP><SEP>Group> Tasks
<tb> ID <SEP> son
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<Tb>
Cette réponse donne la liste des identificateurs de toutes les tâches contenues dans ce groupe de tâches, suivie de la liste de toutes les sous-tâches. This response lists the identifiers for all tasks in this task group, followed by the list of all subtasks.
Commande C3
La commande C3 comporte en fait 2 commandes distinctes, relatives à la référence du groupe de tâches respectivement à la référence de tâches. Pour la référence de groupe de tâches, le format de la commande est le suivant : Order C3
The command C3 actually comprises 2 separate commands, relating to the reference of the task group respectively to the task reference. For the task group reference, the format of the command is as follows:
<Desc/Clms Page number 31> <Desc / Clms Page number 31>
<tb>
<tb> threadGroupID <SEP> group <SEP> Identification <SEP> de <SEP> groupes <SEP> de <SEP> tâches
<tb> (The <SEP> thread <SEP> group <SEP> object <SEP> ID).
<tb> <Tb>
<tb> threadGroupID <SEP> group <SEP> Identification <SEP> of <SEP> groups <SEP> of <SEP> tasks
<tb> (The <SEP> thread <SEP> group <SEP> object <SEP> ID).
<Tb>
La réponse donne le nom du groupe de tâches sous la forme d'une chaîne de caractères selon le format :
The response gives the name of the task group as a string in the format:
<tb>
<tb> string <SEP> groupName <SEP> Nom <SEP> du <SEP> groupe <SEP> de <SEP> tâches
<tb> (The <SEP> thread <SEP> group's <SEP> name)
<tb> <Tb>
<tb> string <SEP> groupName <SEP><SEP><SEP> name <SEP> group of <SEP> tasks
<tb> (The <SEP> thread <SEP>group's<SEP> name)
<Tb>
En ce qui concerne la commande de référence de tâches, le contenu de la commande et de la réponse sont sensiblement identiques à ceux de la commande de référence de groupe de tâches, précédemment décrits. With respect to the job reference command, the contents of the command and the response are substantially identical to those of the task group reference command, described above.
A partir des formats des commandes et des réponses précédemment décrits, le comportement du module 2 de multiplexage sur réception d'une de ces commandes transmise par le module 1 de suivi et de contrôle d'exécution, sera maintenant décrit. En d'autres termes, un traitement T, associé à chacune des commandes précitées sera maintenant explicité. From the formats of the commands and responses previously described, the behavior of the multiplexing module 2 on receipt of one of these commands transmitted by the module 1 monitoring and execution control, will now be described. In other words, a processing T associated with each of the aforementioned commands will now be explained.
On indique en premier lieu que les traitements T ont à leur disposition les fonctions de codage et de décodage des identificateurs. D'une manière générale, les traitement T reçoivent des identificateurs locaux engendrés par les processus distincts Pi, ces identificateurs conformes au protocole JDWP étant constitués par des nombres entiers. Les fonctions de codage permettent, à partir des identificateurs locaux et d'une référence spécifique allouée à chaque processus distinct Pi, de calculer des identificateurs globaux IDG It is indicated firstly that the processing T have at their disposal the coding and decoding functions of the identifiers. In general, the processing T receives local identifiers generated by the distinct processes Pi, these identifiers conforming to the JDWP protocol being constituted by integers. The coding functions make it possible, from the local identifiers and from a specific reference allocated to each distinct process Pi, to calculate IDG global identifiers.
<Desc/Clms Page number 32> <Desc / Clms Page number 32>
conformes et compatibles au protocole de suivi et de contrôle d'exécution spécifique, JDWP.
compliant and compatible with the specific performance monitoring and control protocol, JDWP.
Réciproquement, les fonctions de décodage permettent, à partir d'identificateurs globaux IDG, de retrouver, d'une part, la référence du processus distinct, et, d'autre part, l'identificateur local à la représentation abstraite de ce dernier. Conversely, the decoding functions make it possible, from global IDG identifiers, to find, on the one hand, the reference of the distinct process, and, on the other hand, the local identifier to the abstract representation of the latter.
Ces fonctions de codage/décodage sont notées respectivement : 'must (i, IDL), i représentant la référence spécifique de processus distinct, 'demuxt (IDG), t désignant l'un des types d'identificateurs prévus dans le protocole de suivi et de contrôle d'exécution spécifique tel que objectID. These coding / decoding functions are denoted respectively: 'must (i, IDL), i representing the distinct process specific reference,' demuxt (IDG), t designating one of the types of identifiers provided for in the tracking protocol and specific execution control such as objectID.
On rappelle en outre que la valeur arbitraire de référence spécifique de processus distinct i=e=0 est réservée à la désignation des objets virtuels engendrés par le procédé et le système objets de l'invention pour établir la combinaison formant le processus virtuel unique. It is further recalled that the arbitrary reference value specific process i = e = 0 is reserved for the designation of virtual objects generated by the method and system objects of the invention to establish the combination forming the single virtual process.
Pour représenter les groupes de tâches virtuels associés à chaque processus distinct Pi, le module de multiplexage 2 commence par construire des identificateurs pour référencer les groupes de tâches qu'il a lui-même engendrés. A titre d'exemple non limitatif, on suppose que le module de multiplexage 2 utilise, pour chaque processus distinct contrôlé Pi, les identificateurs locaux IDL, variant de 1 à n, ce qui correspond aux identificateurs globaux IDG, selon la relation : VirtualThreadGroupi = mUXobjectID (E, i) = IDG To represent the virtual task groups associated with each distinct process Pi, the multiplexing module 2 begins by constructing identifiers to reference the task groups that it has generated. By way of nonlimiting example, it is assumed that the multiplexing module 2 uses, for each separate controlled process Pi, the local identifiers IDL, varying from 1 to n, which corresponds to the global identifiers IDG, according to the relation: VirtualThreadGroupi = mUXobjectID (E, i) = IDG
<Desc/Clms Page number 33> <Desc / Clms Page number 33>
Dans ces conditions, le module de multiplexage 2 1 peut répondre immédiatement à la commande Cl et la réponse 1 à cette commande est de la forme :
Under these conditions, the multiplexing module 2 1 can respond immediately to the command Cl and the response 1 to this command is of the form:
<tb>
<tb> groups <SEP> n <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> qui
<tb> suivent
<tb> (Number <SEP> of <SEP> thread <SEP> groups <SEP> that
<tb> follow)
<tb> groupl <SEP> Virtual <SEP> Groupe <SEP> de <SEP> tâches <SEP> de <SEP> premier <SEP> niveau
<tb> ThreadGroup, <SEP> (racine)
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> ...
<tb> group, <SEP> Virtual <SEP> Groupe <SEP> de <SEP> tâches <SEP> de <SEP> premier <SEP> niveau
<tb> ThreadGroupn <SEP> (racine)
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> <Tb>
<tb> groups <SEP> n <SEP> Number <SEP> of <SEP><SEP> groups of <SEP><SEP> tasks that
<tb> follow
<tb> (Number <SEP> of <SEP> thread <SEP> groups <SEP> that
<tb> follow)
<tb> groupl <SEP> Virtual <SEP><SEP> Group <SEP><SEP>Tasks><SEP> First <SEP> Level
<tb> ThreadGroup, <SEP> (root)
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> ...
<tb> group, <SEP> Virtual <SEP><SEP> Group of <SEP><SEP>Tasks><SEP> First <SEP> Level
<tb> ThreadGroupn <SEP> (root)
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<Tb>
Par cette réponse, le module de multiplexage 2 indique ainsi que les groupes de tâches racines transmis au module 1 de suivi et de contrôle d'exécution, sont les groupes virtuels créés par le module de multiplexage 2, lui-même.
By this response, the multiplexing module 2 indicates that the groups of root tasks transmitted to the module 1 monitoring and execution control, are the virtual groups created by the multiplexing module 2, itself.
Sur réception de la commande C2, contenant l'identificateur de groupe dans le champ group, le module de multiplexage 2 effectue alors le traitement suivant : - décodage de l'identificateur group, inclus dans la commande, à l'aide d'une fonction de démultiplexage ; - si ce décodage produit une erreur, c'est que l'identificateur est mal formé, c'est à dire qu'il n'a pas été précédemment renvoyé dans une réponse du module de multiplexage 2. La réponse à la commande est alors un code d'erreur et le traitement est terminé ; On receipt of the command C2, containing the group identifier in the group field, the multiplexing module 2 then performs the following processing: - decoding of the group identifier, included in the command, using a function demultiplexing; if this decoding produces an error, it is because the identifier is malformed, that is to say that it has not been previously returned in a response of the multiplexing module 2. The response to the command is then an error code and the processing is complete;
<Desc/Clms Page number 34> <Desc / Clms Page number 34>
r --------------------------------------------------- - dans le cas contraire, la fonction de démultiplexage renvoie un numéro de processus distinct Pi, en l'occurrence l'indice i, et un identificateur local désigné par IDL=localGroup au processus distinct Pi considéré, selon la relation : demuXobjectID (group) = (i, localGroup) et qui désigne alors le groupe de tâches dans le processus distinct Pi précité. Il existe alors deux possibilités :
- si le numéro de processus distinct i vaut la valeur arbitraire s, ainsi que mentionné précédemment dans la description, cela signifie en fait que le groupe de tâches auquel le module 1 de suivi et de contrôle d'exécution fait référence concerne l'un des groupes virtuels créés par le module 2 de multiplexage.
r ------------------------------------------------- - - otherwise, the demultiplexing function returns a distinct process number Pi, in this case the index i, and a local identifier designated by IDL = localGroup to the distinct process Pi considered, according to the relation: demuXobjectID ( group) = (i, localGroup) and which then designates the task group in the distinct process Pi above. There are two possibilities:
if the distinct process number i is the arbitrary value s, as previously mentioned in the description, it means in fact that the group of tasks to which the execution monitoring and control module 1 refers relates to one of the virtual groups created by the multiplexing module 2.
L'identificateur local localGroup est alors un nombre j compris entre 1 et n. Les descendants de ce groupe virtuel sont en fait les racines de la hiérarchie des tâches du processus distinct Pj. Pour cette raison, le traitement T associé à la commande C2 transmet la souscommande Cl au processus distinct Pj d'identificateur j. The local identifier localGroup is then a number j between 1 and n. The descendants of this virtual group are actually the roots of the hierarchy of tasks of the distinct process Pj. For this reason, the processing T associated with the command C2 transmits the subcommand Cl to the distinct process Pj of identifier j.
Dans l'attente de la sous-réponse du processus distinct Pj, le module gestionnaire de traitement 22, peut bien entendu faire exécuter d'autres traitements créés pour traiter une autre commande ou un sous-événement en provenance d'un des processus j'distinct de j ou non. Sur réception de la sous-réponse envoyée par le processus Pj en réponse à la sous-commande Cl, le traitement de la commande initiale peut cependant continuer. Cette sousréponse est donnée selon le format suivant : While waiting for the subreponse of the distinct process Pj, the processing manager module 22 can of course execute other processes created to process another command or a sub-event from one of the processes. distinct from j or not. On receipt of the sub-response sent by the process Pj in response to the subcommand C1, the processing of the initial command may continue, however. This sub-answer is given according to the following format:
<Desc/Clms Page number 35> <Desc / Clms Page number 35>
<tb>
<tb> groups <SEP> m <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> qui
<tb> suivent
<tb> groups <SEP> m <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> qui
<tb> suivent
<tb> (Number <SEP> of <SEP> thread <SEP> groups <SEP> that
<tb> follow)
<tb> group, <SEP> localGrouPl <SEP> Groupe <SEP> de <SEP> tâches <SEP> de <SEP> premier <SEP> niveau
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> group, <SEP> localGroupm <SEP> Groupe <SEP> de <SEP> tâches <SEP> de <SEP> premier <SEP> niveau
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> <Tb>
<tb> groups <SEP> m <SEP> Number <SEP> of <SEP> groups <SEP> of <SEP><SEP> tasks that
<tb> follow
<tb> groups <SEP> m <SEP> Number <SEP> of <SEP> groups <SEP> of <SEP><SEP> tasks that
<tb> follow
<tb> (Number <SEP> of <SEP> thread <SEP> groups <SEP> that
<tb> follow)
<tb> group, <SEP> localGroup <SEP><SEP> group of <SEP><SEP><SEP> tasks first <SEP> level
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<tb> group, <SEP> localGroupm <SEP><SEP> Group of <SEP><SEP><SEP>Tasks> First <SEP> Level
<tb> (A <SEP> top <SEP> level <SEP> thread <SEP> group)
<Tb>
Dans cette sous-réponse, les m identificateurs localGroupl à localGroupm désignent les groupes de tâches racines du processus distinct Pj et sont naturellement des identificateurs locaux au processus précité. Pour construire la réponse à la commande initiale, la commande C2, il convient alors de transformer ces identificateurs locaux en identificateurs globaux par la fonction de multiplexage muXobjectID, cette réponse consistant à lister ces identificateurs comme les groupes descendants du groupe de tâches virtuel et à indiquer que ce groupe de tâches ne contient lui-même aucune tâche. Dans ces conditions, le traitement T construit la réponse au format suivant : In this subresponse, the m localGroupm identifiers localGroupm designate the root task groups of the distinct process Pj and are naturally local identifiers to the aforementioned process. To build the response to the initial command, the command C2, it is then necessary to transform these local identifiers into global identifiers by the multiplexing function muXobjectID, this response consisting of listing these identifiers as the descendant groups of the virtual task group and to indicate that this task group does not contain any task itself. Under these conditions, the processing T builds the response in the following format:
<Desc/Clms Page number 36> <Desc / Clms Page number 36>
<tb>
<tb> childthreads <SEP> 0 <SEP> Nombre <SEP> de <SEP> tâches <SEP> filles
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> childcroups <SEP> m <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> fils
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread
<tb> groups).
<tb> childGroup1 <SEP> muxobjectio <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de
<tb> tâches <SEP> fils
<tb> (j, <SEP> localgroup1)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> childGroupm <SEP> muXobjectID <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de
<tb> tâches <SEP> fils
<tb> (j, <SEP> localGroupm)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> <Tb>
<tb> childthreads <SEP> 0 <SEP> Number <SEP> of <SEP> Tasks <SEP> girls
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> childcroups <SEP> m <SEP> Number <SEP> of <SEP> groups <SEP> of <SEP><SEP> threads
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread
<tb> groups).
<tb> childGroup1 <SEP> muxobjectio <SEP><SEP> Identifier of <SEP><SEP> Group of <SEP>
<tb> tasks <SEP> thread
<tb> (j, <SEP> localgroup1)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> childGroupm <SEP> muXobjectID <SEP><SEP> Identifier of <SEP><SEP> Group of
<tb> tasks <SEP> thread
<tb> (j, <SEP> localGroupm)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<Tb>
Si, au contraire, l'indice i du processus distinct Pi n'a pas pour valeur s, c'est à dire i W g = 0, le numéro précité correspond à un numéro de processus distinct réel compris entre 1 et n. Le module 1 de suivi et de contrôle d'exécution a donc désigné un groupe de tâches réel, appartenant au processus distinct Pi, d'identificateur i, et a demandé ses fils, groupes de tâches et tâches. Pour cette raison, le traitement du module de multiplexage 2, consiste alors à envoyer au processus distinct Pi une sous-commande de type C2 avec le paramètre localGroup puis à transformer la sous-réponse en remplaçant les identificateurs locaux par des identificateurs globaux, obtenus par la fonction de multiplexage précitée. If, on the other hand, the index i of the distinct process Pi does not have the value s, ie i W g = 0, the aforementioned number corresponds to a real distinct process number between 1 and n. The tracking and execution control module 1 has therefore designated a real task group, belonging to the distinct process Pi, of identifier i, and asked for its threads, task groups and tasks. For this reason, the processing of the multiplexing module 2 consists in sending the separate process Pi a type C2 subcommand with the parameter localGroup and then transforming the subresponse by replacing the local identifiers by global identifiers obtained by the aforementioned multiplexing function.
Ainsi, sur réception d'une sous-réponse de la forme ci-après : Thus, upon receipt of a sub-response of the following form:
<Desc/Clms Page number 37> <Desc / Clms Page number 37>
<tb>
<tb> childthreads <SEP> m <SEP> Nombre <SEP> de <SEP> tâches <SEP> filles
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> childThreadl <SEP> LocalThreadl <SEP> Identificateur <SEP> de <SEP> tâche <SEP> fille
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> childThreadm <SEP> Local <SEP> Threadm <SEP> Identificateur <SEP> de <SEP> tâche <SEP> fille
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> childGroups <SEP> p <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> fils
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread
<tb> groups).
<tb> childGrouPl <SEP> Local <SEP> groups <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de
<tb> tâches <SEP> fils
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> chUdGroupp <SEP> LocaJGroupp <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de
<tb> tâches <SEP> fils
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> <Tb>
<tb> childthreads <SEP> m <SEP> Number <SEP> of <SEP><SEP> girls
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> childThreadl <SEP> LocalThreadl <SEP><SEP> Identifier for <SEP> task <SEP> girl
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> childThreadm <SEP> Local <SEP> Threadm <SEP><SEP> Identifier for <SEP> Task <SEP> Girl
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> childGroups <SEP> p <SEP> Number <SEP> of <SEP> groups <SEP> of <SEP><SEP> threads
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread
<tb> groups).
<tb> childGrouPl <SEP> Local <SEP> groups <SEP><SEP> Identifier of <SEP><SEP> Group of
<tb> tasks <SEP> thread
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> chUdGroupp <SEP> LocaJGroupp <SEP><SEP> Identifier of <SEP><SEP> Group of
<tb> tasks <SEP> thread
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<Tb>
<Desc/Clms Page number 38> <Desc / Clms Page number 38>
r Le traitement T se termine en renvoyant au module 1 1 de suivi et de contrôle d'exécution la réponse 1 suivante :
r The processing T ends by returning to the tracking and execution control module 1 1 the following answer 1:
<tb>
<tb> childThreads <SEP> m <SEP> Nombre <SEP> de <SEP> tâches <SEP> filles
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> childThread <SEP> muxobjectID <SEP> Identificateur <SEP> de <SEP> tâche <SEP> fille
<tb> (i, <SEP> local <SEP> Thread1) <SEP> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> chjJdThreadm <SEP> muxobjectID <SEP> Identificateur <SEP> de <SEP> tâche <SEP> fille
<tb> (i, <SEP> local <SEP> Threadm) <SEP> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> childGroups <SEP> p <SEP> Nombre <SEP> de <SEP> groupes <SEP> de <SEP> tâches <SEP> fils
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread
<tb> groups).
<tb> childGrouPl <SEP> mUXobjectID <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de
<tb> tâches <SEP> fils
<tb> (i, <SEP> localGroupl)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> <Tb>
<tb> childThreads <SEP> m <SEP> Number <SEP> of <SEP> Tasks <SEP> girls
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> threads).
<tb> childThread <SEP> muxobjectID <SEP><SEP> Identifier for <SEP> task <SEP> girl
<tb> (i, <SEP> local <SEP> Thread1) <SEP> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> chjJdThreadm <SEP> muxobjectID <SEP><SEP> Identifier for <SEP> task <SEP> girl
<tb> (i, <SEP> local <SEP> Threadm) <SEP> (A <SEP> direct <SEP> child <SEP> thread <SEP> ID).
<tb> childGroups <SEP> p <SEP> Number <SEP> of <SEP> groups <SEP> of <SEP><SEP> threads
<tb> (The <SEP> number <SEP> of <SEP> child <SEP> thread
<tb> groups).
<tb> childGrouPl <SEP> mUXobjectID <SEP><SEP> Identifier of <SEP><SEP> Group of
<tb> tasks <SEP> thread
<tb> (i, <SEP> localGroupl)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<Tb>
...
<tb> childGroupp <SEP> muxobjectiD <SEP> Identificateur <SEP> de <SEP> groupe <SEP> de
<tb> tâches <SEP> fils
<tb> (i, <SEP> localgroupp)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<tb> ...
<tb> childGroupp <SEP> muxobjectiD <SEP><SEP><SEP><SEP> Identifier
<tb> tasks <SEP> thread
<tb> (i, <SEP> localgroupp)
<tb> (A <SEP> direct <SEP> child <SEP> thread <SEP> group <SEP> ID).
<Tb>
r ------------------------------------------------Enfin, le traitement de la commande C3 déclinée en référence de groupe de tâches ou en référence de tâches consiste, de façon similaire, à décoder l'identificateur donné en argument par la fonction de démultiplexage. Si cette fonction renvoie un numéro de processus distinct Pi, index j. différent de la valeur arbitraire e=0, le traitement T continue en envoyant, au processus distinct Pi précité, la même sous-commande en ayant remplacé l'identificateur global par l'identificateur local donné par la fonction de décodage des identificateurs, c'est à dire la fonction de démultiplexage, puis en renvoyant directement comme réponse la sous-réponse à cette sous-
r ------------------------------------------------ Finally , the processing of the command C3 declined in task group reference or task reference is similarly to decode the identifier given in argument by the demultiplexing function. If this function returns a separate process number Pi, index j. different from the arbitrary value e = 0, the processing T continues by sending, to the distinct process Pi above, the same subcommand having replaced the global identifier with the local identifier given by the decoding function of the identifiers, c ' that is, the demultiplexing function, then returning the sub-response to this sub-response directly as a response.
<Desc/Clms Page number 39> <Desc / Clms Page number 39>
r commande qui contient en fait le nom demandé. Si au contraire la fonction de démultiplexage renvoie la valeur arbitraire e=0, et comme identificateur local un numéro de processus j, index du processus distinct Pj, le traitement renvoie directement un nom arbitraire associé au processus distinct Pj précité. Ce nom arbitraire peut avoir été indiqué en paramètre au module 2 de multiplexage lors de son lancement. Il peut s'agir des chaînes de caractères "Pj"par exemple.
r command that actually contains the requested name. If on the other hand the demultiplexing function returns the arbitrary value e = 0, and as local identifier a process number j, index of the distinct process Pj, the processing directly returns an arbitrary name associated with the distinct process Pj mentioned above. This arbitrary name may have been indicated as a parameter to the multiplexing module 2 when it is launched. It can be strings of characters "Pj" for example.
Le traitement complet des commandes Cl à C3 précitées spécifique au protocole JDWP a été donné en détail. En référence aux commandes précitées, on comprend qu'à l'aide des fonctions de multiplexage des identificateurs, le module de multiplexage 2 permet au module 1 de suivi et de contrôle d'exécution de gérer une liaison JDWPO unique, d'appréhender simultanément les n processus Pl avec i E [1, n] connectés au module de multiplexage 2 et en particulier de voir leur hiérarchie de tâches sous forme d'une hiérarchie unique formant un processus virtuel unique, composé d'autant de groupes de tâches que de processus contrôlés. The complete processing of the aforementioned commands C1 to C3 specific to the JDWP protocol has been given in detail. With reference to the above-mentioned commands, it is understood that, by means of the multiplexing functions of the identifiers, the multiplexing module 2 enables the module 1 for monitoring and execution control to manage a single JDWPO link, to simultaneously understand the n process Pl with i E [1, n] connected to the multiplexing module 2 and in particular to see their hierarchy of tasks in the form of a single hierarchy forming a single virtual process, composed of as many groups of tasks as of processes controlled.
En ce qui concerne le traitement de chaque commande JDWP ces traitements ne seront pas décrits en détail car les traitements réellement différents au niveau du module de multiplexage 2 sont en fait peu nombreux. Les indications générales ci-après seront toutefois indiquées :
La plupart du temps, le contenu d'une commande entrant dans le module de multiplexage 2 contient des identificateurs qui, décodés, permettent d'identifier un Regarding the processing of each JDWP command these processes will not be described in detail because the really different processing at the level of the multiplexing module 2 are in fact few. The following general indications will however be indicated:
Most of the time, the content of a command entering the multiplexing module 2 contains identifiers which, decoded, make it possible to identify a
<Desc/Clms Page number 40> <Desc / Clms Page number 40>
r processus distinct Pi, d'indice i. La commande est alors simplement passée au processus distinct considéré en remplaçant les identificateurs globaux par leur identificateur local au niveau du processus Pi. La réponse est transformée de façon réciproque en remplaçant les identificateurs locaux par leur codage global.
r distinct process Pi, index i. The command is then simply passed to the distinct process considered by replacing the global identifiers by their local identifier at the level of the process Pi. The response is transformed reciprocally by replacing the local identifiers by their global encoding.
Les commandes relatives aux tâches et groupes de tâches subissent un traitement particulier spécifique destiné à mélanger les hiérarchies de tâches de chacun des processus distincts comme décrit en détail plus haut. The commands relating to the tasks and task groups undergo a specific specific processing for mixing the task hierarchies of each of the separate processes as described in detail above.
Lorsque la commande concerne des éléments virtuels, créés de toute pièce par le module de multiplexage 2 lui-même comme, par exemple, les groupes de tâches virtuels décrits précédemment dans la description, un traitement spécifique local au module de multiplexage 2 est exécuté. A titre d'exemple, si l'on demande la classe d'un objet groupe de tâches virtuel, le module de multiplexage 2 répond directement"java. lang. ThreadGroup" sans passer par un processus distinct. When the control concerns virtual elements, created from scratch by the multiplexing module 2 itself, such as, for example, the virtual task groups previously described in the description, specific processing local to the multiplexing module 2 is executed. For example, if the class of a virtual task group object is requested, the multiplexing module 2 directly responds "java.lang.ThreadGroup" without going through a separate process.
Les commandes portant sur les références des classes JAVA@ réclament, de même que les tâches, un traitement particulier. En effet, plusieurs classes de même nom peuvent coexister dans des processus différents. The commands relating to the references of the JAVA classes @ require, as well as the tasks, a particular treatment. Indeed, several classes of the same name can coexist in different processes.
Pour distinguer ces différentes versions d'une même classe, il est possible d'utiliser la notion de chargeur de classe, encore désigné"class loader"en langage anglosaxon. De même que les groupes de tâches servent à hiérarchiser les tâches, les"class loaders"servent à hiérarchiser les classes. En langage JAVA, chaque classe est associée à un"class loader"donné et deux classes associées à deux"class loader"différents sont toujours To distinguish these different versions of the same class, it is possible to use the notion of class loader, also called "class loader" in English language. Just as task groups are used to prioritize tasks, class loaders are used to prioritize classes. In JAVA, each class is associated with a given "class loader" and two classes associated with two different "class loader" are always
<Desc/Clms Page number 41> <Desc / Clms Page number 41>
,--------------------------------------------- : considérées comme différentes même si ces deux classes ont le même nom. De plus, chaque machine virtuelle JAVAS possède un"class loader"système distinct. Pour gérer toutes les classes de tous les processus distincts Pi, le module de multiplexage 2 peut alors procéder de la façon suivante : chaque classe d'un processus distinct Pi, d'indice i associé à un"class loader"différent du"class loader"système de i reste associé à ce"class loader", son identificateur local est simplement convenablement multiplexé avec les identificateurs des objets tels que
les"class loaders"des autres processus distincts. En revanche, si une classe est associée au"class loader" système du processus distinct Pi, indice i, alors dans la représentation présentée au module 1 de suivi et de contrôle d'exécution, le module de multiplexage 2 l'associe à un"class loader"virtuel représentant le
"class loader"système de ce processus considéré. Enfin, le"class loader"système du processus virtuel unique simulé par le module de multiplexage 2 lui-même est réservé aux classes des objets virtuels créés par le module de multiplexage 2 comme les groupes de tâches virtuels ou les"class loaders"virtuels. De cette manière, il n'existe pas de risque de mélange des classes portant le même nom mais provenant de processus distincts différents.
, ---------------------------------------------: considered different even if these two classes have the same name. In addition, each JAVAS virtual machine has a separate "class loader" system. To manage all the classes of all the distinct processes Pi, the multiplexing module 2 can then proceed as follows: each class of a distinct process Pi, of index i associated with a "class loader" different from the "class loader""i system remains associated with this" class loader ", its local identifier is simply properly multiplexed with object identifiers such as
the class loaders of the other distinct processes. On the other hand, if a class is associated with the "class loader" system of the distinct process Pi, index i, then in the representation presented to the module 1 of monitoring and execution control, the multiplexing module 2 associates it with a " class loader "virtual representing the
"class loader" system of this considered process. Finally, the "class loader" system of the single virtual process simulated by the multiplexing module 2 itself is reserved for classes of virtual objects created by the multiplexing module 2 such as virtual task groups or virtual class loaders. In this way, there is no risk of mixing classes with the same name but from different distinct processes.
Le cas échéant, le traitement de la commande JDWP 9 peut être plus complexe. C'est par exemple le cas, notamment, pour les commandes du protocole JDWP qui interrogent l'état global du système soumis au suivi et au contrôle d'exécution. A titre d'exemple, la commande VirtualMachine. AllClasses du protocole JDWP renvoie la If necessary, the processing of the JDWP command 9 may be more complex. This is the case, for example, for JDWP protocol commands that query the overall state of the system subject to monitoring and execution control. For example, the VirtualMachine command. AllClasses of the JDWP protocol returns the
<Desc/Clms Page number 42> <Desc / Clms Page number 42>
r liste des identificateurs de toutes les classes couramment chargés dans le processus soumis au suivi et au contrôle d'exécution. Pour traiter une telle commande au niveau du module de multiplexage 2, on comprend que ce dernier doit envoyer cette commande à tous les processus distincts Pi connectés au module de multiplexage 2 puis concaténer toutes les sous-réponses pour former la réponse globale à la commande précitée.
r list of the identifiers of all the classes currently loaded in the process submitted to the monitoring and execution control. To process such a command at the level of the multiplexing module 2, it is understood that the latter must send this command to all the separate processes Pi connected to the multiplexing module 2 and then concatenate all the sub-responses to form the overall response to the aforementioned command .
Un exemple spécifique de mise en oeuvre du procédé objet de la présente invention, grâce à un jeu d'instructions conformes au protocole JDWP sera maintenant donné en liaison avec la figure 2e, pour une configuration de processus distincts contrôlés Pi correspondant à l'exemple donné et décrit en liaison avec la figure lc, les commandes mises en oeuvre correspondant aux commandes Cl, C2, C3 précédemment décrites. En référence aux figures précitées, le module 1 de suivi et de contrôle d'exécution transmet, au module 2 de multiplexage, une commande Cl ayant pour objet le renvoi par le module 2 de multiplexage de la liste des identificateurs des groupes de tâches racines. On comprend en particulier qu'à partir des couples E = 0 et i = [1, 2, 3] le module 2 de multiplexage associe aux couples (s, l), (8, 2) et (s, 3) les valeurs d'identificateurs globaux IDG = [0, 1, 2] selon le tableau d'association TAB, de la figure 2e. Ce tableau d'association peut être établi par communication préalable au module 2 du paramètre i = [1, 2, 3] permettant d'identifier les processus distincts contrôlés Pi= [Pi, P2, P3]. A specific example of implementation of the method that is the subject of the present invention, by means of a set of instructions in accordance with the JDWP protocol will now be given in connection with FIG. 2e, for a configuration of distinct controlled processes Pi corresponding to the example given. and described in connection with FIG. 1c, the commands implemented corresponding to the commands C1, C2, C3 previously described. With reference to the aforementioned figures, the module 1 for monitoring and execution control transmits, to the multiplexing module 2, a command C1 having for object the return by the multiplexing module 2 of the list of identifiers of the groups of root tasks. It is understood in particular that from the pairs E = 0 and i = [1, 2, 3] the multiplexing module 2 associates with the pairs (s, l), (8, 2) and (s, 3) the values global identifiers IDG = [0, 1, 2] according to the association table TAB, of FIG. 2e. This association table can be established by prior communication to module 2 of the parameter i = [1, 2, 3] making it possible to identify the distinct controlled processes Pi = [Pi, P2, P3].
<Desc/Clms Page number 43> <Desc / Clms Page number 43>
r Le module 2 de multiplexage répond directement à la commande Cl par l'envoi d'une réponse RI contenant les identificateurs globaux IDG avec IDG EE [0, 1, 2] représentatifs, au moins partiellement, du processus virtuel unique constitué par les processus distincts contrôlés Pi, P2 et P3.
r The multiplexing module 2 directly responds to the command C1 by sending an IR response containing the IDG global identifiers with IDG EE [0, 1, 2] representative, at least partially, of the unique virtual process constituted by the processes separate controlled Pi, P2 and P3.
L'ensemble des processus distincts contrôlés P1, P2 et P3 étant connu du module 1 de suivi et de contrôle d'exécution par les identificateurs globaux des groupes de tâches virtuels 0,1, 2, celui-ci procède alors à une exploration successive des groupes de tâches et des tâches constitutifs de chaque processus distinct contrôlé. The set of distinct controlled processes P1, P2 and P3 being known from the module 1 for monitoring and control of execution by the global identifiers of the virtual task groups 0,1, 2, the latter then proceeds to a successive exploration of the groups of tasks and tasks that make up each separate controlled process.
Ainsi, successivement : Pour le processus Pl : IDG=0
Envoi d'une commande C3 au module 2 de multiplexage destinée à obtenir le renvoi du nom associé à un groupe de tâches ou à une tâche. La commande C3 est envoyée au module 2 de multiplexage avec la valeur de l'identificateur global, IDG=0 ;
Le module 2 multiplexeur renvoie une réponse R3 à la commande C3 comportant le nom du processus distinct contrôlé"Pi"ou simplement la valeur de i=l, ces éléments étant calculés à partir de la table d'association TAB1. So, successively: For the process Pl: IDG = 0
Sending a C3 command to the multiplexing module 2 to obtain the return of the name associated with a task group or a task. The command C3 is sent to the multiplexing module 2 with the value of the global identifier, IDG = 0;
The multiplexer module 2 sends a response R3 to the command C3 containing the name of the distinct controlled process "Pi" or simply the value of i = 1, these elements being calculated from the association table TAB1.
Dans l'hypothèse d'une exploration"largeur d'abord", d'autres commandes C3 et réponses R3, symbolisées sur la figure 2e par des points successifs peuvent être engendrées pour l'obtention du nom du processus distinct associé ou plus simplement de la valeur i=2, i=3 correspondante. In the hypothesis of an exploration "width first", other commands C3 and R3 responses, symbolized in Figure 2e by successive points can be generated to obtain the name of the separate process associated or more simply the value i = 2, i = 3 corresponding.
<Desc/Clms Page number 44> <Desc / Clms Page number 44>
r Le module 1 de suivi et de contrôle d'exécution procède ensuite à l'exploration des tâches et groupes de tâches du processus distinct contrôlé Pi par :
Envoi d'une commande C2 au module 2 de multiplexage avec la valeur de l'identificateur global IDG=0.
r The tracking and execution control module 1 then proceeds to the exploration of the tasks and task groups of the separate controlled process Pi by:
Sending a C2 command to the multiplexing module 2 with the value of the global identifier IDG = 0.
Le module 2 de multiplexage envoie au processus distinct contrôlé Pl, discriminé à partir de la table d'association TABU, une sous-commande SC1 correspondant à une commande Cl précédemment décrite. The multiplexing module 2 sends to the distinct controlled process P1, discriminated from the association table TABU, a subcommand SC1 corresponding to a command C1 previously described.
Le processus distinct contrôlé Pl envoie au module 2 de multiplexage une sous-réponse SR1 à cette
sous-commande SC1 comprenant les identificateurs locaux IDL=14 et IDL=16 des groupes de tâches A [14] et B [16] du processus distinct contrôlé Pi de la figure le. The separate controlled process P1 sends to the multiplexing module 2 a subreponse SR1 to this
SC1 subcommand comprising the local identifiers IDL = 14 and IDL = 16 of task groups A [14] and B [16] of the separate controlled process Pi of FIG.
Le module 2 multiplexeur calcule alors les identificateurs globaux IDG=[3, 4] correspondant aux couples i=l (1,14) et (1,16) selon la table d'association TAB2. Il transmet au module 1 de suivi et de contrôle d'exécution une réponse R2 comprenant les identificateurs globaux IDG= [3, 4] représentatifs de groupes de tâches A [14] et B [16] constitutifs du processus distinct contrôlé Pi. The multiplexer module 2 then calculates the global identifiers IDG = [3, 4] corresponding to the pairs i = 1 (1,14) and (1,16) according to the association table TAB2. It transmits to the tracking and execution control module 1 a response R2 comprising global identifiers IDG = [3, 4] representative of groups of tasks A [14] and B [16] constituting the distinct controlled process Pi.
L'exploration des tâches des groupes de tâches peut être différée pour effectuer une exploration"largeur d'abord", le module 1 de suivi et de contrôle d'exécution passant à l'exploration des groupes de tâches et des tâches du processus distinct contrôlé P2. Task group task crawling can be deferred to perform "first breadth" crawling, with runtime tracking and execution module 1 running to crawl task groups and separate controlled process tasks P2.
<Desc/Clms Page number 45> <Desc / Clms Page number 45>
r Pour le processus P2 : IDG=l L'envoi d'une commande C3 pour l'obtention du nom du processus distinct P2 aété suppose exécutée, comme dans le cas du processus distinct Pi précédemment décrit.
For the process P2: IDG = 1 The sending of a command C3 to obtain the name of the distinct process P2 has been assumed to be executed, as in the case of the distinct process Pi previously described.
Envoi d'une commande C2 au module 2 de multiplexage, avec la valeur de l'identificateur global, IDG=1. Sending a C2 command to the multiplexing module 2, with the value of the global identifier, IDG = 1.
Le module 2 de multiplexage envoie au processus distinct contrôlé P2, discriminé à partir de la table d'association TAB1, une sous-commande SC2 correspondant à une commande Cl précédemment décrite. The multiplexing module 2 sends to the separate controlled process P2, discriminated from the association table TAB1, a subcommand SC2 corresponding to a command C1 described above.
Le processus distinct contrôlé P2 envoie au module 2 de multiplexage une sous-réponse SR2 à cette souscommande SC2 comprenant l'identificateur local IDL=0 du groupe de tâches A [0] du processus distinct contrôlé P2 de la figure le. The controlled separate process P2 sends to the multiplexing module 2 an SR2 sub-response to this subcommand SC2 comprising the local identifier IDL = 0 of the task group A [0] of the separate controlled process P2 of FIG.
Le module 2 multiplexeur calcule alors l'identificateur global IDG=5 correspondant pour i=2 au couple (2,0) selon la table d'association TABr. The multiplexer module 2 then calculates the global identifier IDG = 5 corresponding for i = 2 to the pair (2,0) according to the association table TABr.
Il transmet au module 1 de suivi et de contrôle d'exécution une réponse R2 à la commande C2 comprenant l'identificateur global IDG=5, représentatif du groupe de tâches A [0] élément du processus distinct contrôlé P2.
L'exploration"largeur d'abord"peut être poursuivie pour le processus distinct contrôlé P3 mais ne sera pas décrite pour ce dernier. It transmits to the tracking and execution control module 1 a response R2 to the command C2 comprising the global identifier IDG = 5, representative of the task group A [0] element of the separate controlled process P2.
The exploration "width first" can be continued for the separate controlled process P3 but will not be described for the latter.
Cette rupture d'exploration"largeur d'abord"est représentée par les traits pointillés. This exploration break "width first" is represented by the dashed lines.
Pour assurer une exploration complète du processus distinct contrôlé P2, il est ensuite nécessaire To ensure a complete exploration of the separate controlled P2 process, it is then necessary
<Desc/Clms Page number 46> <Desc / Clms Page number 46>
d'effectuer une exploration en profondeur au moyen d'une commande C2.
perform an in-depth exploration using a C2 command.
Le module 1 de suivi et de contrôle d'exécution transmet une commande C2 au module multiplexeur 2 avec l'identificateur global IDG=5. The tracking and execution control module 1 transmits a command C2 to the multiplexer module 2 with the global identifier IDG = 5.
Le module 2 multiplexeur envoie au processus distinct contrôlé P2, discriminé à partir de la table d'association TABr une sous-commande SC2 correspondant à une commande C2 relative au groupe de tâches A[0] visant à obtenir l'identificateur de la ou des tâches filles de ce groupe de tâches et du ou des groupes de tâches fils de ce groupe de tâches. The multiplexer module 2 sends to the distinct controlled process P2, discriminated from the association table TABr a subcommand SC2 corresponding to a command C2 relating to the task group A [0] for obtaining the identifier of the one or more The child tasks in this task group and the child task group (s) in this task group.
Le processus distinct contrôlé P2 renvoie à cette sous-commande SC2 une sous-réponse SR2 contenant le seul identificateur local IDL=1 de la tâche a [l], aucun groupe de tâches de hiérarchie inférieure au groupe A [0] n'existant. Controlled distinct process P2 refers to this subcommand SC2 a subreponse SR2 containing the only local identifier IDL = 1 of task a [1], no hierarchical task group lower than group A [0] does not exist.
Le multiplexeur 2 calcule l'identificateur global IDG=6 pour le couple i=2 (2,1) selon la table d'association TABr+l'Il transmet au module 1 de suivi et de contrôle d'exécution le message de réponse R2 en réponse à la commande C2 comprenant l'identificateur global IDG=6 représentatif de la tâche a [1] du processus P2. The multiplexer 2 calculates the global identifier IDG = 6 for the pair i = 2 (2.1) according to the association table TABr + It transmits to the module 1 tracking and execution control the response message R2 in response to the command C2 comprising the global identifier IDG = 6 representative of the task a [1] of the process P2.
Bien entendu, les différentes tables d'association TAB1, TAB2,..., TABr, TAB,,, sont calculées successivement et mémorisées dans une mémoire par exemple afin de conduire le suivi et le contrôle d'exécution de l'ensemble. Of course, the different association tables TAB1, TAB2, ..., TABr, TAB ,,, are successively calculated and stored in a memory for example in order to conduct the monitoring and the execution control of the set.
Un exemple d'application du procédé et du système de suivi et de contrôle d'exécution simultané d'une pluralité de processus distincts exécutés indépendamment An example application of the method and system for monitoring and controlling the simultaneous execution of a plurality of separate processes executed independently
<Desc/Clms Page number 47> <Desc / Clms Page number 47>
r sur des systèmes informatiques distincts sera maintenant donné en liaison avec la figure 3.
r on separate computer systems will now be given in connection with Figure 3.
Sur la figure 3 précitée, on a représenté à titre d'exemple non limitatif, une pluralité d'applications distinctes constitutives des processus distincts Pl, P2, P3 et P4, chaque application pouvant être, par l'intermédiaire d'un pilote de débogage, connectée en réseau par l'intermédiaire du réseau Internet par exemple, ce réseau assurant un simple support du protocole JDWP
D'une manière plus spécifique, on indique que le processus Pl est par exemple constitué par un système embarqué tel qu'une carte, de type carte bancaire ou carte SIM, à laquelle est associé un lecteur de cartes et un pilote dit de débogage permettant de constituer une machine virtuelle JAVAS autorisant la mise en oeuvre du protocole JDWPO. In FIG. 3 above, there is shown by way of nonlimiting example, a plurality of distinct applications constituting distinct processes P1, P2, P3 and P4, each application possibly being, via a debugging driver. , networked via the Internet for example, this network providing a simple support for the JDWP protocol
More specifically, it is indicated that the process P1 is for example constituted by an embedded system such as a card, such as a bank card or SIM card, to which is associated a card reader and a so-called debugging driver allowing to constitute a JAVAS virtual machine authorizing the implementation of the JDWPO protocol.
Le processus P2 est mis enoeuvre par un terminal de téléphonie mobile GSM, lequel est relié au réseau Internet par l'intermédiaire d'un pilote de débogage de même nature que dans le cas du processus distinct Pi et permettant donc également la mise en oeuvre du protocole JDWP. A titre d'exemple non limitatif, on indique que le processus Pi et le processus P2 sont par exemple liés par une liaison ISO 7816, l'application et le processus Pl pouvant consister par exemple, en une application de paiement des unités téléphoniques consommées par le terminal GSM et en particulier par le processus P2 conduit par ce dernier. The P2 process is implemented by a GSM mobile telephone terminal, which is connected to the Internet network via a debugging driver of the same nature as in the case of the separate process Pi and thus also allowing the implementation of the JDWP protocol. By way of nonlimiting example, it is indicated that the process Pi and the process P2 are for example linked by an ISO 7816 link, the application and the process P 1 which may consist, for example, in a payment application of the telephone units consumed by the GSM terminal and in particular by the process P2 driven by the latter.
Le processus distinct P3 est un processus conduit par une station radio SMS reliée par liaison radio SMS au terminal GSM conduisant le processus distinct P2 précité. The separate process P3 is a process carried out by an SMS radio station connected by SMS radio link to the GSM terminal driving the distinct process P2 mentioned above.
<Desc/Clms Page number 48> <Desc / Clms Page number 48>
r La station SMS est elle-même reliée par le réseau Internet à un serveur de type OTA, pour serveur On The Air, ce serveur étant lui-même constitué par une machine virtuelle -JAVA@ reliée au réseau Internet, cette machine permettant
1 @ la mise en oeuvre du protocole JDWP.
r The SMS station is itself connected by the Internet to an OTA server, for On The Air server, this server being itself constituted by a virtual machine -JAVA @ connected to the Internet, this machine allowing
1 @ the implementation of the JDWP protocol.
Le processus distinct P4 est un serveur de base de données constitué de même par une machine virtuelle JAVA ce serveur étant relié d'une part, au serveur OTA conduisant le processus distinct P3 et, d'autre part, au réseau Internet. The separate process P4 is a database server consisting of the same by a virtual machine JAVA this server being connected on the one hand to the OTA server driving the separate process P3 and, on the other hand, to the Internet.
Le système SY de suivi et de contrôle d'exécution simultané, objet de la présente invention, est lui-même interconnecté au réseau Internet afin de permettre la mise en oeuvre du procédé de suivi et de contrôle d'exécution simultané de l'ensemble des processus distincts Pi à P4 précédemment mentionnés. The simultaneous execution monitoring and control system SY, which is the subject of the present invention, is itself interconnected to the Internet network in order to allow the implementation of the method of monitoring and controlling the simultaneous execution of all the distinct processes Pi to P4 previously mentioned.
D'une manière plus spécifique, on indique que le module 1 de suivi et de contrôle d'exécution est relié au module 2 multiplexeur par l'intermédiaire d'une liaison unique permettant la conduite du protocole JDWP précédemment cité. Le module 2 multiplexeur est lui-même relié au réseau Internet par une liaison permettant bien entendu la mise en oeuvre du protocole JDWP vis-à-vis de tous les processus distincts. More specifically, it is indicated that the module 1 for monitoring and execution control is connected to the module 2 multiplexer via a single link for conducting the JDWP protocol mentioned above. The module 2 multiplexer is itself connected to the Internet network by a link allowing of course the implementation of the JDWP protocol vis-à-vis all separate processes.
Ainsi, de manière non limitative, le module multiplexeur 2 peut être implanté dans n'importe quelle machine et le module 1 de suivi et de contrôle d'exécution et le module 2 multiplexeur constitutifs du système SY, conformes à l'objet de la présente invention, peuvent Thus, in a nonlimiting manner, the multiplexer module 2 can be installed in any machine and the module 1 tracking and control of execution and the module 2 multiplexer constituting the SY system, in accordance with the object of this invention,
<Desc/Clms Page number 49><Desc / Clms Page number 49>
alors être implantés de manière délocalisée en un point quelconque du réseau Internet. then be relocated to any point on the Internet.
Enfin, le procédé et le système objets de la présente invention apparaissent particulièrement bien adaptés au suivi et au contrôle d'exécution d'applications dans le cas où l'un des processus distincts contrôlés n'est pas constitué par une machine virtuelle JAVA@ mais simplement par un programme consistant en une suite d'instructions séquentielles interprétées, plus communément désignée par un"script"en langage anglosaxon. Un tel mode de mise en oeuvre sera maintenant décrit en référence à la figure 3b. Finally, the method and system that are the subject of the present invention appear particularly well suited to monitoring and controlling the execution of applications in the case where one of the distinct controlled processes is not constituted by a JAVA® virtual machine but simply by a program consisting of a sequence of interpreted sequential instructions, more commonly referred to as a "script" in Anglo-Saxon language. Such a mode of implementation will now be described with reference to FIG. 3b.
De manière plus particulière ainsi qu'illustré pour le processus distinct contrôlé Pl de la figure 3b, on
utilise assez communément, dans le contexte JAVA CARD@, un "script"pour engendrer des instructions de type APDU à destination de la carte à microprocesseur. Ces instructions sont transmises par un protocole spécifique ISO 7816 par exemple. More particularly as illustrated for the separate controlled process P1 of FIG.
quite commonly uses, in the JAVA CARD @ context, a "script" to generate APDU-type instructions for the microprocessor card. These instructions are transmitted by an ISO 7816 specific protocol for example.
Ces instructions de type APDU, le plus souvent sous forme de liste, sont envoyées en séquence à la carte mais peuvent comporter quelques structures de contrôle telles que boucles ou tests logiques par exemple. These APDU type instructions, usually in the form of a list, are sent in sequence to the card but may include some control structures such as loops or logic tests, for example.
Le processus distinct P2 est mis en oeuvre grâce à l'interprétation du"script". En outre, un pilote de débogage permet d'assurer une liaison conforme au protocole de suivi et de contrôle d'exécution spécifique choisi, en l'occurrence le protocole JDWPO dans l'exemple de la figure 3b. Le pilote de débogage agit sur le processus d'interprétation sous le contrôle du protocole JDWP.
The separate P2 process is implemented through the interpretation of the "script". In addition, a debugging driver makes it possible to ensure a link that complies with the chosen specific monitoring and performance control protocol, in this case the JDWPO protocol in the example of FIG. 3b. The debug driver acts on the interpretation process under the control of the JDWP protocol.
1 1
<Desc/Clms Page number 50> <Desc / Clms Page number 50>
r Le procédé objet de la présente invention apparaît particulièrement avantageux dans la mesure où celui-ci permet decontrôler l'envoidesinstructions APDU et de suivre la progression de l'exécution par interprétation du
"script" ; la seule condition réside dans le fait que la sémantique du langage du"script"est suffisamment simple et correspond sensiblement à un sous-ensemble de la sémantique du langage JAVA.
The method which is the subject of the present invention appears to be particularly advantageous insofar as it makes it possible to control APDU instructions and to monitor the progress of the execution by interpretation of the
"script"; the only condition is that the semantics of the "script" language are sufficiently simple and correspond substantially to a subset of the semantics of the JAVA language.
Dans ce cas, la condition précitée étant satisfaite, le procédé objet de l'invention, pour tout processus distinct mis en oeuvre par une interprétation des instructions d'un langage séquentiel, est tel que la représentation abstraite virtuelle de ce processus comporte au moins une seule tâche, dans un seul groupe de tâches, cette tâche unique étant associée à la séquence d'instructions interprétées. Ainsi, l'exécution de cette interprétation est suivie et contrôlée par l'intermédiaire du protocole spécifique, JDWPO, à partir des commandes, des réponses et des événements relatifs à cette seule tâche. In this case, the aforementioned condition being satisfied, the method which is the subject of the invention, for any distinct process implemented by an interpretation of the instructions of a sequential language, is such that the virtual abstract representation of this process comprises at least one only task, in a single task group, this unique task being associated with the sequence of interpreted instructions. Thus, the execution of this interpretation is tracked and controlled through the specific protocol, JDWPO, from the commands, responses and events relating to that single task.
Lorsque, de manière plus particulière, le protocole spécifique choisi est le protocole JDWP la représentation abstraite virtuelle comprend, outre la seule tâche dans un seul groupe de tâches associé à la succession des instruction interprétées, une seule classe et une seule méthode dans cette classe. When, in a particular way, the specific protocol chosen is the JDWP protocol, the virtual abstract representation comprises, besides the only task in a single group of tasks associated with the succession of interpreted instructions, a single class and a single method in this class.
Dans les conditions précitées, l'ensemble des points de contrôle du"script"constitués par exemple par chaque ligne de ce dernier, peut être représentée par une ligne virtuelle, à laquelle un identificateur global IDG Under the aforementioned conditions, the set of control points of the "script" constituted for example by each line of the latter, can be represented by a virtual line, to which a global identifier IDG
<Desc/Clms Page number 51> <Desc / Clms Page number 51>
r est associé, dans l'unique méthode de l'unique classe de cette représentation virtuelle.
r is associated, in the unique method of the unique class of this virtual representation.
Une adaptation convenable de l'interprète du "script"pour construire la représentation abstraite virtuelle précitée, au moyen de l'introduction d'identificateurs locaux IDL par exemple, permet de suivre et contrôler l'exécution par interprétation de ce dernier conformément au procédé objet de la présente invention, en particulier lorsque le protocole de suivi et de contrôle d'exécution choisi est le protocole JDWP
Dans ces conditions, le procédé et le système objets de la présente invention permettent d'effectuer le suivi et le contrôle d'exécution simultané d'une pluralité de processus distincts et d'interprétations d'instructions de langages séquentiels tels que les"scripts". A suitable adaptation of the interpreter of the "script" to construct the aforementioned virtual abstract representation, by means of the introduction of IDL local identifiers for example, makes it possible to follow and control the execution by interpretation of the latter in accordance with the object method. of the present invention, in particular when the execution monitoring and control protocol chosen is the JDWP protocol
Under these conditions, the method and system objects of the present invention make it possible to track and control the simultaneous execution of a plurality of distinct processes and interpretations of instructions of sequential languages such as "scripts" .
Ainsi et de manière particulièrement avantageuse, ils permettent d'assurer le suivi et le contrôle d'exécution simultané d'un"script"engendrant des instructions APDU et une application, encore appelée
appliquette, JAVA CARDs à partir d'une seule interface de contrôle.Thus, and particularly advantageously, they make it possible to ensure the simultaneous execution monitoring and control of a "script" generating APDU instructions and an application, also called
applet, JAVA CARDs from a single control interface.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0103157A FR2821942B1 (en) | 2001-03-08 | 2001-03-08 | METHOD AND SYSTEM FOR MONITORING AND CONTROLLING THE SIMULTANEOUS EXECUTION OF A PLURALITY OF SEPARATE PROCESSES EXECUTED INDEPENDENTLY ON COMPUTER SYSTEMS |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0103157A FR2821942B1 (en) | 2001-03-08 | 2001-03-08 | METHOD AND SYSTEM FOR MONITORING AND CONTROLLING THE SIMULTANEOUS EXECUTION OF A PLURALITY OF SEPARATE PROCESSES EXECUTED INDEPENDENTLY ON COMPUTER SYSTEMS |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2821942A1 true FR2821942A1 (en) | 2002-09-13 |
FR2821942B1 FR2821942B1 (en) | 2003-06-27 |
Family
ID=8860882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0103157A Expired - Lifetime FR2821942B1 (en) | 2001-03-08 | 2001-03-08 | METHOD AND SYSTEM FOR MONITORING AND CONTROLLING THE SIMULTANEOUS EXECUTION OF A PLURALITY OF SEPARATE PROCESSES EXECUTED INDEPENDENTLY ON COMPUTER SYSTEMS |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2821942B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787245A (en) * | 1995-11-13 | 1998-07-28 | Object Technology Licensing Corporation | Portable debugging service utilizing a client debugger object and a server debugger object |
FR2758896A1 (en) * | 1997-01-29 | 1998-07-31 | Infovista Sa | METHOD FOR MODELING AN INFORMATION SYSTEM, PARTICULARLY FOR PERFORMANCE MEASUREMENT AND MONITORING OF THE QUALITY OF SERVICE, AND MEASUREMENT AND MONITORING SYSTEM IMPLEMENTING THIS METHOD |
EP1071016A2 (en) * | 1999-07-21 | 2001-01-24 | Sun Microsystems, Inc. | Debugger protocol generator |
-
2001
- 2001-03-08 FR FR0103157A patent/FR2821942B1/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787245A (en) * | 1995-11-13 | 1998-07-28 | Object Technology Licensing Corporation | Portable debugging service utilizing a client debugger object and a server debugger object |
FR2758896A1 (en) * | 1997-01-29 | 1998-07-31 | Infovista Sa | METHOD FOR MODELING AN INFORMATION SYSTEM, PARTICULARLY FOR PERFORMANCE MEASUREMENT AND MONITORING OF THE QUALITY OF SERVICE, AND MEASUREMENT AND MONITORING SYSTEM IMPLEMENTING THIS METHOD |
EP1071016A2 (en) * | 1999-07-21 | 2001-01-24 | Sun Microsystems, Inc. | Debugger protocol generator |
Also Published As
Publication number | Publication date |
---|---|
FR2821942B1 (en) | 2003-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147704B (en) | block chain-oriented universal service middleware system | |
US20130014100A1 (en) | Non-transitory computer readable information recording medium, log counting apparatus and package creation method | |
US8205215B2 (en) | Automated event correlation | |
FR2713422A1 (en) | Automatic conversion method for porting telecommunications applications from the TCP / IP network to the OSI-CO network and module used in said method. | |
CN105471968A (en) | Data exchange method, data exchange system and data platform server | |
EP2553584A1 (en) | Method, computer program, and device for validating task execution in scaleable computer systems | |
EP1684177A1 (en) | Method and system for managing in a JMX environment with a management application and software systems to be managed | |
CN115934471A (en) | Big data based data acquisition method and big data system | |
EP1303812A2 (en) | Method for transmitting a mobile agent in a network, associated transmitter, receiver and mobile agent | |
JP5261525B2 (en) | Method for computing a hash of a message in a device communicating with a smart card | |
CN113296987B (en) | Interface calling method and device for calling module, computer equipment and storage medium | |
CN116743833B (en) | Method and device for enhancing communication capability and network control capability of terminal and service | |
FR2847406A1 (en) | Multimedia message tracing procedure, involves inserting information pertaining to message and emitting via telecom network, receiving emitted message by relay server, and transmitting message notifying reception of message | |
WO2008032922A1 (en) | Apparatus and method for lightweighting application through duplicated application management in osgi middleware environment of embedded terminal | |
CA2443221A1 (en) | Device and method for data flow exchange between a client device and a server | |
FR2815801A1 (en) | Microprocessor embedded application logic stream multiple coupled applet having concurrent logic flows generated and successive elementary packets segmented with exchange authorised/continued using specific commands. | |
FR2821942A1 (en) | System for simultaneously monitoring and testing distinct processes executed independently on information systems, comprises monitoring and testing module connected to processes by multiplexing | |
EP1681646A1 (en) | Automatic navigation method in interposition mode | |
KR20080047248A (en) | Security testing apparatus and method of remote remote procedure call software | |
CN112988225B (en) | Annotation configuration method, device, equipment and storage medium | |
CN114024822A (en) | Block chain-based Internet of things equipment management method, equipment, server and medium | |
EP1737191B1 (en) | Method for creating a user equipment split between a terminal equipment and serially connected equipments | |
EP1559003B1 (en) | Microcircuit card comprising means for publishing its computer objects | |
EP1054332A1 (en) | System and method for managing attributes in an object-oriented environment | |
CN106101219A (en) | The data transmission method of sing on web Service and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 16 |
|
PLFP | Fee payment |
Year of fee payment: 17 |
|
PLFP | Fee payment |
Year of fee payment: 18 |
|
PLFP | Fee payment |
Year of fee payment: 20 |