EP2297682A1 - Method for the traceability of data in a collaborative service-oriented workshop - Google Patents

Method for the traceability of data in a collaborative service-oriented workshop

Info

Publication number
EP2297682A1
EP2297682A1 EP09757688A EP09757688A EP2297682A1 EP 2297682 A1 EP2297682 A1 EP 2297682A1 EP 09757688 A EP09757688 A EP 09757688A EP 09757688 A EP09757688 A EP 09757688A EP 2297682 A1 EP2297682 A1 EP 2297682A1
Authority
EP
European Patent Office
Prior art keywords
data
workshop
link
objects
atelier
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.)
Withdrawn
Application number
EP09757688A
Other languages
German (de)
French (fr)
Inventor
Bernard Marquez
Thierry Chevalier
Stefano Tursi
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
Airbus Operations Ltd
Original Assignee
Airbus Operations SAS
Airbus Operations Ltd
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, Airbus Operations Ltd filed Critical Airbus Operations SAS
Publication of EP2297682A1 publication Critical patent/EP2297682A1/en
Withdrawn legal-status Critical Current

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

Abstract

The invention particularly relates to a method for data management in a collaborative service-oriented workshop for processing objects associated with data representing actual data or processes. After selecting (230) at least one first object including at least one link, or a so-called first link, to a second object separate from said first object, at least one link to a third object, or a so-called second link, is accessed (240, 245), said second link being included in one of said first and second objects, said third object being separate from said first and second objects. A link is then established (245, 255) between the data associated with said third object and the other of said first and third objects.

Description

