FR3047819A3 - APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS - Google Patents

APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS Download PDF

Info

Publication number
FR3047819A3
FR3047819A3 FR1651250A FR1651250A FR3047819A3 FR 3047819 A3 FR3047819 A3 FR 3047819A3 FR 1651250 A FR1651250 A FR 1651250A FR 1651250 A FR1651250 A FR 1651250A FR 3047819 A3 FR3047819 A3 FR 3047819A3
Authority
FR
France
Prior art keywords
endpoint
business object
business
configuration
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1651250A
Other languages
French (fr)
Other versions
FR3047819B3 (en
Inventor
Preez Jacobus Du
Richard Grimes Cowan
Anthony Thomas Petro
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 FR1651250A priority Critical patent/FR3047819B3/en
Publication of FR3047819A3 publication Critical patent/FR3047819A3/en
Application granted granted Critical
Publication of FR3047819B3 publication Critical patent/FR3047819B3/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

La présente invention concerne de manière générale des générateurs de points d'extrémité dynamiques, et plus spécifiquement un appareil pour des générateurs de points d'extrémité dynamiques qui publient automatiquement un point d'extrémité pour des objets commerciaux de sorte que des dispositifs clients distants puissent facilement découvrir des objets commerciaux et y accéder.The present invention generally relates to dynamic endpoint generators, and more specifically to an apparatus for dynamic endpoint generators that automatically publish an endpoint for commercial objects so that remote client devices can easily discover and access commercial objects.

Description

APPAREIL POUR DES GENERATEURS DE POINTS D'EXTREMITE DYNAMIQUES ET DECOUVERTE ET COURTAGE D'OBJETS DISTANTSAPPARATUS FOR GENERATORS OF POINTS OF DYNAMIC EXTREMITY AND DISCOVERY AND BROKERAGE OF REMOTE OBJECTS

DYNAMIQUESDYNAMIC

DOMAINE TECHNIQUETECHNICAL AREA

La présente demande concerne de manière générale des générateurs de points d'extrémité dynamiques, et plus spécifiquement des procédés et un appareil pour des générateurs de points d'extrémité dynamiques qui publient automatiquement un point d'extrémité pour des objets commerciaux de sorte que des dispositifs clients distants puissent facilement découvrir des objets commerciaux et y accéder.The present application generally relates to dynamic endpoint generators, and more specifically to methods and apparatus for dynamic endpoint generators that automatically publish an endpoint for commercial objects so that devices remote customers can easily discover and access commercial objects.

CONTEXTECONTEXT

Face à la croissance du nombre de sources d'informations dans les organisations, il devient de plus en plus difficile pour les consommateurs d'informations d'y accéder d'une manière logique et structurée en relation avec les objets commerciaux traditionnels se trouvant habituellement dans les organisations (par exemple, clients, actifs, fournisseurs, personnels, etc.)· Les données des systèmes existants sont généralement mises à disposition d'une manière très technique nécessitant d'avoir des compétences techniques et de développement importantes pour que les utilisateurs non techniques de l'organisation puissent les utiliser. Les utilisateurs non techniques doivent pouvoir ajouter des informations à l'intérieur d'une définition d'objet commercial logique sans faire intervenir des compétences techniques ou de développement. Les utilisateurs techniques et non techniques de données doivent pouvoir accéder à leurs informations à partir de plusieurs sources de données/informations d'une manière structurée comme des objets commerciaux, tout en maintenant la flexibilité de pouvoir ajouter des définitions d'informations supplémentaires aux objets commerciaux existants ou de pouvoir créer de nouveaux objets commerciaux à partir de sources de données existantes ou nouvelles sans avoir besoin de développement de solution complexe.With the growth of the number of information sources in organizations, it is becoming increasingly difficult for information consumers to access information in a logical and structured way in relation to the traditional business objects usually found in organizations. organizations (for example, customers, assets, suppliers, staff, etc.) · Data from existing systems are usually made available in a very technical way that requires significant technical and development skills to organizational techniques can use them. Non-technical users must be able to add information within a logical business object definition without involving technical or development skills. Technical and non-technical users of data must be able to access their information from multiple data / information sources in a structured manner as business objects, while maintaining the flexibility to add additional information definitions to business objects or create new business objects from existing or new data sources without the need for complex solution development.

Des systèmes existants d'intégration d'applications d'entreprise (EAI) combinés à des outils de développement peuvent être utilisés pour développer des solutions personnalisées rendant les données et les informations plus accessibles, mais ces solutions sont généralement à codage matériel et elles nécessitent des compétences techniques et de développement importantes pour leur mise à jour et leur évolution au fil du temps. De plus, les utilisateurs d'informations sont limités par les formulaires commerciaux statiques et les informations qui leur sont présentés par les applications de solution ou les applications personnalisées qu'ils utilisent au quotidien. En outre, les outils d'automatisation de processus existants ne fournissent pas le niveau nécessaire d'outils et de concepts de modélisation pour permettre aux utilisateurs techniques et non techniques de créer une solution de processus commercial complète dans un environnement unique d'outillage de modélisation/automatisation.Existing enterprise application integration (EAI) systems combined with development tools can be used to develop custom solutions that make data and information more accessible, but these solutions are typically hardware-coded and require technical and development skills important for their updating and evolution over time. In addition, information users are limited by static business forms and the information presented to them by solution applications or the custom applications they use on a daily basis. In addition, existing process automation tools do not provide the necessary level of modeling tools and concepts to enable technical and non-technical users to create a complete business process solution in a single modeling tooling environment. /automating.

Ces problèmes peuvent être résolus en utilisant des sources d'intégration d'applications d'entreprise (EAI) (par exemple, des logiciels EAI, des services Web, des API d'application) pour fournir un cadre de travail de niveau supérieur (par exemple, des services de courtage et d'adaptation de temps d'exécution) avec des composants de solution associés (par exemple, des interfaces utilisateurs et des outils) permettant aux utilisateurs techniques et non techniques de créer des objets commerciaux logiques comprenant des définitions de données (par exemple, numéro de client, nom de famille, etc.) et des actions ou des méthodes (par exemple, enregistrer, charger, supprimer) à partir de sources de données existantes ou nouvelles. Les utilisateurs peuvent combiner des données de plusieurs sources dans une seule définition de l'objet commercial, y compris des données et des définitions de méthodes/actions. L'objet commercial logique est un objet intelligent qui expose une structure de données logique unique et une vue de l'objet commercial, ainsi qu'un ensemble unique de méthodes logiques associées à l'objet commercial. L'objet commercial est dynamique et sa définition peut être changée en ajoutant ou en supprimant des données ou des actions sans avoir besoin d'impliquer des ressources techniques ou de développement pour reconfigurer ou recompiler les objets commerciaux réels. Néanmoins, une fois qu'un objet commercial dynamique est créé, des dispositifs clients distants ne peuvent pas facilement y accéder et le consommer. Les technologies d'aujourd'hui nécessitent de définir un point d'extrémité avant de pouvoir consommer l'objet commercial par le biais des technologies de services Web existantes. Un point d'extrémité est utilisé pour spécifier les exigences d'interaction entre le dispositif client et l'objet commercial. Par exemple, le dispositif client envoie un message au point d'extrémité de l'objet commercial lorsqu'il souhaite utiliser l'objet commercial, et le message est formaté en fonction des informations spécifiées par le point d'extrémité. Un objet commercial peut avoir plusieurs points d'extrémité apportant différentes manières au client de consommer cet objet commercial. Généralement, un point d'extrémité est défini par une adresse, une liaison et un contrat. Une adresse constitue l'emplacement auquel se trouve le point d'extrémité. Une liaison spécifie comment un objet commercial peut être consommé, comme un protocole ou des informations de codage. Un contrat pour chaque objet liste les opérations exposées par l'objet commercial. Toutes ces informations doivent être spécifiées avant qu'un dispositif client distant ne puisse utiliser un objet commercial.These issues can be solved by using enterprise application integration (EAI) sources (eg, EAI software, web services, application APIs) to provide a higher-level framework (eg for example, brokerage and runtime adaptation services) with associated solution components (for example, user interfaces and tools) that enable technical and non-technical users to create logical business objects that include definitions of data (for example, customer number, last name, etc.) and actions or methods (for example, save, load, delete) from existing or new data sources. Users can combine data from multiple sources into a single business object definition, including data and method / action definitions. The logical business object is an intelligent object that exposes a unique logical data structure and a business object view, as well as a unique set of logical methods associated with the business object. The business object is dynamic and its definition can be changed by adding or removing data or actions without the need to involve technical or development resources to reconfigure or recompile the actual business objects. However, once a dynamic business object is created, remote client devices can not easily access and consume it. Today's technologies require you to define an endpoint before you can consume the business object through existing Web services technologies. An endpoint is used to specify the interaction requirements between the client device and the business object. For example, the client device sends a message to the endpoint of the business object when it wants to use the business object, and the message is formatted according to the information specified by the endpoint. A business object may have multiple endpoints providing different ways for the customer to consume that business object. Typically, an endpoint is defined by an address, a link, and a contract. An address is the location where the endpoint is located. A binding specifies how a business object can be consumed, such as a protocol or encoding information. A contract for each object lists the operations exposed by the business object. All of this information must be specified before a remote client device can use a business object.

Cette approche présente plusieurs problèmes. Le contrat doit être généré manuellement pour chaque objet. Puisque le point d'extrémité comprend le contrat, le point d'extrémité est également généré manuellement pour chaque objet. La génération manuelle d'un contrat (et donc du point d'extrémité) peut être longue et coûteuse, avec un risque d'erreur d'utilisateur. En outre, le point d'extrémité peut devenir périmé s'il n'est pas mis à jour dès que l'objet commercial est mis à jour, au risque que l'utilisateur fasse confiance à des informations de point d'extrémité qui ne représentent pas l'objet commercial de manière précise.This approach presents several problems. The contract must be generated manually for each object. Since the endpoint includes the contract, the endpoint is also manually generated for each object. Manual generation of a contract (and therefore of the endpoint) can be long and costly, with a risk of user error. In addition, the endpoint may become out of date if it is not updated as soon as the business object is updated, at the risk of the user trusting endpoint information that is not updated. not represent the commercial object in a precise way.

Par conséquent, il existe un besoin dans l'art pour une manière plus efficace, plus économique et plus précise pour permettre à des dispositifs clients d'accéder à des objets commerciaux distants et de les consommer.Therefore, there is a need in the art for a more efficient, economical and accurate way to allow client devices to access and consume remote commercial objects.

Le procédé et l'appareil divulgués dans les présentes permettent à des utilisateurs techniques et non techniques d'amener des clients à découvrir, accéder à et consommer des objets sans avoir besoin de générer manuellement un point d'extrémité pour chaque objet. Un point d'extrémité peut être n'importe quelle information dont un dispositif client a besoin avant de pouvoir communiquer avec un objet commercial. Le client peut demander de consommer ou d'utiliser un objet commercial, et les informations de point d'extrémité, comme le contrat, sont automatiquement construites et publiées. Pour le client, tout se passe comme si un point d'extrémité était déjà en place, alors qu'il a été généré lorsque le client a demandé l'objet commercial. Le point d'extrémité est automatiquement construit et publié lorsque l'objet commercial est créé.The disclosed method and apparatus herein enables technical and non-technical users to bring clients to discover, access, and consume objects without the need to manually generate an endpoint for each object. An endpoint can be any information that a client device needs before it can communicate with a business object. The client may request to consume or use a business object, and the endpoint information, such as the contract, is automatically built and published. For the customer, everything happens as if an endpoint was already in place, whereas it was generated when the customer requested the business object. The endpoint is automatically built and published when the business object is created.

Tout ce processus se déroule sans l'existence d'informations d'adresse, de liaison ou de contrat représentant l'objet effectivement saisies. Les informations de point d'extrémité sont dynamiques et elles représentent précisément les informations les plus récentes concernant l'objet commercial. De cette manière, un dispositif client peut facilement découvrir et demander un point d'extrémité pour un objet commercial.This whole process takes place without the existence of address, binding, or contract information representing the object actually entered. Endpoint information is dynamic and precisely represents the most recent information about the business object. In this way, a client device can easily discover and request an endpoint for a commercial object.

Ainsi est concerné un système de génération d'un point d'extrémité dynamique permettant à un dispositif client de consommer un objet commercial, le point d'extrémité comprenant une adresse, une liaison et un contrat, comprenant un processeur structuré pour amener le système à effectuer : le chargement d'une définition de l'objet commercial, la définition comportant des propriétés et des méthodes ; l'exécution d'une itération à travers la définition ; et le mappage de la définition sur des protocoles pris en charge par le point d'extrémité, le mappage comprenant : (i) le mappage des propriétés d'objet commercial sur des contrats de données ; (ii) le mappage des méthodes d'objet commercial sur des contrats de fonctionnement ; et (iii) la vérification que des signatures de méthode d'objet commercial comportent des entrées et des sorties prises en charge par le point d'extrémité ; dans lequel le point d'extrémité est généré en réponse à au moins l'une de : (a) la demande de l'objet commercial par le dispositif client, (b) la création de l'objet commercial, et (c) la mise à jour de l'objet commercial.Thus, a dynamic endpoint generation system is provided that allows a client device to consume a commercial object, the endpoint including an address, a link, and a contract, including a structured processor for causing the system to perform: the loading of a definition of the business object, the definition including properties and methods; performing an iteration through the definition; and mapping the definition to protocols supported by the endpoint, the mapping comprising: (i) mapping the commercial object properties to data contracts; (ii) the mapping of business object methods to operating contracts; and (iii) verifying that business object method signatures include inputs and outputs supported by the endpoint; wherein the endpoint is generated in response to at least one of: (a) the request for the business object by the client device, (b) the creation of the business object, and (c) the update of the commercial object.

On peut en particulier prévoir en outre, indépendamment ou en combinaison, totale ou partielle, ce qui suit : - dans le système, le processeur ets structuré pour amener en outre le système à effectuer la génération de points d'extrémité .NET destinés à être utilisés dans un cadre WCF et la génération de points d'extrémité Atom, XML et JSON destinés à être utilisés dans un cadre REST ; -l'objet commercial appartient à une catégorie, et le point d'extrémité est généré pour la catégorie ; - le processeur est structuré pour amener en outre le système à effectuer la génération du point d'extrémité sur la base d'une configuration ; - la configuration comprend la configuration de service, la configuration WCF, la configuration REST et la configuration gérée ; - la configuration gérée comprend la configuration si un point d'extrémité statique est généré pour l'objet commercial et si le point d'extrémité est isolé ; -l'isolation comprend au moins l'une de : (i) l'isolation de mémoire, (ii) l'isolation d'adresse et (iii) l'isolation de liaison de sécurité ; -la configuration de l'isolation permet la configuration d'au moins l'un de : (i) si un serveur reconstruit l'intégralité des points d'extrémité sur le serveur, ou (ii) si le serveur reconstruit moins de l'intégralité des points d'extrémité sur le serveur ;In addition, the following may be provided separately or in combination, in whole or in part: - in the system, the processor is structured to further cause the system to perform the generation of. NET endpoints intended to be used in a WCF framework and the generation of Atom, XML and JSON endpoints for use in a REST framework; the commercial object belongs to a category, and the endpoint is generated for the category; the processor is structured to further cause the system to perform the generation of the endpoint based on a configuration; - configuration includes service configuration, WCF configuration, REST configuration and managed configuration; - the managed configuration includes configuration if a static endpoint is generated for the business object and the endpoint is isolated; the isolation comprises at least one of: (i) memory isolation, (ii) address isolation and (iii) security link isolation; -the configuration of the isolation allows the configuration of at least one of: (i) if a server rebuilds all endpoints on the server, or (ii) if the server rebuilds less than all endpoints on the server;

Est aussi concerné un support lisible par ordinateur stockant des instructions de génération d'un point d'extrémité dynamique permettant à un dispositif client de consommer un objet commercial, le point d'extrémité comprenant une adresse, une liaison et un contrat, les instructions amenant un dispositif informatique à effectuer : le chargement d'une définition de l'objet commercial, la définition comportant des propriétés et des méthodes ; l'exécution d'une itération à travers la définition ; et le mappage de la définition sur des protocoles pris en charge par le point d'extrémité, le mappage comprenant : (i) le mappage des propriétés d'objet commercial sur des contrats de données ; (ii) le mappage des méthodes d'objet commercial sur des contrats de fonctionnement ; et (iii) la vérification que des signatures de méthode d'objet commercial comportent des entrées et des sorties prises en charge par le point d'extrémité ; dans lequel le point d'extrémité est généré en réponse à au moins l'une de : (a) la demande de l'objet commercial par le dispositif client, (b) la création de l'objet commercial, et (c) la mise à jour de l'objet commercial. D'autres caractéristiques et avantages vont être décrits ci-après et vont devenir apparents à partir de la description détaillée ci-après en référence aux figures annexées.Also concerned is a computer-readable medium storing instructions for generating a dynamic endpoint allowing a client device to consume a commercial object, the endpoint including an address, a link and a contract, the instructions leading to a computing device to be performed: loading a definition of the commercial object, the definition comprising properties and methods; performing an iteration through the definition; and mapping the definition to protocols supported by the endpoint, the mapping comprising: (i) mapping the commercial object properties to data contracts; (ii) the mapping of business object methods to operating contracts; and (iii) verifying that business object method signatures include inputs and outputs supported by the endpoint; wherein the endpoint is generated in response to at least one of: (a) the request for the business object by the client device, (b) the creation of the business object, and (c) the update of the commercial object. Other features and advantages will be described below and will become apparent from the detailed description below with reference to the accompanying figures.

BREVE DESCRIPTION DES FIGURESBRIEF DESCRIPTION OF THE FIGURES

La figure 1 est un schéma de principe de haut niveau de système de communication exemplaire.Figure 1 is a high-level block diagram of exemplary communication system.

La figure 2 est un schéma de principe plus détaillé représentant un exemple d'un dispositif informatique.Fig. 2 is a more detailed block diagram showing an example of a computing device.

La figure 3 est un schéma de principe représentant des connexions exemplaires entre une pluralité de sources de données et un formulaire électronique par l'intermédiaire d'un courtier d'objet.Fig. 3 is a block diagram showing exemplary connections between a plurality of data sources and an electronic form via an object broker.

La figure 4 est un schéma de principe représentant des connexions exemplaires entre des sources de données et des objets commerciaux.Figure 4 is a block diagram showing exemplary connections between data sources and commercial objects.

La figure 5 est une vue plus détaillée d'un exemple de page de commande de client et des connexions associées à un objet commercial de client et à un objet commercial de commande.Figure 5 is a more detailed view of an example of a customer order page and connections associated with a customer business object and a sales order object.

La figure 6 est un organigramme d'un processus exemplaire de courtier d'objet.Figure 6 is a flowchart of an exemplary object broker process.

La figure 7 est un organigramme d'un processus exemplaire de formulaire.Figure 7 is a flowchart of an exemplary form process.

La figure 8 est une carte de processus exemplaire avec une région localisée de la carte de processus en surbrillance.Figure 8 is an exemplary process map with a localized region of the highlighted process map.

La figure 9 est une capture d'écran d'une bande d'activité exemplaire.Figure 9 is a screenshot of an exemplary activity band.

La figure 10 est une capture d'écran d'un assistant de conception exemplaire dans un état partiellement tourné.Figure 10 is a screenshot of an exemplary design assistant in a partially rotated state.

La figure 11 est un organigramme d'un processus d'assistant de configuration exemplaire.Fig. 11 is a flow chart of an exemplary configuration assistant process.

La figure 12 est un schéma représentant un exemple d'un système mettant en œuvre un générateur de point d'extrémité dynamique pour permettre à une application de consommer des objets commerciaux.Fig. 12 is a diagram showing an example of a system implementing a dynamic endpoint generator to enable an application to consume commercial objects.

La figure 13 est un organigramme illustrant un processus exemplaire de génération, déploiement et publication d'un objet commercial, de génération automatique d'un point d'extrémité dynamique pour l'objet commercial et d'autorisation à un dispositif client de consommer l'objet commercial en utilisant le point d'extrémité dynamique.Figure 13 is a flowchart illustrating an exemplary process of generating, deploying, and publishing a business object, automatically generating a dynamic endpoint for the business object, and authorizing a client device to consume the business object. business object using the dynamic endpoint.

La figure 14 est un organigramme illustrant un exemple de configuration de points d'extrémité pour un objet commercial.Fig. 14 is a flowchart illustrating an example of endpoint configuration for a commercial object.

DESCRIPTION DETAILLEEDETAILED DESCRIPTION

Le présent système est réalisé le plus facilement dans un système de communication de réseau. Un schéma de principe de haut niveau d'un système de communication de réseau exemplaire 100 est illustré sur la figure 1. Le système illustré 100 comprend un ou plusieurs dispositifs clients 102, un ou plusieurs routeurs 106 et une pluralité de sources de données différentes 108 comprenant des serveurs de bases de données 110 et/ou des bases de données 112. Les données transférées à destination des dispositifs clients 102 en provenance des source de données 108 et les données transférées en provenance des dispositifs clients 102 à destination des sources de données 108 sont gérées par un ou plusieurs serveurs de courtiers d'objets 114. Ces dispositifs peuvent communiquer l'un avec l'autre par l'intermédiaire d'une connexion à un ou plusieurs canaux de communication 116 comme l'Internet et/ou d'autres réseaux de données, y compris en particulier un réseau de grandes distances approprié ou un réseau local. Il faut bien se rendre compte que les dispositifs décrits dans les présentes peuvent être directement connectés l'un à l'autre au lieu de passer par un réseau.The present system is most easily realized in a network communication system. A high level block diagram of an exemplary network communication system 100 is illustrated in FIG. 1. The illustrated system 100 comprises one or more client devices 102, one or more routers 106, and a plurality of different data sources. comprising database servers 110 and / or databases 112. Data transferred to client devices 102 from data sources 108 and data transferred from client devices 102 to data sources 108 are managed by one or more object broker servers 114. These devices may communicate with each other via a connection to one or more communication channels 116 such as the Internet and / or other data networks, including in particular an appropriate wide area network or a local area network. It should be appreciated that the devices described herein may be directly connected to one another instead of going through a network.

Les sources de données 108 stockent une pluralité de fichiers, de programmes et/ou de pages Web dans une ou plusieurs bases de données 112 en vue de leur utilisation par les dispositifs clients 102. Par exemple, une source de données peut stocker des informations de clients. Les sources de données 108 peuvent être connectées directement à un serveur de base de données 110 et/ou par l'intermédiaire d'une ou plusieurs connexions de réseau.The data sources 108 store a plurality of files, programs and / or web pages in one or more databases 112 for use by the client devices 102. For example, a data source may store information of customers. The data sources 108 may be connected directly to a database server 110 and / or via one or more network connections.

