Brevet FR2897177A1 — publié le 20070810

La présente invention se rapporte à la création et à la visualisation d'une séquence d'exécution d'un ensemble d'opérations d'au moins un service accessible sur la Toile (ou Web) et que l'on appellera ci-après service Web. Depuis quelques années les services Web sont de plus en plus répandus. Leur utilisation s'inscrit dans le contexte de la distribution des ressources du réseau Internet et plus particulièrement du Web. En effet, les services Web fournissent un moyen facile de proposer une application fonctionnant en réseau. Chaque service Web est décrit dans un fichier au format WSDL ( Web Service Definition Language , c'est-à-dire un langage de définition des services Web), qui définit un point d'accès au service, un ensemble de messages échangeables entre un dispositif client et un dispositif serveur et aussi le format de ces messages. Grâce aux services Web, des architectures distinctes peuvent communiquer entre elles. Ainsi, au lieu de chercher à s'adapter l'une à l'autre, il suffit à ces architectures distinctes de s'adapter à l'interface standard du service Web. Elles disposent alors d'un moyen de communication commun permettant de communiquer entre elles. Si l'utilisation des services Web est intéressante en elle-même, la possibilité de composer ces services l'est davantage encore. La composition de services Web consiste à utiliser le résultat d'une première opération comme opérande, appelé aussi argument d'entrée, d'une seconde opération. L'utilisation de ce résultat peut être seulement partielle. Par exemple, dans le cas d'un service Web qui permet de réserver un billet d'avion et un autre une chambre d'hôtel, on récupère d'abord la liste des horaires et ensuite on peut utiliser cette liste pour vérifier la disponibilité d'une chambre. Si l'on trouve un vol et une chambre qui conviennent, alors on peut réserver. La composition de services Web est un domaine qui a donné lieu à de nombreuses recherches, différents axes ayant été étudiés. On peut notamment mentionner l'approche consistant à créer un langage permettant de composer les services Web, ou plus généralement d'établir des interactions entre services Web. Cette approche a donné naissance au langage BPEL ( Business Process Execution Language , pour langage d'exécution de procédé d'affaires économiques). À l'heure actuelle, bien que la composition de services Web soit un enjeu important, il n'existe pas d'application offrant cette fonctionnalité de manière intuitive. La plupart des applications proposant de tester des services Web sont des applications destinées aux développeurs, de manière à ce qu'ils puissent tester le service qu'ils viennent de concevoir. En pratique, une seule opération est testée et il n'est pas possible de créer une séquence d'opérations. Au-delà de la composition, d'autres opérations sont utiles telle que l'itération par exemple. Itérer un service signifie invoquer plusieurs fois ce service avec différents jeux d'opérande (arguments d'entrée). Cette fonctionnalité n'est pas non plus offerte par les applications existantes. Enfin, afin d'améliorer la diversité des opérations exécutables, un ensemble d'opérateurs agissant comme des filtres ou des combinateurs est lui aussi intéressant. Parmi les applications existantes, on connaît déjà l'application dénommée WebServiceTester de la société américaine Optimyz. Cette application supporte les fichiers au format BPEL. Elle supporte donc la composition. Cependant, l'application WebServiceTester ne permet pas de composer soi-même une séquence d'opérations, l'application WebServiceTester agissant seulement comme un interpréteur BPEL. Les mécanismes en jeu sont donc bien différents de ceux mis en oeuvre lors d'une composition intuitive de services Web. On connaît aussi l'application dénommée Strikelron OnDemand Web Services for Microsoft Excel de la société américaine Strikelron. Cette application est un médiateur de services Web compatible avec le tableur Excel (Marque déposée). Une fois installé, il est possible d'intégrer les arguments et les résultats d'opération d'un service Web particulier dans un document au format du tableur Excel. Cette possibilité est intéressante puisqu'elle permet d'utiliser toutes les fonctionnalités du tableur Excel. Il est notamment possible de faire correspondre la case d'un argument, qu'on peut également appeler opérande, d'une seconde opération avec la case d'un résultat d'une première opération. Une composition est alors réalisée. Cependant, cette composition n'est pas totalement satisfaisante en termes d'intuitivité puisqu'elle requiert l'usage du tableur Excel et l'appariement manuel entre arguments et résultats. De plus, l'itération n'est pas supportée et les possibilités de l'application de Strikelron s'en trouvent fortement diminuées. En fait cette application vise un module d'accès à des services Web pour tableur Excel dont l'objectif est de tirer parti d'Excel. Elle n'a pas pour objet une application entièrement tournée vers l'exécution d'opérations telles que la composition ou l'itération de services Web. Ainsi, cette application ne comprend pas de mécanisme pour faire le lien entre un argument d'une étape courante et les résultats des étapes précédentes. Aujourd'hui, si un utilisateur souhaite composer des opérations, il doit lui-même écrire du code BPEL (WebServiceTester) ou entrer une formule Excel (Strikelkon). Il en résulte une mise en oeuvre difficile, complexe, onéreuse et réservée aux spécialistes. De plus, aucune application connue ne propose une aide à la composition via une suggestion d'argument(s) pertinent(s). La présente invention remédie à ces inconvénients. Elle porte sur un procédé de création à l'aide d'une interface graphique utilisateur, d'une séquence d'exécution d'un ensemble d'opérations. Selon une définition générale de l'invention, le procédé comporte les étapes suivantes : -affichage d'au moins une liste d'opérations exécutables pour au moins un service choisi ; - génération de l'ensemble d'opérations, par sélection d'opérations de la (les) liste(s) affichée(s), et affichage de cet ensemble d'opérations dans un ordre choisi correspondant à un ordre ultérieur d'exécution des opérations ; et pour au moins une opération à exécuter dudit ensemble d'opérations : - affichage d'au moins un champ d'introduction d'opérande, l'introduction d'opérande étant liée à au moins un résultat d'exécution d'une opération antérieure de l'ensemble d'opérations. Ainsi grâce au procédé de création conforme à l'invention, un utilisateur non spécialiste de la programmation peut afficher et introduire intuitivement et facilement des opérandes d'un ensemble d'opérations pour composer des opérations d'au moins un service choisi. Selon une réalisation, le procédé comporte en outre une étape de création d'objets graphiques correspondant chacun à une opération de l'ensemble d'opérations généré et dont la sélection par l'utilisateur commande l'affichage d'une page de visualisation correspondante. Selon une autre caractéristique, le procédé comporte en outre, pour une page de visualisation d'une opération courante, les étapes suivantes : - affichage d'au moins un résultat de l'exécution de l'opération courante ; et -affichage d'au moins un champ d'introduction d'opérande pour l'opération suivante. Avantageusement, l'utilisateur peut ainsi visualiser sur une même page les résultats de l'opération courante et les opérandes pour l'opération suivante, ce qui facilite la composition des opérations en permettant de relier visuellement les résultats de l'opération courante aux opérandes de l'opération suivante. Selon encore une autre réalisation, le procédé comporte en outre une étape d'affichage, dans la page de visualisation de l'opération courante, du (ou des) champ(s) d'introduction d'opérande de l'opération courante. Ceci permet avantageusement à l'utilisateur de visualiser les résultats de l'opération courante dans le contexte de la valeur actuelle des opérandes, ainsi que de modifier la valeur de ces opérandes sans avoir besoin de retourner à la page de visualisation de l'opération précédente. En pratique, au moins une opération est une requête d'exécution à distance d'un service Web. En variante, au moins une opération est une fonction prédéfinie et exécutable localement. Selon une réalisation, la liste d'opérations exécutables pour un service choisi est obtenue par lecture d'un fichier WSDL décrivant le service. En pratique, l'affichage d'au moins un résultat de l'exécution de l'opération courante est effectué sous forme d'un tableau au format lignes et colonnes, une colonne, réciproquement une ligne, comprenant un nom de résultat et une ligne, réciproquement une colonne, comprenant une valeur associée à chaque nom de résultat. Ainsi, la visualisation et l'interprétation des résultats sont aisées pour l'utilisateur. Selon une réalisation, une étape d'introduction d'opérande est prévue dans ledit au moins un champ d'introduction d'opérande par sélection d'au moins une valeur d'un tableau de résultat d'exécution d'opérations antérieures. Selon une autre réalisation, le procédé comporte une étape d'introduction d'opérande dans ledit au moins un champ d'introduction d'opérande par sélection d'au moins une valeur parmi un ensemble de valeurs de résultats d'exécution d'opérations antérieures proposées à l'aide d'un menu déroulant. En variante, le procédé comporte une étape d'introduction d'opérande dans ledit au moins un champ d'introduction d'opérande par sélection d'un nom de résultat d'un tableau de résultat d'exécution d'opérations antérieures, les valeurs d'opérande pour l'opération suivante étant alors les valeurs des lignes pour une colonne, réciproquement des colonnes pour une ligne. Ces divers modes de réalisation permettent d'exécuter facilement l'opération suivante sur l'ensemble des résultats d'une opération antérieure pour un opérande donné. Selon une réalisation, la sélection d'un nom de résultat s'effectue à 30 l'aide d'un menu déroulant proposant un ensemble de noms de résultat à sélectionner. Selon une autre réalisation, la sélection d'un nom de résultat d'un tableau de résullat d'exécution d'opérations antérieures est suivie d'une étape de sélection des lignes à prendre en compte pour déterminer les valeurs d'opérandes. Ceci permet de n'exécuter l'opération suivante que sur une partie des résultats d'une opération antérieure. Le nombre de valeurs d'opérande ainsi sélectionnées à partir de tableaux de résultats d'exécution d'opérations antérieures, détermine le nombre d'itérations d'exécution de l'opération suivante. Ainsi on peut exécuter automatiquement une même opération pour plusieurs valeurs d'opérandes, même si cette opération n'est conçue que pour être exécutée avec une seule valeur à la fois. En pratique, les résultats issus de l'exécution des itérations de l'opération suivante sont affichés dans un même tableau de résultats. Ceci permet de regrouper avantageusement des données similaires, souvent destinées à être traitées simultanément par la suite. Ces caractéristiques améliorent largement la facilité de composition et d'itération d'opérations, puisqu'un nom de résultat précédent peut être utilisé comme opérande de l'opération suivante. De plus, la sélection d'un tel nom est largement facilitée par les fonctions de l'interface graphique. De préférence, un opérande et/ou un résultat d'exécution d'une opération est (sont) défini(s) par des caractéristiques prédéfinies telles que nom et/ou type de données. Selon une autre réalisation, le procédé comporte une étape d'introduction automatique d'opérande dans ledit au moins un champ d'introduction d'opérande à partir d'un résultat d'une opération précédente qui possède au moins une caractéristique similaire. Cette variante a l'avantage de lier automatiquement, sans intervention de l'utilisateur, des opérandes et des résultats. Selon encore une autre réalisation, le procédé comporte une étape d'introduction d'opérande dans ledit au moins un champ d'introduction d'opérande par saisie manuelle d'une valeur ou d'un nom représentatif d'une variable. Selon encore une autre réalisation, le procédé comporte une étape d'introduction automatique d'opérande dans ledit au moins un champ d'introduction d'opérande à partir d'une variable prédéfinie. Ainsi l'utilisateur n'a pas à entrer lui-même des valeurs répétitives bien connues, tel par exemple qu'un numéro de licence. Dans le cas où l'opération courante est une requête d'exécution à distance d'un service Web, le procédé selon l'invention comporte une étape de formation du tableau de résultat à partir des résultats de la requête reçus en format XML. En pratique, les résultats de la requête en format XML se présentent sous la forme d'une arborescence comportant au moins une balise racine et des balises feuilles, chaque balise comportant un nom et éventuellement une valeur et/ou un type. Dans ce contexte, l'étape de formation du tableau de résultat s'effectue en associant un nom de balise feuille à un nom de résultat et une valeur d'une balise feuille à une valeur de résultat. Ainsi, des résultats qui sont présentés dans un format arborescent complexe sont linéarisés afin d'être présentés à l'utilisateur de manière claire et homogène, les noms des balises correspondant aux noms des colonnes, réciproquement des lignes, (appelés également noms de résultat) du tableau, et les valeurs des colonnes, réciproquement des lignes, correspondant aux valeurs des balises associées. En pratique, l'ordonnancement des valeurs dans les lignes, réciproquement dans les colonnes, du tableau de résultat s'effectue selon l'ordre de parcours du document XML contenant les résultats de la requête d'exécution à distance, une cellule du tableau restant vide si la valeur de la balise correspondante n'existe pas. Ainsi on conserve dans le tableau l'ordre des données initiales. L'association du nom de la balise feuille au nom de résultat s'effectue par une étape préalable de développement du document XML contenant les résultats de la requête, dans laquelle : - on identifie au moins deux groupes, un groupe étant une balise XML qui contiens: des balises feuilles et/ou des balises de groupe, formant des groupes de structure similaire ; - on détecte l'existence dans le document XML d'au moins un groupe en proximité immédiate ayant une structure non-similaire ; et - en cas de détection positive, on intègre le contenu du groupe de structure non-similaire dans chacun des groupes de structure similaire. Ce traitement préalable permet de remplir le tableau de façon à ce que chaque ligne, réciproquement chaque colonne, contienne la valeur des éléments qui auront été précédemment factorisés (dans le document XML initial). Autrement, ces éléments n'apparaîtraient que dans une seule ligne, réciproquement colonne, du tableau (celle près de laquelle ils sont placés). Selon le procédé de l'invention, les champs d'introduction d'opérande sont créés en fonction de la description de l'opération courante correspondante obtenue à partir d'un fichier WSDL. En pratique, il s'agit d'une description en format XML. Selon un mode de mise en oeuvre particulièrement avantageux de l'invention, les champs d'introduction d'opérande sont organisés sous forme de tableau traduisant la représentation de l'arborescence de la partie du fichier WSDL décrivant les opérandes de l'opération courante, l'arborescence comportant au moins une balise racine et des balises feuilles. Un nom de champ d'introduction d'opérande est associé à un nom de balise feuille de ladite partie du fichier WSDL alors qu'un nom global associant une pluralité de champs d'introduction d'opérande est associé à un nom de groupe. Ainsi, Ga gestion graphique de groupes de balises est facilitée, et l'interface est plus ergonomique pour l'utilisateur. L'invention permet de passer d'une représentation d'opérande arborescente XML, peu compréhensible par un utilisateur néophyte, à une représentation sous forme de tableau, plus facilement manipulable et compréhensible par un tel utilisateur. La présente invention a également pour objet selon un autre aspect un dispositif de création à l'aide d'une interface graphique utilisateur, d'une séquence d'exécution d'un ensemble d'opérations. Selon l'invention, le dispositif comprend : - des moyens d'affichage d'au moins une liste d'opérations exécutables pour au moins un service choisi ; et - des moyens de génération de l'ensemble d'opérations par sélection d'opérations de la (les) liste(s) affichée(s) et affichage de cet ensemble d'opérations dans un ordre choisi correspondant à un ordre ultérieur d'exécution des opérations, les moyens d'affichage étant aptes, pour au moins une opération à exécuter dudit ensemble d'opérations, à afficher au moins un champ d'introduction d'opérande, l'introduction d'opérande étant liée à au moins un résultat d'exécution d'une opération antérieure de l'ensemble d'opérations. En pratique, le dispositif comprend en outre des moyens de création d'objets graphiques correspondant chacun à une opération de l'ensemble d'opérations généré et aptes à être sélectionnés par l'utilisateur pour commander l'affichage d'une page de visualisation correspondante. Selon une réalisation, les moyens d'affichage sont aptes, pour une page de visualisation d'une opération courante, à : - afficher au moins un résultat de l'exécution de l'opération courante ; et - afficher au moins un champ d'introduction d'opérande pour l'opération suivante. En outre, les moyens d'affichage sont aptes, dans la page de visualisation de l'opération courante, à afficher le (ou les) champ(s) d'introduction d'opérande de l'opération courante. Par exemple, les moyens d'affichage sont aptes à afficher au moins un résultat de l'exécution de l'opération courante sous forme d'un tableau au format lignes et colonnes, une colonne comprenant un nom de résultat et une ligne comprenant au plus une valeur associée à chaque nom de résultat. La présente invention a également pour objet un support d'informations lisible par un système informatique, éventuellement amovible, totalement ou partiellement, notamment CD-ROM ou support magnétique, tel un disque dur ou une disquette, ou support transmissible, tel un signal électrique ou optique, caractérisé en ce qu'il comporte des instructions d'un programme ordinateur permettant la mise en oeuvre du procédé de création mentionné ci-avant, lorsque ce programme est chargé et exécuté par un système informatique. La présente invention a enfin pour objet un programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant la mise en oeuvre du procédé de création mentionné ci-avant, lorsque ce programme est chargé et exécuté par un système informatique. D'autres caractéristiques et avantages de l'invention apparaîtront à la lumière de la description détaillée ci-après et des dessins dans lesquels : - la figure 1 représente l'architecture d'un micro-ordinateur susceptible de mettre en oeuvre le procédé de l'invention ; - les figures 2a à 2d sont des représentations de l'interface graphique proposée à l'utilisateur dans un scénario de mise en oeuvre de l'invention ; - les figures 3a et 3b illustrent la création d'un tableau d'opérande à partir de leur description en format XML ; - la figure 4 est un organigramme illustrant la création d'un tableau d'opérande ; - la figure 5 est un organigramme illustrant l'exécution d'une opération conformément à l'invention ; - la figure 6 décrit le processus de construction des jeux de données pour l'invocation d'un service Web selon l'invention ; - les figures 7 et 8 décrivent l'algorithme de développement de l'arbre de résultats obtenus par l'invocation d'un service Web selon l'invention ; et - la figure 9 décrit la manière dont les résultats d'une opération sont affichés selon l'invention. En référence à la figure 1, un dispositif, tel un micro-ordinateur et ses différents périphériques, peut mettre en oeuvre le procédé selon l'invention. Le dispositif est par exemple un micro-ordinateur 1000 connecté à différents périphériques, par exemple une caméra numérique 1001 (ou un scanner, ou tout moyen d'acquisition ou de stockage d'image) reliée à une carte graphique. Le dispositif 1000 comporte une interface de communication 1002 reliée à un réseau 1003 apte à transmettre des invocations de services Web distants selon le procédé de l'invention mis en oeuvre dans le dispositif. Le dispositif 1000 comporte également un moyen de stockage 1004 tel que par exemple un disque dur. Il comporte aussi un lecteur de disque externe 1005. Le disque externe 1006 comme le disque 1004 peuvent contenir le code de l'invention qui, une fois lu par le dispositif 1000, sera stocké dans le disque dur 1004. Selon une variante, le programme Prog permettant au dispositif de mettre en oeuvre l'invention pourra être stocké en mémoire morte 1010 (appelée ROM sur le dessin). En seconde variante, le programme pourra être reçu pour être stocké de façon identique à celle décrite précédemment par l'intermédiaire du réseau de communication 1003. Le dispositif 1000 peut être relié à un microphone (non représenté) par l'intermédiaire d'une carte d'entré/sortie (non représentée). Ce même dispositif possède un écran 1007 permettant de visualiser l'interface de création et visualisation d'une séquence d'opérations selon l'invention, permettant à l'utilisateur de paramétrer certains modes de visualisation, à l'aide du clavier 1008 ou de tout autre moyen (souris par exemple). L'unité centrale 1009 (appelée CPU sur le dessin) va exécuter les instructions relatives à la mise en oeuvre de l'invention, instructions stockées dans la mémoire morte 1010 ou dans les autres éléments de stockage. Lors de la mise sous tension, le programme de traitement conforme à l'invention et stocké dans une mémoire non volatile, par exemple la ROM 1010, sont transférés dans la mémoire vive RAM 1011 qui contiendra alors le code exécutable de l'invention ainsi que des registres pour mémoriser les variables nécessaires à la mise en oeuvre de l'invention. Bien entendu, les disquettes peuvent être remplacées par tout support d'information tel que CD-ROM ou carte mémoire. De manière plus générale, un moyen de stockage d'information, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en oeuvre le procédé de l'invention. Le bus de communication 1012 permet la communication entre les différents éléments inclus dans le micro-ordinateur 1000 ou reliés à lui. La représentation du bus 1012 n'est pas limitative et notamment l'unité centrale 1009 est susceptible de communiquer des instructions à tout élément du micro-ordinateur 1000 directement ou par l'intermédiaire d'un autre élément du micro-ordinateur 1000. La création d'une séquence d'exécution d'un ensemble d'opérations correspondant à un ou plusieurs services Web selon l'invention s'effectue à l'aide d'une interface graphique utilisateur par exemple de type fenêtre telle que représentée en référence aux figures 2a à 2d. En référence à la figure 2a, l'interface graphique utilisateur 10 comprend une barre d'objets graphiques de type onglets 14, qui sont construits dynamiquement lors de la mise en oeuvre de l'invention, et des icônes 12 (notées 12-0 et 12-1) représentant des flèches qui permettent d'invoquer les opérations définies dans les onglets. Chaque onglet correspond à une page d'une interface graphique utilisateur pour l'exécution d'une opération. Initialement, conformément à la figure 2a, l'onglet 14-1 intitulé Opérations est sélectionné (représenté en grisé sur la figure). La sélection de l'onglet 14-1 permet d'afficher dans trois fenêtres de 25 visualisation individualisées en 16, 18 et 20 plusieurs éléments de la composition de la séquence d'opérations conforme à l'invention. Par exemple, la fenêtre 16 est disposée dans la partie gauche de l'interface graphique utilisateur 10. La fenêtre 18 est disposée dans la partie droite supérieure de l'interface graphique utilisateur 10 et la fenêtre 20 est 30 disposée dans la partie droite inférieure de l'interface graphique utilisateur 10. Selon un mode de réalisation de l'invention donné à titre explicatif, l'utilisateur visualise l'ensemble des services disponibles, affichés dans la fenêtre 16. Ces services sont décrits dans des fichiers WSDL, lesquels sont rapatriés depuis leur serveur d'origine et mis en mémoire localement. Lorsque l'utilisateur sélectionne (étape El), à l'aide de l'interface graphique, par exemple en pointant à l'aide de la souris, un service Web dans la liste de services disponibles, il a accès aux opérations décrites dans le fichier WSDL correspondant. Parmi les services disponibles affichés dans la fenêtre 16, certains services (notés OL1 et OL2 dans l'exemple) regroupent des fonctions prédéfinies et exécutables localement. Cela permet de définir par exemple des opérateurs de comparaison, de calcul, de manipulation de chaîne de caractères. Ces services exécutables localement sont décrits dans des fichiers WSDL et accessibles à l'utilisateur de la même manière que les autres services. La liste d'opérations (individualisées en OP1 à OP2) pour le service sélectionné courant (ici SV1 qui est représenté en grisé sur la figure) est affichée dans la fenêtre 18 sur la figure 2a. L'utilisateur peut alors sélectionner (étape E2) une ou plusieurs opérations de ce service et les ajouter (étape E3) à la séquence d'opérations qu'il souhaite exécuter, qui est affichée dans la fenêtre de visualisation 20. L'étape E3 peut être réalisée en pratique par une opération de glisser-déposer à l'aide de la souris ( drag-and-drop en anglais) de l'opération sélectionnée de la fenêtre 18 vers la fenêtre 20. De plus, comme représenté à la figure 2a, un onglet (intitulé 02 ) correspondant à l'opération OP2 du service SV1 ajoutée à l'étape E3 est créé (étape E4), et rajouté à la barre d'objets graphiques 14. La fenêtre 20 permet d'afficher une séquence d'opérations 01 à 03, ordonnées selon l'ordre d'exécution ultérieur choisi par l'utilisateur. L'utilisateur a bien sûr la possibilité de modifier la séquence d'opérations choisies en supprimant ou rajoutant une ou plusieurs opérations. Avant de pouvoir exécuter la séquence d'opérations, l'utilisateur doit spécifier les valeurs des opérandes (appelés aussi arguments) de ces opérations. Ceci est illustré en référence aux figures 2b à 2d. D'une manière générale, l'interface graphique pour une opération de l'ensemble d'opérations va servir à l'affichage d'au moins un champ d'introduction d'opérande, l'introduction d'opérande étant liée à au moins un résultat d'exécution d'une opération antérieure de l'ensemble d'opérations. Ainsi, grâce à l'invention, l'utilisateur peut aisément utiliser les résultats des opérations précédentes pour composer plusieurs services, et également spécifier l'itération d'une même opération plusieurs fois sur une pluralité de résultats obtenus précédemment. En référence à la figure 2b, on a représenté la visualisation de l'introduction des opérandes conformément au procédé de l'invention, et en particulier pour la première opération définie dans l'exemple de la figure 2a. Pour chaque opération O à exécuter telle que générée et visualisée en référence à la figure 2a, il est prévu d'employer une interface graphique utilisateur permettantd'introduire des opérandes, de manière intuitive et commode pour un utilisateur non averti en informatique. On retrouve dans l'interface graphique 100 de la figure 2b, les éléments 12 (notés 12-0 et 12-1) et 14 de l'interface graphique 10 décrits en référence à la figure 2a. La sélection par l'utilisateur de l'onglet 14-2 (représenté en grisé sur la figure 2b pour figurer sa sélection) commande l'affichage d'une page de visualisation correspondante de l'interface graphique utilisateur 100. Par exemple, l'interface graphique 100 affiche non seulement une fenêtre d'introduction d'opérande 22 pour l'opération courante 01 mais aussi au moins un résultat 24 de l'exécution de l'opération courante 01 ainsi qu'une fenêtre d'introduction d'opérande 26 pour l'opération suivante 02. La fenêtre d'introduction d'opérande 22 pour une opération donnée doit comprendre autant de champs d'introduction que d'arguments (ou opérandes) nécessaires pour l'exécution de l'opération, permettant à l'utilisateur de rentrer des valeurs pour lesquelles les fonctions seront exécutées. Notons ici que les opérandes sont définis par un nom (A1), mais également par un type de données, chaîne de caractères ou nombre entier par exemple. Dans l'exemple de la figure 2b, la fenêtre 22 d'introduction d'opérande de l'opération courante 01 comprend un nom (Al) et un champ de saisie associé (noté 220 sur la figure) pour l'introduction d'une valeur. Etant donné qu'il s'agit de la première opération de la séquence d'opérations, l'utilisateur doit saisir une valeur d'opérande dans le rectangle 220. Afin de faciliter la saisie et la compréhension, les opérandes sont affichés sous la forme d'un tableau, deux cases adjacentes étant utilisées par opérande, l'une pour le nom (Al), l'autre pour le champ de saisie (220). L'exemple donné ici est simple car il ne contient qu'un opérande. L'obtention d'un tableau d'opérande dans le cas général, à partir de la description WSDL d'un service sera décrite plus loin, en référence aux figures 3a, 3b et 4. Revenant à la figure 2b, un clic sur l'icône 12-1 permet d'invoquer l'opération courante 01, c'est-à-dire OP3 du service SV2 avec la valeur V(AI) de l'argument Al. Le résultat de l'exécution de l'opération courante 01 est affiché dans la fenêtre 24 sous la forme d'un tableau auquel est associée une barre de défilement 240, car il peut y avoir plus de lignes de résultats que celles visibles dans la fenêtre 24. La première ligne du tableau (dite ligne zéro) comporte, pour chaque colonne, le nom représentatif du résultat associé à la colonne. Les autres lignes comprennent l'ensemble des valeurs des résultats trouvés, dont les éléments sont notés Ri(Nj) où i est le numéro de ligne et j le numéro de colonne. Afin de faciliter la compréhension, prenons l'exemple d'un service ProgrammeTV pour lequel l'utilisateur a choisi l'opération Programmes du jour . Cette opération nécessite une date (A1) en entrée. Le résultat comprend par exemple une colonne `Date' (NI), une colonne `Heure' (N2) et une colonne `Titre' (N3). Ensuite, l'étape suivante consiste à fournir des opérandes pour l'opération suivante de l'ensemble d'opérations, 02, dans la fenêtre 26 prévue à cet effet. Les résultats de l'étape précédente peuvent être utilisés. En reprenant l'exemple évoqué plus haut, supposons que l'utilisateur souhaite effectuer une recherche sur Internet (02) sur plusieurs titres (colonne N3) de programmes trouvés. La recherche Internet a pour opérande une chaîne de caractères (A2). L'utilisateur pourrait alors saisir le titre du programme recherché dans la fenêtre 260, invoquer l'opération SV3(OP1) en cliquant sur l'icône 12-1, puis revenir en arrière en cliquant sur l'icône 12-0 et recommencer l'opération avec un nouveau titre. Ceci est cependant long et fastidieux. L'invention permet de combiner des opérations et d'itérer une opération de manière aisée, car, comme illustré à la figure 2b, le nom de résultat d'une colonne (N3 dans l'exemple) peut être utilisé comme valeur d'opérande pour l'opération suivante à exécuter, 02. L'utilisateur a la possibilité de sélectionner plusieurs lignes, de manière à indiquer pour quelles valeurs de la colonne sélectionnée il souhaite invoquer l'opération. II s'agit d'un mode de saisie automatique de multiples valeurs d'opérande pour l'opération suivante. Ainsi on peut invoquer facilement une même opération pour plusieurs valeurs d'opérandes, même si cette opération n'est pas prévue au départ pour fonctionner de cette manière. Dans l'exemple de la figure 2b, l'utilisateur choisit la première et la quatrième ligne (en grisé), ce qui signifie que l'opération 02 sera effectuée avec les valeurs d'opérande : R1(N3), R4(N3). Le nombre de valeurs d'opérande (ici égal à 2) ainsi sélectionnées détermine le nombre d'itérations de l'opération suivante. Bien sûr, tous les résultats précédents peuvent être choisis pour l'itération. En particulier, si aucune ligne du tableau n'est sélectionnée par l'utilisateur, alors les valeurs d'opérande pour l'opération sont toutes les valeurs de la colonne sélectionnée. Notons ici encore que les opérandes doivent avoir un type prédéterminé, et donc seuls les résultats de l'opération antérieure de ce même type peuvent être utilisés. En pratique, le sous-ensemble de résultats du même type qu'un opérande peut être utilisé pour l'itération. Le procédé selon l'invention prévoit la vérification de la compatibilité de type lorsqu'un nom représentatif de résultat est introduit comme opérande de l'opération suivante. Toutefois, selon une variante de réalisation, le procédé selon l'invention effectue une conversion automatique, par exemple d'une chaîne de caractères vers un nombre entier, lorsque le contenu de cette chaîne est effectivement un tel nombre. La sélection d'un nom de résultat Ni peut s'effectuer soit par une opération de glisser-déposer ( drag-anddrop ) à l'aide de la souris, soit manuellement par l'utilisateur, soit enfin selon une variante, à l'aide d'un menu déroulant proposant un ensemble de noms de résultat à sélectionner et de noms de variables prédéfinies. En variante, la sélection d'une colonne d'un tableau de résultat peut être réalisée par sélection d'au moins une valeur parmi un ensemble de nom de colonnes appartenant à des tableaux de résultat d'exécution d'opérations antérieures proposées à l'aide d'un menu déroulant. De manière avantageuse, le menu déroulant ne présente que les noms de colonnes contenant des valeurs du même type ou d'un type compatible avec le type de l'opérande en cours d'introduction. A côté du champ 260, on a représenté un bouton 262 qui permet d'afficher un menu déroulant donnant accès aux résultats des opérations précédentes et aux variables prédéfinies par clic de la souris. En variante, le menu déroulant pourrait être affiché lorsque l'utilisateur clique sur le champ d'entrée d'opérande 260. Selon encore une autre variante, l'étape d'introduction d'opérande pour une opération peut être réalisée par sélection d'un nom de variable. La sélection d'un nom de variable peut être réalisée manuellement par l'utilisateur, par une opération de glisser-déposer (drag-and-drop) à l'aide de la souris, ou par sélection d'un nom de variable parmi un ensemble de noms de variable proposées à l'aide d'un menu déroulant. De manière avantageuse, le menu déroulant ne présente que les noms de variable dont le type est le même ou compatible avec celui de l'opérande en cours d'introduction. Comme indiqué précédemment, les variables permettent d'éviter les saisies répétitives, par exemple d'un nurnéro de licence d'utilisation de service. Les variables sont définies par exemple dans une page accessible à partir d'un onglet (appartenant à la liste d'onglets 14, noté 14-5 sur la figure 2c) dénommé Variables . Cette page contient une fenêtre contenant une liste de variables. Chaque ligne de cette liste définit une variable et contient trois éléments : le nom de la variable, sa valeur et son type. De manière avantageuse, le type de la variable est déduit automatiquement de sa valeur. Des boutons contenus dans la fenêtre permettent d'ajouter une variable à la liste ou de supprimer une variable de la liste. Une fois la ou les valeurs successives de l'opérande A2 déterminées, l'utilisateur peut mettre en oeuvre l'invocation du service en cliquant sur l'icône 12-1. Alors s'affiche l'onglet suivant de la succession d'opérations, représentée à la figure 2c. La figure 2c représente un exemple de l'interface graphique 200 affichée correspondant à l'onglet 14-3 qui est relatif à l'exécution de l'opération 02. De manière analogue à la figure 2b, l'interface graphique comprend trois fenêtres notées 32, 34 et 36. La fenêtre 32 est identique à la fenêtre 26 de l'interface graphique 15 20, et contient les valeurs saisies précédemment pour le ou les opérandes de l'opération 02 en cours de traitement. La fenêtre 34 est analogue à la fenêtre 24 décrite précédemment en référence à la figure 2b, elle représente les résultats de l'opération sous forme de tableau. 20 Dans l'exemple de la figure 2c, comme plusieurs valeurs de paramètres ont été fournies à 02, l'opération OP3 du service SV2 a été invoquée plusieurs fois. La fenêtre 34 représente les résultats de toutes ces itérations de 02. Ainsi, les deux premières lignes correspondent à la première invocation de 02 avec R1(N3) pour valeur de son opérande, tandis que les 25 deux lignes suivantes représentent la deuxième invocation de 02 avec R4(N3) pour valeur de son opérande. Pour bien distinguer les résultats des différentes itérations de 02, il est possible d'alterner la couleur de présentation entre groupes de lignes correspondant à un même résultat. Ainsi, dans l'exemple de la figure 2c, les 30 deux premières lignes auraient un fond blanc, tandis que les deux lignes suivantes auraient un fond grisé (ou de couleur). En revenant à l'exemple décrit ci-dessus, si l'opération courante est une recherche Internet sur une chaîne de caractères, le premier résultat MI est la chaîne de caractères sur laquelle la recherche a été effectuée, donc le titre du programme; le second résultat M2 est une adresse de type URL ( Uniform Ressource Locator ) permettant d'accéder au serveur de données contenant l'information, et le troisième résultat est la langue (notée E ou G sur la figure 2c) dans laquelle l'information est rédigée. Le tableau contient autant de lignes que de résultats trouvés. Enfin, la fenêtre 36 comprend les champs de saisie d'opérande pour l'opération suivante 03 de l'ensemble d'opérations défini par l'utilisateur. Dans l'exemple de la figure 2c, l'opération suivante nécessite deux opérandes. Par exemple, si l'opération est l'opérateur contient appliqué à une chaîne de caractères, le premier opérande désigne le contenant et le second désigne le contenu. En reprenant l'exemple complet, on peut rechercher les résultats contenant un E , dans la colonne M3. La saisie des opérandes se fait comme précédemment, soit par un mécanisme de glisser-déposer, soit par saisie manuelle de l'utilisateur, soit encore par sélection dans un menu déroulant. L'utilisateur peut alors exécuter l'opération SV1(OP2) avec les 20 valeurs d'opérande sélectionnées, en cliquant sur l'icône 12-1. La figure 2d représente l'affichage des opérandes et des résultats de l'opération 03, qui est la dernière étape de la séquence d'opérations définie par l'utilisateur dans cet exemple. L'interface graphique 300 représentée à la figure 2d est similaire aux 25 interfaces 100 et 200 décrites précédemment en référence aux figures 2b et 2c, mais ne contient que deux fenêtres, 42 et 44, puisqu'il n'y a pas d'opération suivante. La fenêtre 42 est identique à la fenêtre 36 de l'interface graphique 30, et contient les valeurs saisies précédemment pour le ou les opérandes de 30 l'opération 03 et la fenêtre 44 contient les résultats de l'opération. Les écrans de visualisation sont générés dynamiquement selon l'invention, en fonction de la séquence d'opérations définie interactivement par l'utilisateur. Selon un mode de mise en oeuvre préféré de l'invention, dans le cas où une opération comporte au moins deux opérandes, et où les valeurs de ces opérandes proviennent non pas d'un, mais d'au moins deux tableaux de résultats, et que la taille des tableaux ou bien le nombre de lignes sélectionnées pour chacun est différent, on exécute l'opération courante pour toutes les combinaisons possibles de valeur d'opérande (première valeur sélectionnée du premier tableau avec première valeur sélectionnée du second tableau, première valeur sélectionnée du premier tableau avec seconde valeur sélectionnée du second tableau, etc.). Dans une autre variante de l'invention, on exécute au contraire l'opération pour chaque couple de valeurs sélectionnées : première ligne du premier tableau avec première ligne du second tableau, seconde ligne du premier tableau avec seconde ligne du second tableau, etc. ; et on ignore les valeurs du tableau le plus grand qui ne peuvent être appariées. Dans une troisième variante, on informe l'utilisateur que les groupes de valeurs sélectionnées ne sont pas de taille compatible et on n'exécute pas 20 l'opération. En variante, un champ occurrence est prévu pour permettre à l'utilisateur de saisir le nombre d'occurrences d'un opérande pour une opération, comme expliqué en détail ci-dessous en référence à la figure 3. Nous allons décrire maintenant, en référence aux figures 3a et 3b, 25 la création d'un tableau d'opérande pour une opération à exécuter dans le cas général, où l'opération considérée nécessite un ensemble d'opérandes, décrits dans le fichier WSDL de description du service correspondant sous la forme d'un arbre XML. lin tel arbre XML est donné en exemple à la figure 3a. La figure 3b représente le résultat du développement sous forme de 30 tableau de l'arbre d'opérande XML de la figure 3a. L'arbre XML contient au moins une balise racine (notée dans l'exemple de la figure 3a) et des balises feuilles (notées ArgO à Arg3 sur la figure 3a). Les éléments de l'arbre XML, appelés également noeuds, sont caractérisés par leur nom, leur type et aussi leur nombre d'occurrences, grâce aux attributs minOccurs et maxOccurs. minOccurs et maxOccurs prennent des valeurs entières, à l'exception du cas où maxOccurs vaut `unbounded'. Dans ce cas, on peut avoir autant d'occurrences de l'élément que souhaité. Par défaut, minOccurs et maxOccurs valent 1. En fonction des noeuds rencontrés, trois types de représentations peuvent être adoptés: - Groupe noté G1 sur la figure 3b (Groupe Titre ) : un groupe Titre occupe une ligne du tableau et est cliquable. Par exemple, avec un simple clic, on masque les cases du tableau qui correspondent à des noeuds XML situés dans la descendance du noeud Titre ; avec un double clic, on masque toutes les cases du tableau qui ne sont pas des Titre . - Groupe noté G2 sur la figure 3b (Groupe Occurrences , lequel peut être indépendant ou se superposer à un groupe Titre ) : un groupe Occurrences se compose de quatre cases successives sur une même ligne, la première présentant le nom de la balise feuille correspondante, la deuxième possédant la valeur Occurrences , la troisième permettant de saisir le nombre d'occurrences et la quatrième présentant un bouton 52 pour valider la saisie. La valeur' du nombre d'occurrences est limitée par les valeurs de minOccurs et maxOccurs. Dans une variante, on peut faire varier la valeur du nombre d'occurrences grâce à deux boutons, l'un permettant d'augmenter le nombre d'occurrences et l'autre de le diminuer, ceci dans les limites fixées par minOccurs et maxOccurs. Un groupe Occurrences occupe à lui seul une ligne. Après la validation de la saisie par l'utilisateur, dans le cas où le nombre d'occurrences est modifié, le nombre de champs d'entrée pour l'opérande est modifié pour correspondre à la nouvelle valeur du champ Occurrences . Par exemple, dans la figure 3b, l'argument Arg3 a deux occurrences, donc deux champs d'entrée d'opérande (les deux lignes suivantes dans le tableau) lui sont réservés. - Groupe noté G3 sur la figure 3b (Groupe Argument ) : un groupe Argument correspond à une balise feuille et se compose de trois cases adjacentes sur une même ligne, la première présentant le nom de la balise feuille correspondante, la deuxième permettant de saisir la valeur de l'argument à saisir ultérieurement selon le procédé de l'invention et la troisième présentant un bouton 50, lequel permet d'afficher un menu déroulant qui donne accès aux résultats des opérations précédentes, sous réserve de compatibilité de type. Plusieurs groupes Arguments peuvent se trouver sur une même ligne. Notons que plusieurs balises feuilles sont regroupées dans des groupes de balises, par exemple le groupe 'Titre 3' contient les balises 'Arg2' et 'Arg3'. D'une manière plus générale, ces groupes sont des balises intermédiaires qui contiennent soit d'autres groupes, soit des balises feuilles, soit les deux. A chaque groupe on associe la case du tableau placée directement au-dessus des cases attribuées aux balises contenues dans ce groupe. En variante, les balises d'un même groupe pourraient être placées côte à côte, de la gauche vers la droite, dans leur ordre d'apparition dans le document XML, et sur une même ligne. Par ailleurs, le nombre d'opérande par ligne est ajusté de manière à s'adapter à la largeur de la fenêtre. De cette manière, tous les opérandes sont toujours directement visibles, sans que l'utilisateur ait à utiliser une barre de défilement horizontale. Lorsqu'un groupe contient un nombre important de balises feuilles, on utilise plusieurs lignes, de façon à permettre à l'utilisateur de visualiser facilement ce groupe (sans utiliser de barre de défilement horizontal). En variante, une barre de défilement verticale est utilisée pour visualiser un nombre important de groupe ou d'opérandes. La figure 4 représente un organigramme illustrant la création S100 d'un tableau d'opérande à partir d'une description en format XML, dont le 30 résultat a été présenté précédemment en référence aux figures 3a et 3b. Pour créer le tableau d'opérandes, on explore les différents noeuds en commençant par le noeud racine noté , qui est le noeud 'Titrel' dans l'exemple de la figure 3a. Si le noeud que l'on explore à des noeuds enfants (étape S101), on évalue son attribut maxOccurs (étape S102). Si celui-ci est supérieur à 1, on crée un groupe Titre pour auquel on superpose un groupe Occurrences , ainsi que minOccurs groupes Titre de (étape S103). Dans le cas où l'attribut maxOccurs de n'est pas supérieur à 1, on crée simplement un groupe Titre pour (étape S104). Ensuite, on traite les noeuds enfants de (étape S105) : s'il en reste un qui n'a pas encore été traité (noeud ), alors on lance la procédure permettant son exploration (étape S106). Cette procédure permet de générer le tableau représentant le noeud . Ce tableau est ajouté dans le tableau représentant pour chaque groupe Titre créé pour (étape S103 ou S104). Ce traitement effectué, on teste de nouveau s'il reste des enfants de non traités (étape S105). Si tous les enfants ont été traités, alors la création du tableau prend fin (étape S107). Si le noeud que l'on explore n'a pas de noeuds enfants (étape S101), on évalue son attribut maxOccurs (étape S108), et s'il est supérieur à 1 on procède à la création d'un groupe Occurrences pour ainsi qu'à la création de minOccurs groupes Argument (étape S109), et l'exploration prend fin (étape S107). Si en revanche l'attribut maxOccurs de n'est pas supérieur à 1, on crée simplement un groupe Argument pour (étape S110), et l'exploration courante prend fin (étape S107). Il est à noter que pour modifier un tableau ainsi créé pour prendre en compte un nombre d'occurrences d'un noeud entré par l'utilisateur, on effectue le même traitement mais en utilisant comme nombre d'occurrences pour le noeud le nombre entré par l'utilisateur et non la valeur de minOccurs de . En référence à la figure 5, on décrit un organigramme illustrant d'une manière générale l'exécution des opérations de la séquence d'opérations selon l'invention. Comme noté au préalable, la première étape du procédé selon l'invention, décrite en référence à la figure 2a ci-dessus, aboutit à la constitution d'une séquence d'opérations, qui sont décrites dans des fichiers WSDL. Il est possible de sauvegarder la séquence d'opérations en cours dans un fichier au format XML, ce qui permet la réutilisation ultérieure d'une séquence d'opérations prédéfinie. La sauvegarde contient non seulement la séquence des opérations à exécuter, mais aussi les valeurs des opérandes déjà entrées, ainsi que les valeurs des résultats déjà obtenus. Ceci permet de recommencer l'exécution de la séquence à l'endroit exact de la sauvegarde. Dans la sauvegarde, chaque opération est identifiée par sa position dans le fichier W'SDL qui en contient la définition, ainsi que par l'identificateur de ce fichier (l'URI Universal Ressource Identifier auquel il est accessible). Le procédé comporte une étape de sélection SI d'une opération courante OP. Il peut s'agir soit de la première opération de la séquence définie préalablement, soit d'une opération suivant une précédente opération. L'étape suivante est une étape de saisie d'opérande S2, qui a été décrite en référence à l'exemple d'interface graphique décrit ci-dessus. S'il s'agit d'une première opération, l'utilisateur doit rentrer des paramètres manuellement. Pour une opération postérieure, la saisie automatique des opérandes est possible, comme expliqué en référence aux figures 2b et 2c notamment, et en particulier l'utilisation de résultats préalables par l'intermédiaire du nom de la colonne résultat. Pour toutes les opérations, il est aussi possible d'utiliser une variable définie préalablement pour définir la valeur d'un opérande. Le procédé permet ensuite de vérifier par une étape de test S3 si les opérandes saisis sont complets et notamment s'ils correspondent au type des données d'entrées de l'opération OP. Dans le cas contraire, l'utilisateur serait invité à saisir et/ou à compléter ces paramètres par l'intermédiaire de l'interface graphique. Evenl:uellement, ces paramètres sont convertis automatiquement d'un type vers un autre. Une fois la correction et la complétude des opérandes d'entrée de l'opération OP vérifiée, une seconde étape de test S4 détermine si l'opération est un service Web ou un opérateur. Ensuite, des jeux de données sont créés, ces jeux de données étant différents dans le cas où l'opération est un service Web (étape S5) et dans le cas où il s'agit d'un opérateur (étape S6). Un jeu de données est un ensemble de valeurs d'opérande (appelés également paramètres) qui sont fournies en entrée à une opération pour une exécution de cette opération. Si l'opération OP est un service Web, l'étape de construction S5 est suivie de l'étape d'invocation S7, avec un seul jeu de données. Le résultat de l'exécution distante du service Web est reçu dans une structure arborescente R, provenant d'un fichier en langage de balisage, comme par exemple XML. L'étape suivante de développement S8, qui sera explicitée en référence aux figures 7 et 8, réalise le développement de l'arbre R sous la forme d'une liste R', qui est ensuite affichée dans un tableau de résultats lors d'une étape d'affichage S9. Les étapes S7 à S9 sont répétées tant qu'il reste des jeux de données à traiter. à l'issue d'une étape de test S10. Si tous les jeux de données ont été traités, le test S11, décrit ci-dessous, est ensuite exécuté. Quant au cas des opérateurs, l'étape de préparation S6 de jeux de données appropriés est suivie de l'exécution S13 proprement dite de l'opération et d'une étape d'affichage S14 des résultats. En pratique, l'exécution d'un service Web consiste à envoyer au service, identifié par son adresse dans le fichier WSDL, une requête de demande d'exécution d'une opération, comme il est bien connu de l'homme de l'art. En retour, le service renvoie une ou plusieurs réponses (voire pas de réponse, suivant les opérations). Globalement, la différence principale entre les services Web et les opérateurs est que, pour ces derniers, l'ensemble des valeurs d'opérande peut être passé directement comme argument d'entrée, sous forme de tableau par exemple : il n'est pas nécessaire d'effectuer une conversion préalable au format XML, puisque les données sont interprétées localement et par le même programme. Selon une variante, les données sont préalablement converties au format XML, avant d'être fournies à l'opérateur. En pratique, pour les opérateurs, un seul jeu de données suffit, et il n'est pas nécessaire d'effectuer un test analogue à l'étape de test S10 décrite précédemment. De plus, les résultats de l'opérateur sont obtenus directement sous la forme d'une liste R affichable sans traitement supplémentaire sous la forme d'un tableau lors de l'étape d'affichage S14. Dans une variante, les résultats des opérateurs pourraient être eux-mêmes au format XML, ce qui unifie les différents mécanismes de l'invention. L'étape d'affichage S14 est suivie du test S11, qui est un test vérifiant s'il reste une opération à exécuter dans la séquence d'opérations prédéterminée. Dans le cas affirmatif, l'étape de suite S12 permet de passer à l'opération suivante, et d'itérer les étapes S2 à S4 et suivantes pour la nouvelle opération. Dans le cas contraire, le procédé prend fin à l'étape de fin S15. En référence à la figure 6, on décrit le processus de construction des jeux de données pour l'invocation d'un service Web, c'est-à-dire l'étape de construction S5 du procédé de la figure 5. Quand l'utilisateur saisit un argument, il a plusieurs choix comme on l'a vu ci-avant : soit une valeur qu'il entre directement, soit une variable qu'il choisit dans un menu, soit une colonne (partielle ou complète) d'un résultat précédent, éventuellement accessible via un menu elle aussi (s'il n'y a pas d'incompatibilité de type). Dans une étape de construction S20, on construit une liste L dans laquelle on stocke les jeux de données (initialement la liste comprend un seul jeu, un arbre dont la structure décrit les opérandes mais dont les valeurs sont vides). Suivant les arguments saisis par l'utilisateur, le nombre de jeux de données va varier. Un premier test S21 vérifie qu'il reste un argument à traiter. Dans la négative, le procédé prend fin, et comporte une étape de retour S22 à l'étape d'invocation S7 du procédé de la figure 5. Dans laffirmative, un test S23 vérifie si l'argument est une valeur. Dans l'affirmative, l'élément correspondant de chaque arbre stocké dans L est complété avec cette valeur dans une étape de complément S24. Dans la négative, le procédé passe au test suivant S25 dans lequel on vérifie si l'argument est une variable. Dans le cas d'une réponse positive au test S25, l'élément correspondant de chaque arbre stocké dans L est complété avec la valeur de cette variable dans une seconde étape de complément S26. Dans le cas d'une réponse négative au test S25, le procédé passe au test suivant S27 dans lequel on vérifie si l'argument est une colonne. Dans l'affirmative, le procédévérifie lors d'un test S28 si une seule valeur est sélectionnée dans la colonne. Dans l'affirmative, l'élément correspondant de chaque arbre stocké dans L est complété avec cette valeur lors d'une troisième étape de complément S29. Dans la négative, le procédé crée un tableau de valeurs Tv contenant toutes les valeurs sélectionnées de la colonne lors d'une étape de création S30. Enfin, le procédé crée les jeux de données par réplication pour les arbres de L et les valeurs Tv lors d'une étape de construction S31. Dans le mode de réalisation préféré, pour chaque arbre de L et pour chaque valeur de Tv, un nouvel arbre est créé en dupliquant l'arbre et en insérant dans l'élément correspondant à l'argument traité la valeur de Tv. Tous les arbres originellement dans L avant cette étape sont supprimés. Différents cas se présentent donc : dans le cas où il n'y a qu'une valeur possible (tests S23, S25, S28), cette valeur est utilisée pour chaque jeu de données existant ; dans le cas où il y a plusieurs valeurs (cas de l'étape de création S30 où l'utilisateur a choisi une colonne et où il a sélectionné plusieurs lignes de cette colonne), on réplique à l'étape de construction S31 les jeux existants autant de fois qu'il y a de valeurs et on complète chaque série de jeux avec une des valeurs. Si au départ, la liste L contient N jeux de données et que K lignes ont été sélectionnées par l'utilisateur (le tableau Tv contient alors K lignes de données), on aura, au terme de l'étape de construction S31, KxN jeux de données dans la liste L. Une fois tous les jeux de données créés, ils sont mis au format XML de manière classique. Ensuite on peut itérer les appels à l'opération par le 30 mécanisme usuel des invocations des services Web via SOAP. En référence aux figures 7 et 8, on décrit en détail l'algorithme de développement de l'arbre de résultats obtenus par l'invocation d'un service Web lors de l'étape de développement S8 de la figure 5. Dans le cas où l'opération courante est une requête d'exécution à 5 distance d'un service Web, un tableau de résultats Tr est formé à partir des résultats de la requête reçus au format XML. La figure 7, représente la partie qui va lancer la récurrence et faire le tri dans les résultats produits par l'algorithme représenté en référence à la figure 8. 10 En pratique, les résultats de la requête au format XML se présentent sous la forme d'une arborescence comportant au moins une balise racine (balise 'Results' dans l'exemple ci-dessous) et des balises feuilles (finales). Une balise comporte un nom et éventuellement une valeur et/ou un type. L'étape de formation du tableau de résultats Tr s'effectue en 15 associant un nom de balise feuille à un nom de résultat et une valeur d'une balise feuille à une valeur de résultat. De manière plus concrète, voici un exemple simplifié avant de passer à la description complète des algorithmes : Données initiales : 20 London John 25 Mary 30 30 Robert 34 Le noeud racine possède des enfants dont les noms sont 5 City et Members, ces enfants ne sont donc pas de structure similaire (les noms des enfants sont distincts). Le noeud est lui une feuille (il n'a pas d'enfant). On ajoute donc cet élément sous la forme (Nom, Valeur) au résultat (pour l'instant vide) : RO = [(City, 'London')]. 10 En revanche, le noeud a des enfants, on procède donc au développement. Tous les enfants de ont le même nom : Member. Ces enfants sont donc de structure similaire, et on créé autant de listes qu'il y a d'occurrences d'enfants ayant cette structure similaire, chaque liste étant 15 initialisée avec le chemin d'où l'on vient (RO dans notre cas). On identifie donc au moins deux groupes contenant des balises feuilles (3 dans cet exemple) comportant chacun une balise de même nom et formant des groupes de structure similaire. Comme on a créé de nouvelles listes à partir de RO, on sait que RO n'est pas une liste finale. Au contraire, on considère pour l'instant 20 que les nouvelles listes sont finales. RI = [(City, 'London')] R2 = [(City, 'London')] R3 = [(City, 'London')] Ces listes sont en fait des listes intermédiaires, puisqu'il faut y 25 ajouter les éléments de type Member. Ces noeuds sont des feuilles, il n'y a donc pas à développer davantage, mais juste à compléter chaque liste. R1 = [(City, 'London'), (Name, 'John')] R2 = [(City, 'London'), (Name, 'Mary'), (Age, 30)] R3 = [(City, 'London'), (Name, 'Robert'), (Age, 34)] 30 Ce développement consiste à intégrer le groupe de structure non-similaire ('City' dans l'exemple) avec chacun des groupes 'Member' ayant une structure similaire, A présent, on fait le tri dans les résultats et on ne conserve que les listes finales, c'est-à-dire R1, R2 et R3. Les résultats sont prêts à être transmis à une autre fonction pour l'affichage. Les noms des colonnes du tableau de résultats affiché ultérieurement ainsi obtenus sont les noms 'City', `Narre', Age'. La figure 7 décrit le développement des résultats R sous la forme d'une liste. En entrée, une étape de fourniture S50 est adapté à fournir à l'algorithme les résultats sous forme arborescente 4é"113155 contenant une balise racine et un ensemble de balises feuilles. Lors de l'étape de création d'un tableau S51, le procédé crée un tableau Tr = [O], destiné à recevoir les futurs résultats. Une liste est créée à l'étape de création de liste S52 pour marquer le caractère final de chaque liste du tableau Tr. Initialement, tous les éléments de cette liste sont initialisés à faux . Lors de l'étape de développement S53, le procédé développe la liste R conformément à l'algorithme qui sera décrit en référence à la figure 8. Un premier test S54 vérifie s'il reste un élément du tableau Tr à traiter. Dans la négative, le tableau de résultat Tr est retourné lors d'une étape de retour S55 et l'algorithme de la figure 5 passe à l'étape d'affichage S9 des résultats. Dans l'affirmative, un autre test S56 vérifie le caractère final de l'élément. Dans l'affirmative, le procédé réitère le premier test S54. Dans la négative, le procédé passe à l'étape de traitement S57 dans laquelle l'élément à traiter est ôté du tableau de résultat Tr. Chaque liste représente un chemin parcouru dans l'arbre XML. Le processus de développement de l'arbre sous forme de listes est détaillé en référence à la figure 8. En pratique, l'ordonnancement des valeurs dans les lignes du tableau de résultats Tr s'effectue selon l'ordre du parcours du document XML contenant les résultats de la requête d'exécution du serveur à distance. En référence à la figure 8 on décrit le traitement des données de l'arbre mis en oeuvre à l'étape de développement S53 de la figure 7, qui est un procédé récursif. Les noeuds de l'arbre peuvent être de deux formes : soit ils contiennent eux-mêmes des noeuds, soit ils sont des noeuds feuille (noeud de type (N, V(N)) où V(N) est la valeur du noeud , par exemple 'test' dans le cas d'un noeud Test ). L'analyse va porter sur les éventuels noeuds enfants de . Si contient par exemple trois enfants, chacun étant de type , on considère que les enfants de ont une structure similaire et on va donc effectuer un développement. Plus généralement, si l'on détecte que contient plusieurs enfants ayant un nom commun, on considère que ces enfants ont une structure similaire et l'on effectue donc un développement par rapport aux autres enfants de et au reste de l'arbre XML. En variante plutôt que de comparer les noms des enfants de pour détecter si certains de ces enfants ont une structure similaire, on peut comparer les noms des descendants de ces enfants. On considérera que deux enfants ont une structure similaire s'ils possèdent les mêmes descendants ou si le nombre de différences dans la liste de leurs descendants respectifs est inférieur à une valeur donnée (cette valeur pouvant être fonction de la taille de la liste de descendants). En autre variante on peut comparer les enfants de pour détecter les structures similaires en comparant les noms des noeuds feuilles contenus par ces enfants. L'étape d'initialisation S60 concerne l'initialisation du développement de ( , index), où représente le noeud racine de l'arbre et index l'indice de la liste courante dans le tableau Tr. Cette liste courante contient le chemin que l'on a emprunté dans l'arbre pour arriver jusqu'à l'élément courant. Lors de cette étape d'initialisation S60, on recopie le tableau Tr[index] dans une variable To. En outre, on initialise aussi une variable final-index à la valeur de final[index]. Un premier test S61 vérifie si contient des enfants, c'est-à-dire si A s'écrit sous une forme : ... ... [...] ... Dans la négative, le procédé de développement prend fin à l'étape 5 de fin S62. Dans l'affirmative, le procédé détermine si l'élément A contient des enfants de structure similaire à une étape de calcul S63 en calculant le nombre d'occurrences de chaque Bi. Après cette étape, on effectue le traitement de chaque élément , pris dans l'ordre. 10 Un deuxième test S64 permet de vérifier s'il reste un élément non traité. Si la réponse est négative, le procédé prend fin à l'étape de fin S62. Dans le cas où la réponse est positive, un troisième test S65 détermine s'il y a un ou plusieurs noeuds nommés Bi parmi les enfants de . S'il y a une seule occurrence, alors on passe au quatrième test S66, 15 qui vérifie si possède des noeuds enfants. Si tel est le cas, il faut appliquer à nouveau la fonction développer . L'étape de nommage S67 consiste à donner la valeur index à une variable id, pour ensuite rappeler la fonction développer avec ( , id) lors d'une étape de développement S68, ce qui revient à ré-appliquer le procédé à partir de l'étape de développement S60 pour 20 les nouvelles données. Quand l'appel à la fonction développer est terminé, on continue le traitement au second test S64 pour traiter les noeuds restants. De retour au quatrième test S66, si n'a pas de noeuds enfants, on vérifie si la valeur du tableau final pour l'indice courant index est 25 égale à vrai , donc s'il s'agit d'une liste finale lors d'un cinquième test S69. Si tel est le cas, on attribue la valeur index à une variable id lors d'une seconde étape de nommage S70, et on passe à l'étape d'ajout dans une liste courante S74 décrite ultérieurement. Si la liste courante n'est pas une liste finale mais une liste intermédiaire, alors le cinquième test S69 est suivi de 30 l'étape d'ajout dans une liste finale S71, où l'on ajoute (Bi, V(Bi)) à toutes les listes finales déjà créées préalablement. 32 De retour au troisième test S65, si le nombre d'occurrences de noeuds nommés Bi est supérieur à 1, il est nécessaire d'ajouter autant de listes que de nombre d'occurrences de Bi, et ceci est fait pour chaque Bi de même valeur. L'étape d'initialisations S72 consiste à effectuer des initialisations, en particulier à ajouter une ligne d'indice id à la liste Tr, l'indice id étant égal à index+k, où k est le rang du Bi dans la liste des Bi de même valeur. On initialise le tableau Tr[id] avec le tableau To, qui est Tr[index]. Ainsi, le développement préalable de l'arbre depuis l'élément racine de l'arbre XML est conservé, et pourra être complété. Le fait que de nouvelles listes s'ajoutent rend la liste Tr[index] non finale, donc on mémorise cette information en mettant la valeur de la variable final-index à faux . A ce niveau de la procédure, on peut supposer que la nouvelle liste créée est finale, donc on inscrit final[id]=vrai . Il est à noter que si la liste d'indice id existe déjà, elle n'est pas récréée. Ainsi, si l'élément A contient plusieurs ensembles d'éléments Bi de structure similaire, ces différents ensembles seront développés en parallèle. Par exemple, si l'on considère l'élément suivant : VB 1 VB2 VC 1 VC2 VD Il sera développé sous la forme: [(B, VB1), (C, VC1), (D, VD)] [(B, VB2), (C, VC2), (D, VD)]. Ensuite on passe au sixième test S73, qui vérifie si possède 30 des noeuds enfants. Si tel est le cas, on passe à l'étape de développement S68 décrite précédemment. 25 Dans le cas où ne possède pas de noeuds enfants, on ajoute (Bi, V(Bi)) à la liste courante lors de l'étape d'ajout à la liste courante S74, qui contient alors tous les éléments développés précédemment et les nouveaux éléments (Bi,V(Bi)). On retourne ensuite au deuxième test S64 pour traiter les noeuds restants. Quand le deuxième test S64 détermine que tous les noeuds de A ont été traités, on passe à l'étape d'affectation finale S75 qui affecte la valeur de la variable final-index à final[index] . Cette affectation permet de modifier la valeur de final[index] Si une ou plusieurs lignes ont été rajoutées au tableau Tr par l'étape d'initialisations S72. En référence à la figure 9, on décrit la manière dont les résultats d'une opération - sous forme de listes développées - sont affichés lors des étapes d'affichage S9 et S14 de la figure 5. Cette figure décrit le fonctionnement du procédé d'affichage des résultats pour plusieurs itérations d'une opération avec plusieurs jeux de données, comme décrit ci-dessus en référence à la figure 5. Le principe du procédé d'affichage des résultats consiste à extraire d'abord l'ensemble des noms de résultats qui vont constituer les noms de colonne dans le tableau final d'affichage, ce qui est fait notamment par rapport au premier jeu de données, donc à la première exécution de la fonction. Ensuite, les listes de résultats sont complétées pour toutes les colonnes, de façon à pouvoir être affichées dans le tableau final. Une mise à jour du tableau graphique final est prévue pour chaque itération de ce procédé d'affichage. A cet effet, lors du premier passage identifié par un test S81 dans la fonction d'affichage (affichage des résultats du premier jeu de données pour une opération donnée), on créé lors d'une étape de création S82 un tableau Tc destiné à contenir les noms de colonnes. On parcourt alors chaque rangée Ri par test successif S83 du tableau de résultats R, qui se compose d'éléments de la forme (nom, valeur). Lister les futures colonnes équivaut à déterminer les différents éléments nom présents dans le tableau. A l'étape de stockage S84, où l'on a noté les noms Ai et les valeurs Bi, on effectue le stockage de tous les noms Ai qui n'ont pas encore été recensés. Ensuite on ajoute chaque Ai non recensé précédemment au tableau Tc des colonnes et l'on crée une colonne nom dans la liste graphique qui sert à afficher les résultats lors d'une étape de création de colonne S85. Ensuite, on va compléter les données. En effet, il se peut que certains éléments soient absents de certains résultats. Dans l'exemple précédent, l'élément Age manquait au premier résultat. R1 = [(City, 'London'), (Name, 'John')] R2 = [(City, 'London'), (Name, 'Mary'), (Age, 30)] R3 = [(City, 'London'), (Name, 'Robert'), (Age, 34)] Dans ce cas, on doit créer une colonne correspondant au nouveau nom ('Age' dans l'exemple), puis on va s'assurer que cette colonne est bien prise en compte pour chaque rangée Ri de R. On va d'abord copier R dans un nouvelle structure R', puis on va parcourir par tests successifs S87 chaque rangée R'i de R' et compléter les valeurs absentes par une valeur nulle lors d'une étape de complétion S88. Ici on obtiendrait : R'1 = [(City, 'London'), (Name, 'John'), (Age, ' ')] R'2 = [(City, 'London'), (Name, 'Mary'), (Age, 30)] R'3 = [(City, 'London'), (Name, 'Robert'), (Age, 34)] On insère dans une étape d'insertion S89 alors les résultats dans la liste graphique (dont les colonnes ont été créées précédemment). Dans le mode de mise en réalisation préféré décrit ici, cette insertion se traduit par un rafraîchissement de l'affichage dans le tableau d'affichage de l'interface utilisateur (voir figures 2b à 2d). Si toutes les rangées ont été traitées, on vérifie ensuite à l'étape de test S90 s'il reste un jeu de données, donc un nouvel ensemble de résultats, à afficher dans le même tableau, après une nouvelle exécution de l'opération. Si tel est le cas, on obtient le nouveau jeu de données dans une étape d'obtention S91 et on reprend l'algorithme au test S83 décrit ci-dessus. Dans le cas contraire, le procédé d'affichage prend fin à l'étape de fin S92. Notons ici que dans une variante de réalisation, l'affichage effectif des résultats peut se faire à ce niveau, après mise à jour final de l'ensemble des colonnes et des lignes du tableau. Il est bien sûr possible de sauvegarder le tableau final pour une 5 utilisation ultérieure des données en ce format. Par ailleurs, le tableau peut également être construit en inversant la signification des lignes et des colonnes. REVENDICATIONS 1. Procédé de création à l'aide d'une interface graphique utilisateur (10, 200), d'une séquence d'exécution d'un ensemble d'opérations (01-03), caractérisé en ce qu'il comporte les étapes suivantes : - affichage d'au moins une liste d'opérations exécutables (OP1-OP4) pour au moins un service choisi (SV1-SV4) ; - génération de l'ensemble d'opérations par sélection d'opérations de la (les) liste(s) affichée(s), et affichage dudit ensemble d'opérations dans un ordre choisi (01-03) correspondant à un ordre ultérieur d'exécution des opérations ; et pour au moins une opération à exécuter (02) dudit ensemble 15 d'opérations : - affichage d'au moins un champ d'introduction d'opérande (A2), l'introduction d'opérande étant liée à au moins un résultat d'exécution d'une opération antérieure (01) de l'ensemble d'opérations. 20 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape de création d'objets graphiques correspondant chacun à une opération dudit l'ensemble d'opérations généré et dont la sélection par l'utilisateur commande l'affichage d'une page de visualisation correspondante (16, 18, 20). 25 3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comporte en outre pour une page de visualisation d'une opération courante, les étapes suivantes : - affichage d'au moins un résultat de l'exécution de l'opération 30 courante (01) ; et - affichage d'au moins un champ d'introduction d'opérande (A2) pour l'opération suivante (02). 4. Procédé selon la revendication 3, caractérisé en ce qu'il comporte en outre une étape d'affichage, dans la page de visualisation de l'opération courante (01), du (ou des) champ(s) d'introduction d'opérande (Al) de l'opération courante. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que au moins une opération est une requête d'exécution à distance d'un service Web. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce que au moins une opération est une fonction prédéfinie et exécutable localement. 15 7. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'une liste d'opérations exécutables pour un service choisi est obtenue par lecture d'un fichier WSDL décrivant le service. 8. Procédé selon l'une des revendications 3 à 7, caractérisé en ce 20 que l'affichage d'au moins un résultat de l'exécution de l'opération courante est effectué sous forme d'un tableau au format lignes et colonnes (34), une colonne, réciproquement une ligne, comprenant un nom de résultat et une ligne, réciproquement une colonne, comprenant au plus une valeur associée à chaque nom de résultat. 25 9. Procédé selon la revendication 8, caractérisé en ce qu'il comporte une étape d'introduction d'opérande dans ledit au moins un champ d'introduction d'opérande (A2) par sélection d'au moins une valeur d'un tableau de résultat d'exécution d'opérations antérieures. 10. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape d'introduction d'opérande dans ledit au moins 30un champ d'introduction d'opérande par sélection d'au moins une valeur parmi un ensemble de valeurs de résultats d'exécution d'opérations (A2) antérieures proposées à l'aide d'un menu déroulant. 11. Procédé selon la revendication 8, caractérisé en ce qu'il comporte une étape d'introduction d'opérande dans ledit au moins un champ d'introduction d'opérande (A2) par sélection d'un nom de résultat d'un tableau de résultat d'exécution d'opérations antérieures, les valeurs d'opérande pour l'opération suivante étant alors les valeurs des lignes pour une colonne, réciproquement des colonnes pour une ligne. 12. Procédé selon la revendication 11, caractérisé en ce que la sélection d'un nom de résultat s'effectue à l'aide d'un menu déroulant proposant un ensemble de nom de résultat à sélectionner. 13. Procédé selon la revendication 11, caractérisé en ce que la sélection d'un nom de résultat d'un tableau de résultat d'exécution d'opérations antérieures est suivie d'une étape de sélection des lignes, réciproquement des colonnes, à prendre en compte pour déterminer les valeurs d'opérandes. 20 14. Procédé selon l'une des revendications 9 à 13, caractérisé en ce que le nombre de valeurs d'opérande ainsi sélectionnées à partir de tableaux de résultats d'exécution d'opérations antérieures, détermine le nombre d'itérations d'exécution de l'opération suivante. 15. Procédé selon la revendication 14, caractérisé en ce que les résultats issus de l'exécution des itérations de l'opération suivante sont affichés dans un même tableau de résultat. 30 16. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un opérande et/ou un résultat d'exécution d'une opération est (sont) 25défini(s) par des caractéristiques prédéfinies telles que nom et/ou type de données. 17. Procédé selon la revendication 16, caractérisé en ce qu'il comporte une étape d'introduction automatique d'opérande dans ledit au moins un champ d'introduction d'opérande à partir d'un résultat d'une opération précédente qui possède au moins une caractéristique similaire. 18. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape d'introduction d'opérande dans ledit au moins un champ d'introduction d'opérande par saisie manuelle d'une valeur ou d'un nom représentatif d'une variable. 19. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte une étape d'introduction automatique d'opérande dans ledit au moins un champ d'introduction d'opérande à partir d'une variable prédéfinie. 20. Procédé selon l'une des revendications 8 à 19, caractérisé en ce que dans le cas où l'opération courante est une requête d'exécution à distance d'un service Web, il comporte une étape de formation du tableau de résultat (Tr) à partir des résultats de la requête reçus en format XML. 21. Procédé selon la revendication 20, caractérisé en ce que les résultats de la requête en format XML se présentent sous la forme d'une arborescence comportant au moins une balise racine et des balises feuilles, une balise comportant un nom et éventuellement une valeur et/ou un type, l'étape de formation du tableau de résultat (Tr) s'effectuant en associant un nom de balise feuille à un nom de résultat et une valeur d'une balise feuille à une valeur de résultat. 22. Procédé selon la revendication 21, caractérisé en ce que l'ordonnancement des valeurs dans les lignes, réciproquement les colonnes, du tableau de résultat (Tr) s'effectue selon l'ordre de parcours du document XML contenant les résultats de la requête d'exécution à distance, une cellule du tableau restant vide si la valeur de la balise correspondante n'existe pas. 23. Procédé selon l'une des revendications 21 ou 22, caractérisé en ce que l'association du nom de la balise feuille au nom de résultat s'effectue par une étape préalable de développement du document XML contenant les résultats de la requête, dans laquelle - on identifie au moins deux groupes, un groupe étant une balise XML qui contiens: des balises feuilles et/ou des balises de groupe, formant des groupes de structure similaire ; - on détecte l'existence dans le document XML d'au moins un 15 groupe en proximité immédiate ayant une structure non-similaire ; et - en cas de détection positive, on intègre le contenu du groupe de structure non-similaire dans chacun des groupes de structure similaire. 26. Procédé selon l'une des revendications précédentes, caractérisé 20 en ce que les champs d'introduction d'opérande sont créés en fonction de la description de l'opération courante correspondante obtenue à partir d'un fichier WSDL. 27. Procédé selon la revendication 24, caractérisé en ce que les 25 champs d'introduction d'opérande sont organisés sous forme de tableau traduisant la représentation de l'arborescence de la partie du fichier WSDL décrivant les opérandes de l'opération courante, l'arborescence comportant au moins une balise racine et des balises feuilles. 30 26. Procédé selon la revendication 25, caractérisé en ce qu'un nom de champ d'introduction d'opérande est associé à un nom de balise feuille deladite partie du fichier WSDL alors qu'un nom global associant une pluralité de champs d'introduction d'opérande est associé à un nom de groupe. 27. Dispositif de création à l'aide d'une interface graphique utilisateur (10, 200), d'une séquence d'exécution d'un ensemble d'opérations (01-03), caractérisé en ce qu'il comprend : - des moyens d'affichage d'au moins une liste d'opérations (OP1-OP2) exécutables pour au moins un service choisi (SV1-SV4) ; et - des moyens de génération de l'ensemble d'opérations par sélection d'opérations de la (les) liste(s) affichée(s) et affichage dudit ensemble d'opérations dans un ordre choisi (01-03) correspondant à un ordre ultérieur d'exécution des opérations, les moyens d'affichage étant aptes, pour au moins une opération à exécuter (02) dudit ensemble d'opérations, à afficher au moins un champ d'introduction d'opérande (A2), l'introduction d'opérande étant liée à au moins un résultat d'exécution d'une opération antérieure (01) de l'ensemble d'opérations. 28. Dispositif selon la revendication 27, caractérisé en ce qu'il comprend en outre des moyens de création d'objets graphiques correspondant chacun à une opération dudit ensemble d'opérations généré et aptes à être sélectionnés par l'utilisateur pour commander l'affichage d'une page de visualisation correspondante (16, 18, 20). 29. Dispositif selon l'une des revendications 27 ou 28, caractérisé en 25 ce que les moyens d'affichage sont aptes, pour une page de visualisation d'une opération courante, à : - afficher au moins un résultat de l'exécution de l'opération courante ; et - afficher au moins un champ d'introduction d'opérande pour 30 l'opération suivante.30. Dispositif selon la revendication 29, caractérisé en ce que les moyens d'affichage sont aptes, dans la page de visualisation de l'opération courante, à afficher le (ou les) champ(s) d'introduction d'opérande de l'opération courante. 31. Dispositif selon la revendication 27, dans lequel les moyens d'affichage sont aptes à afficher au moins un résultat de l'exécution de l'opération courante sous forme d'un tableau au format lignes et colonnes, une colonne, réciproquement une ligne, comprenant un nom de résultat et une ligne, réciproquement une colonne, comprenant au plus une valeur associée à chaque nom de résultat. 32. Support d'informations lisible par un système informatique, éventuellement amovible, totalement ou partiellement, notamment CD-ROM ou support magnétique, tel un disque dur ou une disquette, ou support transmissible, tel un signal électrique ou optique, caractérisé en ce qu'il comporte des instructions d'un programme ordinateur permettant la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 26, lorsque ce programme est chargé et exécuté par un système informatique. 33. Programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 26, lorsque ce programme est chargé et exécuté par un système informatique.