FR2994299A3 - Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations - Google Patents

Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations Download PDF

Info

Publication number
FR2994299A3
FR2994299A3 FR1257611A FR1257611A FR2994299A3 FR 2994299 A3 FR2994299 A3 FR 2994299A3 FR 1257611 A FR1257611 A FR 1257611A FR 1257611 A FR1257611 A FR 1257611A FR 2994299 A3 FR2994299 A3 FR 2994299A3
Authority
FR
France
Prior art keywords
data
computing device
computer
instructions
protocol
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
FR1257611A
Other languages
English (en)
Inventor
Wyk Adriaan Van
Ben Fourie
Jager Schalk De
Pieter Janson
Natachya Raath
Roux Lenz Le
Toit Wynand Du
Olaf Wagner
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.)
K2 Software Inc
Original Assignee
Sourcecode Technology Holdings Inc
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 Sourcecode Technology Holdings Inc filed Critical Sourcecode Technology Holdings Inc
Priority to FR1257611A priority Critical patent/FR2994299A3/fr
Publication of FR2994299A3 publication Critical patent/FR2994299A3/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

La présente invention se rapporte aux logiciels métiers automatisés et, en particulier, aux procédés et dispositifs de traitement d'objets métiers, de formulaires électroniques et de déroulement d'opérations. Le système décrit utilise les sources d'intégration d'applications entreprises (EAI) pour fournir un environnement cadre de niveau supérieur qui donne la possibilité aux utilisateurs techniques et non techniques de créer des objets métiers logiques qui incluent des définitions de données et des actions ou procédés d'après des sources de données nouvelles ou existantes.

Description