Une source de données 108 et/ou un serveur de courtier d'objet 114 peuvent interagir avec un grand nombre d'autres dispositifs. Par conséquent, chaque source de données 108 et/ou un serveur de courtier d'objet 114 sont généralement un ordinateur haut de gamme avec une grande capacité de stockage, un ou plusieurs microprocesseurs rapides, et une ou plusieurs connexions de réseau haut débit. Réciproquement, par rapport à un serveur typique, chaque dispositif client 102 comprend généralement une capacité de stockage inférieure, un seul microprocesseur et une seule connexion de réseau.A data source 108 and / or an object broker server 114 may interact with a large number of other devices. Therefore, each data source 108 and / or object broker server 114 is typically a high-end computer with a large storage capacity, one or more fast microprocessors, and one or more high-speed network connections. Conversely, with respect to a typical server, each client device 102 typically includes a lower storage capacity, a single microprocessor, and a single network connection.

Un schéma de principe plus détaillé des systèmes électriques d'un dispositif informatique (par exemple, un dispositif client portatif 102, un dispositif client d'ordinateur personnel 102, un routeur 106, un serveur de base de données 110, et/ou un serveur de courtier d'objets 114) est illustré sur la figure 2. Bien que les systèmes électriques de ces dispositif informatique puissent être similaires, les différences structurelles entre ces dispositifs sont bien connues. Par exemple, un dispositif client portatif typique 102 est petit et léger par rapport à un serveur de base de données typique 110.A more detailed block diagram of the electrical systems of a computing device (e.g., a portable client device 102, a personal computer client device 102, a router 106, a database server 110, and / or a server Object broker 114) is illustrated in FIG. 2. Although the electrical systems of these computing devices may be similar, the structural differences between these devices are well known. For example, a typical portable client device 102 is small and lightweight compared to a typical database server 110.

Le dispositif informatique exemplaire 102, 106, 110, 114 comprend une unité principale 202 comportant de préférence un ou plusieurs processeurs 204 couplés électriquement par un bus d'adresse/de données 206 à un ou plusieurs dispositifs de mémoire 208, d'autres circuits informatiques 210, et un ou plusieurs circuits d'interface 212. Le processeur 204 peut être n'importe quel processeur approprié, comme un microprocesseur de la famille Intel Pentium® de microprocesseurs. La mémoire 208 comprend de préférence une mémoire volatile et une mémoire non volatile. De préférence, la mémoire 208 stocke un programme logiciel qui interagit avec les autres dispositifs dans le système 100, comme cela va être décrit ci-après. Ce programme peut être exécuté par le processeur 204 de n'importe quelle manière appropriée. La mémoire 208 peut également stocker des données numériques indicatives de documents, de fichiers, de programmes, de pages Web, etc. extraits d'un autre dispositif informatique et/ou chargés par l'intermédiaire d'un dispositif d'entrée 214.The exemplary computing device 102, 106, 110, 114 comprises a main unit 202 preferably having one or more processors 204 electrically coupled by an address / data bus 206 to one or more memory devices 208, other computer circuits 210, and one or more interface circuits 212. The processor 204 may be any suitable processor, such as a microprocessor of the Intel Pentium® family of microprocessors. The memory 208 preferably comprises a volatile memory and a non-volatile memory. Preferably, the memory 208 stores a software program that interacts with the other devices in the system 100, as will be described hereinafter. This program can be executed by the processor 204 in any suitable manner. The memory 208 may also store digital data indicative of documents, files, programs, web pages, etc. extracts from another computing device and / or loaded via an input device 214.

Le circuit d'interface 212 peut être mis en œuvre en utilisant n'importe quelle norme d'interface appropriée, comme une interface Ethernet et/ou une interface USB (Universal Serial Bus) . Un ou plusieurs dispositifs d'entrée 214 peuvent être connectés au circuit d'interface 212 pour entrer des données et des commandes dans l'unité principale 202. Par exemple, le dispositif d'entrée 214 peut être un clavier, une souris, un écran tactile, un pavé, une boule, un point iso et/ou un système de reconnaissance vocale.The interface circuit 212 may be implemented using any appropriate interface standard, such as an Ethernet interface and / or a Universal Serial Bus (USB) interface. One or more input devices 214 may be connected to the interface circuit 212 to input data and commands into the main unit 202. For example, the input device 214 may be a keyboard, a mouse, a display touch, a pad, a ball, an iso point and / or a voice recognition system.

Un ou plusieurs affichages, imprimantes, haut-parleurs et/ou autres dispositifs de sortie 216 peuvent être également connectés à l'unité principale 202 par l'intermédiaire du circuit d'interface 212. L'affichage 216 peut être un écran à tube cathodique (CRT), un affichage à cristaux liquides (LCD) ou n'importe quel autre type d'affichage. L'affichage 216 génère des affichages visuels de données générées au cours du fonctionnement du dispositif informatique 102, 106, 110, 114. Par exemple, l'affichage 216 peut être utilisé pour afficher des pages Web reçues du serveur de courtier d'objets 114 comprenant des données de plusieurs sources de données 108. Les affichages visuels peuvent comprendre des invites de saisie humaine, des statistiques de temps de fonctionnement, des valeurs calculées, des données, etc.One or more displays, printers, speakers, and / or other output devices 216 may also be connected to the main unit 202 through the interface circuit 212. The display 216 may be a CRT display (CRT), a liquid crystal display (LCD), or any other type of display. The display 216 generates visual displays of data generated during the operation of the computing device 102, 106, 110, 114. For example, the display 216 may be used to display web pages received from the object broker server 114 comprising data from a plurality of data sources 108. The visual displays may include human input prompts, operating time statistics, calculated values, data, and so on.

Un ou plusieurs dispositifs de stockage 218 peuvent également être connectés à l'unité principale 202 par l'intermédiaire du circuit d'interface 212. Par exemple, un disque dur, un lecteur de CD, un lecteur de 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.One or more storage devices 218 may also be connected to the main unit 202 through the interface circuit 212. For example, a hard disk, a CD player, a DVD player, and / or other storage devices can be connected to the main unit 202. The storage devices 218 can store any type of appropriate data.

Le dispositif informatique 102, 104 peut également échanger des données avec d'autres dispositifs de réseau 220 par l'intermédiaire d'une connexion au réseau 116. La connexion de réseau peut être n'importe quel type de connexion de réseau, comme une connexion Ethernet, une ligne d'abonné numérique (DSL), une ligne téléphonique, un câble coaxial, etc. Des utilisateurs du système 100 peuvent être amenés à s'inscrire auprès d'un ou plusieurs des dispositifs informatiques 102, 106, 110, 114. Dans ce cas, chaque utilisateur peut choisir un identifiant d'utilisateur (par exemple, une adresse e-mail) et un mot de passe qui peuvent être demandés pour l'activation de services. L'identifiant d'utilisateur et le mot de passe peuvent être transmis sur 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 affectés par le dispositif informatique 102, 106, 110, 114.The computing device 102, 104 may also exchange data with other network devices 220 via a network connection 116. The network connection may be any type of network connection, such as a connection. Ethernet, digital subscriber line (DSL), telephone line, coaxial cable, etc. Users of the system 100 may be required to register with one or more of the computing devices 102, 106, 110, 114. In this case, each user may choose a user identifier (for example, an e-mail address). mail) and a password that can be requested for the activation of services. The user ID and password may be transmitted over the network 116 using encryption built into the user's web browser. Alternatively, the user identifier and / or the password may be affected by the computing device 102, 106, 110, 114.

Dans un mode de réalisation, un utilisateur à un dispositif client 102 visualise et/ou modifie des données d'une pluralité de différentes sources de données 108 par l'intermédiaire d'un formulaire électronique interactif. Un schéma de principe exemplaire représentant des connexions entre une pluralité de sources de données 108 et un formulaire électronique 302 par l'intermédiaire d'un processus de courtier d'objets 304 est illustré sur la figure 3. En général, le processus de courtier d'objets 304 (décrit en détail ci-après en référence à la figure 6) compile des données dans une diversité de formats natifs différents à partir des différentes sources de données 108 (par exemple, différents systèmes de bases de données d'héritage) dans des objets commerciaux standardisés 306, 308 (par exemple, dans un format déclaratif comme XML (Extensible Markup Language)) . Un utilisateur peut ensuite visualiser les données en utilisant un ou plusieurs formulaires électroniques 302, 310, 312. De plus, l'utilisateur peut manipuler des données et/ou ajouter des données par l'intermédiaire des formulaires électroniques 302, 310, 312. Dans ce cas, le processus de courtier d'objets 304 accepte les données par l'intermédiaire des objets commerciaux 306, 308 et stocke les données dans les sources de données 108 dans le format natif correct.In one embodiment, a user at a client device 102 views and / or modifies data from a plurality of different data sources 108 via an interactive electronic form. An exemplary block diagram showing connections between a plurality of data sources 108 and an electronic form 302 via an object broker process 304 is illustrated in FIG. 3. In general, the broker process objects 304 (described in detail hereinafter with reference to FIG. 6) compiles data in a variety of different native formats from the different data sources 108 (for example, different legacy database systems) in standardized business objects 306, 308 (for example, in a declarative format such as XML (Extensible Markup Language)). A user can then view the data using one or more electronic forms 302, 310, 312. In addition, the user can manipulate data and / or add data via the electronic forms 302, 310, 312. In this case, the object broker process 304 accepts the data via the business objects 306, 308 and stores the data in the data sources 108 in the correct native format.

Dans cet exemple, les sources de données 108 comprennent une source de données de planification de ressources d'entreprise (ERP) 314, une source de données de gestion de relation de clientèle (CRM) 316, une source de données personnalisées 318, une source de données de complément 320 et une source de données de fonction 322. De plus, un service de rôle 323 et un stockage de données d'objets 325 sont inclus dans le système. Généralement, une source de données ERP 314 stocke des données relatives à des comptes fournisseurs, des comptes clients, des stocks, etc. Généralement, une source de données CRM 316 stocke des données relatives à des prospects, des devis, des commandes, etc. Une source de données personnalisées 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 personnalisées qui stocke des informations de fabrication en temps réel. Certaines sources de données 108 peuvent utiliser un serveur intermédiaire pour des communications. Par exemple, la source de données ERP 314 utilise un serveur BizTalk 324 .In this example, the data sources 108 include an enterprise resource planning (ERP) data source 314, a customer relationship management (CRM) data source 316, a custom data source 318, a source add-in data 320 and a function data source 322. In addition, role service 323 and object data storage 325 are included in the system. Typically, an ERP data source 314 stores accounts payable, accounts receivable, inventory, and so on. Typically, a CRM data source 316 stores data about leads, quotes, orders, and so on. A custom data source 318 is a data source 108 that is not considered a standard commercial product. For example, a company may have a custom data source that stores manufacturing information in real time. Some data sources 108 may use an intermediate server for communications. For example, the ERP data source 314 uses a BizTalk 324 server.

La source de données de complément 320 stocke des données associées à des champs de formulaire ajoutés par l'utilisateur qui ne sont pas pris en charge par l'une des autres sources de données 108. Par exemple, une entreprise peut lancer un programme de carte d'acheteur fréquent et elle peut avoir besoin de stocker un numéro de carte pour chaque participant. Par conséquent, un utilisateur peut ajouter un champ de numéro d'acheteur fréquent dans un formulaire existant contenant des données d'héritage. Puisque les sources de données existantes 108 dans cet exemple ne comportent pas de champ de numéro d'acheteur fréquent, le champ de numéro d'acheteur fréquent et les données associées sont stockées par la source de données de complément 320.The add-in data source 320 stores data associated with user-added form fields that are not supported by any of the other data sources 108. For example, a company may launch a map program frequent buyer and she may need to store a card number for each participant. As a result, a user can add a frequent buyer number field to an existing form that contains inheritance data. Since the existing data sources 108 in this example do not have a frequent buyer number field, the frequent buyer number field and the associated data are stored by the complement data source 320.

Pour manipuler des données dans une source de données particulière 108, le processus de courtier d'objets 304 fait de préférence appel à des méthodes intégrées à la source de données associée 108. Par exemple, chaque source de données 108 comprend généralement des méthodes pour stocker/extraire des données dans/de la source de données 108 (par exemple, la source de données CRM peut prendre en charge une méthode « LoadContact » comme cela va être décrit en détail ci-après). De plus, le système 300 permet à un utilisateur de créer ses propres fonctions. Par exemple, un utilisateur peut avoir besoin d'appliquer une remise à certains clients. Néanmoins, les sources de données existantes 108 ne comportent pas forcément une méthode pour calculer la remise. Par conséquent, l'utilisateur peut créer une fonction « CalcDiscount » comme cela va être décrit ci-après. Les fonctions définies par l'utilisateur peuvent utiliser des données de plusieurs sources de données 108. Les définitions de ces fonctions définies par l'utilisateur sont ensuite stockées dans la source de données de fonction 322.To manipulate data in a particular data source 108, the object broker process 304 preferably uses methods embedded in the associated data source 108. For example, each data source 108 typically includes methods for storing data. / extracting data from / from the data source 108 (for example, the CRM data source may support a "LoadContact" method as will be described in detail below). In addition, the system 300 allows a user to create his own functions. For example, a user may need to apply a discount to some customers. Nevertheless, the existing data sources 108 do not necessarily include a method for calculating the discount. Therefore, the user can create a "CalcDiscount" function as will be described hereinafter. The user-defined functions can use data from multiple data sources 108. The definitions of these user-defined functions are then stored in the function data source 322.

Des fonctions définies par l'utilisateur peuvent être créées en utilisant un outil d'interface utilisateur graphique. Par exemple, des paramètres pour une fonction définie par l'utilisateur peuvent être définis en sélectionnant une représentation graphique du paramètre associé à un objet commercial. De préférence, les fonctions définies par l'utilisateur sont stockées sous forme de snippets. Les snippets comportent une portion de structure qui définit la fonction et une portion d'interface utilisateur qui fournit à l'utilisateur une manière de tester la fonction. Par exemple, la portion de structure peut être stockée sous forme XML, et la portion d'interface utilisateur peut être stockée sous forme HTML dans le même fichier.User-defined functions can be created using a graphical user interface tool. For example, parameters for a user-defined function can be defined by selecting a graphical representation of the parameter associated with a business object. Preferably, the user-defined functions are stored as snippets. Snippets include a structure portion that defines the function and a user interface portion that provides the user with a way to test the function. For example, the structure portion may be stored in XML form, and the user interface portion may be stored as HTML in the same file.

