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 PDF

Info

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
Application number
FR0103157A
Other languages
French (fr)
Other versions
FR2821942B1 (en
Inventor
Alexandre Frey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AFIX
Original Assignee
AFIX
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AFIX filed Critical AFIX
Priority to FR0103157A priority Critical patent/FR2821942B1/en
Publication of FR2821942A1 publication Critical patent/FR2821942A1/en
Application granted granted Critical
Publication of FR2821942B1 publication Critical patent/FR2821942B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance 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

At a starting stage (ST) distinct processes (Pi) and their groups of tasks (A(k1),B(k2)) and tasks (a(k3),b(k4)) are noted and a protocol (P) which includes commands (Ci), responses (Ri) and events (Ei) is considered. At a second stage (A) commands are issued and in a third stage (B) multiplexing is used to relay the commands to the processes and transmit responses and events back to the protocol to give an abstract representation (RA) An Independent claim is also included for the method of monitoring and testing a number of distinct processes independently executed on distinct information systems

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

Figure img00010001
Figure img00010001

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>

Figure img00020001
Figure img00020001

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>

Figure img00030001

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.
Figure img00030001

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>

Figure img00040001

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.
Figure img00040001

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>

Figure img00050001

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.
Figure img00050001

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>

Figure img00060001

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
Figure img00060001

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>

Figure img00070001

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
Figure img00070002

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.
Figure img00070001

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
Figure img00070002

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>

Figure img00080001

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.
Figure img00080001

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>

Figure img00090001

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.
Figure img00090001

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>

Figure img00100001

r---------------------------------------------------------virtuel unique regroupant l'ensemble des tâches de chacun des processus contrôlés.
Figure img00100001

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>

Figure img00110001

r-------------------------------identifié par l'identificateur local distinct qui lui est associé.
Figure img00110001

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

Figure img00110002

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
Figure img00110002

i 2 1, representative of each distinct process

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

Figure img00120001

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].
Figure img00120001

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>

Figure img00130001

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.
Figure img00130001

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>

Figure img00140001

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.
Figure img00140001

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

Figure img00140002

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
Figure img00140002

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>

Figure img00150001

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.
Figure img00150001

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>

Figure img00160001

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.
Figure img00160001

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>

Figure img00170001

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
Figure img00170002

mode serveur JDWPO, laquelle peut être identifiée par un nom unnomdemachinearbitraireMNipar exemple.
Figure img00170001

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
Figure img00170002

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

Figure img00170003

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
Figure img00170003

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>

Figure img00180001

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.
Figure img00180001

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>

Figure img00190001

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.
Figure img00190001

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>

Figure img00210001

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.
Figure img00210001

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>

Figure img00220001

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.
Figure img00220001

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>

Figure img00230001

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.
Figure img00230001

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>

Figure img00240001

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.
Figure img00240001

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>

Figure img00250001

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.
Figure img00250001

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

Figure img00250002

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
Figure img00250002

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>

Figure img00260001

r provenance du module 1 de suivi et de contrôle d'exécution seront maintenant donnés ci-après.
Figure img00260001

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>

Figure img00270001

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.
Figure img00270002
Figure img00270001

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.
Figure img00270002

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>

Figure img00280001

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é.
Figure img00280001

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>

Figure img00290001
Figure img00290001

<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>

Figure img00300001
Figure img00300001

<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 :

Figure img00300002
The response to this command C2, then has the following format:
Figure img00300002

<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>

Figure img00310001
Figure img00310001

<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 :

Figure img00310002
The response gives the name of the task group as a string in the format:
Figure img00310002

<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>

Figure img00320001

conformes et compatibles au protocole de suivi et de contrôle d'exécution spécifique, JDWP.
Figure img00320001

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>

Figure img00330001

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 :
Figure img00330002
Figure img00330001

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:
Figure img00330002

<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.

Figure img00330003
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.
Figure img00330003

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>

Figure img00340001

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 :
Figure img00340002

