FR2931274A1 - Procede de gestion de donnees pour atelier oriente service collaboratif - Google Patents

Procede de gestion de donnees pour atelier oriente service collaboratif Download PDF

Info

Publication number
FR2931274A1
FR2931274A1 FR0853121A FR0853121A FR2931274A1 FR 2931274 A1 FR2931274 A1 FR 2931274A1 FR 0853121 A FR0853121 A FR 0853121A FR 0853121 A FR0853121 A FR 0853121A FR 2931274 A1 FR2931274 A1 FR 2931274A1
Authority
FR
France
Prior art keywords
data
workshop
link
execution
type
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
FR0853121A
Other languages
English (en)
Other versions
FR2931274B1 (fr
Inventor
Bernard Marquez
Thierry Chevalier
Philippe Sauvage
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.)
Airbus Operations SAS
Original Assignee
Airbus Operations SAS
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 Airbus Operations SAS filed Critical Airbus Operations SAS
Priority to FR0853121A priority Critical patent/FR2931274B1/fr
Priority to EP09757686A priority patent/EP2297681A1/fr
Priority to JP2011508973A priority patent/JP5524186B2/ja
Priority to US12/991,527 priority patent/US8706702B2/en
Priority to PCT/FR2009/000566 priority patent/WO2009147310A1/fr
Publication of FR2931274A1 publication Critical patent/FR2931274A1/fr
Application granted granted Critical
Publication of FR2931274B1 publication Critical patent/FR2931274B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention vise notamment un procédé de gestion de données dans un atelier orienté service collaboratif adapté à traiter des objets associés à des données représentatives de données réelles ou de processus. Après avoir accédé au moins une donnée représentative de données réelles ou de processus, mémorisée dans un dispositif distant (130), au moins une information caractéristique est extraite (200) de ladite au moins une donnée selon un paramètre prédéterminé. Ladite au moins une information caractéristique et un lien vers ladite au moins une donnée sont ensuite mémorisés dans un objet associé à ladite au moins une donnée, ledit objet étant mémorisé dans une zone de stockage centralisée (125).

Description