Certaines fonctions définies par l'utilisateur peuvent être exécutées par les dispositif client 102, ce qui réduit la communication avec le serveur 110, 114. D'autres fonctions définies par l'utilisateur peuvent nécessiter une exécution du côté serveur. De préférence, il est déterminé si une fonction particulière doit être exécutée du côté client ou du côté serveur, et un indicateur de cette détermination est stocké avec le snippet de fonction. Par exemple, des fonctions définies par l'utilisateur qui ont été construites à partir de certaines primitives prédéfinies (par exemple, ajouter, multiplier, mettre en 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 comprenant des consultations de bases de données (par exemple, des déclarations SQL) peuvent être déterminées comme étant exécutables par un serveur 110, 114.Some user-defined functions may be executed by client devices 102, which reduces communication with server 110, 114. Other user-defined functions may require server-side execution. Preferably, it is determined whether a particular function is to be performed on the client side or the server side, and an indicator of this determination is stored with the function snippet. For example, user-defined functions that have been built from certain predefined primitives (for example, add, multiply, loop, lower, etc.) can be determined to be executable by the client device 200, while other user-defined functions including database lookups (e.g., SQL statements) can be determined to be executable by a server 110, 114.

Dans la perspective de l'utilisateur, les données des sources de données 108 (ainsi que les données calculées à partir des données dans les sources de données 108, par exemple une remise) sont visualisées en utilisant un ou plusieurs formulaires électroniques 302, 310, 312. De plus, l'utilisateur peut manipuler les données et/ou ajouter des données par l'intermédiaire des formulaires électroniques 302, 310, 312. Les formulaires 302, 310, 312 peuvent être combinés dans des pages 302 et un formulaire peut utiliser des données de plusieurs sources de données 108. Par exemple, la page de commande de client 302 combine le formulaire de contact de client 310 et le formulaire de liste de commandes 312 (comme cela va être décrit en détail ci-après en référence à la figure 5). De plus, des portions de formulaire et/ou des formulaires entiers faisant partie d'une page plus grande peuvent être verrouillés afin qu'uniquement certains utilisateurs puissent modifier cette portion du formulaire ou de la page.From the perspective of the user, the data of the data sources 108 (as well as the data calculated from the data in the data sources 108, for example a discount) are displayed using one or more electronic forms 302, 310, 312. In addition, the user can manipulate the data and / or add data via the electronic forms 302, 310, 312. The forms 302, 310, 312 can be combined in pages 302 and a form can be used. For example, the customer order page 302 combines the customer contact form 310 with the order list form 312 (as will be described in detail hereinafter with reference to the Figure 5). In addition, portions of the form and / or entire forms on a larger page may be locked so that only certain users can edit that portion of the form or page.

Pour faciliter des formulaires 302, 310, 312 combinant des données de différentes sources de données 108, le système 300 emploie un processus de courtier d'objets 304 (décrit en détail ci-après en référence à la figure 6) et un processus de formulaire 326 (décrit en détail ci-après en référence la figure 7) . Dans un mode de réalisation, le processus de courtier d'objets 304 est un code ASP s'exécutant sur le serveur de courtier d'objets 114 et le processus de formulaire 326 est un JavaScript s'exécutant sur un dispositif client 102. Le processus de courtier d'objets 304 compile des données dans une diversité de différents formats natifs à partir des différentes sources de données 108 dans des objets commerciaux standardisés 306, 308 (par exemple, des fichiers XML) . De plus, le processus de courtier d'objets 304 accepte les données par l'intermédiaire des objets commerciaux 306, 308 et stocke les données dans les sources de données 108 dans le format natif correct.To facilitate forms 302, 310, 312 combining data from different data sources 108, the system 300 employs an object broker process 304 (described in detail hereinafter with reference to FIG. 6) and a form process. 326 (described in detail below with reference to FIG. 7). In one embodiment, the object broker process 304 is an ASP code executing on the object broker server 114 and the form process 326 is a JavaScript executing on a client device 102. The process Object broker 304 compiles data in a variety of different native formats from different data sources 108 into standardized business objects 306, 308 (e.g., XML files). In addition, the object broker process 304 accepts the data via the business objects 306, 308 and stores the data in the data sources 108 in the correct native format.

Plus spécifiquement, le processus de courtier d'objets 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 courtier d'objets 304 comprend un service de courtier ERP 328, un service de courtier CRM 330, un service de courtier personnalisé 332, un service de courtier de complément 334, et un service de courtier de fonction 336. Chaque service de courtier 328, 330, 332, 334, 336 est conçu pour communiquer avec la source de données associée 108 en utilisant les formats natifs et les protocoles de la source de données.More specifically, the object broker process 304 uses a plurality of broker services to communicate with the data sources 108. Preferably, a broker service is used for each data source 108. In this example, the broker process is used for each data source 108. Item Broker 304 includes an ERP 328 Broker Service, a CRM 330 Broker Service, a 332 Custom Broker Service, a 334 Complement Broker Service, and a 336 Broker Broker Service. Each Broker 328 Service, 330, 332, 334, 336 is adapted to communicate with the associated data source 108 using the native formats and protocols of the data source.

Chaque service de courtier 328, 330, 332, 334, 336 expose ensuite automatiquement les propriétés et les méthodes de la source de données associée 108 sous forme de propriétés et de méthodes standardisées 338 en vue de leur utilisation par les objets commerciaux 306, 308. Par exemple, le service de courtier ERP 328 communique avec la source de données ERP 314 par l'intermédiaire du serveur BizTalk 324 et expose les propriétés et les méthodes de la source de données ERP 314 à l'objet commercial de client 306 et à l'objet commercial de commande 308 sous forme de fichiers XML. Si de nouvelles propriétés et/ou de nouvelles méthodes 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 ces nouvelles méthodes et il les expose automatiquement pour leur utilisation par les objets commerciaux 306, 308. Les objets commerciaux 306, 308 peuvent comprendre une partie ou l'intégralité des propriétés et des méthodes exposées 338. Chaque objet commercial 306, 308 expose ensuite ses propriétés et méthodes incluses 340 au processus de formulaire 326.Each broker service 328, 330, 332, 334, 336 then automatically exposes the properties and methods of the associated data source 108 as standardized properties and methods 338 for use by the business objects 306, 308. For example, the ERP broker service 328 communicates with the ERP data source 314 through the BizTalk server 324 and exposes the properties and methods of the ERP data source 314 to the client business object 306 and to the client. 308 commercial object in the form of XML files. If new properties and / or methods become available from a data source 108, the associated broker service preferably detects these new properties and / or methods and automatically exposes them for use by the objects. Commercial objects 306, 308. Commercial objects 306, 308 may include some or all of the disclosed properties and methods 338. Each business object 306, 308 then exposes its included properties and methods 340 to the form process 326.

Le processus de formulaire 326 fait appel à des méthodes d'objets commerciaux 340 en réponse à des événements de formulaire et il remplit les formulaires 302, 310, 312 avec des données provenant des propriétés d'objets commerciaux 340. Par exemple, un utilisateur peut appuyer sur un bouton « Load » (charger) sur la page de commande de client 302, ce qui amène le processus de formulaire 326 à faire appel à une ou plusieurs méthodes 340 exposées par les objets commerciaux 306, 308. Cela amène le processus de courtier d'objets 304 à extraire les données appropriées d'une ou plusieurs sources de données 108. Les données sont ensuite retournées sous forme de propriétés des objets commerciaux 306, 308, et le processus de formulaire 326 utilise les données pour remplir les formulaires 310, 312.The form process 326 uses commercial object methods 340 in response to form events and fills out the forms 302, 310, 312 with data from the commercial object properties 340. For example, a user can press a "Load" button on the client control page 302, which causes the form process 326 to use one or more methods 340 exposed by the business objects 306, 308. object broker 304 to extract the appropriate data from one or more data sources 108. The data is then returned as commercial object properties 306, 308, and the form process 326 uses the data to fill the forms 310 , 312.

De plus, le processus de formulaire 328 peut stocker des valeurs dans les propriétés d'objets commerciaux 340 et faire appel à des méthodes pour que les données nouvelles/modifiées soient stockées dans la source de données appropriée 108 par l'intermédiaire du processus de courtier d'objets 304. Par exemple, un formulaire peut accepter une nouvelle valeur pour une adresse de client et faire appel à une méthode UpdateContact pour faire en sorte que la nouvelle adresse soit stockée dans la source de données appropriée 108.In addition, the form process 328 may store values in the commercial object properties 340 and use methods for the new / changed data to be stored in the appropriate data source 108 through the broker process. For example, a form may accept a new value for a client address and use an UpdateContact method to cause the new address to be stored in the appropriate data source 108.

Un schéma de principe plus détaillé représentant ces connexions entre les sources de données exemplaires 108 et les objets commerciaux exemplaires 306, 308 est illustré sur la figure 4. Dans cet exemple, l'objet commercial de client 306 est connecté à la source de données ERP 314 et à la source de données CRM 316. L'objet commercial de commande 308 est connecté à la source de données ERP 314, à la source de données de complément 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 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 commerciaux 306, 308.A more detailed block diagram showing these connections between the exemplary data sources 108 and the exemplary business objects 306, 308 is illustrated in FIG. 4. In this example, the client business object 306 is connected to the ERP data source. 314 and the CRM data source 316. The control business object 308 is connected to the ERP data source 314, the add-in data source 320 and the function data source 322. These logical connections can be defined in any appropriate manner. For example, a graphical user interface may be used to allow a user to draw connection lines between graphical representations of data sources 108 and graphical representations of business objects 306, 308.

Ces connexions logiques sont mises à jour par le processus de courtier d'objets 304. Par exemple, des données pour remplir le formulaire de contact de client 310 et le formulaire de liste de commandes 312 sont amenées dans l'objet commercial de client 306 et dans l'objet commercial de commande 308 à partir des sources de données 108 par le processus de courtier d'objets 304. De même, des données nouvelles et modifiées à partir du formulaire de contact de client 310 et du formulaire de liste de commande 312 sont envoyées à partir de l'objet commercial de client 306 et de l'objet commercial de commande 308 aux sources de données 108 par le processus de courtier d'objets 304. De plus, le service de rôle 323 peut générer une définition d'objet réduite sur la base des ces définitions d'objets 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 de méthodes autorisées associées à ce rôle. Les propriétés et/ou méthodes non autorisées sont ensuite supprimées de la définition d'objet commercial (par exemple, un utilisateur n'est pas autorisé à écrire dans l'objet commercial de client, par conséquent les méthodes UpdateBalance et UpdateContact sont supprimées). L'objet commercial de client exemplaire 306 comprend une propriété d'identifiant de client, une propriété de nom, une propriété d'adresse, une propriété de solde restant, une méthode de chargement de solde, une méthode de mise à jour de solde, une méthode de chargement de contact et une méthode de mise à jour de contact. La propriété d'identifiant de client dans l'objet commercial de client 306 est connectée à la propriété d'identifiant de client dans la source de données ERP 314 et/ou à la propriété d'identifiant de client dans la source de données CRM 316. La propriété de nom et la propriété d'adresse dans l'objet commercial de 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 restant dans l'objet commercial de client 306 est connectée à la propriété de solde restant dans la source de données ERP 314. La méthode de chargement de solde et la méthode de mise à jour de solde dans l'objet commercial de client 306 sont connectées à la méthode de chargement de solde et à la méthode de mise à jour de solde dans la source de données ERP 314. La méthode de chargement de contact et la méthode de mise à jour de contact dans l'objet commercial de client 306 sont connectées à la méthode de chargement de contact et à la méthode de mise à jour de contact dans la source de données CRM 316. L'objet commercial de commande exemplaire 308 comprend une propriété de numéro de commande, une propriété d'identifiant de client, une propriété de date de livraison, une propriété de taxes, une propriété de total, une propriété de statut, une méthode de création de commande, une méthode de chargement de commande, une méthode de mise à jour de commande, une méthode de suppression de commande, une méthode de calcul de remise et une méthode de calcul de taxes. La propriété de numéro de commande et la propriété de statut dans l'objet commercial de commande 308 sont connectées à la propriété de numéro de commande et à la propriété de statut dans la source de données ERP 314. La propriété d'identifiant de client dans l'objet commercial de commande 308 est connectée à la propriété d'identifiant de client dans la source de données ERP 314 et/ou à la propriété d'identifiant de client dans la source de données de complément 320. La propriété de date de livraison, la propriété de taxes et la propriété de total dans l'objet commercial de commande 308 sont connectées à la propriété de date de livraison, la propriété de taxes, et à la propriété de total dans la source de données de complément 320. La méthode de création de commande, la méthode de chargement de commande, la méthode de mise à jour de commande et la méthode de suppression de commande dans l'objet commercial de commande 308 sont connectées à la méthode de création de commande, à la méthode de chargement de commande, à la méthode de mise à jour de commande et à la méthode de suppression de commande dans la source de données ERP 314. La méthode de calcul de remise et la méthode de calcul de taxes dans l'objet commercial de commande 308 sont connectées à la méthode de calcul de remise et à la méthode de calcul de taxes dans la source de données de fonctions 322. Il faut bien se rendre compte que les noms des propriétés et/ou des méthodes dans les sources de données 108 ne doivent pas forcément être identiques aux noms correspondants des propriétés et/ou des méthodes dans les objets commerciaux 306, 308.These logical connections are updated by the object broker process 304. For example, data for completing the customer contact form 310 and the order list form 312 are brought into the customer business object 306 and in the order business object 308 from the data sources 108 by the object broker process 304. Similarly, new and changed data from the customer contact form 310 and the order list form 312 are sent from the client business object 306 and the business object 308 to the data sources 108 by the object broker process 304. In addition, the role service 323 can generate a definition of object reduced on the basis of these complete object definitions. For example, the role service 323 can extract a role associated with a particular user and a plurality of properties and / or authorized methods associated with that role. Unauthorized properties and / or methods are then removed from the business object definition (for example, a user is not allowed to write to the client business object, so the UpdateBalance and UpdateContact methods are removed). The exemplary client business object 306 includes a client identifier property, a name property, an address property, a remaining balance property, a balance loading method, a balance update method, a contact loading method and a contact update method. The client identifier property in the client business object 306 is connected to the client identifier property in the ERP data source 314 and / or the client identifier property in the CRM data source 316 The name property and the address property in the client business object 306 are connected to the name property and the address property in the CRM data source 316. The remaining balance property in the object Customer 306 is connected to the remaining balance property in the ERP data source 314. The balance upload method and the balance update method in the customer business object 306 are connected to the load method and the balance updating method in the ERP data source 314. The contact loading method and the contact update method in the client business object 306 are connected to the method of updating the balance. The exemplary commercial order object 308 includes a control number property, a client identifier property, a property of the client, a contact owner, and a contact update method in the CRM data source. delivery date, a tax property, a total property, a status property, a purchase order method, an order loading method, an order update method, a checkout method, a checkout method discount calculation method and a tax calculation method. The order number property and the status property in the order business object 308 are connected to the order number property and the status property in the ERP data source 314. The client identifier property in the control business object 308 is connected to the client identifier property in the ERP data source 314 and / or the client identifier property in the add-in data source 320. The delivery date property , the tax property and the total property in the order business object 308 are connected to the delivery date property, the tax property, and the total property in the add-in data source 320. The method order creation method, the command loading method, the command update method and the command delete method in the order business object 308 are connected to the order creation method, the order loading method, the order update method and the order deletion method in the ERP data source 314. The discount calculation method and the method in the business object 308 are connected to the discount calculation method and the tax calculation method in the function data source 322. It should be realized that the names of the properties and / or methods in the data sources 108 need not be identical to the corresponding names of the properties and / or methods in the business objects 306, 308.

Une vue plus détaillée de la page de commande de client 302 et des connexions associées à l'objet commercial de client 306 et à l'objet commercial de commande 308 est illustrée sur la figure 5. Dans cet exemple, si l'utilisateur appuie sur un bouton de chargement 502, le logiciel de liaison associé au processus de formulaire 326 appelle la méthode de chargement de contact de l'objet commercial de client 306 et la méthode de chargement de commande de l'objet commercial de commande 308. Pour les deux appels de méthodes, le processus de formulaire 326 fournit la valeur du champ de numéro de client 504 à partir du formulaire de contact de client 310. En variante, le processus de formulaire 326 peut obtenir la valeur du champ de numéro de client 504 à partir de la propriété d'identifiant de client de l'objet commercial de client 306 et/ou de l'objet commercial de commande 308. Ces connexions logiques peuvent être définies de n'importe quelle manière appropriée. Par exemple, une interface utilisateur graphique peut être utilisée pour permettre à un utilisateur de tracer des connexions entre les formulaires 302, 310, 312 et des représentations graphiques des objets commerciaux 306, 308. De préférence, l'utilisateur peut concevoir des formulaires en utilisant uniquement un navigateur Web. Par exemple, une interface Java et XML asynchrone (AJAX) peut être utilisée.A more detailed view of the customer control page 302 and the connections associated with the customer business object 306 and the business object 308 is illustrated in FIG. 5. In this example, if the user presses a load button 502, the binding software associated with the form process 326 calls the contact load method of the client business object 306 and the order load method of the order business object 308. For both method calls, the form process 326 provides the value of the customer number field 504 from the customer contact form 310. Alternatively, the form process 326 can obtain the value of the customer number field 504 from of the client identifier property of the client business object 306 and / or the business control object 308. These logical connections may be defined in any suitable manner. For example, a graphical user interface may be used to allow a user to trace connections between forms 302, 310, 312 and graphical representations of business objects 306, 308. Preferably, the user may design forms using only a web browser. For example, an asynchronous Java and XML interface (AJAX) can be used.

Lorsque le processus de formulaire 306 appelle la méthode de chargement de contact de l'objet commercial de client 306 avec la valeur du champ de numéro de client 504 comme paramètre (par exemple, en utilisant AJAX), le processus de courtier d'objet 304 convertit l'appel de méthode dans le langage natif de la source de données associées 108 et extrait les données associées de la source de données 108 dans son format natif. Spécifiquement, le service de courtier CRM 330 invoque la méthode de chargement de contact native de la source de données CRM 316 et reçoit le nom et l'adresse du contact de la source de données CRM 316. Le service de courtier CRM 330 stockent ensuite les données de nom et de contact dans l'objet commercial de client 306. Par exemple, le service de courtier CRM 330 peut être un code ASP s'exécutant sur le serveur de courtier d'objet 114 qui envoie un fichier XML (ou un autre fichier standardisé) au processus de formulaire 326, qui est un code JavaScript s'exécutant sur le dispositif client 102 qui affiche le formulaire de contact de client 310. Une fois que l'objet commercial de client 306 est mis à jour avec les nouvelles données de nom et d'adresse, le processus de formulaire 326 renseigne le champ de nom 506 et le champ d'adresse 508 du formulaire de contact de client 310. En utilisant cette méthode, un formulaire HTML peut être mis à jour sans poster tout le formulaire sur un serveur et renouveler le rendu de tout le formulaire HTML.When the form process 306 calls the contact load method of the customer business object 306 with the value of the customer number field 504 as a parameter (for example, using AJAX), the object broker process 304 converts the method call into the native language of the associated data source 108 and extracts the associated data from the data source 108 in its native format. Specifically, the CRM 330 broker service invokes the native contact load method of the CRM data source 316 and receives the contact name and address of the CRM 316 data source. The CRM 330 broker service then stores the name and contact data in the client business object 306. For example, the CRM broker service 330 may be an ASP code running on the object broker server 114 that sends an XML file (or another standardized file) to the form process 326, which is a JavaScript code running on the client device 102 which displays the client contact form 310. Once the client business object 306 is updated with the new data of name and address, the form process 326 fills the name field 506 and the address field 508 of the customer contact form 310. Using this method, an HTML form can be updated without posting all the information. formulai re on a server and renew the rendering of the entire HTML form.

De même, lorsque le processus de formulaire 326 appelle la méthode de changement de commande de l'objet commercial de commande 308 avec la valeur du champ de numéro de client 504 comme paramètre, le processus de courtier d'objet 304 convertit l'appel de méthode dans le langage natif de la source de données associées 108 et extrait les données associées de la source de données 108 dans son format natif. Spécifiquement, le service de courtier ERP 328 invoque la méthode de chargement de commande native 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 statut de la source de données ERP 314. Par exemple, les données peuvent être retournées sous la forme d'une table de bases de données. Ces valeurs sont utilisées en fin de compte pour remplir la colonne de numéro de commande 510, la colonne de montant 512 et la colonne de statut 514 du tableau de commande 516 dans le formulaire de liste de commande 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 ne dispose pas de ces informations.Likewise, when the form process 326 calls the order business object control change method 308 with the value of the customer number field 504 as parameter, the object broker process 304 converts the call from method in the native language of the associated data source 108 and extracts the associated data from the data source 108 in its native format. Specifically, the ERP broker service 328 invokes the native command loading method of the ERP data source 314 and receives a list of command numbers, an associated list of totals, and an associated status list of the ERP data source 314. For example, the data can be returned in the form of a database table. These values are ultimately used to fill the order number column 510, the amount column 512 and the status column 514 of the control panel 516 in the order list form 312. Nevertheless, in this example, the delivery date column 518 can not be provided by the ERP data source 314, because the ERP data source 314 does not have this information.

Les données de date de livraison sont stockées dans la source de données de complément 320 (c'est-à-dire que le champ de date de livraison a été ultérieurement ajouté par l'utilisateur). Par conséquent, lorsque le processus de formulaire 326 appelle la méthode de chargement de commande de l'objet commercial de commande 308 avec la valeur du champ de numéro de client 504 comme paramètre, le service de courtier de complément 334 invoque la méthode de chargement de date de livraison de la source de données de complément 320 et reçoit une liste de dates de livraison et de numéros de commande associés de la source de données de complément 320. Le processus de courtier d'objet 304 et/ou le processus de formulaire 326 effectuent la corrélation entre d'une part les dates de livraison et d'autre part les données de montant et les données de statut reçues de la source de données ERP 314 en utilisant les données de numéro de commande qui sont communes aux deux listes.The delivery date data is stored in the complement data source 320 (i.e., the delivery date field was subsequently added by the user). Therefore, when the form process 326 invokes the command load object control method 308 with the value of the client number field 504 as a parameter, the complement broker service 334 invokes the method of loading the client number field 504 as the parameter. delivery date of the add-in data source 320 and receives a list of delivery dates and associated order numbers from the add-in data source 320. The object broker process 304 and / or the form process 326 perform the correlation between the delivery dates on the one hand and the amount data and the status data received from the ERP data source 314 on the other hand using the order number data that is common to both lists.

Le processus de courtier d'objet 304 stocke 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 dans l'objet commercial de commande 308. Par exemple, le service de courtier ERP 328, le service de courtier de complément 334, et/ou d'autres logiciels (par exemple, un code ASP s'exécutant sur le serveur de courtier d'objet 114) peuvent envoyer un fichier XML (ou un autre fichier standardisé) au processus de formulaire 326 (par exemple, un JavaScript s'exécutant sur le dispositif client 102) . Une fois que l'objet commercial de commande 308 est mis à jour avec les nouvelles données, le processus de formulaire 326 remplit le tableau de commande 516 dans le formulaire de liste de commande 312.The object broker process 304 then stores the list of order numbers, the associated list of delivery dates, the associated list of totals, and the associated list of statuses in the order business object 308. For example, the service ERP broker 328, complement broker service 334, and / or other software (for example, ASP code running on the object broker server 114) may send an XML file (or another file standardized) to the form process 326 (for example, a JavaScript executing on the client device 102). Once the business object 308 is updated with the new data, the form process 326 fills the control panel 516 in the order list form 312.

Un organigramme d'un processus de courtier d'objets exemplaire 304 est illustré sur la figure 6. De préférence, le processus de courtier d'objet 304 est réalisé dans un ou plusieurs programmes logiciels 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 304 peut être un code ASP (ou n'importe quel 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 référence à l'organigramme illustré sur la figure 6, il faut bien se rendre compte que de nombreux autres procédés peuvent être utilisés pour effectuer des actions associées au processus de courtier d'objets 304. Par exemple, l'ordre de nombreuses étapes peut être changé et certaines étapes décrites peuvent être facultatives.A flowchart of an exemplary object broker process 304 is illustrated in FIG. 6. Preferably, the object broker process 304 is realized in one or more software programs stored in one or more memories and executed by one or more multiple processors. For example, the object broker process 304 may be an ASP code (or any other type of software) running on the object broker server 114. Although the object broker process 304 As described with reference to the flowchart shown in Fig. 6, it should be appreciated that many other methods can be used to perform actions associated with the object broker process 304. For example, the order of many steps can be changed and some of the steps described may be optional.

De manière générale, le processus de courtier d'objet 304 reçoit des appels de méthode standardisés du processus de formulaire 326 et il convertit les appels de méthode standardisés en appels de méthode natifs. Le processus de courtier d'objet 304 envoie ensuite les appels de méthode natifs à la source ou aux sources de données associées 108 et reçoit une ou plusieurs réponses natives de la source ou des sources de données 108. Le processus de courtier d'objet 304 convertit ensuite la réponse ou les réponses natives en une ou plusieurs réponses standardisées et il envoie la réponse ou les réponses standardisées au processus d'appel de formulaire 326.In general, the object broker process 304 receives standardized method calls from the form process 326 and converts the standardized method calls into native method calls. The object broker process 304 then sends the native method calls to the source or associated data sources 108 and receives one or more native responses from the source or data sources 108. The object broker process 304 then converts the response or native responses into one or more standardized responses and sends the response or standardized responses to the form calling process 326.

Plus spécifiquement, le processus de courtier d'objet 304 reçoit un appel de méthode du processus de formulaire 326 en utilisant un protocole standardisé (bloc 602). L'appel de méthode standardisé est associé à un objet commercial et comprend des valeurs de propriété (c'est-à-dire des paramètres) nécessaires pour cette méthode. Par exemple, un dispositif client 102 peut afficher la page de commande de client 302 sous la forme d'un document HTML. En utilisant un déclenchement d'événement onBlur, le dispositif client 102 peut exécuter un code JavaScript qui envoie un fichier XML 604 représentant « LoadContact(1234567) » sur l'Internet 116 par l'intermédiaire d'une demande HTTP à un script ASP s'exécutant sur le serveur de courtier d'objet 114. Il faut bien comprendre que n'importe quel protocole 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.More specifically, the object broker process 304 receives a method call from the form process 326 using a standardized protocol (block 602). The standardized method call is associated with a business object and includes property values (i.e., parameters) needed for that method. For example, a client device 102 may display the client control page 302 as an HTML document. By using an onBlur event trigger, the client device 102 can execute JavaScript code that sends an XML file 604 representing "LoadContact (1234567)" on the Internet 116 through an HTTP request to an ASP script. executing on the object broker server 114. It should be understood that any suitable protocol can be used instead of HTML, JavaScript, XML, HTTP, and / or ASP. For example, VBScript can be used instead of JavaScript, and Perl can be used instead of ASP.

La demande XML exemplaire 604 comprend l'appel de méthode « LoadContact » 606 délimité par une étiquette d'ouverture « Method » 608 et une étiquettes de fermeture « Method » 610. De plus, la demande XML exemplaire 604 comprend la valeur de propriété « CustomerlD » 612 délimitée par une étiquette d'ouverture « CustomerlD » 614 et une étiquette de fermeture « Customer ID » 616.The exemplary XML request 604 includes the "LoadContact" method call 606 delimited by a "Method" openness tag 608 and a "Method" closure tag 610. In addition, the exemplary XML request 604 includes the property value " CustomerlD »612 delimited by an" CustomerlD "opening label 614 and a" Customer ID "closing label 616.

Le processus de courtier d'objet 304 transfère ensuite l'appel de méthode standardisé au service de courtier associé à l'appel de méthode (bloc 618) . Par exemple, le processus de courtier d'objet 304 peut envoyer le fichier XML 604 contenant l'appel de méthode LoadContact 606 au service de courtier CRM 330.The object broker process 304 then forwards the standard method call to the broker service associated with the method call (block 618). For example, the object broker process 304 may send the XML file 604 containing the LoadContact method call 606 to the CRM broker service 330.

Le service de courtier associé à l'appel de méthode convertit ensuite l'appel de méthode du protocole standardisé en protocole natif pour la source de données associées 108 (bloc 620). Par exemple, le service de courtier CRM 330 peut formuler une demande native 622 pour la source de données CRM 316 à partir du fichier XML reçu 604. La demande native 622 peut utiliser n'importe quel protocole. Par exemple, la demande native 622 peut être une demande SQL qui connaît la source de données CRM 316 qui contient les données de contact de client dans un champ «FullName» 624 et un champ «HomeAddress» 626 d'un «ContactsTable» 628 indexé par un champ «CustNum» 630.The broker service associated with the method call then converts the standardized protocol method call into a native protocol for the associated data source 108 (block 620). For example, the CRM broker service 330 can formulate a native request 622 for the CRM data source 316 from the received XML file 604. The native request 622 can use any protocol. For example, the native request 622 may be an SQL request that knows the CRM data source 316 which contains the customer contact data in a "FullName" field 624 and a "HomeAddress" field 626 of an indexed "ContactsTable" 628 by a "CustNum" field 630.

Le service de courtier associé à l'appel de méthode envoie ensuite la demande native à la source de données associées 108 et reçoit une réponse native 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 native 622 à la source de données CRM 316 sous forme de demande SQL et reçoit une réponse native 634 sous forme de liste délimitée par des virgules. Dans cet exemple, la réponse native 634 comprend la valeur de nom 634 et la valeur d'adresse 636 du contact associé à la valeur de propriété «CustomerlD» 612.The broker service associated with the method call then sends the native request to the associated data source 108 and receives a native response from the data source 108 (block 632). For example, the CRM broker service 330 may be an ASP script running on the object broker server 114 that sends the native request 622 to the CRM data source 316 as a SQL request and receives a native response 634. as a comma delimited list. In this example, the native response 634 includes the name value 634 and the address value 636 of the contact associated with the property value "CustomerlD" 612.

Le service de courtier convertit ensuite la réponse native dans le protocole standardisé (bloc 638). Par exemple, le service de courtier 330 peut attendre une réponse SQL de la source de données CRM 316 et générer une réponse XML associée 640. Dans cet exemple, la réponse XML 640 comprend toutes les informations de la demande XML d'origine 604 (c'est-à-dire, l'appel de méthode « LoadContact » 606 délimité par une étiquette d'ouverture « Method » 608 et une étiquette de fermeture « Method » 610 et la valeur de propriété « CustomerlD » 612 délimitée par une étiquette d'ouverture « CustomerlD » 614 et une étiquette de fermeture « CustomerlD » 616) . De plus, la réponse XML 640 comprend la valeur de nom 634 délimitée par une étiquette d'ouverture « Name » 642 et une étiquette de fermeture « Name » 644, ainsi que la valeur d'adresse 640 délimitée par une étiquette d'ouverture « Address » 646 et une étiquette de fermeture « Address » 648.The broker service then converts the native response into the standardized protocol (block 638). For example, the broker service 330 can wait for a SQL response from the CRM data source 316 and generate an associated XML response 640. In this example, the XML response 640 includes all the information from the original XML request 604 (c that is, the "LoadContact" method call 606 delimited by a method "Open" tag 608 and a "Method" closure tag 610 and the "CustomerlD" property value 612 delimited by a tag. 'CustomerlD' opening 614 and a 'CustomerlD' closing label 616). In addition, the XML response 640 includes the name value 634 delimited by a "Name" opening tag 642 and a "Name" closing tag 644, as well as the address value 640 delimited by an opening tag " Address "646 and a closing tag" Address "648.

Le service de courtier envoie ensuite la réponse standardisé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 commande de client 302 sur un dispositif client 102. Comme cela va être décrit ci-après, le processus de formulaire 326 peut ensuite utiliser la réponse XML 640 pour remplir la page de commande de client basée sur XML 302.The broker service then sends the standardized response to the call function in the Form 326 process (block 646). For example, the CRM broker service 330 can send the XML response 640 to a JavaScript associated with the client control page 302 on a client device 102. As will be described hereinafter, the form process 326 can then use XML response 640 to populate the XML-based client command page 302.

Un organigramme d'un processus de formulaire exemplaire 326 est illustré sur la figure 7. De préférence, le processus de formulaire 326 est réalisé dans 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 formulaire 326 peut être un code JavaScript (ou n'importe quel autre type de logiciel) s'exécutant sur un dispositif client 102. Bien que le processus de formulaire 326 soit décrit en référence à l'organigramme illustré sur la figure 7, il faut bien se rendre compte que de nombreux autres procédés peuvent être utilisés pour effectuer les actions associées au processus de formulaire 326. Par exemple, l'ordre de nombreuses étapes peut être changé et certaines étapes décrites peuvent être facultatives.A flowchart of an exemplary form process 326 is illustrated in Figure 7. Preferably, the form process 326 is performed in one or more software programs that are stored in one or more memories and executed by one or more processors. For example, the form process 326 may be a JavaScript code (or any other type of software) running on a client device 102. Although the form process 326 is described with reference to the flowchart shown in FIG. In Figure 7, it should be appreciated that many other methods may be used to perform the actions associated with the form process 326. For example, the order of many steps may be changed and some of the steps described may be optional.