PROCEDES ET DISPOSITIF DE TRAITEMENT D'OBJETS METIERS, DE FORMULAIRES ELECTRONIQUES ET DE DEROULEMENT D'OPERATIONS La présente description se rapporte de manière générale aux logiciels métiers automatisés et, en particulier, aux procédés et dispositifs de traitement d'objets métiers, de formulaires électroniques et de déroulement d'opérations.
A mesure que le nombre de sources d'informations dans les organisations s'accroit, il devient de plus en plus difficile pour les consommateurs d'informations d'y accéder d'une manière logique et structurée qui se rapporte aux objets métiers traditionnels dont ils sont familiers à l'intérieur de leurs organisations (par ex. clients, actifs, vendeurs, personnels, etc). Les données des systèmes existants sont typiquement rendues disponibles d'une manière très technique qui nécessite des aptitudes techniques et de développement importants pour les communiquer aux utilisateurs non techniques dans l'organisation. Aucun mécanisme praticable n'existe pour que les utilisateurs non techniques ajoutent de l'information dans une définition d'objet métier logique sans impliquer d'aptitudes techniques et de développement. Similairement, aucune solution praticable n'existe aujourd'hui qui permet aux utilisateurs à la fois techniques et non techniques des données d'accéder à leur information depuis des sources d'information/données multiples dans un objet métier structuré, tout en conservant la flexibilité d'ajouter des définitions d'information additionnelles aux objets métiers existants ou pour créer de nouveaux objets métiers à partir de sources de données existantes ou nouvelles sans besoin de développer une solution complexe. - 2 - Les systèmes d'intégration d'applications d'entreprises (EAI) existants combinés aux outils de développement peuvent être utilisés pour développer des solutions taillées sur mesure qui rendent les données et informations plus accessibles, mais ces solutions sont typiquement programmées en dur et requièrent des aptitudes techniques et de développement significatives pour les conserver et modifier au fil du temps. Il n'y a aucune manière praticable pour les utilisateurs non techniques de changer la définition des données structurées (objets métiers) ou d'ajouter des sources ou champs d'information additionnels dans des définitions d'objet métier existantes qui peuvent déjà exister à l'intérieur de leurs organisations. Par exemple, l'information client peut exister dans un système CRM, système ERP et un système de suivi des problèmes classique. Les solutions EAI existantes assistent l'intégration des données entre ces systèmes mais ne fournissant pas de mécanisme pour visualiser une définition individuelle d'un client comme un objet métier logique indépendamment de l'emplacement d'où l'information est sourcée. En outre, les travailleurs informatiques sont limités par les informations et formulaires métier statiques qui leur sont présentés par les applications de solution ou les applications développées sur mesure qu'ils utilisent au jour le jour. Indépendamment du fait que ces formulaires sont basés sur client léger (web ou navigateur) OU sur client intelligent (fenêtres), la travailleur informatique à ajouter des supplémentaires à la demande aux formulaires la base de son état et contexte actuel est Les technologies de formulaires existantes capacité du informations existants sur très limitée. dépendent de l'implication d'un développeur afin de lier le formulaire à 35 une source de données (service web, base de données, etc) qui remplit le formulaire d'informations sur la base d'un évènement d'utilisateur (clic sur un bouton, etc). Si - 3 - l'utilisateur final requiert l'affichage d'informations supplémentaires sur le formulaire, il a besoin de reposer sur une fonctionnalité prédéveloppée spécifique à l'application qui lui permettrait de visualiser les informations ou champs de données additionnels sur les formulaires. Cette implémentation dépend néanmoins de la logique encapsulée dans l'application ou la solution développée sur mesure. Cette implémentation dépend néanmoins de la logique encapsulée dans l'application ou la solution développée sur mesure. Le défi consiste à donner la possibilité aux utilisateurs d'ajouter une information supplémentaire à un formulaire spécifique, à la demande, indépendamment de la source de données, sans besoin d'implication technique ou de développement. Une fois que ces formulaires ont été personnalisés, les plateformes sous-jacentes ont besoin de mémoriser chaque paramètres d'utilisateurs dans un système de personnalisation qui permettra de reconnaître l'utilisateur la prochaine fois qu'il accède au formulaire. Le résultat étant que chaque utilisateur a la capacité de visualiser sa vue personnalisée d'un formulaire Des outils d'automatisation de processus existants ne fournissent pas le niveau nécessaire d'outils et concepts de modélisation pour permettre aux utilisateurs à la fois techniques et non techniques de créer une solution de processus métier finie dans un environnement d'outils d'automatisation/modélisation individuel. Il est extrêmement difficile aux analystes métiers, aux techniciens du propriétaire du processus/métier d'utiliser une solution individuelle qui permet à tous les rôles de collaborer de manière transparente afin de découvrir, modéliser au automatiser rapidement les processus métiers à l'intérieur des organisations. Les outils d'automatisation de processus métier et de déroulement d'opérations existants sont déconnectés et ne permettent pas un environnement individuel qui rassemble les utilisateurs de - 4 - métiers techniques et non techniques avec un ensemble d'outils qui intègre en profondeur les blocs de construction nécessaires.
Le système décrit utilise les sources d'intégration d'applications entreprises (EAI) (par ex. logiciel EAI, services web, API d'application) pour fournir un environnement cadre de niveau supérieur (par ex. courtier runtime et services d'adaptateur) qui donne la possibilité aux utilisateurs techniques et non techniques de créer des objets métiers logiques qui incluent des définitions de données (par ex. prénom de client, nom de famille, etc) et des actions ou procédés (par ex. sauvegarder, charger, supprimer) d'après des sources de données nouvelles ou existantes. Les sources de données existantes incluent les systèmes développés ERP, CRM et/ou sur mesure dans une organisation alors que de nouvelles sources de données sont créées et conservées par le système décrit. Le système décrit permet aux utilisateurs de combiner les données de sources multiples en une définition d'objet métier individuel, incluant des définitions de données et d'actions/procédés. Le nouvel objet métier logique expose une structure de données logique individuelle et une visualisation de l'objet ainsi que d'un ensemble individuel de procédés logiques qui sont associés à l'objet. Le courtier d'objet (moteur d'exécution) interprète la nouvelle définition d'objet et effectue en courtage de données/informations et appels aux sources de données (ou systèmes existants). Des champs additionnels peuvent être ajoutés à la nouvelle définition d'objet. Ces champs additionnels sont associés aux identifiants uniques d'après les autres sources de données incluses dans la nouvelle définition d'objet. Les données proprement dites sont de préférence mémorisées dans un nouveau magasin de données où toutes les structures de données et actions (par ex. créer, charger, mettre à jour, supprimer par exemple) sont gérées - 5 - par le courtier runtime. Le résultat étant un objet métier dynamique dont la définition peut être changée soit en ajoutant, soit en supprimant des données ou actions sans qu'il soit nécessaire d'impliquer des ressources techniques ou de développement pour reconfigurer ou recompiler les objets proprement dits. Les systèmes existants sont accédés via un composant d'objet de service. L'objet de service pour système back-end spécifique implémente l'interface de base escomptée par le courter d'objet. Ceci permet au courtier d'objet d'utiliser un mécanisme de communication cohérent pour échanger des données et appels de fonctions avec l'application qu'il intègre. L'objet Courtier conjointement à l'interface d'objet de service fournit l'infrastructure sous-jacente pour échanger des données, appels de procédé et participation aux services de prise en charge comme des transactions, modèles de compensation, gestion d'exceptions et gestion de rôle/sécurité. Le courtier d'objet inclut aussi une implémentation à signature unique ultralégère qui lui permet d'utiliser un ensemble d'identification unique pour accéder à des systèmes multiples (chacun avec leur propre modèle d'authentification).
La création d'un nouveau formulaire global (les changements reflétés sur toutes les instances de formulaire d'utilisateur) ou d'un formulaire personnel (les changements et personnalisations sauvegardés individuellement par utilisateur) peut être complétée par le travailleur informatique dans un environnement d'outils web riche, qui liste les sources de données potentielles et les composants d'interface d'utilisateur. L'environnement cadre sous-jacent est aussi responsable de la gestion des versions globale et personnelles des formulaires de manière transparente. En outre, l'environnement cadre permet la liaison dynamique entre les formulaires métiers qui ont une relation logique entre eux. Les formulaires sont - 6 - suffisamment intelligents pour reconnaitre d'autres formulaires qui peuvent coexister sur un page unique, ainsi que savoir comment réagir sur la base des évènements qui surviennent sur ces formulaires concernés. Les relations logiques entre les formulaires peuvent être le résultat de la relation entre les données utilisées sur la page et/ou peuvent être les relations définies par l'utilisateur au moyen de la liaison simple d'évènements d'un formulaire aux actions sur un autre. Par exemple, un formulaire de liste de commandes peut avoir une relation avec un formulaire client qui lui permettre de charger automatiquement une liste de commandes pour un client spécifique quand les deux formulaires sont affichés sur une page unique. LE formulaire de le formulaire configuration les scénarios l'utilisateur page que le commande est « averti » de sa relation avec client sur la base d'une information de antérieure et peut afficher automatiquement de configuration de relation potentiels à quand le formulaire est placé sur la même formulaire client. Au cas où la relation stipulerait que le formulaire de liste de commandes se charge lui-même chaque fois qu'un numéro de client est entré dans le champ de numéro client sur le formulaire client et le bouton « trouver » est cliqué.
Par conséquent, le travailleur informatique a la possibilité de changer la mise en page de ces pages à la demande (par ex. ajouter ou supprimer des formulaires sur une page et définir de nouvelles relations), qui utilise ensuite à son tour un moteur de personnalisation pour mémoriser des changements spécifiques d'utilisateur et des relations définies entre les formulaires. Les formulaires sont programmés en dur et peuvent être changés au vol. Le système décrit utilise un modèle de construction de formulaire dynamique pendant le temps de conception et d'exécution, incluant la liaison de données, les définitions d'évènements et l'environnement cadre de - 7 - liaison entre évènements, commandes et formulaires sur une page. Le système décrit facilite aussi la création de processus automatisés par à la fois les utilisateurs techniques et non techniques. Les fonctionnalités de découverte de processus assistent les utilisateurs pendant la phase d'identification de processus. Les outils fournis assistent à la fois les utilisateurs techniques et non techniques afin d'identifier les processus à l'intérieur de l'organisation, y compris les artéfacts de solution de prise en charge comme les formulaires, règles, actions, résultats et objets métiers impliqués. Les fonctionnalités de modélisation de processus incluent l'aptitude à combiner les artéfacts définis en un modèle de processus qui peut être publié dans un environnement d'exécution où il peut être exécuté et utilisé par les utilisateurs de métiers dans l'organisation.
L'invention concerne un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour combiner des propriétés et des procédés d'une pluralité de systèmes de base de données différents, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : exécuter/exécutant un premier service de courtier pour interagir avec une première source de données en utilisant un premier protocole pour générer un premier objet métier, le premier objet métier comprenant une première propriété et un premier procédé, le premier objet métier étant dans un format déclaratif ; exécuter/exécutant un deuxième service de courtier pour interagir avec une deuxième source de données en utilisant un deuxième protocole pour générer un deuxième objet métier, le premier protocole étant différent du - 8 - deuxième protocole, le deuxième objet métier comprenant une deuxième propriété et un deuxième procédé, le deuxième objet métier étant dans le format déclaratif ; et - mémoriser/mémorisant un objet métier combiné comprenant la première propriété, le premier procédé, la deuxième propriété, et le deuxième procédé, l'objet métier combiné étant dans le format déclaratif.
De plus, l'invention concerne un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour générer des données associées à un formulaire électronique, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - extraire/extrayant un premier champ de données d'une première source de données, la première source de données ayant un premier protocole ; - extraire/extrayant un deuxième champ de données d'une deuxième source de données, la deuxième source de données ayant un deuxième protocole, le deuxième protocole étant différent du premier protocole ; - fournir/fournissant une interface d'utilisateur graphique où le premier champ de données et le deuxième champ de données seront combinés dans le formulaire électronique ; - permettre/permettant à un troisième champ de données d'être ajouté au formulaire par l'intermédiaire de l'interface d'utilisateur graphique ; et 35 - générer/mémorisant des données indicatrices du troisième champ pour une troisième source de données, la troisième source de données ayant un troisième protocole, le 25 30 - 9 - troisième protocole étant différent du premier protocole, le troisième protocole étant différent du deuxième protocole.
En outre, l'invention concerne un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour mémoriser une fonction associée à un formulaire électronique, les instructions faisant qu'un dispositif informatique va / le dispositif informatique: - recevoir/recevant une définition de la fonction via une interface d'utilisateur graphique, dans laquelle au moins un paramètre de la fonction est défini en sélectionnant une représentation graphique du paramètre, la représentation graphique du paramètre étant associée à une représentation graphique d'un objet métier ; - générer/générant une portion de structure fondée sur la définition reçue de la fonction, la portion de structure définissant la fonction ; - générer/générant une portion d'interface d'utilisateur associée à la portion de structure, la portion d'interface d'utilisateur définissant une interface d'utilisateur à utiliser pour tester la fonction ; - combiner/combinant la portion de structure et la portion d'interface d'utilisateur pour former un fragment de code de fonction ; et - mémoriser/ mémorisant le fragment de code de fonction dans un support lisible par ordinateur. L'invention concerne également un support lisible 35 par ordinateur mémorisant des instructions ou dispositif informatique pour modifier de façon dynamique une définition d'un objet métier fondée sur un rôle associé à - 10 - un utilisateur, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - extraire/extrayant une définition d'objet complète à partir d'une source de données, la définition d'objet complète comprenant une pluralité de propriétés d'objet et une pluralité de procédés d'objets ; extraire/extrayant le rôle associé à l'utilisateur ; - extraire/extrayant les données indicatrices d'une pluralité de propriétés autorisées associées au rôle et d'une pluralité de procédés autorisés associés au rôle ; et - générer/générant une définition d'objet réduite fondée sur la définition d'objet complète et les données indicatrices de la pluralité de propriétés autorisées et de procédés autorisés. 20 L'invention concerne aussi un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour mettre à jour une pluralité de champs de données dans un formulaire électronique, les instructions 25 faisant qu'un dispositif informatique va / le dispositif informatique : - détecter/détectant un événement associé à une mise à jour au niveau d'un dispositif client ; - envoyer/envoyant un appel de procédé depuis le dispositif client à un serveur de courtier en réponse à la détection de l'événement, l'appel de procédé utilisant un premier protocole ; et - recevoir/recevant des données du serveur de courtier en utilisant le premier protocole, dans lequel les données 15 30 35 reçues du serveur de courtier sont extraites d'une pluralité de sources de données différentes en utilisant une pluralité de protocoles différents.
L'invention concerne un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour concevoir un processus de déroulement d'opérations, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - placer/plaçant un premier objet et un deuxième objet sur un premier canevas de conception par ordinateur pour créer une carte de ressource, le premier objet étant indicateur d'une première ressource métier, le deuxième objet étant indicateur d'une deuxième ressource métier différente ; - connecter/connectant le premier objet au deuxième objet avec une flèche, la flèche étant indicatrice du processus de déroulement d'opérations ; - associer/associant un deuxième canevas de conception par ordinateur avec la flèche ; et - placer/plaçant une pluralité d'objets sur le deuxième canevas de conception par ordinateur pour créer une carte de processus, chaque objet dans la pluralité d'objets étant indicateur d'une étape dans le processus de déroulement d'opérations.
De plus, l'invention concerne un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour concevoir un processus de déroulement d'opérations, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - 12 - - placer/plaçant un premier objet et un deuxième objet sur un premier canevas de conception par ordinateur pour créer une carte de processus, le premier objet étant indicateur d'une première étape de processus, le deuxième objet étant indicateur d'une deuxième étape de processus ; - connecter/connectant le premier objet au deuxième objet avec une flèche, la flèche étant indicatrice d'une progression de la première étape de processus à la deuxième étape de processus ; et créer/créant un troisième objet et un quatrième objet, le troisième objet et le quatrième objet étant chacun indicateurs de la première étape de processus, le premier objet représentant un objet parent, le troisième objet représentant un premier objet enfant par rapport à l'objet parent, le quatrième objet représentant un objet enfant différent dans lequel l'objet par rapport à l'objet parent comprend une deuxième parent, pluralité de propriétés globales et le premier objet enfant hérite d'un sous-ensemble des propriétés globales.
En outre, l'invention concerne un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour concevoir de manière collaborative un déroulement d'opérations automatisé, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - placer/plaçant une pluralité d'objets sur un canevas de conception par ordinateur au niveau d'un premier dispositif client pour créer une représentation d'un déroulement d'opérations ; - 13 - partager/partageant au moins une portion de la représentation d'un déroulement d'opérations avec un deuxième dispositif client différent via un réseau ; - échanger/échangeant des messages associés à la portion de la représentation d'un déroulement d'opérations entre le premier dispositif client et le deuxième dispositif client ; et - mémoriser/mémorisant des données indicatrices des messages associés à la mémorisation de données indicatrices de la représentation d'un déroulement d'opérations.
L'invention concerne également un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour afficher une séquence d'installation, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - afficher/affichant une pluralité d'images onglet dans une première zone d'un affichage, chacune des images onglet représentant une étape dans la séquence d'installation ; afficher/affichant une image complète dans une deuxième zone de l'affichage, l'image complète représentant une des étapes dans la séquence d'installation ; - détecter/detectant un premier événement associé à une image onglet dans la pluralité d'images onglets ; et afficher/affichant une image popup en réponse à la 35 détection du premier événement, l'image popup étant une version plus grande de l'image onglet associée au premier événement. 30 - 14 - L'invention concerne aussi un support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour configurer une étape dans un processus de déroulement d'opérations, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - afficher/affichant un objet graphique indicateur de l'étape dans le processus de déroulement d'opérations ; - détecter/détectant un événement associé à l'objet graphique ; - afficher/affichant une animation de l'objet graphique tournant en trois dimensions en réponse à la détection de l'événement associé à l'objet graphique ; - afficher/affichant une séquence d'installation associée à l'étape dans le processus de déroulement d'opérations ; et - recevoir/recevant des paramètres de configuration associés à l'étape dans le processus de déroulement d'opérations.
Les fonctionnalités et avantages supplémentaires sont décrits par la suite et ressortiront de la description détaillée suivante et des figures. FIG.1 est un schéma fonctionnel de niveau supérieur 30 d'un système de communication. FIG.2 est un schéma fonctionnel plus détaillé montrant un exemple d'un dispositif informatique. 35 FIG.3 est un schéma fonctionnel montrant des connexions exemplaires entre une pluralité de sources de - 15 - données et un formulaire électronique via un courtier d'objet. FIG.4 est un schéma fonctionnel montrant des 5 connexions exemplaires entre des sources de données et des objets métiers. FIG.5 est une vue plus détaillée d'une page de commandes de client exemplaire et des connexions associées à un objet métier de client et un objet de métier de 10 commande. FIG.6 est un organigramme d'un processus de courtier d'objet exemplaire. 15 FIG.7 est un organigramme d'un processus de formulaire exemplaire. FIG.8 est une capture d'écran d'un outil de conception de déroulement d'opérations exemplaire qui 20 permet à un utilisateur de définir une carte de ressource. FIG.9 est une capture d'écran d'un outil de conception de déroulement d'opérations exemplaire qui permet à un utilisateur de définit une carte de processus. 25 FIG.10 est une carte de processus exemplaire avec une région localisée de la carte de processus mise en évidence. 30 FIG.11 est une capture d'écran d'une séquence d'activité exemplaire. FIG.12 est une capture d'écran d'un assistant de configuration exemplaire dans un état partiellement tourné. 35 FIG.13 est une capture d'écran de l'assistante de configuration exemplaire dans un état complètement tourné. - 16 - FIG.14 est une capture d'écran de l'assistant de configuration exemplaire avec une fenêtre popup.
FIG.15 est un organigramme d'un processus d'assistant de configuration exemplaire. Le présent système est réalisé au mieux dans un système de communication en réseau. Un schéma fonctionnel de niveau supérieur d'un système de communication en réseau exemplaire 100 est illustré sur la FIG.1. Le système illustré 100 inclut un ou des dispositifs clients 102, un ou des routeurs 106, et une pluralité de sources de données différentes 108 incluant des serveurs de bases de données 110 et/ou des bases de données 112. Les données transférées à/des dispositifs clients 102 de/aux sources de données 108 sont gérées par un ou des serveurs de courtier d'objet 114. Chacun de ces dispositifs peut communiquer l'un avec l'autre via une connexion à un ou des canaux de communication 116 comme l'Internet et/ou d'autres réseaux de données incluant, mais non limités à, n'importe quel réseau étendu ou réseau local approprié. On appréciera que tous les dispositifs décrits ici peuvent être directement connectés les uns aux autres plutôt que via un réseau.
Les sources de données 108 mémorisent une pluralité de fichiers, programmes et/ou pages web dans une ou plusieurs bases de données 112 en vue d'une utilisation par les dispositifs clients 102. Par exemple, une source de données peut mémoriser une information client. Les sources de données 108 peuvent être connectées directement à un serveur de base de données 110 et/ou via une ou plusieurs connexions de réseau. Une source de données 108 et/ou un serveur de 35 courtier d'objet 114 peut interagir avec un grand nombre d'autres dispositifs. En conséquence, chaque source de données 108 et/ou un serveur courtier d'objet 114 est - 17 - typiquement un ordinateur haut de gamme avec une grande capacité de stockage, une ou plusieurs microprocesseurs rapides et une ou plusieurs connexions de réseau à grande vitesse. Inversement, concernant un serveur typique, chaque dispositif client 102 inclut typiquement moins de capacité de stockage, un microprocesseur unique et une connexion de réseau unique. Un schéma fonctionnel plus détaillé des systèmes électriques d'un dispositif informatique (par ex. dispositif client portable 102, dispositif client informatique personnel 102, routeur 106, serveur de base de données 110 et/ou serveur courtier d'objet 114) est illustré sur la FIG.2.Bien que les systèmes électriques de ces dispositifs informatiques peuvent être similaires, les différences structurelles entre ces dispositifs sont bien connues. Par exemple, un dispositif client portable typique 102 est petit et ultraléger comparé à un serveur de base de données typique 110.
Le dispositif informatique exemplaire 102, 106, 110, 114 inclut une unité principale 202 qui inclut de préférence un ou des processeurs 204 couplés électriquement par une bus de données/d'adresse 206 à un ou des dispositifs de mémoire 208, d'autres circuits informatiques 210 et un ou des circuits d'interface 212. Le processeur 204 peut être n'importe quel processeur approprié, comme un microprocesseur de la famille de microprocesseurs INTEL PENTIUM°. La mémoire 208 inclut de préférence une mémoire volatile et une mémoire non volatile. De préférence, la mémoire 208 mémorise un programme logiciel qui interagit avec les autres dispositifs dans le système 100 comme décrit ci-dessous. Ce programme peut être exécuté par le processeur 204 de n'importe quelle manière appropriée. La mémoire 208 peut aussi stocker des données numériques indiquant des documents, fichiers, programmes, pages web, - 18 - etc. extraits d'un autre dispositif informatique et/ou chargés via un dispositif d'entrée 214. Le circuit d'interface 212 peut être implémenté en 5 utilisant n'importe quelle interface standard appropriée, comme une interface Ethernet et/ou USB (Universal Serial Bus). Un ou des dispositifs d'entrée 214 peuvent être connectés au circuit d'interface 212 pour entrer des données et commandes dans l'unité principale 202. Par 10 exemple, le dispositif d'entrée 214 peut être un clavier, une souris, un écran tactile, un trackpad, un trackball, un système isopoint et/ou à reconnaissance vocale. Un ou plusieurs écrans, imprimantes, haut-parleurs 15 et/ou autres dispositifs de sortie 216 peuvent être connectés à l'unité principale 202 via le circuit d'interface 212. L'écran 216 peut être à tubes cathodiques (CRTs), à cristaux liquides, (LCDs ou de n'importe quel autre type. L'écran 216 génère des affichages visuels de 20 données générées pendant le fonctionnement du dispositif informatique 102, 106, 110, 114. Par exemple, l'écran 216 peut être utilisé pour afficher les pages web reçues depuis le serveur courtier d'objet 114 incluant les données de sources de données multiples 108. Les affichages visuels 25 peuvent inclure des demandes d'intervention humaine, statistiques d'exécution, valeurs calculées, données, etc. Un ou plusieurs dispositifs de stockage 218 peuvent aussi être connectés à l'unité principale 202 via le 30 circuit d'interface 212. Par exemple un disque dur, un pilote Cd, un pilote DVD et/ou d'autres dispositifs de stockage peuvent être connectés à l'unité principale 202. Les dispositifs de stockage 218 peuvent stocker n'importe quel type de données appropriées. 35 Le dispositif informatique 102, 104 peut aussi échanger des données avec d'autres dispositifs de réseau - 19 - 220 via une connexion au réseau 116. La connexion au réseau peut être n'importe quel type de connexion réseau, comme une connexion Ethernet, une ligne d'abonné numérique (DSL), une ligne téléphonique, un câble coaxial, etc. Les utilisateurs du système 100 peuvent être invités à s'enregistrer sur un ou plusieurs dispositifs informatiques 102, 106, 110, 114. Dans un tel cas, chaque utilisateur peut choisir un identifiant d'utilisateur (par ex. une adresse e-mail) et un mot de passe qui peut être demandé pour l'activation de services. L'identifiant d'utilisateur et le mot de passe peuvent être passés à travers le réseau 116 en utilisant un cryptage intégré au navigateur web de l'utilisateur. En variante, l'identifiant d'utilisateur et/ou le mot de passe peuvent être assignés par le dispositif informatique 102, 106, 110, 114. Dans un mode de réalisation, un utilisateur au niveau d'un dispositif client 102 visualise et/ou modifie les données provenant d'une pluralité de sources de données 108 différentes via un formulaire électronique interactif. Un schéma fonctionnel exemplaire montrant les connexions entre une pluralité de sources de données 108 et un formulaire électronique 302 via un processus de courtier objet 304 est illustré sur la FIG.3. De manière générale, le processus de courtier d'objet 304 (décrit en détail ci-dessous en référence à la FIG.6) compile des données dans une variété de formats d'origine différents depuis les différentes sources de données (108 (par ex. les différents systèmes de base de données existants) en objets métiers normalisés 306, 308 (par ex. dans un format déclaratif comme XML). Un utilisateur peut ensuite visualiser les données en utilisant un ou des formulaires électroniques 302, 310, 312. En outre, l'utilisateur peut manipuler les données et/ou ajouter des données via les formulaires électroniques 302, 310, 312. Dans un tel cas, le processus de courtier d'objet 304 accepte les données via les objets - 20 - métiers 306, 308 et mémorise à nouveau les données dans les sources de données 108 sous le format d'origine correct Dans cet exemple, les sources de données 108 inclut une source de données 314 de planification de ressources d'entreprise (ERP), une source de données de gestion de relation client (CRM) 316, une source de données personnalisable 318, une source de données complémentaire 320 et une source de données de fonction 322. En outre, un service de rôle 323 et un magasin de données objet 325 sont inclus dans le système. Typiquement, une source de données ERP 314 mémorise des données relatives aux comptes recevables, comptes payables, inventaire, etc. Typiquement une source de données CRM 316 mémorise des données relatives aux délais de paiement, cotes, commandes, etc. Une source de données personnalisable 318 est une source de données 108 qui n'est pas considérée comme un produit commercial standard. Par exemple, une entreprise peut avoir une source de données personnalisable qui mémorise l'information de fabrication en temps réel. Certaines sources de données 108 peut utiliser un serveur intermédiaire pour les communications. Par exemple, la source de données ERP 314 utilise un serveur BizTalk 324.
La source de données complémentaires 320 mémorise des données associées aux champs de formulaire ajoutés par l'utilisateur qui ne sont pas pris en charge par une des autres sources de données 108. Par exemple, une entreprise peut lancer un programme de carte de fidélité et avoir 30 besoin de mémoriser un numéro de carte pour chaque participant. En conséquent, un utilisateur peut ajouter un champ de numéro de client fidèle à un formulaire existant contenant des données existantes. Comme les sources de données existantes 108 dans cet exemple n'incluent pas un 35 champ de numéro de client fidèle, le champ de numéro de client fidèle et les données associées sont mémorisés par la source de données complémentaire 320. - 21 - Afin de manipuler des données dans une source de données particulière 108, le processus de courtier d'objet 304 appelle de préférence des procédés intégrés à la source 5 de données associé 108. Par exemple, chaque source de données 108 inclut typiquement des procédés pour mémoriser/extraire des données dans/de la source de données 108 (par ex. la source de données CRM peut prendre en charge un procédé de chargement de contacts tel que décrit 10 en détail ci-dessous). En outre, le système 300 permet à un utilisateur de créer ses propres fonctions. Par exemple, un utilisateur peut avoir besoin d'appliquer un rabais sur certains clients. Néanmoins, les sources de données existantes 108 n'incluent pas un procédé de calcul du 15 rabais. En conséquence, l'utilisateur peut créer une fonction « Calculer Rabais » tel que décrite ci-dessous. Les fonctions définies par l'utilisateur peuvent utiliser des données provenant de plus d'une source de données 108. Les définitions de ces fonctions définies par l'utilisateur 20 sont ensuite mémorisées dans la source de données de fonction 322. Les fonctions définies par l'utilisateur peuvent être créées en utilisant un outil d'interface d'utilisateur 25 graphique. Par exemple, les paramètres d'une fonction définie par un utilisateur peuvent être définis en sélectionnant une représentation graphique du paramètre associé à un objet métier. De préférence, les fonctions définies par l'utilisateur sont mémorisées comme des 30 fragments de code. Les fragments de code incluent une portion de structure qui définit la fonction et une portion d'interface d'utilisateur qui fournit à l'utilisateur une manière de tester la fonction. Par exemple, la portion de structure peut être mémorisée comme XML et la portion 35 d'interface d'utilisateur peut être mémorisée comme HTML dans le même fichier. - 22 - Certaines fonctions définies par l'utilisateur peuvent être exécutées par es dispositifs clients 102 en réduisant ainsi la communication avec le serveur 110, 114. D'autres fonctions définies par l'utilisateur peuvent requérir une exécution du côté du serveur. De préférence, une détermination est faite si une fonction particulière doit être exécutée du côté du client ou du côté du serveur, et un indicateur de cette détermination est mémorisé avec le fragment de code de fonction. Par exemple, les fonctions définies par l'utilisateur construites à partir de primitives prédéfinies (par ex. addition, multiplication, boucle, inférieur à, etc.) peuvent être déterminées comme étant exécutables par le dispositif client 200, alors que d'autres fonctions définies par l'utilisateur qui incluent des recherches de bases de données (par ex. instruction SQL) peuvent être déterminées comme étant exécutables par un serveur 110, 114. Du point de vue d'un utilisateur, les données des 20 sources de données 108 (ainsi que les données calculées d'après les données dans les sources de données 108 par ex. un rabais) sont visualisées en utilisant un ou des formulaires électroniques 302, 310, 312. De plus, l'utilisateur peut manipuler et/ou ajouter des données via 25 les formulaires électroniques 302, 310, 312. Les formulaires 302, 310, 312 peuvent être combinés en pages 302 et un formulaire peut utiliser des données provenant de plus d'une source de données 108. Par exemple, la page de commandes client 302 combine le formulaire de contacts 30 client 310 et le formulaire de liste de commandes 312 (comme décrit en détail ci-dessous en référence à la FIG.5). De plus, des portions des formulaires et/ou des formulaires entiers qui font partir d'une page plus grande, peuvent être verrouillés de sorte que seuls certains 35 utilisateurs puissent modifier cette portion du formulaire ou de la page. - 23 - Afin de faciliter les formulaires 302, 310, 312 qui combinent des données provenant de sources de données différentes 108, le système 300 emploie un processus de courtier objet 304 (décrit en détail ci-dessous en référence à la FIG.6) et un processus de formulaire 326 (décrit en détail ci-dessous en référence à la FIG.7). Dans un mode de réalisation, le processus de courtier objet 304 est du code ASP s'exécutant sur le serveur de courtier objet 114 et le processus de formulaire 326 est du JavaScript s'exécutant sur un dispositif client 102. Le processus de courtier d'objet 304 compile des données dans une variété de formats d'origine différents à partir des différentes sources de données 108 en objets métiers normalisés 306, 308 (par ex. des fichiers XML). De plus, le processeur de courtier d'objet 304 accepte les données via les objets métiers 306, 308 et mémorise à nouveau les données dans les sources de données 108 sous le format d'origine correct.
Plus spécifiquement, le processus de courtier d'objet 304 utilise une pluralité de services de courtier pour communiquer avec les sources de données 108. De préférence, un service de courtier est utilisé pour chaque source de données 108. Dans cet exemple, le processus de 25 courtier d'objet 304 inclut un service de courtier ERP 328, un service de courtier CRM 330, un service de courtier personnalisable 332, un service de courtier complémentaire 334 et un service de courtier de fonction 336. Chaque service de courtier 328, 330, 332, 334, 336 est conçu afin 30 de communiquer avec la source de données associée 108 en utilisant les formats et protocoles d'origine de la source de données. Chaque service de courtier 328, 330, 332, 334, 336 35 expose ensuite automatiquement les propriétés et procédés de la source de données associée 108 comme des propriétés et procédés 338 normalisés à utiliser par les objets - 24 - métiers 306, 308. Par exemple, le service de courtier ERP 328 communique avec la source de données ERP 314 via le serveur BizTalk 324 et expose les propriétés et procédés de la source de données ERP 314 à l'objet métier client 306 et à l'objet métier de commande 308 comme des fichiers XML. Si de nouvelles propriétés et/ou procédés deviennent disponibles à partir d'une source de données 108, le service de courtier associé détecte de préférence ces nouvelles propriétés et/ou procédés et expose automatiquement les nouvelles propriétés et/ou procédés à utiliser par les objets métier 306, 308. Les objets métiers 306, 308 peuvent inclure certaines ou toutes les propriétés et procédés exposés 338. Chaque objet métier 306, 308 expose ensuite ses propriétés et procédé inclus 340 au processus de formulaire 326. Le processus de formulaire 326 appelle des procédés d'objets métiers 340 en réponse aux évènements de formulaire et remplit les formulaires 302, 310, 312 avec des données des propriétés d'objet métier 340. Par exemple, un utiliser peut presser un bouton « Charger » sur la page de commandes client 302, qui amène le processus de formulaire 326 à appeler un ou plusieurs procédés 340 exposés par les objets métiers 306, 308. Ceci amène en retour le processus de courtier d'objet 304 à extraire les données appropriées d'une ou plusieurs sources de données 108. Les données sont ensuite renvoyées comme des propriétés des objets métiers 306, 308 et le processus de formulaire 326 utilise les données pour remplir les formulaires 310, 312. En outre, le processus de formulaire 326 peut mémoriser des valeurs des propriétés d'objets métiers 340, et des procédés d'appel pour remémoriser les nouvelles données modifiées dans la source de données appropriée 108 via le processus de courtier d'objet 304. Par exemple, un formulaire peut accepter une nouvelle valeur pour une - 25 - adresse client et appeler un procédé UpdateContact pour que la nouvelle adresse soit mémorisée dans la source de données appropriée 108.
Un schéma fonctionnel plus détaillé montrant ces connexions entre les sources de données exemplaires 108 et les objets métiers exemplaires 306, 308 est illustré sur la FIG.4. Dans cet exemple, l'objet métier client 306 est connecté à la source de données ERP 314 et la source de données CRM 316. L'objet métier commande 308 est connecté à la source de données ERP 314, la source de données complémentaire 320 et la source de données de fonction 322. Ces connexions logiques peuvent être définies de n'importe quelle manière appropriée. Par exemple une interface d'utilisateur graphique peut être utilisée pour permettre à un utilisateur de tracer des lignes de connexion entre des représentations graphiques des sources de données 108 et des représentations graphiques des objets métiers 306, 308.
Ces connexions logiques sont conservées par le processus de courtier d'objet 304. Par exemple, les données pour remplir le formulaire de contact client 310 et le formulaire de liste de commandes 312 sont apportées dans l'objet métier client 306 et l'objet métier de commande 308 à partir des sources de données 108 par le processus de courtier d'objet 304. Similairement, de nouvelles données modifiées du formulaire de contact client 310 et du formulaire de liste de commandes 312 est envoyé de l'objet métier client 306 et de l'objet métier de commande 308 aux sources de données 108 par le processus de courtier d'objet 304. En outre, le service de rôle 323 peut générer une définition d'objet réduite sur la base de ces définitions d'objet complètes. Par exemple, le service de rôle 323 peut extraire un rôle associé à un utilisateur particulier et une pluralité de propriétés et/ou procédés autorisés associés à ce rôle. Les propriétés et/ou procédés non autorisés sont ensuite supprimés de la définition d'objet - 26 - métier (par ex. un utilisateur n'est pas autorisé à écrire à l'objet métier client, et donc les procédés UpdateBalance et UpdateContact sont supprimés).
L'objet métier client exemplaire 306 inclut une propriété d'ID client, une propriété de nom, une propriété d'adresse, une propriété de solde inemployé, un procédé de charge de balance, un procédé de mise à jour de balance, un procédé de chargement de contact et un procédé de mise à jour de contact. La propriété d'ID client dans l'objet métier client 306 est connectée à la propriété d'ID client dans la source de données ERP 314 et/ou la propriété d'ID client dans la source de données CRM 316. La propriété de nom et la propriété d'adresse dans l'objet métier client 306 sont connectées à la propriété de nom et la propriété d'adresse dans la source de données CRM 316. La propriété de solde inemployé dans l'objet métier client 306 est connectée à la propriété de solde inemployé dans la source de données ERP 314. Le procédé de chargement de balance et le procédé de mise à jour de balance dans l'objet métier client 306 sont connectés au procédé de chargement de balance et au procédé de mise à jour de balance dans la source de données ERP 314. Le procédé de chargement de contact et le procédé de mise à jour de contact dans l'objet métier client 306 sont connectés au procédé de chargement de contact et au procédé de mise à jour de contact dans la source de données CRM 316. L'objet métier commande exemplaire 308 inclut une propriété de numéro de commande, une propriété d'ID client, une propriété de date de livraison, une propriété de taxe, une propriété total, une propriété de statut, un procédé créer commande, un procédé charger commandes, un procédé mettre à jour commande, un procédé supprimer commande, un procédé calculer rabais et un procédé calculer taxe. La propriété numéro de commande et la propriété de statut dans l'objet métier de commande 308 sont connectées à la - 27 - propriété numéro de commande et la propriété de statut dans la source de données ERP 314. La propriété ID client dans l'objet métier commande 308 est connectée à la propriété ID client dans la source de données ERP 314 et/ou la propriété ID client dans la source de données complémentaire 320. La propriété date de livraison, la propriété taxe et la propriété total dans l'objet métier de commande 308 sont connectées à la propriété date de livraison, la propriété taxe et la propriété total dans la source de données complémentaire 320. Le procédé créer commande, le procédé charger commandes, le procédé mettre à jour commandes et le procédé supprimer commande dans l'objet métier de commande 308 sont connectés au procédé créer commande, au procédé charger commandes, au procédé mettre à jour commandes et au procédé supprimer commande dans la source de données ERP 314. Le procédé calculer rabais et le procédé calculer taxe dans l'objet métier de commande 308 sont connectés au procédé calculer rabais et au procédé calculer taxe dans la source de données de fonction 322. On appréciera que les noms des propriétés et/ou procédés dans les sources de données 108 ne doivent pas être les mêmes que les noms correspondants des propriétés et/ou procédés dans les objets métiers 306, 308.
Une vue plus détaillée de la page de commandes client 302 et des connexions associées à l'objet métier client 306 et à l'objet métier commande 308 sont illustrées sur la FIG.5. Dans cet exemple, si l'utilisateur presse un bouton charger 502, un logiciel d'association associé au 30 processus de formulaire 326 appelle le procédé charger contacts de l'objet métier client 306 et le procédé charger commandes de l'objet métier commande 308. Pour les deux appels de procédé, le processus de formulaire 326 fournit la valeur de champ numéro de client 504 depuis le 35 formulaire de contact client 310. En variante, le processus de formulaire 326 peut obtenir la valeur du champ numéro de client 504 d'après la propriété ID client de l'objet métier - 28 - client 306 et/ou l'objet métier commande 308. Ces connexions logiques peuvent être définies de n'importe quelle manière appropriée. Par exemple, une interface d'utilisateur graphique peut être utilisée pour permettre à 5 un utilisateur de tracer des lignes de connexion entre les formulaires 302, 310, 312 et les représentations graphiques des objets métiers 306, 308. De préférence, l'utilisateur peut concevoir des formulaires en utilisant seulement un navigateur web. Par exemple une interface Java et XML 10 asynchrone (AJAX) peut être utilisée. Quand le processus de formulaire 326 appelle le procédé charger contacts de l'objet métier client 306 avec la valeur du champ de numéro client 504 comme un paramètre 15 (par ex. en utilisant AJAX), le processus de courtier d'objet 304 traduit l'appel de procédé dans le langage d'origine de la source de données associée 108 et extrait les données associées de la source de données 108 dans son format d'origine. Spécifiquement, le service de courtier 20 CRM 330 invoque le procédé charger contacts d'origine de la source de données CRM 316 et reçoit le nom et l'adresse du contact depuis la source de données CRM 316. Le service de courtier CRM 330 mémorise ensuite le nom et les données de contact dans l'objet métier client 306. Par exemple, le 25 service de courtier CRM 330 peut être du code ASP s'exécutant sur le serveur de courtier objet 114 qui envoie un fichier XML (ou un autre fichier normalisé) au processus de formulaire 326, qui est du code JavaScript s'exécutant sur le dispositif client 102 qui affiche le formulaire de 30 contact client 310. Une fois que l'objet métier client 306 est mis à jour avec les nouvelles données de nom et d'adresse, le processus de formulaire 326 remplit le champ nom 506 et le champ adresse 508 du formulaire de contact client 310. En utilisant ce procédé, un formulaire HTML 35 peut être mis à jour sans poster le formulaire entier sur un serveur et rendre le formulaire HTML complet. - 29 - Similairement, quand le processus de formulaire 326 appelle le procédé charger commandes de l'objet métier commande 308 avec la valeur du champ numéro de client 504 comme paramètre, le processus de courtier d'objet 304 traduit l'appel de procédé dans le langage d'origine de la source de données associée 108 et extrait les données associées de la source de données 108 dans son format d'origine. Spécifiquement, le service de courtier ERP 328 invoque le procédé charger commandes d'origine de la source de données ERP 314 et reçoit une liste de numéros de commande, une liste associée de totaux et une liste associée de statuts depuis la source de données ERP 314. Par exemple, les données peuvent être renvoyées comme un tableau de base de données. Ces valeurs seront éventuellement utilisées pour remplir la colonne numéro de commande 510, la colonne montant 512 et la colonne statut 514 du tableau de commande 516 dans le formulaire de liste de commandes 312. Néanmoins, dans cet exemple, la colonne de date de livraison 518 ne peut pas être fournie par la source de données ERP 314, parce que la source de données ERP 314 n'a pas cette information. Les données de date de livraison sont mémorisées dans la source de données complémentaire 320 (c'est-à-dire, 25 le champ date de livraison a été ajouté plus tard par l'utilisateur). En conséquence, quand le processus de formulaire 326 appelle le procédé charger commandes de l'objet métier commande 308 avec la valeur du champ de numéro client 504 comme paramètre, le serveur de courtier 30 complémentaire 334 invoque le procédé charger date de livraison de la source de données complémentaire 320 et reçoit une liste de dates de livraisons et numéros de commande associés depuis la source de données complémentaire 320. Le processus courtier d'objet 304 et/ou 35 le processus de formulaire 326 corrèlent les dates de livraison avec les données de quantité et les données de statut reçues depuis la source de données ERP 314 en - 30 - utilisant les données de numéro de commande qui sont communes aux deux listes. Le processus de courtier d'objet 304 mémorise ensuite la liste de numéros de commande, la liste associée de dates de livraison, la liste associée de totaux et la liste associée de statuts à l'objet métier commande 308. Par exemple, le service de courtier ERP 328, le service de courtier complémentaire 334 et/ou un autre logiciel (par ex. le code ASP s'exécutant sur le serveur de courtier d'objet 114) peut envoyer un fichier XML (ou un autre fichier standardisé) au processus de formulaire 326 (par ex. JavaScript s'exécutant sur le dispositif client 102). Une fois que l'objet métier commande 308 est mis à jour avec les nouvelles données, le processus de formulaire 326 remplit le tableau de commandes 516 dans le formulaire de liste de commandes 312. Un organigramme d'un processus de courtier d'objet 20 exemplaire 304 est illustré sur la FIG.6. De préférence, le processus de courtier d'objet 304 est réalisé comme un ou plusieurs programmes logiciels qui sont stockés dans une ou plusieurs mémoires et exécutés par un ou plusieurs processeurs. Par exemple, le processus de courtier d'objet 25 304 peut être du code ASP (ou n'importe que autre type de logiciel) s'exécutant sur le serveur de courtier d'objet 114. Bien que le processus de courtier d'objet 304 soit décrit en se référant à l'organigramme illustré sur la FIG.6, on appréciera que plusieurs autres procédés de mise 30 en oeuvre des actes associés au processus de courtier d'objet 304 peuvent être utilisés. Par exemple, l'ordre des étapes peut être changé et certaines des étapes décrites peuvent être optionnelles. 35 Généralement, le processus de courtier d'objet 304 reçoit des appels de procédé normalisés depuis le processus de formulaire 326 et convertit les appels de procédé - 31 - normalisé en appels de procédé d'origine. Le processus de courtier d'objet 304 envoie ensuite les appels de procédé d'origine aux sources de données associées 108 et reçoit une ou des réponses d'origine provenance des sources de données 108. Le processus de courtier d'objet 304 convertit ensuite les réponses d'origine en réponses normalisées et envoie les réponses normalisées au processus de formulaire d'appel 326.
Plus spécifiquement, le processus de courtier d'objet 304 reçoit un appel de procédé depuis le processus de formulaire 326 en utilisant un protocole normalisé (bloc 602). L'appel de procédé normalisé est associé à un objet métier et inclut n'importe quelle valeur de propriété (c'est-à-dire, paramètre) nécessaire pour ce procédé. Par exemple, un dispositif client 102 peut afficher la page de commande client 302 comme un document HTML. En utilisant un déclencheur d'évènement onBlur, le dispositif client 102 peut exécuter du code JavaScript qui envoie un fichier XML 604 représentant « LoadContact(1234567) » sur Internet 116 via une demande http à un script ASP s'exécutant sur le serveur de courtier d'objet 114. On appréciera que n'importe quel procédé approprié peut être utilisé au lieu de HTML, JavaScript, XML, http et/ou ASP. Par exemple VBScript peut être utilisé au lieu de JavaSCript, et Perl peut être utilisé au lieu d'ASP. La demande XML exemplaire 604 inclut l'appel de procédé LoadContact 606 délimité par une balise d'ouverture Method 608 et une balise se fermeture Method 610. De plus, la requête XML exemplaire 604 inclut la valeur de propriété CustomerlD 612 délimitée par une balise d'ouverture CustomerlD 614 et une balise de fermeture CustomerlD 616.
Le processus de courtier d'objet 304 passe ensuite l'appel de procédé normalisé au service de courtier associé à l'appel de procédé (bloc 618). Par exemple, le processus - 32 - de courtier d'objet 304 peut envoyer le fichier XML 604 contenant l'appel de procédé LoadContact 606 au service de courtier CRM 330.
Le service de courtier associé à l'appel de procédé traduit ensuite l'appel de procédé du protocole normalisé dans le protocole d'origine pour la source de données associée 108 (bloc 620). Par exemple, le service de courtier CRM 330 peut former une demande d'origine 622 pour la source de données CRM 316 depuis le fichier XML reçu 604. La demande d'origine 622 peut utiliser n'importe quel protocole. Par exemple, la demande d'origine 622 peut être une interrogation SQL qui sait que la source de données CRM 316 détient les données de contact client dans un champ FullName 624 et un champ HomeAddress 626 d'un tableau de contacts 628 indexé par un champ CustNum 630. Le service de courtier associé à l'appel de procédé envoie ensuite l'interrogation d'origine à la source de 20 données associée 108 et reçoit une réponse d'origine de la source de données 108 (bloc 632). Par exemple, le service de courtier CRM 330 peut être un script ASP s'exécutant sur le serveur de courtier d'objet 114 qui envoie la demande d'origine 622 à la source de données CRM 316 comme une 25 interrogation SQL et reçoit une réponse d'origine 634 sous la forme d'une liste délimitée par des virgules. Dans cet exemple, la réponse d'origine 634 inclut la valeur de nom 634 et la valeur d'adresse 636 du contact associé à la valeur de propriété CustomerlD 612. 30 Le service de courtier convertit ensuite la réponse d'origine au protocole normalisé (bloc 638). Par exemple, le service de courtier CRM 330 peut attendre une réponse SQL de la source de données CRM 316 et générer une réponse 35 XML associée 640. Dans cet exemple, la réponse XML 640 inclut toutes les informations de la demande XML originale 604 (c'est à dire, l'appel de procédé LoadContact 606 - 33 - délimité par une balise d'ouverture Method 608 et une balise de fermeture Method 610 et la valeur de propriété CustomerlD 612 délimitée par une balise d'ouverture CustomerlD 614 et une balise de fermeture CustomerlD 616).
De plus, la réponse XML 640 inclut la valeur de nom 634 délimitée par une balise d'ouverture Name 642 et une balise de fermeture Name 644, ainsi que la valeur d'adresse 640 délimitée par une balise d'ouverture Address 646 et une balise de fermeture Address 648.
Le service de courtier envoie ensuite la réponse normalisée à la fonction d'appel dans le processus de formulaire 326 (bloc 646). Par exemple, le service de courtier CRM 330 peut envoyer la réponse XML 640 à un JavaScript associé à la page de commandes client 302 sur un dispositif client 102. Comme décrit ci-dessous, le processus de formulaire 326 peut ensuite utiliser la réponse XML 640 pour remplir la page de commandes client basée sur HTML 302.
Un organigramme d'un processus de formulaire exemplaire 326 est illustré sur la FIG.7. De préférence, le processus de formulaire 326 est réalisé dans un ou des programmes logiciels qui sont mémorisés dans une ou des mémoires et exécutés par un ou des processeurs. Par exemple, le processus de formulaire 326 peut être du code JavaScript (ou un autre type de logiciel) exécuté sur un dispositif client 102. Bien que le processus de formulaire 326 soit décrit en se référant à l'organigramme illustré sur la FIG.7, on appréciera que plusieurs autres procédés de mise en oeuvre des actes associés au processus de formulaire 326 peuvent être utilisés. Par exemple, l'ordre des étapes peut être changé, et certaines des étapes décrites peuvent être optionnelles.
Généralement, le processus de formulaire 326 détecte des évènements associés à un formulaire (par ex. la - 34 - page de commandes client HTML 302) et envoie des appels de procédé normalisés (par ex. une demande XML 604) au processus de courtier d'objet 304. Quand le processus de formulaire 326 reçoit les réponses normalisées (par ex. une réponse XML 640) du processus de courtier d'objet 304, le processus de formulaire 326 peut ensuite utiliser les réponses normalisées pour remplir le formulaire (par ex. la page de commandes client HTML 302).
Plus spécifiquement, le processus de formulaire 326 détecte un évènement qui requiert la mise à jour d'un formulaire et/ou d'une page (bloc 702). Par exemple, le processus de formulaire 326 peut être du code JavaScript s'exécutant sur un dispositif client 102 en association avec la page de commandes client 302. Quand un utilisateur presse le bouton Charger 502 sur le formulaire de contacts client 310, le processus de formulaire 326 détecte l'évènement onClick associé au bouton Charger 502 et exécute une portion du code JavaScript associé à cet évènement onClick (c'est-à-dire, le gestionnaire d'évènement). Quand le gestionnaire d'évènement est exécuté, le processus de formulaire 326 génère un appel de procédé approprié dans le protocole standard (bloc 704). Par exemple, le dispositif client 102 peut exécuter du code JavaScript qui génère le fichier XML 604 représentant LoadContact(1234567). Comme décrit ci-dessus, la demande XML exemplaire 604 inclut l'appel de procédé LoadContact 606 délimité par une balise d'ouverture Method 608 et une balise de fermeture Method 610. En outre, la demande XML exemplaire 604 inclut la valeur de propriété CustomerlD 612 délimitée par une balise d'ouverture CustomerlD 614 et une balise de fermeture CustomerlD 616.
Le processus de formulaire 326 envoie ensuite l'appel de procédé normalisé au processus de courtier - 35 - d'objet 304 (bloc 706). Par exemple, le dispositif client 102 peut envoyer la demande XML 604 sur Internet 116 via une demande http à un script ASP s'exécutant sur le serveur courtier d'objet 114. Le processus courtier d'objet 304 5 communique ensuite avec les sources de données associées 108 en utilisant les protocoles d'origine et envoie au processus de formulaire 326 une réponse normalisée (bloc 708). Par exemple, le JavaScript côté client associé au processus de formulaire 326 peut recevoir la réponse XML 10 640 du script ASP côté serveur associé au processus de courtier d'objet 304. Comme décrit ci-dessus, la réponse XML exemplaire 640 inclut toutes les informations de la demande XML 15 originale 604 (c'est-à-dire, l'appel de procédé LoadContact 606 délimité par une balise d'ouverture Method 608 et une balise de fermeture Method 610 et la valeur de propriété CustomerlD 612 délimitée par une balise d'ouverture CustomerlD 614 et une balise de fermeture CustomerlD 616). 20 En outre, la réponse XML 640 inclut la valeur de nom 634 délimitée par une balise d'ouverture Name 642 et une balise de fermeture Name 644, ainsi que la valeur d'adresse 640 délimitée par une balise d'ouverture Address 646 et une balise de fermeture Address 648. Le processus de formulaire 25 326 peut ensuite utiliser la réponse normalisée pour remplir le formulaire du client (bloc 710). Par exemple, le JavaScript côté client peut remplir le champ de nom 506 et le champ d'adresse 508 du formulaire de contact client basé sur HTML 310. 30 Un outil de conception de déroulement d'opérations 800 qui permet à un utilisateur de définir une carte de ressource 802 est illustré sur la FIG.8. Dans cet exemple, l'outil de conception de déroulement d'opérations 800 35 inclut une section d'explorateur de fichier 804 et un canevas de conception 806. La section d'explorateur de fichier 804 permet à l'utilisateur de trouver et organiser - 36 - une pluralité de fichiers associés au déroulement d'opérations. Le canevas de conception 806 permet à l'utilisateur de dessiner une représentation graphique de la carte de ressource 802. Dans cet exemple, une carte de ressource 802 est montrée qui inclut un objet personnel 808 et un objet client 810. L'objet personnel 808 et l'objet client 810 incluent chacun ou des noeuds d'entrée 812 et un ou des noeuds de sortie 814. Les noeuds d'entrée 812 sont connectés aux noeuds de sortie 814 par des flèches de processus 816. Dans cet exemple, un processus de prise en charge 816a et un processus de ventes 816b sortent de l'objet personnel 808 et vont à l'objet client 810. Similairement, un processus commande 816c sort de l'objet client 810 et va dans l'objet personnel 808.
En définissant des déroulements d'opérations en termes de ressources connues (par ex. l'objet personnel 808 et l'objet client 810) et les interactions entre ces ressources (par ex. l'objet client 810 a besoin de soutien de l'objet personnel 808), le concepteur de déroulement d'opérations peut découvrir et concevoir chaque processus en démarrant au niveau le plus haut et en descendant vers les processus sous-jacents et les déroulements d'opérations automatisés.
Les cartes de ressources 802 permettent aussi d'afficher les classes d'un objet métier et les objets enfants de cet objet métier. Les objets enfants peuvent être associés aux objets parents en modifiant les 30 propriétés associées à l'objet parent et/ou ajoutant des propriétés à l'objet parent. Une combinaison unique d'objet parent/enfant peut avoir une définition de liaison unique à l'intérieur d'une autre ressource sur le canevas. Par exemple, l'objet client parent 810 peut inclure un objet 35 enfant client gouvernemental et un objet enfant client commercial. Le processus de ventes 816b entre l'objet personnel 808 et l'objet client 810 peut différer en - 37 - fonction du type d'objet client 810 (c'est-à-dire, un processus de ventes 816b pour le client gouvernemental 810 et un autre processus de ventes pour les clients commerciaux 810). Similairement, l'objet personnel 808 peut être un objet parent avec le personnel de ventes et le personnel de prise en charge comme deux ressources enfants. Une autre vue de l'outil de conception de déroulement d'opérations 800 est illustrée sur la FIG.9. De ce point de vue, l'outil de conception de déroulement d'opérations 800 est utilisé pour créer une carte de processus 902. Dans cet exemple, le processus de prise en charge 816a est défini. Le processus de prise en charge exemplaire 816a inclut une étape de début 904, une étape rejeté 906 et une étape approuvé 908. Dans cet exemple, seulement une de ces étapes 904, 906, 908 doit être effectuée. En conséquence, une nouvelle étape 910 est placée afin de sélectionner une des trois étapes 904, 906, 908. La nouvelle étape 910 inclut une pluralité d'actions 912 et une pluralité de noeuds de sortie correspondants 814. Dans cet exemple, la nouvelle étape 910 inclut une action d'approbation 914, une action de rejet 916 et une action de redirection 918. L'utilisateur connecte le noeud de sortie rejeté 814a au noeud d'entrée 812a de l'étape rejetée 906 en faisant glisser le connecteur de processus 816d. La logique de ligne associée est automatiquement configurée pour l'utilisateur. Une autre carte de processus 1000 est illustrée sur la FIG.10. Dans cette carte de processus exemplaire 1000, une portion 1002 de la carte de processus 1000 est mise en surbrillance. Spécifiquement une étape approuvé 1004 et une étape de notification 1006 sont incluses dans une portion en surbrillance 1002. Cette portion 1002 peut définir une région localisée de la carte de processus 1000 alors que d'autres portions de la carte de processus 1000 (par ex. le reste de la carte de processus 1000 dans cet exemple) sont - 38 - considérées comme des régions globales. En utilisant l'héritage de processus, cette localisation de certaines régions de processus permet à un propriétaire de processus de garder le contrôle du processus global et permet aux autres utilisateurs de personnaliser certaines portions 1002. Par exemple, le processus global peut déterminer quand quelque chose est approuvé et où la notification est routée, mais un bureau dans une organisation peut effectuer un ensemble d'actions en réponse à l'approbation et un autre bureau dans l'organisation peut effectuer un autre ensemble d'actions en réponse à l'approbation. Les processus locaux peuvent même inclure des étapes de processus additionnelles qui sont spécifiques à la région localisée Le processus 1000 est maintenu sous une définition de processus unique de sorte que les changements apportés à la portion globale sont automatiquement appliqués à toutes les instances du processus 1000 et les changements apportés à la portion locale 1002 sont seulement appliqués aux localités associées.
En outre, les étapes et/ou portions de processus individuelles 1002 peuvent être verrouillées. Dans cet exemple, une étape d'approbation 1008 est verrouillée individuellement, et la portion locale 1002 est aussi verrouillée. Chaque étape verrouillée et chaque portion verrouillée inclut une icône de verrouillage 1010 pour indiquer un statut verrouillé. En verrouillant une étape de processus 1008 et/ou une portion de processus 1002, les concepteurs de processus peuvent limiter la capacité d'un autre utilisateur à modifier certains paramètres de configuration, ajouter ou supprimer des dépendants, etc. de la logique définie et verrouillée. Les attributs de verrouillage peuvent être manipulés par des assistants et des modèles de manière programmatique, ce qui permet aux blocs de construction de niveau inférieur de cacher ou verrouiller leur logique d'implémentation. - 39 - Un ensemble cadre collaboratif permet à n'importe quel concepteur de processus travaillant dans l'outil de conception de déroulement d'opérations 800 de partager visuellement son canevas de conception 806 avec un autre utilisateur à travers le réseau 116. Un concepteur de processus peut aussi amorcer une conversation vocale ou textuelle avec les autres parties pour commenter le processus en cours de conception. De cette manière, le concepteur de processus peut impliquer d'autres utilisateurs dans la conception du processus en utilisant des outils de collaboration et de partage d'application. Par exemple, par un clic droit sur le canevas de conception 806, le concepteur de processus peut contacter une personne particulière au département comptabilité afin de demander à cette personne qui devrait être notifié de l'approbation d'un achat. Les messages textuels et/ou enregistrements vocaux entre collaborateurs peut aussi être sauvegardés dans une base de données en vue d'une révision ultérieure. Par exemple, quand un processus est évalué en vue de sa reconception, le concepteur de processus peut écouter une conversation de collaboration afin de déterminer pourquoi une étape particulière était implémentée de la manière actuelle.
Chaque étape dans la représentation graphique du processus inclut de préférence une séquence d'activité. Une séquence d'activité exemplaire 1100 est illustrée sur la FIG.11. Dans cet exemple, la séquence d'activité 1100 inclut une ou des icônes d'évènement 1102 qui représentent 30 les évènements associé à l'étape de processus. Par exemple, l'utilisateur peut faire glisser un évènement d'envoi d'email dans une étape de processus. Dans un tel cas, une icône d'évènement d'e-mail 1104 est ajoutée à la séquence d'activité 1100. Si le nombre d'icônes d'évènements 1102 35 excède la largeur de la bande d'activité 1100, l'utilisateur peut faire défiler les icônes d'évènement en utilisant les boutons de flèches 1106. - 40 - Quand une icône d'évènement particulière 1102 est sélectionnée, un assistant de configuration pour cette portion du processus apparaît à l'utilisateur. De 5 préférence, chaque étape dans un processus est présentée comme un cube à l'utilisateur, et l'assistant de configuration est pivoté visuellement afin de créer l'effet d'une entité unique sur laquelle travaille l'utilisateur. Par exemple, quand un utilisateur presse l'icône 10 d'évènement e-mail 1104, la séquence d'activité 1100 tourne vers un assistant de configuration d'évènement e-mail 1200. Une vue partiellement tournée d'un assistant de configuration d'évènement e-mail exemplaire 1200 est illustrée sur la FIG.12. Une vue complétement tournée du 15 même assistant de configuration 1200 est illustrée sur la FIG.13. L'assistant de configuration d'e-mail 1200 peut être utilisé pour concevoir des e-mails construits dynamiquement utilisés par un ou des processus de déroulement d'opérations. Par exemple, l'étape de 20 notification 1006 du processus d'approbation 1000 illustré sur la FIG.10 inclut une sortie 814 qui peut être un message e-mail automatique. L'assistant de configuration d'e-mail 1200 peut être utilisé pour concevoir comment ce message e-mail doit être construit. 25 De préférence, l'assistant de configuration 1200 inclut une portion d'affichage principale 1202 et un bouton suivant 1204. La portion d'affichage principale 1202 affiche une page de l'assistant de configuration 1200. Le 30 bouton suivant 1204 avant la portion d'affichage principale 1202 à la page suivante de l'assistant de configuration 1200. Un bouton précédent (non montré) change la portion d'affichage principale 1202 afin d'afficher la page précédente de l'assistant de configuration 1200. 35 L'assistant de configuration 1200 inclut aussi une palette de page 1206. La palette de page 1206 inclut une - 41 - pluralité de vignettes 1208 à 1220. Chacune des vignettes 1208 à 1220 représente une des pages dans l'assistant de configuration 1200. L'utilisateur peut sauter rapidement à n'importe quelle page dans l'assistant de configuration 1200 en cliquant sur la vignette associée. Quand un utilisateur saute à une page particulière dans l'assistant de configuration 1200, la portion d'affichage principale 1202 est redessinée afin d'afficher cette page.
En outre, l'utilisateur peut rapidement visualiser une fenêtre popup de n'importe quelle page dans l'assistant de configuration 1200 sans sauter à cette page (c'est-à-dire, sans dessiner les contenus de page dans la portion d'affichage principale 1202) en faisant passer un curseur sur la vignette associée. Par exemple, la troisième page 1212 de l'assistant de configuration d'e-mail exemplaire 1200 s'affiche comme une fenêtre popup sur la FIG.14. Dans cet exemple, la troisième page 1212 de l'assistant de configuration 1200 inclut une boîte d'entrée de sujet 1402 et une boîte d'entrée de corps 1404. La boîte d'entrée de sujet 1402 de l'assistant de configuration d'e-mail 1200 est utilisée pour définir la ligne de sujet de l'-e-mail automatique. La boîte d'entrée de corps 1404 de l'assistant de configuration d'e-mail 1200 est utilisée pour définir le corps de message de l'e-mail automatique. N'importe quelle valeur entrée dans une page de l'assistant de configuration de processus 1200 est visible dans la visualisation popup. Par exemple, su l'utilisateur a entrée « Rapport d'approbation » dans la boîte d'entrée de sujet 1402 de la 30 troisième page 1212 de l'assistant de configuration d'e- mail 1200, « Rapport d'approbation » sera visible dans la boîte d'entrée de sujet 1402 de la fenêtre popup. De cette manière, l'utilisateur peut entrer des valeurs sur différentes pages de l'assistance de configuration 1200 qui 35 sont cohérentes avec d'autres entrées sans qu'il soit nécessaire de se rappeler ces autres entrées et/ou de quitter la page actuelle. - 42 - Un organigramme d'un processus d'assistant de configuration exemplaire 1500 est illustré sur la FIG.15. De préférence, le processus d'assistant de configuration 5 1500 est réalisé dans un ou des programmes logiciels qui sont mémorisés dans une ou des mémoires et exécutés par un ou des processeurs. Bien que le processus d'assistant de configuration 1500 soit décrit en référence à l'organigramme illustré sur la FIG.15, on appréciera que de 10 nombreux autres procédés de mise en oeuvre des actes associés au processus d'assistant de configuration 1500 peuvent être utilisés. Par exemple, l'ordre des étapes peut être changé, et certaines des étapes décrites peuvent être optionnelles.
15 Le processus 1500 commence quand un dispositif client 102 détecte un évènement associé à une représentation graphique d'une étape de processus 1008 (bloc 1502). Par exemple, l'utilisateur peut cliquer sur un 20 bouton de configuration dans la séquence d'activité 1100. En réponse, le dispositif client 102 amène l'affichage d'une séquence animée (bloc 1504). Par exemple, le dispositif client peut afficher la séquence d'activité tournée en trois dimensions afin de montrer un « côté » 25 d'assistant de configuration d'e-mail d'un cube. De cette manière, l'utilisateur a un retour d'information visuel indiquant que les deux objets (par ex. la bande d'activité 1100 et l'assistant de configuration d'e-mail 1200) sont liés.
30 L'assistant de configuration inclut une pluralité de pages de configuration dans une palette de vignette 1206 et une page de configuration actuelle dans une portion d'affichage principale 1202 (bloc 1506). Par exemple, la 35 première page d'un assistant de configuration d'e-mail peut demander à l'utilisateur d'entrer l'adresse e-mail du destinataire et le sujet du message e-mail. Alors que le - 43 - dispositif client 102 affiche les pages d'assistant de configuration et reçoit des informations de configuration provenant de l'utilisateur, le dispositif client 102 cherche aussi une pluralité d'évènements comme les mouvements de souris et les clics de souris. Si un premier type d'évènement associé à une des images vignettes 1208-1220 est détecté (bloc 1508), le dispositif client 102 affiche de préférence une plus grande 10 version de l'image vignette associée (bloc 1510). Par exemple, si l'utilisateur déplace le curseur de souris sur une image vignette particulière 1208-1220, une fenêtre popup 1212 montrant une plus grande version de cette image vignette peut s'afficher. De préférence, la plus grande 15 version de l'image vignette est une fenêtre séparée 1212 qui est plus petite que la portion d'affichage principale 1202 (voir FIG.14). Néanmoins, n'importe quel type d'image appropriée peut être utilisé. Par exemple, la plus grande version de l'image vignette peut remplacer 20 « temporairement » la portion d'affichage principale 1202. Si un second type d'évènement associé à une des images vignettes 1208-1220 est détecté (bloc 1512), le dispositif client 102 supprime de préférence la plus grande 25 version de l'image vignette associée (bloc 1514). Par exemple, si l'utilisateur déplace le curseur de souris hors d'une image vignette particulière, la fenêtre popup montrant la plus grande version de cette image vignette peut être supprimée. Si la plus grande version de l'image 30 vignette est une fenêtre séparée, cette fenêtre est supprimée de l'écran le contenu « en dessous » de la fenêtre supprimée est redessiné. Si la plus grande version de l'image vignette a remplacé la portion d'affichage principale 1202, les contenus précédents de la portion 35 d'affichage principale 1202 (par ex. la page de configuration actuelle) sont alors redessinés dans la portion d'affichage principale 1202. - 44 - La plus grande version de l'image vignette montre aussi toute information de configuration entrée précédemment par l'utilisateur. Par exemple, si 5 l'utilisateur a entré les adresses e-mail des destinataires sur la première page de l'assistant de configuration, est passé à une autre page de l'assistant de configuration et a ensuite voulu appeler à nouveau l'adresse e-mail entrée sans défiler en arrière vers la première page, 10 l'utilisateur peut simplement faire rouler la souris sur la premier vignette pour appeler à nouveau l'information entrée. Si un troisième type d'évènement associé à une des 15 images vignettes 1208-1220 est détecté (bloc 1516), le dispositif client 102 remplace de préférence l'image d'écran principale par une version pleine taille de l'image vignette associée (bloc 1518).Par exemple, si l'utilisateur clique la souris sur une image vignette particulière, la 20 portion d'affichage principale 1202 saute de préférence à cette page dans l'assistant de configuration. Retirer la souris de la vignette ne fait pas revenir la portion d'affichage principale 1202 à la page précédente (c'est-à-dire, l'utilisateur est passé à cette page de configuration 25 au lieu de juste visualiser temporairement cette page de configuration). A n'importe quel moment, l'utilisateur peut entrer une ou plusieurs options de configuration (bloc 1520) et 30 les options de configuration sont mémorisées (bloc 1522). Si l'utilisateur quitte l'assistant de configuration (bloc 1524), le processus 1508-1520 de vérification des actions d'utilisateurs et options de configuration se répète.
35 En résumé, l'homme du métier appréciera que des procédés et dispositifs de l'invention relatifs aux déroulements d'opérations et formulaires automatisés ont - 45 - été divulgués. La description qui précède a été présentée à des fins d'illustration et de description. Elle n'est pas encline à être exhaustive ou à limiter l'invention aux modes de réalisation exemplaires décrits. Plusieurs modifications et variations sont possibles à la lumière des enseignements ci-dessus. La portée de l'invention n'est pas encline à être limitée par cette description détaillée des exemples, mais plutôt par les revendications annexées. 4