Procédé pour la traçabilité de données dans un atelier orienté service collaboratif Method for data traceability in a collaborative service-oriented workshop
La présente invention concerne les architectures informatiques pour le travail collaboratif et plus particulièrement un procédé pour la traçabilité de données dans un atelier orienté service collaboratif.The present invention relates to computer architectures for collaborative work and more particularly to a method for traceability of data in a collaborative service-oriented workshop.
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 œuvre d'un environnement informatique spécifique.Optimizing the study and design phases of objects such as vehicles to reduce costs and development time usually requires the implementation of a specific IT environment.
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 œuvre. De plus, ces spécialistes peuvent être situés, géographiquement, à des endroits distincts.For example, the aerodynamic study of an aircraft involves many specialists, working on different aspects of the same data, these aspects may or may not be related to each other. These specialists generally use different computer tools as well as different machines for the execution of the processes implemented. In addition, these specialists may be located, geographically, in separate locations.
Il s'avère donc avantageux de mettre en œuvre 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.It is therefore advantageous to implement an environment based on an open architecture for sharing data and computing resources, including computing resources. Such an environment should preferably accommodate a set of heterogeneous machines and operating systems.
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.It is also advantageous to use an interface allowing access to different different existing tools. Such a common interface must in particular be adapted to manage the data to be exchanged between these tools as well as to allow easy selection and access to the data.
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.In addition, the environment should preferably allow easy adaptation to future needs such as the integration of new tools, the management of new types of data and the generation of new types of results. In addition, there is a need for data traceability to determine the origin of the data produced and their life cycle during the various modifications and uses in computing or other processes. These problems are partially solved independently of each other.
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.For example, there are software applications such as SynfiniWay developed by Fujitsu (SynfiniWay and Fujitsu are trademarks) that allow the optimization of the execution of tasks in a heterogeneous environment. The SynfiniWay application can be used to virtualize global resources and present applications as services linked by sequences and data dependencies to automate IT processes.
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.There are also scripting languages such as Python and Java (Python and Java are trademarks) that can automate certain tasks and use existing tools. Python is a high-level, interpreted and object-oriented programming language. It can be used in many contexts and can be adapted to many uses with the help of specialized libraries. Data traceability is generally determined by the processes that led to the data. For example, in applications of PDM type (acronym for Product Data Management in English terminology), the user must follow predetermined processes without being able to derogate from them. The origin of a datum is thus determined by the process that made it possible to obtain the datum.
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.However, there is no centralized and optimized environment for the study and design of systems in a heterogeneous open collaborative environment.
L'invention permet de résoudre au moins un des problèmes exposés précédemment.The invention solves at least one of the problems discussed above.
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,The invention thus relates to a data management method in a collaborative service oriented workshop adapted to processing objects associated with data representative of actual data or processes, the method comprising the following steps,
- sélection d'au moins un premier objet comprenant au moins un lien, appelé premier lien, vers un second objet, distinct dudit premier objet ; - accès à au moins un lien vers un troisième objet, appelé second lien, ledit second lien étant compris dans l'un desdits premier et second objets, ledit troisième objet étant distinct desdits premier et second objets ; et,selecting at least one first object comprising at least one link, called first link, to a second object, distinct from said first object; access to at least one link to a third object, called a second link, said second link being included in one of said first and second objects, said third object being distinct from said first and second objects; and,
- établissement d'un lien entre les données associées audit troisième objet et l'autre desdits premier et deuxième objets. 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 et permettre de lier des objets entre eux et, ainsi, d'offrir les moyens de suivre une relation de proche en proche entre plusieurs objets. Selon un mode de réalisation particulier, les données associées audit premier objet sont représentatives d'un processus. Toujours selon un mode de réalisation particulier, les données associées audit second objet sont au moins partiellement obtenues à partir dudit processus ou ledit processus est appliqué sur au moins une partie desdites données associées audit second objet. De façon avantageuse, le procédé comprend en outre une étape de construction d'un arbre de données selon lesdits premier et second liens permettant d'établir un lien entre lesdits premier et troisième objets ou entre lesdits second et troisième objets.establishing a link between the data associated with said third object and the other of said first and second objects. The method according to the invention thus makes it possible to manage data independently of their own characteristics such as their nature, their storage location and their size in order to allow global management thereof and make it possible to bind objects together and, thus, to offer the means to follow a close relationship between several objects. According to a particular embodiment, the data associated with said first object are representative of a process. Still according to a particular embodiment, the data associated with said second object are at least partially obtained from said process or said process is applied to at least a part of said data associated with said second object. Advantageously, the method further comprises a step of constructing a data tree according to said first and second links making it possible to establish a link between said first and third objects or between said second and third objects.
Lesdites étapes d'accès à au moins un lien et d'établissement d'un lien sont, de préférence, répétées de façon récursive pour établir un lien entre des données associées à au moins deux objets distincts.The steps of accessing at least one link and establishing a link are preferably recursively repeated to establish a link between data associated with at least two distinct objects.
Selon un mode de réalisation particulier, au moins l'un desdits liens contenu dans l'un desdits objets est mémorisé dans une table de liens pour faciliter la gestion des liens et permettre une construction efficace d'arbres de données.According to a particular embodiment, at least one of said links contained in one of said objects is stored in a link table to facilitate the management of links and allow efficient construction of data trees.
Toujours selon un mode de réalisation particulier, ledit processus fait appel à au moins une fonction extérieure audit atelier orienté service collaboratif afin d'utiliser des fonctions existantes et limiter les développements logiciels. Le procédé selon l'invention permet ainsi d'éviter de maintenir plusieurs versions similaires de modules logiciels.Still according to a particular embodiment, said process uses at least one function external to said workshop oriented collaborative service to use existing functions and limit software development. The method according to the invention thus makes it possible to avoid maintaining several similar versions of software modules.
Toujours selon un mode de réalisation particulier, lesdits objets sont mémorisés dans une base de données centralisée et lesdites données associées auxdits objets sont mémorisées dans des dispositifs distants pour optimiser la gestion des ressources.Still according to a particular embodiment, said objects are stored in a centralized database and said data associated with said objects are stored in remote devices to optimize the management of resources.
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.The invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above.
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 :Other advantages, aims and features of the present invention will emerge from the detailed description which follows, given by way of non-limiting example, with reference to the accompanying drawings in which:
- 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 ;FIG. 1 schematically represents an exemplary architecture of a workspace for sharing data and resources according to the 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 ;FIG. 2, comprising FIGS. 2a and 2b, illustrates a simplified block diagram of the data manager shown in FIG. 1 and an example algorithm for establishing a data tree, respectively;
- 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 ;FIG. 3 diagrammatically represents the functional elements of the execution engine illustrated in FIG. 1, as well as the information transmitted between these elements, for the execution of a process based on a Python type representation; FIG. 4 illustrates the collaborative service-oriented workshop according to the invention, from an application point of view, allowing execution of executable code resulting from external developments and specific developments;
- 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 ;FIG. 5 illustrates an example of encapsulation of an external ModelCenter model type function in a process model; FIG. 6 illustrates, in a synthetic manner, an example of an XML-type schema for the analysis of a stored process model in the form of an XML type description;
- la figure 7 illustre un exemple d'algorithme pour l'exécution de processus unitaires de modèles de processus instanciés ;FIG. 7 illustrates an exemplary algorithm for executing unit processes of instantiated process models;
- 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,FIG. 8 illustrates an example of data processing that can be performed from a collaborative service-oriented workshop according to the invention; and,
- la figure 9 illustre un exemple de dispositif adapté à mettre en œuvre une partie de l'invention.FIG. 9 illustrates an exemplary device adapted to implement a part of the 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.FIG. 1 schematically represents an example of an architecture 100 of a workspace for sharing data and resources according to the invention, also called a collaborative service-oriented workshop. As illustrated, this architecture is built around four main modules: the module 105 which is for access to data, the module 110 which is a data manager, the module 115 which is an execution engine and the module 120 which is about process management.
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.The data access module 105 is connected to the data management module 110 as well as to a centralized database 125, for example an Oracle type database (Oracle is a trademark). The data management module 110 is connected to the centralized database 125, to the execution engine 115 and to a set 130 representing distributed storage areas that can be organized in different ways, for example in the form of files or databases. of data. The execution engine 115 is itself connected to the set 130 of storage areas and the module 120 of process management.
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.Although this architecture is particularly suited to the design of complex objects such as aircraft, the following description is based on a simple example for the sake of clarity and brevity. This example is given for illustrative purposes.
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.The architecture 100 is adapted to manipulate computer objects representing data in the broad sense of the term, these data being able to be representative of a real object, for example an aircraft, or a process such as an aerodynamic drag calculation process. In a simplified way, the collaborative service oriented workshop works on data represented by computer objects based themselves on metadata that represent characteristic data.
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.The data, called framework data in English terminology or FD, are therefore physical data stored, for example, in the form of files in a storage area 130. These data characterize a real object, for example the mesh or the structure of the data. a chair, or a process, for example, the steps of a moving process. The size of this data is not limited, it can be several hundred megabytes. All used data can be stored in separate physical locations.
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.Objects, called framework objects in English terminology or FO, represent objects having a particular meaning to the application sense. As mentioned earlier, these objects are used to represent everything that can be manipulated by the collaborative service-oriented workshop. Objects are based on sets of metadata that can be understood as basic elements or characteristic elements. A set of metadata is thus associated with each object. Each type of metadata set can be associated with multiple objects. Qualifying a metadata set type allows you to form an object. If, for example, a type of meta-data set is associated with a chair, a qualification of the chair forming an object may be a chair.
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.For the sake of clarity, the computer implementations of objects, called framework object proxies in English terminology or FO proxies, are here assimilated to the objects themselves.
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 FR2009/000569Among the objects are the instantiated process models, called instantiated process templates in English terminology or IPT. Instantiated process models are instances of process models, that is, process models applied to one or more FR2009 / 000569
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.objects. The process models, called process templates in English terminology or PT, are generic. For example, it is a process of building a living room from several chairs and a table, a process of renovating a house or a process of moving. Instantiated process models are represented as objects and can be manipulated as such in the Collaborative Service Oriented Workshop.
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 et/ou 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.Meta-data, called meta-data framework in English terminology or FMD, correspond to particular information of the data. They make it possible to characterize data in order to facilitate their manipulation. Data can be associated with several sets of metadata. The meta-data are advantageously stored in the centralized database 125 in the form of tables or XML files (abbreviation of Extensible Markup Language in English terminology). A type is here associated with each set of metadata. The metadata includes generic information such as an identifier, a creation date and a creator name and specific information, specific to the associated data, for example the material, the color or the weight of a chair. The metadata also includes links to objects that include determining how the data was obtained and / or how it was used. These links make it possible to define data models, that is to say data trees.
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.The consistency of an object is verified through the links defined in the set of metadata associated with it. For example, a table data model can be determined such that a table is linked to a chair. If a table object is actually associated with a chair object, then the table object is said to consist of the meaning of the data model defined through its links.
Les méta-données sont par exemple décrites à l'aide d'un langage de type XML selon la structure présentée en annexe sous la référence « extrait de code 1 ». 009/000569The meta-data are for example described using an XML type language according to the structure presented in the appendix under the reference "code excerpt 1". 009/000569
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 œuvre de l'atelier orienté service collaboratif. Même si cette partie n'a, a priori, pas de raison d'être 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.The generic part of the metadata is common to all the data, so it is defined during the implementation of the collaborative service oriented workshop. Even if this part does not have a reason to be modified, its definition can evolve according to the needs. However, its evolution has an influence on all objects managed in the collaborative service-oriented workshop.
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.The specific part of the metadata is specific to each type of data and, therefore, to each type of metadata set. The definition of this part is done by the users of the collaborative service oriented workshop. The information of the specific part of the metadata is determined by the automatic extraction operations to be performed on the data.
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.Generic and specific metadata are advantageously used for searching and sorting data contained in the collaborative service-oriented workshop.
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.The example given in the appendix under the reference "code snippet 2" illustrates the XML type description of a type of metadata used to describe a chair.
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 générique comprend notamment, ici, les éléments suivants,As previously described, the metadata advantageously comprise a generic part and a specific part. The generic part includes, in particular, the following elements,
- une clé permettant de gérer le contrôle d'accès à la donnée ;a key for managing access control to the data;
- une description du type d'objet ;- a description of the type of object;
- un commentaire décrivant la donnée ; - une date de création ;- a comment describing the data; - a creation date;
- un identifiant de la donnée qui peut être un clé ou une URL permettant d'accéder à la donnée ;an identifier of the data which can be a key or a URL making it possible to access the data;
- un identifiant unique de la donnée ;- a unique identifier of the data;
- une information concernant l'utilisateur qui a créé la donnée ; - l'emplacement physique de la donnée avec sa situation géographique ; et, 9 000569- information concerning the user who created the data; - the physical location of the data with its geographical location; and, 9 000569
- son état permettant de savoir si une modification est en cours et par qui.- its status to know if a modification is in progress and by whom.
La seconde partie des méta-données, spécifique à l'objet manipulé, ici une chaise, comprend dans cet exemple les attributs suivants, - le nombre de pieds ;The second part of the metadata, specific to the object handled, here a chair, includes in this example the following attributes, - the number of feet;
- l'épaisseur ;- the thickness;
- la couleur ;- the colour ;
- la matière ; et,- the material; and,
- le poids. Les parties générique et spécifique peuvent naturellement comprendre d'autres types d'informations.- the weight. The generic and specific parts can of course include other types of information.
L'identifiant ou l'adresse d'un ensemble de méta-données permet de retrouver les données auxquelles il est associé.The identifier or the address of a set of metadata makes it possible to find the data with which it is associated.
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.The qualification of a set of metadata representing a chair can be, in particular, "child" or "adult", to lead to two different objects.
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.In the same way, it is possible to define metadata and objects for tables. When importing an object defining a table, it is possible to define, at the level of a data model, that this object is only consistent if it is connected to at least one object of the chair type. Such a relationship between objects is defined by the links defined in the metadata. These links can also be represented in XML format or in a table. When importing a table type object, data model type links between the table type object and the chair type objects must be set in order to make this object consistent with the data model thus defined.
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. Il convient de remarquer ici que les liens ne sont pas inclus dans la table représentant les R2009/000569Alternatively, the metadata can be represented as tables. For example, a table can be associated with each type of data. The columns in the table represent metadata while each of its rows represents an object. Table 1 in the appendix illustrates a simplified example of representation of a type of set of metadata that can be associated with chair type data. It should be noted here that the links are not included in the table representing the R2009 / 000569
1010
méta-données. Selon cet exemple, les liens sont mémorisés dans une table de liens.metadata. According to this example, the links are stored in a link table.
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.A link table can be represented, for example, in the form of the table given in the appendix under the reference table 2 where each column represents a pair of object identifiers between which a link is established.
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.Thus, the information stored in the metadata tables and in the link table makes it possible to manipulate all data, current and future, of the collaborative service-oriented workshop as well as to build data models. It may be noted here that the representation of the metadata in the form of tables is equivalent to an XML representation and that it is possible to use a conversion tool to switch from one representation to another.
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 ;The representation of the data characterizing physical objects or processes is thus carried out at several levels: - the raw data;
- 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 ;- metadata, which represent subsets of the raw data, extracted from them, that characterize the raw data;
- les objets, basés sur les valeurs des méta-données, qui sont manipulés par les modules applicatifs ; et,- the objects, based on the metadata values, which are manipulated by the application modules; and,
- les objets consistants qui sont des objets liés à d'autres objets.- consistent objects that are objects related to other objects.
Il convient de remarquer ici que selon cette structure, il n'est pas nécessaire de mettre en œuvre 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.It should be noted here that according to this structure, it is not necessary to implement synchronization methods in the collaborative service-oriented workshop. The data access module 105 in particular enables a user to selectively and centrally access the meta-data stored in the centralized database 125 in order, in particular, to display these metadata, to produce views on these meta data. -Data allowing an efficient sorting of all the data accessible in the collaborative service workshop as well as, possibly, to follow the links uniting some of these data. The module 105 also makes it possible to record meta-data in the centralized database 125. It is thus possible for a user to enter meta-data through a human-machine interface (HMI) to specify information. which would not appear in the data stored in the storage areas 130. In order to access and save metadata, the user interface can use, in particular, queries of the SQL type (acronym for Structured Query Language in English terminology). ). This manual recording of meta-data is interesting for adding specific information that can not be extracted automatically from the data when importing the object into the workshop.
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.Similarly, the data access module 105 allows a user to selectively and centrally access the data stored in the storage areas 130 through the data management module 110 as well as to record data. To access and save data, the user interface advantageously uses APIs (acronym for Application Programming Interface in English terminology) specific and web services.
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.The data manager 110 is used as an interface between the data access module 105, the centralized database 125, the storage areas 130 and the execution engine 115 that is particularly adapted to applying processes to data. The data manager 110 also makes it possible to control the access rights of the users.
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 APIAccording to a particular embodiment, the data manager 110 is composed of a client part and a server part. The client part can be implemented in a Python language to allow access to the web services accessible in the server part. All standard data management functions such as import, export, publishing, collaboration and rights management are preferably available. This list is not exhaustive. The set of functions used during the life cycle of the data is available through this 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.The server part can be implemented, for example, in Java or Python language to allow interfacing with the various databases of data and storage areas. This part also advantageously supports the mechanisms for extracting the meta-data from the data stored in the distributed storage areas 130 to the centralized database 125 containing the metadata. The execution engine 115 allows the execution of processes via process models based, for example, on business applications. An interface between the execution engine 115 and the storage areas 130 allows direct or API access to the data during the execution of the processes. The execution engine 115 is preferably linked to a calculation grid, for example of the SynfiniWay type, which manages the submission of the various processes on a distributed infrastructure as well as the displacement of the data during execution.
Le moteur d'exécution 115 comprend également, de préférence, une interface avec des applications utilisant des flux de travaux {workflows 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.The execution engine 115 also preferably comprises an interface with applications using workflows in English terminology such as the ModelCenter (ModelCenter is a brand) or SynfiniWay applications, that is to say execution or task flow engines.
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.The process manager 120 enables the creation of high-level workflows, called composite processes, that encapsulate unit processes. These workflows can be the subject of parametric studies and parameter sensitivities and can be used to create behavior models. These functionalities can thus be used in multidisciplinary optimization studies.
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.Thus, the processing of non-unit processes, that is processes involving several different functions, is managed by the process manager to be, for example, broken down into unit processes which are then executed by the process engine. 'execution.
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 009/000569FIG. 2a is a simplified block diagram of the data manager 110. Using, for example, a file interface or a Corba type interface (acronym for Common Object Request Broker Architecture in 009/000569
1313
terminologie anglo-saxonne, Corba est une marque), des données sont créées dans les différentes bases de données (non représenté).Anglo-Saxon terminology, Corba is a trademark), data is created in the different databases (not shown).
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 œuvre 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 œuvre 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.A mechanism 200 for extraction, transformation and loading, called ETL (Abbreviation of Extract, Transform and Load in English terminology), is then implemented in order to extract the meta-data from the data stored in the data zones. storage 130. They are stored in the centralized database 125. This database thus collects the information of the physical data created in the various distributed storage areas 130. It should be noted here that the extraction mechanism is implemented. when the data is created, modified or deleted. It is specific to each type of data and metadata.
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,A qualification function 205 makes it possible to qualify the extracted metadata to form objects that can be stored in the centralized database 125. Following the qualification, a check is made on the consistency of the object. This consistency can be ensured through links stored with metadata or not, these links can be of different natures such as the version, the configuration, the data model and the user. A set of object links, defining a data model, can be used to determine links between multiple objects. Links are associated with metadata. As described above, they are stored with the latter or separately, for example in a link table stored in the centralized database 125. The links make it possible to establish later the traceability of the data, that is to say traceability between the different data produced or used during the execution of processes. There are several types of links, including the following,
- les liens utilisateurs déterminés manuellement par l'utilisateur entre deux données ; R2009/000569- user links determined manually by the user between two data; R2009 / 000569
1414
- 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 ;- model links to define a data model. These links are determined generically when creating a data model;
- 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 ;configuration links making it possible to establish a link between a set of objects to manage them in configuration, that is to say to allow the application of identical functions such as export, import and change of law;
- les liens de version qui permettent de gérer un même objet selon 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).- version links that make it possible to manage the same object according to different versions; and, - the production links that make it possible to establish an execution link between a set of objects. This type of link is created automatically during the data publication phase during or at the end of the execution of an instantiated process (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 notamment en ce qui concerne les exécutions de processus, les versions, les configurations, les utilisateurs et les modèles.The set of these two-by-two links makes it possible to obtain the traceability carried by the data: the data contains all the histories, in particular as regards the executions of processes, the versions, the configurations, the users and the models.
Il 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 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.It is thus possible to build complete trees of objects linked together by metadata and specific links. In the example of the chair and the table, a tree to know the metadata (color and location) of the table checks the data model linking it to the chairs having as metadata a specific color. Thus, step by step, it is possible to reconstruct complete trees for obtaining data.
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 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.It should be noted here that the data models, that is the data trees, are specific to the data handled in the collaborative service-oriented workshop. However, while data models can be derived from links between objects, they do not exist as such in the collaborative service-oriented workshop. They are implicitly created when defining objects, that is, sets of metadata corresponding to particular types of data.
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.As illustrated in FIG. 2a, a function 210 of the data manager 110 makes it possible to access the links and the objects to form a view of the consistent objects, i.e., a view showing the relationships between objects, which can be transmitted to a user as views of data models 215.
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.Similarly, the user can view objects and relationships as object views 220 and relationship views 230, such as lists.
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,Thus, according to this embodiment, the user, that is to say the client part of the data manager 110, has the following three types of views,
- une vue à travers les méta-données sur les objets contenus dans les différentes bases de données ;- a view through the metadata on the objects contained in the different databases;
- une vue sur les modèles de données créés dans l'architecture 100 ; et,a view of the data models created in the architecture 100; and,
- 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é.- a view allowing to navigate between the different objects through links defined in the database of metadata, or associated with them, such as version links, user links, configuration links and links of production allowing traceability.
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.An XML type description of objects of the object proxy type, containing all the metadata associated with each data item, is advantageously created to be used, for example, by the execution engine 115 in order to access the data stored in the zones. storage 130 during the execution of processes.
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.FIG. 2b illustrates an example of an algorithm making it possible to establish a data tree from the objects manipulated in the collaborative service oriented workshop, these objects representing either real data or processes.
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.After having selected a first object (step 230), for example through a human-machine interface, a link to a second object, contained in this first object, is accessed (step 235). Next, a link to a third object, contained in this second object, is accessed (step 240) to enable a connection to be made between the first object and the third object (step 245) or between the data associated with the first object and those associated with the first object to the third object. Alternatively, a link to a third object, contained in the first object, is accessed (step 250) to make it possible to establish a link between the second object and the third object (step 255) or between the data associated with the second object and those associated with the second object to the third object. As suggested by the dotted arrow, these steps can be repeated, iteratively, to determine a data tree in which the sheets represent the data (or objects associated with the data) and the branches represent the links between the data ( or between the objects associated with the data). FIG. 3 diagrammatically represents the functional elements of the execution engine 115, illustrated in FIG. 1, as well as the information transmitted between these elements, for the execution of a process based on a Python representation. The execution engine 115 is activated by an object consisting of an instantiated process model 300 represented here as an XML type document.
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.The instantiated process model 300 is analyzed in an XML type parser 305, called XML parser in English terminology, to extract the information allowing the execution of the process. In particular, the parameters, the code and the data information necessary for the execution of the process are extracted from the XML document. Similarly, the data used by the process, forming the inputs of the process, are found using links on the objects concerned. All the information necessary to execute the process extracted from the XML document is transmitted to the kernel 310 of the execution engine.
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. 00569The code of the instantiated process model 300, that is to say the data associated with the object representing the instantiated process model, corresponds to instructions directly executable by the execution engine, to instructions that are executable through a program. specific interface, such as Python type code, or functions or plug-ins called by the runtime engine such as ModelCenter functions. 00569
1717
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.The execution of the process associated with the instantiated process model 300 may result in the creation of new objects 315, forming the output of the process. These objects are treated in the same way as the objects described above. In particular, metadata and links stored in the centralized database 125 as well as data stored in storage areas 130 are associated with these objects. Alternatively or in a complementary way, the input of the process can be modified during the execution thereof. The modified inputs forming an output of the process are called inputs / outputs. The kernel 310 of the runtime engine preferably uses an execution environment 320, also called the execution context of the instantiated process model. The execution environment is intended in particular to keep a history of the execution of the process (325), to make the data accessible in the format of the execution engine (330), for example in the form of objects of the type Python, monitor the execution of the process (335) and provide the interfaces 340 needed to run plug-ins to the runtime kernel.
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é.When a process is executed and, in particular, when new objects are created, one or more links are automatically created in the metadata associated with the data used by the process (inputs, outputs and inputs / outputs) as well as in the metadata associated with the instantiated process model.
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,Before a process is run, the metadata associated with the instantiated process model includes references to the objects associated with the data to be used but not containing a link. Links are created in each object when the process is executed. For example, when a process uses data to produce a result, the following links are created during the execution of the process,
- un lien vers l'objet associé au modèle de processus est créé dans l'objet associé à la donnée d'entrée ;a link to the object associated with the process model is created in the object associated with the input data;
- 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 l'objet associé au modèle de processus ; et,a link to the object associated with the input data is created in the object associated with the process model; a link to the object associated with the output data is created in the object associated with the process model; and,
- 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 œuvre de l'atelier orienté service collaboratif conforme à l'invention, d'un point de vue applicatif, 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).a link to the object associated with the process model is created in the object associated with the output data. FIG. 4 illustrates an exemplary implementation of the collaborative service-oriented workshop according to the invention, from an application point of view, allowing the execution of executable code 400 resulting from external developments (405) and specific developments. (410). As shown, the execution of instantiated process models is recursive. Depending on the nature of the executable code and the implementation of the collaborative service-oriented workshop, the executable code is executed by the collaborative service-oriented workshop or by an external application. By way of illustration, the executable code is here executed by the collaborative service-oriented workshop if it is of Python type and by an external application if it is, for example, of the ModelCenter (MC) type.
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é.Execution of functions external to the collaborative service-oriented workshop is carried out according to a mechanism for encapsulating external functions in process models. Figure 5 illustrates an example of encapsulation of a ModelCenter model in a process model. If the executable code is of Python type, the data needed to execute the code, including in particular the references to the input and output data and to the execution environment, are formatted according to the format Python (module 415). The process thus formatted is then encapsulated (module 420) in a process model that can be manipulated by the collaborative service oriented workshop as a standard object (module 425). As illustrated by the arrow between module 425 and module 415, the process model uses the Python interface when the process is to be executed.
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 FR2009/000569Similarly, if the executable code is of ModelCenter type, the data necessary for the execution of the code, including in particular the references to the input and output data as well as to the execution environment, are encapsulated according to the ModelCenter format (module 430). The FR2009 / 000569
1919
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.The formatted process is then encapsulated (module 435) in a process model that can be manipulated by the collaborative service-oriented workshop as a standard object (module 425). Again, as illustrated by the arrow connecting the module 425 to the module 430, the process model uses the adapted interface, here the ModelCenter interface, when the process has to be executed in order to allow the execution of the process outside. of the workshop oriented collaborative service.
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.As suggested by reference 460, other formats can be used. The instantiation of the process model can be carried out after encapsulation of the process by means of a man-machine interface, that is to say here between the modules 420 and 425 and between the modules 435 and 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.One of the purposes of encapsulation is to adapt the process models according to a predetermined format. In particular, encapsulation makes it possible to check the validity of the data, to determine the necessary parameters and to impose default values on the missing parameters and to copy and / or generate the appropriate code. Optionally, encapsulation also makes it possible to define execution directives, that is to say to define, for example, which machines are to be executed on the processes or parts of the processes.
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,Encapsulation of external functions in a process model is preferably performed using the following XML sections,
- entrées et sorties : liens vers les objets associés aux données gérées dans l'atelier collaboratif permettant leur utilisation dans les fonctions externes ;- inputs and outputs: links to the objects associated with the data managed in the collaborative workshop allowing their use in external functions;
- paramètres : paramètres utilisés par les fonctions externes ; et,- parameters: parameters used by external functions; and,
- code : appel à la fonction externe.- code: call to the external function.
La figure 5 illustre un exemple d'encapsulation d'un modèleFigure 5 illustrates an example of encapsulation of a model
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 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.ModelCenter 500 in a 505 process model. As shown, a link is established between each section of the process model and the corresponding fields of the ModelCenter model. The call to the executable code of the model ModelCenter is here carried out through a Python script 510. For example, a process model can use a function external to the collaborative service-oriented workshop. Due to the structure of the objects associated with the process models and in particular the links, a traceability of the data used in input or output of process models using external functions is possible.
De façon similaire, il est également possible d'encapsuler des 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.Similarly, it is also possible to encapsulate process models in external functions, for example in ModelCenter models. Thus, process models developed in the collaborative service-oriented workshop can be directly used by external applications. Via this mechanism, it is possible to use and link process models to other external functions while maintaining, at runtime, the use of managed data in the collaborative service-oriented workshop as well as the traceability associated.
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.The execution of process models from an external application is performed by the SRW neutral integration layer of the integration layer of the collaborative service-oriented workshop, called SRUN, used to execute the instantiated process models.
Un modèle de processus peut ainsi encapsuler des fonctions 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 process model can encapsulate external functions and can be encapsulated in external functions. In this double encapsulation mechanism, the degree of traceability of the data is thus determined by the functions performed by the collaborative service-oriented workshop and by external applications.
A titre d'illustration, si un modèle de processus A de l'atelier orienté 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 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 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.As an illustration, if a process model A of the collaborative service-oriented workshop uses functions B, C and D, B and C are process models of the collaborative service-oriented workshop and D is a model. ModelCenter itself makes use of E and F functions, E being an external function and F being an encapsulated process model of the collaborative service oriented workshop, it is possible to follow the links between B, C and D but not between E and F (simply between the input of E and the output of F), executed outside the collaborative service-oriented workshop. It is thus possible to determine the level of granularity desired for the traceability of the data. As indicated above, the data associated with the objects characterizing instantiated process models can be represented in the form of files, for example in the form of an XML type file. The descriptions of the process models advantageously comprise several sections, specific to each type of 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 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.Process models can themselves be composed of process sub-models that can be stored in sections of process models. The process sub-models are here references to process models accessible in the collaborative service-oriented workshop. Thus, it is possible to create composite process models that refer to several unit process models or themselves composite.
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 ;The attributes of an instantiated process model are for example the following: the version of the XML schema for extracting the information from the process model;
- l'identifiant, le nom, la version et le type du modèle de processus ;- the identifier, name, version and type of the process model;
- l'identifiant du modèle de processus instancié ;the identifier of the instantiated process model;
- l'identifiant d'exécution de type ModelCenter si le modèle de processus instancié fait référence à une fonction de type ModelCenter ;- the ModelCenter execution identifier if the instantiated process model refers to a ModelCenter type function;
- 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) ;the paths to the mechanisms allowing the execution of the process in a secure manner (called sandboxes in English terminology);
- l'état d'exécution du modèle de processus qui spécifie dans quel é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 ;- the execution state of the process model that specifies in which execution state is the instantiated process model, for example submitted, running, executed successfully or executed with error;
- 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, - des commentaires.the state of the process model defining its internal state, for example primary, partially instantiated, instantiated, running or executed; and, - comments.
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 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.The section on inputs, outputs, inputs / outputs and parameters of an instantiated process model includes for example the name, type and category. Other information can be associated with the inputs, outputs, inputs / outputs and parameters of an instantiated process model such as the type of user involved, a description and help. One section is used for each input, output, input / output and parameter.
La section relative au contexte d'exécution d'un modèle de processus instancié comprend une section de classification spécifiant les outils 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,The runtime context section of an instantiated process model includes a classification section that specifies the tools used during the execution of the instantiated process model. The execution context section of an instantiated process model also includes a context creation section for storing the execution context of the instantiated process model and a current execution context section specifying the configuration. to be used to execute the process and to store the choices made by the compute grid controller. The execution context section of an instantiated process model may also include an execution server section to specify the configuration of the calculation grid chosen during instantiation of the process model as well as a section of the execution model. execution report completed at the end of the execution of the process containing for example an error code or the business information relating to the execution of the process. The attributes of the context creation section and the current execution context section are, for example, the following,
- 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,- the name and type of the machine used to execute the process and its type of operating system; and,
- 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.- the date of creation of the context or execution of the process. The data section of an instantiated process model is intended to store process model private data available during process execution. This section may itself include sections such as sections specific to particular processes such as ModelCenter processes. The code section of an instantiated process model includes the code of the process to be executed. The attributes of this section are for example the language used such as the Python language, the version of the code and, possibly, comments.
Un modèle de processus instancié peut, par ailleurs, comprendre une description de la liste des serveurs disponibles et/ou des serveurs préférés pour exécuter le processus.An instantiated process model may further include a description of the list of available servers and / or preferred servers for executing the process.
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 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.FIG. 6 is a synthetic illustration of an XML schema example 600 for the analysis of a process model stored as an XML type description. The XML 600 type schema describes the different sections contained in a file representing a process model as well as the links to the XML type sections of the data management and process management parts.
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 9 000569The links shown in solid bold represent the inclusion, the dashed lines represent the notion of import and the dashed lines represent the notion of implicit import. Process Template (PT) extensions are associated with process models, ie the runtime engine, DM (Data Management) type extensions are associated with the data, that is to say to the data manager, and the MC type extensions are associated with ModelCenter, that is, a particular process manager. As illustrated, a process model 605 includes several subsets 610 to 640 corresponding here to the sections of the inputs, outputs, parameters, servers, execution context, data and code, respectively. The input, output, and parameter sections themselves include 645 arguments. The process model implicitly includes information about the specific 650-1 to 650-n models such as EDMG models (Model Editor acronym Generalized), ModelCenter and Excel (Excel is a brand). The ModelCenter model of the process model receives information from a particular model 655. Note here that the Excel model uses a reference to the function to be used, for example a URL (acronym for Uniform Resource 9 000569
2424
Locator en terminologie anglo-saxonne) tandis que le modèle ModelCenter est, du fait de l'encapsulation, inclus dans le modèle de processus.Locator in English terminology) while ModelCenter is, because of encapsulation, included in the process model.
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 d'autres objets.The data specified in sections 610, 615 and 620 are derived from objects 660 which themselves include links (665 and 670) to other objects.
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. La figure 7 illustre un exemple d'algorithme 700 pour l'exécution de processus unitaires de modèles de processus instanciés.Thus, the references 600 to 650 are associated with the generic process model while the set of references corresponds to an instantiated process model. It should however be noted here that the parameters 520 can also be manually modified by the user. FIG. 7 illustrates an exemplary algorithm 700 for executing unit processes of instantiated process models.
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).The instantiated process model 705 is first analyzed (step 710) to check its validity using a predetermined XML scheme 715. If it is not valid, the execution of the process is stopped and a another model of instantiated process can be processed. If the instantiated process model is valid, the information contained in this model is extracted (step 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é.The extraction of the information makes it possible in particular to determine the configuration of the execution context 725 as well as the execution environment 730 which can notably comprise the inputs, the outputs, the inputs / outputs, the parameters and / or the data specific to the model. instantiated process. According to a preferred embodiment, the configuration of the execution context 725 and the execution environment are determined according to the Python format. The configuration of the execution context is then controlled according to the validity of the execution domain (step 735). Indeed, the creator of a process has the possibility of specifying a domain of validity, for example a specific version of software. If a user wants to use another version, he can be alerted or forced to change his choice, as the validity condition of the execution domain is not satisfied. If the configuration is not valid, the execution of the process is stopped and another instantiated process model can be processed. If the configuration is valid, the conditions on the inputs and the inputs / outputs are checked (step 740). When instantiating the process, the user may have referenced an object that can not be used in this process because it does not meet the conditions set by the process creator. In the example given with regard to the table and the chair, the process of moving may, for example, have as a condition a specific color of the chair. If the user chooses a chair of another color, the moving process can not take place. If the conditions on the inputs and the inputs / outputs are not valid, the execution of the process is stopped and another model of instantiated process can be processed.
Si les conditions sur les entrées et les entrées/sorties sont valides, l'exécution du processus est mise en œuvre 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éIf the conditions on the inputs and the inputs / outputs are valid, the execution of the process is implemented according to the code of the instantiated process model (step 745), that is to say according to the data associated with the object representing the instantiated process model. The code of the instantiated process model is then executed
(étape 750). De façon générale, le noyau du module d'exécution, appelé SRUN1 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 œuvre.(step 750). In general, the kernel of the execution module, called SRUN 1 loads in memory the inputs, the inputs / outputs as well as the Python modules necessary to execute the code. If necessary, a distributed runtime environment, based on the capabilities of the SRUN runtime, can be implemented.
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.In the case of composite instantiated process models, the SRUN execution module creates instances of the process sub-models in memory and executes them successively as unit instantiated process models. The consistency between the different unit processes is then ensured by the execution engine of the workflow or 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.During the execution of the process, the script containing the code is executed in the corresponding execution environment, possibly on a machine different from that of the data manager, according to the choice of the manager of the calculation grid. Preferably, the mechanisms for executing the process in a secure manner are used to read and write the physical data, to memorize the history of the execution of the process and for the temporary storage of the data.
Après l'exécution du script, c'est-à-dire du processus, le moteur d'exécution transmet les sorties au domaine approprié et mémorise le rapport d'exécution.After the execution of the script, that is, the process, the execution engine passes the outputs to the appropriate domain and stores the execution report.
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 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.FIG. 8 illustrates an example of data processing 800 that can be performed in a collaborative service-oriented workshop according to the invention. In this example, 805 data is information about a ruined house. An object, referring to meta-data, is associated with these data, indicating the state in ruin as well as other information deemed relevant, here the number of pieces and the number of windows. Data 810 corresponds to information about a habitable house. Again, an object, referring to metadata, is associated with these data, specifying a state, here habitable status, as well as information deemed relevant, that is to say here the number of pieces and the number of windows. The data 810 can be obtained from the data-bound object 805, and hence from the data 805, using an object representing an instantiated renovation process template 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 » 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.Similarly, the object corresponding to the data 810 can be combined with a data-related dining room object 820 and a data-related bed object 825 in an instanciated moving process model 830 to create an object 835. Data-related metadata 835 specifies here the lived status as well as the number of rooms and windows. The example given in the appendix under the reference "code snippet 3" illustrates a simplified example of meta-data associated with the data 805 of FIG. 8 before the execution of the renovation process.
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, 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é.As shown in this example, the meta-data includes generic information, including the type and name of the object as well as the link to access the corresponding data, and specific information, here the state, the number of windows and the number of pieces. It should be noted that the metadata are of the IN type, that is, they do not correspond to data created by an instantiated process model.
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 génériquement tel que présenté en annexe sous la référence « extrait de code 4 ».The renovation process model that can be used to process the previous example representing a ruined house can be described generically as presented in the appendix under the reference "code snippet 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 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 ».This process model takes a home-type object as input and outputs another home-type object. This process model can be instantiated to contain, in particular, references to the objects associated with the data 805 and 810 of FIG. 8. The instantiated process model is then, for example, that given in the appendix under the reference "code extract 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.As indicated, the instantiated process model further includes execution parameters, the identification of the execution machine, the application configuration used as well as the execution history links between the objects associated with the data 805 and the instantiated process model 815 and between the objects associated with the instantiated process model 815 and the data 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 ».After executing the process corresponding to this instantiated process model, the metadata related to the data 805 is modified to add a history link allowing the traceability of the data. The meta-data associated with the data 805 can therefore, after the execution of the process, be represented in the manner given in the appendix under the reference "code snippet 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.As explained in this example, a link has been created between the objects associated with the data 805 and the instantiated process model 815. Thus, using the object associated with the instantiated process model 815, it is possible to establish a link between the objects associated with the 805 and 810 data.
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.Similarly, after execution of the process, the data 810 as well as the metadata associated therewith, including the links, are created. The meta-data associated with the data 810 can then be represented in the manner given in the appendix under the reference "code extract 7". As before, a link has been created between the object associated with the data 810 and the object associated with the instantiated process model 815. Thus, using the object associated with the instantiated process model 815, it is possible to establish the link between the data 805 and 810. It should be noted that the meta-data here are of the OUT type, that is, they correspond to data created by an instantiated process model in the 'workshop oriented collaborative service.
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 ».Similarly, a second process model can be created and instantiated to process the data 810, 820 and 825 to create the data 835 and the associated object. When the second instantiated process model 830 characterizing a moving process is executed, the meta-data associated with the data 810 is modified to integrate the link induced by the execution of the instantiated process model 830. The meta-data associated with the data 810 may then be expressed in the form given in the annex under the reference "code excerpt 8".
Le lien créé entre l'objet associé aux données 810 et l'objet associé 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.The link created between the object associated with the data 810 and the object associated with the instantiated process model 830 makes it possible, using this object, to establish the link between the objects associated with the data 810 and 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 sous la référence « extrait de code 9 ».On the other hand, when executing the second instantiated process model 830, the data 835 is created along with the associated object. The associated metadata can be represented in the form given in the appendix under the reference "code snippet 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 données 835 et 825.The link created between the object associated with the data 835 and the object associated with the instantiated process model 830 makes it possible, using this object, to determine the links between the objects associated with the data 835 and 810, between the associated objects. data 835 and 820 and between objects associated with data 835 and 825.
Un dispositif adapté à mettre en œuvre 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.A device adapted to implement a part of the invention is illustrated in Figure 9. The device 900 is for example a microcomputer, a computer or a workstation.
Le dispositif 900 comporte ici un bus de communication 902 auquel sont reliés : - une unité centrale de traitement ou microprocesseur 903 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;The device 900 here comprises a communication bus 902 to which are connected: a central processing unit or microprocessor 903 (CPU, acronym for Central Processing Unit in English terminology);
- une mémoire morte 904 (ROM, acronyme de Read OnIy Memory en terminologie anglo-saxonne) pouvant comporter les programmes "Prog", "Prog1" et "Prog2" ;a read-only memory 904 (ROM, acronym for Read OnYy Memory in English terminology) that may include the programs "Prog", "Prog1" and "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, - une interface de communication 918 adaptée à transmettre et à recevoir des données.a random access memory or cache memory 906 (RAM, acronym for Random Access Memory in English terminology) comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs; and, a communication interface 918 adapted to transmit and receive data.
Optionnellement, le dispositif 900 peut également disposer :Optionally, the device 900 can also have:
- 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 ;a screen 908 making it possible to display data and / or to act as a graphical interface with the user who can interact with the programs according to the invention, using a keyboard and a mouse 910 or another pointing device, a touch screen or a remote control;
- d'un disque dur 912 pouvant comporter les programmes "Prog", "Progi" 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.a hard disk 912 which may comprise the aforementioned "Prog", "Progi" and "Prog2" programs and data processed or to be processed according to the invention; and, a memory card reader 914 adapted to receive a memory card 916 and to read or write to it data treated or to be processed according to the 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 dispositifThe communication bus allows communication and interoperability between the various elements included in the device 900 or connected to it. The representation of the bus is not limiting and, in particular, the central unit is capable of communicating instructions to any element of the device 900 directly or via another element of the device.
900.900.
Le code exécutable de chaque programme permettant au dispositif programmable de mettre en œuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur 912 ou en mémoire morte 904. 009/000569The executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk 912 or in the read-only memory 904. 009/000569
3030
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.According to one variant, the memory card 916 may contain data as well as the executable code of the aforementioned programs which, once read by the device 900, will be stored in the hard disk 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.According to another variant, the executable code of the programs may be received, at least partially, through the interface 918, to be stored in the same manner as described above.
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 œuvre 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. More generally, the program or programs may be loaded into one of the storage means of the device 900 before being executed. The central unit 903 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored in the hard disk 912 or in the read-only memory 904 or else in the other elements of aforementioned storage. When powering on, the program or programs that are stored in a non-volatile memory, for example the hard disk 912 or the read-only memory 904, are transferred into the random access memory 906 which then contains the executable code of at least one part of the program or programs according to the invention, as well as registers for storing the variables and parameters necessary for the implementation of the invention. Naturally, to meet specific needs, a person skilled in the field of the invention may apply modifications in the foregoing description.
ANNEXEANNEX
Extrait de code 1 :Code excerpt 1:
<Atelier.DM:FrameworkMetaData> <Atelier. DM:Attributes. Generic f><Workshop.DM:FrameworkMetaData> <Workshop. DM: Attributes. Generic f>
<Atelier.DM:Attributes. Spécifie /> </Atelier.DM:FrameworkMetaData><Atelier.DM:Attributes. Specifies /> </Atelier.DM:FrameworkMetaData>
Extrait de code 2 : <Atelier.DM:FrameworkMetaData xmlns:Atelier.DM="http://www.societe.com/egai/Atelier/DM">Code snippet 2: <Workshop.DM:FrameworkMetaData xmlns: Workshop.DM = "http://www.societe.com/egai/Atelier/DM">
<Atelier.DM:Attributes. Generic acl_name="Prive" comments="None" creation_date="2006-04-27 10:29:43" dbJype≈ΕLEMENT" externaljd="chaise_numero_0010100432325" id="1411" lock_owner="None" lock_state="0" mdb_instance="MDB_exploit" modification_date="2006-04-27 10:29:43" name="chaise1" owner="nom_prenom" publication_level="Prive" shared_state="None" site="Toulouse" source="LOCAL" status="Prive" version_comments="None" version_number="None" version_owner= "None " version_state="None " version _tag= "None "/><Atelier.DM:Attributes. Generic acl_name = "Private" comments = "None" creation_date = "2006-04-27 10:29:43" dbJype≈ΕLEMENT "externaljd =" chair_number_0010100432325 "id =" 1411 "lock_owner =" None "lock_state =" 0 "mdb_instance = "MDB_exploit" modification_date = "2006-04-27 10:29:43" name = "chair1" owner = "name_office" publication_level = "Prive" shared_state = "None" site = "Toulouse" source = "LOCAL" status = "Prive" version_comments = "None" version_number = "None" version_owner = "None" version_state = "None" version _tag = "None" />
<Aielier.DM:Attributes.Specific nb_pieds="4" epaisseur="5cm" couleur="rouge" matiere="bois" poids="2kg"/><Aielier.DM:Attributes.Specific nb_foot = "4" thickness = "5cm" color = "red" material = "wood" weight = "2kg" />
</Atelier.DM:FrameworkMetaData></Atelier.DM:FrameworkMetaData>
Extrait de code 3 :Code snippet 3:
<Atelier.DM:EEObjectProxy xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM" publish="0" state="O" type="IN"> <Atelier. DM:OriginalPointer><Workshop.DM:EEObjectProxy xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" publish = "0" state = "O" type = "IN"> <Workshop. DM: OriginalPointer>
<Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/> </Atelier.DM:OriginalPointer> <Atelier.DM:ObjectProxytype="MAISON"> <Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/><Workshop.DM:Pointer external_id = "description for access to physical data" /> </Atelier.DM:OriginalPointer> <Workshop.DM:ObjectProxytype= "HOUSE"> <Workshop.DM:Pointer external_id = "description for access to the physical data "/>
<Atelier.DM:FrameworkMetaData xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"><Workshop.DM:FrameworkMetaData xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM">
< Atelier. DM: Attributes. Generic acl_name="Prive" db_type="MAISON" external_id="descήption pour accès à la donnée physique" id="identifiant" mdbJnstance="MDB_exploit" modification_date="" name="ma maison bleue" source="CMSDK" status="Private"/><Workshop. DM: Attributes. Generic acl_name = "Prive" db_type = "HOUSE" external_id = "descήption for access to physical data" id = "login" mdbJnstance = "MDB_exploit" modification_date = "" name = "my blue home" source = "CMSDK" status = "Private" />
<Atelier.DM:Attributes.Specific etat="en ruine" nb_fenetre="4" nb__pieces="10"/> </Atelier.DM:FrameworkMetaData> </ 'Atelier. DM:ObjectProxy> </Atelier.DM:EEObjectProxy><Workshop.DM:Attributes.Specific state = "ruined" nb_window = "4" nb__pieces = "10" /> </Workshop.DM:FrameworkMetaData> </ 'Workshop. DM: ObjectProxy> </Atelier.DM:EEObjectProxy>
Extrait de code 4 :Code excerpt 4:
<?xml version="1.0" ?><? 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_submitied" type="action" version="0.1 " xmlns:Atelier. DM= "http://www. société. com/egat/Atelier/DM" xmlns:Atelier.MC="http://www.societe.com/egat/Atelier/MC" xmlns:Atelier.PT="http://www.societe.com/egat/Atelier/PT" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 69<Atelier.PT:ProcessTemplate comment≈ "my first treatment" creator = "creator" id = "login" name = "Home Renovation" schemaVersion = "0.1" state = "primary" execution_state = "not_submitied" type = "action" version = "0.1" xmlns: Workshop. DM = "http: // www.company.com/egat/Workshop/DM" xmlns: Workshop.MC = "http://www.societe.com/egat/Atelier/MC" xmlns: Atelier.PT = "http : //www.societe.com/egat/Atelier/PT "xmlns: xsi =" http://www.w3.org/2001/XMLSchema-instance " 69
3232
xsi:schemaLocation="http://www.societe.com/egat/Atelier/PT Atelier.PT.ProcessTemplate.xsd http://www.societe.com/egat/Atelier/DMAtelier.DM.xsd">xsi: schemaLocation = "http://www.societe.com/egat/Atelier/PT Atelier.PT.ProcessTemplate.xsd http://www.societe.com/egat/Atelier/DMAtelier.DM.xsd">
<Atelier.PT:SandboxPointer externaljd≈"" source_name="" source__site="" source_type="" type=""/> <Atelier.PT:lnput categorγ="object" desc="maison en ruine" name="" type="MAISON"><Atelier.PT:SandboxPointer externaljd≈ "" source_name = "" source__site = "" source_type = "" type = "" /> <Workshop.PT:lnput categorγ = "object" desc = "house in ruins" name = "" type = "HOME">
<Atelier.PT:Condition><Atelier.PT:Condition>
<![CDATA[nombre de fenêtres > 3]]> </Atelier.PT:Condition> </Atelier.PT:lnput> <Atelier.PT:Output category="object" desc="maison habitable" name="" type="MAISON"><! [CDATA [number of windows> 3]]> </ Workshop.PT:Condition> </ Workshop.PT:lnput> <Workshop.PT:Output category = "object" desc = "habitable house" name = "" type = "HOME">
</ Atelier. PT:Output></ Workshop. PT: Output>
<Atelier.PT:Parameter desc="paramètres d exécution" name="para_list" type="list"/> <Atelier.PT:Server><Atelier.PT:Parameter desc = "runtime parameters" name = "para_list" type = "list" /> <Workshop.PT:Server>
<Atelier.PT: ValidServer> <![CDATA[mot clé et valeurs décrivant les caractéristiques machines]]><Atelier.PT: ValidServer> <! [CDATA [keyword and values describing the machine characteristics]]>
</Atelier.PT:ValidServer> <Atelier.PT:DefaultServer></ Workshop.PT:ValidServer> <Workshop.PT:DefaultServer>
<![CDATA[mot clé et valeurs caractéristiques de la machine par défaut]]> </ Atelier. PT:DefaultServer> </Atelier.PT:Server><! [CDATA [keyword and characteristic values of the default machine]]> </ Workshop. PT: DefaultServer> </Atelier.PT:Server>
<Atelier.PT:ExecutionContext><Atelier.PT:ExecutionContext>
<Atelier.PT:Classification processType="batch"> <Atelier.PT:Suite name="Suite1"/> <Atelier.PT:Tool name="Tool1 "/> </Atelier.PT:Classification><Workshop.PT:Classification processType = "batch"> <Workshop.PT:Suite name = "Suite1" /> <Workshop.PT:Tool name = "Tool1" /> </Workshop.PT:Classification>
<Atelier.PT:CreationContext class≈"" date="" hostname="" osname≈"" type=""><Atelier.PT:CreationContext class≈ "" date = "" hostname = "" osname≈ "" type = "">
<![CDATA[[configuration] mot clé et valeur décrivant la configuration applicative par défaut<! [CDATA [[configuration] keyword and value describing the default application configuration
[validity] condition de validité de la configuration applicative]]> </Atelier.PT:CreationContext>[validity] condition of validity of the application configuration]]> </Atelier.PT:CreationContext>
</Atelier.PT:ExecutionContext> <Atelier.PT:Data/> <Atelier.PT:Code comment="commentaire sur le code" langage="python" version=""></Atelier.PT:ExecutionContext> <Atelier.PT:Data/> <Atelier.PT:Code comment = "comment on the code" language = "python" version = "">
<![CDATA[Code a executer]]> </Atelier.PT:Code><! [CDATA [Code to execute]]> </ Workshop.PT:Code>
</ Atelier. PT.Process Template></ Workshop. PT.Process Template>
Extrait de code 5 :Code excerpt 5:
<?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="0.1 " xmlns:Atelier.DM="http://www. societe.com/egat/Atelier/DM" xmlns:Atelier. MC= "http://www. société. com/egat/Atelier/MC " xmlns:Atelier.PT="http://www.societe.com/egat/Atelier/PT" xmlns: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"><? xml version = "1.0"?> <Workshop.PT:ProcessTemplate comment = "my first treatment" creator = "creator" id = "login" name- "Home Renovation" schemaVersion = "0.1" state = "primary" execution_state = "not_submitted" type = "action" version = "0.1" xmlns: Workshop.DM = "http: // www. societe.com/egat/Atelier/DM "xmlns: Workshop MC =" http: // www. society. com / egat / Atelier / MC "xmlns: Atelier.PT =" http://www.societe.com/egat/Atelier/PT "xmlns: 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 external_id="" source_name=""/> <Atelier.PT:lnput category="object" desc="maison en ruine" name="Donnée_805" type="MAISON"><Atelier.PT:SandboxPointer external_id = "" source_name = "" /> <Workshop.PT:lnput category = "object" desc = "ruined house" name = "Data_805" type = "HOUSE">
< Atelier. PT:Condition><Workshop. PT: Condition>
<![CDATA[ nombre de fenêtres > 3]]> </Atelier.PT:Condiiion> <Atelier.DM:EEObjectProxy publish≈'O" state≈'O" type="IN"><! [CDATA [number of windows> 3]]> </ Workshop.PT:Condiiion> <Workshop.DM:EEObjectProxy publish≈'O "state≈'O" type = "IN">
<Atelier. DM:OήginalPointer> <Atelier.DM:Pointer externaljd="description pour accès à la donnée physique"/><Workshop. DM: OήginalPointer> <Atelier.DM:Pointer externaljd = "description for access to physical data"/>
</Atelier.DM:OήginalPointer> <Atelier.DM:ObjectProxy type="MAISθN"> <Atelier.DM:Pointer externaljd="description pour accès à la donnée physique"/></Atelier.DM:OήginalPointer> <Workshop.DM:ObjectProxy type = "MAISθN"> <Workshop.DM:Pointer externaljd = "description for access to physical data" />
<Atelier. DM:FrameworkMetaData xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"><Workshop. DM: FrameworkMetaData xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM">
<Atelier.DM:Attributes. 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="Private"/><Atelier.DM:Attributes. Generic acl_name = "Prive" db_type = "HOUSE" external_id = "description for access to physical data" id = "login" mdb_instance = "MDB_exploit" modification_date = "" name = "my blue home" source = "CMSDK" status = "Private" />
<Atelier.DM:Attributes.Speçific etat="en ruine" nb_fenetre="4" nb_pieces="10" /> <Atelier.DM:Links><Workshop.DM:Attributes.Speçific state = "ruined" nb_window = "4" nb_pieces = "10" /> <Workshop.DM:Links>
<Atelier.DM:Link comments="description 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" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/> </Atelier.DM:Links><Workshop.DM:Link comments = "description of the link" date≈ "" id__FO_1 = "identifier given 805" id_FO_2 = "identifier IPT 815" mdb_instance = "MDB_exploit" owner = "to39751" subtype = "subtype of link" type = "HISTORY" xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" /> </Atelier.DM:Links>
</Atelier.DM:FrameworkMetaData> </Atelier. DM:ObjectProxy> </Atelier. DM:EEObjectProxy> </Atelier.PT:lnput> <Atelier.PT:Output category="object" desc="maison habitable" name="Donnée_810" type="MAISON"></ Workshop.DM:FrameworkMetaData> </ Workshop. DM: ObjectProxy> </ Workshop. DM: EEObjectProxy> </Atelier.PT:lnput> <Workshop.PT:Output category = "object" desc = "habitable house" name = "Data_810" type = "HOUSE">
<Atelier.DM:EEObjectProxy publish="1 " state="1 " type="OUT"> <Atelier. DM:SandboxPointer><Workshop.DM:EEObjectProxy publish = "1" state = "1" type = "OUT"> <Workshop. DM: SandboxPointer>
<Atelier.DM:Pointer external_id="description pour accéder au bac a sable" sourcejname≈"" source_site="" source_type="" type=""/> </ Atelier. DM:SandboxPointer> <Atelier.DM:FinalPointer><Workshop.DM:Pointer external_id = "description to access the sandbox" sourcejname≈ "" source_site = "" source_type = "" type = "" /> </ Workshop. DM: SandboxPointer> <Workshop.DM:FinalPointer>
<Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/> </Atelier.DM:FinalPointer><Atelier.DM:Pointer external_id = "description for access to the physical data" /> </Atelier.DM:FinalPointer>
<Atelier.DM:ObjectProxy type="MAISON"><Workshop.DM:ObjectProxy type = "HOUSE">
<Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/><Atelier.DM:Pointer external_id = "description for access to the physical data" />
<Atelier. DM:FrameworkMetaData xmlns:Atelier. DM= "http://www. société. com/egat/Atelier/DM"><Workshop. DM: FrameworkMetaData xmlns: Workshop. DM = "http: // www.company.Com / egat / Workshop / DM">
<Atelier.DM:Attributes. Generic acl_name="Prive" db_type="MAISON" externaljd="descήption pour accès à la donnée physique" id="identifiant" mdbJnstance="MDB_exploit" modification_date="" name="ma maison bleue" source="CMSDK" status="Private"/> <Atelier.DM:Attributes.Specific eiat="habitable" nb_fenetre="6" nb_pieces="12"/><Atelier.DM:Attributes. Generic acl_name = "Prive" db_type = "HOUSE" externaljd = "descήption for access to the physical data" id = "identifier" mdbJnstance = "MDB_exploit" modification_date = "" name = "my blue house" source = "CMSDK" status = "Private" /> <Workshop.DM:Attributes.Specific eiat = "livable" nb_window = "6" nb_pieces = "12" />
<Atelier.DM:Links><Atelier.DM:Links>
<Atelier.DM:Link comments="descήption du lien" date="" id_FO_1 ^'identifiant IPT 815" id_FO_2="identifiant Donnée 810" mdbJnstance="MDB_exploit" owner="to39751" subtype="sous type de lien" type≈ΗISTORY" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/><Workshop.DM:Link comments = "link deletion" date = "" id_FO_1 ^ 'IPT identifier 815 "id_FO_2 =" identifier Data 810 "mdbJnstance =" MDB_exploit "owner =" to39751 "subtype =" subtype of link "type ≈ΗISTORY "xmlns: Workshop.DM =" http://www.societe.com/egat/Atelier/DM "/>
</Atelier. DM:ϋnks> </Atelier.DM:FrameworkMetaData> </ Atelier. DM:Ob]ectProxy> </Atelier. DM:EEObjectProxy></ Workshop. DM: ϋnks> </ Workshop.DM:FrameworkMetaData> </ Workshop. DM: Ob] ectProxy> </ Workshop. DM: EEObjectProxy>
</Atelier.PT:Output></Atelier.PT:Output>
<Atelier.PT:Parameter desc- 'parametres d exécution" name="parajist" type="list"> <Atelier.PT:ParameterValue> <![CDATA[ paramètre d exécution ]]> </Aielier.PT:ParameterValue> </Atelier.PT:Parameter> <Atelier.PT:Server> <Atelier.PT:ValidServer><Atelier.PT:Parameter desc- "execution parameters" name = "parajist" type = "list"><Atelier.PT:ParameterValue> <! [CDATA [runtime parameter]]></Aielier.PT:ParameterValue></Atelier.PT:Parameter><Workshop.PT:Server><Workshop.PT:ValidServer>
<![CDATA[ mot clé et valeurs décrivant les caractéristiques machines ]]> </Atelier.PT:ValidServer> <Atelier.PT:DefaultServer><! [CDATA [keyword and values describing machine characteristics]]> </Atelier.PT:ValidServer> <Atelier.PT:DefaultServer>
<![CDATA[ mot clé et valeurs caractéristiques de la machine par défaut ]]> </Atelier.PT:DefaultServer><! [CDATA [keyword and characteristic values of the default machine]]> </Atelier.PT:DefaultServer>
</Atelier.PT:Server> <Atelier.PT:ExecutionContext></Atelier.PT:Server> <Workshop.PT:ExecutionContext>
<Atelier.PT:Classification processType="batch"><Atelier.PT:Classification processType = "batch">
<Atelier.PT:Suite name="Suite1 " /> <Atelier.PT:Tool name≈"Tool1 " /><Atelier.PT:Suite name = "Suite1" /> <Workshop.PT:Tool name≈ "Tool1" />
</Atelier.PT:Classification> <Atelier.PT:CreationContext class="" date="" hostname="" osname- '" type=""></Atelier.PT:Classification> <Atelier.PT:CreationContext class = "" date = "" hostname = "" osname- '"type =" ">
<![CDATA[[configuration] mot clé et valeur décrivant la configuration applicative par défaut [validity] condition de validité de la configuration applicative ]]><! [CDATA [[configuration] keyword and value describing the default application configuration [validity] condition of validity of the application configuration]]>
</Atelier.PT:CreationContext> <Atelier.PT:RunContext class="" date="" hostname="" osname="" type-""></Atelier.PT:CreationContext> <Atelier.PT:RunContext class = "" date = "" hostname = "" osname = "" type - "">
<![CDATA[[configuration] mot clé et valeur décrivant la configuration applicative utilisée]]> </Atelier.PT:RunContext><! [CDATA [[configuration] keyword and value describing the application configuration used]]> </Atelier.PT:RunContext>
<Atelier.PT:RunServer><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="0"> <![CDATA[ Rapport d exécution ]]><! [CDATA [keyword and value describing the runtime machine used]]> </Atelier.PT:RunServer> <Workshop.PT:ExecutionReport return_code = "0"> <! [CDATA [Runtime Report]]>
</Atelier.PT:ExecutionReport> </Atelier.PT:ExecutionContext> <Atelier.PT:Data /></Atelier.PT:ExecutionReport> </Atelier.PT:ExecutionContext> <Workshop.PT:Data />
<Atelier.PT:Code comment="commentaire sur le code" langage="python" version=""> <![CDA TAl Code a exécuter ]]><Workshop.PT:Code comment = "comment on the code" language = "python" version = ""> <! [CDA TAl Code to execute]]>
</Atelier.PT:Code></Atelier.PT:Code>
</Atelier.PT:ProcessTemplate></Atelier.PT:ProcessTemplate>
Extrait de code 6 : <Atelier.DM:EEOhjectProxy xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM" publish≈'O" state="O" type="IN"> <Atelier. DM:OriginalPointer>Code snippet 6: <Workshop.DM:EEOhjectProxy xmlns: Workshop.DM = "http://www.society.com/egat/Atelier/DM" publish≈'O "state =" O "type =" IN "> <Workshop DM: OriginalPointer>
<Atelier.DM:Pointer externaljd="description pour accès à la donnée physique" source_name="" source_site="" source_type="" type=""/> </ Atelier. DM:OήginalPointer><Atelier.DM:Pointer externaljd = "description for access to physical data" source_name = "" source_site = "" source_type = "" type = "" /> </ Workshop. DM: OήginalPointer>
<Atelier.DM:ObjectProxy type≈"MAISON"><Workshop.DM:ObjectProxy type≈ "HOME">
<Atelier.DM:PointerexternalJd="description pour accès à la donnée physique"/> <Atelier. DM:FrameworkMetaData xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"> <Atelier.DM:Attributes.Generic acl_name="Prive" db_type="MAISON" exiernaljd="description pour accès à la donnée physique" id="identifιant" mdbJnstance="MDB_exploit" modification_date="" name="ma maison bleue" source="CMSDK" status="Pήvate"/><Workshop.DM:PointerexternalJd= "description for access to physical data" /> <Workshop. DM: FrameworkMetaData xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM"> <Workshop.DM:Attributes.Generic acl_name = "Prive" db_type = "HOME" exiernaljd = "description for access to the physical data "id =" identifying "mdbJnstance =" MDB_exploit "modification_date =" "name =" my blue house "source =" CMSDK "status =" Pήvate "/>
<Atelier.DM:Attributes.Specific etat="en ruine" nbjenetre≈"4" nb_pieces="10"/> <Atelier.DM:Links> FR2009/000569<Workshop.DM:Attributes.Specific state = "ruined" nbjenetre≈ "4" nb_pieces = "10"/><Workshop.DM:Links> FR2009 / 000569
3535
<Atelier.DM:Link comments="descήption du lien" date≈"" id_F0_1="identifiant Donnée 805" id_F0__2="identifiant IPT 815" mdb_instanœ="MDB_exploit" owner="to39751 " subtype="sous type de lien" type="HISTORY" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/><Workshop.DM:Link comments = "link deletion" date≈ "" id_F0_1 = "identifier Data 805" id_F0__2 = "IPT identifier 815" mdb_instanœ = "MDB_exploit" owner = "to39751" subtype = "subtype of link" type = "HISTORY" xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" />
</Atelier.DM:Links> </Atelier.DM:FrameworkMetaData> </Atelier. DM:ObjectProxy></Atelier.DM:Links> </ Workshop.DM:FrameworkMetaData> </ Workshop. DM: ObjectProxy>
</ Atelier. DM:EEObjectProxy></ Workshop. DM: EEObjectProxy>
Extrait de code 7 :Code snippet 7:
<Atelier. DM:EEObjectProxy xmlns:Atelier. DM= "http://www. société. com/egat/Atelier/DM" publish="1 " state="1 " type="OUT"> <Atelier. DM:SandboxPointer><Workshop. DM: EEObjectProxy xmlns: Workshop. DM = "http: // www.company.com/egat/Workshop/DM" publish = "1" state = "1" type = "OUT"> <Workshop. DM: SandboxPointer>
<Atelier.DM:Pointer extemal_id="description pour accès au bac a sable"/> </Atelier.DM:SandboxPointer><Workshop.DM:Pointer extemal_id = "description for access to the sandbox" /> </Workshop.DM:SandboxPointer>
<Atelier.DM;FinalPointer><Atelier.DM; FinalPointer>
<Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/> </ Atelier. DM:FinalPointer> <Atelier.DM:ObjectProxytype="MAISON"> <Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/><Workshop.DM:Pointer external_id = "description for access to physical data" /> </ Workshop. DM: FinalPointer> <Workshop.DM:ObjectProxytype= "HOME"> <Workshop.DM:Pointer external_id = "description for access to physical data" />
<Atelier. DM:FrameworkMetaData xmlns:Atelier.DM="http://www.societe.com/ega1/Atelier/DM"><Workshop. DM: FrameworkMetaData xmlns: Workshop.DM = "http://www.societe.com/ega1/Atelier/DM">
<Atelier.DM:Attributes. 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="Private"/><Atelier.DM:Attributes. Generic acl_name = "Prive" db_type = "HOUSE" external_id = "description for access to physical data" id = "login" mdb_instance = "MDB_exploit" edit_date = : "" name = "my blue home" source = "CMSDK" status = "Private"/>
<Atelier.DM:Attributes.Specific etat="habitable" nb_fenetre="6" nb_pieces="12" /> <Atelier.DM:Links><Workshop.DM:Attributes.Specific state = "livable" nb_window = "6" nb_pieces = "12" /> <Workshop.DM:Links>
<Atelier.DM:Link comments="description du lien" date="" id_FO_1 ="identifiant IPT 815" id_FO_2="identifiant Donnée 810" mdbJnstance="MDB_exploit" owner="to39751" subtype="sous type de lien" type="HI STORY" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/><Workshop.DM:Link comments = "description of the link" date = "" id_FO_1 = "IPT identifier 815" id_FO_2 = "identifier Data 810" mdbJnstance = "MDB_exploit" owner = "to39751" subtype = "subtype of link" type = "HI STORY" xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" />
</ Atelier. DM:Links> </Atelier.DM:FrameworkMetaData> </Atelier.DM:ObjectProxy></ Workshop. DM: Links> </Atelier.DM:FrameworkMetaData> </Atelier.DM:ObjectProxy>
</ Atelier. DM:EEObjectProxy></ Workshop. DM: EEObjectProxy>
Extrait de code 8 :Code snippet 8:
<Atelier.DM:EEObjectProxy xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM" publish="1 " state="1 " type="OUT"> <Atelier. DM:SandboxPointer><Workshop.DM:EEObjectProxy xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" publish = "1" state = "1" type = "OUT"> <Workshop. DM: SandboxPointer>
<Atelier.DM:Pointer external_id="description pour accès au bac à sable" source_name="" source_site="" sourcejype≈"" type=""/><Workshop.DM:Pointer external_id = "description for sandbox access" source_name = "" source_site = "" sourcejype≈ "" type = "">
</ Atelier. DM:SandboxPointer> <Atelier.DM:FinalPointer></ Workshop. DM: SandboxPointer> <Workshop.DM:FinalPointer>
<Atelier.DM:Pointer extemal_id="description pour accès à la donnée physique"/> </ Atelier. DM:FinalPointer> <Atelier.DM:ObjectProxy type="MAISON"><Atelier.DM:Pointer extemal_id = "description for access to physical data" /> </ Workshop. DM: FinalPointer> <Workshop.DM:ObjectProxy type = "HOME">
<Atelier.DM:Pointer external_id="description pour accès à la donnée physique"/> <Atelier.DM:FrameworkMetaData xmlns:Atelier.DM="http://www. societe.com/egat/Atelier/DM"><Atelier.DM:Pointer external_id = "description for access to the physical data" /> <Atelier.DM:FrameworkMetaData xmlns: Atelier.DM = "http: // www. Societe.com/egat/Atelier/DM">
<Atelier.DM:Attributes. Generic acl_name="Prive" db_type="MAISON" externaljd="description pour accès à la donnée physique" id="identifiant" mdb_instance="MDB_exploit" modification_date="" name="ma maison bleue" source="CMSDK" status="Private"/><Atelier.DM:Attributes. Generic acl_name = "Prive" db_type = "HOUSE" externaljd = "description for access to physical data" id = "login" mdb_instance = "MDB_exploit" modification_date = "" name = "my blue house" source = "CMSDK" status = "Private"/>
<Atelier.DM:Attributes.Specific etat="habitable" nb_fenetre="6" nb_pieces="12" /> <Atelier.DM:Links> <Atelier.DM:Link comments="deschption du lien" date≈"" id_F0_1 ="identifiant IPT<Workshop.DM:Attributes.Specific state = "livable" nb_window = "6" nb_pieces = "12" /> <Workshop.DM:Links> <Workshop.DM:Link comments = "deschption of the link" date≈ "" id_F0_1 = "IPT identifier
815" id_F0_2="identifiant Donnée 810" mdb_instanœ="MDB_exploit" owner="to39751 " subtype="sous type de lien" iype="HISTORY" xmlns:Aielier.DM="http://www.societe.com/egat/Atelier/DM"/>815 "id_F0_2 =" identifier Data 810 "mdb_instanœ =" MDB_exploit "owner =" to39751 "subtype =" subtype of link "iype =" HISTORY "xmlns: Aielier.DM =" http://www.societe.com/egat / Workshop / DM "/>
<Atelier.DM:ϋnk comments="description du lien" date≈"" idJF0_1="identifιant Donnée 810" id_F0_2≈"identifiant IPT 830" mdb_instance="MDB_exploit" owner="to39751" subtype="sous type de lien" type="HISTORY" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/><Workshop.DM:ϋnk comments = "link description" date≈ "" idJF0_1 = "identifier Data 810" id_F0_2≈ "IPT ID 830" mdb_instance = "MDB_exploit" owner = "to39751" subtype = "link type" type = "HISTORY" xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" />
</ Atelier. DM:Links> </Atelier.DM:FrameworkMetaData> </Atelier.DM:ObjectProxy></ Workshop. DM: Links> </Atelier.DM:FrameworkMetaData> </Atelier.DM:ObjectProxy>
</ Atelier. DM:EEObjectProxy></ Workshop. DM: EEObjectProxy>
Extrait de code 9 :Code snippet 9:
<Ateiier.DM:EEObjectProxy xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM" publish="1 " state="1 " type="θυτn> <Atelier. DM:SandboxPointer><Ateiier.DM:EEObjectProxy xmlns: Workshop.DM = "http://www.societe.com/egat/Atelier/DM" publish = "1" state = "1" type = "θυτ n ><Workshop.SandboxPointer>
<Atelier.DM:Pointer externaljd="description pour accès au bac à sable"/> </Atelier.DM:SandboxPointer> <Atelier. DM:FinalPointer> <Atelier.DM:Pointer external_id="descπption pour accès à la donnée physique"/><Workshop.DM:Pointer externaljd = "description for sandbox access" /> </Workshop.DM:SandboxPointer> <Workshop. DM: FinalPointer> <Workshop.DM:Pointer external_id = "descπption for access to the physical data" />
</Atelier.DM:FinalPointer> <Atelier.DM:ObjectProxytype- 'MAISON"></Atelier.DM:FinalPointer> <Workshop.DM:ObjectProxytype- 'HOME'>
<Atelier.DM:Pointerexternal_id="description pour accès à la donnée physique"/> <Atelier.DM:FrameworkMetaData xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"><Atelier.DM:Pointerexternal_id= "description for access to the physical data" /> <Atelier.DM:FrameworkMetaData xmlns: Atelier.DM = "http://www.societe.com/egat/Atelier/DM">
<Atelier.DM:Attήbutes.Generic acl_name="Prive" dbJype="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" staius="Private"/> <Atelier.DM:Attributes.Specific etai≈"habite" nb_fenetre="6" nb_pieces="12"/><Atelier.DM:Attήbutes.Generic acl_name = "Prive" dbJype = "HOUSE" external_id = "description for access to physical data" id = "login" mdb_instance = : "MDB_exploit" modification_date = "" name = "my blue house "source =" CMSDK "staius =" Private "/><Workshop.DM:Attributes.Specificetai≈" lives "nb_window =" 6 "nb_pieces =" 12 "/>
<Atelier.DM:Links><Atelier.DM:Links>
<Atelier.DM:Link comments="description du lien" date="" idJFO_1 ^'identifiant IPT 830" id_FO_2="identifiant Donnée 835" mdb_instance="MDB_exploit" owner="to39751" subiype="sous type de lien" type≈ΗISTORY" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/><Workshop.DM:Link comments = "link description" date = "" idJFO_1 ^ 'IPT ID 830 "id_FO_2 =" identifier Data 835 "mdb_instance =" MDB_exploit "owner =" to39751 "sufferedype =" subtype of link "type ≈ΗISTORY "xmlns: Workshop.DM =" http://www.societe.com/egat/Atelier/DM "/>
<Atelier.DM:Link comments="description du lien" date="" id_F0_1="identifiant IPT 830" id_FO_2="identifiant Donnée 835" mdb_instance≈"MDB_exploit" owner="to39751" subtype="sous type de lien" type≈ΗISTORY" xmlns:Atelier.DM="http://www.societe.com/egat/Atelier/DM"/> <Atelier.DM:Link comments="description du lien" date="" id_FO_1="identifiant IPT<Workshop.DM:Link comments = "link description" date = "" id_F0_1 = "IPT ID 830" id_FO_2 = "identifier Data 835" mdb_instance≈ "MDB_exploit" owner = "to39751" subtype = "link type" type ≈ΗISTORY "xmlns: Workshop.DM =" http://www.societe.com/egat/Atelier/DM "/> <Workshop.DM:Link comments =" link description "date =" "id_FO_1 =" IPT ID
830" id_FO_2="identifiant Donnée 835" mdb_instance="MDB_exploit" owner="to39751" subtype≈"sous type de lien" type="HISTORY" xmlns. Atelier.DM="http://www. société, com/egaϋ Αielier/DM" />830 "id_FO_2 =" identifier Data 835 "mdb_instance =" MDB_exploit "owner =" to39751 "subtype≈" under link type "type =" HISTORY "xmlns. Workshop.DM =" http: // www. company, com / egaϋ Αielier / DM "/>
</Atelier. DM:Links> </ Atelier. DM:FrameworkMetaData></ Workshop. DM: Links> </ Workshop. DM: FrameworkMetaData>
</ Atelier. DM:ObjectProxy></ Workshop. DM: ObjectProxy>
</Atelier.DM:EEObjectProxy> </Atelier.DM:EEObjectProxy>
Table 2 .Table 2.
ID1 5 8 3 5 ...ID1 5 8 3 5 ...
ID2 8 5 1 1 ... ... ... ... ID2 8 5 1 1 ... ... ... ...