De manière générale, le processus de formulaire 326 détecte des événements associés à un formulaire (par exemple, la page de commande de client HTML 302) et il envoie des appels de méthode standardisés (par exemple, la demande XML 604) au processus de courtier d'objet 304. Lorsque le processus de formulaire 326 reçoit la réponse ou les réponses standardisées (par exemple, la réponse XML 640) du processus de courtier d'objet 304, le processus de formulaire 326 peut ensuite utiliser la réponse ou les réponses standardisées pour remplir le formulaire (par exemple, la page de commande de client HTML 302).In general, the Form 326 process detects events associated with a form (for example, the HTML 302 client ordering page) and sends standardized method calls (for example, the XML request 604) to the broker process. 304. When the form process 326 receives the response or the standardized responses (for example, the XML response 640) from the object broker process 304, the form process 326 can then use the response or the standardized responses. to fill out the form (for example, the HTML 302 client ordering page).

Plus spécifiquement, le processus de formulaire 326 détecte un événement nécessitant la mise à jour d'un formulaire et/ou d'une page (bloc 702) . Par exemple, le processus de formulaire 32 6 peut être un code JavaScript s'exécutant sur un dispositif client 102 en association avec la page de commande de client 302. Lorsqu'un utilisateur appuie sur le bouton de chargement Load 502 sur le formulaire de contact de client 310, le processus de formulaire 326 détecte l'événement onClick associé au bouton de chargement Load 502 et il exécute une portion du code JavaScript associé à cet événement onClick (c'est-à-dire, le gestionnaire d'événement).More specifically, the form process 326 detects an event requiring the update of a form and / or page (block 702). For example, the form process 326 may be a JavaScript code running on a client device 102 in association with the customer order page 302. When a user presses the load button 502 on the contact form from client 310, the form process 326 detects the onClick event associated with the Load load button 502 and executes a portion of the JavaScript code associated with this onClick event (i.e., the event handler).

Lorsque le gestionnaire d'événement est exécuté, le processus de formulaire 326 génère un appel de méthode approprié dans le protocole standard (bloc 704). Par exemple, le dispositif client 102 peut exécuter un code JavaScript qui génère le fichier XML 604 représentant «LoadContact (1234567)». Comme cela a été décrit ci-dessus, la demande XML exemplaire 604 comprend l'appel de méthode «LoadContact» 606 délimité par une étiquette d'ouverture « Method » 608 et une étiquettes de fermeture «Method» 610. De plus, la demande XML exemplaire 604 comprend la valeur de propriété « CustomerlD » 612 délimitée par une étiquette d'ouverture « CustomerlD » 614 et une étiquette de fermeture « CustomerlD » 616.When the event handler is executed, the form process 326 generates an appropriate method call in the standard protocol (block 704). For example, the client device 102 may execute JavaScript code that generates the XML file 604 representing "LoadContact (1234567)". As described above, the exemplary XML request 604 includes the "LoadContact" method call 606 delimited by a "Method" openness tag 608 and a "Method" closure tag 610. In addition, the request Exemplary XML 604 includes the "CustomerlD" property value 612 delimited by an "CustomerlD" opening tag 614 and a "CustomerlD" closing tag 616.

Le processus de formulaire 326 envoie ensuite l'appel de méthode standardisé au processus de courtier d'objet 304 (bloc 706). Par exemple, le dispositif client 102 peut envoyer la demande XML 604 sur l'Internet 116 par l'intermédiaire d'une demande HTTP à un script ASP s'exécutant sur le serveur de courtier d'objet 114. Le processus de courtier d'objet 304 communique ensuite avec les sources de données associées 108 en utilisant les protocoles natifs et il envoie une réponse standardisée au processus de formulaire 326 (bloc 708) . Par exemple, le JavaScript de côté client associé au processus de formulaire 326 peut recevoir la réponse XML 640 du script ASP de côté serveur associé au processus de courtier d'objet 304.The form process 326 then sends the standardized method call to the object broker process 304 (block 706). For example, the client device 102 may send the XML request 604 on the Internet 116 via an HTTP request to an ASP script running on the object broker server 114. The broker process of object 304 then communicates with associated data sources 108 using the native protocols and sends a standardized response to the form process 326 (block 708). For example, the client-side JavaScript associated with the form process 326 may receive the XML response 640 of the server-side ASP script associated with the object broker process 304.

Comme cela a été décrit ci-dessus, la réponse XML exemplaire 640 comprend toutes les informations de la demande XML d'origine 604 (c'est-à-dire, l'appel de méthode «Load-Contact» 606 délimité par une étiquette d'ouverture «Method» 608 et une étiquette de fermeture «Method» 610 et la valeur de propriété «CustomerlD» 612 délimitée par une étiquette d'ouverture «CustomerlD» 614 et une étiquette de fermeture «CustomerlD» 616) . De plus, la réponse XML 640 comprend la valeur de nom 634 délimitée par une étiquette d'ouverture «Name» 642 et une étiquette de fermeture «Name» 644, ainsi que la valeur d'adresse 640 délimitée par une étiquette d'ouverture «Address» 646 et une étiquette de fermeture «Address» 648. Le processus de formulaire 326 peut ensuite utiliser la réponse standardisée pour remplir le formulaire du client (bloc 710). Par exemple, le JavaScript de côté client peut remplir le champ de nom 506 et le champ d'adresse 508 du formulaire de contact de client basé sur HTML 310.As described above, the exemplary XML response 640 includes all information from the original XML request 604 (i.e., the label-delimited "Load-Contact" method call 606 method "opening" 608 and a "Method" closing label 610 and the "CustomerlD" property value 612 delimited by an "CustomerlD" opening label 614 and a "CustomerlD" closing label 616). In addition, the XML response 640 includes the name value 634 delimited by a "Name" opening tag 642 and a "Name" closing tag 644, as well as the address value 640 delimited by an opening tag " Address "646 and an" Address "closure tag 648. The form process 326 can then use the standardized response to fill out the client's form (block 710). For example, the client-side JavaScript can fill the name field 506 and the address field 508 of the HTML-based client contact form 310.

Un outil de conception de flux de travail 800 permet à un utilisateur de définir une carte de ressources. Dans cet exemple, l'outil de conception de flux de travail 800 comprend une section d'explorateur de fichiers 804 et un canevas de conception 806. La section d'explorateur de fichiers 804 permet à l'utilisateur de trouver et d'organiser une pluralité de fichiers associés au flux de travail. Le canevas de conception 806 permet à l'utilisateur de tracer une représentation graphique de la carte de ressources 802. Dans cet exemple, il est représenté une carte de ressources 802 comprenant un objet de personnel 808 et un objet de client 810. L'objet de personnel 808 et l'objet de client 810 comprennent chacun un ou plusieurs nœuds d'entrée 812 et un ou plusieurs nœuds de sortie 814. Les nœuds d'entrée 812 sont connectés aux nœuds de sortie 814 par des flèches de processus 816. Dans cet exemple, un processus de support 816a et un processus de vente 816b sortent chacun de l'objet de personnel 808 et entrent chacun dans l'objet de client 810. De même, un processus de commande 816c sort de l'objet de client 810 et entre dans l'objet de personnel 808.A workflow design tool 800 allows a user to define a resource map. In this example, the workflow design tool 800 includes a file explorer section 804 and a design template 806. The file explorer section 804 allows the user to find and organize a file. plurality of files associated with the workflow. The design pattern 806 allows the user to draw a graphical representation of the resource card 802. In this example, there is shown a resource card 802 comprising a staff item 808 and a client object 810. The object 808 and the client object 810 each comprise one or more input nodes 812 and one or more output nodes 814. The input nodes 812 are connected to the output nodes 814 by process arrows 816. in this example, a support process 816a and a sales process 816b each exit the personnel object 808 and each enter the client object 810. Similarly, an 816c control process exits the client object 810 and enters the staff object 808.

En définissant des flux de travail en termes de ressources connues (par exemple, l'objet de personnel 808 et l'objet de client 810) et les interactions entre ces ressources (par exemple, l'objet de client 810 a besoin du support de l'objet de personnel 808), le concepteur de flux de travail peut découvrir et concevoir chaque processus en commençant à un haut niveau et en descendant vers des processus sous-jacents et des flux de travail automatisés.By defining workflows in terms of known resources (for example, the staff object 808 and the client object 810) and the interactions between these resources (for example, the client object 810 needs the support of Personnel Object 808), the workflow designer can discover and design each process starting at a high level and down to underlying processes and automated workflows.

Les cartes de ressources 802 permettent également à un héritage d'objet commercial de montrer des classes d'un objet commercial et les objets enfants de cet objet commercial. Les objets enfants peuvent être associés à des objets parents en modifiant des propriétés associées à l'objet parent et/ou en ajoutant des propriétés à l'objet parent.802 resource cards also allow a business object inheritance to show classes of a business object and child objects of that business object. Child objects can be associated with parent objects by modifying properties associated with the parent object and / or by adding properties to the parent object.

Une combinaison unique d'objets parent/enfant peut avoir une définition de liaison unique à l'intérieur d'une autre ressource sur le canevas. Par exemple, l'objet parent de client 810 peut comprendre un objet enfant de client public et un objet enfant de client privé. Le processus de vente 816b entre l'objet de personnel 808 et l'objet de client 810 peut être différent selon le type d'objet de client 810 (c'est-à-dire, un processus de vente 816b pour les clients publics 810 et un autre processus de vente pour les clients privés 810). De même, l'objet de personnel 808 peut être un objet parent avec un personnel de vente et un personnel de support sous la forme de deux ressources enfants. L'outil de conception de flux de travail 800 est utilisé pour créer une carte de processus 902. Dans cet exemple, le processus de support 816a est défini. Le processus de support exemplaire 816a comprend une étape de début 904, une étape de rejet 906 et une étape d'approbation 908. Dans cet exemple, une seule de ces étapes 904, 906, 908 doit être effectuée. Par conséquent, une nouvelle étape 910 est placée pour sélectionner l'une des trois étapes 904, 906, 908. La nouvelle étape 910 comprend une pluralité d'actions 912 et une pluralité de nœuds de sortie correspondants 814. Dans cet exemple, la nouvelle étape 910 comprend une action d'approbation 914, une action de rejet 916 et une action de redirection 918. L'utilisateur connecte le nœud de sortie rejeté 814a au nœud d'entrée 812a de l'étape de rejet 906 en déplaçant le connecteur de processus 816d. La logique de ligne associée est automatiquement configurée pour l'utilisateur.A unique combination of parent / child objects may have a unique binding definition within another resource on the pattern. For example, the parent client object 810 may include a child object of a public client and a child object of a private client. The sales process 816b between the 808 staff object and the 810 customer object may be different depending on the type of 810 client object (that is, an 816b sales process for 810 public customers). and another sales process for private customers 810). Similarly, the staff object 808 may be a parent object with sales staff and support staff in the form of two child resources. The workflow design tool 800 is used to create a process map 902. In this example, the support process 816a is defined. The exemplary support process 816a includes a start step 904, a rejection step 906, and an approval step 908. In this example, only one of these steps 904, 906, 908 must be performed. Therefore, a new step 910 is set to select one of the three steps 904, 906, 908. The new step 910 comprises a plurality of actions 912 and a plurality of corresponding output nodes 814. In this example, the new step 910 step 910 includes an approval action 914, a rejection action 916 and a redirection action 918. The user connects the rejected output node 814a to the input node 812a of the rejection step 906 by moving the process 816d. The associated line logic is automatically configured for the user.

Une autre carte de processus 1000 est illustrée sur la figure 8. Dans cette carte de processus exemplaire 1000, une portion 1002 de la carte de processus 1000 est mise en surbrillance. Spécifiquement, une étape d'approbation 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 exemple, le reste de la carte de processus 1000 dans cet exemple) sont considérées comme des régions globales. En utilisant un héritage de processus, cette localisation de certaines régions de processus permet à un propriétaire de processus de conserver la maîtrise du processus global tout en permettant à d'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 acheminé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. Des processus locaux peuvent même inclure des étapes de processus supplémentaires qui sont spécifiques à la région localisée. Le processus 1000 est mis à jour dans le cadre d'une définition de processus unique de sorte que des changements de la portion globale s'appliquent automatiquement à toutes les instances du processus 1000 et des changements de la portion locale 1002 ne s'appliquent qu'à des lieux associés.Another process card 1000 is shown in FIG. 8. In this exemplary process card 1000, a portion 1002 of the process card 1000 is highlighted. Specifically, an approval step 1004 and a notification step 1006 are included in a highlighted portion 1002. This portion 1002 may define a localized region of the process map 1000 while other portions of the process map 1000 ( for example, the remainder of the process map 1000 in this example) are considered global regions. Using process inheritance, this localization of certain process regions allows a process owner to maintain control of the overall process while allowing other users to customize certain 1002 portions. For example, the overall process can determine when something is approved and where the notification is routed, but an office in one organization can perform a set of actions in response to approval, and another office in the organization can perform another set of actions in response to the approval. 'approval. Local processes may even include additional process steps that are specific to the localized region. The process 1000 is updated as part of a single process definition so that changes to the global portion automatically apply to all instances of the process 1000 and changes to the local portion 1002 apply only 'to associated places.

De plus, des étapes et/ou des portions de processus individuelles 1002 peuvent être verrouillées. Dans cet exemple, une étape d'approbation 1008 est individuellement verrouillée, et la portion locale 1002 est également verrouillée. Chaque étape verrouillée et chaque portion verrouillée comprennent une icône de verrou 1010 pour indiquer un statut verrouillé. En verrouillant une étape de processus 1008 et/ou une portion de processus 1002, des concepteurs de processus peuvent limiter la capacité d'un autre utilisateur à changer certains paramètres de configuration, ajouter ou supprimer des dépendances, etc. dans la logique définie et verrouillée. Les attributs de verrouillage peuvent également être manipulés par des assistants et des modèles d'une manière programmée pour permettre à des blocs de conception de niveau inférieur de cacher ou de verrouiller leur logique de mise en œuvre.In addition, individual steps and / or process portions 1002 may be locked. In this example, an approval step 1008 is individually locked, and the local portion 1002 is also locked. Each locked step and each locked portion includes a lock icon 1010 to indicate a locked status. By locking a process step 1008 and / or a process portion 1002, process designers may limit another user's ability to change certain configuration parameters, add or remove dependencies, and so on. in the logic defined and locked. Lock attributes can also be manipulated by wizards and templates in a manner programmed to allow lower-level design blocks to hide or lock their implementation logic.

Un cadre de travail collaboratif permet à tout concepteur de processus de travail à l'intérieur de l'outil de conception de flux de travail 800 de partager visuellement son canevas de conception 806 avec un autre utilisateur sur le réseau 116. Un concepteur de processus peut également engager une conversation vocale ou textuelle avec les autres intervenants pour discuter du processus en cours de conception. De cette manière, le concepteur de processus peut impliquer d'autres utilisateurs dans la conception de processus en utilisant des outils de collaboration et de partage d'application. Par exemple, en faisant un clic droit sur le canevas de conception 806, le concepteur de processus peut contacter une personne particulière du service comptable pour lui demander qui doit être prévenu lorsqu'un achat est approuvé. Des messages textuels et/ou des enregistrements vocaux entre des collaborateurs peuvent également être enregistrés dans une base de données en vue d'une consultation ultérieure. Par exemple, lors d'une évaluation d'un processus pour le réviser, le concepteur de processus peut écouter une conversation de collaboration pour déterminer pourquoi une étape particulière a été mise en œuvre de la manière actuelle.A collaborative framework allows any workflow designer within the workflow design tool 800 to visually share his design pattern 806 with another user on the network 116. A process designer can also engage in a voice or text conversation with other stakeholders to discuss the process being designed. In this way, the process designer can involve other users in process design by using collaboration and application sharing tools. For example, by right-clicking on the 806 design pattern, the process designer can contact a particular person in the accounting department to ask who should be notified when a purchase is approved. Text messages and / or voice recordings between collaborators may also be recorded in a database for later reference. For example, when evaluating a process to revise it, the process designer can listen to a collaborative conversation to determine why a particular step has been implemented in the current way.

Chaque étape dans la représentation graphique du processus comprend de préférence une bande d'activité. Une bande d'activité exemplaire 1100 est illustrée sur la figure 9. Dans cet exemple, la bande d'activité 1100 comprend une ou plusieurs icônes d'événements 1102 qui représentent les événements associés à l'étape de processus. Par exemple, l'utilisateur peut déplacer un événement d'envoi d'e-mail dans une étape de processus. Dans un tel cas, une icône d'événement d'e-mail 1104 est ajoutée à la bande d'activité 1100. Si le nombre d'icônes d'événements 1102 dépasse la largeur de la bande d'activité 1100, l'utilisateur peut parcourir les icônes d'événements en utilisant des boutons de flèches 1106.Each step in the graphical representation of the process preferably comprises a band of activity. An exemplary activity band 1100 is illustrated in FIG. 9. In this example, the activity band 1100 includes one or more event icons 1102 that represent the events associated with the process step. For example, the user can move an e-mail sending event in a process step. In such a case, an e-mail event icon 1104 is added to the activity band 1100. If the number of event icons 1102 exceeds the width of the activity band 1100, the user can browse event icons using 1106 arrow buttons.

Lorsqu'une icône d'événement particulière 1102 est sélectionnée, l'utilisateur se voit présenter un assistant de configuration pour configurer cette portion du processus. De préférence, chaque étape d'un processus est présentée à l'utilisateur sous forme d'un cube, et l'assistant de configuration pivote dans la vue pour créer un effet d'une entité unique sur laquelle l'utilisateur travaille. Par exemple, lorsqu'un utilisateur clique sur l'icône d'événement d'e-mail 1104, la bande d'activité 1100 tourne dans un assistant de configuration d'événement d'email 1200. Une vue partiellement tournée d'un assistant de configuration d'événement d'e-mail exemplaire 1200 est illustrée sur la figure 10. L'assistant de configuration d'e-mail 1200 peut être utilisé pour concevoir des e-mails construits dynamiquement utilisés par un ou plusieurs processus de flux de travail. Par exemple, l'étape de notification 1006 du processus d'approbation 1000 illustré sur la figure 8 comprend 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 est construit. L'assistant de configuration d'e-mail peut utiliser un assistant de référence qui permet à un utilisateur d'utiliser un processus tout en concevant un autre processus. Par exemple, un assistant de référence peut permettre à un utilisateur d'appeler n'importe quelle méthode dans un ensemble .NET, un service Web ou un service WCF dans le cadre de la conception d'un processus.When a particular event icon 1102 is selected, the user is presented with a configuration wizard to configure that portion of the process. Preferably, each step of a process is presented to the user as a cube, and the configuration wizard rotates in the view to create an effect of a single entity on which the user is working. For example, when a user clicks on the e-mail event icon 1104, the 1100 activity band runs in an e-mail event setup wizard 1200. A partially-rotated view of an assistant The exemplary e-mail event setup 1200 is illustrated in FIG. 10. The e-mail configuration wizard 1200 can be used to design dynamically constructed e-mails used by one or more workflow processes. job. For example, the notification step 1006 of the approval process 1000 shown in Fig. 8 includes an output 814 which may be an automatic e-mail message. The E-mail Configuration Wizard 1200 can be used to design how this e-mail message is built. The E-mail Configuration Wizard can use a reference wizard that allows a user to use a process while designing another process. For example, a reference wizard might allow a user to call any method in a .NET set, web service, or WCF service as part of a process design.

De préférence, l'assistant de configuration 1200 comprend une portion d'affichage principal 1202 et un bouton suivant Next 1204. La portion d'affichage principal 1202 affiche une page de l'assistant de configuration 1200. Le bouton suivant Next 1204 fait avancer la portion d'affichage principal 1202 à la page suivante de l'assistant de configuration 1200. Un bouton précédent (non représenté) change la portion d'affichage principal 1202 pour afficher la page précédente de l'assistant de configuration 1200. L'assistant de configuration 1200 comprend également une palette de page 1206. La palette de page 1206 comprend une pluralité d'imagettes 1208 à 1220. Chacune des imagettes 1208 à 1220 représente l'une des pages dans l'assistant de configuration 1200. L'utilisateur peut passer rapidement à n'importe quelle page dans l'assistant de configuration 1200 en cliquant sur l'imagette associée. Lorsqu'un utilisateur passe à une page particulière dans l'assistant de configuration 1200, la portion d'affichage principal 1202 est retracée pour refléter cette page.Preferably, the configuration wizard 1200 comprises a main display portion 1202 and a next Next 1204 button. The main display portion 1202 displays a page of the setup wizard 1200. The next Next 1204 button advances the main display portion 1202 on the next page of the setup wizard 1200. A previous button (not shown) changes the main display portion 1202 to display the previous page of the setup wizard 1200. The wizard The configuration 1200 also includes a page palette 1206. The page palette 1206 comprises a plurality of thumbnails 1208 to 1220. Each of the thumbnails 1208 to 1220 represents one of the pages in the configuration wizard 1200. The user can pass quickly to any page in the 1200 setup wizard by clicking on the associated thumbnail. When a user moves to a particular page in the setup wizard 1200, the main display portion 1202 is traced to reflect that page.