Claims (10)

  1. REVENDICATIONS1. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour combiner des propriétés et des procédés d'une pluralité de systèmes de base de données différents, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : exécuter/exécutant un premier service de courtier pour interagir avec une première source de données en utilisant un premier protocole pour générer un premier objet métier, le premier objet métier comprenant une première propriété et un premier procédé, le premier objet métier étant dans un format déclaratif ; exécuter/exécutant un deuxième service de courtier pour interagir avec une deuxième source de données en utilisant un deuxième protocole pour générer un deuxième objet métier, le premier protocole étant différent du deuxième protocole, le deuxième objet métier comprenant une deuxième propriété et un deuxième procédé, le deuxième objet métier étant dans le format déclaratif ; et mémoriser/mémorisant un objet métier combiné comprenant la première propriété, le premier procédé, la deuxième propriété, et le deuxième procédé, l'objet métier combiné étant dans le format déclaratif.
  2. 2. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour générer des données associées à un formulaire électronique,- 47 - les instructions faisant qu'un dispositif informatique va / le dispositif informatique : extraire/extrayant un premier champ de données d'une première source de données, la première source de données ayant un premier protocole ; extraire/extrayant un deuxième champ de données d'une deuxième source de données, la deuxième source de données ayant un deuxième protocole, le deuxième protocole étant différent du premier protocole ; fournir/fournissant une interface d'utilisateur graphique où le premier champ de données et le deuxième champ de données seront combinés dans le formulaire électronique ; permettre/permettant à un troisième champ de données d'être ajouté au formulaire par l'intermédiaire de l'interface d'utilisateur graphique ; et générer/mémorisant des données indicatrices du troisième champ pour une troisième source de données, la troisième source de données ayant un troisième protocole, le troisième protocole étant différent du premier protocole, le troisième protocole étant différent du deuxième protocole.
  3. 3. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour mémoriser une fonction associée à un formulaire électronique, les instructions faisant qu'un dispositif informatique va / le dispositif informatique: recevoir/recevant une définition de la fonction via une interface d'utilisateur graphique, dans laquelle- 48 - au moins un paramètre de la fonction est défini en sélectionnant une représentation graphique du paramètre, la représentation graphique du paramètre étant associée à une représentation graphique d'un objet métier ; générer/générant une portion de structure fondée sur la définition reçue de la fonction, la portion de structure définissant la fonction ; générer/générant une portion d'interface d'utilisateur associée à la portion de structure, la portion d'interface d'utilisateur définissant une interface d'utilisateur à utiliser pour tester la fonction ; combiner/combinant la portion de structure et la portion d'interface d'utilisateur pour former un fragment de code de fonction ; et mémoriser/ mémorisant le fragment de code de fonction dans un support lisible par ordinateur.
  4. 4. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour modifier de façon dynamique une définition d'un objet métier fondée sur un rôle associé à un utilisateur, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : extraire/extrayant une définition d'objet complète à partir d'une source de données, la définition d'objet complète comprenant une pluralité de propriétés d'objet et une pluralité de procédés d'objets ; extraire/extrayant le rôle associé à l'utilisateur ;- 49 - extraire/extrayant les données indicatrices d'une pluralité de propriétés autorisées associées au rôle et d'une pluralité de procédés autorisés associés au rôle ; et générer/générant une définition d'objet réduite fondée sur la définition d'objet complète et les données indicatrices de la pluralité de propriétés autorisées et de procédés autorisés.
  5. 5. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour mettre à jour une pluralité de champs de données dans un formulaire électronique, les instructions faisant qu'un dispositif informatique va / le dispositif informatique détecter/détectant un événement associé à une mise à jour au niveau d'un dispositif client ; envoyer/envoyant un appel de procédé depuis le dispositif client à un serveur de courtier en réponse à la détection de l'événement, l'appel de procédé utilisant un premier protocole ; et recevoir/recevant des données du serveur de courtier en utilisant le premier protocole, dans lequel les données reçues du serveur de courtier sont extraites d'une pluralité de sources de données différentes en utilisant une pluralité de protocoles différents.
  6. 6. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour concevoir un processus de déroulement d'opérations, les- 50 - instructions faisant qu'un dispositif informatique va / le dispositif informatique : placer/plaçant un premier objet et un deuxième objet sur un premier canevas de conception par ordinateur pour créer une carte de ressource, le premier objet étant indicateur d'une première ressource métier, le deuxième objet étant indicateur d'une deuxième ressource métier différente ; connecter/connectant le premier objet au deuxième objet avec une flèche, la flèche étant indicatrice du processus de déroulement d'opérations ; associer/associant un deuxième canevas de conception par ordinateur avec la flèche ; et placer/plaçant une pluralité d'objets sur le deuxième canevas de conception par ordinateur pour créer une carte de processus, chaque objet dans la pluralité d'objets étant indicateur d'une étape dans le processus de déroulement d'opérations.
  7. 7. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour concevoir un processus de déroulement d'opérations, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : placer/plaçant un premier objet et un deuxième objet sur un premier canevas de conception par ordinateur pour créer une carte de processus, le premier objet étant indicateur d'une première étape de processus, le deuxième objet étant indicateur d'une deuxième étape de processus ;- 51 - Connecter/connectant le premier objet au deuxième objet avec une flèche, la flèche étant indicatrice d'une progression de la première étape de processus à la deuxième étape de processus ; et créer/créant un troisième objet et un quatrième objet, le troisième objet et le quatrième objet étant chacun indicateurs de la première étape de processus, le premier objet représentant un objet parent, le troisième objet représentant un premier objet enfant par rapport à l'objet parent, le quatrième objet représentant un deuxième objet enfant différent par rapport à l'objet parent, dans lequel l'objet parent comprend une pluralité de propriétés globales et le premier objet enfant hérite d'un sous-ensemble des propriétés globales.
  8. 8. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour concevoir de manière collaborative un déroulement d'opérations automatisé, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : placer/plaçant une pluralité d'objets sur un canevas de conception par ordinateur au niveau d'un premier dispositif client pour créer une représentation d'un déroulement d'opérations ; partager/partageant au moins une portion de la représentation d'un déroulement d'opérations avec un deuxième dispositif client différent via un réseau ; échanger/échangeant des messages associés à la portion de la représentation d'un déroulement d'opérations entre le premier dispositif client et le deuxième dispositif client ; et- 52 - mémoriser/mémorisant des données indicatrices des messages associés à la mémorisation de données indicatrices de la représentation d'un déroulement d'opérations.
  9. 9. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour afficher une séquence d'installation, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : afficher/affichant une pluralité d'images onglet dans une première zone d'un affichage, chacune des images onglet représentant une étape dans la séquence d'installation ; afficher/affichant une image complète dans une deuxième zone de l'affichage, l'image complète représentant une des étapes dans la séquence d'installation ; détecter/detectant un premier événement associé à une image onglet dans la pluralité d'images onglets ; et afficher/affichant une image popup en réponse à la détection du premier événement, l'image popup étant une version plus grande de l'image onglet associée au premier événement.
  10. 10. Support lisible par ordinateur mémorisant des instructions ou dispositif informatique pour configurer une étape dans un processus de déroulement d'opérations, les instructions faisant qu'un dispositif informatique va / le dispositif informatique : - 2994299 - 53 - afficher/affichant un objet graphique indicateur de l'étape dans le processus de déroulement d'opérations ; 5 détecter/détectant un événement associé à l'objet graphique ; afficher/affichant une animation de l'objet graphique 10 tournant en trois dimensions en réponse à la détection de l'événement associé à l'objet graphique ; afficher/affichant une séquence d'installation associée à l'étape dans le processus de déroulement 15 d'opérations ; et recevoir/recevant des paramètres de configuration associés à l'étape dans le processus de déroulement d'opérations. 20
