Brevet FR2691559A1 — publié le 19931126

i Système logiciel à objets répliqués exploitant une messagerie dynamique, notamment pour installation de contrôle/commande à architecture redondante L'invention concerne un système logiciel à objets répliqués qui permet de contrôler une installation de traitement de données à architecture redondante, notamment une installation de contrôle/commande au niveau supervision (niveau 2 de la norme MAP). Un système logiciel à objets est particulièrement adapté à la diversité des fonctions de supervision d'une installation de contrôle/commande du fait de sa structure modulaire En effet, les traitements de données opérés au niveau supervision d'une installation de contrôle/commande peuvent être réalisés par association de modules15 fonctionnels élémentaires Il existe aujourd'hui de nombreux langages de programmation à objets disponibles sur le marché qui permettent de réaliser des systèmes logiciels pouvant comporter plusieurs milliers d'objets logiciels Un objet logiciel encapsule classiquement des données et des méthodes20 qui sont des programmes manipulant ces données Chaque méthode remplit une fonction qui lui est assignée et un objet peut utiliser les méthodes d'un autre objet pour opérer sur les données de cet autre objet en lui adressant un ou plusieurs messages.25 Le plus souvent, il est nécessaire que le niveau supervision d'une installation de contrôle/commande industrielle soit tolérant aux fautes, que ce soit des fautes de matériel ou de logiciel, pour assurer une continuité de service Une solution à ce problème peut30 consister à prévoir une installation de contrôle/commande à architecture redondante qui comprend au moins deux processeurs (un processeur maître et un processeur de secours) travaillant en parallèle sous la commande de deux systèmes logiciels généralement identiques, qui peuvent être35 des systèmes logiciels à objets, chargés respectivement dans les deux processeurs Le parallélisme de traitement des deux processeurs garantit qu'en cas de dysfonctionnement et/ou d'arrêt du processeur maître, les données manipulées par le système logiciel commandant le processeur maître défectueux sont disponibles dans le système logiciel commandant le 5 processeur de secours Ce type de redondance à la fois du matériel et du logiciel est appelée redondance active. L'inconvénient de la technique de redondance active est de solliciter, lors du fonctionnement normal de l'installation, le processeur de secours autant que le10 processeur maître Le processeur de secours ne peut donc pas être utilisé pour d'autres traitements Par ailleurs, la technique de redondance active ne distingue pas les objets qui encapsulent des données vitales pour l'installation de contrôle/commande (relatives par exemple à des alarmes, à15 des tendances, à des historiques, à des ordres de conduite d'un opérateur, ) des objets qui encapsulent des données éphémères (relatives par exemple à des résultats intermédiaires de calcul) ou des données qui proviennent des automates Il est courant, dans un système logiciel à objets20 commandant un processeur de niveau supervision d'une installation de contrôle/commande, que les données vitales qui doivent être maintenues dans le temps même en cas de défaillance du processeur, soient finalement peu nombreuses par rapport au nombre total de données manipulées par ce25 système logiciel Nous appellerons par la suite, ces données vitales, des données rémanentes La programmation à objets permet de cantonner les données rémanentes dans certains objets constituant un système logiciel à objets sans remettre en cause la structure modulaire du système30 logiciel. Le but de l'invention est de proposer un système logiciel à objets apte à commander le niveau supervision d'une installation de contrôle/commande à architecture redondante selon une technique de redondance semi-active On35 entend par redondance semi-active le fait que les objets logiciels de la réplique du système logiciel présents dans le processeur de secours ne sont pas systématiquement tous mis en oeuvre En particulier, on souhaite que lors du fonctionnement normal de l'installation de contrôle/commande, les répliques des objets logiciels 5 présents dans le processeur maître et encapsulant des données rémanentes soient uniquement activées en parallèle avec ces objets logiciels de manière à réduire la charge de traitement du processeur de secours tout en garantissant une continuité de service en cas de défaillance survenant au10 niveau du processeur maître Le grain de réplication doit donc être un objet logiciel. Cet objectif doit être atteint sans remettre en cause la structure des objets logiciels du système logiciel résidant dans le premier processeur En particulier15 l'invention doit pouvoir s'appliquer facilement à des systèmes logiciels à objets déjà en service. A cet effet, l'invention a pour objet un système logiciel à objets, notamment pour une installation de contrôle/commande à architecture redondante comprenant au20 moins un premier processeur et un second processeur, le système logiciel comprenant des objets logiciels résidant dans le premier processeur et communiquant entre eux par messages, caractérisé en ce qu'il comprend en outre: un mécanisme de messagerie d'objet dynamique appelé par chaque objet qui engendre un message, le message incluant un identificateur d'objet destinataire du message, et le mécanisme de messagerie d'objet étant agencé pour adresser ce message audit objet destinataire du message; un moyen pour marquer certains objets destinataires de messages; ledit mécanisme de messagerie incluant en outre un moyen de contrôle pour identifier un message destiné à un objet marqué à partir dudit identificateur d'objet destinataire et un moyen d'émission de messages réseau pour35 transmettre un message réseau dérivé d'un tel message objet vers le second processeur au travers d'un réseau de communication. Selon l'invention, les objets encapsulant des données rémanentes sont marqués et le mécanisme de messagerie d'objet peut discriminer les messages destinés à de tels objets marqués Ces messages sont transformés en messages réseau qui sont transmis vers le second processeur pour activer les répliques des objets encapsulant des données rémanentes Les autres répliques d'objets présents dans le10 second processeur ne sont normalement pas activées de sorte que la charge du second processeur est diminuée lors du fonctionnement normal de l'installation de contrôle/commande Les procédures supplémentaires de gestion du transfert de messages entre processeurs restent15 cantonnées dans la structure du mécanisme de messagerie et non dispersées sur l'ensemble du code source du système logiciel de sorte que l'invention peut s'appliquer à un système logiciel à objets déjà existant sans remettre en cause sa structure.20 D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d'un exemple de réalisation de l'invention faite aux dessins. -La figure 1 représente schématiquement une installation de contrôle/commande à architecture redondante commandée par un système logiciel à objets conforme à l'invention. -La figure 2 est un organigramme illustrant le fonctionnement du moyen de contrôle du mécanisme de messagerie d'objet selon l'invention.30 En se reportant à la figure 1, un système logiciel à objets 2 conforme à l'invention est montré comprenant plusieurs objets logiciels 3 résidant dans une mémoire d'un processeur 1 Le processeur 1 qui est un ordinateur classique en soi, fait partie d'un ensemble plus vaste35 constituant une installation de contrôle/commande à telle qu'une installation de architecture redondante, contrôle/commande pour salle de commande d'un équipement industriel Le système logiciel à objets 2 assure, au niveau supervision, l'acquisition de signaux d'information numérisés SI provenant d'un équipement extérieur 12 et 5 l'envoi de signaux de commande équipement SCE vers cet équipement, par l'intermédiaire d'objets logiciels d'acquisition tel que A Il assure aussi un traitement sur de tels signaux d'information numérisés SI par l'intermédiaire d'autres objets logiciels tel que C Il peut10 prendre en compte des signaux de commande terminal SCT provenant d'un opérateur par l'intermédiaire d'objets logiciels d'interface homme/machine tel que B et d'un terminal de commande 13 mettant en oeuvre de tels objets Il assure la gestion d'alarmes à partir de la surveillance du15 résultat des traitements par l'intermédiaire d'objets logiciels d'alarme tel que E et l'affichage ou la signalisation de conditions d'alarme par l'intermédiaire de premiers objets logiciels d'affichage tel que G commandant un terminal d'affichage 14 Il assure aussi la conservation20 de résultats de traitement dans des objets logiciels d'historique tel que D et l'affichage de l'évolution des résultats de traitement par l'intermédiaire de seconds objets logiciels d'affichage tel que F qui commandent aussi le terminal d'affichage 14.25 Le processeur 1 est relié au travers d'un réseau de communication numérique asynchrone 10 à un autre processeur 1 ' ayant aussi une mémoire dans laquelle réside une réplique 2 ' du système logiciel à objets 2 Le réseau de communication peut être le réseau Ethernet Le système logiciel 2 ' est lui-même constitué d'objets logiciels 3 '. Sur cette figure, l'équipement 12 est relié en parallèle au processeur 1 et au processeur 2, lequel est relié à un terminal d'affichage 14 ' et à un terminal de commande 13 '. Les objets 3 ' sont des répliques des objets 3 et comprennent35 des objets logiciels d'acquisition tel que A', des objets logiciel interface homme/machine tel que B', des objets logiciels de traitement tel que C', des objets logiciels d'alarme tel que E', des objets logiciels d'historique tel que D' et des objets logiciels d'affichage tels que G' et F'. 5 Les objets A,B,C,D,E, F,G communiquent entre eux par messages de façon classique en programmation à objet, les messages ayant une structure définie par le langage de programmation à objets utilisé Nous appellerons par la suite ces messages, des messages d'objets La circulation de10 messages entre objets obéit aux liens fonctionnels de dépendance entre ces objets qui sont représentés par des flèches 11. Chaque message d'objet M engendré par un objet d'origine 3 inclut au moins un identificateur local d'objet identifiant un objet destinataire d'un tel message et un identificateur de méthode au sens classique de la prograimimation à objets Le message d'objet M peut inclure d'autres paramètres, telles que des données à prendre en compte par la méthode Selon l'invention le message est20 d'abord fourni à un mécanisme de messagerie d'objet 5 Ce mécanisme de messagerie 5 fait partie du système logiciel 2. Classiquement, le rôle d'un mécanisme de messagerie d'objet est d'établir un lien entre l'identificateur local d'une méthode (sélecteur) et le (pointeur sur le) code exécutable25 de la méthode en fonction de l'identificateur l'objet destinataire (pointeur sur les données de l'objet) inclus dans le message d'objet Les mécanismes de messagerie d'objet sont bien connus On distingue parmi ceux-ci les mécanismes de messagerie dits statiques qui établissent les30 liens à la compilation du code source des objets et les mécanismes de messagerie dits dynamiques qui établissent les liens à l'exécution Ces derniers possèdent une structure logicielle (appelée "Run Time") et qui est activée à chaque envoi d'un message par un objet Par la suite, nous ferons35 référence uniquement à un mécanisme de messagerie d'objet dynamique A titre d'exemple, le compilateur du langage de programmation "OBJECTIVE-C" distribué par la société Stepstone ou le compilateur du langage "SMALLTALK" de la société Xerox, construit un mécanisme de messagerie dynamique Pour faciliter la compréhension de l'invention, 5 il est rappelé que la communication par messages entre objets implique l'appel d'un objet X par un objet Y et la réponse de l'objet X à l'objet Y L'appel d'un objet X par un objet Y est explicite et peut être vu de la syntaxe même du code source de l'objet Y: en langage OBJECTIVE-C, lX nom-10 de-méthode: argumentsl dans le code source de l'objet Y dénote l'envoi d'un message par Y à X La réponse de l'objet X à l'objet Y peut se faire soit par un appel explicite (lY nom-deméthode: argumentsl) soit par un appel implicite par l'intermédiaire d'une pile d'appel de fonction (réponse= lX15 nom-de-méthode: argumentsl) Par la suite, on considère que les objets logiciels 3 effectuent des réponses explicites. Selon un premier aspect de l'invention, un mécanisme de messagerie dynamique est enrichi pour discriminer, lors de l'exécution du système logiciel dans le premier20 processeur, les messages qui sont adressés à certains objets 3 du système logiciel 2 comme les objets encapsulant des données rémanentes La fonction de discrimination de messages n'affecte pas le code source des objets logiciels 3 Cette fonction doit par ailleurs pouvoir être mise en oeuvre pour chaque message d'objet M engendré par un objet 3 Sur la figure 1, un mécanisme de messagerie 5 est montré interposé, sur le trajet il de messages d'objet, entre l'objet C qui engendre des messages d'objet Md, Me et les objet D et E à qui sont adressés respectivement chaque30 message d'objet L'adressage de chaque message est réalisé dans la section d'adressage 53 du mécanisme de messagerie 5. La section d'adressage 53 est classique de sorte qu'il est inutile de la décrire plus. Selon un second aspect de l'invention, chaque objet 3 possède une marque identifiable par le mécanisme de messagerie 5 à partir de l'identificateur local de cet objet Cette marque peut être un attribut de l'objet qui a une valeur particulière Cet attribut peut être hérité de la racine de la hiérarchie d'héritage des objets 3 par l'intermédiaire d'un mécanisme d'héritage d'attributs de 5 classes d'objets, classique en soi Il sera appelé par la suite attribut de réplication La valeur initiale d'un attribut de réplication pour un objet particulier est fixée de préférence au moment de l'écriture du code source de cet objet mais peut facilement être modifiée lors de la10 configuration du système logiciel ou au cours de son exécution, par exemple par cet objet Selon l'invention, les objets 3 (encapsulant des données rémanentes) ayant une réplique 3 ' devant être activée dans le processeur 1 ' possèdent un attribut de réplication ayant comme valeur une15 valeur particulière qui sert de référence On considère que les objets D et G sur la figure 1 sont désignés, à titre d'exemple, comme objets répliqués, c'est à dire comme objets 3 du processeur 1 ayant une réplique 3 ' devant être activée dans le processeur 1 '. Le mécanisme de messagerie 5 inclut aussi une section de contrôle 51 placée en amont de la section d'adressage 53. L'exécution du code de la section de contrôle 51 précède donc toujours l'exécution du code de la section d'adressage 53 La section de contrôle 51 est agencée pour réaliser les traitements suivants: comparer, dans un module de comparaison CI, l'attribut de réplication de l'objet destinataire du message reçu avec la valeur de référence de réplication, la valeur de l'attribut de réplication de l'objet en question étant30 obtenue à partir de l'identificateur local de l'objet inclus dans le message reçu; détecter, dans un module de détection C 2, si l'identificateur local de méthode inclus dans le message reçu est présent dans une première table 91 contenant des35 identificateurs locaux de méthode en correspondance avec des identificateurs globaux de méthodes et des descripteurs de format des arguments de méthode, et fournir le cas échéant un identificateur global de méthode qui correspond à l'identificateur local de méthode présent dans la première table ainsi que le descripteur de format correspondant;5 détecter, dans un module de détection C 3, si l'identificateur local de l'objet inclus dans le message est présent dans une seconde table 92 contenant des identificateurs locaux d'objet en correspondance avec des identificateurs globaux d'objet, et fournir le cas échéant10 un identificateur global d'objet qui correspond à l'identificateur local d'objet présent dans la seconde table. Le mécanisme de messagerie 5 inclut encore un module d'émission 52 pour former un message réseau MR dérivé du message objet M reçu et le transmettre à travers le réseau de communication 10 au processeur 1 '. Le module d'émission de messages réseau 52 est agencé pour construire un message réseau MR contenant l'identificateur global d'objet et l'identificateur global20 de méthode fournis par les modules de détection C 2 et C 3 Il est aussi agencé pour construire un message réseau contenant éventuellement des arguments de la méthode codés en utilisant le descripteur de format fourni par le module de détection C 2 Le module d'émission 52 exploite une interface25 réseau d'émission 6 pour envoyer le message réseau MR sur le réseau de communication 10 qui le diffuse vers les processeurs 1 et 1 ' reliés au réseau. Il est souvent préférable, parce que plus simple de disposer dans les deux systèmes logiciels 2 et 2 ' de mécanismes de messagerie d'objet 5 et 5 ' identiques Le mécanisme de messagerie 5 ' comporte donc aussi une section d'adressage 53 ', un section de contrôle 51 ' incluant un comparateur Ci et des modules de détection C 2,C 3 exploitant des tables de correspondance 91 ',92 ', un module d'émission35 52 ' Le système logiciel 2 ' comporte aussi un module logiciel de réception de messages réseau 54 ' (qui est un objet logiciel particulier) exploitant une interface réseau de réception 7 ' L' interface réseau 7 ' capture les messages réseau MR envoyés sur le réseau de communication 10 et passe ces messages au module de réception 54 ' Le module de5 réception 54 ' est agencé pour extraire d'un message réseau capturé MR un identificateur global d'objet, un identificateur global de méthode et éventuellement un descripteur de format Il récupère, à partir de l'inspection de tables de correspondance 91 ' et 92 ' similaires aux tables10 91 et 92, un identificateur local d'objet, un identificateur local de méthode et éventuellement les arguments de la méthode par l'intermédiaire du descripteur de format Il forme ensuite un message d'objet M' et adresse ce message d'objet à la réplique d'objet destinataire 3 ' par15 l'intermédiaire du mécanisme de messagerie d'objet 5 ' Il est entendu que identificateurs locaux d'objet et de méthode dans les tables 91 ' et 92 ' sont spécifiques au processeur 1 ' et ceux des tables 91 et 92 sont spécifiques au processeur 1 Les tables 91, 92, 91 ', 92 ' peuvent être construites au moment de la compilation, après la compilation ou à l'initialisation des systèmes logiciels 2 et 2 '. Il est généralement souhaitable de garantir que dans les deux processeurs 1 et 1 ', les objets 3 et leur répliques 3 ' reçoivent les mêmes messages selon le même ordre (condition d'ordre total et causal) quelque soit l'activité des deux systèmes logiciels 2 et 2 ' Les messages d'objet, capturés par le mécanisme de messagerie 5 et envoyés au processeur 1 ' sous forme de messages réseau, ne sont pas consécutivement adressés aux objets 3 destinataires de ces30 messages, mais transitent d'abord par le réseau de communication 10 pour être temporisés en entrée de chaque processeur 1 et 1 ' par un protocole de diffusion atomique et ordonnée A cet effet, le système logiciel 2 comporte aussi un module logiciel de réception de messages réseau 5435 exploitant une interface réseau de réception 7 L'interface réseau 7 capture les messages réseau MR envoyés sur le il réseau de communication 10 et passe ces messages au module de réception 54 Le module de réception 54 est agencé pour extraire d'un message réseau MR un identificateur global d'objet, un identificateur global de méthode et5 éventuellement un descripteur de format Il récupère, à partir de l'inspection de tables de correspondance 91 et 92 un identificateur local d'objet, un identificateur local de méthode et éventuellement les arguments de la méthode par l'intermédiaire du descripteur de format Il forme ensuite10 un message d'objet M et adresse ce message d'objet à l'objet destinataire 3 identifié par l'identificateur local d'objet par l'intermédiaire du mécanisme de messagerie d'objet 5 Le protocole de diffusion atomique et ordonné peut être implémenté dans le code source des modules d'émission et de15 réception de messages réseau 52, 54, 54 ' en utilisant les fonctions "ABCATS" (ou "CBCAST") du système ISIS vendu par Isis Distributed Systems Pour éviter le bouclage à l'intérieur du mécanisme de messagerie 5 lors du retour d'un message d'objet M fourni par le module de réception 54, la20 section de contrôle 51 du mécanisme de messagerie 5 est agencée pour comparer, dans un comparateur Co placé en amont du comparateur Ci,, si un drapeau (une variable booléenne) est égale à ou différente d'une valeur de référence d'inhibition de la diffusion Par la suite, on dira que le25 drapeau est levé si sa valeur est égale à la valeur de référence d'inhibition et baissé dans le cas contraire. En se reportant maintenant à la figure 2, le fonctionnement du mécanisme de messagerie 5 et plus particulièrement de sa section de contrôle 51 est le30 suivant En entrée du mécanisme de messagerie 5, le drapeau est testé dans le comparateur CO Si le drapeau est baissé, le traitement se poursuit dans la section d'adressage 53. S'il est levé, l'attribut de réplication de l'objet destinataire du message est testé dans le comparateur Cl Si35 l'attribut de réplication de cet objet à une valeur différente de la valeur de référence de réplication, le traitement se poursuit dans la section d'adressage 53 Dans le cas contraire, le traitement se poursuit dans le module de détection C 2 Le module de détection explore la table 91 pour détecter si l'identificateur local de méthode y est 5 présent Dans ce cas, un identificateur global de méthode est extrait de la table 91 et un descripteur de format éventuellement, et le traitement se poursuit dans le module de détection C 3 La table 91 peut contenir seulement des identificateurs de méthode modifiante Une méthode10 modifiante est une méthode modifiant les données de l'objet auquel elle est appliquée La discrimination des messages sur le méthodes modifiantes permet de réduire le trafic utile de messages réseau sur le réseau de communication 10. Dans le cas o l'identificateur local de méthode n'est pas15 présent dans la table 91, le traitement se poursuit dans la section d'adressage 53 Le module de détection C 3 explore la table 92 pour détecter si l'identificateur local d'objet y est présent Dans ce cas, un identificateur global d'objet est extrait de la table 92 et le traitement se poursuit dans20 le module d'émission 52 qui forme le message réseau MR Le mécanisme de messagerie 5 comporte donc deux sorties qui sont la section d'adressage 53 et le module d'émission de messages réseau 52. Le drapeau est normalement levé à l'initialisation du système logiciel 2 mais il est baissé par le module de réception de messages réseau 54 quand ce dernier appelle le mécanisme de messagerie 5 pour envoyer à un objet un message d'objet dérivé du message réseau reçu Ceci évite le rebouclage dans la section de contrôle 51 Le drapeau est30 levé aussi par le module de réception de messages réseau 54 de sorte que le mécanisme de messagerie peut de nouveau discriminer les messages d'objet à prendre en compte. L'ensemble des caractéristiques du mécanisme de messagerie 5 se retrouve bien entendu dans le mécanisme de messagerie 5 '.35 Il en est de même pour les modules de réception de messages réseau 54 et 54 '. Nous allons maintenant décrire le fonctionnement global du système logiciel 2 et du système logiciel 2 ' en prenant le cas d'un échange de message entre l'objet C et l'objet D qui possède un attribut de réplication ayant comme 5 valeur la valeur de référence de réplication. L'objet C engendre un message Md incluant un identificateur d'objet identifiant l'objet D et un identificateur de méthode identifiant une méthode modifiante Le mécanisme de messagerie 5 est mis en oeuvre.10 Le traitement se poursuit successivement dans les comparateurs CO et Cl, puis dans les modules de détection C 2, C 3 et enfin dans le module d'émission de message réseau 53 Un message réseau MR est envoyé sur le réseau de communication 10 par l'interface d'émission 6. En réponse à la réception et à la prise en compte du message réseau MR, les interfaces de réception de messages réseau 7 et 7 ' passent le message réseau MR respectivement au module de réception de messages réseau 54 et au module de réception de messages réseau 54 ' en exploitant le protocole20 de diffusion atomique et ordonné Les modules de réception de message réseau 54, 54 ' baissent les drapeaux des mécanismes de messagerie 5, 5 ' Ils envoient ensuite chacun, un message objet Md à leur mécanisme de messagerie respectif La section de contrôle 51 du mécanisme de25 messagerie 5 est de nouveau mise en oeuvre pour le message Md Le traitement se poursuit alors dans le comparateur CO puis dans la section d'adressage 53 du fait que le drapeau est baissé La section d'adressage 53 adresse le message Md à l'objet D De la même façon, dans la section de contrôle 51 ' le traitement se poursuit dans le comparateur CO puis dans la section d'adressage 53 ', du fait que le drapeau est baissé. En réponse au message Md, l'objet D fait appel à son tour au mécanisme de messagerie 5 pour envoyer un message Mf incluant un identificateur d'objet identifiant l'objet F et un identificateur de méthode Le drapeau étant toujours baissé, le traitement dans le mécanisme de messagerie 5 se poursuit d'abord dans le comparateur CO puis dans la section d'adressage 53 (que l'objet F soit ou non déclaré répliqué). -Un traitement identique est réalisé par le mécanisme de messagerie 5 ' pour les objets D' et F' Les drapeaux sont levés dans les modules de réception de messages réseau 54 et 54 ' lorsque le code du mécanisme de messagerie 5 respectivement 5 ' est complètement exécuté pour ce qui concerne l'appel de l'objet D respectivement D' La levée du10 drapeau par le module de réception 54 intervient normalement après l'envoi du message Mf par l'objet D à l'objet F Pour le message Me engendré par l'objet c à destination de l'objet E la section de contrôle 51 du mécanisme de messagerie 5 est de nouveau mise en oeuvre Le traitement se15 poursuit dans les comparateurs CO, Cl et dans la section d'adressage 53 du fait que l'objet E n'est pas un objet répliqué. En réponse à la prise en compte du message Me, l'objet E engendre le message Mg qui est destiné à un objet répliqué G De nouveau, dans le mécanisme de messagerie 5, le traitement se poursuivra dans les comparateurs CO et Cl, dans les modules de détection C 2 et C 3 et dans le module d'émission de message réseau 52 Un nouveau message réseau MR sera envoyé sur le réseau de communication 10.25 Dans la réplique 2 ' du système logiciel 2, seules les répliques D',F'et G' des objets D,F et G sont normalement activées par le mécanisme de messagerie 5 ' ce qui limite la charge de traitement du processeur 1 ' Les objets B', C', E' peuvent néanmoins être activés par l'intermédiaire du30 terminal de commande 13 ' qui agit sur l'objet B' Il est alors avantageux que le mécanisme de messagerie 5 ' de la réplique 2 ' du système logiciel 2 comporte aussi un module d'émission de messages réseau 52 ' exploitant une interface d'émission réseau 6 ' Dansce cas, la diffusion de messages35 réseau sur le réseau de communication 10 se fait depuis le module d'émission de messages réseau 52 '. Il peut exister des situations o l'ordre des messages d'objet reçus par un objet 3 diffère de l'ordre des messages d'objet reçus par une réplique 3 ' de cet objet 3 En prenant le cas o l'objet D reçoit le message d'objet Md de l'objet 5 C et un message d'objet Md' de l'objet B et si de plus l'objet C est déclaré répliqué, il est possible que l'ordre de prise en compte des messages Md et Md' par le mécanisme de messagerie 5 diffère de l'ordre de prise en compte des mêmes messages par le mécanisme de messagerie 5 ' car le10 drapeau inhibe l'emploi de la diffusion atomique et ordonnée lors de l'envoi du message Md de l'objet C à l'objet D Cela peut causer des inversions de messages sur les objets D et D' si il peut y avoir préemption des traitements Pour résoudre ce problème, on peut prévoir dans chaque module de15 réception 54 de messages réseau une commande pour empêcher toute préemption du programmateur des traitements d'objets pendant le traitement de la séquence d'objets C-D-F (appelée communément "thread") A cet effet, chaque module de réception de messages réseau est agencé pour inhiber20 l'ordonnateur avant l'appel au mécanisme de messagerie et lever l'inhibition après cet appel Il est à noter, que des interactions complexes entre objets peuvent conduire à déclarer des objets comme répliqués alors qu'ils ne contiennent pas de données rémanentes afin de simplifier le25 trafic sur le réseau de communication et éviter les problèmes d'ordonnancement de messages entre objets répliqués. Le système logiciel à objets selon l'invention permet de commander une installation à architecture redondante selon une technique de redondance semi-active sans avoir à remettre en cause la structure des objets logiciels. L'invention peut par conséquent s'appliquer facilement à des systèmes logiciels à objets existants Ainsi, pour un système logiciel à objets existant réalisé à partir du35 langage "OBJECTIVE-C", il suffit, d'une part, d'inclure dans le code de la messagerie dynamique produite par le compilateur OBJECTIVE-C quelques instructions en code source OBJECTIVE-C pour réaliser la section de contrôle 51 et réaliser les modules d'émission et de réception de messages réseau 52 et 54 en utilisant les primitives du système ISIS.5 Il est évident que l'invention peut s'appliquer à une installation à structure redondante comprenant plus de deux processeurs, chaque processeurs ayant un mécanisme de messagerie et des modules de réception et d'émission de messages réseau.10 Bien entendu, l'invention n'est pas limitée à l'exemple de réalisation ci dessus décrit, et on pourra prévoir d'autres variantes sans pour cela sortir du cadre de l'invention. REVENDICATIONS 1.) Un système logiciel à objets, notamment pour installation de contrôle/commande à architecture redondante comprenant au moins un premier processeur ( 1) et un second processeur ( 2), le système logiciel comprenant des objets logiciels ( 3) résidant dans le premier processeur et communiquant entre eux par messages d'objet, caractérisé en ce qu'il comprend en outre:10 un mécanisme de messagerie d'objet dynamique ( 5) appelé par chaque objet ( 3) qui engendre un message d'objet, le message d'objet incluant au moins un identificateur d'objet destinataire dudit message, et le mécanisme de messagerie étant agencé pour adresser ce message d'objet15 audit objet destinataire du message; un moyen ( 31) pour marquer certains objets destinataires de messages d'objets; et en ce que le mécanisme de messagerie ( 5) inclut en outre un moyen de contrôle ( 51) pour identifier un message d'objet destiné à un objet marqué à partir dudit identificateur d'objet destinataire et un moyen d'émission ( 52) de messages réseau pour transmettre un message réseau dérivé d'un tel message objet vers le second processeur au travers d'un réseau de communication ( 10).25 2.) Le système selon la revendication 1, comprenant en outre un moyen de réception de messages réseau ( 54) pour recevoir le message réseau fourni par le moyen d'émission de messages réseau et former un message d'objet dérivé du30 message réseau reçu pour le transmettre au mécanisme de messagerie ( 5), et dans lequel le mécanisme de messagerie ( 5) inclut en outre un moyen d'inhibition du moyen de contrôle ( 51), ce moyen d'inhibition étant commandé par le moyen de réception de messages réseau ( 54).35 3.) Le système selon la revendication 2, dans lequel le moyen d'inhibition est constitué par un drapeau dont la valeur est fixée par le moyen de réception de messages réseau ( 54), la valeur du drapeau étant prise en compte par 5 le mécanisme de messagerie ( 5). 4.) Le système selon la revendication 1, dans lequel les objets destinataires de messages héritent des attributs d'une classe d'objet et le moyen de marquage ( 31) des objets10 destinataire réside dans un attribut particulier de la classe d'objet dit attribut de réplication. 5.) Le système selon les revendications 3 et 4, dans lequel chaque message inclut en outre un identificateur de méthode et le moyen de contrôle ( 51) comprend: un comparateur CO comparant la valeur du drapeau à une valeur de référence d'inhibition; un comparateur Cl comparant la valeur de l'attribut de réplication avec une valeur de référence de réplication; un premier module de détection C 2 explorant une première table ( 91) dans laquelle sont enregistrés des identificateurs locaux de méthode en correspondance avec des identificateurs globaux de méthode pour détecter si ledit identificateur local de méthode est présent dans la première25 table et fournir un identificateur global de méthode qui correspond à cet identificateur local de méthode; un second module de détection C 3 explorant une seconde table ( 92) dans laquelle sont enregistrés des identificateurs locaux d'objet en correspondance avec des30 identificateurs globaux d'objet pour détecter si ledit identificateur local d'objet est présent dans la seconde table et fournir un identificateur global d'objet qui correspond à cet identificateur local d'objet. 6) Le système selon la revendication 5, dans lequel le moyen d'émission de messages réseau ( 54) est agencé pour former un message réseau contenant au moins l'identificateur global d'objet et l'identificateur global de méthode fournis par la section de contrôle. 7) Le système selon la revendication 5, dans lequel la première table ( 91) contient uniquement des identificateurs locaux de méthode modifiante en correspondance avec des identificateurs globaux de méthode modifiante.10 8) Le système selon la revendication 2, dans lequel le moyen de réception de messages réseau ( 54) et le moyen d'émission de messages réseau ( 52) exploitent un protocole de diffusion de messages réseau atomique et ordonnée.