De plus, l'utilisateur peut voir rapidement une fenêtre contextuelle de n'importe quelle page dans l'assistant de configuration 1200 sans passer à cette page (c'est-à-dire, sans tracer le contenu de page dans la portion d'affichage principal 1202) en faisant glisser le curseur sur l'imagette associée. Par exemple, la troisième page 1212 de l'assistant de configuration d'e-mail exemplaire 1200 peut être affichée sous forme de fenêtre contextuelle. Dans cet exemple, la troisième page 1212 de l'assistant de configuration 1200 comprend 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 l'e-mail automatique. Les valeurs entrées dans une page de l'assistant de configuration de processus 1200 sont visibles dans la vue de fenêtre contextuelle. Par exemple, si l'utilisateur a entré « Rapport d'approbation » dans la boîte d'entrée de sujet 1402 de la troisième page 1212 de l'assistant de configuration d'e-mail 1200, « Rapport d'approbation » est visible dans la boîte d'entrée de sujet 1402 de la fenêtre contextuelle. De cette manière, l'utilisateur peut entrer des valeurs dans différentes pages de l'assistant de configuration 1200 qui sont cohérentes avec d'autres entrées sans avoir besoin de se rappeler des autres entrées et/ou de quitter la page actuelle.In addition, the user can quickly see a pop-up window of any page in the 1200 Setup Wizard without going to that page (that is, without drawing the page content in the portion of the page. main display 1202) by dragging the slider on the associated thumbnail. For example, the third page 1212 of the exemplary e-mail setup wizard 1200 may be displayed as a pop-up window. In this example, the third page 1212 of the setup wizard 1200 includes a topic input box 1402 and a body input box 1404. The topic input box 1402 of the configuration wizard E-mail 1200 is used to define the subject line of the automatic e-mail. The body input box 1404 of the e-mail configuration wizard 1200 is used to define the body of the automatic e-mail. The values entered in a page of the Process Configuration Wizard 1200 are visible in the pop-up window view. For example, if the user entered "Approval Report" in the topic entry box 1402 of the third page 1212 of the E-mail Configuration Wizard 1200, "Approval Report" is visible in the subject entry box 1402 of the pop-up window. In this way, the user can enter values in different pages of the Configuration Wizard 1200 that are consistent with other entries without needing to remember other entries and / or leave the current page.

Un organigramme d'un processus d'assistant de configuration exemplaire 1500 est illustré sur la figure 11. De préférence, le processus d'assistant de configuration 1500 est réalisé dans un ou plusieurs programmes logiciels qui sont stockés dans une plusieurs mémoires et qui sont exécutés par un ou plusieurs processeurs. Bien que le processus d'assistant de configuration 1500 soit décrit en référence à l'organigramme illustré sur la figure 11, il faut bien se rendre compte que de nombreux autres procédés d'exécution des actions associées au processus d'assistant de configuration 1500 peuvent être utilisés. Par exemple, l'ordre de nombreuses étapes peut être changé, et certaines étapes décrites peuvent être facultatives.A flowchart of an exemplary configuration assistant process 1500 is illustrated in FIG. 11. Preferably, the configuration assistant process 1500 is performed in one or more software programs that are stored in a plurality of memories and that are executed. by one or more processors. Although the configuration wizard process 1500 is described with reference to the flowchart shown in FIG. 11, it should be appreciated that many other methods of performing the actions associated with the configuration wizard process 1500 may to be used. For example, the order of many steps may be changed, and some of the steps described may be optional.

Le processus 1500 commence lorsqu'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 bouton de configuration Setup dans la bande d'activité 1100. En réponse, le dispositif client 102 provoque l'affichage d'une séquence animée (bloc 1504). Par exemple, le dispositif client peut afficher la bande d'activité en rotation en trois dimensions pour montrer un « côté » d'assistant de configuration d'e-mail d'un cube. De cette manière, l'utilisateur reçoit un feed-back visuel que les deux objets (par exemple, la bande d'activité 1100 et l'assistant de configuration d'e-mail 1200) sont liés. L'assistant de configuration comprend une pluralité de pages de configuration dans une palette d'imagettes 1206 et une page de configuration actuelle dans une portion d'affichage principal 1202 (bloc 1506). Par exemple, la 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. Pendant que le dispositif client 102 affiche des pages d'assistant de configuration et reçoit des informations de configuration de l'utilisateur, le dispositif client 102 recherche également une pluralité d'événements comme des déplacements de souris et des clics de souris.The process 1500 begins when a client device 102 detects an event associated with a graphical representation of a process step 1008 (block 1502). For example, the user can click a Setup button in the 1100 activity band. In response, the client device 102 causes the display of an animated sequence (block 1504). For example, the client device may display the three-dimensional rotational activity band to show an "e-mail configuration wizard" side of a cube. In this way, the user receives visual feedback that the two objects (for example, activity band 1100 and e-mail setup wizard 1200) are linked. The configuration wizard includes a plurality of configuration pages in a thumbnail pallet 1206 and a current configuration page in a main display portion 1202 (block 1506). For example, the first page of an e-mail setup wizard may prompt the user to enter the recipient's e-mail address and the subject of the e-mail message. While client device 102 displays configuration wizard pages and receives user configuration information, client device 102 also searches for a plurality of events such as mouse movements and mouse clicks.

Si un premier type d'événement associé à l'une des imagettes 1208-1220 est détecté (bloc 1508), le dispositif client 102 affiche de préférence une version plus grande de l'imagette associée (bloc 1510). Par exemple, si l'utilisateur déplace le curseur de la souris sur une imagette particulière 1208-1220, une fenêtre contextuelle 1212 représentant une version plus grande de cette imagette peut être affichée. De préférence, la version plus grande de 1'imagette est une fenêtre distincte 1212 qui est plus petite que la portion d'affichage principal 1202. Néanmoins, n'importe quel type d'image appropriée peut être utilisé. Par exemple, la version plus grande de l'imagettes peut remplacer « provisoirement » la portion d'affichage principal 1202.If a first type of event associated with one of the thumbnails 1208-1220 is detected (block 1508), the client device 102 preferably displays a larger version of the associated thumbnail (block 1510). For example, if the user moves the mouse cursor over a particular thumbnail 1208-1220, a popup window 1212 representing a larger version of that thumbnail can be displayed. Preferably, the larger version of the imager is a separate window 1212 which is smaller than the main display portion 1202. Nevertheless, any suitable type of image may be used. For example, the larger version of the thumbnail may "temporarily" replace the main display portion 1202.

Si un deuxième type d'événement associé à l'une des imagettes 1208-1220 est détecté (bloc 1512), le dispositif client 102 supprime de préférence la version plus grande de l'image associée (bloc 1514). Par exemple, si l'utilisateur déplace le curseur de la souris hors d'une imagette particulière, la fenêtre contextuelle représentant la version plus grande de cette imagette peut être supprimée. Si la version plus grande de l'imagette est une fenêtre distincte, cette fenêtre est supprimée de l'affichage et le contenu « au-dessous » de la fenêtre supprimée est retracé. Si la version plus grande de 1'imagette a remplacé la portion d'affichage principal 1202, alors le contenu précédent de la portion d'affichage principal 1202 (par exemple, la page de configuration actuelle) est retracé dans la portion d'affichage principal 1202.If a second type of event associated with one of the thumbnails 1208-1220 is detected (block 1512), the client device 102 preferably deletes the larger version of the associated image (block 1514). For example, if the user moves the mouse cursor out of a particular thumbnail, the pop-up window representing the larger version of that thumbnail may be removed. If the larger version of the thumbnail is a separate window, this window is removed from the display and the content "below" the deleted window is retraced. If the larger version of the imager has replaced the main display portion 1202, then the previous contents of the main display portion 1202 (e.g., the current configuration page) is traced in the main display portion. 1202.

La version plus grande de 1'imagette présente également les informations de configuration précédemment entrées par l'utilisateur. Par exemple, si utilisateur a entré l'adresse e-mail du destinataire sur la première page de l'assistant de configuration, est passé à une autre page de l'assistant de configuration puis a souhaité rappeler l'adresse e-mail entrée sans revenir à la première page, l'utilisateur peut simplement faire passer la souris sur la première imagette pour rappeler les informations entrées.The larger version of the imager also presents the configuration information previously entered by the user. For example, if user has entered the recipient's email address on the first page of the setup wizard, moved to another page of the setup wizard and then wished to call back the email address entered without back to the first page, the user can simply move the mouse over the first thumbnail to recall the information entered.

Si un troisième type d'événement associé à l'une des imagettes 1208-1220 est détecté (bloc 1516), le dispositif client 102 remplace de préférence l'image d'affichage principal par une version de taille complète de 1'imagette associée (bloc 1518). Par exemple, si l'utilisateur clique avec la souris sur une imagette particulière, la portion d'affichage principal 1202 passes de préférence à cette page dans l'assistant de configuration. A la différence de l'exemple du passage de la souris sur 1'imagette, la sortie de la souris hors de l'imagette ne ramène pas la portion d'affichage principal 1202 à la page précédente (c'est-à-dire que l'utilisateur est passé à cette page de configuration au lieu de consulter provisoirement cette page de configuration). A tout moment, l'utilisateur peut entrer une ou plusieurs options de configuration (bloc 1520), et les options de configuration sont stockées (bloc 1522). Si l'utilisateur quitte l'assistant de configuration (bloc 1524), le processus 1508-1520 de recherche d'actions d'utilisateur et d'options de configuration se répète. Même si l'objet commercial dynamique peut être un outil utile dans les organisations d'aujourd'hui, une fois qu'un objet commercial dynamique a été créé, il ne peut pas être facilement accédé et consommé par des dispositifs clients distants. Certaines technologies existantes exigent que, avant que l'objet commercial ne soit consommé par l'intermédiaire de technologies de services Web existantes, un point d'extrémité doit être défini. Un point d'extrémité est utilisé pour spécifier les exigences d'interaction entre le dispositif client et l'objet commercial. Par exemple, le dispositif client envoie un message au point d'extrémité de l'objet commercial lorsqu'il souhaite utiliser l'objet commercial, et le message est formaté en fonction des informations spécifiées par le point d'extrémité. Un objet commercial peut avoir plusieurs points d'extrémité permettant différentes manières pour les clients de consommer cet objet. D'autres technologies existantes peuvent fournir un point d'extrémité par défaut auquel l'utilisateur ne peut pas configurer des paramètres ou des réglages du point d'extrémité.If a third type of event associated with one of the thumbnails 1208-1220 is detected (block 1516), the client device 102 preferably replaces the main display image with a full-size version of the associated imager ( block 1518). For example, if the user clicks with the mouse on a particular thumbnail, the main display portion 1202 preferably passes to that page in the setup wizard. Unlike the mouse passing example on the imager, the exit of the mouse out of the thumbnail does not return the main display portion 1202 to the previous page (i.e. the user has moved to this configuration page instead of temporarily viewing this configuration page). At any time, the user can enter one or more configuration options (block 1520), and the configuration options are stored (block 1522). If the user exits the configuration wizard (block 1524), the process 1508-1520 for searching user actions and configuration options is repeated. While the dynamic business object can be a useful tool in today's organizations, once a dynamic business object has been created, it can not be easily accessed and consumed by remote client devices. Some existing technologies require that before the business object is consumed through existing Web services technologies, an endpoint must be defined. An endpoint is used to specify the interaction requirements between the client device and the business object. For example, the client device sends a message to the endpoint of the business object when it wants to use the business object, and the message is formatted according to the information specified by the endpoint. A business object can have multiple endpoints allowing different ways for customers to consume that object. Other existing technologies may provide a default endpoint to which the user can not configure endpoint settings or settings.

En règle générale, un point d'extrémité est défini par une adresse, une liaison et un contrat. Une adresse constitue l'emplacement auquel se trouve le point d'extrémité. Une liaison spécifie comment un objet commercial peut être consommé, par exemple un protocole ou des informations de codage. Un contrat pour chaque objet liste les opérations exposées par l'objet commercial. Toutes ces informations doivent être spécifiées avant qu'un dispositif client distant ne puisse utiliser un objet commercial.Typically, an endpoint is defined by an address, a link, and a contract. An address is the location where the endpoint is located. A binding specifies how a business object can be consumed, such as a protocol or encoding information. A contract for each object lists the operations exposed by the business object. All of this information must be specified before a remote client device can use a business object.

Les approches actuellement existantes présentent plusieurs problèmes. Dans certains cas, le contrat doit être manuellement généré pour chaque objet. Puisque le point d'extrémité comprend le contrat, le point d'extrémité est également généré manuellement pour chaque objet. La génération manuelle d'un contrat (et donc du point d'extrémité) peut être longue et coûteuse, avec des risques d'erreur de la part de l'utilisateur. En outre, le point d'extrémité peut devenir périmé s'il n'est pas mis à jour dès que l'objet commercial est mis à jour, avec le risque que l'utilisateur s'appuie sur des informations de point d'extrémité qui ne représentent pas précisément l'objet commercial.Current approaches present several problems. In some cases, the contract must be manually generated for each object. Since the endpoint includes the contract, the endpoint is also manually generated for each object. The manual generation of a contract (and therefore of the endpoint) can be long and expensive, with the risk of error on the part of the user. In addition, the endpoint may become stale if it is not updated as soon as the business object is updated, with the risk that the user relies on endpoint information. which do not accurately represent the commercial object.

Le présent système met les objets commerciaux à la disposition de clients par l'intermédiaire de points d'extrémité, où les points d'extrémité sont générés dynamiquement. Il n'est donc pas nécessaire de générer manuellement un point d'extrémité. Les points d'extrémité peuvent être stockés sur un serveur. Les points d'extrémité associés à des objets sont générés automatiquement lorsque les objets commerciaux sont créés, ou les points d'extrémité peuvent être créés lorsque l'objet commercial est demandé. Dans un mode de réalisation, les points d'extrémité sont générés sur la base de critères de configuration permettant à l'utilisateur d'appliquer divers niveaux d'isolation aux points d'extrémité, comme cela va être expliqué ci-après. Indépendamment de l'utilisation de critères de configuration, il n'est pas nécessaire de générer manuellement des informations de point d'extrémité parce que le point d'extrémité est généré automatiquement lorsque l'objet commercial est demandé par un dispositif client ou est créé. Des dispositifs clients peuvent communiquer avec le point d'extrémité et utiliser des contrats associés aux objets commerciaux comme si les contrats avaient été générés manuellement. Les propriétés d'objet commercial peuvent être exposées par l'intermédiaire de contrats de données et les méthodes d'objet commercial peuvent être exposées par l'intermédiaire de contrats de fonctionnement.The present system makes business objects available to clients through endpoints, where the endpoints are dynamically generated. It is not necessary to manually generate an endpoint. Endpoints can be stored on a server. Endpoints associated with objects are generated automatically when business objects are created, or endpoints can be created when the business object is requested. In one embodiment, the endpoints are generated based on configuration criteria that allow the user to apply varying levels of isolation to the endpoints, as will be explained hereinafter. Regardless of the use of configuration criteria, there is no need to manually generate endpoint information because the endpoint is automatically generated when the business object is requested by a client device or is created . Client devices can communicate with the endpoint and use contracts associated with business objects as if the contracts had been generated manually. Business object properties can be exposed through data contracts and business object methods can be exposed through operating contracts.

Le présent système libère des ressources et améliore le rendement parce que de nouveaux objets peuvent être conçus, déployés et consommés sans avoir besoin de générer des points d'extrémité. Il suffit que les dispositifs clients connaissent le point d'extrémité dynamique et s'y connectent. Les dispositifs clients peuvent ainsi utiliser des objets sans avoir besoin d'effectuer au préalable la génération, la construction ou la publication de contrats. Les informations de point d'extrémité, comme un contrat, sont générées par le même service qui a créé les objets commerciaux. Les informations de point d'extrémité sont donc complètes et compatibles avec l'objet commercial, et elles ne nécessitent pas d'intervention supplémentaire d'un programmeur ou d'outils de programmation. En outre, puisque le point d'extrémité est généré lorsque l'objet commercial est créé ou demandé, le point d'extrémité peut permettre l'intégration avec de nouveaux environnements qui n'existaient pas lorsque l'objet commercial a été conçu.The present system frees resources and improves performance because new objects can be designed, deployed and consumed without the need to generate endpoints. Client devices only need to know the dynamic endpoint and connect to it. The client devices can thus use objects without the need to first generate, build or publish contracts. Endpoint information, such as a contract, is generated by the same service that created the business objects. The endpoint information is therefore complete and compatible with the commercial object, and it does not require additional intervention by a programmer or programming tools. In addition, since the endpoint is generated when the business object is created or requested, the endpoint may allow integration with new environments that did not exist when the business object was designed.

Dans un mode de réalisation, un objet commercial peut être périodiquement mis à jour pour créer de nouvelles versions. Avec des contrats statiques, chaque nouvelle version de l'objet commercial nécessiterait une mise à jour du contrat sur le serveur afin que les clients puissent consommer l'objet commercial. Sinon, le contrat (ou les informations de point d'extrémité) devient périmé et le client ne dispose plus du contrat le plus récent ou le plus précis pour consommer l'objet commercial. Ce problème est évité dans le présent système par l'utilisation de contrats générés dynamiquement. Puisque le présent système utilise des contrats dynamiques, le contrat n'est jamais périmé. Si les objets commerciaux sont modifiés, le contrat est automatiquement modifié ou mis à jour. Le dispositif client pour le consommateur continue de pointer vers la seule entité connue, c'est-à-dire le point d'extrémité dynamique, et le point d'extrémité dynamique met à jour les informations et les connaissances en ce qui concerne les objets commerciaux, les processus et les ressources du système. Le point d'extrémité dynamique continue de générer des contrats pour les autres objets dans le système même lorsque de nouveaux objets sont ajoutés ou lorsque des objets existants sont modifiés.In one embodiment, a business object may be periodically updated to create new versions. With static contracts, each new version of the business object would require a contract update on the server so that customers could consume the business object. Otherwise, the contract (or endpoint information) becomes stale and the customer no longer has the most recent or accurate contract to consume the business object. This problem is avoided in the present system by the use of dynamically generated contracts. Since this system uses dynamic contracts, the contract is never out of date. If the business objects are changed, the contract is automatically modified or updated. The consumer client device continues to point to the only known entity, i.e., the dynamic endpoint, and the dynamic endpoint updates the information and knowledge about the objects business processes and system resources. The dynamic endpoint continues to generate contracts for other objects in the system even when new objects are added or when existing objects are changed.

Dans un mode de réalisation, les versions antérieures des points d'extrémité sont mises à jour même lorsque de nouveaux points d'extrémité sont générés. Cela peut être utile lorsqu'un dispositif client choisit ou exige l'utilisation d'une version spécifique d'un contrat ou d'un point d'extrémité, même après la génération d'un nouveau contrat ou d'un nouveau point d'extrémité.In one embodiment, the earlier versions of the endpoints are updated even when new endpoints are generated. This can be useful when a client device chooses or requires the use of a specific version of a contract or endpoint, even after a new contract or point is generated. end.

Dans un mode de réalisation, le serveur construit et publie des contrats pour tous les objets qui sont mis à jour ou stockés sur le serveur. Dans un mode de réalisation, le serveur construit et publie des contrats uniquement pour un sous-ensemble des objets commerciaux stockés sur le serveur en excluant certains des objets commerciaux. Le sous-ensemble peut être déterminé sur la base de critères de configuration.In one embodiment, the server constructs and publishes contracts for all objects that are updated or stored on the server. In one embodiment, the server constructs and publishes contracts for only a subset of the business objects stored on the server by excluding some of the business objects. The subset can be determined based on configuration criteria.

En variante, les critères peuvent être déterminés en même temps que le serveur construit et publie des contrats. Cela permet à un utilisateur d'exercer une maîtrise granulaire sur la nature dynamique du système.Alternatively, the criteria can be determined at the same time that the server builds and publishes contracts. This allows a user to exercise granular control over the dynamic nature of the system.

Par exemple, le générateur de point d'extrémité dynamique peut mettre en œuvre un système de catégories. Dans un mode de réalisation, chaque objet comporte un point d'extrémité unique. Dans un mode de réalisation, chaque objet commercial est placé dans une catégorie, et chaque catégorie comporte un point d'extrémité unique. Lorsque plusieurs objets commerciaux partagent la même catégorie (et donc le même point d'extrémité), ces objets commerciaux peuvent être sélectionnés ou désélectionnés par le générateur de point d'extrémité dynamique. Cela permet à un utilisateur de mettre dynamiquement à jour uniquement certaines catégories d'objets commerciaux.For example, the dynamic endpoint generator can implement a category system. In one embodiment, each object has a single endpoint. In one embodiment, each business object is placed in a category, and each category has a single endpoint. When multiple business objects share the same category (and therefore the same endpoint), these business objects can be selected or deselected by the dynamic endpoint generator. This allows a user to dynamically update only certain categories of business objects.

Par exemple, un utilisateur travaillant sur un projet peut placer tous les objets commerciaux relatifs à ce projet dans une catégorie. L'utilisateur peut sélectionner uniquement cette catégorie (et donc le point d'extrémité) et le générateur de point d'extrémité dynamique met dynamiquement à jour les contrats pour les objets commerciaux appartenant à cette catégorie. Les autres objets commerciaux dans les autres catégories sont exclus par le générateur de point d'extrémité dynamique, ce qui réduit le nombre d'objets commerciaux qui sont mis dynamiquement à jour et ce qui diminue l'occupation de la mémoire, le temps de régénération et le temps de démarrage. Les utilisateurs peuvent créer des sous-catégories et choisir de générer dynamiquement des contrats pour des objets appartenant à certaines sous-catégories. Les utilisateurs peuvent ainsi maîtriser avec précision les objets commerciaux qui doivent être mis dynamiquement à j our.For example, a user working on a project can place all business objects related to that project into a category. The user can select only this category (and therefore the endpoint) and the dynamic endpoint generator dynamically updates the contracts for business objects belonging to this category. Other business objects in other categories are excluded by the dynamic endpoint generator, which reduces the number of business objects that are dynamically updated and decreases the memory usage, the refresh time and the startup time. Users can create subcategories and choose to dynamically generate contracts for objects belonging to certain subcategories. Users can accurately control the business objects that need to be dynamically updated.