- 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.
Figure img00340001

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:
Figure img00340002

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>

Figure img00350001
Figure img00350001

<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>

Figure img00360001
Figure img00360001

<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>

Figure img00370001
Figure img00370001

<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>

Figure img00380001

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 :
Figure img00380002
Figure img00380001

r The processing T ends by returning to the tracking and execution control module 1 1 the following answer 1:
Figure img00380002

<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>

Figure img00380003

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-
Figure img00380003

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>

Figure img00390001

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.
Figure img00390001

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>

Figure img00400001

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.
Figure img00400001

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>

Figure img00410001

,--------------------------------------------- : 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
Figure img00410002

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
Figure img00410003

"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.
Figure img00410001

, ---------------------------------------------: 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
Figure img00410002

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
Figure img00410003

"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>

Figure img00420001

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.
Figure img00420001

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>

Figure img00430001

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.
Figure img00430001

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>

Figure img00440001

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.
Figure img00440001

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

Figure img00440002

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
Figure img00440002

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>

Figure img00450001

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.
Figure img00450001

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.

Figure img00450002

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.
Figure img00450002

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>

Figure img00460001

d'effectuer une exploration en profondeur au moyen d'une commande C2.
Figure img00460001

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>

Figure img00470001

r sur des systèmes informatiques distincts sera maintenant donné en liaison avec la figure 3.
Figure img00470001

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>

Figure img00480001

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
Figure img00480002

1 &commat; la mise en oeuvre du protocole JDWP.
Figure img00480001

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
Figure img00480002

1 &commat; 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

Figure img00490001

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.
Figure img00490001

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.

Figure img00490002
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.
Figure img00490002

1 1

<Desc/Clms Page number 50> <Desc / Clms Page number 50>

Figure img00500001

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
Figure img00500002

"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.
Figure img00500001

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
Figure img00500002

"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>

Figure img00510001

r est associé, dans l'unique méthode de l'unique classe de cette représentation virtuelle.
Figure img00510001

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

Figure img00510002

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
Figure img00510002

applet, JAVA CARDs from a single control interface.

Claims (11)