Claims

0056938REVENDICATIONS 0056938REVENDICATIONS
1. Procédé de gestion de données dans un atelier orienté service collaboratif mis en œuvre 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 et des objets associés à des données représentatives de processus et en ce que le procédé comprend les étapes suivantes,A data management method in a collaborative service-oriented workshop implemented in a computer system, the method being characterized in that said collaborative service oriented workshop is adapted to process objects associated with data representative of real data and objects. associated with process representative data and that the method comprises the following steps,
- sélection (230) d'au moins un premier objet comprenant au moins un lien, appelé premier lien, vers un second objet, distinct dudit premier objet ;selecting (230) at least one first object comprising at least one link, called first link, to a second object, distinct from said first object;
- accès (240, 245) à au moins un lien vers un troisième objet, appelé second lien, ledit second lien étant compris dans l'un desdits premier et second objets, ledit troisième objet étant distinct desdits premier et second objets ; et,- access (240, 245) to at least one link to a third object, called second link, said second link being included in one of said first and second objects, said third object being distinct from said first and second objects; and,
- établissement (245, 255) d'un lien entre les données associées audit troisième objet et l'autre desdits premier et deuxième objets.establishing (245, 255) a link between the data associated with said third object and the other of said first and second objects.
2. Procédé selon la revendication 1 selon lequel les données associées audit premier objet sont représentatives d'un processus.The method of claim 1 wherein the data associated with said first object is representative of a process.
3. Procédé selon la revendication 2 selon lequel les données associées audit second objet sont au moins partiellement obtenues à partir dudit processus ou selon lequel ledit processus est appliqué sur au moins une partie desdites données associées audit second objet. 3. The method of claim 2 wherein the data associated with said second object are at least partially obtained from said process or wherein said process is applied to at least a portion of said data associated with said second object.
4. Procédé selon l'une quelconque des revendications précédentes comprenant en outre une étape de construction (215) d'un arbre de données selon lesdits premier et second liens.The method of any one of the preceding claims further comprising a step of constructing (215) a data tree according to said first and second links.
5. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que lesdites étapes d'accès à au moins un lien et d'établissement d'un lien sont répétées de façon récursive pour établir un lien entre des données associées à au moins deux objets distincts. 5. Method according to any one of the preceding claims, characterized in that said steps of accessing at least one link and establishing a link are recursively repeated to establish a link between data associated with at least two links. separate objects.
6. Procédé selon l'une quelconque des revendications précédentes selon lequel au moins l'un desdits liens contenu dans l'un desdits objets est mémorisé dans une table de liens.6. Method according to any one of the preceding claims, wherein at least one of said links contained in one of said objects is stored in a link table.
7. Procédé selon l'une quelconque des revendications précédentes selon lequel ledit processus fait appel à au moins une fonction extérieure audit atelier orienté service collaboratif.The method of any one of the preceding claims wherein said process utilizes at least one function external to said collaborative service-oriented shop.
8. Procédé selon l'une quelconque des revendications précédentes selon lequel lesdits objets sont mémorisés dans une base de données centralisée (125). The method of any of the preceding claims wherein said objects are stored in a centralized database (125).
9. Procédé selon l'une quelconque des revendications précédentes selon lequel lesdites données associées auxdits objets sont mémorisées dans des dispositifs distants (130).The method of any of the preceding claims wherein said data associated with said objects is stored in remote devices (130).
10. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédentes. 10. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of the preceding claims.
EP09757688A 2008-05-14 2009-05-14 Method for the traceability of data in a collaborative service-oriented workshop Withdrawn EP2297682A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0853119A FR2931275A1 (en) 2008-05-14 2008-05-14 METHOD FOR TRACEABILITY OF DATA IN WORKSHOP ORIENTED COLLABORATIVE SERVICE
PCT/FR2009/000569 WO2009147312A1 (en) 2008-05-14 2009-05-14 Method for the traceability of data in a collaborative service-oriented workshop