La figure 12 est une capture d'écran d'un mode de réalisation d'un système 1600 mettant en œuvre un générateur de point d'extrémité dynamique 1602 pour permettre à une application d'objet commercial 1604 de consommer des objets commerciaux. Divers objets commerciaux sont stockés sur un serveur d'objets commerciaux 1606. Par exemple, le serveur d'objets commerciaux 1606 contient un objet commercial de client 1608, un objet commercial de région 1610, un objet commercial de produit 1612, un objet commercial d'employé 1614 et d'autres objets commerciaux 1616. Les objets commerciaux communiquent avec la source de données d'objets commerciaux 1618. Dans un mode de réalisation, le système génère un point d'extrémité lorsque l'objet commercial est créé.Fig. 12 is a screenshot of an embodiment of a system 1600 implementing a dynamic endpoint generator 1602 to enable a commercial object application 1604 to consume commercial objects. Various business objects are stored on a business object server 1606. For example, the business object server 1606 contains a client business object 1608, a business object of area 1610, a business object of product 1612, a business object of 1614 and other commercial objects 1616. The business objects communicate with the business object data source 1618. In one embodiment, the system generates an endpoint when the business object is created.

Dans un mode de réalisation, le système n'a pas généré de contrats pour des objets commerciaux et il ne génère que des points d'extrémité lorsque les objets commerciaux sont demandés. Par exemple, une organisation peut avoir besoin de stocker le prénom, le nom de famille et le numéro de sécurité sociale de ses clients. Un utilisateur spécifie ses champs lors de la définition de l'objet commercial de client 1608. L'application d'objet commercial 1604 peut avoir besoin d'interagir avec l'objet commercial de client 1608. Par exemple, l'application d'objet commercial 1604 souhaite créer un nouveau client en utilisant l'objet commercial de client 1608. Néanmoins, l'application d'objet commercial 1604 ne dispose pas des informations de point d'extrémité pour l'objet commercial de client 1608. Lorsque l'application d'objet commercial 1604 demande une communication avec l'objet commercial de client 1608 ou souhaite le consommer, elle envoie une demande au générateur de point d'extrémité dynamique 1602. Le générateur de point d'extrémité dynamique 1602 construit et publie automatiquement des informations de point d'extrémité, y compris un contrat de données, pour l'objet commercial de client 1608. L'application d'objet commercial 1604 peut alors consommer l'objet commercial de client 1608 même si l'objet commercial de client 1608 n'avait pas auparavant de point d'extrémité. Dans un mode de réalisation, le générateur de point d'extrémité dynamique 1602 génère un point d'extrémité lorsqu'un objet commercial est créé.In one embodiment, the system has not generated contracts for commercial objects and generates only endpoints when the business objects are requested. For example, an organization may need to store the first name, last name, and social security number of its customers. A user specifies his fields when defining the client business object 1608. The business object application 1604 may need to interact with the client business object 1608. For example, the object application 1604 wants to create a new client by using the 1608 client business object. However, the 1604 business object application does not have endpoint information for the 1608 client business object. of business object 1604 requests or wishes to consume the client business object 1608, it sends a request to the dynamic endpoint generator 1602. The dynamic endpoint generator 1602 automatically builds and publishes information endpoint, including a data contract, for the 1608 client business object. The 1604 business object application can then consume the 1608 client business object if the 1608 client business object did not previously have an endpoint. In one embodiment, the dynamic endpoint generator 1602 generates an endpoint when a business object is created.

Dans un mode de réalisation, après que l'application d'objet commercial 1604 consomme l'objet commercial de client 1608, la définition de l'objet commercial de client 1608 est modifiée. Par exemple, l'organisation peut désormais exiger le stockage de l'adresse de ses clients en plus du prénom, du nom de famille et du numéro de sécurité sociale de ses clients. Les informations d'adresse peuvent être extraites d'une base de données différente des bases de données contenant le prénom, le nom de famille et le numéro de sécurité sociale. Un utilisateur modifie la définition de l'objet commercial de client 1608. Lorsque l'objet commercial de client 1608 est mis à jour, la nouvelle propriété de l'objet commercial de client 1608 est republiée et le générateur de point d'extrémité dynamique 1602 est automatiquement notifié de la modification de l'objet commercial de client 1608. Le générateur de point d'extrémité dynamique 1602 met à jour ses propres informations et publie un point d'extrémité mis à jour pour l'objet commercial de client 1608. De cette manière, l'application d'objet commercial 1604 dispose toujours des informations de point d'extrémité les plus à jour pour l'objet commercial de client 1608.In one embodiment, after the business object application 1604 consumes the client business object 1608, the definition of the client business object 1608 is changed. For example, the organization may now require the storage of its customers' addresses in addition to the first name, last name, and social security number of its customers. The address information can be retrieved from a database other than the databases containing the first name, the last name and the social security number. A user modifies the 1608 client business object definition. When the 1608 client business object is updated, the new 1608 client business object property is republished and the 1602 dynamic endpoint generator is re-published. is automatically notified of the change of the client business object 1608. The dynamic endpoint generator 1602 updates its own information and publishes an updated endpoint for the client business object 1608. From in this manner, the business object application 1604 still has the most up-to-date endpoint information for the client business object 1608.

Dans un mode de réalisation, les objets commerciaux sont exposés à un dispositif client par l'intermédiaire d'une infrastructure Web comme WCF (Windows Communication Foundation), qui fait partie du cadre .NET. Le dispositif client peut utiliser des mécanismes WCF standard. Dans un exemple, le contrat ou le point d'extrémité est généré dans un format déclaratif. Le format déclaratif peut être XML. Dans un mode de réalisation, les contrats sont publiés sous la forme de modèles WSDL (Web Service Définition Language) standard. Les points d'extrémité ou les contrats peuvent également être publiés en utilisant REST (Representational State Transfer), comme par exemple en mettant en œuvre XML, Atom (Atom Syndication Format and/or Publishing Protocol), ou JSON (JavaScript Object Notation). Les points d'extrémité peuvent inclure la prise en charge de SSL (Secure Sockets Layer) ou de TSL (Transport Layer Security).In one embodiment, the business objects are exposed to a client device through a Web infrastructure such as WCF (Windows Communication Foundation), which is part of the .NET framework. The client device can use standard WCF mechanisms. In one example, the contract or endpoint is generated in a declarative format. The declarative format can be XML. In one embodiment, the contracts are published as standard Web Service Definition Language (WSDL) templates. Endpoints or contracts can also be published using Representational State Transfer (REST), for example by implementing XML, Atom (Atom Syndication Format and / or Publishing Protocol), or JSON (JavaScript Object Notation). Endpoints may include support for Secure Sockets Layer (SSL) or Transport Layer Security (TSL).

La figure 13 est un organigramme illustrant un processus exemplaire 1700 de génération, de déploiement et de publication d'un objet commercial, en générant automatiquement un point d'extrémité dynamique pour l'objet commercial et en permettant à un dispositif client de consommer l'objet commercial en utilisant le point d'extrémité dynamique. De préférence, le processus 1700 est réalisé dans un ou plusieurs programmes logiciels stockés dans une ou plusieurs mémoires et exécutés par un ou plusieurs processeurs. Par exemple, le processus 1700 peut être un code JavaScript (ou n'importe quel autre type de logiciel) s'exécutant sur un dispositif client 102. Bien que le processus 1700 soit décrit en référence à l'organigramme illustré sur la figure 13, il faut bien se rendre compte que de nombreux autres procédés peuvent être utilisés pour effectuer les actions associées au processus 1700. Par exemple, l'ordre de nombreuses étapes peut être changé, et certaines étapes décrites peuvent être facultatives. De même, certaines étapes peuvent être combinées en une seule étape.Figure 13 is a flowchart illustrating an exemplary 1700 process of generating, deploying, and publishing a business object, automatically generating a dynamic endpoint for the business object and allowing a client device to consume the business object. business object using the dynamic endpoint. Preferably, the process 1700 is performed in one or more software programs stored in one or more memories and executed by one or more processors. For example, the process 1700 may be a JavaScript code (or any other type of software) running on a client device 102. Although the process 1700 is described with reference to the flowchart shown in FIG. 13, it should be appreciated that many other methods can be used to perform the actions associated with the 1700 process. For example, the order of many steps can be changed, and some of the steps described may be optional. Similarly, some steps can be combined in one step.

De manière générale, un nouvel objet commercial est créé, le générateur de point d'extrémité dynamique génère automatiquement des informations de point d'extrémité pour l'objet commercial, et un dispositif client peut consommer l'objet commercial sans avoir besoin de générer manuellement un contrat ou d'autres informations de point d'extrémité, comme un contrat, pour l'objet commercial.In general, a new business object is created, the dynamic endpoint generator automatically generates endpoint information for the business object, and a client device can consume the business object without the need to manually generate a contract or other endpoint information, such as a contract, for the business purpose.

Plus spécifiquement, un outil de conception peut être utilisé pour créer un nouvel objet commercial de produit, et l'objet commercial est ensuite déployé et publié sur un serveur 192.168.1.38:7. Un point d'extrémité dynamique « http://dix.denallix.com:8000/Demo » pour l'objet commercial est généré. Un dispositif client distant ProductsSvcClient peut communiquer avec le point d'extrémité afin que le point d'extrémité fournisse des informations de liaison, des métadonnées, des données et des contrats de méthodes au dispositif client. Le dispositif client peut utiliser des méthodes comme ProductsSvc_Create, ProductsSvc_Save, ProductsSvc_Delete,Specifically, a design tool can be used to create a new product business object, and the business object is then deployed and published to a 192.168.1.38:7 server. A dynamic endpoint "http://dix.denallix.com:8000/Demo" for the business object is generated. A Remote ProductsSvcClient client device can communicate with the endpoint so that the endpoint provides link information, metadata, data, and method contracts to the client device. The client device can use methods like ProductsSvc_Create, ProductsSvc_Save, ProductsSvc_Delete,

ProductsSvc_Load, et ProductsSvc_GetList, qui peuvent être associées à l'objet commercial de produit. Le dispositif client ProductsSvcClient consomme l'objet commercial de produit et, en utilisant l'une ou l'intégralité des méthodes, crée des enregistrements de produit ACME Widgets et ACME Gadgets. L'utilisateur peut utiliser un outil de conception 1800 pour créer un nouvel objet commercial. L'outil comprend des modèles 1802 pour créer des projets, des processus ou des objets commerciaux. Si l'utilisateur souhaite créer un nouvel objet commercial vierge, l'utilisateur sélectionne le modèle d'objet commercial 1804. L'utilisateur peut également accéder à d'autres objets commerciaux récemment utilisés et les réutiliser, comme Client 1806 et Employé 1808. Ensuite, l'utilisateur appuie sur le bouton Créer pour créer le nouvel objet commercial appelé Produits 1810.ProductsSvc_Load, and ProductsSvc_GetList, that can be associated with the product business object. The ProductsSvcClient client device consumes the product business object and, using one or all of the methods, creates ACME Widgets and ACME Gadgets product records. The user can use a 1800 design tool to create a new business object. The tool includes 1802 templates for creating projects, processes, or business objects. If the user wishes to create a new blank business object, the user selects the business object model 1804. The user can also access other recently used business objects and reuse them as Client 1806 and Employee 1808. Then , the user presses the Create button to create the new business object called 1810 Products.

Chaque objet commercial est généralement associé à des propriétés et des méthodes. Dans un exemple, l'objet commercial de produit 1810 comporte cinq méthodes par défaut 1902 que l'utilisateur peut appeler lors de l'utilisation de l'objet commercial de produit 1810. Les méthodes font partie d'un service SmartBox 1904 qui est à la disposition de l'utilisateur. D'autres services peuvent également être à la disposition de l'utilisateur, et l'utilisateur peut utiliser et combiner des services de plusieurs sources. Le nouvel objet commercial de produit 1810 n'a pas encore de propriété 1906 associée. L'utilisateur peut ajouter des propriétés qui définissent l'objet commercial. L'objet commercial de produit 1810 peut être défini par les propriétés d'identifiant de produit 2002, de nom 2004 et de catégorie 2006. D'autres propriétés peuvent également être mises à la disposition de l'utilisateur, et l'utilisateur peut utiliser et combiner des propriétés de plusieurs sources. L'identifiant de produit 2002 est listé comme étant la propriété principale parce que la valeur d'identifiant de produit est unique pour chaque produit. Une fois que les méthodes 1902 et les propriétés 1906 de l'objet commercial de produit sont définies, l'objet commercial 1810 peut être déployé sur un serveur.Each business object is usually associated with properties and methods. In one example, the product business object 1810 has five default methods 1902 that the user can call when using the product business object 1810. The methods are part of a SmartBox service 1904 which is the disposition of the user. Other services may also be available to the user, and the user may use and combine services from multiple sources. The new 1810 business object does not have an associated 1906 property yet. The user can add properties that define the business object. The business object of product 1810 can be defined by the properties of product identifier 2002, name 2004 and category 2006. Other properties can also be made available to the user, and the user can use and combine properties from multiple sources. The 2002 product identifier is listed as the primary property because the product identifier value is unique for each product. Once methods 1902 and 1906 properties of the product business object are defined, business object 1810 can be deployed to a server.

Une fois qu'un objet commercial est déployé, il doit être publié. La publication d'un objet commercial permet aux clients qui peuvent souhaiter utiliser l'objet commercial de le découvrir. Une fois que l'objet commercial est mis à disposition sur le serveur, un point d'extrémité dynamique est automatiquement généré afin qu'un client puisse consommer l'objet commercial.Once a business object is deployed, it must be published. Publishing a business object allows customers who may wish to use the business object to discover it. Once the business object is made available on the server, a dynamic endpoint is automatically generated so that a customer can consume the business object.

Dans un mode de réalisation, l'utilisateur peut avoir la possibilité de configurer divers paramètres concernant un point d'extrémité, comme par exemple si un point d'extrémité est activé pour un objet commercial, si l'objet commercial n'est pas autorisé à avoir des points d'extrémité, si une isolation est utilisée pour le point d'extrémité et si des liaisons personnalisées sont utilisées pour le point d'extrémité.In one embodiment, the user may be able to configure various endpoint parameters, such as if an endpoint is enabled for a business object, if the business object is not allowed to have endpoints, if isolation is used for the endpoint, and if custom links are used for the endpoint.

La figure 14 illustre un organigramme exemplaire 2300 de configuration d'informations de point d'extrémité pour un objet commercial en réponse à la création et la publication d'un objet commercial. Un objet commercial SmartObject (objet intelligent) est publié à l'étape 2302. Le générateur de point d'extrémité dynamique vérifie si des points d'extrémité sont activés dans les critères de configuration à l'étape 2304. Si des points d'extrémité ne sont pas activés, un point d'extrémité n'est pas créé, comme cela est représenté à l'étape 2306. Si des points d'extrémité sont activés, le générateur de point d'extrémité dynamique vérifie si l'objet commercial n'est pas autorisé à faire partie d'une actualisation de serveur ou à avoir des points d'extrémité créés, comme cela est représenté à l'étape 2308. Si l'objet commercial n'est pas autorisé, un point d'extrémité n'est pas créé, comme cela est représenté à l'étape 2310. Si l'objet commercial est autorisé, le générateur de point d'extrémité dynamique poursuit pour créer un point d'extrémité pour l'objet commercial à l'étape 2312.Fig. 14 illustrates an exemplary flow chart 2300 of endpoint information configuration for a commercial object in response to the creation and publication of a commercial object. A SmartObject business object is published in step 2302. The dynamic endpoint generator checks to see if endpoints are enabled in the configuration criteria in step 2304. If endpoints are enabled in the configuration criteria in step 2304. are not enabled, an endpoint is not created, as shown in step 2306. If endpoints are enabled, the dynamic endpoint generator checks whether the business object is is not allowed to be part of a server refresh or to have endpoints created, as shown in step 2308. If the business object is not allowed, an endpoint is not created, as shown in step 2310. If the business object is authorized, the dynamic endpoint generator proceeds to create an endpoint for the business object in step 2312.

Pour générer un point d'extrémité, le générateur de point d'extrémité dynamique, dans un mode de réalisation, charge la définition de l'objet commercial et mappe les types de données sur des types de données pris en charge par point d'extrémité à l'étape 2314. A l'étape 2316, le générateur de point d'extrémité dynamique génère des contrats de données pour chaque type de données d'objet commercial. A l'étape 2318, le générateur de point d'extrémité dynamique génère des contrats et/ou des liaisons de fonctionnement pour chaque méthode d'objet commercial. A l'étape 2320, le générateur de point d'extrémité dynamique génère un contrat de service pour chaque catégorie dans le système de catégorie. Par exemple, le générateur de point d'extrémité dynamique génère des points d'extrémité non seulement pour l'objet commercial publié à l'étape 2302, mais également pour tous les objets commerciaux appartenant à la même catégorie que l'objet commercial ou pour toutes les catégories reconnues par le générateur de point d'extrémité dynamique. A l'étape 2322, un utilisateur peut configurer si une isolation doit être utilisée pour le point d'extrémité. Si aucune isolation ne doit être utilisée, alors le domaine de mémoire/application partagée est déchargé à l'étape 2324.To generate an endpoint, the dynamic endpoint generator, in one embodiment, loads the business object definition and maps the data types to data types supported by endpoint in step 2314. In step 2316, the dynamic endpoint generator generates data contracts for each type of commercial object data. In step 2318, the dynamic endpoint generator generates contracts and / or operating links for each business object method. In step 2320, the dynamic endpoint generator generates a service contract for each category in the category system. For example, the dynamic endpoint generator generates endpoints not only for the business object published in step 2302, but also for all business objects belonging to the same category as the business object or for all categories recognized by the dynamic endpoint generator. In step 2322, a user can configure whether an isolation should be used for the endpoint. If no isolation is to be used, then the shared memory / application domain is unloaded in step 2324.

Un utilisateur peut configurer si des liaisons personnalisées doivent être utilisées à l'étape 2326. Si des liaisons personnalisées doivent être utilisées, alors un point d'extrémité est créé dans la mémoire partagée avec des liaisons de sécurité personnalisées à l'étape 2328. Si aucune liaison personnalisée ne doit être utilisée, alors un point d'extrémité est créé dans la mémoire partagée avec des liaisons de sécurité partagées à l'étape 2330.A user can configure whether custom links should be used in step 2326. If custom links are to be used, then an endpoint is created in shared memory with custom security bindings in step 2328. no custom link should be used, so an endpoint is created in shared memory with shared security links in step 2330.

Si une isolation doit être utilisée à l'étape 2322, alors un domaine de mémoire/application isolée est créé à l'étape 2332. A l'étape 2338, un utilisateur peut configurer si des liaisons personnalisées doivent être utilisées. Si des liaisons personnalisées doivent être utilisées, alors un point d'extrémité est créé dans la mémoire isolée avec des liaisons de sécurité personnalisées à l'étape 2336. Si aucune liaison personnalisée ne doit être utilisée, alors un point d'extrémité est créé dans la mémoire isolée avec des liaisons de sécurité partagées à 1'étape 2338.If isolation is to be used in step 2322, then an isolated memory / application domain is created in step 2332. In step 2338, a user can configure whether custom links should be used. If custom links are to be used, then an endpoint is created in the isolated memory with custom security bindings in step 2336. If no custom bindings are to be used, then an endpoint is created in the isolated memory with shared security links in step 2338.

Les critères de configuration peuvent être prédéterminés ou peuvent être spécifiés lors de la création du point d'extrémité. La configuration peut être effectuée à divers niveaux différents. Par exemple, un utilisateur peut être en mesure d'effectuer la configuration au niveau de service, à un niveau de protocole WCF/REST ou à un niveau géré. En utilisant ces trois niveaux de configuration, un utilisateur peut contrôler de manière granulaire exactement où et comment un point d'extrémité est généré.The configuration criteria can be predetermined or can be specified when creating the endpoint. The configuration can be performed at various different levels. For example, a user may be able to perform configuration at the service level, at a WCF / REST protocol level, or at a managed level. By using these three levels of configuration, a user can granularly control exactly where and how an endpoint is generated.

La configuration de service commande la fonctionnalité par défaut de services, notamment si des services sont activés pour fonctionner ou pas, ou si le générateur de point d'extrémité recherche certains événements comme la création d'un nouvel objet commercial. La configuration WCF/REST permet à un utilisateur de neutraliser la capacité de services par défaut et de spécifier une adresse de point d'extrémité par type de point d'extrémité, par exemple WCF ou REST.The service configuration controls the default functionality of services, such as whether services are enabled to work or not, or whether the endpoint generator looks for certain events such as the creation of a new business object. The WCF / REST configuration allows a user to override the default services capability and specify an endpoint address per endpoint type, for example WCF or REST.

Le tableau 1, en annexe à la fin de la description, présente un exemple d'un code exemplaire pour une configuration par défaut avec des points d'extrémité activés.Table 1, in the appendix at the end of the description, shows an example of an exemplary code for a default configuration with activated endpoints.

Une configuration de point d'extrémité gérée permet à un utilisateur non seulement de spécifier un point d'extrémité statigue pour un objet commercial spécifique ou une catégorie d'objets commerciaux, mais également de générer un point d'extrémité isolé avec sa propre adresse. Sans la configuration de point d'extrémité gérée, tous les points d'extrémité générés seraient stockés à une adresse unique, par exemple http://dix.denallix.corn:8000/Demo, et l'emplacement de chaque objet commercial serait annexé à cette adresse. Avec la configuration de point d'extrémité gérée, un utilisateur peut spécifier des adresses pour certains points d'extrémité, en permettant à de tels points d'extrémité d'être isolés.A managed endpoint configuration allows a user not only to specify a stub endpoint for a specific business object or category of business objects, but also to generate an isolated endpoint with its own address. Without the managed endpoint configuration, all endpoints generated would be stored at a single address, for example http: //dix.denallix.corn: 8000 / Demo, and the location of each business object would be appended at this address. With the managed endpoint configuration, a user can specify addresses for certain endpoints, allowing such endpoints to be isolated.

Un point d'extrémité peut être isolé au moins de trois manières : lorsqu'il est stocké dans un espace de mémoire différent des autres points d'extrémité, lorsqu'il est situé à un URI (Uniform Resource Identifier) différent des autres points d'extrémité, et lorsque les liaisons de sécurité sont différentes au niveau de protocole WCF/REST. L'isolation de points d'extrémité dans un espace de mémoire différent permet de mettre en œuvre une frontière de sécurité autour des points d'extrémité critiques et elle permet également d'actualiser individuellement ou de ne pas actualiser des points d'extrémité isolés lorsque d'autres points d'extrémité sont actualisés. L'isolation de points d'extrémité pour ne pas les actualiser peut être utile lorsque l'objet associé est fréquemment modifié. De même, un utilisateur peut souhaiter n'actualiser qu'un point d'extrémité spécifique, ce qui peut être le cas lorsque des objets associés sont en cours de développement ou de mise en œuvre. Dans un mode de réalisation, un seul point d'extrémité est isolé pour une génération dynamique.An endpoint can be isolated in at least three ways: when it is stored in a different memory space from other endpoints, when it is located at a Uniform Resource Identifier (URI) different from other endpoint, and when the security links are different at the WCF / REST protocol level. Endpoint isolation in a different memory space allows for a security boundary around critical endpoints, and also allows for individual refresh or not refresh of isolated endpoints when other endpoints are updated. Endpoint isolation for not updating may be useful when the associated object is frequently changed. Similarly, a user may wish to refresh only a specific endpoint, which may be the case when associated objects are being developed or implemented. In one embodiment, only one endpoint is isolated for dynamic generation.