La présente invention concerne les architectures informatiques pour le travail collaboratif et plus particulièrement un procédé de gestion de données pour atelier orienté service collaboratif. L'optimisation des phases d'étude et de conception d'objets tels que des véhicules dans le but de réduire les coûts et les temps de développement nécessite généralement la mise en oeuvre d'un environnement informatique spécifique. Par exemple, l'étude aérodynamique d'un aéronef fait intervenir de nombreux spécialistes, travaillant sur des aspects différents des mêmes données, ces aspects pouvant être liés ou non les uns aux autres. Ces spécialistes utilisent généralement des outils informatiques différents ainsi que des machines différentes pour l'exécution des processus mis en oeuvre. De plus, ces spécialistes peuvent être situés, géographiquement, à des endroits distincts. Il s'avère donc avantageux de mettre en oeuvre un environnement basé sur une architecture ouverte permettant le partage des données et des ressources informatiques, notamment des ressources de calcul. Un tel environnement doit de préférence s'adapter à un ensemble de machines et de systèmes d'exploitation hétérogènes. Il est également avantageux d'utiliser une interface permettant d'accéder à différents outils existants distincts. Une telle interface commune doit notamment être adaptée à gérer les données devant être échangées entre ces outils ainsi qu'à permettre une sélection et un accès faciles aux données. De plus, l'environnement doit de préférence permettre une adaptation facile aux besoins futurs tels que l'intégration de nouveaux outils, la gestion de nouveaux types de données et la production de nouveaux types de résultats.
Par ailleurs, il existe un besoin de traçabilité des données pour déterminer l'origine des données produites ainsi que leur cycle de vie au cours des différentes modifications et utilisations dans des processus de calcul ou autres.
Ces problèmes sont partiellement résolus les uns indépendamment des autres. Il existe par exemple des applications logicielles telles que SynfiniWay développé par la société Fujitsu (SynfiniWay et Fujitsu sont des marques) qui permettent l'optimisation de l'exécution de tâches dans un environnement hétérogène. L'application SynfiniWay permet notamment de virtualiser les ressources globales et de présenter les applications sous forme de services reliés par des séquences et des dépendances de données pour automatiser les processus informatiques. Il existe par ailleurs des langages de script tels que Python et Java (Python et Java sont des marques) qui permettent d'automatiser certaines tâches et de faire appel à des outils existants. Python est un langage de programmation de haut niveau, interprété et orienté objet. Il peut s'utiliser dans de nombreux contextes et s'adapter à de nombreuses utilisations à l'aide de bibliothèques spécialisées.
La traçabilité des données est quant à elle généralement déterminée par les processus ayant conduit aux données. Par exemple, dans les applications de type PDM (sigle de Product Data Management en terminologie anglo-saxonne), l'utilisateur doit suivre des processus prédéterminés, sans pouvoir y déroger. L'origine d'une donnée est ainsi déterminée par le processus qui a permis d'obtenir la donnée. Cependant, il n'existe pas d'environnement centralisé et optimisé pour l'étude et la conception de systèmes dans un environnement collaboratif ouvert hétérogène. L'invention permet de résoudre au moins un des problèmes exposés 30 précédemment. L'invention a ainsi pour objet un procédé de gestion de données dans un atelier orienté service collaboratif adapté à traiter des objets associés à des données représentatives de données réelles ou de processus, ce procédé comprenant les étapes suivantes, - accès à au moins une donnée représentative de données réelles ou de processus, mémorisée dans un dispositif distant ; - extraction d'au moins une information caractéristique de ladite au moins une donnée selon un paramètre prédéterminé ; et, - mémorisation de ladite au moins une information caractéristique et d'un lien vers ladite au moins une donnée dans un objet associé à ladite au moins une donnée, ledit objet étant mémorisé dans une zone de stockage centralisée. Le procédé selon l'invention permet ainsi de gérer des données indépendamment de leurs caractéristiques propres telles que leur nature, leur lieu de stockage et leur taille pour permettre une gestion globale de celles-ci. De façon avantageuse, le procédé comprend en outre une étape de réception d'au moins une information complémentaire, ladite information complémentaire étant mémorisée dans ledit objet associé à ladite au moins une donnée pour caractériser ladite au moins une donnée. Selon un mode de réalisation particulier, ladite au moins une information caractéristique comprend au moins un attribut commun à une pluralité de données. Toujours selon un mode de réalisation particulier, ladite au moins une information caractéristique comprend au moins un attribut spécifique à ladite au moins une donnée. Ledit objet comprend en outre, de préférence, un lien vers un second objet, distinct dudit objet appelé premier objet permettant de lier des objets entre eux et, ainsi, d'offrir les moyens de suivre une relation de proche en proche entre plusieurs objets. Avantageusement, le procédé comprend en outre une étape de détermination de la consistance dudit premier objet selon ledit lien vers ledit second objet permettant de caractériser un objet selon des règles prédéterminées.
Selon un mode de réalisation particulier, le procédé comprend en outre les étapes suivantes, - sélection d'au moins un objet associé à des données représentatives d'un processus ; - détermination, dans ledit objet associé à des données représentatives dudit processus, d'un lien vers un objet associé à des données représentatives de données réelles mises en oeuvre par ledit processus ; - exécution dudit processus ; - mémorisation, dans ledit objet associé à des données représentatives desdites données réelles mises en oeuvre par ledit processus, d'un lien vers ledit objet associé à des données représentatives dudit processus ; et, - mémorisation, dans ledit objet associé à des données représentatives dudit processus, d'un lien vers ledit objet associé à des données représentatives desdites données réelles mises en oeuvre par ledit processus. Le procédé selon l'invention est ainsi en mesure d'exécuter des processus représentés par des objets et d'établir des liens entre les objets associés aux processus exécutés et les objets associés aux données réelles mises en oeuvre par les processus, c'est-à-dire, par exemple, utilisées ou produites par les processus. De façon avantageuse, le procédé comprend en outre les étapes suivantes, - création de données représentatives de données réelles ; - création d'un objet associé auxdites données créées ; - mémorisation dans ledit objet créé d'un lien vers ledit objet associé à des données représentatives dudit processus ; et, - mémorisation, dans ledit objet associé à des données représentatives dudit processus, d'un lien vers ledit objet créé.
Le procédé selon l'invention est ainsi en mesure d'exécuter des processus représentés par des objets, de produire de nouvelles données réelles, de créer des objets associés à ces nouvelles données réelles et d'établir des liens entre les objets associés aux processus exécutés et les objets créés associés aux nouvelles données réelles. Selon un mode de réalisation particulier, au moins l'un desdits objets est mémorisé sous forme d'au moins une table ou d'au moins un fichier XML.
L'invention a également pour objet un programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé décrit précédemment. D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels : - la figure 1 représente schématiquement un exemple d'architecture d'un espace de travail pour le partage des données et des ressources selon l'invention ; - la figure 2, comprenant les figures 2a et 2b, illustre un schéma fonctionnel simplifié du gestionnaire de données présenté sur la figure 1 et un exemple d'algorithme permettant d'établir un arbre de données, respectivement ; - la figure 3 représente schématiquement les éléments fonctionnels du moteur d'exécution illustré sur la figure 1, ainsi que les informations transmises entre ces éléments, pour l'exécution d'un processus basé sur une représentation de type Python ; - la figure 4 illustre l'atelier orienté service collaboratif selon l'invention, d'un point de vue applicatif, permettant l'exécution de code exécutable issu de développements externes et de développements spécifiques ; - la figure 5 illustre un exemple d'encapsulation d'une fonction externe de type modèle ModelCenter dans un modèle de processus ; - la figure 6 illustre de façon synthétique un exemple de schéma de type XML pour l'analyse d'un modèle de processus mémorisé sous forme de description de type XML ; - la figure 7 illustre un exemple d'algorithme pour l'exécution de processus unitaires de modèles de processus instanciés ; - la figure 8 illustre un exemple de traitement de données pouvant être effectuée à partir d'un atelier orienté service collaboratif selon l'invention ; et, - la figure 9 illustre un exemple de dispositif adapté à mettre en oeuvre une partie de l'invention. La figure 1 représente schématiquement un exemple d'une architecture 100 d'un espace de travail pour le partage des données et des ressources selon l'invention, appelé aussi atelier orienté service collaboratif. Comme illustré, cette architecture est réalisée autour de quatre modules principaux : le module 105 qui a pour objet l'accès aux données, le module 110 qui est un gestionnaire de données, le module 115 qui est un moteur d'exécution et le module 120 qui a pour objet la gestion des processus. Le module 105 d'accès aux données est relié au module 110 de gestion des données ainsi qu'à une base de données centralisée 125, par exemple une base de données de type Oracle (Oracle est une marque). Le module 110 de gestion des données est relié à la base de données centralisée 125, au moteur d'exécution 115 et à un ensemble 130 représentant des zones de stockage distribuées pouvant être organisées de différentes façons, par exemple sous forme de fichiers ou de bases de données. Le moteur d'exécution 115 est lui-même relié à l'ensemble 130 de zones de stockage et au module 120 de gestion des processus. Bien que cette architecture soit particulièrement adaptée à la conception d'objets complexes tels que les aéronefs, la description suivante est basée sur un exemple simple pour des raisons de clarté et de concision. Cet exemple est donné dans un but illustratif. L'architecture 100 est adaptée à manipuler des objets informatiques représentant des données dans le sens large du terme, ces données pouvant être représentatives d'un objet réel, par exemple d'un aéronef, ou d'un processus tel qu'un processus de calcul de traînée aérodynamique. De façon simplifiée, l'atelier orienté service collaboratif travaille sur des données représentées par des objets informatiques basés eux-mêmes sur des méta-données qui représentent des données caractéristiques.
Les données, appelées framework data en terminologie anglo-saxonne ou FD, sont donc des données physiques mémorisées, par exemple, sous forme de fichiers dans une zone de stockage 130. Ces données caractérisent un objet réel, par exemple le maillage ou la structure d'une chaise, ou un processus, par exemple, les étapes d'un procédé de déménagement. La taille de ces données n'est pas limitée, elle peut être de plusieurs centaines de méga octets. Toutes les données utilisées peuvent être mémorisées dans des emplacements physiques distincts. Les objets, appelés framework object en terminologie anglo-saxonne ou FO, représentent des objets ayant une signification particulière au sens applicatif. Comme indiqué précédemment, ces objets sont utilisés pour représenter tout ce qui peut être manipulé par l'atelier orienté service collaboratif. Les objets sont basés sur des ensembles de méta-données pouvant être comprises comme des éléments de base ou des éléments caractéristiques. Un ensemble de méta-données est ainsi associé à chaque objet. Chaque type d'ensemble de méta-données peut être associé à plusieurs objets. La qualification d'un type d'ensemble de méta-données permet de former un objet. Si, par exemple, un type d'ensemble de méta-données est associé à une chaise, une qualification de la chaise formant un objet peut être une chaise d'enfant. Dans un souci de clarté, les implémentations informatiques des objets, appelées framework object proxies en terminologie anglo-saxonne ou FO proxies, sont ici assimilées aux objets eux-mêmes. Parmi les objets figurent les modèles de processus instanciés, appelés instanciated process templates en terminologie anglo-saxonne ou IPT. Les modèles de processus instanciés sont des instances de modèles de processus, c'est-à-dire des modèles de processus appliqués à un ou plusieurs objets. Les modèles de processus, appelés process templates en terminologie anglo-saxonne ou PT, sont génériques. Il s'agit par exemple d'un processus de construction d'un salon à partir de plusieurs chaises et d'une table, d'un processus de rénovation d'une maison ou d'un processus de déménagement. Les modèles de processus instanciés sont représentés sous forme d'objets et peuvent être manipulés en tant que tels dans l'atelier orienté service collaboratif. Les méta-données, appelées framework meta-data en terminologie anglo-saxonne ou FMD, correspondent à des informations particulières des données. Elles permettent de caractériser des données afin de faciliter leur manipulation. Une donnée peut être associée à plusieurs ensembles de méta-données. Les méta-données sont avantageusement mémorisées dans la base de données centralisée 125 sous forme de tableaux ou de fichiers XML (sigle d'Extensible Markup Language en terminologie anglo-saxonne). Un type est ici associé à chaque ensemble de méta-données. Les méta-données comprennent des informations génériques telles qu'un identifiant, une date de création et un nom de créateur et des informations spécifiques, propre à la donnée associée, par exemple le matériau, la couleur ou le poids d'une chaise. Les méta-données comprennent également des liens vers des objets qui permettent notamment de déterminer comment les données ont été obtenues etlou comment elles ont été utilisées. Ces liens permettent de définir des modèles de données, c'est-à-dire des arborescences de données. La consistance d'un objet est vérifiée à travers les liens définis dans l'ensemble des méta-données qui lui est associé. Par exemple, un modèle de données de table peut être déterminé de telle sorte qu'une table soit liée à une chaise. Si un objet de type table est effectivement associé à un objet de type chaise, alors l'objet de type table est dit consistant au sens du modèle de données défini à travers ses liens. Les méta-données sont par exemple décrites à l'aide d'un langage 25 de type XML selon la structure présentée en annexe sous la référence extrait de code 1 . La partie générique des méta-données est commune à toutes les données, elle est donc définie lors de la mise en oeuvre de l'atelier orienté service collaboratif. Même si cette partie n'a, a priori, pas de raison d'être 30 modifiée, sa définition peut néanmoins évoluer selon les besoins. Cependant, son évolution a une influence sur l'ensemble des objets gérés dans l'atelier orienté service collaboratif.
La partie spécifique des méta-données est propre à chaque type de données et, par conséquent, à chaque type d'ensemble de méta-données. La définition de cette partie est réalisée par les utilisateurs de l'atelier orienté service collaboratif. Les informations de la partie spécifique des méta-données sont déterminées par les opérations d'extraction automatique devant être menées sur les données. Les méta-données génériques et spécifiques sont avantageusement utilisées pour la recherche et le tri des données contenues dans l'atelier orienté service collaboratif.
L'exemple donné en annexe sous la référence extrait de code 2 illustre la description de type XML d'un type de méta-données utilisé pour décrire une chaise. Comme décrit précédemment, les méta-données comprennent avantageusement une partie générique et une partie spécifique. La partie 15 générique comprend notamment, ici, les éléments suivants, - une clé permettant de gérer le contrôle d'accès à la donnée ; une description du type d'objet ; un commentaire décrivant la donnée ; - une date de création ; 20 un identifiant de la donnée qui peut être un clé ou une URL permettant d'accéder à la donnée ; un identifiant unique de la donnée ; une information concernant l'utilisateur qui a créé la donnée ; l'emplacement physique de la donnée avec sa situation 25 géographique ; et, - son état permettant de savoir si une modification est en cours et par qui. La seconde partie des méta-données, spécifique à l'objet manipulé, ici une chaise, comprend dans cet exemple les attributs suivants, 30 - le nombre de pieds ; - l'épaisseur ; - la couleur ; 1 la matière ; et, - le poids. Les parties générique et spécifique peuvent naturellement comprendre d'autres types d'informations.
L'identifiant ou l'adresse d'un ensemble de méta-données permet de retrouver les données auxquelles il est associé. La qualification d'un ensemble de méta-données représentant une chaise peut être, en particulier, enfant ou adulte , permettant d'aboutir à deux objets différents.
De la même façon, il est possible de définir des méta-données et des objets pour des tables. Lors de l'importation d'un objet définissant une table, il est possible de définir, au niveau d'un modèle de données, que cet objet n'est consistant que s'il est relié à au moins un objet de type chaise. Une telle relation entre objets est définie par les liens définis dans les méta-données. Ces liens peuvent aussi être représentés au format XML ou dans un tableau. Lors de l'importation d'un objet de type table, des liens de type modèle de données entre l'objet de type table et les objets de type chaise doivent être posés afin de rendre consistant cet objet avec le modèle de données ainsi défini. Alternativement, les méta-données peuvent être représentées sous forme de tables. Par exemple, une table peut être associée à chaque type de donnée. Les colonnes de la table représentent les méta-données tandis que chacune de ses lignes représente un objet. La table 1 figurant en annexe illustre un exemple simplifié de représentation d'un type d'ensemble de méta-données pouvant être associées à des données de type chaise. II convient de remarquer ici que les liens ne sont pas inclus dans la table représentant les méta-données. Selon cet exemple, les liens sont mémorisés dans une table de liens. Une table de liens peut être représentée, par exemple, sous la forme du tableau donné en annexe sous la référence table 2 où chaque colonne représente un couple d'identifiants d'objets entre lesquels un lien est établi. Ainsi, les informations mémorisées dans les tables des méta-données et dans la table de liens permettent de manipuler toutes les données, actuelles et futures, de l'atelier orienté service collaboratif ainsi que de construire des modèles de données. II peut être noté ici que la représentation des méta-données sous forme de tables est équivalente à une représentation XML et qu'il est possible d'utiliser un outil de conversion pour passer d'une représentation à une autre. La représentation des données caractérisant des objets physiques ou des processus est ainsi réalisée à plusieurs niveaux : - les données brutes ; - les méta-données qui représentent des sous-ensembles des données brutes, extraits de celles-ci, qui permettent de caractériser les données brutes ; - les objets, basés sur les valeurs des méta-données, qui sont manipulés par les modules applicatifs ; et, - les objets consistants qui sont des objets liés à d'autres objets.
Il convient de remarquer ici que selon cette structure, il n'est pas nécessaire de mettre en oeuvre des procédés de synchronisation dans l'atelier orienté service collaboratif. Le module 105 d'accès aux données permet en particulier à un utilisateur d'accéder de façon sélective et centralisée aux méta-données mémorisées dans la base de données centralisée 125 afin notamment de visualiser ces méta-données, de fabriquer des vues sur ces méta-données permettant un tri efficace sur l'ensemble des données accessibles dans l'atelier de service collaboratif ainsi que, éventuellement, de suivre les liens unissant certaines de ces données.
Le module 105 permet également d'enregistrer des méta-données dans la base de données centralisée 125. Il est ainsi possible, pour un utilisateur, d'entrer des méta-données à travers une interface homme-machine (IHM) pour spécifier des informations qui ne figureraient pas dans les données mémorisées dans les zones de stockage 130. Pour accéder et enregistrer des méta-données, l'interface utilisateur peut utiliser, en particulier, des requêtes de type SQL (sigle de Structured Query Language en terminologie anglo-saxonne). Cet enregistrement manuel de méta-données s'avère intéressant pour l'ajout d'informations spécifiques ne pouvant pas faire l'objet d'extraction automatique à partir de la donnée lors de l'importation de l'objet dans l'atelier. De même, le module 105 d'accès aux données permet à un utilisateur d'accéder de façon sélective et centralisée aux données mémorisées dans les zones de stockage 130 à travers le module 110 de gestion des données ainsi que d'enregistrer des données. Pour accéder et enregistrer des données, l'interface utilisateur utilise avantageusement des API (sigle de Application Programming Interface en terminologie anglo-saxonne) spécifiques et des services web.
Le gestionnaire de données 110 est utilisé comme interface entre le module 105 d'accès aux données, la base de données centralisée 125, les zones de stockage 130 et le moteur d'exécution 115 adapté notamment à appliquer des processus sur des données. Le gestionnaire de données 110 permet également de contrôler les droits d'accès des utilisateurs.
Selon un mode de réalisation particulier, le gestionnaire de données 110 est composé d'une partie client et d'une partie serveur. La partie client peut être implémentée dans un langage de type Python pour permettre d'accéder aux services web accessibles dans la partie serveur. Toutes les fonctions standard de gestion de données telles que l'importation, l'exportation, la publication, la collaboration et la gestion de droits sont de préférence disponibles. Cette liste est non exhaustive. L'ensemble des fonctions utilisées au cours du cycle de vie de la donnée est disponible à travers cet API La partie serveur peut être implémentée, par exemple, en langage de type Java ou Python pour permettre l'interfaçage avec les différentes bases de données et zones de stockage. Cette partie prend aussi avantageusement en charge les mécanismes d'extraction des méta-données à partir des données mémorisées dans les zones de stockage distribuées 130 vers la base de données centralisée 125 contenant les méta-données. Le moteur d'exécution 115 permet l'exécution de processus par l'intermédiaire de modèles de processus basés, par exemple, sur des applicatifs métiers. Une interface entre le moteur d'exécution 115 et les zones de stockage 130 permet un accès direct ou via une API aux données lors de l'exécution des processus. Le moteur d'exécution 115 est de préférence lié à une grille de calcul, par exemple du type SynfiniWay, qui gère la soumission des différents processus sur une infrastructure distribuée ainsi que le déplacement des données durant l'exécution.
Le moteur d'exécution 115 comprend également, de préférence, une interface avec des applications utilisant des flux de travaux (workfiows en terminologie anglo-saxonne) comme les applications ModelCenter (ModelCenter est une marque) ou SynfiniWay, c'est-à-dire des moteurs d'exécution ou d'enchaînement de tâches.
Le gestionnaire de processus 120 permet la création de flux de travaux de hauts niveaux, appelés processus composites, qui encapsulent des traitements unitaires. Ces flux de travaux peuvent faire l'objet d'études paramétriques et de sensibilités aux paramètres et peuvent permettre la création de modèles de comportement. Ces fonctionnalités peuvent ainsi être utilisées dans le cadre d'études multidisciplinaires d'optimisation. Ainsi, le traitement de processus non unitaires, c'est-à-dire de processus faisant appels à plusieurs fonctions différentes, est géré par le gestionnaire de processus pour être, par exemple, décomposés en processus unitaires qui sont alors exécutés par le moteur d'exécution.
La figure 2a est un schéma fonctionnel simplifié du gestionnaire de données 110. A l'aide, par exemple, d'une interface fichier ou d'une interface de type Corba (acronyme de Common Object Request Broker Architecture en terminologie anglo-saxonne, Corba est une marque), des données sont créées dans les différentes bases de données (non représenté). Un mécanisme 200 d'extraction, de transformation et de chargement, appelé ETL (sigle de Extract, Transform and Load en terminologie anglo-saxonne), est alors mis en oeuvre afin d'extraire les méta-données des données mémorisées dans les zones de stockage 130. Elles sont stockées dans la base de données centralisée 125. Cette base de données collecte ainsi les informations des données physiques créées dans les différentes zones de stockage distribuées 130.
II convient de remarquer ici que le mécanisme d'extraction est mis en oeuvre lorsque les données sont créées, modifiées ou supprimées. Il est propre à chaque type de données et de méta-données. Une fonction de qualification 205 permet de qualifier les méta- données extraites pour former des objets pouvant être mémorisés dans la base de données centralisée 125. Suite à la qualification, une vérification est faite sur la consistance de l'objet. Cette consistance peut être assurée à travers des liens mémorisés avec les méta-données ou non, ces liens pouvant être de différentes natures telles que la version, la configuration, le modèle de données et l'utilisateur. Un ensemble de liens entre objets, définissant un modèle de données, peut être utilisé pour déterminer des liens entre plusieurs objets. Les liens sont associés aux méta-données. Comme décrit précédemment, ils sont mémorisés avec ces dernières ou de façon distincte, par exemple dans une table de liens mémorisée dans la base de données centralisée 125. Les liens permettent d'établir ultérieurement la traçabilité des données, c'est-à-dire la traçabilité entre les différentes données produites ou utilisées lors de l'exécution de processus. Il existe plusieurs types de liens, notamment les suivants, - les liens utilisateurs déterminés manuellement par l'utilisateur entre deux données ; - les liens modèles permettant de définir un modèle de donnée. Ces liens sont déterminés de façon générique lors de la création d'un modèle de données ; - les liens de configuration permettant d'établir un lien entre un ensemble d'objets pour les gérer en configuration, c'est-à-dire pour permettre l'application de fonctions identiques telles que des fonctions d'exportation, d'importation et de changement de droit ; - les liens de version qui permettent de gérer un même objet selon 30 différentes versions ; et, - les liens de production qui permettent d'établir un lien d'exécution entre un ensemble d'objets. Ce type de lien est créé automatiquement lors de la phase de publication des données au cours ou à la fin de l'exécution d'un processus instantié (IPT). L'ensemble de ces liens posés deux à deux permet d'obtenir la traçabilité portée par la donnée : les données contiennent tous les historiques 5 notamment en ce qui concerne les exécutions de processus, les versions, les configurations, les utilisateurs et les modèles. II est ainsi possible de construire des arbres complets d'objets reliés entre eux par des méta-données et des liens spécifiques. Dans l'exemple de la chaise et la table, un arbre permettant de connaître les méta-données (couleur 10 et localisation) de la table vérifie le modèle de donnée la liant aux chaises ayant comme méta-données une couleur spécifique. Ainsi, de proche en proche, il est possible de reconstruire des arbres complets d'obtention de données. Il convient de remarquer ici que les modèles de données, c'est-à-dire les arborescences de données, sont spécifiques aux données manipulées dans 15 l'atelier orienté service collaboratif. Cependant, si les modèles de données peuvent être dérivés des liens entre les objets, ils n'existent pas en tant que tels dans l'atelier orienté service collaboratif. Ils sont implicitement créés lors de la définition des objets, c'est-à-dire des ensembles de méta-données correspondants à des types de données particuliers. 20 Comme illustré sur la figure 2a, une fonction 210 du gestionnaire de données 110 permet d'accéder aux liens et aux objets pour former une vue des objets consistants, c'est-à-dire une vue présentant les relations entre des objets, qui peut être transmise à un utilisateur sous forme de vues de modèles de données 215. 25 De même, l'utilisateur peut visualiser des objets et des relations sous forme de vues d'objets 220 et de vues de relations 230, par exemple des listes. Ainsi, selon ce mode de réalisation, l'utilisateur, c'est-à-dire la partie client du gestionnaire de données 110, dispose des trois types de vues suivants, 30 - une vue à travers les méta-données sur les objets contenus dans les différentes bases de données ; - une vue sur les modèles de données créés dans l'architecture 100 ; et, - une vue permettant de naviguer entre les différents objets à travers des liens définis dans la base de données des méta-données, ou qui leurs sont associés, tels que les liens de version, les liens utilisateur, les liens de configuration et les liens de production permettant la traçabilité. Une description de type XML des objets de type object proxy, contenant toutes les méta-données associées à chaque donnée, est avantageusement créée pour être utilisée, par exemple, par le moteur d'exécution 115 afin d'accéder aux données mémorisées dans les zones de stockage 130 au cours du l'exécution de processus. La figure 2b illustre un exemple d'algorithme permettant d'établir un arbre de données à partir des objets manipulés dans l'atelier orienté service collaboratif, ces objets représentant indifféremment des données réelles ou des processus. Après avoir sélectionné un premier objet (étape 230), par exemple à travers une interface homme-machine, un lien vers un second objet, contenu dans ce premier objet, est accédé (étape 235). Ensuite, un lien vers un troisième objet, contenu dans ce second objet, est accédé (étape 240) pour permettre d'établir un lien entre le premier objet et le troisième (étape 245) ou entre les données associées au premier objet et celles associées au troisième objet. Alternativement, un lien vers un troisième objet, contenu dans le premier objet, est accédé (étape 250) pour permettre d'établir un lien entre le second objet et le troisième (étape 255) ou entre les données associées au second objet et celles associées au troisième objet. Comme suggéré par la flèche en trait pointillé, ces étapes peuvent être répétées, de façon itérative, pour déterminer un arbre de données selon lequel les feuilles représentent les données (ou les objets associés aux données) et les branches représentent les liens entre les données (ou entre les objets associés aux données).
La figure 3 représente schématiquement les éléments fonctionnels du moteur d'exécution 115, illustré sur la figure 1, ainsi que les informations transmises entre ces éléments, pour l'exécution d'un processus basé sur une représentation de type Python. Le moteur d'exécution 115 est activé par un objet consistant en un modèle de processus instancié 300 représenté ici sous forme de document de type XML. Le modèle de processus instancié 300 est analysé dans un analyseur syntaxique 305 de type XML, appelé XML parser en terminologie anglo-saxonne, pour en extraire les informations permettant l'exécution du processus. En particulier, les paramètres, le code et les informations concernant les données nécessaires à l'exécution du processus sont extraits du document XML. De même, les données utilisées par le processus, formant les entrées du processus, sont retrouvées à l'aide de liens sur les objets concernés. Toutes les informations nécessaires à l'exécution du processus extraites du document XML sont transmises au noyau 310 du moteur d'exécution. Le code du modèle de processus instancié 300, c'est-à-dire les données associées à l'objet représentant le modèle de processus instancié, correspond à des instructions directement exécutables par le moteur d'exécution, à des instructions exécutables à travers une interface spécifique, par exemple du code de type Python, ou à des fonctions ou des modules externes appelés par le moteur d'exécution tels que des fonctions ModelCenter. L'exécution du processus associé au modèle de processus instancié 300 peut entraîner la création de nouveaux objets 315, formant la sortie du processus. Ces objets sont traités de la même façon que les objets décrits précédemment. En particulier, des méta-données et des liens mémorisés dans la base de données centralisée 125 ainsi que des données stockées dans des zones de stockage 130 sont associés à ces objets. Alternativement ou de façon complémentaire, l'entrée du processus peut être modifiée au cours de l'exécution de celui-ci. Les entrées modifiées formant une sortie du processus sont appelées des entrées/sorties.
Le noyau 310 du moteur d'exécution fait de préférence appel à un environnement 320 d'exécution, aussi appelé contexte d'exécution du modèle de processus instancié. L'environnement d'exécution a notamment pour objet de conserver un historique de l'exécution du processus (325), de rendre les données accessibles dans le format du moteur d'exécution (330), par exemple sous forme d'objets de type Python, de surveiller l'exécution du processus (335) et de fournir les interfaces 340 nécessaires à l'exécution de modules externes au noyau du moteur d'exécution. Lorsqu'un processus est exécuté et, en particulier, lorsque de nouveaux objets sont créés, un ou plusieurs liens sont automatiquement créés dans les méta-données associées aux données utilisées par le processus (entrées, sorties et entrées/sorties) ainsi que dans les méta-données associées au modèle de processus instancié. Avant qu'un processus ne soit exécuté, les méta-données associées au modèle de processus instancié comprennent des références vers les objets associés aux données devant être utilisées mais ne contiennent pas de lien. Les liens sont ainsi créés, dans chaque objet, lorsque le processus est exécuté. Par exemple, lorsqu'un processus utilise une donnée pour produire un résultat, les liens suivants sont créés au cours de l'exécution du processus, - un lien vers l'objet associé au modèle de processus est créé dans l'objet associé à la donnée d'entrée ; - un lien vers l'objet associé à la donnée d'entrée est créé dans l'objet associé au modèle de processus ; - un lien vers l'objet associé à la donnée de sortie est créé dans 25 l'objet associé au modèle de processus ; et, - un lien vers l'objet associé au modèle de processus est créé dans l'objet associé à la donnée de sortie. La figure 4 illustre un exemple de mise en oeuvre de l'atelier orienté service collaboratif conforme à l'invention, d'un point de vue applicatif, 30 permettant l'exécution de code exécutable 400 issu de développements externes (405) et de développements spécifiques (410). Comme représenté, l'exécution de modèles de processus instanciés est récursive.
Selon la nature du code exécutable et l'implémentation de l'atelier orienté service collaboratif, le code exécutable est exécuté par l'atelier orienté service collaboratif ou par un applicatif externe. A titre d'illustration, le code exécutable est ici exécuté par l'atelier orienté service collaboratif s'il est de type Python et par un applicatif externe s'il est, par exemple, de type ModelCenter (MC). L'exécution de fonctions externes à l'atelier orienté service collaboratif est réalisée selon un mécanisme d'encapsulation des fonctions externes dans des modèles de processus. La figure 5 illustre un exemple d'encapsulation d'un modèle ModelCenter dans un modèle de processus. Si le code exécutable est de type Python, les données nécessaires à l'exécution du code, comprenant en particulier les références aux données d'entrée et de sortie ainsi qu'à l'environnement d'exécution, sont mises en forme selon le format Python (module 415). Le processus ainsi formaté est ensuite encapsulé (module 420) dans un modèle de processus pouvant être manipulé par l'atelier orienté service collaboratif comme un objet standard (module 425). Comme illustré par la flèche reliant le module 425 au module 415, le modèle de processus utilise l'interface Python lorsque le processus doit être exécuté.
De même, si le code exécutable est de type ModelCenter, les données nécessaires à l'exécution du code, comprenant en particulier les références aux données d'entrée et de sortie ainsi qu'à l'environnement d'exécution, sont encapsulées selon le format ModelCenter (module 430). Le processus ainsi formaté est ensuite encapsulé (module 435) dans un modèle de processus pouvant être manipulé par l'atelier orienté service collaboratif comme un objet standard (module 425). A nouveau, comme illustré par la flèche reliant le module 425 au module 430, le modèle de processus utilise l'interface adaptée, ici l'interface ModelCenter, lorsque le processus doit être exécuté afin de permettre l'exécution du processus à l'extérieur de l'atelier orienté service collaboratif. Comme suggéré par la référence 460, d'autres formats peuvent être utilisés.
L'instanciation du modèle de processus peut être réalisée après l'encapsulation du processus à l'aide d'une interface homme-machine, c'est-à-dire ici entre les modules 420 et 425 et entre les modules 435 et 425. L'encapsulation a notamment pour objet d'adapter les modèles de processus selon un format prédéterminé. En particulier, l'encapsulation permet de contrôler la validité des données, de déterminer les paramètres nécessaires et d'imposer des valeurs par défaut aux paramètres manquants et de copier et/ou de générer le code approprié. De façon optionnelle, l'encapsulation permet également de définir des directives d'exécution, c'est-à-dire de définir, par exemple, quelles sont les machines sur lesquelles doivent être exécutés les processus ou certaines parties des processus. L'encapsulation de fonctions externes dans un modèle de processus est de préférence réalisée à l'aide des sections XML suivantes, - entrées et sorties : liens vers les objets associés aux données 15 gérées dans l'atelier collaboratif permettant leur utilisation dans les fonctions externes ; - paramètres : paramètres utilisés par les fonctions externes ; et, - code : appel à la fonction externe. La figure 5 illustre un exemple d'encapsulation d'un modèle 20 ModelCenter 500 dans un modèle de processus 505. Comme représenté, un lien est établi entre chaque section du modèle de processus et les champs correspondants du modèle ModelCenter. L'appel au code exécutable du modèle ModelCenter est ici effectué à travers un script Python 510. Ainsi, un modèle de processus peut faire appel à une fonction 25 externe à l'atelier orienté service collaboratif. Du fait de la structure des objets associés aux modèles de processus et en particulier des liens, une traçabilité des données utilisées en entrée ou en sortie de modèles de processus faisant appel à des fonctions externes est possible. De façon similaire, il est également possible d'encapsuler des 30 modèles de processus dans des fonctions externes, par exemple dans des modèles ModelCenter. Ainsi, des modèles de processus développés dans l'atelier orienté service collaboratif peuvent être directement utilisés par des applicatifs externes. Via ce mécanisme, il est possible d'utiliser et de lier des modèles de processus à d'autres fonctions externes tout en conservant, lors de l'exécution, l'utilisation de données gérées dans l'atelier orienté service collaboratif ainsi que la traçabilité associée.
L'exécution de modèles de processus à partir d'un applicatif externe est réalisée par le module d'exécution neutre de la couche d'intégration de l'atelier orienté service collaboratif, appelé SRUN, utilisé pour exécuter les modèles de processus instanciés. Un modèle de processus peut ainsi encapsuler des fonctions 10 externes et peut être encapsulé dans des fonctions externes. Dans ce double mécanisme d'encapsulation, le degré de traçabilité des données est ainsi déterminé par les fonctions exécutées par l'atelier orienté service collaboratif et par des applicatifs externes. A titre d'illustration, si un modèle de processus A de l'atelier orienté 15 service collaboratif fait appel à des fonctions B, C et D, B et C étant des modèles de processus de l'atelier orienté service collaboratif et D étant un modèle ModelCenter qui fait lui-même appel à des fonctions E et F, E étant une fonction externe et F étant un modèle de processus encapsulé de l'atelier orienté service collaboratif, il est possible de suivre les liens entre B, C et D 20 mais pas entre E et F (simplement entre l'entrée de E et la sortie de F), exécutés à l'extérieur de l'atelier orienté service collaboratif. Il est ainsi possible de déterminer le niveau de granularité souhaité pour la traçabilité des données. Comme indiqué précédemment, les données associées aux objets caractérisant des modèles de processus instanciés peuvent être représentés 25 sous forme de fichiers, par exemple sous forme de fichier de type XML. Les descriptions des modèles de processus comprennent avantageusement plusieurs sections, spécifiques à chaque type d'information. Les modèles de processus peuvent être composés eux-mêmes de sous-modèles de processus qui peuvent être mémorisés dans des sections des 30 modèles de processus. Les sous-modèles de processus sont ici des références à des modèles de processus accessibles dans l'atelier orienté service collaboratif. Ainsi, il est possible de créer des modèles de processus composites faisant référence à plusieurs modèles de processus unitaires ou eux-mêmes composites. Les attributs d'un modèle de processus instancié sont par exemple les suivants, - la version du schéma de type XML permettant d'extraire les informations du modèle de processus ; - l'identifiant, le nom, la version et le type du modèle de processus ; - l'identifiant du modèle de processus instancié ; - l'identifiant d'exécution de type ModelCenter si le modèle de processus instancié fait référence à une fonction de type ModelCenter ; - les chemins d'accès aux mécanismes permettant l'exécution du processus de façon sécurisé (appelés sandboxes en terminologie anglo-saxonne); - l'état d'exécution du modèle de processus qui spécifie dans quel 15 état d'exécution est le modèle de processus instancié, par exemple soumis, en cours d'exécution, exécuté avec succès ou exécuté avec erreur ; - l'état du modèle de processus définissant son état interne, par exemple primaire, partiellement instancié, instancié, en cours d'exécution ou exécuté ; et, 20 - des commentaires. La section relative aux entrées, aux sorties, aux entrées/sorties et aux paramètres d'un modèle de processus instancié comprend par exemple le nom, le type et la catégorie. D'autres informations peuvent être associées aux entrées, aux sorties, aux entrées/sorties et aux paramètres d'un modèle de 25 processus instancié telles que le type d'utilisateur concerné, une description et une aide. Une section est utilisée pour chaque entrée, sortie, entrée/sortie et paramètre. La section relative au contexte d'exécution d'un modèle de processus instancié comprend une section de classification spécifiant les outils 30 utilisés durant l'exécution du modèle de processus instancié. La section relative au contexte d'exécution d'un modèle de processus instancié comprend également une section de création de contexte permettant de mémoriser le contexte d'exécution du modèle de processus instancié ainsi qu'une section de contexte courant d'exécution spécifiant la configuration devant être utilisée pour exécuter le processus et permettant de mémoriser les choix effectuer par le contrôleur de grille de calcul. La section relative au contexte d'exécution d'un modèle de processus instancié peut aussi comprendre une section de serveur d'exécution pour spécifier la configuration de la grille de calcul choisie lors de l'instanciation du modèle de processus ainsi qu'une section de rapport d'exécution remplie à la fin de l'exécution du processus contenant par exemple un code d'erreur ou les informations métiers relatives à l'exécution du processus. Les attributs des sections de création de contexte et de contexte courant d'exécution sont par exemple les suivants, - le nom et le type de la machine utilisée pour exécuter le processus ainsi que son type de système d'exploitation ; et, - la date de création du contexte ou d'exécution du processus.
La section relative aux données d'un modèle de processus instancié est prévue pour mémoriser les données privées du modèle de processus, disponibles lors de l'exécution du processus. Cette section peut comprendre elle-même des sections telles que des sections spécifiques à des processus particuliers tels que des processus de type ModelCenter.
La section relative au code d'un modèle de processus instancié comprend le code du processus devant être exécuté. Les attributs de cette section sont par exemple le langage utilisé tel que le langage Python, la version du code et, éventuellement, des commentaires. Un modèle de processus instancié peut, par ailleurs, comprendre 25 une description de la liste des serveurs disponibles et/ou des serveurs préférés pour exécuter le processus. La figure 6 illustre de façon synthétique un exemple de schéma 600 de type XML pour l'analyse d'un modèle de processus mémorisé sous forme de description de type XML. Le schéma de type XML 600 décrit les différentes 30 sections contenues dans un fichier représentant un modèle de processus ainsi que les liens vers les sections de type XML des parties de gestion de données et de gestion de processus.
Les liens représentés en trait gras continu représentent l'inclusion, les liens en trait continu représentent la notion d'import et les liens en trait pointillé représentent la notion d'import implicite. Les extensions de type PT (Process Template) sont associées aux modèles de processus, c'est-à-dire au moteur d'exécution, les extensions de type DM (Data Management) sont associées aux données, c'est-à-dire au gestionnaire de données, et les extensions de type MC sont associées à ModelCenter, c'est-à-dire à un gestionnaire particulier de processus. Comme illustré, un modèle de processus 605 comprend plusieurs sous-ensembles 610 à 640 correspondant ici aux sections des entrées, des sorties, des paramètres, des serveurs, du contexte d'exécution, des données et du code, respectivement. Les sections liées aux entrées, aux sorties et aux paramètres comprennent elles-mêmes des arguments 645. Le modèle de processus comprend implicitement les informations relatives aux modèles spécifiques 650-1 à 650-n tels que les modèles EDMG (sigle d'Editeur De Modèle Généralisé), ModelCenter et Excel (Excel est une marque). Le modèle ModelCenter du modèle de processus reçoit des informations d'un modèle particulier 655. On remarque ici que le modèle Excel utilise une référence à la fonction devant être utilisée, par exemple une URL (sigle de Uniform Resource Locator en terminologie anglo-saxonne) tandis que le modèle ModelCenter est, du fait de l'encapsulation, inclus dans le modèle de processus. Les données spécifiées dans les sections 610, 615 et 620 sont issues des objets 660 qui comprennent eux-mêmes des liens (665 et 670) vers 25 d'autres objets. Ainsi, les références 600 à 650 sont associées au modèle de processus générique tandis que l'ensemble des références correspond à un modèle de processus instancié. Il convient néanmoins de remarquer ici que les paramètres 520 peuvent également être modifiés manuellement par l'utilisateur. 30 La figure 7 illustre un exemple d'algorithme 700 pour l'exécution de processus unitaires de modèles de processus instanciés.
Le modèle de processus instancié 705 est tout d'abord analysé (étape 710) pour contrôler sa validité à l'aide d'un schéma XML prédéterminé 715. S'il n'est pas valide, l'exécution du processus est arrêtée et un autre modèle de processus instancié peut être traité. Si le modèle de processus instancié est valide, les informations contenues dans ce modèle sont extraites (étape 720). L'extraction des informations permet notamment de déterminer la configuration du contexte d'exécution 725 ainsi que l'environnement d'exécution 730 pouvant notamment comprendre les entrées, les sorties, les entrées/sorties, les paramètres et/ou les données propres au modèle de processus instancié. Selon un mode de réalisation préféré, la configuration du contexte d'exécution 725 et l'environnement d'exécution sont déterminés selon le format Python. La configuration du contexte d'exécution est ensuite contrôlée selon la validité du domaine d'exécution (étape 735). En effet, le créateur d'un processus a la possibilité de spécifier un domaine de validité, par exemple une version spécifique de logiciel. Si un utilisateur veut utiliser une autre version, il peut être alerté ou contraint à changer son choix, la condition de validité du domaine d'exécution n'étant pas satisfaite. Si la configuration n'est pas valide, l'exécution du processus est arrêtée et un autre modèle de processus instancié peut être traité. Si la configuration est valide, les conditions sur les entrées et les entrées/sorties sont vérifiées (étape 740). Lors de l'instanciation du processus il se peut que l'utilisateur ait référencé un objet qui ne peut pas être utilisé dans ce processus car il ne satisfait pas les conditions définies par le créateur du processus. Dans l'exemple donné concernant la table et la chaise, le processus de déménagement peut, par exemple, avoir comme condition une couleur spécifique de la chaise. Si l'utilisateur choisit une chaise d'une autre couleur, le processus de déménagement ne peut pas avoir lieu. Si les conditions sur les entrées et les entrées/sorties ne sont pas valides, l'exécution du processus est arrêtée et un autre modèle de processus instancié peut être traité.
Si les conditions sur les entrées et les entrées/sorties sont valides, l'exécution du processus est mise en oeuvre selon le code du modèle de processus instancié (étape 745), c'est-à-dire selon les données associées à l'objet représentant le modèle de processus instancié.
Le code du modèle de processus instancié est ensuite exécuté (étape 750). De façon générale, le noyau du module d'exécution, appelé SRUN, charge en mémoire les entrées, les entrées/sorties ainsi que les modules Python nécessaires à l'exécution du code. Si nécessaire, un environnement d'exécution distribué, basé sur les capacités du module d'exécution SRUN, peut être mis en oeuvre. Dans le cas des modèles de processus instanciés composites, le module d'exécution SRUN créé en mémoire des instances des sous modèles de processus et les exécute successivement comme des modèles de processus instanciés unitaires. La cohérence entre les différents processus unitaires est alors assurée par le moteur d'exécution du flux de travaux ou workflow. Durant l'exécution du processus, le script contenant le code est exécuté dans l'environnement d'exécution correspondant, éventuellement sur une machine différente de celle du gestionnaire de données, en fonction du choix du gestionnaire de la grille de calcul. De préférence, les mécanismes permettant l'exécution du processus de façon sécurisée sont utilisés pour lire et écrire les données physiques, pour mémoriser l'historique de l'exécution du processus et pour la mémorisation temporaire des données. Après l'exécution du script, c'est-à-dire du processus, le moteur 25 d'exécution transmet les sorties au domaine approprié et mémorise le rapport d'exécution. La figure 8 illustre un exemple de traitement de données 800 pouvant être effectué dans un atelier orienté service collaboratif conforme à l'invention. Selon cet exemple, des données 805 correspondent à des 30 informations relatives à une maison en ruine. Un objet, faisant référence à des méta-données, est associé à ces données, précisant l'état en ruine ainsi que d'autres informations jugées comme pertinentes, ici le nombre de pièces et le nombre de fenêtres. Des données 810 correspondent aux informations relatives à une maison habitable. A nouveau, un objet, faisant référence à des méta-données, est associé à ces données, précisant un état, ici l'état habitable, ainsi que des informations jugées comme pertinentes, c'est-à-dire ici le nombre de pièces et le nombre de fenêtres. Les données 810 peuvent être obtenues à partir de l'objet lié aux données 805, et donc à partir des données 805, à l'aide d'un objet représentant un modèle de processus instancié de rénovation 815. De façon similaire, l'objet correspondant aux données 810 peut être combiné à un objet de type salle à manger lié aux données 820 et à un objet de type lit lié aux données 825 dans un modèle de processus instancié de déménagement 830 pour créer un objet de type maison habitée lié aux données 835. Les méta-données liées aux données 835 précisent ici l'état habité ainsi que le nombre de pièces et de fenêtres. L'exemple donné en annexe sous la référence extrait de code 3 15 illustre un exemple simplifié de méta-données associées aux données 805 de la figure 8 avant l'exécution du processus de rénovation. Comme indiqué dans cet exemple, les méta-données comprennent des informations génériques, notamment le type et le nom de l'objet ainsi que le lien pour accéder à la donnée correspondante, et des informations spécifiques, 20 ici l'état, le nombre de fenêtres et le nombre de pièce. Il convient de noter que les méta-données sont du type IN, c'est-à-dire qu'elles ne correspondent pas à des données créées par un modèle de processus instancié. Le modèle de processus de rénovation pouvant être utilisé pour traiter l'exemple précédent représentant une maison en ruine peut être décrit 25 génériquement tel que présenté en annexe sous la référence extrait de code 4 . Ce modèle de processus prend en entrée un objet de type maison et créé en sortie un autre objet de type maison. Ce modèle de processus peut être instancié pour contenir, notamment, des références aux objets associés aux 30 données 805 et 810 de la figure 8. Le modèle de processus instancié est alors, par exemple, celui donné en annexe sous la référence extrait de code 5 .
Comme indiqué, le modèle de processus instancié comprend en outre des paramètres d'exécution, l'identification de la machine d'exécution, la configuration applicative utilisée ainsi que les liens d'historiques d'exécution entre les objets associés aux données 805 et au modèle de processus instancié 815 et entre les objets associés au modèle de processus instancié 815 et aux données 810. Après l'exécution du processus correspondant à ce modèle de processus instancié, les méta-données liées aux données 805 sont modifiées pour ajouter un lien d'historique permettant la traçabilité des données. Les méta-données associées aux données 805 peuvent donc, après l'exécution du processus, être représentées de la façon donnée en annexe sous la référence extrait de code 6 . Comme précisé dans cet exemple, un lien a été créé entre les objets associés aux données 805 et au modèle de processus instancié 815. Ainsi, à l'aide de l'objet associé au modèle de processus instancié 815, il est possible d'établir un lien entre les objets associés aux données 805 et 810. De même, après l'exécution du processus, les données 810 ainsi que les méta-données associées à celles-ci, incluant les liens, sont créées. Les méta-données associées aux données 810 peuvent alors être représentées de la façon donnée en annexe sous la référence extrait de code 7 . Comme précédemment, un lien a été créé entre l'objet associé aux données 810 et l'objet associé au modèle de processus instancié 815. Ainsi, à l'aide de l'objet associé au modèle de processus instancié 815, il est possible d'établir le lien existant entre les données 805 et 810. Il convient de noter que les méta-données sont ici du type OUT, c'est-à-dire qu'elles correspondent à des données créées par un modèle de processus instancié dans l'atelier orienté service collaboratif. De la même façon, un second modèle de processus peut être créé et instancié pour traiter les données 810, 820 et 825 pour créer les données 835 et l'objet associé. Lorsque le second modèle de processus instancié 830 caractérisant un processus de déménagement est exécuté, les méta-données associées aux données 810 sont modifiées pour intégrer le lien induit par l'exécution du modèle de processus instancié 830. Les méta-données associées aux données 810 peuvent alors s'exprimer sous la forme donnée en annexe sous la référence extrait de code 8 . Le lien créé entre l'objet associé aux données 810 et l'objet associé 5 au modèle de processus instancié 830 permet, à l'aide de cet objet, d'établir le lien entre les objets associés aux données 810 et 835. Par ailleurs, lors de l'exécution du second modèle de processus instancié 830, les données 835 sont créées ainsi que l'objet associé. Les méta-données associées peuvent être représentées sous la forme donnée en annexe 10 sous la référence extrait de code 9 . Le lien créé entre l'objet associé aux données 835 et l'objet associé au modèle de processus instancié 830 permet, à l'aide de cet objet, de déterminer les liens entre les objets associés aux données 835 et 810, entre les objets associés aux données 835 et 820 ainsi qu'entre les objets associés aux 15 données 835 et 825. Un dispositif adapté à mettre en oeuvre une partie de l'invention est illustré sur la figure 9. Le dispositif 900 est par exemple un micro-ordinateur, un ordinateur ou une station de travail. Le dispositif 900 comporte ici un bus de communication 902 auquel 20 sont reliés : - une unité centrale de traitement ou microprocesseur 903 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ; - une mémoire morte 904 (ROM, acronyme de Read Only Memory en terminologie anglo-saxonne) pouvant comporter les programmes "Prog", 25 "Progl" et "Prog2" ; - une mémoire vive ou mémoire cache 906 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et, 30 - une interface de communication 918 adaptée à transmettre et à recevoir des données. Optionnellement, le dispositif 900 peut également disposer : - d'un écran 908 permettant de visualiser des données et/ou de servir d'interface graphique avec l'utilisateur qui pourra interagir avec les programmes selon l'invention, à l'aide d'un clavier et d'une souris 910 ou d'un autre dispositif de pointage, un écran tactile ou une télécommande ; - d'un disque dur 912 pouvant comporter les programmes "Prog", "Prog1" et "Prog2" précités et des données traitées ou à traiter selon l'invention ; et, - d'un lecteur de cartes mémoires 914 adapté à recevoir une carte mémoire 916 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention. Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 900 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du dispositif 900 directement ou par l'intermédiaire d'un autre élément du dispositif 900. Le code exécutable de chaque programme permettant au dispositif programmable de mettre en oeuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur 912 ou en mémoire morte 904.
Selon une variante, la carte mémoire 916 peut contenir des données ainsi que le code exécutable des programmes précités qui, une fois lu par le dispositif 900, sera stocké dans le disque dur 912. Selon une autre variante, le code exécutable des programmes pourra être reçu, au moins partiellement, par l'intermédiaire de l'interface 918, pour être stocké de façon identique à celle décrite précédemment. De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif 900 avant d'être exécutés. L'unité centrale 903 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 912 ou dans la mémoire morte 904 ou bien dans les autres éléments de stockage précités.
Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 912 ou la mémoire morte 904, sont transférés dans la mémoire vive 906 qui contient alors le code exécutable d'au moins une partie du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en oeuvre de l'invention. Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente.
ANNEXE Extrait de code 1 : <Atelier. DM: FrameworkMetaData> <Atelier.DM:Attributes. Generic /> <Atelier. D M:A ttributes. Specific /> </Atelier. DM: FrameworkMetaData>
Extrait de code 2 : <Atelier. D M: F rame workMetaD a ta xmlns:Atelier.
DM= "h ttp://www. societe. comte gat/Atelier/DM"> <Atelier. D M:Attributes. Generic aclname="Prive" comments="None" creationdate="2006-04-27 10:29:43" db_type ="ELEMENT" externalid="chaise_numero_0010100432325" id="1411" lock_owner="None" lock_state="0" mdb instance="MDB exploit" modification da te = "2006- 04-27 10.29:43" name="chaise 1" owner="nom_p renom" publication_level="Prive " shared state="None" site = "Toulouse " source= "LOCAL" sta tus = "Prive " version_comments = "N one " version_n umb er= "None " version owner="None" version state="None" version tag="None"h <Atelier. DM:Attributes. Specific nb_pieds="4" e paisseur= "5cm " coule ur= "roug e " matiere="bois" poids= "2kg ''/> </Atelier. DM: FrameworkMetaData> Extrait de code 3 : <Atelier. D M: EEObjectProx y xmins:Atelier.DM="http://www. societe. com/egat/Atelier/DM" publish = "0" state="0" type ="IN"> <Atelier. DM:OriginalPointer> <Atelier.DM:Pointer external id="description pour accès à la donnée physique 'V> </Atelier. DM:OriginalPointer> <Atelier. DM: ObjectProx y type = "MAIS ON"> <Atelier.DM:Pointer externat id="description pour accès à la donnée physique <Atelier. DM: FrameworkMetaData xmlns:Atelier. DM="http://www. societe. com/egat/Atelier/DM"> <Atelier. D M:A ttrib utes. G e n eric acl name="Prive" db_type="MAISON" externe! id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB_exploit" modification_date="" name="ma maison bleue" source="CMSDK" sta tus = "Priva te 'Y> <Atelier.DM:Attributes.Specific etat="en ruine" nb fenetre="4" nb_pieces="10"h </Atelier. DM: FrameworkMetaData> </Atelier. DM: ObjectProxy> </Atelier. DM: EEObjectProxy> Extrait de code 4 : <?xml version="1.0" ?> <Atelier.PT.:ProcessTemplate comment="mon premier traitement" creator="createur" id="identifiant" name="Renovation maison" schemaVersion ="0.1" state="primary" execution state="not submitted" type = "action " version ="O .1 " xmins:Atelier. DM="http://www. societe. com/egat/Atelier/DM" xmins: Atelier. MC= "http://www. societe. com/egat/Atelier/MC" xmins:Atelier. PT="http://www. societe. com/egat/Atelier/PT" xmins:xsi="http://www. w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www. societe. comte ga t/A telier/PT Atelier. PT. ProcessTemplate.xsd http://www. societe. com/egat/Atelier/DM Atelier. DM.xsd "> <Atelier PT.:SandboxPointer externalid="" source_name ="" source site="" source_type="" type=" <Atelier. PT:ln put category="object" desc="maison en ruine" name="" type="MAISON"> <Atelier. PT Condition> <![CDATA[nombre de fenetres > 3]]> </Atelier. PT. Con dition > </Atelier. PT: Input> <Atelier.PTOutput category="object" desc="maison habitable" name="" type="MAISON"> </Atelier. PT Output> <Atelier.PT.:Parameter desc="paramètres d exécution" name="para_list" type="Iist'/> <Atelier. PT. Server> <Atelier. PT: ValidServer> <![CDATA[mot clé et valeurs décrivant les caractéristiques machines]]> </Atelier. PT: ValidServer> <Atelier. PT.:DefaultServer> <![CDATA[mot clé et valeurs caractéristiques de la machine par défaut]]> </Atelier. PT DefaultServer> </Atelier. PT Server> <Atelier. PT.:ExecutionContext> <Atelier. PT Classification processType="batch "> <Atelier. PT: Suite name= "Suite 1'/> <Atelier. PT Tool name= "Tooll "V> </Atelier. PT.:Classification> <Atelier. PT. CreationContext class="" date="" hostname="" osname="" type=""> <!(CDATA[[configuration] mot clé et valeur décrivant la configuration applicative par de faut [validity] condition de validite de la configuration applicativeJ]> </Atelier. PT:CreationContext> </Atelier. PT. ExecutionContext> <Atelier. PT Data/> <Atelier. PT:Code comment="commentaire sur le code" langage="python" version=""> <![CDATA[Code a executer]]> </Atelier.PTCode> UAtelier. PT: ProcessTemplate> Extrait de code 5 : <?xml version="1.0" ?> <Atelier.PT.:ProcessTemplate comment= "mon premier traitement" creator="createur" id="identifiant" name="Renovation maison" schema Version ="0.1 " state="primary" execution state="not submitted" type "action " version ="0.1" xmins:Atelier DM="http://www. societe. com/egat/Atelier/DM" xmins:Atelier. MC="http://www. societe. com/ega t/Atelier/MC" xmins:Atelier. PT= "http://www. societe.com/egat/Atelier/PT" xmins:xsi="http://www. w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www. societe. com/egat/Atelier/PT Atelier. PT. ProcessTemplate.xsd http://www. societe. com/egat/Atelier/DM Atelier. DM.xsd "> <Atelier.PT.:SandboxPointer externalid="" source name =" <Atelier PT:Input category="object" desc="maison en ruine" name="Donnée 805" type="MAISON"> <Atelier. PT Condition> <![CDATA[ nombre de fenetres > 3 ]]> </Atelier. PT.:Condition> <Atelier. D M:EEObjectProx y publish="0"state="0" type ="IN"> <Atelier. DM: OriginalPointer> <Atelier. DM: Pointer external id= "description pour accès à la donnée physique"/> </Atelier. DM: OriginalPointer> <Atelier. DM: ObjectProx y type = "MAISON"> <AtelierDM:Pointer externat id="description pour accès à la donnée physique"!> <Atelier. DM: FrameworkMetaData xmins:Atelier. DM= "http://www. societe. com/egat/Atelier/DM"> <Atelier. D M:A ttributes. G eneric acl narre="Prive " db type="MAISON" external id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB_exploit" modification date="" name="ma maison bleue" source="CMSDK" status= "Priva te'V> <Atelier. DM:A ttrib utes. Specific etat="en ruine" nb fenetre="4" nb_pieces = "10" /> <Atelier. DM: Links> <Atelier. D M: Link comments="descripfion du lien" date="" id FO 1="identifiant donnée 805" id FO_2="identifiant IPT 815" mdb_instance="MDB_exploit" owner="to39751 " subtype="sous type de lien" type ="HiSTORY" xmins:Atelier DM= "http://www. societe.com/egaVAtelier/DM" h </Atelier. DM: Links> </Atelier. DM: FrameworkMetaData> </Atelier. DM: ObjectProxy> </Atelier. DM: EEObjectProxy> </Atelier. PT: ln put> <Atelier.PT.:Output category="object" desc="maison habitable" name="Donnée 810" type ="MAISON"> <Atelier. DM:EEObjectProx y publish="l "state="1" type ="OUT"> <Atelier. DM: SandboxPointer> <Atelier.DM:Pointer externat id="description pour accéder au bac a sable" 30 source name="" source site="" source type="" type=""/> </Atelier. DM: SandboxPointer> <Atelier. DM: FinalPointer> <Atelier.DM:Pointer external id="description pour accès à la donnée physique 'V> 35 </Atelier. D M:F inalPoin ter> <Atelier. DM: Ob jectProx y type ="MA1 SON"> <AtelierDM:Pointer external id="description pour accès à la donnée physique 'V> <Atelier. DM: FrameworkMetaData 40 xmins:Atelier.DM="http://www.societe.com/egat/Atelier/DM"> <Atelier. D M:Attributes. Generic acl name="Prive" db_type="MAISON" externat id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB_exploit" modificationdate=""name="ma maison bleue" source="CMSDK" status= "Private 'V> 45 <A telier. DM:A ttrib utes. Specific etat="habitable" nb fenetre="6" nb_pieces = "12 " 1> <Atelier. DM: Links> <Atelier. D M: Link comments = "description du lien" date="" id FO 1="identifiant iPT 815" id FO 2="identifiant Donnée 810" mdb_instance="MDB_exploit" 50 owner= "to39 751" subtype="sous type de lien" type="HISTORY" xmins:Ateller. DM= "http://www. societe. com/egat/Atelier/DM" h </Atelier. DM: Links> </Atelier. DM: FrameworkMetaData> </Atelier. DM: ObjectProxy> 55 </Atelier. DM: EEObjectProxy> </Atelier. PT Output> <Atelier.PT.:Parameter desc="parametres d execution" name="para_list" type="list"> <Atelier. PT:ParameterValue> <![CDATA[ parametre d execution J]> </Atelier. PT: ParameterValue> </Atelier. PT: Parameter> <Atelier. PT::Server> <Atelier. PT: ValidServer> <![CDATA[ mot clé et valeurs décrivant les caractéristiques machines J]> </Atelier. PT.:ValidServer> <Atelier. PT DefaultServer> <![CDATA[ mot clé et valeurs caractéristiques de la machine par défaut J]> </Atelier. PT.:DefaultServer> </Atelier. PT..Server> <Atelier. PT ExecutionContext> <Atelier. PT:Classification processType="b a tch "> <Atelier.PTSuite name="Suitel"h <Atelier. PT: Toc/ name = "Tool1 " h </Atelier. PT::Classification> <Atelier.PTCreationContext class="" date="" hostname="" osname="" type=""> <! [CDATA f [configuration] mot clé et valeur décrivant la configuration applicative par défaut 20 fvalidity] condition de validité de la configuration applicative J]> </Atelier. PT.:CreationContext> <Atelier. PT.-RunContext class="" date="" hostname="" osname="" type=""> <![CDATAf[configuration] mot clé et valeur décrivant la configuration applicative utilisée j]> 25 </Atelier. PT.:RunContext> <Atelier. PT: RunServer> <![CDATA[ mot clé et valeur décrivant la machine d'exécution utilisée ]]> </Atelier. PT RunServer> <Atelier. PT.:ExecutionReport return_code="O"> 30 <![CDATA[ Rapport d execution J]> </Atelier. PT.:ExecutionReport> </Atelier. PT ExecutionContext> <Atelier. PT::Data h <Atelier. PT.:Code comment="commentaire sur le code" langage='python"version=""> 35 <![CDATA[ Code a exécuter J]> </Atelier. PT. Code> </Atelier. PT.:ProcessTemplate> Extrait de code 6 : 40 <Atelier. D M: EEObjectProx y xmins:Atelier.DM="http://www.societe.com/egat/Atelier/DM" publish="0" state="O" type="IN"> <Atelier. DM: OriginalPointer> <Atelier.DM:Pointer externat id="description pour accès à la donnée physique" source name=""source site=""source type=""type=""h 45 </Atelier. DM: OriginalPointer> <Atelier. D M: ObjectProx y type = "MAI SON"> <Atelier.DM:Pointer external id="description pour accès à la donnée physique"!> <Atelier. DM: FrameworkMetaData xmins:Atelier. DM="http://www. societe. com/egat/Atelier/DM"> 50 <Atelier.DM:Attributes.Generic acl name="Prive" db_type="MAISON" externat id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB_exploit" modification date="" name="ma maison bleue" source="CMSDK" status= "Private'h <Atelier.DM:Attributes.Specific etat="en ruine" nb_fenetre="4"nb_pieces="10"h 55 <Atelier. DM:Links> 10 15 <Atelier.DM:Link comments="description du lien" date="" id FO_l =t'identifiant Donnée 805" id FO_2="identifiant 1PT 815" mdb_instance="MDB_exploit" owner="to39751" subtype="sous type de lien" type="HiSTORY" xmins:Atelier DM="http://www.societe.com/egat/Atelier/DM" /> </Atelier. DM: Links> </Atelier. DM: FrameworkMetaData> </Atelier. DM: ObjectProxy> </Atelier. DM:EEObjectProxy> Extrait de code 7 : <Atelier. DM: EEObjectProxy xmins: Atelier. DM="http..//www. societe. com/egat!Atelier/DM" publish="1 " state="1" type="OUT"> <Atelier. DM: SandboxPointer> <Atelier. DM:Pointer externat id="description pour accès au bac a sable"!> </Atelier. DM: SandboxPointer> <Atelier. DM:FinalPointer> <Atelier. DM:Pointer externat id="description pour accès à la donnée physique"!> </Atelier. DM: FinalPointer> <Atelier. DM: ObjectProxy type ="MAISON"> <Atelier.DM:Pointer external id="description pour accès à la donnée physique"!> <Atelier. DM:FrameworkMetaData xmlns:AtelierDM="http://www.societe.com/egat/Atelier/DM"> <Atelier. D M:Attributes. Generic aclname="Prive" db_type="MAISON" externat id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB_exploit" modification date="" name="ma maison bleue" source="CMSDK" status="Private'Y> <Atelier. DM:Attributes. Specific etat="habitable" nb_fenetre ="6" nb_pieces="12"/> <Atelier. DM: Links> <Atelier. DM:Link comments="description du lien" date="" id FO_I="identifiant IPT 815" id FO 2="identifiant Donnée 810" mdb instance="MDB exploit" owner="to39751" subtype="sous type de lien" type="HISTORY" xmins:Atelier. DM="http://www. societe. com/egat/Atelier/DM" /> </Atelier. DM: Links> </Atelier. DM:FrameworkMetaData> </Atelier. D M: ObjectProx y> </Atelier. DM: EEObjectProxy> Extrait de code 8 : <Atelier. DM: EEObjectProxy xmins:Atelier.DM="http://www.societe.com/egatAtelier/DM" publish="1"state=1'1 " type ="OUT"> <Atelier. DM: SandboxPointer> <Atelier.DM:Pointer externat id="description pour accès au bac à sable" source name="" source site="" source type="" type=""/> </Atelier. DM: SandboxPointer> <Atelier. DM: FinalPoin ter> <Atelier.DM:Pointer external id="description pour accès à la donnée physique'Y> </Atelier. DM: FinalPointer> <Atelier.DM:ObjectProxy type="MAISON"> <Atelier. DM:Pointer externat id="description pour accès à la donnée physique"!> <Atelier.DM:FrameworkMetaData xmins: Atelier. DM= "httpJ/www. societe. com/egat/Atelier/DM"> <Atelier. D M:A ttributes. Generic acl name="Prive" db_type="MAISON" external id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB exploit" modification_date="" name="ma maison bleue" source="CMSDK" status="Priva te"!> <Atelier.DM:Attributes.Specific etat="habitable" nb fenetre="6" nb_pieces="12"h <Atelier. DM: Links> <Atelier.DM:Link comments="description du lien" date="" id FO 1="identifiant IPT 815" id FO 2="identifiant Donnée 810" mdb_instance="MDB exploit" owner="to39751" subtype="sous type de lien" type="HiSTORY" xmins:Atelier DM= "http://www. societe. com/egat/Atelier/DM" h <Atelier.DM:Link comments="description du lien" date="" id FO 1="identifiant Donnée 810" id FO 2="identifiant IPT 830" mdb instance="MDB exploit" owner="to39751" subtype="sous type de lien" type="HISTORY" xmins:Atelier DM= "http://www. societe. com/egat/Atelier/DM" h </Atelier. DM:Links> </Atelier. DM: FrameworkMetaData> </Atelier.DM:ObjectProxy> </Atelier. DM: EEObjectProxy> Extrait de code 9 : <Atelier.DM:EEObjectProxy xmins:AtelierDM="http://www.societe.com/egat/Atelier/DM" publish="1 "state="1" type ="OUT"> <Atelier. DM: SandboxPointer> <AtelierDM:Pointer external id="description pour accès au bac à sable"!> </Atelier. DM: SandboxPointer> <Atelier. DM: FinalPointer> <Atelier DM:Pointerexternat id="description pour accès à la donnée physique"!> UAtelier. DM: FinalPointer> <Atelier.DM:ObjectProxy type="MAISON"> <Atelier.DM:Pointerexternat id="description pour accès à la donnée physique"I> <Atelier. DM: FrameworkMetaData xmins:AtelierDM="http://www. societe. com/egat/Atelier/DM"> <Atelier. D M:A ttrib utes. G eneric acl name="Prive" db_type="MAISON" external id="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB exploit" modification_date="" name="ma maison bleue" source="CMSDK" status="Private'V> <Atelier. DM:Attributes. Specific etat="habite"nbfenetre="6"nb pieces="12"h <Atelier.DM:Links> <Atelier.DM:Link comments="description du lien" date="" id FO 1="identifiant IPT 830" id FO 2="identifiant Donnée 835" mdb instance="MDB exploit" owner="to39751" subtype="sous type de lien" type="HISTORY" xmlns:AtelierDM="http://www.societe.com/egat/Atelier/DM"/> <Atelier.DM:Link comments="description du lien" date="" id FO 1="identifiant iPT 830" id FO 2="identifiant Donnée 835" mdb instance="MDB exploit" owner="to39751" subtype="sous type de lien" type="HISTORY" xmins:Atelier. DM= "http://www. societe. com/egat/Atelier/DM" h <Atelier.DM:Link comments="description du lien" date="" id FO 1="identifiant iPT 830" id FO 2='identifiant Donnée 835" mdb instance="MDB exploit" owner="to39751" subtype="sous type de lien" type="HISTORY" xmins: Atelier. DM="http://www.societe.com/egat/Atelier/DM"/> </Atelier. DM: Links> </Atelier.DM:FrameworkMetaData> </Atelier. DM: ObjectProxy> </Atelier. DM: EEObjectProxy> Table 1 méta-données génériques spécifiques ID date URL type nb pieds mat. coul. poids 1 12/09/07 http://x.y/z/ élément 3 bois rouge 3500 n 29/01/08 http://m.n/o/p/q élément 4 métal vert 1800 Table 2 : ID1 5 8 3 5 ID2 8 5 1 1 385

Claims (10)

  1. REVENDICATIONS1. Procédé de gestion de données dans un atelier orienté service collaboratif mis en oeuvre dans un système informatique, ce procédé étant caractérisé en ce que ledit atelier orienté service collaboratif est adapté à traiter des objets associés à des données représentatives de données réelles ou de processus et en ce que le procédé comprend les étapes suivantes, - accès à au moins une donnée représentative de données réelles ou de processus, mémorisée dans un dispositif distant (130) ; - extraction (200) d'au moins une information caractéristique de ladite au moins une donnée selon un paramètre prédéterminé ; et, - mémorisation de ladite au moins une information caractéristique et d'un lien vers ladite au moins une donnée dans un objet associé à ladite au moins une donnée, ledit objet étant mémorisé dans une zone de stockage centralisée (125).
  2. 2. Procédé selon la revendication 1 comprenant en outre une étape de réception d'au moins une information complémentaire, ladite information complémentaire étant mémorisée dans ledit objet associé à ladite au moins une donnée.
  3. 3. Procédé selon la revendication 1 ou la revendication 2 selon lequel ladite au moins une information caractéristique comprend au moins un attribut commun à une pluralité de données.
  4. 4. Procédé selon l'une quelconque des revendications précédentes selon lequel ladite au moins une information caractéristique comprend au moins un attribut spécifique à ladite au moins une donnée.
  5. 5. Procédé selon l'une quelconque des revendications précédentes selon lequel ledit objet comprend en outre un lien vers un second objet, distinct dudit objet appelé premier objet. 40
  6. 6. Procédé selon la revendication précédente comprenant en outre une étape de détermination de la consistance (210) dudit premier objet selon ledit lien vers ledit second objet.
  7. 7. Procédé selon l'une quelconque des revendications précédentes 5 comprenant en outre les étapes suivantes, - sélection d'au moins un objet associé à des données représentatives d'un processus ; - détermination, dans ledit objet associé à des données représentatives dudit processus, d'un lien vers un objet associé à des données 10 représentatives de données réelles mises en oeuvre par ledit processus ; - exécution dudit processus ; - mémorisation, dans ledit objet associé à des données représentatives desdites données réelles mises en oeuvre par ledit processus, d'un lien vers ledit objet associé à des données représentatives dudit 15 processus ; et, - mémorisation, dans ledit objet associé à des données représentatives dudit processus, d'un lien vers ledit objet associé à des données représentatives desdites données réelles mises en oeuvre par ledit processus. 20
  8. 8. Procédé selon la revendication précédente comprenant en outre les étapes suivantes, création de données représentatives de données réelles ; - création d'un objet associé auxdites données créées ; mémorisation dans ledit objet créé d'un lien vers ledit objet 25 associé à des données représentatives dudit processus ; et, - mémorisation, dans ledit objet associé à des données représentatives dudit processus, d'un lien vers ledit objet créé.
  9. 9. Procédé selon l'une quelconque des revendications précédentes selon lequel au moins l'un desdits objets est mémorisé sous forme d'au moins 30 une table ou d'au moins un fichier XML. 41
  10. 10. Programme d'ordinateur comprenant des instructions adaptées à la mise en oeuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédentes.
FR0853121A 2008-05-14 2008-05-14 Procede de gestion de donnees pour atelier oriente service collaboratif Expired - Fee Related FR2931274B1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR0853121A FR2931274B1 (fr) 2008-05-14 2008-05-14 Procede de gestion de donnees pour atelier oriente service collaboratif
EP09757686A EP2297681A1 (fr) 2008-05-14 2009-05-14 Procede de gestion de donnees pour atelier oriente service collaboratif
JP2011508973A JP5524186B2 (ja) 2008-05-14 2009-05-14 共同サービス指向ワークショップのためのデータ管理方法
US12/991,527 US8706702B2 (en) 2008-05-14 2009-05-14 Method for data management in a collaborative service-oriented workshop
PCT/FR2009/000566 WO2009147310A1 (fr) 2008-05-14 2009-05-14 Procede de gestion de donnees pour atelier oriente service collaboratif

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0853121 2008-05-14
FR0853121A FR2931274B1 (fr) 2008-05-14 2008-05-14 Procede de gestion de donnees pour atelier oriente service collaboratif

Publications (2)

Publication Number Publication Date
FR2931274A1 true FR2931274A1 (fr) 2009-11-20
FR2931274B1 FR2931274B1 (fr) 2018-05-04

Family

ID=40185044

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0853121A Expired - Fee Related FR2931274B1 (fr) 2008-05-14 2008-05-14 Procede de gestion de donnees pour atelier oriente service collaboratif

Country Status (5)

Country Link
US (1) US8706702B2 (fr)
EP (1) EP2297681A1 (fr)
JP (1) JP5524186B2 (fr)
FR (1) FR2931274B1 (fr)
WO (1) WO2009147310A1 (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563861B2 (en) 2012-11-06 2017-02-07 Rockwell Automation Technologies, Inc. Integration of workflow and library modules
US9355193B2 (en) * 2012-11-06 2016-05-31 Rockwell Automation Technologies, Inc. Object design data model
US9031975B2 (en) 2012-11-06 2015-05-12 Rockwell Automation Technologies, Inc. Content management
US9678617B2 (en) * 2013-01-14 2017-06-13 Patrick Soon-Shiong Shared real-time content editing activated by an image
WO2015071202A1 (fr) * 2013-11-12 2015-05-21 Sma Solar Technology Ag Procédé de communication entre des modules de commande système et une pluralité d'installations de production d'énergie par le biais d'une passerelle et serveur de données configuré et programmé en conséquence
US10054936B2 (en) * 2014-02-28 2018-08-21 Schneider Electric Software, Llc Manufacturing execution system and method of determining production metrics for a line
US10382374B2 (en) * 2017-04-06 2019-08-13 International Business Machines Corporation Privileged and protected announcements, broadcasts, or posts
US11243760B2 (en) * 2019-07-24 2022-02-08 Sap Se Automated generation and consistency checking of software objects

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174697A1 (en) * 2006-01-19 2007-07-26 Nokia Corporation Generic, WSRF-compliant checkpointing for WS-Resources
US20080021926A1 (en) * 2000-06-28 2008-01-24 Mci, Llc Database system, particularly for multimedia objects

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991535A (en) 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US6981255B2 (en) * 1997-07-17 2005-12-27 Microsoft Corporation Method and system for accessing objects of different thread types
US6003040A (en) * 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US6952827B1 (en) * 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
US7529762B2 (en) * 2002-08-28 2009-05-05 Hewlett-Packard Development Company, L.P. Workflow data warehousing
US8407706B2 (en) * 2006-12-28 2013-03-26 Sap Ag Framework for parallel business object processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080021926A1 (en) * 2000-06-28 2008-01-24 Mci, Llc Database system, particularly for multimedia objects
US20070174697A1 (en) * 2006-01-19 2007-07-26 Nokia Corporation Generic, WSRF-compliant checkpointing for WS-Resources

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Extending Web Services Semantics to Support Asynchronous Invocations and Continuation ED - Anonymous", WEB SERVICES, 2007. ICWS 2007. IEEE INTERNATIONAL CONFERENCE ON, IEEE, PI, 1 July 2007 (2007-07-01), pages 208 - 215, XP031119918, ISBN: 978-0-7695-2924-0 *
ARDAIZ-VILLANUEVA O: "On-demand virtual studios and laboratories based on grid tecbnologies for project-based cooperative design and engineering", COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN, 2005. PROCEEDINGS OF TH E NINTH INTERNATIONAL CONFERENCE ON COVENTRY, UK MAY 24-26, 2005, PISCATAWAY, NJ, USA,IEEE, vol. 1, 24 May 2005 (2005-05-24), pages 356 - 361, XP010832913, ISBN: 978-1-84600-002-7 *
MEHMET S AKTAS ET AL: "XML Metadata Services", SEMANTICS, KNOWLEDGE, AND GRID, 2006. SKG '06. SECOND INTERNATION AL CONFERENCE ON, IEEE, PI, 1 November 2006 (2006-11-01), pages 31 - 31, XP031024849, ISBN: 978-0-7695-2673-7 *
NI LI ET AL: "Research and Realization of Collaborative M&S Services in Simulation Grid", CLUSTER COMPUTING AND THE GRID, 2006. CCGRID 06. SIXTH IEEE INTERNATIONAL SYMPOSIUM ON - SINGAPORE 16-19 MAY 2006, PISCATAWAY, NJ, USA,IEEE, vol. 2, 16 May 2006 (2006-05-16), pages 69 - 69, XP010918279, ISBN: 978-0-7695-2585-3 *

Also Published As

Publication number Publication date
JP2011525269A (ja) 2011-09-15
EP2297681A1 (fr) 2011-03-23
US20110060729A1 (en) 2011-03-10
FR2931274B1 (fr) 2018-05-04
JP5524186B2 (ja) 2014-06-18
WO2009147310A1 (fr) 2009-12-10
US8706702B2 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
US7580946B2 (en) Smart integration engine and metadata-oriented architecture for automatic EII and business integration
Casters et al. Pentaho Kettle solutions: building open source ETL solutions with Pentaho Data Integration
US8412813B2 (en) Customizable asset governance for a distributed reusable software library
US8751464B1 (en) Integrated version control in a business intelligence environment
FR2931274A1 (fr) Procede de gestion de donnees pour atelier oriente service collaboratif
US20100281455A1 (en) Determining system level dependencies
US9747353B2 (en) Database content publisher
WO2009147311A1 (fr) Procede de gestion de processus dans un atelier oriente service collaboratif
Gousios et al. A platform for software engineering research
Neves et al. Model for semantic base structuring of digital data to support agricultural management
Kelly et al. Collaborative modelling and metamodelling with MetaEdit+
Pialorsi Microsoft SharePoint 2013 Developer Reference
Rozinat et al. Workflow simulation for operational decision support using yawl and prom
FR2931275A1 (fr) Procede pour la tracabilite de donnees dans un atelier oriente service collaboratif
Mitchell et al. SQL Server Integration Services Design Patterns
Pisano Plugin-based workflow integration for QHAna
Peng Kylo Data Lakes Configuration deployed in Public Cloud environments in Single Node Mode
CA2607129C (fr) Gestion de bien personnalisable destinee a une librairie logicielle reutilisable repartie
PIVATO Design and development of a continuous integration and continuous delivery system for a cloud based web application
Gannouni et al. Data integration using service composition in data service middleware
How et al. The Integration Engine
Hillier et al. Professional Business Connectivity Services in SharePoint 2010
Tang et al. A Cross-platform and User Transparent Mobile Application Event Collection Mechanism
Probst Investigating a Constraint-Based Approach to Data Quality in Information Systems
EP2558932A1 (fr) Procédé d&#39;enregistrement de données, dispositif, et produit programme d&#39;ordinateur correspondant

Legal Events

Date Code Title Description
CA Change of address

Effective date: 20110916

CD Change of name or company name

Owner name: AIRBUS HOLDING, FR

Effective date: 20110916

CJ Change in legal form

Effective date: 20110916

TP Transmission of property

Owner name: AIRBUS HOLDING, FR

Effective date: 20110913

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

ST Notification of lapse

Effective date: 20210105