Publications (1)

Publication Number Publication Date
EP2297682A1 true EP2297682A1 (en) 2011-03-23

Family

ID=40174817

Family Applications (1)

Application Number Title Priority Date Filing Date
EP09757688A Withdrawn EP2297682A1 (en) 2008-05-14 2009-05-14 Method for the traceability of data in a collaborative service-oriented workshop

Country Status (5)

Country Link
US (1) US20110066656A1 (en)
EP (1) EP2297682A1 (en)
JP (1) JP5524188B2 (en)
FR (1) FR2931275A1 (en)
WO (1) WO2009147312A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
JPH08286962A (en) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> Processing system and method for scheduling of object activation
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
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
US6067477A (en) * 1998-01-15 2000-05-23 Eutech Cybernetics Pte Ltd. Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US8032635B2 (en) * 2005-07-29 2011-10-04 Sap Ag Grid processing in a trading network
US20070174697A1 (en) * 2006-01-19 2007-07-26 Nokia Corporation Generic, WSRF-compliant checkpointing for WS-Resources
US7925676B2 (en) * 2006-01-27 2011-04-12 Google Inc. Data object visualization using maps
US8352516B2 (en) * 2006-03-27 2013-01-08 Sap Aktiengeselleschaft Multi-application object mapping tool
US20090094074A1 (en) * 2007-10-04 2009-04-09 Nikovski Daniel N Method for Constructing Business Process Models from Task Execution Traces
US7886021B2 (en) * 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
RALF WESTPHAL: "Using XML for Object Persistence", XML.COM, 8 September 1999 (1999-09-08), pages 1 - 23, XP055271289, Retrieved from the Internet <URL:http://www.xml.com/lpt/a/173> [retrieved on 20160509] *
See also references of WO2009147312A1 *
ZHUOAN JIAO ET AL: "Databases, Workflows and the Grid in a Service Oriented Environment", 22 September 2004 (2004-09-22), pages 1 - 8, XP055270924, Retrieved from the Internet <URL:http://eprints.soton.ac.uk/23518/1/jiao_04.pdf> [retrieved on 20160506] *