Un deuxième type d'isolation rendue possible par une configuration de point d'extrémité gérée est l'isolation URI, qui permet d'isoler l'accès à un point d'extrémité. Par exemple, un utilisateur peut être en mesure d'héberger tous les points d'extrémité publics d'un URI commun, mais d'héberger certains points d'extrémité privés à un URI différent. Pour accéder à ces points d'extrémité privés, un dispositif client doit connaître l'URI spécifique. Ainsi, la découverte et l'accès à des points d'extrémité peuvent être isolés.A second type of isolation made possible by a managed endpoint configuration is URI isolation, which isolates access to an endpoint. For example, a user may be able to host all the public endpoints of a common URI, but to host some private endpoints to a different URI. To access these private endpoints, a client device must know the specific URI. Thus, discovery and access to endpoints can be isolated.

Un troisième type d'isolation rendue possible par une configuration de point d'extrémité gérée est l'isolation de liaison de sécurité, qui permet d'isoler l'accès à un point d'extrémité sur la base de la configuration de liaison. Par exemple, un utilisateur peut être en mesure d'héberger tous les points d'extrémité WCF et REST publics en utilisant une liaison de sécurité commune pour les protocoles WCF et REST, mais d'héberger certains points d'extrémité privés en utilisant une configuration de liaison de sécurité unique pour les protocoles WCF ou REST.A third type of isolation made possible by a managed endpoint configuration is security link isolation, which isolates access to an endpoint based on the link configuration. For example, a user may be able to host all public WCF and REST endpoints using a common security binding for the WCF and REST protocols, but to host some private endpoints using a configuration unique security binding for WCF or REST protocols.

Dans un mode de réalisation, les divers niveaux de réglages de configuration permettent l'héritage de paramètres de configuration. Dans un mode de réalisation, la configuration de services neutralise les réglages par défaut, la configuration WCF/REST neutralise les réglages de configuration de services (afin que l'utilisateur puisse configurer tous les points d'extrémité correspondant à des points d'extrémité de type WCF/REST), et la configuration de point d'extrémité gérée neutralise les réglages de configuration WCF/REST (afin que l'utilisateur puisse configurer des objets commerciaux individuels ou des catégories d'objets commerciaux). Chaque niveau de configuration suivant, en allant de la configuration de services à la configuration WCF/REST et à la configuration de point d'extrémité gérée, applique une logique plus forte qui accroît les conditions sur les points d'extrémité au fur et à mesure de leur génération.In one embodiment, the various levels of configuration settings allow the inheritance of configuration parameters. In one embodiment, the service configuration overrides the default settings, the WCF / REST configuration overrides the service configuration settings (so that the user can configure all endpoints corresponding to endpoints of WCF / REST type), and the managed endpoint configuration overrides the WCF / REST configuration settings (so that the user can configure individual business objects or business object categories). Each subsequent configuration level, ranging from service configuration to WCF / REST configuration and managed endpoint configuration, applies stronger logic that increases endpoint conditions as you go along. of their generation.

Le tableau 2, en anexe à la fin de la description, présente un exemple d'un pseudo-code exemplaire pour régler des options de configuration dans un mode de réalisation.Table 2, in anexe at the end of the description, shows an example of an exemplary pseudo code for setting configuration options in one embodiment.

Le tableau 3, en anexe à la fin de la description, illustre un exemple d'utilisation des options de configuration de point d'extrémité, dans lequel des points d'extrémité WCF héritent d'une configuration de niveau de service par défaut, des points d'extrémité REST neutralisent la configuration de niveau de service par défaut, et des points d'extrémité gérés neutralisent également la configuration de niveau de service par défaut.Table 3, at the end of the description, illustrates an example of using endpoint configuration options, in which WCF endpoints inherit a default service level configuration. REST endpoints override the default service level configuration, and managed endpoints also override the default service level configuration.

Dans un mode de réalisation, le générateur de point d'extrémité dynamique génère automatiquement un point d'extrémité pour un objet commercial dès la création de l'objet commercial. Le générateur de point d'extrémité dynamique charge une définition de l'objet commercial et effectue une itération à travers la définition. La définition d'objet commercial peut inclure des propriétés et des méthodes. La définition d'objet est mappée sur chaque type de point d'extrémité pris en charge, comme WCF ou REST, des propriétés sont mappées sur des contrats de données, et des méthodes sont mappées sur des contrats de fonctionnement. Les méthodes peuvent avoir des signatures qui décrivent la méthode. Par exemple, des signatures de méthodes peuvent définir un ensemble minimum d'informations nécessaires pour qu'une méthode fonctionne correctement, comme les types de données d'entrée et de sortie d'une méthode.In one embodiment, the dynamic endpoint generator automatically generates an endpoint for a commercial object as soon as the business object is created. The dynamic endpoint generator loads a definition of the business object and iterates through the definition. The business object definition can include properties and methods. The object definition is mapped to each supported endpoint type, such as WCF or REST, properties are mapped to data contracts, and methods are mapped to operation contracts. The methods can have signatures that describe the method. For example, method signatures can define a minimum set of information needed for a method to work properly, such as the input and output data types of a method.

Le générateur de point d'extrémité dynamique s'assure que les signatures pour les méthodes d'objets commerciaux contiennent des entrées et des sorties prises en charge par chaque type de point d'extrémité. Si tel n'est pas le cas, le générateur de point d'extrémité dynamique créée de telles signatures pour chaque méthode d'objet commercial.The dynamic endpoint generator ensures that the signatures for the business object methods contain inputs and outputs that are supported by each endpoint type. If this is not the case, the dynamic endpoint generator creates such signatures for each business object method.

Dans un mode de réalisation, n'importe quelle ressource commerciale peut être mise à la disposition d'un client par l'intermédiaire d'un point d'extrémité dynamique. Par exemple, des objets commerciaux, des processus ou des listes de travail peuvent être exposés par l'intermédiaire d'un point d'extrémité dynamique.In one embodiment, any business resource may be made available to a customer via a dynamic endpoint. For example, business objects, processes, or worklists can be exposed through a dynamic endpoint.

En utilisant les systèmes divulgués, les développeurs disposent d'un accès dynamique instantané indépendant de la plate-forme à tout objet commercial. Dans un mode de réalisation, des systèmes back-end standardisés comme SAP, Siebel, Oracle DB, Oracle EBS et SQL sont exposés par l'intermédiaire du point d'extrémité dynamique. Dans un mode de réalisation, des systèmes back-end propriétaires peuvent être exposés, par exemple en utilisant des adaptateurs. Les adaptateurs facilitent l'exposition d'objets qui sont stockés sur des systèmes propriétaires.By using the disclosed systems, developers have instant, platform-independent, dynamic access to any business object. In one embodiment, standardized back-end systems such as SAP, Siebel, Oracle DB, Oracle EBS, and SQL are exposed through the dynamic endpoint. In one embodiment, proprietary back-end systems may be exposed, for example using adapters. Adapters make it easy to expose objects that are stored on proprietary systems.

En résumé, l'homme du métier peut se rendre compte que des procédés et un appareil pour générer, découvrir, accéder à et consommer des objets commerciaux de manière dynamique ont été divulgués. La description précédente a été présentée à des fins d'illustration et de description.In summary, those skilled in the art may realize that methods and apparatus for dynamically generating, discovering, accessing, and consuming business objects have been disclosed. The foregoing description has been presented for purposes of illustration and description.

Elle n'est pas destinée à être exhaustive ni à limiter l'invention aux modes de réalisation exemplaires divulgués. De nombreuses modifications et variations peuvent être apportées à la lumière des enseignements susmentionnés. Il est prévu que le périmètre de l'invention ne soit pas limité par cette description détaillée d'exemples, mais qu'il soit limité par les revendications annexées. TABLEAU 1 <smoServices enableEndpoints="true" enableEvents="true" enableCrossDomainPolicy="true" enableMetadata="true" scheme-'http" server="api.denallix.com" port="8888" serviceRoot="SmartObjectServices" specialCharacterReplacement="_" defau!tSecurityLabel="K2" individualSmartObjects="true"> <wcf binding="wsHttpBinding“ bindingConfiguration="wsHttpBinding+Windows" /> <rest binding="webHttpBinding" bindingConfiguration="webHttpBinding+Windows" /> <managedEndpoints> <excluded ail="false" /> </managedEndpoints> </smoServices> <system.serviceModel> <bindings> <basicHttpBind ing> <binding name="basicHttpBinding+Windows+HTTPS"> <security mode="Transport"> «transport clientCredentialT ype="Wi ndows" /> </security> </binding> «binding name=’'basicHttpBinding+Basic+HTTPS"> «security mode="Transport"> «transport clientCredentialType-‘Basic" /> «/security> </binding> «binding name="basicHttpBinding+Windows"> «security mode="TransportCredentialOnly"> «transport clientCredentialT y pe="Wi ndows" /> </security> </binding> «binding name="basicHttpBinding+Basic"> «security mode="TransportCredentialOnly"> «transport clientCredentialType="Basic" /> «/security> </binding> «/basicHttpBinding> <wsHttpBinding> «binding name=“wsHttpBinding+Windows“> «security mode="Message" /> «/binding> «binding name="wsHttpBinding+TWMC+HTTPS"> «security mode="T ransportWithlVlessageCredential"> «message clientCredentialType="Windows" l> </security> </binding> «binding name="wsHttpBindïng+HTTPS"> «security mode="Transport"> «transport clientCredentialType="Wi ndows" /> </security> </binding> </wsHttpBinding> <webHttpBinding> «binding name="webHttpBinding+Basic"> «security mode="T ransportCredentialOnly“> «transport clientCredentialType=“Basic" /> </security> </binding> «binding name="webHttpBinding+Windows"> <security mode=TransportCredentiaIOnly"> «transport clientCredentialType=MWindows" /> </security> </binding> «binding name="webHttpBinding+Basic+HTTPS"> «security mode=’Transport"> «transport clientCredentialType-'Basic" /> </security> «/binding> «binding name-'webHttpBinding+Windows+HTTPS"> «security mode=Transport"> «transport clienîCredentialType-'Windows" /> </security> </binding> «/webHttpBind i ng> </bindings> «/system .serviceMode 1> TABLEAU 2It is not intended to be exhaustive or to limit the invention to the disclosed exemplary embodiments. Many modifications and variations can be made in the light of the above-mentioned lessons. It is intended that the scope of the invention is not limited by this detailed description of examples, but that it is limited by the appended claims. TABLE 1 <smoServices enableEndpoints = "true" enableEvents = "true" enableCrossDomainPolicy = "true" enableMetadata = "true" scheme-'http "server =" api.denallix.com "port =" 8888 "serviceRoot =" SmartObjectServices "specialCharacterReplacement = "_" defau! tSecurityLabel = "K2" individualSmartObjects = "true"> <wcf binding = "wsHttpBinding" bindingConfiguration = "wsHttpBinding + Windows" /> <rest binding = "webHttpBinding" bindingConfiguration = "webHttpBinding + Windows" /> <managedEndpoints > <excluded garlic = "false" /> </ managedEndpoints> </ smoServices> <system.serviceModel> <bindings> <basicHttpBind ing> <binding name = "basicHttpBinding + Windows + HTTPS"> <security mode = "Transport"> "Transport clientCredentialT ype =" Wi ndows "/> </ security> </ binding>" binding name = "basicHttpBinding + Basic + HTTPS"> "security mode =" Transport ">" transport clientCredentialType-'Basic "/>" / security> </ binding> "binding name =" basicHttpBinding + Windows ">" security mode = "TransportCredentialOnly"> "transport clientCredentialT yp e = "Wi ndows" /> </ security> </ binding> "binding name =" basicHttpBinding + Basic ">" security mode = "TransportCredentialOnly"> "transport clientCredentialType =" Basic "/>" / security> </ binding > "/ BasicHttpBinding> <wsHttpBinding>" binding name = "wsHttpBinding + Windows"> "security mode =" Message "/>" / binding> "binding name =" wsHttpBinding + TWMC + HTTPS ">" security mode = "T ransportWithlVlessageCredential ">" ClientCredentialType = "Windows" message> </ security> </ binding> "binding name =" wsHttpBindIng + HTTPS ">" security mode = "Transport"> "transport clientCredentialType =" Wi ndows "/> </ security </ binding> </ wsHttpBinding> <webHttpBinding> "binding name =" webHttpBinding + Basic ">" security mode = "T ransportCredentialOnly"> "transport clientCredentialType =" Basic "/> </ security> </ binding>" binding name = "webHttpBinding + Windows"> <security mode = TransportCredentiaIOnly ">" transport clientCredentialType = MWindows "/> </ security> </ binding>" binding name = "webHttpBinding + Basic + HTTPS"> " security mode = 'Transport'> 'transport clientCredentialType-'Basic "/> </ security>" / binding> "binding name-'webHttpBinding + Windows + HTTPS"> "security mode = Transport"> "transport clienîCredentialType-'Windows" /> </ security> </ binding> "/ webHttpBind i ng> </ bindings>" / system .serviceMode 1> TABLE 2

Services • enableEndpoints (Activer points d'extrémité) (Booléen) — détermine si le service SmartObject Services K2 va démarrer o Vrai — démarre SmartObject Services K2 et charge les points d'extrémité configurés o Faux (par défaut/omis) — ne démarre pas SmartObject Services K2 et ne charge pas de point d'extrémité • enableEvents (Activer Évènements) (Booléen) — détermine si les modifications des SmartObjects (Objets intelligents) seront reflétées de manière dynamique sans redémarrer le serveur K2 o Vrai (par défaut/omis) — lorsque des Objets intelligents sont créés/mis à jour/supprimés, le service recharge de manière dynamique le AppDomain (Domaine d'Application) contenant les Objets intelligents affectés o Faux - lorsque des Objets intelligents sont créés/mis à jour/supprimés, le service ne reflétera pas les modifications sans redémarrer le serveur K2. • enableCrossDomainPolicy (Activer politique inter-domaine) (Booléen) — détermine si les points d'extrémité de service ont une prise en charge inter-domaine o Vrai — permet une prise en charge inter-domaine autorisant les applications basées sur un navigateur, comme Silverlight, à adresser des appels au point d'extrémité de service à partir d'un domaine différent • Fichiers — les fichiers qui commandent le niveau de prise en charge interdomaine sont crossdomain.xml et clientaccesspolicy.xml. On peut trouver et éditer ces fichiers dans le répertoire DirectoryjlHost Server\Bin\SmOServices • NOTE : la valeur du serveur doit être un nom DNS ou un nom de machine complet pour que la prise en charge inter-domaine fonctionne correctement. o Faux (par défaut/omis) — désactive la prise en charge inter-domaine ce qui supprime l'autorisation des applications basées sur un navigateur, comme Silverlight, d'adresser des appels au point d'extrémité de service à partir d'un domaine différent • enableMetadata (activer métadonnées) (Booléen) -- détermine si un Service Metadata Document (Document de Métadonnées de Service) (aka, WSDL) sera généré pour le point d'extrémité via ?wsdl o Vrai (par défaut/omis) — un Document de Métadonnées de Service sera créé pour le point d'extrémité o Faux — un Document de Métadonnées de Service ne sera pas créé pour le point d'extrémité • système (Chaîne, requis) -- le système par défaut (http ou https si SSL est activé) pour les points d'extrémité. o Par défaut : http • server (serveur) (Chaîne, requis) — le nom DNS ou le nom de domaine complet du serveur hébergeant les points d'extrémité o Par défaut : (Nom de Machine Complet) • port (chaîne) — le port par défaut pour les points d'extrémité o Par défaut : 8888 o Omis : 80 • serviceRoot (Racine du service) (chaîne) — racine du service par défaut pour les points d'extrémité o Par défaut : SmartObjectServices (Services Objets Intelligents) • specialCharacterReplacement (Remplacement caractères spéciaux) (chaîne) -permet aux administrateurs de contrôler quel caractère est utilisé à la place des caractères générés non autorisés comme les espaces o Par défaut/Omis : • defaultSecurityLabel (Étiquette de sécurité par défaut) (chaîne) - définit l'étiquette de sécurité par défaut à ajouter, au préalable, au nom de l'utilisateur pour les procédés d'authentification de base o Par défaut : K2 o Omis : aucune étiquette de sécurité ne sera installée au préalable, le nom de l'utilisateur doit également contenir l'étiquetteServices • enableEndpoints (Boolean) - determines whether the SmartObject Services K2 service will start o True - starts SmartObject Services K2 and loads configured endpoints o False (default / omitted) - does not start SmartObject Services K2 and does not load endpoints • enableEvents (Boolean) - determines whether changes to SmartObjects will be reflected dynamically without restarting the K2 server o True (default / omitted) - when Smart Objects are created / updated / deleted, the service dynamically reloads the AppDomain (Application Domain) containing the assigned Smart Objects o False - when Smart Objects are created / updated / deleted, the service will not reflect the changes without restarting the K2 server. • enableCrossDomainPolicy (Boolean) - determines whether service endpoints have inter-domain support o True - allows inter-domain support for browser-based applications, such as Silverlight, to make calls to the service endpoint from a different domain • Files - The files that control the cross-domain support level are crossdomain.xml and clientaccesspolicy.xml. These files can be found and edited in the DirectoryjlHost Server \ Bin \ SmOServices directory. • NOTE: The server value must be a fully qualified DNS name or machine name for cross-domain support to work properly. o False (default / omitted) - Disables cross-domain support which removes the ability for browser-based applications, such as Silverlight, to make calls to the service endpoint from a different domain • enableMetadata (Boolean) - determines whether a Service Metadata Document (aka, WSDL) will be generated for the endpoint via? wsdl o True (default / omitted) - a Service Metadata Document will be created for the endpoint o False - a Service Metadata Document will not be created for the system • endpoint (String, required) - the default system (http or https if SSL is enabled) for endpoints. o Default: http • server (String) - the DNS name or fully qualified domain name of the server hosting the endpoints o Default: (Full Machine Name) • port (string) - the default port for endpoints o Default: 8888 o Omitted: 80 • serviceRoot (string) - default service root for endpoints o Default: SmartObjectServices • specialCharacterReplacement (string) -allows administrators to control which character is used instead of unauthorized generated characters such as spaces o Default / Omitted: • defaultSecurityLabel (string) - sets the default security label to be added, in advance, to the user's name for basic authentication processes o Default: K2 o Omitted: no security label will not be installed beforehand, the name of the user must also contain the label

WCFWCF

La section <wcf> contient la configuration de liaison par défaut pour les points d'extrémité WCF et les composants URI de Service spécifiques WCF en option.The <wcf> section contains the default binding configuration for optional WCF endpoints and WCF specific Service URIs.

• binding (liaison) (chaîne, requis) - définit le type de liaison par défaut pour le point d'extrémité WCF o Support pour basicHttpBinding, wsHttpBinding o Par défaut : wsHttpBinding • bindingConfiguration (Configuration de liaison) (chaîne, requis) - définit la configuration dans la section <system.serviceModel> qui contient les détails de la liaison pour le point d'extrémité o Par défaut : wsHttpBinding+Windows • bindingConfiguration (Configuration de liaison) (chaîne, requis) - définit la configuration dans la section <system.serviceModel> qui contient les détails de la liaison pour le point d'extrémité • scheme (système) (Chaîne) - s'il est présent, écrase le système par défaut et nécessite un serveur • server (serveur) (Chaîne) - s'il est présent, écrase le serveur par défaut et nécessite un système • port (Chaîne) - s'il est présent, écrase le port par défaut • serviceRoot (Racine de service) (Chaîne) - s'il est présent, écrase la racine de service par défaut • defaultSecurityLabel (Étiquette de sécurité par défaut) (Chaîne) - si elle est présente, écrase l'étiquette de sécurité par défaut • individualSmartObjects (Objets Intelligents Individuels) (Booléen) - s'il est présent, générera un point d'extrémité pour chaque Objet Intelligent individuel en plus du point d'extrémité au niveau de la catégorie o Par défaut : faux• binding (string, required) - defines the default binding type for the WCF endpoint o Support for basicHttpBinding, wsHttpBinding o Default: wsHttpBinding • bindingConfiguration (string, required) - defines the configuration in the <system.serviceModel> section that contains the binding details for the endpoint o Default: wsHttpBinding + Windows • bindingConfiguration (string, required) - sets the configuration in the <section system.serviceModel> which contains the details of the binding for the endpoint • scheme (system) - if present, overwrites the system by default and requires a server • server (Server) - if present, overwrites the default server and requires a system • port (String) - if present, overrides the default port • serviceRoot (String) - if present, overwrites l a default service root • defaultSecurityLabel (String) - if present, overwrites the default security label • individualSmartObjects (Boolean) - if present, will generate an endpoint for each individual Intelligent Object in addition to the category-level endpoint o Default: false

RESTREST

La section <wcf> contient la configuration de liaison par défaut pour les points d'extrémité REST et les composants URI de Service spécifiques REST en option.The <wcf> section contains the default binding configuration for optional REST endpoints and REST Service URIs.

• binding (liaison) (chaîne, requis) - définit le type de liaison par défaut pour le point d'extrémité REST o Support pour webHttpBinding o Par défaut : webHttpBinding • bindingConfiguration (Configuration de liaison) (chaîne, requis) - définit la configuration dans la section <system.serviceModel> qui contient les détails de la liaison pour le point d'extrémité o Par défaut : webHttpBinding+Windows • scheme (système) (Chaîne) - s'il est présent, écrase le système par défaut et nécessite un serveur • server (serveur) (Chaîne) - s'il est présent, écrase le serveur par défaut et nécessite un système • port (Chaîne) - s'il est présent, écrase le port par défaut • serviceRoot (Racine du service) (Chaîne) - s'il est présent, écrase la racine de service par défaut • defaultSecurityLabel (Étiquette de sécurité par défaut) (Chaîne) - si elle est présente, écrase l'étiquette de sécurité par défaut• binding (string, required) - defines the default binding type for the REST endpoint o Support for webHttpBinding o Default: webHttpBinding • bindingConfiguration (string, required) - defines the configuration in the <system.serviceModel> section that contains the binding details for the endpoint o Default: webHttpBinding + Windows • scheme (system) - if present, overrides the default system and requires a server • server (Server) - if present, overwrites the default server and requires a system • port (String) - if present, overrides the default port • serviceRoot (String) - if present, overwrites the default service root • defaultSecurityLabel (String) - if present, overrides the default security label