FR1257611A 2012-08-03 2012-08-03 Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations Withdrawn FR2994299A3 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1257611A FR2994299A3 (fr) 2012-08-03 2012-08-03 Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1257611A FR2994299A3 (fr) 2012-08-03 2012-08-03 Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations

Publications (1)

Publication Number Publication Date
FR2994299A3 true FR2994299A3 (fr) 2014-02-07

Family

ID=49955703

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1257611A Withdrawn FR2994299A3 (fr) 2012-08-03 2012-08-03 Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations

Country Status (1)

Country Link
FR (1) FR2994299A3 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459460A (zh) * 2020-03-19 2020-07-28 佛山青藤信息科技有限公司 一种业务数据处理方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111459460A (zh) * 2020-03-19 2020-07-28 佛山青藤信息科技有限公司 一种业务数据处理方法及系统

Similar Documents

Publication Publication Date Title
Richardson Microservices patterns: with examples in Java
US8010940B2 (en) Methods and apparatus for designing a workflow process using inheritance
AU2016202239B2 (en) Methods and apparatus for allowing user configuration of dynamic endpoint generators and dynamic remote object discovery and brokerage
US8239226B2 (en) Methods and apparatus for combining properties and methods from a plurality of different data sources
AU2016201889B2 (en) Methods and apparatus for translating forms to native mobile applications
US8250169B2 (en) Business context data companion tool
US8972872B2 (en) Building computing applications based upon metadata
US9268538B2 (en) Metadata driven user interface system and method
US8224853B2 (en) Methods and apparatus for updating a plurality of data fields in an electronic form
US20070234282A1 (en) Composite application modeling
US20210103862A1 (en) Methods and apparatus for exposing workflow process definitions as business objects
US7996758B2 (en) Methods and apparatus for storing data associated with an electronic form
US20070208777A1 (en) Methods and apparatus for designing a workflow process using resource maps and process maps
Al-Hawari Software design patterns for data management features in web-based information systems
US20070143305A1 (en) Methods and apparatus for storing functions associated with an electronic form
US20070143711A1 (en) Methods and apparatus for displaying a setup sequence
US20090012804A1 (en) Network-based consensus formation method using configurable finite-state machines
FR2994299A3 (fr) Procedes et dispositif de traitement d'objets metiers, de formulaires electroniques et de deroulement d'operations
US20070130138A1 (en) Methods and apparatus for storing a collaboratively designed workflow process
US20070136367A1 (en) Methods and apparatus for dynamically modifying a business object definition
US20130132351A1 (en) Collection inspector
Shrivastava Learning Salesforce Einstein
FR3047819A3 (fr) Appareil pour des generateurs de points d'extremite dynamiques et decouverte et courtage d'objets distants dynamiques
Trinh et al. Linked Widgets Platform for Rapid Collaborative Semantic Mashup Development
FR3000820A3 (fr) Procedes et dispositif pour exposer des definitions de processus de deroulement d'operations comme des objets metiers

Legal Events

Date Code Title Description
CA Change of address

Effective date: 20140402

ST Notification of lapse

Effective date: 20140430