Also Published As

Publication number Publication date
JP2011521340A (en) 2011-07-21
US20110066656A1 (en) 2011-03-17
JP5524188B2 (en) 2014-06-18
WO2009147312A1 (en) 2009-12-10
FR2931275A1 (en) 2009-11-20

Similar Documents

Publication Publication Date Title
Casters et al. Pentaho Kettle solutions: building open source ETL solutions with Pentaho Data Integration
US8972872B2 (en) Building computing applications based upon metadata
US8060864B1 (en) System and method for live software object interaction
US7580946B2 (en) Smart integration engine and metadata-oriented architecture for automatic EII and business integration
EP2297681A1 (en) Method for data management in a collaborative service-oriented workshop
JP2004362595A (en) Database object script creation method and system
US20150161235A1 (en) Database content publisher
WO2009147311A1 (en) Method for process management in a collaborative service-oriented workshop
Diamantini et al. A virtual mart for knowledge discovery in databases
Neves et al. Model for semantic base structuring of digital data to support agricultural management
EP2297682A1 (en) Method for the traceability of data in a collaborative service-oriented workshop
Soni et al. Spring: Developing Java Applications for the Enterprise
Lachev Applied Microsoft Analysis Services 2005 and Microsoft Business Intelligence Platform
Rozinat et al. Workflow simulation for operational decision support using yawl and prom
Languedoc Build iOS database apps with Swift and SQLite
Ottinger et al. Spring Boot
Pisano Plugin-based workflow integration for QHAna
Peng Kylo Data Lakes Configuration deployed in Public Cloud environments in Single Node Mode
Mitchell et al. SQL Server Integration Services Design Patterns
Hermes et al. Data Access with SQLite and Data Binding
Atkinson et al. Towards a client-oriented model of types and states in service-oriented development
Gannouni et al. Data integration using service composition in data service middleware
Harrison et al. Languages and programming interfaces
Orumbayev Decentralized Web-based Data Storage for LinkedPipes Applications using Solid
WO2011128311A2 (en) Method for recording data, device, and corresponding computer program product

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20101118

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA RS

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: AIRBUS OPERATIONS

Owner name: AIRBUS OPERATIONS LTD

17Q First examination report despatched

Effective date: 20160520

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20161201