INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Ainsi, comme le montre la , pour la première orientation du composant libre 10, deux groupes C1, C2 de positions autorisées 12 sont formés lors de cette étape facultative. Comme le montre la , pour la deuxième orientation du composant libre 10, deux groupes C3, C4 de positions autorisées 12 sont formés lors de cette étape facultative (le groupe C4 ne comprend qu’une seule position autorisée, mais il ne peut pas être rattaché au groupe C3 car les éléments de volume 5 qui le constituent ne sont pas adjacents aux éléments de volume 5 des positions autorisées 12 du groupe C3).
La présente invention trouve une application particulièrement avantageuse pour l’agencement simultané du composant libre 10 et d’un autre composant libre 11 dans l’environnement de référence 1.
Pour mettre en œuvre ce placement simultané, il est considéré que étapes précitées (de la première à la septième) ont été préalablement mises en œuvre pour chacun du composant libre 10 et de l’autre composant libre 11. Ainsi, à ce stade, le calculateur dispose de l’ensemble des positions autorisées 12 pour positionner le composant libre 10 selon toutes les orientations possibles (pour ce composant libre 10) dans la zone autorisée 1A de l’environnement de référence 1 et de l’ensemble des positions autorisées 12 pour positionner l’autre composant libre 11 selon toutes les orientations possibles (pour cet autre composant libre 11) dans la zone autorisée 1A de l’environnement de référence 1.
En d’autres termes, le calculateur dispose, d’une part, de l’ensemble des postures possibles du composant libre 10 dans l’environnement de référence 1 et, d’autre part, de l’ensemble des postures possibles de l’autre composant libre 11 dans l’environnement de référence 1.
Une étape de détermination simultanée d’une posture finale du composant libre 10 et d’une posture finale de l’autre composant libre 11 est alors mise en œuvre.
Selon un premier mode de réalisation de cette étape, le calculateur compare chaque posture possible du composant libre avec chaque posture possible de l’autre composant 11 de manière à déterminer une combinaison (de la posture finale du composant libre 10 et de la posture finale de l’autre composant libre 11) pour laquelle l’indice de superposition entre les deux postures finales est nul.
Dans ce premier mode de réalisation, le calculateur peut arrêter l’exécution de cette étape dès qu’il a trouvé une combinaison qui satisfait la condition sur l’indice de superposition. Cette mise en œuvre est très rapide mais elle n’est pas forcément optimale car elle ne permet pas de prendre en compte les contraintes de fabrication.
En variante, le calculateur peut déterminer l’ensemble des combinaisons de posture du composant libre 10 et de l’autre composant libre 11 satisfaisant la condition sur l’indice de superposition.
Cette variante est particulièrement avantageuse car elle permet de disposer d’une pluralité de combinaisons satisfaisantes et de sélectionner celle qui permet de répondre aux contraintes de fabrication imposées par le concepteur.
Toutefois, il ne s’agit pas de la mise en œuvre préférentielle car la détermination de toutes les combinaisons satisfaisant la condition sur l’indice de superposition peut être lente à mettre en œuvre.
Dans un deuxième mode de réalisation préféré, l’étape facultative décrite précédemment est mise en œuvre. Ainsi, les postures déterminées pour le composant libre 10 sont regroupées en une pluralité de groupes et les postures déterminées pour l’autre composant libre 11 sont regroupées en une pluralité d’autres groupes.
Le calculateur procède alors à la détermination des combinaisons possibles des postures finales en mettant en parallèle deux à deux, d’une part, les groupes de postures du composant libre 10 et, d’autre part, les autres groupes de postures de l’autre composant libre 11.
Ce deuxième mode de réalisation permet de simplifier la détermination des postures finales grâce à cette comparaison entre les groupes de postures du composant libre 10 et les autres groupes de postures de l’autre composant libre 11.
De plus, il permet de disposer d’une pluralité de combinaisons satisfaisantes et de sélectionner celle qui permet de répondre aux contraintes de fabrication imposées par le concepteur.
La posture finale du composant libre 10 et la posture finale de l’autre composant libre 11 sont alors déterminées en tenant compte des contraintes imposées par le concepteur, telles que par exemple des contraintes visant à limiter les coûts de fabrication ou à faciliter le montage du composant libre 10 dans l’environnement de référence 1 comme décrit à la huitième étape.
Enfin, en pratique, le procédé conforme à l’invention peut être mis en œuvre en boucle. Par exemple, en considérant que le composant mobile 10 comprenne lui-même un sous-composant mobile à positionner, le procédé est mis en œuvre dans un premier temps pour déterminer les postures finales du composant mobile 10 et de l’autre composant mobile 11 dans l’environnement de référence 1. Puis, il est mis en œuvre pour déterminer la posture du sous-composant mobile en prenant comme environnement de référence (pour ce sous-composant mobile) le composant mobile 10 (dont la posture a été déterminée lors d’une première mise en œuvre du procédé). Ainsi, un schéma pouvant être illustré par une organisation en poupées russes est mis en œuvre pour permettre l’agencement de l’ensemble des composant compris dans le véhicule automobile.
Le module de détection de dysfonctionnement 23 dans chaque client 2_1, …, 2_P, surveille qu’il reçoit, selon ladite périodicité prédéfinie, les messages heartbeat en provenance du serveur maître actuel tel indiqué par le curseur dans la liste ordonné des serveurs 21; et lorsqu’il détecte que le message heartbeat n’a pas été reçu conformément à ladite périodicité prédéfinie (ou dans des modes de réalisation, que le nombre de messages non reçus selon cette périodicité est supérieur à un seuil fixé, supérieur ou égal à 2), le module de détection 23 du client détecte un dysfonctionnement et envoie une requête de recherche (message de type Master Request) d’un nouveau serveur maître au serveur de rang n+1 qui suit le serveur maître actuel (de rang n dans la liste) dans la liste ordonnée des serveurs.
Le message de type heartbeat est, dans le cas considéré, par exemple paramétré par renewal , qui définit le nombre de messages manqués déclenchant un changement de serveur de clef, et period , qui définit la périodicité de l’envoi du heartbeat . Cette valeur de périodicité est typiquement la durée maximale pendant laquelle des pertes de messages sont acceptables du point de vue opérationnel, divisée par renewal .
La illustre le déroulé de ces précédentes étapes mises en œuvre dans une situation de détection de de panne du serveur SKS maitre par un client (ici publisher).
Chaque module 14 d’élection de chaque serveur de clef, à l’exclusion du serveur maître précédent, dès réception par ledit serveur de clefs d’un message de type Master Request envoyé par un client 2_i, i = 1 à P, envoie à tous les autres serveurs de la liste 11 des serveurs un message requérant une élection, nommé ici message Master Claim, avec l’identifiant du serveur. Il attend un temps prédéfini (délai nommé timeout égal au minimum deux fois la latence du message en prenant comme référence l’envoi de son propre Master Claim). Il peut recevoir pendant cette période un ou des messages Master Claim venant d’autres serveurs de clef. A la fin de l’attente : si la priorité du serveur de clef auquel appartient le module d’élection 14 est inférieure à celles d’autres Master Claim reçus, il se considère comme serveur esclave, et ne répond pas au client ; dans le cas contraire, c’est-à-dire s’il n’a reçu aucun message Master Claim, le serveur devient le serveur de clef maître courant, il génère alors de nouvelles clefs de session et le module 16 de renouvellement des clefs du serveur de clef répond au client l’ayant sollicité par le message Master Request par un SetSecurityKey (avec un renouvellement de clef immédiat quelle que soit la date d’expiration de sa clef) et plus globalement à chaque client de sa liste de clients. Il met en outre à jour le curseur dans sa liste des serveurs 11 et par synchronisation, la liste des serveurs dans les autres serveurs et dans les clients est mise à jour également.
SetSecurityKey est un ensemble d’échanges protocolaires initié par un SKS et à destination d’un client, et a pour fonction d’envoyer de nouvelles clefs de session au client. Ces échanges incluent l’authentification réciproque des interlocuteurs, la création d’un canal sécurisé entre ceux-ci et la transmission des clefs de session dans ce canal. Une solution d’implémentation possible et efficace serait d’utiliser la fonction homonyme définie dans OPC UA PUBSUB.
La illustre une élection de serveur SKS maître dans le système 1, après un dysfonctionnement détecté par exemple comme illustré en , avec N=3. Dans le scénario illustré, un client Publisher 2_i (i ∈ 1,…, Q, Q Master Claim à destination de chacun des serveurs 1_1 et 1_3. Ici seul le serveur esclave 1_2 a reçu un Master Request d’un client. Il est donc le seul à émettre une Master Claim . Il procède donc à l’envoi d’un SetSecurityKey après expiration du timeout à destination du client 2_i.
Dans un mode de réalisation, si le client n’a pas eu de retour (message SetSecurityKey) après l’expiration d’un délai prédéfini (typiquement égale à timeout fois deux) suite à l’envoi de son message Master Request, le client envoie alors un message Master Request au serveur suivant dans sa liste, et ainsi de suite. Une fois le Nième serveur, le serveur 1_N, de la liste des serveurs atteint, le client reboucle sur le premier serveur 1_1, en incrémentant la durée entre chaque cycle, jusqu’à obtenir une réponse. Un mécanisme extérieur au serveur maître exclu permet de s’assurer de sa non-compromission avant de le réintroduire dans la liste des serveurs SKS éligibles à la position de serveur maître.
La redondance est dite cyclique car, après épuisement de la liste des serveurs de clef (par défaillance de la totalité d’entre eux) sans réception d’un message indiquant la prise en compte de sa requête, le client va repartir sur le premier serveur, et ainsi de suite, jusqu’à ce qu’un des serveurs de clefs réponde finalement.
La redondance est dite adaptable car un nombre arbitraire N de serveurs peut être provisionné, en fonction des besoins du système en termes de disponibilité.
Le risque 3 mentionné plus haut est évité, puisque le serveur de clefs est redondé sans limites théoriques. Les clefs de session éventuellement compromises ne le seront que pendant une durée maximale égale à period fois renewal (plus le temps d’élection du serveur maître, très généralement extrêmement court).
On notera que la transmission des clefs de session est effectuée selon le standard OPC UA PUBSUB, dans le mode de réalisation considéré et donc selon les étapes suivantes : Envoi par le client 2_i (i ∈ 1,…, P) de ses certificats (contenant en particulier leur clef publique de chiffrement) au serveur SKS maître 1_n (n ∈ 1,…, N); Vérification du certificat par le serveur SKS maître (signature par une autorité légitime et date d’expiration) ; Réponse du serveur SKS par l’envoi d’un message non prévisible chiffré avec la clef publique du client (challenge); Déchiffrement par le client du challenge en utilisant sa propre clef privée ; Réponse du client au challenge par un message contenant le même texte, chiffré avec la clef publique du SKS ; Déchiffrement par le SKS du message reçu du client (réponse au challenge) ; Calcul par le client d’une clef secrète temporaire SK1 utilisant la clef publique du SKS et sa clef privée ; Calcul par le SKS d’une clef secrète temporaire SK2 utilisant la clef publique du client et sa clef privée (par construction SK1 = SK2); Envoi par le SKS de la clef de session (ou clef de groupe) chiffrée avec SK2 par le SKS ; Déchiffrement par le client de la clef de session avec SK1.
Dans un mode de réalisation de l’invention, la conservation des clefs privées est effectuée, pour chaque interlocuteur (Client et SKS), dans des « Secure Elements » (SE) présents dans leurs hôtes respectifs, par exemple suivant le standard TPM2 (https://trustedcomputinggroup.org/resource/tpm-library-specification/), ou le Embedded Secure Element de Gemalto (https://www.thalesgroup.com/en/markets/digital-identity-and-security/mobile/secure-elements/embedded-secure-element).
Dans ce mode de réalisation, l’échange des clefs de session est sécurisé en ajoutant les étapes suivantes :
En phase de provisionnement : La clef privée de chaque client est conservée dans un « Secure Element » (SE) ; Le certificat du client est généré (signature cryptographique) par le SE sans que la clef privée soit extraite de celui-ci ; La clef privée de chaque SKS est conservée dans le SE présent dans son hôte ; Le certificat du SKS est également généré en utilisant le SE. En phase opérationnelle (distribution de clef) : Le déchiffrement du challenge SKS (phase 4) est effectué dans le SE du Client ; Le déchiffrement de la réponse au challenge par le Client (phase 6) est effectué dans le SE du SKS ; Le calcul de la clef secrète temporaire SK1 (étape 7) est effectué par le SE du client ; Le calcul de la clef secrète temporaire SK2 (étape 8) est effectué par le SE du SKS ; Comme les clefs privées ne quittent jamais le SKS (ou le client), et grâce aux propriétés de non-lisibilité du SE, un accès physique à la machine ne permet pas simplement de les obtenir, et il n’est donc pas possible à un attaquant ne disposant pas de moyens très conséquents de compromettre l’intégrité ou la confidentialité du système en insérant un nœud illégitime.
A l’issue de ces étapes de transmission de clef entre un publisher et un SKS implémentant ces principes, le publisher a reçu une clef de session chiffrée, ainsi que la clef temporaire (SK1) qui permet de déchiffrer cette clef secrète. A aucun moment la clef de session n’a été transmise en clair, et une clef privée légitime (signée par une autorité de certification connue du SKS) est nécessaire pour calculer une clef temporaire. Un attaquant n’a aucun moyen simple d’obtenir une clef privée légitime, puisque celles-ci sont protégées par des SE.
Lors d’une demande de clef initiale, un client essaye tous les serveurs de clef (dans l’ordre de priorité décroissant de la liste, du rang 1 au rang N) jusqu’à en trouver un qui réponde. Il établit alors une connexion sécurisée et reçoit les clefs de session. A la différence de ce qui se passe dans la version actuelle du protocole OPC UA PUBSUB, le serveur de clef associe au nouveau client ses identifiants réseau (au format dépendant du protocole utilisé, e.g. adresse IP et port d’écoute en IP). Cette association peut être implémentée dans un tableau indexé par l’identifiant du client.
Lors d’une première itération de l’étape 250, une cellule initiale est déterminée. Cette cellule initiale constitue le point de départ de la méthode de peuplement. En d’autres termes, la cellule initiale est la première cellule pour laquelle la composition de tissage est déterminée. Par exemple, la cellule initiale déterminée à l’étape 250 pour la zone initiale déterminée à l’étape 240 (ou à la seule zone du modèle dans le cas où il ne comprend qu’une seule zone) peut être la cellule de la grille de tissage associée au zéro pièce, i.e. la cellule dans laquelle se situe le zéro pièce.
Par « composition de tissage », il est entendu une description des fils de tissage (en chaîne et en trame) et de la manière dont ils sont positionnés les uns par rapport aux autres dans la cellule, ou, de manière équivalente, un ensemble de données permettant de décrire les fils de tissage et la manière dont ils sont positionnés les uns par rapport aux autres dans chaque cellule de la grille de tissage. En particulier, les données concernent le nombre de couches associé à chaque cellule, le nombre de fils de trame et de fils de chaîne par couche, l’espacement entre les couches, l’espacement entre les fils de trame et de chaîne, le nombre de fils de trame (resp. de chaîne) entre deux fils de chaîne (resp. de trame) consécutifs, etc. Ces données peuvent être représentées sous forme de cartographie 3D, comme sur la où sont représentées quelques coupes d’une telle cartographie.
La représente ainsi une grille de tissage et des compositions de tissage pour des cellules de la grille de tissage, selon plusieurs coupes. La grille de tissage représentée à la comprend une pluralité de cellules 401a, 401b, 401c, 401d, 401e. Sur cette figure, la direction X correspond à celle des fils de chaîne 402a, 402b, 402c (représentés avec des pointillés) et la direction Y correspond à celle des fils de trame 403a, 403b, 403c (représentés avec des hachures).
Lorsque la cellule courante est la cellule correspondant au zéro pièce, l’étape 260 (qui correspond à une étape de détermination de la composition de tissage) peut être omise, car la composition de tissage de la cellule initiale a déjà été déterminée à l’étape 230. A l’étape 270, il est vérifié si toutes les cellules de la zone considérée ont été peuplées (i.e. si l’étape 260 de détermination de la composition de tissage d’une cellule a été mise en œuvre pour toutes les cellules de la zone courante). Si toutes les cellules n’ont pas encore été peuplées (étape 275, flèche « N »), une nouvelle cellule est considérée (étape 275) et l’étape de détermination de la composition de tissage (étape 260) est mise en œuvre pour cette nouvelle cellule. Lorsque toutes les cellules ont été peuplées (étape 270, flèche « O »), et dans le cas où le modèle reçu çà l’étape 210 comprend une pluralité de zones, il est vérifié à l’étape 280 si toutes les zones du modèle ont été peuplées. Si certaines zones du modèle n’ont pas encore été peuplées (étape 280, flèche « N »), une nouvelle zone est considérée (étape 285), une nouvelle cellule initiale est déterminée pour la nouvelle zone considérée (étape 250), et la détermination de la composition de tissage pour les cellules de la nouvelle zone est mise en œuvre (étapes 260, 270 et 275). Lorsque toutes les zones du modèle ont été peuplées (étape 280, flèche « O »), la méthode de peuplement est terminée. Il est alors possible, par exemple, de représenter graphiquement la cartographie 3D de la pièce (étape 290). Alternativement ou en complément, l’étape 290 peut comprendre la représentation de coupes successives de la cartographie 3D sous forme de « cartons de tissage », les cartons pouvant être utilisés comme données d’entrée pour le métier à tisser pour fabriquer le renfort tissé de la pièce.
Lorsque le modèle ne comprend qu’une seule zone, les étapes 280 et 285 peuvent être omises.
Lors de l’étape 275, la détermination de la nouvelle cellule est effectuée à partir d’un parcours prédéfini de la grille de tissage / de la grille intermédiaire de tissage. Un exemple d’un tel parcours est représenté à la .
Sur l’exemple de la , deux grilles intermédiaires de tissage 502a et 502b sont représentées, et correspondent respectivement à deux zones voisines du modèle. Sur cet exemple, la grille intermédiaire de tissage 502a est supposée comprendre le zéro pièce 503. Le zéro pièce 503 sépare la grille intermédiaire 502a en quatre quadrants 501a, 501b, 501c et 501d, le premier quadrant 501a comprenant le zéro pièce 503. Comme mentionné ci-dessus, le zéro pièce 503 est la première cellule pour laquelle la composition de tissage est déterminée. Puis, les cellules sont remplies (ou « peuplées ») de proche en proche selon un parcours prédéfini. Dans l’exemple de la , ce parcours prédéfini commence au zéro pièce 503 et se poursuit dans une direction donnée (ici, selon les lignes de gauche à droit, i.e. selon la direction orientée X) 504a à l’intérieur du premier quadrant 501a. Lorsque la dernière cellule 505 de la ligne du premier quadrant 501a a été peuplée, la ligne directement au-dessus 504b est peuplée, en commençant par la cellule 506 directement au-dessus du zéro pièce 503.
Les trois autres quadrants 501b, 501c, 501d peuvent être peuplés de manière similaire. Par exemple, le deuxième quadrant 501b peut être peuplé en commençant par la cellule 507 directement adjacente au zéro pièce 503, puis en peuplant les cellules de proche en proche dans une direction 508a opposée à la direction 504a du premier quadrant 501a, et en remontant les lignes selon la direction Y de manière similaire au premier quadrant 501a.
Les quatre quadrants 501a, 501b, 501c, 501d peuvent être peuplés successivement ou en parallèle, dès lors que le zéro pièce 503 a été peuplé.
Lorsque les quatre quadrants 501a, 501b, 501c, 501d ont été peuplés, la boucle d’étapes 260-270-275 de la est terminée pour la zone courante, et la zone suivante est sélectionnée le cas échéant (étape 285 de la ). La zone suivante peut être sélectionnée comme décrit précédemment pour la détermination 230 de la grille de tissage.
En faisant à nouveau référence à la , une fois la première grille intermédiaire de tissage 502a peuplée, il est supposé que la deuxième grille intermédiaire de tissage 502b est sélectionnée pour être peuplée à son tour. Une nouvelle cellule initiale 509 doit être sélectionnée pour commencer le peuplement de la deuxième grille intermédiaire de tissage 502b (nouvelle étape 250). Par exemple, la nouvelle cellule initiale 509 peut être n’importe quelle cellule voisine d’une cellule de la première grille intermédiaire de tissage 502a déjà peuplée.
Lors de la mise en œuvre d’une itération de l’étape 260, la composition de tissage de la cellule courante est donc déterminée. Cette détermination est effectuée à partir de l’armure de la zone courante déterminée à l’étape 230, ainsi que des fils de trame et de chaîne de la cellule courante déterminés à l’étape 230, de sorte à conjointement l’écart entre la fraction volumique de fibre dans la cellule ainsi remplie et la fraction volumique de fibre cible et l’écart entre le RCT dans la cellule ainsi remplie et le RCT cible, tout en tenant compte des cellules voisines déjà remplies. En particulier, le nombre de couches de la cellule courante dépend du nombre de couches des cellules voisines déjà remplies. Par exemple, il peut être imposé que le nombre de couches de la cellule courante soit compris entre : le minimum des nombres de couches des cellules voisines déjà remplies moins une première variation autorisée prédéterminée ; et le maximum des nombres de couches des cellules voisines déjà remplies plus une deuxième variation autorisée prédéterminée.
En outre, si les valeurs prédéfinies des paramètres relatifs à des contraintes de fabrication reçus à l’étape 220 comprennent un nombre maximal ou un nombre minimal de couches, ce nombre peut être pris en compte pour déterminer le nombre de couches de la cellule courante à l’étape 260.
En outre, des règles relatives au nombre de couches peuvent être prédéfinies, pour déterminer quand le nombre de couches d’une cellule doit être réduit ou augmenté par rapport au nombre de couches de la cellules remplies à l’étape précédente. Ces règles sont généralement définies par le département textile et font partie des paramètres relatifs aux contraintes de fabrication reçus à l’étape 220. Elles peuvent notamment concerner des contraintes relatives à une alternance des fils ou des contraintes de continuité dans le nombre de couches.
Le nombre de couches de la cellule courante peut aussi être déterminé à partir de l’armure sélectionnée à l’étape 230 pour la zone comprenant la cellule courante (zone courante). En effet, selon le type de pièce à fabriquer, il peut être imposé certaines règles de tissage, par exemple de ne réaliser une division de fils que lorsque l’armure appliquée à la zone appartient à un groupe d’armures prédéfini. Si l’armure appliquée à la zone n’appartient pas à ce groupe d’armures, il n’est pas possible de diviser les fils, et donc le nombre de couches dans la cellule courante doit être le même que dans les cellules voisines.