r REVENDICATIONS 1. 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, chacun de ces processus contenant un ensemble de tâches organisé en une hiérarchie de groupes de tâches, l'exécution de chacun desdits processus étant suivie individuellement et contrôlée par l'intermédiaire d'un protocole de suivi et de contrôle d'exécution spécifique indépendant de chacun desdits processus, ledit protocole permettant une représentation abstraite de chaque processus et de l'ensemble des tâches de chaque processus, caractérisé en ce que ledit système comporte : un module de suivi et de contrôle d'exécution permettant la mise en oeuvre dudit protocole de suivi et de contrôle d'exécution ; des moyens de multiplexage interconnectés, d'une part, audit module de suivi et de contrôle d'exécution, et, d'autre part, à chacun desdits processus distincts, lesdits moyens de multiplexage permettant de configurer ladite représentation abstraite 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é par multiplexage de ladite pluralité de processus.  1. A system for tracking and controlling the simultaneous execution of a plurality of separate processes executed independently on separate computer systems, each of these processes containing a set of tasks organized into a hierarchy of task groups, execution each of said processes being individually tracked and controlled through a specific tracking and execution control protocol independent of each of said processes, said protocol allowing an abstract representation of each process and the set of tasks of each process, characterized in that said system comprises: a monitoring and execution control module for implementing said monitoring and execution control protocol; multiplexing means interconnected, on the one hand, with said execution monitoring and control module, and, on the other hand, with each of said distinct processes, said multiplexing means making it possible to configure said abstract representation in a combination forming a single virtual process grouping together all the tasks of each of the controlled processes, which makes it possible to monitor and control the simultaneous execution by multiplexing of said plurality of processes.
Figure img00520001
Figure img00520001
2. Système selon la revendication 1, caractérisé en ce que, pour un ensemble de processus distincts comportant au moins un groupe de tâches, ladite combinaison comprend un groupe de tâches virtuel associé à chacun desdits processus, chaque groupe de tâches virtuel  2. System according to claim 1, characterized in that, for a set of distinct processes comprising at least one group of tasks, said combination comprises a virtual task group associated with each of said processes, each virtual task group. <Desc/Clms Page number 53> <Desc / Clms Page number 53> r comprenant la hiérarchie des groupes de tâches du processus correspondant, l'ensemble des groupes de tâches virtuels et desdits groupes de tâches associés à chacun de ces groupes de tâches virtuels constituant ladite représentation abstraite selon un processus virtuel unique.  r comprising the hierarchy of the task groups of the corresponding process, the set of virtual task groups and said task groups associated with each of these virtual task groups constituting said abstract representation according to a single virtual process.
Figure img00530001
Figure img00530001
3. Système selon l'une des revendications 1 ou 2, caractérisé en ce que pour un protocole de suivi et de contrôle d'exécution spécifique et une liaison entre ledit module de suivi et de contrôle d'exécution et lesdits moyens multiplexeurs, d'une part, et entre lesdits moyens multiplexeurs et chaque processus distinct, d'autre part, l'échange d'information entre ledit module de suivi et de contrôle d'exécution et lesdits moyens multiplexeurs consiste en un échange de messages de commande, de messages de réponse et de messages d'événement, et en ce que l'échange d'information entre lesdits moyens multiplexeurs et chaque processus distinct consiste en un échange de messages de sous-commande, de messages de sousréponse respectivement de messages de sous-événement, lesdits moyens multiplexeurs recevant des messages de commande, des messages de sous-réponse et des messages de sous-événement et transmettant des messages de réponse, des messages de sous-commande et des messages d'événement, cette transmission étant effectuée en référence audit regroupement de l'ensemble des tâches de chacun des processus contrôlés constituant ladite représentation abstraite selon un processus virtuel unique.  3. System according to one of claims 1 or 2, characterized in that for a specific tracking and execution control protocol and a connection between said tracking and execution control module and said multiplexer means, on the one hand, and between said multiplexer means and each separate process, on the other hand, the exchange of information between said tracking and execution control module and said multiplexer means consists of an exchange of control messages, messages response and event messages, and in that the exchange of information between said multiplexer means and each distinct process consists of an exchange of subcommand messages, sub-response messages or sub-event messages respectively, said multiplexer means receiving control messages, sub-response messages and sub-event messages and transmitting response messages, subcommand messages and messages; event messages, this transmission being performed with reference to said grouping of the set of tasks of each of the controlled processes constituting said abstract representation according to a single virtual process. 4. Système selon la revendication 3, caractérisé en ce que lesdits moyens multiplexeurs comprennent au moins :  4. System according to claim 3, characterized in that said multiplexer means comprise at least: <Desc/Clms Page number 54> <Desc / Clms Page number 54> r un module de gestion des commandes émises, par ledit module de suivi et de contrôle d'exécution ; un module de gestion des événements transmis par chaque processus ; - un module de gestion des traitements permettant simultanément : 'sous le contrôle dudit module de gestion des commandes, de créer un traitement pour chaque commande reçue, ledit traitement permettant, d'une part, d'envoyer des messages de sous-commande vers et de recevoir les messages de sous-réponse correspondants venant de ces processus, et, d'autre part, d'envoyer le message de réponse correspondant à cette commande vers ledit module de suivi et de contrôle d'exécution ; 'sous le contrôle dudit module de gestion des événements, de créer un traitement pour chaque message de sous-événement reçu de l'un desdits processus, ledit traitement permettant, d'une part, d'envoyer des messages de sous-commande vers et de recevoir les messages de sous-réponse correspondants venant de ces processus, et, d'autre part, d'envoyer des messages d'événement vers ledit module de suivi et de contrôle d'exécution.  r a command management module issued by said monitoring and execution control module; an event management module transmitted by each process; a processing management module simultaneously allowing: under the control of said command management module, to create a processing for each command received, said processing making it possible, on the one hand, to send sub-command messages to and receiving the corresponding sub-response messages from these processes, and, on the other hand, sending the response message corresponding to this command to said execution tracking and control module; under the control of said event management module, to create a processing for each sub-event message received from one of said processes, said processing allowing, on the one hand, to send subcommand messages to and receiving the corresponding sub-response messages from these processes, and on the other hand, sending event messages to said execution tracking and control module.
Figure img00540001
Figure img00540001
5. Système selon la revendication 4, caractérisé en ce que ladite représentation abstraite étant formée au moyen d'identificateurs, ledit module de gestion des traitements comporte un module de gestion du multiplexage desdits identificateurs, lesdits identificateurs comportant des identificateurs globaux associés à ladite combinaison constituant ledit processus virtuel unique et  5. System according to claim 4, characterized in that said abstract representation being formed by means of identifiers, said processing management module includes a multiplexing management module of said identifiers, said identifiers comprising global identifiers associated with said combination constituting said unique virtual process and <Desc/Clms Page number 55> <Desc / Clms Page number 55> r des identificateurs locaux associés à la représentation abstraite de chacun des processus distincts contrôlés, ledit module de gestion du multiplexage permettant la mise en correspondance entre identificateurs globaux et identificateurs locaux, et réciproquement.  r local identifiers associated with the abstract representation of each of the distinct controlled processes, said multiplexing management module allowing the mapping between global identifiers and local identifiers, and vice versa.
Figure img00550001
Figure img00550001
6. Système selon l'une des revendications 4 ou 5, caractérisé en ce que l'exécution de la gestion des traitements par ledit module de gestion de traitement comprend au moins : une étape de test de disponibilité d'une sous-réponse en provenance de l'un desdits processus distincts, et sur réponse positive à ladite étape de test de disponibilité d'une sous-réponse ; une étape de test d'existence d'un traitement bloqué en attente de cette sous-réponse, la réponse négative à ladite étape de test d'existence d'un traitement bloqué étant suivie d'un retour à ladite étape de test de disponibilité et la réponse positive à ladite étape de test d'existence d'un traitement bloqué étant suivie d'une étape de déblocage dudit traitement bloqué, et suite à ladite étape de déblocage dudit traitement bloqué, et, en outre, sur réponse négative à ladite étape de test de disponibilité d'une sous-réponse ; une étape de test de disponibilité pour exécution d'un traitement, la réponse négative à cette étape de test de disponibilité pour exécution étant suivie d'un retour à ladite étape de test de disponibilité d'une sous-réponse et la réponse positive à cette étape de test de disponibilité pour exécution étant suivie d'une étape d'exécution d'un pas de calcul de ce traitement, et suite à cette étape d'exécution ;  6. System according to one of claims 4 or 5, characterized in that the execution of the processing management by said processing management module comprises at least: a step of testing the availability of a sub-response from one of said distinct processes, and on a positive response to said subresponse availability test step; a test step of existence of a blocked processing waiting for this sub-response, the negative response to said test step of existence of a blocked processing being followed by a return to said availability test step and the positive response to said test step of existence of a blocked treatment being followed by a step of unblocking said blocked processing, and following said step of unblocking said blocked processing, and, in addition, on a negative response to said step availability test of an under-response; an availability test step for execution of a processing, the negative response to this availability test step for execution being followed by a return to said availability test step of a sub-response and the positive response to this an availability test step for execution being followed by a step of executing a calculation step of this processing, and following this execution step; <Desc/Clms Page number 56> <Desc / Clms Page number 56> r une étape de test d'existence d'un blocage de ce traitement, la réponse positive à cette étape de test d'existence d'un blocage de ce traitement résultant de la demande par ce traitement de l'émission d'une sous- commande à un processus étant suivie d'une étape d'envoi de cette sous-commande à ce processus, et suite à la réponse négative à cette étape de test d'existence d'un blocage de ce traitement ; une étape de test de fin de ce traitement, la réponse positive à cette étape de test de fin de ce traitement étant suivie d'une étape de transmission d'un message de réponse ou d'un message d'événement par lesdits moyens multiplexeurs audit module de suivi et de contrôle d'exécution et la réponse négative à cette étape de test de fin de traitement étant suivie d'un retour à ladite étape de test de disponibilité d'une sous-réponse en provenance d'un processus distinct quelconque.  r a test step of existence of a blockage of this treatment, the positive response to this test step of existence of a blockage of this treatment resulting from the request by this treatment of the emission of a sub-system. command to a process being followed by a step of sending this subcommand to this process, and following the negative response to this test step of existence of a blockage of this processing; an end-of-treatment test step, the positive response to this end-of-treatment test step being followed by a step of transmitting a response message or an event message by said multiplexer means tracking and execution control module and the negative response to this end of processing test step being followed by a return to said availability test step of an under-response from any other process.
Figure img00560001
Figure img00560001
7. Système selon l'une des revendications 1 à 6, caractérisé en ce que ledit protocole de suivi et de contrôle d'exécution constituant un protocole de suivi et de contrôle d'exécution spécifique est le protocole JDWPO.  7. System according to one of claims 1 to 6, characterized in that said monitoring protocol and execution control constituting a specific monitoring and execution control protocol is the JDWPO protocol. 8. 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, chacun de ces processus contenant un ensemble de tâches organisé en une hiérarchie de groupes de tâches, l'exécution de chacun desdits processus étant suivie individuellement et contrôlée par l'intermédiaire d'un protocole de suivi et de contrôle d'exécution spécifique indépendant de chacun desdits processus, ledit protocole  A method of tracking and controlling the concurrent execution of a plurality of distinct independently executed processes on separate computer systems, each of which processes a set of tasks organized into a hierarchy of task groups, the execution of each said processes being individually tracked and controlled through a specific tracking and execution control protocol independent of each of said processes, said protocol <Desc/Clms Page number 57> <Desc / Clms Page number 57> r 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 et de l'ensemble des tâches de ce processus, caractérisé en ce que ce procédé consiste, au moyen d'une liaison unique support dudit 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 conformément audit protocole de suivi et de contrôle d'exécution spécifique ; - à multiplexer l'ensemble des commandes, réponses et événements engendrés conformément audit protocole de contrôle et de suivi d'exécution spécifique, l'opération de multiplexage permettant, d'une part, l'aiguillage de chaque commande de suivi et de contrôle d'exécution vers chacun desdits processus, et, d'autre part, la transmission des réponses et événements en provenance de chaque processus, l'ensemble des commandes de suivi et de contrôle d'exécution, des réponses et des événements multiplexés constituant ladite représentation abstraite configurée par ladite 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 ladite pluralité de processus sur ladite liaison unique.  r allowing, from commands addressed to a process, responses addressed by this process and specific events of this process, to generate an abstract representation of this process and all the tasks of this process, characterized in that that this method consists, by means of a single link supporting said specific tracking and execution control protocol: to generate at least one follow-up and execution control command in accordance with said monitoring and control protocol of specific execution; multiplexing all the commands, responses and events generated in accordance with said specific control and execution monitoring protocol, the multiplexing operation making it possible, on the one hand, to route each control and monitoring command to execution to each of said processes, and, on the other hand, the transmission of the responses and events from each process, the set of follow-up and execution control commands, responses and multiplexed events constituting said abstract representation. configured by said multiplexing operation in a combination forming a single virtual process grouping together the set of tasks of each of the monitored processes, thereby providing simultaneous execution monitoring and control of said plurality of processes on said single link .
Figure img00570001
Figure img00570001
9. Procédé selon la revendication 8, caractérisé en ce que la représentation abstraite de chaque processus distinct contrôlé étant formée d'éléments associés chacun  9. Method according to claim 8, characterized in that the abstract representation of each distinct controlled process being formed of elements associated with each <Desc/Clms Page number 58> <Desc / Clms Page number 58> r à un identificateur local unique, lesdits éléments comprenant les tâches ou les groupes de tâches dudit processus distinct contrôlé, ladite opération de multiplexage consiste : - à associer à chaque processus distinct contrôlé et au processus virtuel une référence de processus spécifique, l'une des valeurs de référence de processus spécifique parmi l'ensemble des valeurs de référence de processus spécifique étant représentative dudit processus virtuel unique issu de ladite opération de multiplexage, le couple formé par un identificateur local et une valeur de référence de processus spécifique étant représentatif de l'élément de la représentation abstraite du processus distinct contrôlé associé à cet identificateur local, respectivement d'un élément virtuel constitutif de ladite combinaison formant ledit processus virtuel unique ; - à associer à tout couple formé par un identificateur local et une valeur de référence de processus spécifique un identificateur global distinct, l'ensemble des identificateurs globaux distincts obtenus pour chaque groupe de tâches virtuel constituant ladite combinaison formant ledit processus virtuel unique, la mise en correspondance entre identificateurs globaux et identificateurs locaux par processus distincts contrôlés permettant d'assurer ladite opération de multiplexage.  r to a single local identifier, said elements comprising the tasks or groups of tasks of said distinct controlled process, said multiplexing operation comprises: - associating with each distinct controlled process and the virtual process a specific process reference, one of the specific process reference values from the set of specific process reference values being representative of said single virtual process from said multiplexing operation, the pair formed by a local identifier and a specific process reference value being representative of the element of the abstract representation of the separate controlled process associated with this local identifier, respectively of a virtual element constituting said combination forming said single virtual process; associating with any pair formed by a local identifier and a specific process reference value a distinct global identifier, the set of distinct global identifiers obtained for each virtual task group constituting said combination forming said single virtual process, the setting correspondence between global identifiers and local identifiers by controlled distinct processes making it possible to perform said multiplexing operation.
Figure img00580001
Figure img00580001
10 Procédé selon l'une des revendications 8 ou 9, caractérisé en ce que ledit protocole de suivi et de contrôle d'exécution spécifique est le protocole JDWP.  Method according to one of claims 8 or 9, characterized in that said specific monitoring and execution control protocol is the JDWP protocol. <Desc/Clms Page number 59> <Desc / Clms Page number 59> r--------------------------------------------------- r ------------------------------------------------- - 11. Procédé selon l'une des revendications 8 à 10, caractérisé en ce que, pour tout processus distinct mis en oeuvre par une interprétation des instructions d'un langage séquentiel, ladite représentation abstraite virtuelle dudit processus comporte au moins une seule tâche dans une seul groupe de tâches associé à la séquence d'instructions interprétées, l'exécution de cette interprétation étant suivie et contrôlée par l'intermédiaire dudit protocole spécifique à partir des commandes, des réponses et des événements relatifs à cette seule tâche, ce qui permet d'effectuer le contrôle et le suivi simultané de l'exécution d'une pluralité de processus, l'un au moins de ces processus étant mis en oeuvre par une interprétation d'instructions d'un langage séquentiel.11. Method according to one of claims 8 to 10, characterized in that, for any distinct process implemented by an interpretation of the instructions of a sequential language, said virtual abstract representation of said process comprises at least one task in a only group of tasks associated with the sequence of interpreted instructions, the execution of this interpretation being monitored and controlled by means of said specific protocol from the commands, the responses and the events relating to this single task, which makes it possible to performing the control and the simultaneous monitoring of the execution of a plurality of processes, at least one of these processes being implemented by an interpretation of instructions of a sequential language.
Figure img00590001
Figure img00590001
FR0103157A 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 Expired - Lifetime FR2821942B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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