Points d'extrémité gérésManaged endpoints

La catégorie est l'objet de niveau supérieur par défaut qui est lié au point d'extrémité via l'URI. Par exemple, si une catégorie ou un Objet Intelligent existe au même niveau, le point d'extrémité sera lié à la catégorie. En plus de la liaison par défaut des procédés d'Objets Intelligents au sein d'un point d'extrémité de catégorie, des Objets Intelligents peuvent être configurés pour avoir également leurs propres points d'extrémité (navigation URI directe vers l'Objet Intelligent). Si une catégorie et un Objet Intelligent s'avèrent avoir le même point d'extrémité, la catégorie gagne et sera liée au point d'extrémité et une erreur sera consignée pour la collision.The category is the top-level default object that is linked to the endpoint through the URI. For example, if a category or Intelligent Object exists at the same level, the endpoint will be linked to the category. In addition to the default binding of Intelligent Object processes within a category endpoint, Intelligent Objects can be configured to also have their own endpoints (direct URI navigation to Intelligent Object) . If a category and an Intelligent Object are found to have the same endpoint, the category wins and will be linked to the endpoint and an error will be logged for the collision.

La gestion des points d'extrémité permet à l'administrateur de contrôler quels catégories et Objets Intelligents sont disponibles via les services WCF et REST. Il existe deux sections principales : Exclu et Statique. • Exclu signifie que le chemin de la catégorie et les Objets Intelligents de cette catégorie sont exclus. Chaque sous-catégorie n'est pas automatiquement exclue et exigera une entrée séparée. • Statique signifie que la catégorie spécifique et, selon le scénario, un Objet Intelligent spécifique, est inclus.Endpoint Management allows the administrator to control which categories and Smart Objects are available through the WCF and REST services. There are two main sections: Excluded and Static. • Excluded means that Category Path and Smart Objects in this category are excluded. Each sub-category is not automatically excluded and will require a separate entry. • Static means that the specific category and, depending on the scenario, a specific Intelligent Object, is included.

Exclusexcluded

Configure les points d'extrémité exclus pour empêcher qu'un point d'extrémité d'une catégorie ou d'une sous-catégorie, et des procédés d'Objet Intelligent dans cette catégorie/sous-catégorie, soit généré. • ail (toutes) (Booléen, requis) — détermine si toutes les catégories seront exclues o Vrai (par défaut) — exclut toutes les catégories de la génération de point d'extrémité. Ceci permet que seuls les points d'extrémité statiques soient disponibles. o Faux — génère les points d'extrémité pour toutes les catégories non explicitement exclues • La section <endpoints> contient un <endpoint> pour chaque chemin de catégorie à exclure explicitement o categoryPath (Chemin vers Catégories) (Chaîne, requis) — chemin vers la catégorie/sous-catégorie • Exemple 1 : Exclut la catégorie Task Allocation (Allocation de Tâches) de la génération de point d'extrémité. Toutes les sous-catégories seraient toujours incluses. <endpoint categoryPath-'Task Allocation"!> • Exemple 2 : Exclut la sous-catégorie Workflow Reports/Workflow General (Rapports Flux/Généralités Flux) de la génération de point d'extrémité. La catégorie mère, Rapports Flux, et toutes les sous-catégories seront toujours incluses. <endpoint categoryPath="Workflow Reports/Workflow General"! o excludeSubCategories (Exclure Sous-Catégories) (Booléen, en option) — chemin vers la catégorie/sous-catégorie • Vrai — exclut la catégorie mère et toutes les sous-catégories de la génération de point d'extrémité. • Faux (par défaut) — génère des points d'extrémité pour toutes les sous-catégories non explicitement exclues • Exemple 1 : Exclut la catégorie Task Allocation (Allocation de Tâches) et toutes ses sous-catégories de la génération de point d'extrémité. <endpoint categoryPath&amp;'Task Allocation" excludeSubCategories"true"!>Configures excluded endpoints to prevent an endpoint of a category or subcategory, and Intelligent Object processes in that category / subcategory, from being generated. • gar (all) (Boolean, required) - determines whether all categories will be excluded o True (default) - excludes all categories of endpoint generation. This allows only static endpoints to be available. o False - generates endpoints for all non-explicitly excluded categories • The <endpoints> section contains an <endpoint> for each category path to explicitly exclude o categoryPath (String, required) - path to Category / Subcategory • Example 1: Excludes the Task Allocation category from endpoint generation. All subcategories would still be included. <endpoint categoryPath-'Task Allocation "!> • Example 2: Excludes the Workflow Reports / Workflow General sub-category from the endpoint generation, the parent category, Feed Reports, and all subcategories will always be included. <endpoint categoryPath = "Workflow Reports / General Workflow"! o excludeSubCategories (Exclude Subcategories) (Boolean, optional) - path to category / subcategory • True - excludes parent category and all subcategories of endpoint generation • False (default) - generates endpoints for all subcategories not explicitly excluded • Example 1: Excludes the category Task Allocation and all its subcategories of endpoint generation. <endpoint categoryPath & 'Task Allocation "excludeSubCategories" true "!>

StatiqueStatic

Configure les points d'extrémité statiques pour permettre un mappage injectif d'un Objet Intelligent sur un point d'extrémité, la dénomination de l'URI de l'Objet Intelligent, la création d'un Domaine d'Application personnalisé, la modification du type de liaison par défaut et la sélection de la version de définition d'un Objet Intelligent spécifique • categoryPath (Chemin vers Catégories) (Chaîne, requis) — chemin vers la catégorie/sous-catégorie o Exemple 1 : Tous les Objets Intelligents inclus dans une catégorie. <endpoint categoryPath-'MyCategoryfMyProject" !> o Lorsque spécifié sans nom d'Objet Intelligent spécifique dans l'attribut smartobjectName (Nom de l'Objet Intelligent) ou individualSmartObjects=true (Objets Intelligents individuels=vrai), alors tous les Objets Intelligents dans ce chemin de catégorie seront générés. De plus, si un chemin de catégorie spécifié n'existe pas, il sera surveillé de manière que, lorsqu'un Objet Intelligent sera déployé sur ce chemin de catégorie à un stade ultérieur, alors le point d'extrémité sera généré. • smartobjectName (Nom de l'Objet Intelligent) (chaîne, en option) — le nom de l'Objet Intelligent spécifique o specified (spécifié) — si cela est spécifié, l'Objet Intelligent aura un point d'extrémité généré o missing (manquant) - si cela n'est pas spécifié, tous les Objets Intelligents présents sur le chemin de la catégorie spécifié seront générés • alias (chaîne, en option) - le nouveau chemin à utiliser pour naviguer jusqu'au point d'extrémité pour cet Objet Intelligent ou cette Catégorie. NOTE : la recherche du chemin utilisera le nom de l'écran alors que la liaison générée utilisera toujours le nom du système. o S'il y a collision avec une Catégorie ou un Objet Intelligent existant(e), c'est ce dernier qui gagne. Par exemple, si vous configurez deux points d'extrémité statiques avec exactement le même alias, le second dans la liste écrasera le premier, et il n'y aura qu'un seul point d'extrémité, o Exemple : alias-'MySmartObjectAlias" générera une liaison de point d'extrémité d'Objet Intelligent sur http://api.denallix.com:8888/SmartObjectServices/MySmartObject • isolationLevel (Niveau d'isolation) (chaîne, en option) - utilisé pour spécifier le Domaine d'Application que le point d'extrémité doit utiliser o Shared (Partagé) - (par défaut/omis) - par défaut, tous les points d'extrémité utiliseront un seul Domaine d'Application. Ne pas définir le niveau d'isolation ou spécifier le niveau d'isolation-'partagé" a le même effet qui est d'utiliser le Domaine d'Application du service. • single (unique) - définir le niveau d'isolation-'unique" garantira que le point d'extrémité pour cet Objet Intelligent a son propre Domaine d'Application ce qui autorise une isolation de tous les autres points d'extrémité. Ceci est utile lorsque l'Objet Intelligent change souvent, alors que la recharge du point d'extrémité n'affectera pas d'autre point d'extrémité • smartobjectVersion (Version de l'Objet Intelligent) (chaîne, en option) - utilisé pour spécifier une version spécifique de la définition de l'Objet Intelligent à lier au point d'extrémité. La version la plus récente de la définition d'Objet Intelligent sera liée par défaut. o Exemple : 5 • La section <wcf> ou <rest>, si elle existe, écrase la configuration WCF et/ou REST pour le service pour ce point d’extrémité statique.Configures static endpoints to allow an injection of an Intelligent Object to an endpoint, the URI designation of the Intelligent Object, the creation of a custom Application Domain, the modification of the Intelligent Object URI default binding type and selection of the definition version of a specific Intelligent Object • categoryPath (Path to Categories) (String, required) - path to category / subcategory o Example 1: All Smart Objects included in a category. <endpoint categoryPath-'MyCategoryfMyProject "!> o When specified without a specific Intelligent Object name in the smartobjectName (Intelligent Object Name) attribute or individualSmartObjects = true (Individual Intelligent Objects = true), then all Intelligent Objects in this category path will be generated, and if a specified category path does not exist, it will be monitored so that when an Intelligent Object is deployed on that category path at a later stage, then the point of endpoint will be generated • smartobjectName (string, optional) - the name of the specific Intelligent Object o specified (specified) - if specified, the Intelligent Object will have an endpoint generated o missing - if not specified, all Smart Objects on the path of the specified category will be generated • alias (string, optional) - the new path to be used to navigate to the endpoint for this Intelligent Object or Category. NOTE: The path search will use the screen name while the generated link will always use the system name. o If there is a collision with an existing Category or Intelligent Object, it is the latter that wins. For example, if you configure two static endpoints with exactly the same alias, the second one in the list will overwrite the first, and there will be only one endpoint, o Example: alias-'MySmartObjectAlias " will generate an Intelligent Object endpoint binding on http://api.denallix.com:8888/SmartObjectServices/MySmartObject • isolationLevel (string, optional) - used to specify the Domain. Application that the endpoint should use o Shared - (default / omitted) - By default, all endpoints will use a single Application Domain Do not set the isolation level or specify the Isolation level-'shared 'has the same effect which is to use the Service Application Scope. • single - setting the -unique "isolation level will ensure that the endpoint for this Intelligent Object has its own Application Domain, which allows isolation of all other endpoints. useful when the Smart Object changes often, while the endpoint recharge will not affect another endpoint • smartobjectVersion (optional Smart Object Version) - used to specify a specific version of the Intelligent Object definition to bind to the endpoint The most recent version of the Intelligent Object definition will be linked by default o Example: 5 • The <wcf> or <rest> section, if it exists, overwrites the WCF and / or REST configuration for the service for that static endpoint.

o binding (liaison) (chaîne) - s'il existe, écrase le type de liaison par défaut configuré pour le service WCF ou RESTo binding (string) - if it exists, overrides the default binding type configured for the WCF or REST service

Support pour basicHttpBinding, wsHttpBinding, webHttpBindingSupport for basicHttpBinding, wsHttpBinding, webHttpBinding

o bindingConfiguration (configuration de liaison) (chaîne) - s'il existe, écrase la configuration de liaison par défaut pour le service WCF/REST o scheme (système) (Chaîne) - s'il est présent, écrase le système par défaut et nécessite un serveur o server (serveur) (Chaîne) - s'il est présent, écrase le serveur par défaut et nécessite un système o port (Chaîne) - s'il est présent, écrase le port par défaut o serviceRoot (Racine du service) (Chaîne) - s'il est présent, écrase la racine de service par défaut o defaultSecurityLabel (Étiquette de sécurité par défaut) (Chaîne) - si elle est présente, écrase l'étiquette de sécurité par défaut o individualSmartObjects (Objets Intelligents Individuels) (Booléen) - s'il est présent, générera un point d'extrémité pour chaque Objet Intelligent individuel en plus du point d'extrémité au niveau de la catégorie • Par défaut : faux TABLEAU 3 <smoServices enableEndpoints="true" enableEvents="true" enableCrossDomainPolicy="false" enableMetadata="true" scheme-'http" server="api.denallix.com" port="8888" serviceRoot="SmartObjectServices" specialCharacterRepIacement="_“ defaultSecurityLabel="K2"> <wcf binding="basicHttpBinding+Basic" bindingConfiguration="wsHttpBinding+Basic" defaultSecurityLabel-'K2SQL" /> <rest birtding-'webHttpBinding" bindingConfiguration-'webHttpBinding+Windows+HTTPS" scheme="https" server-'api.denallix.com" port="8890" serviceRoot="SmartObjectServices" /> <managedEndpoints» <excluded all="false”> <endpoints> <endpoint categoryPath-'Task Allocation" excludeSubCategories=”true"/> <endpoint categoryPath="Workflow Reports/Workflow General"/» </endpoints> </excluded> <static> <endpoints» <endpoint categoryPath="K2 Examples/Employee"» <rest binding="webHttpBinding" bindingConfiguration-'webHttpBinding+Windows" scheme="http" server="denallix.denallix.com" port="8889" serviceRoot="SmartObjects" defaultSecurityLabel-'K2SQL"/» </endpoint» </endpoints> </static> </managedEndpoints> </smoServices>o bindingConfiguration (string) - if it exists, overwrites the default binding configuration for the WCF / REST service o scheme (system) - if present, overrides the default system and requires an o server (server) server (String) - if present, overwrites the default server and requires a system o port (String) - if present, overwrites the default port o serviceRoot (Service Root ) (String) - if present, overwrites the default service root o defaultSecurityLabel (String) - if present, overwrites the default security label o individualSmartObjects (Individual Intelligent Objects ) (Boolean) - if present, will generate an endpoint for each individual Intelligent Object in addition to the category-level endpoint • Default: false TABLE 3 <smoServices enableEndpoints = "true" enableEvents = "true" enableCr ossDomainPolicy = "false" enableMetadata = "true" scheme-'http "server =" api.denallix.com "port =" 8888 "serviceRoot =" SmartObjectServices "specialCharacterRepIocation =" _ "defaultSecurityLabel =" K2 "> <wcf binding =" basicHttpBinding + Basic "bindingConfiguration =" wsHttpBinding + Basic "defaultSecurityLabel-'K2SQL" /> <rest birtding-'webHttpBinding "bindingConfiguration-'webHttpBinding + Windows + HTTPS" scheme = "https" server-'api.denallix.com "port = "8890" serviceRoot = "SmartObjectServices" /> <managedEndpoints "<excluded all =" false "> <endpoints> <endpoint categoryPath-'Task Allocation" excludeSubCategories = "true" /> <endpoint categoryPath = "Workflow Reports / Workflow General" / »</ Endpoints> </ excluded> <static> <endpoints <endpoint categoryPath =" K2 Examples / Employee "" <binding = "webHttpBinding" bindingConfiguration-'webHttpBinding + Windows "scheme =" http "server =" denallix .denallix.com "port =" 8889 "serviceRoot =" SmartObjects "defaultSecurityLabel-'K2SQL" / "</ endpoint" </ endpoints> </ static> </ ma nagedEndpoints> </ smoServices>

Claims (7)

REVENDICATIONS 1. Système de génération d'un point d'extrémité dynamique permettant à un dispositif client de consommer un objet commercial, le point d'extrémité comprenant une adresse, une liaison et un contrat, comprenant un processeur structuré pour amener le système à effectuer : le chargement d'une définition de l'objet commercial, la définition comportant des propriétés et des méthodes ; l'exécution d'une itération à travers la définition ; et le mappage de la définition sur des protocoles pris en charge par le point d'extrémité, le mappage comprenant : (i) le mappage des propriétés d'objet commercial sur des contrats de données ; (ii) le mappage des méthodes d'objet commercial sur des contrats de fonctionnement ; et (iü) la vérification que des signatures de méthode d'objet commercial comportent des entrées et des sorties prises en charge par le point d'extrémité ; dans lequel le point d'extrémité est généré en réponse à au moins l'une de : (a) la demande de l'objet commercial par le dispositif client, (b) la création de l'objet commercial, et (c) la mise à jour de l'objet commercial.A dynamic endpoint generation system for enabling a client device to consume a commercial object, the endpoint including an address, a link, and a contract, comprising a structured processor for causing the system to perform: loading a definition of the business object, the definition including properties and methods; performing an iteration through the definition; and mapping the definition to protocols supported by the endpoint, the mapping comprising: (i) mapping the commercial object properties to data contracts; (ii) the mapping of business object methods to operating contracts; and (iü) verifying that commercial object method signatures include inputs and outputs supported by the endpoint; wherein the endpoint is generated in response to at least one of: (a) the request for the business object by the client device, (b) the creation of the business object, and (c) the update of the commercial object. 2. Système selon la revendication 1, le processeur étant structuré pour amener en outre le système à effectuer la génération de points d'extrémité .NET destinés à être utilisés dans un cadre WCF et la génération de points d'extrémité Atom, XML et JSON destinés à être utilisés dans un cadre REST.The system of claim 1, wherein the processor is structured to further cause the system to perform the generation of .NET endpoints for use in a WCF framework and the generation of Atom, XML and JSON endpoints. intended for use in a REST framework. 3. Système selon la revendication ï, dans lequel l'objet commercial appartient à une catégorie, et le point d'extrémité est généré pour la catégorie.3. The system of claim 1, wherein the business object belongs to a category, and the endpoint is generated for the category. 4. Système selon la revendication 1, le processeur étant structuré pour amener en outre le système à effectuer la génération du point d'extrémité sur la base d'une configuration.The system of claim 1, the processor being structured to further cause the system to perform endpoint generation based on a configuration. 5. Système selon la revendication 4, dans lequel la configuration comprend la configuration de service, la configuration WCF, la configuration REST et la configuration gérée.The system of claim 4, wherein the configuration comprises the service configuration, the WCF configuration, the REST configuration, and the managed configuration. 6. Système selon la revendication 5, dans lequel l'isolation comprend au moins l'une de : (i) l'isolation de mémoire, (ii) l'isolation d'adresse et (iii) l'isolation de liaison de sécurité.The system of claim 5, wherein the isolation comprises at least one of: (i) memory isolation, (ii) address isolation and (iii) security link isolation . 7. Support lisible par ordinateur stockant des instructions de génération d'un point d'extrémité dynamique permettant à un dispositif client de consommer un objet commercial, le point d'extrémité comprenant une adresse, une liaison et un contrat, les instructions amenant un dispositif informatique à effectuer : le chargement d'une définition de l'objet commercial, la définition comportant des propriétés et des méthodes ; l'exécution d'une itération à travers la définition ; et le mappage de la définition sur des protocoles pris en charge par le point d'extrémité, le mappage comprenant : (i) le mappage des propriétés d'objet commercial sur des contrats de données ; (ii) le mappage des méthodes d'objet commercial sur des contrats de fonctionnement ; et (iii) la vérification que des signatures de méthode d'objet commercial comportent des entrées et des sorties prises en charge par le point d'extrémité ; dans lequel le point d'extrémité est généré en réponse à au moins l'une de : (a) la demande de l'objet commercial par le dispositif client, (b) la création de l'objet commercial, et (c) la mise à jour de l'objet commercial.7. Computer-readable medium storing instructions for generating a dynamic endpoint allowing a client device to consume a commercial object, the endpoint including an address, a link, and a contract, the instructions providing a device computer to perform: the loading of a definition of the commercial object, the definition including properties and methods; performing an iteration through the definition; and mapping the definition to protocols supported by the endpoint, the mapping comprising: (i) mapping the commercial object properties to data contracts; (ii) the mapping of business object methods to operating contracts; and (iii) verifying that business object method signatures include inputs and outputs supported by the endpoint; wherein the endpoint is generated in response to at least one of: (a) the request for the business object by the client device, (b) the creation of the business object, and (c) the update of the commercial object.
FR1651250A 2016-02-16 2016-02-16 APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS Active FR3047819B3 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1651250A FR3047819B3 (en) 2016-02-16 2016-02-16 APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1651250A FR3047819B3 (en) 2016-02-16 2016-02-16 APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS

Publications (2)

Publication Number Publication Date
FR3047819A3 true FR3047819A3 (en) 2017-08-18
FR3047819B3 FR3047819B3 (en) 2018-03-02

Family

ID=59501664

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1651250A Active FR3047819B3 (en) 2016-02-16 2016-02-16 APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS

Country Status (1)

Country Link
FR (1) FR3047819B3 (en)

Also Published As

Publication number Publication date
FR3047819B3 (en) 2018-03-02

Similar Documents

Publication Publication Date Title
AU2016202239B2 (en) Methods and apparatus for allowing user configuration of dynamic endpoint generators and dynamic remote object discovery and brokerage
US10956128B2 (en) Application with embedded workflow designer
US11099816B2 (en) Workflow development system with ease-of-use features
US10078818B2 (en) Work routine management for collaborative platforms
US9268538B2 (en) Metadata driven user interface system and method
AU2016201889B2 (en) Methods and apparatus for translating forms to native mobile applications
US8010940B2 (en) Methods and apparatus for designing a workflow process using inheritance
US8239226B2 (en) Methods and apparatus for combining properties and methods from a plurality of different data sources
US8224853B2 (en) Methods and apparatus for updating a plurality of data fields in an electronic form
WO2007112949A1 (en) Composite application modeling
US20070208777A1 (en) Methods and apparatus for designing a workflow process using resource maps and process maps
US20070136358A1 (en) Methods and apparatus for storing data associated with an electronic form
US20070143305A1 (en) Methods and apparatus for storing functions associated with an electronic form
EP2187321B1 (en) Method and system for editing an object represented on a web page
FR3047819A3 (en) APPARATUS FOR GENERATORS OF POINTS OF DYNAMIC END AND DISCOVERY AND BROKERAGE OF DYNAMIC REMOTE OBJECTS
US20070136367A1 (en) Methods and apparatus for dynamically modifying a business object definition
FR2994299A3 (en) Computer-readable business objects, electronic forms and operation continuity processing medium for use in communication system, has instructions for memorizing combined trade object including property, where object is in declaratory format
WO2008124049A1 (en) Crm system with quicknotes. hierarchical tagging and a metadata driven user interface
WO2024013199A1 (en) Method and device for automatically generating computer instructions
FR3137990A1 (en) METHOD AND DEVICE FOR AUTOMATIC GENERATION OF COMPUTER INSTRUCTIONS
FR3000820A3 (en) System for exposing definition of process of sequence of operations as commercial object within organizations, has processor creating business object based on process of sequence of operations, where object has data from sources in formats
FR3061578A1 (en) METHOD FOR GENERATING SOFTWARE APPLICATION: A CUSTOMER CONFIGURATION MANAGEMENT META-CONFIGURATOR

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9