WO2010149896A1 - Method and device for integrating heterogeneous applications - Google Patents

Method and device for integrating heterogeneous applications Download PDF

Info

Publication number
WO2010149896A1
WO2010149896A1 PCT/FR2010/051208 FR2010051208W WO2010149896A1 WO 2010149896 A1 WO2010149896 A1 WO 2010149896A1 FR 2010051208 W FR2010051208 W FR 2010051208W WO 2010149896 A1 WO2010149896 A1 WO 2010149896A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
heterogeneous applications
application
applications
format
Prior art date
Application number
PCT/FR2010/051208
Other languages
French (fr)
Inventor
Brigitte Barberon
Laurent Trompette
Original Assignee
Bull Sas
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull Sas filed Critical Bull Sas
Publication of WO2010149896A1 publication Critical patent/WO2010149896A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Definitions

  • the present invention relates to the exchange of data between software applications and more particularly to a method and a device for integrating heterogeneous applications.
  • While these applications are independent of each other, some data is used by many different applications and some data produced by particular applications is used by others. In the same way, it is possible that certain routines or instructions of an application must be executed after other routines or instructions executed by other applications. Similarly, some rules can be used by multiple applications. Thus, for example, when a customer subscribes to a new telephony service contract, his references are entered into a customer relationship management application. Some of the information entered is then re-entered into an account management and valuation application to manage the customer's account and determine its consumption as well as these rights in order to allow billing. These different applications are often developed on different computer platforms, they are not compatible with each other. In addition, they can be distributed in a network computer science. Thus, when several applications require the same data, it is often necessary to enter them several times.
  • Figure 1a represents two separate computer systems.
  • the first computer system is here used to implement a customer relationship management application 100 while the second computer system is here used to implement a billing application 105.
  • some data is transmitted to each of applications 100 and 105.
  • Such data are, for example, customer data.
  • other data are also transmitted to each of the applications 100 and 105 (reference 115).
  • This data may in particular be data relating to contracts offered to customers.
  • These data are, for example, customer references.
  • the use of dashed arrows here indicates manual operations.
  • Simple solutions for interfacing a limited number of heterogeneous applications is to develop a third-party system that transmits data, rules, and / or commands to heterogeneous applications in their particular format.
  • Figure 1b illustrates such an example.
  • the computer system 125 is used to enter all the data (reference 130) which is converted into the format specific to the customer relationship management and billing applications 100 'and 105', respectively, so as to be automatically transmitted to them (reference 135).
  • the data are entered only once.
  • such solutions are specific to the heterogeneous applications implemented. Consequently, they are difficult to adapt to other similar situations.
  • the update of one of the Heterogeneous applications usually require updating the third-party application.
  • an intermediate layer also called middleware or middleware in English terminology.
  • middleware in English terminology.
  • the purpose of such a layer is essentially to convert the format of the data to allow their exchange and to manage the calls of the functions of these applications.
  • EAIs are architectures that allow heterogeneous applications to collaborate as part of business integration.
  • an EAI includes connectors used as interfaces with the applications, mapping modules for transforming the received specific data into standardized data and vice versa, and exchange modules for routing the data between the applications.
  • FIG. 1c illustrates a simplified example of the implementation of an EAI platform 140 making it possible to link a client relationship management application 100 and a billing application 105.
  • Data of the application 100 " is transmitted (reference 145) to the platform EAI 140 in the form of messages, more specifically, the data is generally transmitted to a module 150 whose function is to check the message format, according to the a predetermined schema, and extracting the data, the data is then redirected in a first conversion module 155 to be organized according to a structure specific to the EAI (reference 160), called a pivot scheme, allowing a data processing independent of the 100 "and 105" applications
  • the data in accordance with the pivot scheme is then transmitted to a second conversion module 165 to be reorganized according to the structure required by the application 105 ".
  • the conversion step can also understand an enrichment step.
  • the latter is made from data or transformation rules stored in the EAI, for example in the database 170.
  • data relating to a client are transmitted from the application 100 "to the application 105 ", it is generally necessary to convert the data into application-specific parameters functions 105", including parameters related to the quality of the customers (for example, the quality of the customer, individual or professional, may have it has an influence on the contracts proposed to it and on billing.)
  • the data is formatted in the module 175 according to a predetermined format, linked to the application 105 ", defined by a diagram.
  • the invention solves at least one of the problems discussed above.
  • the invention thus relates to a computer method for integrating heterogeneous applications in a system comprising at least two heterogeneous applications, this method comprising the following steps,
  • the method according to the invention thus allows the exchange of data between heterogeneous applications without requiring specific data processing rules related to one of the applications.
  • the method according to the invention therefore adapts to the evolution of these applications and processed data.
  • it can be easily adapted to different heterogeneous applications.
  • the data received by one of the heterogeneous applications can be processed directly, in a standard way.
  • the method further comprises a step of checking a context based on the comparison of said at least one first data received with at least one other data received from said other of said at least two heterogeneous applications, distinct from said less a second given.
  • the method according to the invention thus makes it possible to carry out verifications before transmitting data to an application, this verification being based on data specific to the application to receive them.
  • said predetermined format to a recursive structure so that the method is adapted to handle heterogeneous application data when the structure of these data changes.
  • the method preferably comprises at least one iteration.
  • said step of creating said object comprising said at least one first piece of data received converted into said predetermined data format, said creation being performed according to said at least one second piece of data received, comprises a step of inserting said at least one second data in said object.
  • the method is accessible to said one of said at least two heterogeneous applications in the form of web services.
  • the method can thus be integrated into a standard environment and be easily accessible.
  • the method may also access said other of said at least two heterogeneous applications by a specific interface of said other of said at least two heterogeneous applications for transmitting data received and processed in accordance with the invention during the solicitation of the method.
  • said one of said at least two heterogeneous applications is a customer relationship management application, the other of said at least two heterogeneous applications being a service billing and / or activation application.
  • the invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above when said program is executed on a computer and a device comprising means adapted to the implementation of each step of this process.
  • FIG. 1, comprising FIGS. 1a, 1b and 1c, schematically represents solutions of the prior art for enabling the exchange of data between heterogeneous applications;
  • FIG. 2 schematically illustrates an exemplary generic structure of the pivot format used in an integration layer according to the invention
  • - Figure 3 shows the transfer of information, from a functional point of view, between a customer relationship management application and a billing application, according to the invention
  • FIG. 4 illustrates an example of an algorithm implemented in the heterogeneous application integration layer to carry out the information transfer illustrated in FIG. 3;
  • FIG. 5 comprising FIGS. 5a and 5b, illustrates more precisely an example of implementation of the context validation and restructuring functions illustrated in FIG. 4;
  • FIG. 6 illustrates an exemplary hardware architecture adapted to implement the invention, in particular the algorithms shown in FIGS. 4 and 5.
  • the invention aims to exchange information between heterogeneous applications.
  • One of its purposes is to establish a correspondence between the data manipulated, reliably and robustly, to introduce necessary data and not provided input and to allow transactions to be made between these applications.
  • a customer relationship management application aims, in particular, to target customers in order to better understand them in order to adapt and personalize the products and / or services offered to them and individualize relationships.
  • Such an application therefore makes it possible to process all the information relating to the customers such as its identity, its user profile and the consumer profile of products and / or services in the form of a customer knowledge base.
  • the profile includes, for example, the means of payment used and the needs of the customer.
  • a billing application must manage certain customer information to enable them to be identified, to know the terms of their contracts as well as their consumption in order to establish an invoice.
  • some data is common to customer relationship management and billing applications.
  • some data used by one of the applications depends on data managed by the other application.
  • the integration module is responsible for transforming CRM concepts such as information on contracts and products offered in terms of invoicing such as subscription information, services and valuation charges.
  • the invention is implemented in the form of an integration module, called integration layer in English terminology. It can be implemented in a purely software or mixed, software and hardware, for example on a dedicated server.
  • the integration module is developed in an open type language, for example in Java language conforming to J2EE specifications (Java and J2EE are trademarks).
  • the integration module is here based on the application server JonAS (acronym for Java OpeN Application Server in English terminology).
  • the integration module can be decomposed into layers, each layer forming an interface with one of the heterogeneous applications to be integrated.
  • a layer may be intended to receive data from a first application and transform them into a generic format while a second layer receives data from a second application, transforms the stored data in generic form into the format required by the second application by adapting them according to data received from the second application and transmits it to the latter.
  • pivot formats are defined in the integration module.
  • the number of pivot formats is preferably limited.
  • the integration module can use a pivot format to describe the accounts and a pivot format to describe the contracts.
  • the pivot formats are described, for example, using the XML language (acronym for eXtensible Markup Language in English terminology).
  • Figure 2 schematically illustrates an example of a generic format that can be used in the integration module to manage contract data to which a customer can subscribe.
  • Pivot conversion is an intermediate step of data transport. This format is based on a data model describing a billing account, a customer, a contract, an invoice generation request, a consumption request on an account, a balance of an account and a service activation. proposed on a communication network.
  • the pivot format is preferably defined recursively.
  • the structure of the pivot format 200 is hierarchical, it here includes references 205 and 210 to a command and parameters, respectively.
  • the order is, for example, a command to create a customer billing account or a change order for such an account while the parameters may include a particular customer identifier.
  • the structure further includes references 215 and 220 to a main offer and associated parameters, respectively.
  • a main offer is, as an illustration, a mobile phone subscription, an associated parameter that can be a reference to a package. Tenders or ancillary services may be associated, recursively, with the main offer.
  • the structure of the pivot format here comprises a reference 225 to an ancillary offer, for example a fixed telephony subscription, a reference 230 to valuation charges to which is associated a reference 235 for the parameters relating to these charges and a reference 245 services ancillary to the main offer, for example SMS type services (short message service acronym in English terminology), which is associated with the reference 250 for the parameters relating to these services.
  • the reference 240 related to the reference 230 of valuation charges, is, for example, to determine the billing rate according to criteria specific to the customer and his subscription.
  • Figure 3 shows the transfer of information, from a functional point of view, between a customer relationship management application and a billing application, according to the invention.
  • Reference 300 here refers to the client relationship management application part
  • reference 305 refers to the integration module
  • reference 310 relates to the billing application part.
  • the data processed according to a data format 315 are converted into a generic format 320 of the integration module.
  • the data stored according to the latter are then converted into a format 330 specific to the billing application.
  • data thereof, stored here in the database 325 are used.
  • the use of billing application data to convert data from the customer relationship management application allows to avoid the coding of specific rules in the integration module which is thus easily portable.
  • the data associated with the data format 315 include in particular information relating to the identity of a client and to a type of subscription to which the customer subscribes.
  • This data is transmitted to the integration module with a command to create a billing account.
  • the integration module finds, using an integration module enrichment engine, that it lacks information in relation to the generic format defined. It therefore requests the missing information from the billing application by following the rules defined in the enrichment engine.
  • This information is, for example, that to identify valuation services for billing according to the quality of the customer and its type of subscription.
  • they are combined with the information received from the customer relationship management application. All of this information, formatted according to the billing application, is then transmitted to the latter which can then process them directly.
  • FIG. 4 illustrates an example of an algorithm implemented in the heterogeneous application integration layer for carrying out the data transfer illustrated in FIG. 3.
  • the references 400, 405 and 410 here apply to the client relationship management application part, the integration module and the billing application part, respectively.
  • the integration module is here called by the customer relationship management application, referred to as CRM, when an account or a customer contract is created or modified (step 415).
  • the calling function preferably includes the data to be processed.
  • the integration module can send a request to the customer relationship management application to obtain these data.
  • the data to be processed is converted to the pivot format described above (step 420). If there are several pivot formats in the integration module, it is determined according to the nature of the data received. According to a particularly simple embodiment, this conversion step essentially consists of a rearrangement of the data, an operation known under the name of mapping in English terminology.
  • a test is then performed to determine if the subject of the call is a contract or an account (step 425).
  • the context is first validated (step 430). This step consists in comparing the received data with information relating to account templates stored in the billing application, for example in the database 435. If the context is not valid, for example if the information received customer relationship management application is not compatible with the billing application account templates, an indication is sent to the customer relationship management application and the transaction is canceled.
  • the data stored in the pivot format used, here account type, are then converted to the format used by the billing application (step 440).
  • This conversion step is also called a data restructuring step.
  • This restructuring step here uses data stored in the billing application, in the database 435, including information relating to company or particular account templates.
  • the integration module relies on its enrichment engine. At the end of the restructuring step, all the data necessary to perform the requested operation are thus collected.
  • the restructured data is then transmitted to the billing application as an account object (step 445) to allow this application to create or modify an account according to the instructions and information contained therein (step 450).
  • a second test is performed to determine whether it is a creation or modification request (step 455). If it is a creation step, the context is first validated (step 460) according to information relating to billing account templates, product / service lists and associated parameters, resulting from the billing application, for example from the database 465. This validation step consists in particular in verifying that the data received from the customer relationship management application comply with the account templates and offers managed by the application. billing. Again, if the context is not valid, an indication is sent to the customer relationship management application and the operation is canceled.
  • This restructuring step uses data stored in the billing application, in the database 465, including information relating to product and service offers as well as valuation parameters. Thus, at the end of the restructuring step, all the data necessary to perform the requested operation are collected.
  • the validation and restructuring stages are based on the enrichment engine that associates the types and values of the data sent by the CRM to actions to be performed. These actions will, among other things, extract certain data from the billing application and allow the validation of CRM data or the addition of information completing the request.
  • the restructured data is then transmitted to the billing application as a contract object (step 445) to enable this application to create a contract according to the information contained in this object (step 450).
  • step 455 the context is first validated according to information relating to the product and service offerings as well as to the valuation parameters from the billing application, for example from the database 465.
  • step 480 The data stored in the pivot format used, here contract type, are then restructured (step 480).
  • This restructuring step again uses data stored in the billing application in the database 465, including information on product and service offerings and valuation parameters. As illustrated, steps 475 and 480 are repeated several times, according to each of the modifications to be made. Once again, the validation and restructuring steps are based on the enrichment engine.
  • the restructured data is then transmitted to the billing application as a contract object (step 445) to allow this application to create a contract according to the information contained in this object (step 450).
  • a billing account The constitution and maintenance of a billing account are thus automated.
  • a valuation element which allows billing, for example containing a telephone number, to a product subscribed by the customer, for example a mobile telephone line, is automatic, as is the validation and the formation of subscribed or modified customer contracts.
  • the integration module is sufficiently generic to accommodate most types of offers, present and future, including offers combining fixed and mobile telephony, Internet access and television reception via the Internet. network, in order to be able to manage billing system offers that can evolve regularly.
  • the integration module does not contain configuration elements specific to the offers, types of contracts or customers that an operator may have.
  • the integration module is able to adapt to operator environments by searching for specific information in the billing system itself, using its enrichment engine based on the format structure. pivots.
  • the enrichment engine includes a list of business-type rules to apply when validating and restructuring.
  • the enrichment engine includes means enabling it to access such rules. These rules are prioritized to allow, if necessary, a sequential execution.
  • Each enhancement engine rule associates an action with an attribute of the recursive structure of the pivot format of the request.
  • This attribute is determined in particular by the type of the element pointed by this attribute, for example a command, service, access or parameter type, the operation requested on this element, for example a creation, a modification or a deletion, the value attribute as well as the number of iterations in the hierarchical structure of the pivot format to reach it.
  • the possible actions linked to this pointed element are, among other things, an extraction of information in an external application, combined or not with an insertion of an element in the structure of the final request, a deletion of information or a validation of certain information. .
  • Each rule and each action is preferably associated with a description of the elements to be extracted in the external application, for example valuation elements, billing cycle, account or payment skeleton by type of customer, offer or service.
  • the search engine can determine the element of the external application processed during a validation or a restructuring.
  • Billing account template elements to define billing attributes, especially billing cycle frequency and payment time information, depending on the type of customer.
  • FIG. 5 comprising FIGS. 5a and 5b, illustrates more precisely an example of implementation of the context validation and restructuring functions, illustrated in FIG. 4, executed when the integration module receives a creation command from contract.
  • the enrichment engine is responsible for listing, or identifying, all the business rules to be applied based on the pivot format type and the transaction type (step 500 ). As indicated above, this is, in the example illustrated in FIG. 5, a creation of a contract. The rules are applied one after the other in a predetermined order.
  • the rules associated with the contract type pivot format and the creation operation may be validation rules of the billing, subscription and service account as well as valuation rules.
  • the integration module compares the data received from the customer relationship management application with information stored in the billing application, according to the rules defined in the enrichment engine. (step
  • the integration module constructs a request to obtain the element informed by the rule and sends a request to the application, here the billing application.
  • the billing application when it receives a request for information relating to a billing account, it recovers these information and transmits to the integration module (step 510) which can then check the billing account according to the information received from the customer relationship management application (step 515).
  • step 505 If the applied rule is not a validation rule (step 505) or after validation of the billing account parameters, information about the offers and services are accessed.
  • the billing application when it receives a request to obtain offers, services and / or associated parameters, on the date of the subscription of a contract, it extracts this information from its databases and transmits to the integration module (step 520).
  • the integration module via the enrichment engine, checks the subscription data received from the customer relationship management application with the information received. previously of the billing application (step 530). This step is preferably performed for each subscription, that is to say for the main subscription and all the subscriptions that depend on it.
  • the integration module checks the parameters of the services offered in the subscription, received from the customer relationship management application, with the information previously received from the billing application (step 540).
  • step 515) or if the subscription data (step 530) and / or the service parameters received are not in accordance with the offer (step 540), an error indication is transmitted to the management application of the customer relationship and the transaction is suspended (steps not shown).
  • the enrichment engine preferably contains rules concerning the recovery charges and their types.
  • the rule applied is a valuation rule (step 545)
  • the valuation charge information in the offer is then searched for in the data received from the billing application (step 550) and is associated with the subscription data received from the billing application (step 550) and is associated with the subscription data received from the billing application (step 550).
  • customer relationship management application A valuation charge of a given type is identified through an Enrichment Engine rule by its attribute and its value in the pivot format (230).
  • the valuation identifier (240) is assigned to that charge based on its type.
  • This valuation information is then added to the subscription data received from the customer relationship management application (step 555) to form the object that will allow the billing application to create the contract corresponding to the subscription.
  • a test is then performed to determine if all services corresponding to the subscription under treatment have been processed (step 560). If not, the next service is processed (steps 535 to 555).
  • step 560 If all the services corresponding to the subscription under treatment have been processed (step 560), another test is performed to determine whether all subscriptions dependent on the main subscription have been processed (step 565). If not, the next dependent subscription is processed (steps 520 to 560). Finally, if all the services corresponding to the subscription being processed and all subscriptions dependent on the main subscription have been processed, a test is performed to determine whether all the rules identified have been applied. If not, the following rule is applied (steps 505 to 565). It should be noted that depending on the type of operation, for example the modification of a contract or the creation of an account, the verification and insertion of information steps may be different from those described with reference to FIG.
  • the insertion step may be replaced or include a selection step in which some data received from the billing application is used to select other data received from the billing application or data received from the billing application. 'application of customer relationship management, to form the object to be transmitted to the billing application, and vice versa.
  • the integration module comprises a web services type interface, commonly called web services, allowing the customer relationship management application to directly access the services offered by this module. Access to these services may comply with the http / SOAP standard (acronym for HyperText Transfer Protocol and Simple Object Access Protocol in English terminology).
  • the services proposed may be the following: - sending an operation for creating or modifying the customer data on a pivot format "Customer";
  • the requests received from the customer relationship management application are stored in a queue and processed according to their order of arrival.
  • queries can be processed synchronously.
  • the billing application is accessible via an API (abbreviation of Application Programming Interface in English terminology) specific.
  • the integration module can be doubled, in a purely software or software and hardware, according to a redundancy mechanism.
  • the redundant module can take over.
  • the queuing queue is advantageously copied from the failed module to the redundant module. The failure is detectable by the customer relationship management application only if there is at least one request being processed in the integration module. In this case, the application will detect an error and may resubmit the request.
  • FIG. 6 illustrates an exemplary hardware architecture adapted to implement the invention, in particular the algorithms shown in FIGS. 4 and 5.
  • the device 600 here comprises a communication bus 605 to which are connected:
  • CPU Central Processing Unit
  • ROM Read OnIy Memory in English terminology
  • ROM Read OnIy Memory
  • RAM Random Access Memory
  • cache memory 620 comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs
  • a communication interface 650 adapted to transmit and receive data, in particular to and from devices on which the heterogeneous applications are executed.
  • the device 600 also preferably has the following elements:
  • a screen 625 making it possible to display data and which can serve as a graphical interface with the user who can interact with the programs according to the invention, using a keyboard and a mouse 630 or another pointing device such as a touch screen or a remote control; a hard disk 635 that may include the aforementioned programs and data processed or to be processed according to the invention; and a memory card reader 640 adapted to receive a memory card 645 and to read or write to it data processed or to be processed according to the invention.
  • the communication bus allows communication and interoperability between the various elements included in the device 600 or connected to it.
  • the representation of the bus is not limiting and, in particular, the central unit is able to communicate instructions to any element of the device 600 directly or via another element of the device 600.
  • the executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk 635 or in the read-only memory 615.
  • the memory card 645 may contain data, in particular a correspondence table between the detected events and the commands that can be requested, as well as the executable code of the aforementioned programs which, once read by the device 600, is stored in the hard disk 635.
  • the executable code of the programs may be received, at least partially, via the interface 650, to be stored in a manner identical to that described above.
  • program or programs may be loaded into one of the storage means of the device 600 before being executed.
  • the central unit 610 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored in the hard disk 635 or in the read-only memory 615 or else in the other elements of aforementioned storage.
  • the program or programs that are stored in a non-volatile memory for example the hard disk 635 or the read-only memory 615, are transferred into the random access memory 620 which then contains the executable code of the program or programs according to the invention, as well as registers for memorize the variables and parameters necessary for the implementation of the invention.

Abstract

The invention relates to the integration of heterogeneous applications. After having received at least one datum of a heterogeneous application in a format specific to said heterogeneous application, said at least one received datum is converted (420) into a predetermined data format separate from the data formats used by said heterogeneous applications. At least one second datum is received from another heterogeneous application for enabling the generation (440, 470, 480) of an object including said at least one received datum converted into said predetermined format, said generation being carried out in accordance with said at least one second received datum, wherein said object can be directly processed by said other heterogeneous application. Said generated object is then transmitted (445) to said other heterogeneous application.

Description

Procédé et dispositif d'intégration d'applications hétérogènes Method and device for integrating heterogeneous applications
La présente invention concerne l'échange de données entre des applications logicielles et plus particulièrement un procédé et un dispositif d'intégration d'applications hétérogènes.The present invention relates to the exchange of data between software applications and more particularly to a method and a device for integrating heterogeneous applications.
S'il existe des éditeurs d'applications logicielles proposant des suites complètes d'applications pour entreprises, ces éditeurs sont généralement spécialisés par domaines. Ainsi, par exemple, il existe des éditeurs proposant des applications de gestion de la relation client, aussi appelées CRM (sigle de Customer Relationship Management en terminologie anglo-saxonne), d'autres proposant des applications de gestion des offres commerciales et de facturation ou d'autres encore proposant des applications d'activation de services, par exemple d'activation de cartes SIM (sigle de Subscriber Identity Module en terminologie anglo-saxonne).While there are vendors of software applications that offer complete suites of enterprise applications, these publishers typically specialize in domains. Thus, for example, there are publishers offering customer relationship management applications, also called CRM (acronym for Customer Relationship Management in English terminology), others offering applications for management of commercial offers and billing or others still offering service activation applications, for example activation of SIM cards (acronym Subscriber Identity Module in English terminology).
Alors que ces applications sont indépendantes les unes des autres, certaines données sont utilisées par plusieurs applications distinctes et certaines données produites par des applications particulières sont utilisées par d'autres. De la même façon, il est possible que certaines routines ou instructions d'une application doivent être exécutées après d'autres routines ou instructions exécutées par d'autres applications. De façon similaire, certaines règles peuvent être utilisées par plusieurs applications. Ainsi, à titre d'illustration, lorsqu'un client souscrit un nouveau contrat de service de téléphonie, ses références sont saisies dans une application de gestion de la relation client. Certaines des informations saisies sont ensuite saisies à nouveau dans une application de gestion de compte et de valorisation pour gérer le compte du client et déterminer sa consommation ainsi que ces droits afin de permettre sa facturation. Ces différentes applications étant souvent développées sur des plateformes informatiques différentes, elles ne sont pas compatibles les unes avec les autres. En outre, elles peuvent être distribuées dans un réseau informatique. Ainsi, lorsque plusieurs applications nécessitent les mêmes données, il est souvent nécessaire de les saisir plusieurs fois.While these applications are independent of each other, some data is used by many different applications and some data produced by particular applications is used by others. In the same way, it is possible that certain routines or instructions of an application must be executed after other routines or instructions executed by other applications. Similarly, some rules can be used by multiple applications. Thus, for example, when a customer subscribes to a new telephony service contract, his references are entered into a customer relationship management application. Some of the information entered is then re-entered into an account management and valuation application to manage the customer's account and determine its consumption as well as these rights in order to allow billing. These different applications are often developed on different computer platforms, they are not compatible with each other. In addition, they can be distributed in a network computer science. Thus, when several applications require the same data, it is often necessary to enter them several times.
La transmission des données entre les différentes applications peut être manuelle. A titre d'illustration, la figure 1 a représente deux systèmes informatiques distincts. Le premier système informatique est ici utilisé pour mettre en œuvre une application 100 de gestion de la relation client tandis que le second système informatique est ici utilisé pour mettre en œuvre une application 105 de facturation. Comme illustré par la référence 110, certaines données sont transmises à chacune des applications 100 et 105. De telles données sont, par exemple, des données relatives aux clients. De la même façon, d'autres données sont également transmises à chacune des applications 100 et 105 (référence 115). Ces données peuvent notamment être des données relatives aux contrats proposés aux clients. Par ailleurs, comme illustré par la flèche 120, il peut être nécessaire de recopier des données générées par l'application 100 de gestion de la clientèle dans l'application 105 de facturation. Ces données sont, par exemple, des références clients. L'utilisation de flèches en trait pointillé indique ici des opérations manuelles.Data transmission between different applications can be manual. By way of illustration, Figure 1a represents two separate computer systems. The first computer system is here used to implement a customer relationship management application 100 while the second computer system is here used to implement a billing application 105. As illustrated by reference 110, some data is transmitted to each of applications 100 and 105. Such data are, for example, customer data. In the same way, other data are also transmitted to each of the applications 100 and 105 (reference 115). This data may in particular be data relating to contracts offered to customers. Also, as illustrated by the arrow 120, it may be necessary to copy data generated by the customer management application 100 into the billing application 105. These data are, for example, customer references. The use of dashed arrows here indicates manual operations.
Pour éviter une ressaisie ou une double saisie des données entre ces applications, il est donc nécessaire de prévoir une interface entre ces applications.To avoid re-keying or double data entry between these applications, it is therefore necessary to provide an interface between these applications.
Des solutions simples pour interfacer un nombre limité d'applications hétérogènes consistent à développer un système tiers qui transmet les données, les règles et/ou les commandes aux applications hétérogènes dans leur format particulier. La figure 1 b illustre un tel exemple. Selon cet exemple, le système informatique 125 est utilisée pour saisir toutes les données (référence 130) qui sont converties dans le format spécifique aux applications 100' et 105' de gestion de la relation client et de facturation, respectivement, afin d'être automatiquement transmises à celles-ci (référence 135). Ainsi, les données ne sont saisies qu'une seule fois. Cependant, de telles solutions sont spécifiques aux applications hétérogènes mises en œuvre. Par conséquent, elles sont difficilement adaptables à d'autres situations similaires. De plus, la mise à jour de l'une des applications hétérogènes requiert généralement la mise à jour de l'application tierce.Simple solutions for interfacing a limited number of heterogeneous applications is to develop a third-party system that transmits data, rules, and / or commands to heterogeneous applications in their particular format. Figure 1b illustrates such an example. According to this example, the computer system 125 is used to enter all the data (reference 130) which is converted into the format specific to the customer relationship management and billing applications 100 'and 105', respectively, so as to be automatically transmitted to them (reference 135). Thus, the data are entered only once. However, such solutions are specific to the heterogeneous applications implemented. Consequently, they are difficult to adapt to other similar situations. In addition, the update of one of the Heterogeneous applications usually require updating the third-party application.
Selon une autre solution, une couche intermédiaire, aussi appelée intergiciel ou middleware en terminologie anglo-saxonne, est utilisée. Une telle couche a essentiellement pour objet de convertir le format des données pour permettre leur échange et de gérer les appels des fonctions de ces applications.According to another solution, an intermediate layer, also called middleware or middleware in English terminology, is used. The purpose of such a layer is essentially to convert the format of the data to allow their exchange and to manage the calls of the functions of these applications.
Sur cette base, des solutions plus évoluées peuvent être développées pour modéliser les processus mis en œuvre et les échanges de données entre les applications. De telles solutions sont notamment les EAI (sigle d'Enterprise Application Intégration en terminologie anglo-saxonne) et ESB (sigle d'Enterprise Service Bus en terminologie anglo-saxonne).On this basis, more advanced solutions can be developed to model the processes implemented and the data exchanges between the applications. Such solutions include EAI (acronym for Enterprise Application Integration in English terminology) and ESB (acronym for Enterprise Service Bus in English terminology).
Les EAI sont des architectures permettant à des applications hétérogènes de collaborer dans le cadre de l'intégration métier. De façon générale, un EAI comprend des connecteurs utilisés comme interfaces avec les applications, des modules de mise en correspondance pour transformer les données spécifiques reçues en données normalisées et réciproquement, ainsi que des modules d'échange pour acheminer les données entre les applications.EAIs are architectures that allow heterogeneous applications to collaborate as part of business integration. In general, an EAI includes connectors used as interfaces with the applications, mapping modules for transforming the received specific data into standardized data and vice versa, and exchange modules for routing the data between the applications.
La figure 1 c illustre un exemple simplifié de la mise en œuvre d'une plateforme EAI 140 permettant de relier une application 100" de gestion de la relation client et une application 105" de facturation. Des données de l'application 100" sont transmises (référence 145) à la plateforme EAI 140 sous forme de messages. Plus précisément, les données sont généralement transmises à un module 150 ayant pour fonction de vérifier le format du message, en fonction d'un schéma prédéterminé, et d'extraire les données. Les données sont ensuite redirigées dans un premier module de conversion 155 pour être organisées selon une structure propre à l'EAI (référence 160), appelée schéma pivot, permettant un traitement des données indépendant des applications 100" et 105". Les données conformes au schéma pivot sont alors transmises à un second module de conversion 165 pour être réorganisées selon la structure requise par l'application 105". L'étape de conversion peut également comprendre une étape d'enrichissement. Cette dernière est réalisée à partir de données ou de règles de transformation mémorisées dans l'EAI, par exemple dans la base de données 170. A titre d'illustration, lorsque les données relatives à un client sont transmises de l'application 100" à l'application 105", il est généralement nécessaire de convertir les données en fonctions de paramètres spécifiques à l'application 105", notamment de paramètres liés à la qualité des clients (par exemple, la qualité du client, particulier ou professionnel, peut avoir une influence sur les contrats qui lui sont proposés et sur la facturation.). Enfin, avant d'être transmises sous forme de message (référence 180), les données sont formatées dans le module 175 selon un format prédéterminé, lié à l'application 105", défini par un schéma.FIG. 1c illustrates a simplified example of the implementation of an EAI platform 140 making it possible to link a client relationship management application 100 and a billing application 105. Data of the application 100 "is transmitted (reference 145) to the platform EAI 140 in the form of messages, more specifically, the data is generally transmitted to a module 150 whose function is to check the message format, according to the a predetermined schema, and extracting the data, the data is then redirected in a first conversion module 155 to be organized according to a structure specific to the EAI (reference 160), called a pivot scheme, allowing a data processing independent of the 100 "and 105" applications The data in accordance with the pivot scheme is then transmitted to a second conversion module 165 to be reorganized according to the structure required by the application 105 ". The conversion step can also understand an enrichment step. The latter is made from data or transformation rules stored in the EAI, for example in the database 170. By way of illustration, when the data relating to a client are transmitted from the application 100 "to the application 105 ", it is generally necessary to convert the data into application-specific parameters functions 105", including parameters related to the quality of the customers (for example, the quality of the customer, individual or professional, may have it has an influence on the contracts proposed to it and on billing.) Finally, before being transmitted as a message (reference 180), the data is formatted in the module 175 according to a predetermined format, linked to the application 105 ", defined by a diagram.
Bien qu'une telle solution présente de nombreux avantages, notamment en termes d'intégration de nombreuses applications, elle est néanmoins complexe et a un coût de mise en œuvre souvent très important lié, en particulier, aux besoins de connaissances métiers et de connaissances des applications. De plus, en raison de l'intégration de la combinaison des connaissances métiers et des connaissances des applications hétérogènes, une solution EAI développée pour un contexte particulier est difficilement portable dans un autre contexte. Les ESB, reprenant la philosophie des EAI, sont orientés servicesAlthough such a solution has many advantages, particularly in terms of integration of many applications, it is nevertheless complex and has a cost of implementation which is often very important, particularly related to the needs of business knowledge and knowledge of applications. Moreover, because of the integration of the combination of business knowledge and knowledge of heterogeneous applications, an EAI solution developed for a particular context is difficult to port in another context. BSE, following the philosophy of the EAI, are service-oriented
(leur architecture est dite SOA, sigle de Service Orientée! Architecture en terminologie anglo-saxonne). Ils sont basés sur les services web et l'échange de messages. Si ces solutions sont plus facilement généralisables, elles sont également complexes à mettre en œuvre. II existe donc un besoin pour des solutions simples, faciles à mettre en œuvre, dont le coût de développement est limité et pouvant être réutilisées pour interfacer un nombre limité d'applications hétérogènes, notamment dans le domaine de la gestion des contrats de téléphonie, fixe ou mobile, et de communication par réseau de type Internet. L'invention permet de résoudre au moins un des problèmes exposés précédemment. L'invention a ainsi pour objet un procédé d'ordinateur pour l'intégration d'applications hétérogènes dans un système comprenant au moins deux applications hétérogènes, ce procédé comprenant les étapes suivantes,(Their architecture is called SOA, acronym for Oriented Service! Architecture in English terminology). They are based on web services and message exchange. While these solutions are easier to generalize, they are also complex to implement. There is therefore a need for simple solutions, easy to implement, whose development cost is limited and can be reused to interface a limited number of heterogeneous applications, particularly in the field of contract management telephony, fixed or mobile, and communication network type Internet. The invention solves at least one of the problems discussed above. The invention thus relates to a computer method for integrating heterogeneous applications in a system comprising at least two heterogeneous applications, this method comprising the following steps,
- réception d'au moins une première donnée d'une desdites au moins deux applications hétérogènes selon un format spécifique à ladite une desdites au moins deux applications hétérogènes ;receiving at least a first datum of one of said at least two heterogeneous applications in a format specific to said one of said at least two heterogeneous applications;
- conversion de la dite au moins une donnée reçue selon un format de donnée prédéterminé distinct des formats de données utilisés par lesdites au moins deux applications hétérogènes ; - réception d'au moins une seconde donnée de l'autre desdites au moins deux applications hétérogènes ;converting said at least one data item received according to a predetermined data format distinct from the data formats used by said at least two heterogeneous applications; receiving at least one second data item from the other of said at least two heterogeneous applications;
- création d'un objet comprenant ladite au moins une première donnée reçue convertie dans ledit format de donnée prédéterminé, ladite création étant réalisée selon ladite au moins une seconde donnée reçue, ledit objet pouvant être traité directement par ladite autre desdites au moins deux applications hétérogènes ; et,creation of an object comprising said at least one first piece of data received converted into said predetermined data format, said creation being performed according to said at least one second piece of data received, said item being able to be processed directly by said other of said at least two heterogeneous applications ; and,
- transmission dudit objet créé à ladite autre desdites au moins deux applications hétérogènes.transmitting said object created to said other of said at least two heterogeneous applications.
Le procédé selon l'invention permet ainsi l'échange de données entre applications hétérogènes sans nécessiter de règles spécifiques de traitement de données liées à l'une des applications. Le procédé selon l'invention s'adapte donc à l'évolution de ces applications et des données traitées. En outre, il peut être facilement adapté à différentes applications hétérogènes. Les données reçues par l'une des applications hétérogènes peuvent être traitées directement, de façon standard.The method according to the invention thus allows the exchange of data between heterogeneous applications without requiring specific data processing rules related to one of the applications. The method according to the invention therefore adapts to the evolution of these applications and processed data. In addition, it can be easily adapted to different heterogeneous applications. The data received by one of the heterogeneous applications can be processed directly, in a standard way.
De façon avantageuse, le procédé comprend en outre une étape de vérification d'un contexte basé sur la comparaison de ladite au moins une première donnée reçue avec au moins une autre donnée reçue de ladite autre desdites au moins deux applications hétérogènes, distincte de ladite au moins une seconde donnée. Le procédé selon l'invention permet ainsi d'effectuer des vérifications avant de transmettre des données à une application, cette vérification étant basée sur des données propres à l'application devant les recevoir.Advantageously, the method further comprises a step of checking a context based on the comparison of said at least one first data received with at least one other data received from said other of said at least two heterogeneous applications, distinct from said less a second given. The method according to the invention thus makes it possible to carry out verifications before transmitting data to an application, this verification being based on data specific to the application to receive them.
Selon un mode de réalisation particulier ledit format prédéterminé à une structure récursive de telle sorte que le procédé est adapté à traiter des données d'applications hétérogènes lorsque la structure de ces données évolue. Pour traiter de telles structures récursives, sans restriction liée à celles- ci, le procédé comprend, de préférence, au moins une itération.According to a particular embodiment said predetermined format to a recursive structure so that the method is adapted to handle heterogeneous application data when the structure of these data changes. To process such recursive structures, without restriction related thereto, the method preferably comprises at least one iteration.
Toujours selon un mode de réalisation particulier, ladite étape de création dudit objet comprenant ladite au moins une première donnée reçue convertie dans ledit format de donnée prédéterminé, ladite création étant réalisée selon ladite au moins une seconde donnée reçue, comprend une étape d'insertion de ladite au moins une seconde donnée dans ledit objet.Still according to a particular embodiment, said step of creating said object comprising said at least one first piece of data received converted into said predetermined data format, said creation being performed according to said at least one second piece of data received, comprises a step of inserting said at least one second data in said object.
Toujours selon un mode de réalisation particulier, le procédé est accessible à ladite une desdites au moins deux applications hétérogènes sous forme de services web. Le procédé peut ainsi être intégré dans un environnement standard et y être facilement accessible.Still according to a particular embodiment, the method is accessible to said one of said at least two heterogeneous applications in the form of web services. The method can thus be integrated into a standard environment and be easily accessible.
Le procédé peut également accéder à ladite autre desdites au moins deux applications hétérogènes par une interface spécifique de ladite autre desdites au moins deux applications hétérogènes pour transmettre des données reçues et traitées conformément à l'invention lors de la sollicitation du procédé.The method may also access said other of said at least two heterogeneous applications by a specific interface of said other of said at least two heterogeneous applications for transmitting data received and processed in accordance with the invention during the solicitation of the method.
Toujours selon un mode de réalisation particulier, ladite une desdites au moins deux applications hétérogènes est une application de gestion de la relation client, l'autre desdites au moins deux applications hétérogènes étant une application de facturation et/ou d'activation de services.Still according to a particular embodiment, said one of said at least two heterogeneous applications is a customer relationship management application, the other of said at least two heterogeneous applications being a service billing and / or activation application.
L'invention a également pour objet un programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé décrit précédemment lorsque ledit programme est exécuté sur un ordinateur ainsi qu'un dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes de ce procédé.The invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method described above when said program is executed on a computer and a device comprising means adapted to the implementation of each step of this process.
Les avantages procurés par ce programme d'ordinateur et ce dispositif sont similaires à ceux évoqués précédemment. D'autres avantages, buts et caractéristiques de la présente invention ressortent de la description détaillée qui suit, faite à titre d'exemple non limitatif, au regard des dessins annexés dans lesquels :The benefits provided by this computer program and device are similar to those discussed above. Other advantages, aims and features of the present invention will emerge from the detailed description which follows, given by way of non-limiting example, with reference to the accompanying drawings in which:
- la figure 1 , comprenant les figures 1a, 1 b et 1 c, représente schématiquement des solutions de l'art antérieur pour permettre l'échange de données entre des applications hétérogènes ;FIG. 1, comprising FIGS. 1a, 1b and 1c, schematically represents solutions of the prior art for enabling the exchange of data between heterogeneous applications;
- la figure 2 illustre schématiquement un exemple de structure générique du format pivot utilisé dans une couche d'intégration conforme à l'invention ; - la figure 3 représente le transfert d'informations, d'un point de vue fonctionnel, entre une application de gestion de la relation client et une application de facturation, conformément à l'invention ;FIG. 2 schematically illustrates an exemplary generic structure of the pivot format used in an integration layer according to the invention; - Figure 3 shows the transfer of information, from a functional point of view, between a customer relationship management application and a billing application, according to the invention;
- la figure 4 illustre un exemple d'algorithme mis en œuvre dans la couche d'intégration d'applications hétérogènes pour effectuer le transfert d'informations illustré sur la figure 3 ;FIG. 4 illustrates an example of an algorithm implemented in the heterogeneous application integration layer to carry out the information transfer illustrated in FIG. 3;
- la figure 5, comprenant les figures 5a et 5b, illustre plus précisément un exemple de mise en œuvre des fonctions de validation de contexte et de restructuration illustrées sur la figure 4 ;FIG. 5, comprising FIGS. 5a and 5b, illustrates more precisely an example of implementation of the context validation and restructuring functions illustrated in FIG. 4;
- la figure 6 illustre un exemple d'architecture matérielle adaptée à mettre en œuvre l'invention, notamment les algorithmes représentés sur les figures 4 et 5.FIG. 6 illustrates an exemplary hardware architecture adapted to implement the invention, in particular the algorithms shown in FIGS. 4 and 5.
L'invention vise l'échange d'informations entre des applications hétérogènes. Elle a notamment pour objet d'établir une correspondance entre les données manipulées, de façon fiable et robuste, d'introduire des données nécessaires et non fournies en entrée et de permettre d'effectuer des transactions entre ces applications. Bien qu'elle puisse être mise en œuvre entre de nombreuses applications, il est ici considéré, à des fins d'illustration, qu'elle est mise en œuvre entre une application de gestion de la relation client et une application de facturation. Une application de gestion de la relation client a pour objet, en particulier, de cibler les clients afin de mieux les comprendre pour adapter et personnaliser les produits et/ou les services qui leur sont proposés et individualiser les relations. Une telle application permet donc de traiter toutes les informations relatives aux clients telles que son identité, son profil d'utilisateur et de consommateur de produits et/ou de services sous forme d'une base de connaissance sur la clientèle. Le profil comprend par exemple le moyen de paiement utilisé et les besoins du client.The invention aims to exchange information between heterogeneous applications. One of its purposes is to establish a correspondence between the data manipulated, reliably and robustly, to introduce necessary data and not provided input and to allow transactions to be made between these applications. Although it can be implemented between many applications, it is here considered, for purposes of illustration, that it is implemented between a customer relationship management application and a billing application. A customer relationship management application aims, in particular, to target customers in order to better understand them in order to adapt and personalize the products and / or services offered to them and individualize relationships. Such an application therefore makes it possible to process all the information relating to the customers such as its identity, its user profile and the consumer profile of products and / or services in the form of a customer knowledge base. The profile includes, for example, the means of payment used and the needs of the customer.
Par ailleurs, une application de facturation doit gérer certaines informations relatives aux clients pour permettre de les identifier, de connaître les termes de leurs contrats ainsi que leur consommation afin d'établir une facture. Ainsi, comme indiqué précédemment, certaines données sont communes aux applications de gestion de la relation client et de facturation. En outre, certaines données utilisées par l'une des applications dépendent de données gérer par l'autre application. En d'autres termes, le module d'intégration se charge de transformer les notions CRM telles que des informations relatives aux contrats et aux produits proposés en notions de facturation telles que des informations de souscription, services et charges de valorisation.In addition, a billing application must manage certain customer information to enable them to be identified, to know the terms of their contracts as well as their consumption in order to establish an invoice. Thus, as noted above, some data is common to customer relationship management and billing applications. In addition, some data used by one of the applications depends on data managed by the other application. In other words, the integration module is responsible for transforming CRM concepts such as information on contracts and products offered in terms of invoicing such as subscription information, services and valuation charges.
Selon un mode de réalisation particulier, l'invention est mise en œuvre sous la forme d'une module d'intégration, appelée intégration layer en terminologie anglo-saxonne. Elle peut être mise en œuvre de façon purement logicielle ou mixte, logicielle et matérielle, par exemple sur un serveur dédié.According to a particular embodiment, the invention is implemented in the form of an integration module, called integration layer in English terminology. It can be implemented in a purely software or mixed, software and hardware, for example on a dedicated server.
Toujours selon un mode de réalisation particulier, le module d'intégration est développé dans un langage de type ouvert, par exemple en langage Java conforme aux spécifications J2EE (Java et J2EE sont des marques). A titre d'illustration, le module d'intégration est ici basé sur le serveur d'applications JonAS (sigle de Java OpeN Application Server en terminologie anglo-saxonne).Still according to a particular embodiment, the integration module is developed in an open type language, for example in Java language conforming to J2EE specifications (Java and J2EE are trademarks). As an illustration, the integration module is here based on the application server JonAS (acronym for Java OpeN Application Server in English terminology).
Le module d'intégration peut être décomposé en couches, chaque couche formant une interface avec une des applications hétérogènes à intégrer. Ainsi, par exemple, une couche peut avoir pour objet de recevoir les données d'une première application et de les transformer dans un format générique tandis qu'une second couche reçoit des données d'une seconde application, transforme les données mémorisées sous forme générique dans le format requis par la seconde application en les adaptant selon des données reçues de la seconde application et les transmet à cette dernière.The integration module can be decomposed into layers, each layer forming an interface with one of the heterogeneous applications to be integrated. Thus, for example, a layer may be intended to receive data from a first application and transform them into a generic format while a second layer receives data from a second application, transforms the stored data in generic form into the format required by the second application by adapting them according to data received from the second application and transmits it to the latter.
De façon avantageuse, plusieurs formats génériques, aussi appelés formats pivot, sont définis dans le module d'intégration. Cependant, le nombre de formats pivot est, de préférence, limité. A titre d'illustration, le module d'intégration peut utiliser un format pivot pour décrire les comptes et un format pivot pour décrire les contrats. Les formats pivot sont décrits, par exemple, à l'aide du langage XML (sigle d'eXtensible Markup Language en terminologie anglo-saxonne).Advantageously, several generic formats, also called pivot formats, are defined in the integration module. However, the number of pivot formats is preferably limited. As an illustration, the integration module can use a pivot format to describe the accounts and a pivot format to describe the contracts. The pivot formats are described, for example, using the XML language (acronym for eXtensible Markup Language in English terminology).
La figure 2 illustre schématiquement un exemple de format générique pouvant être utilisé dans le module d'intégration pour gérer des données relatives aux contrats auxquels peut souscrire un client. La conversion selon le format pivot est une étape intermédiaire de transport des données. Ce format est ici basé sur un modèle de données décrivant un compte de facturation, un client, un contrat, une demande de génération de facture, une demande de consommation sur un compte, une balance d'un compte et une activation d'un service proposé sur un réseau de communication.Figure 2 schematically illustrates an example of a generic format that can be used in the integration module to manage contract data to which a customer can subscribe. Pivot conversion is an intermediate step of data transport. This format is based on a data model describing a billing account, a customer, a contract, an invoice generation request, a consumption request on an account, a balance of an account and a service activation. proposed on a communication network.
Afin que le module d'intégration soit indépendant de l'évolution des offres commerciales gérées par les systèmes de facturation et de gestion de la relation client, le format pivot est, de préférence, défini de façon récursive.In order for the integration module to be independent of the evolution of the commercial offers managed by the billing and customer relationship management systems, the pivot format is preferably defined recursively.
Comme illustré, la structure du format pivot 200 est hiérarchique, elle comprend ici des références 205 et 210 à une commande et à des paramètres, respectivement. La commande est, par exemple, une commande de création d'un compte de facturation client ou une commande de modification d'un tel compte tandis que les paramètres peuvent notamment comprendre un identifiant client.As illustrated, the structure of the pivot format 200 is hierarchical, it here includes references 205 and 210 to a command and parameters, respectively. The order is, for example, a command to create a customer billing account or a change order for such an account while the parameters may include a particular customer identifier.
La structure comprend en outre des références 215 et 220 à une offre principale et aux paramètres associés, respectivement. Une offre principale est, à titre d'illustration, un abonnement de téléphonie mobile, un paramètre associé pouvant être une référence à un forfait. Des offres ou des services annexes peuvent être associés, de façon récursive, à l'offre principale. Ainsi, la structure du format pivot comprend ici une référence 225 à une offre annexe, par exemple un abonnement de téléphonie fixe, une référence 230 à des charges de valorisation à laquelle est associé une référence 235 visant les paramètres relatifs à ces charges et une référence 245 à des services annexes de l'offre principale, par exemple des services de type SMS (sigle de Short Message Service en terminologie anglo- saxonne), à laquelle est associé la référence 250 visant les paramètres relatifs à ces services. La référence 240, liée à la référence 230 des charges de valorisation, a, par exemple, pour objet de déterminer le taux de facturation selon des critères propres au client et à son abonnement.The structure further includes references 215 and 220 to a main offer and associated parameters, respectively. A main offer is, as an illustration, a mobile phone subscription, an associated parameter that can be a reference to a package. Tenders or ancillary services may be associated, recursively, with the main offer. Thus, the structure of the pivot format here comprises a reference 225 to an ancillary offer, for example a fixed telephony subscription, a reference 230 to valuation charges to which is associated a reference 235 for the parameters relating to these charges and a reference 245 services ancillary to the main offer, for example SMS type services (short message service acronym in English terminology), which is associated with the reference 250 for the parameters relating to these services. The reference 240, related to the reference 230 of valuation charges, is, for example, to determine the billing rate according to criteria specific to the customer and his subscription.
Il convient de remarquer ici que d'autres offres pourraient être associées à l'offre principale ou à une offre ou un service annexe, de façon récursive.It should be noted here that other offers could be associated with the main offer or an offer or ancillary service, recursively.
La figure 3 représente le transfert d'informations, d'un point de vue fonctionnel, entre une application de gestion de la relation client et une application de facturation, conformément à l'invention.Figure 3 shows the transfer of information, from a functional point of view, between a customer relationship management application and a billing application, according to the invention.
La référence 300 vise ici la partie applicative de gestion de la relation client, la référence 305 vise le module d'intégration et la référence 310 concerne la partie applicative de facturation.Reference 300 here refers to the client relationship management application part, reference 305 refers to the integration module and reference 310 relates to the billing application part.
Comme illustré, les données traitées selon un format de données 315, propre à l'application de gestion de la relation client, sont converties selon un format générique 320 du module d'intégration. Les données mémorisées selon ce dernier sont alors converties dans un format 330 propre à l'application de facturation. Lors de la conversion des données mémorisées selon le format générique du module d'intégration en données pouvant être traitées par l'application de facturation, des données de celle-ci, mémorisées ici dans la base de données 325, sont utilisées. L'utilisation de données de l'application de facturation pour convertir des données issues de l'application de gestion de la relation client permet d'éviter le codage de règles spécifiques dans le module d'intégration qui est ainsi facilement portable.As illustrated, the data processed according to a data format 315, specific to the customer relationship management application, are converted into a generic format 320 of the integration module. The data stored according to the latter are then converted into a format 330 specific to the billing application. When converting the data stored in the generic format of the integration module into data that can be processed by the billing application, data thereof, stored here in the database 325, are used. The use of billing application data to convert data from the customer relationship management application allows to avoid the coding of specific rules in the integration module which is thus easily portable.
A titre d'illustration, il peut être considéré ici que les données associées au format de données 315 comprennent en particulier des informations relatives à l'identité d'un client et à un type d'abonnement auquel le client souscrit. Ces données sont transmises au module d'intégration avec une commande de création d'un compte de facturation. A la réception de ces données, le module d'intégration constate, à l'aide d'un moteur d'enrichissement du module d'intégration, qu'il manque des informations par rapport au format générique défini. Il demande donc les informations manquantes à l'application de facturation en suivant les règles définies au sein du moteur d'enrichissement. Ces informations sont, par exemple, celles visant à identifier les services de valorisation permettant la facturation selon la qualité du client et son type d'abonnement. A la réception de celles-ci, elles sont combinées avec les informations reçues de l'application de gestion de la relation client. L'ensemble de ces informations, formatées conformément à l'application de facturation, est alors transmis à cette dernière qui peut alors les traiter directement.By way of illustration, it can be considered here that the data associated with the data format 315 include in particular information relating to the identity of a client and to a type of subscription to which the customer subscribes. This data is transmitted to the integration module with a command to create a billing account. Upon receipt of this data, the integration module finds, using an integration module enrichment engine, that it lacks information in relation to the generic format defined. It therefore requests the missing information from the billing application by following the rules defined in the enrichment engine. This information is, for example, that to identify valuation services for billing according to the quality of the customer and its type of subscription. Upon receipt of these, they are combined with the information received from the customer relationship management application. All of this information, formatted according to the billing application, is then transmitted to the latter which can then process them directly.
La modification de données de l'application de gestion de la relation client, impactant l'application de facturation, est traitée de façon similaire. Cependant, dans ce cas, le module d'intégration exécute une étape supplémentaire de comparaison des données reçues de l'application de gestion de la relation client avec les données connues de l'application de facturation et une étape de consolidation de ces données. La figure 4 illustre un exemple d'algorithme mis en œuvre dans la couche d'intégration d'applications hétérogènes pour effectuer le transfert de données illustré sur la figure 3.The data modification of the CRM application, impacting the billing application, is processed in a similar manner. However, in this case, the integration module performs an additional step of comparing the data received from the customer relationship management application with the known data of the billing application and a consolidation step of this data. FIG. 4 illustrates an example of an algorithm implemented in the heterogeneous application integration layer for carrying out the data transfer illustrated in FIG. 3.
Les références 400, 405 et 410 visent ici la partie applicative de gestion de la relation client, le module d'intégration et la partie applicative de facturation, respectivement. Le module d'intégration est ici appelé par l'application de gestion de la relation client, notée CRM, lorsqu'un compte ou un contrat client est créé ou modifié (étape 415).The references 400, 405 and 410 here apply to the client relationship management application part, the integration module and the billing application part, respectively. The integration module is here called by the customer relationship management application, referred to as CRM, when an account or a customer contract is created or modified (step 415).
La fonction d'appel comprend de préférence les données à traiter. Alternativement, à la réception de la commande, le module d'intégration peut adresser une requête à l'application de gestion de la relation client pour obtenir ces données.The calling function preferably includes the data to be processed. Alternatively, upon receipt of the command, the integration module can send a request to the customer relationship management application to obtain these data.
Lorsqu'elles sont reçues, les données à traiter sont converties selon le format pivot décrit précédemment (étape 420). S'il existe plusieurs formats pivot dans le module d'intégration, il est déterminé selon la nature des données reçues. Selon un mode de réalisation particulièrement simple, cette étape de conversion consiste essentiellement en un réarrangement des données, opération connue sous le nom de mapping en terminologie anglo-saxonne.When received, the data to be processed is converted to the pivot format described above (step 420). If there are several pivot formats in the integration module, it is determined according to the nature of the data received. According to a particularly simple embodiment, this conversion step essentially consists of a rearrangement of the data, an operation known under the name of mapping in English terminology.
Un test est alors effectué pour déterminer si l'objet de l'appel est un contrat ou un compte (étape 425).A test is then performed to determine if the subject of the call is a contract or an account (step 425).
S'il s'agit d'un compte, le contexte est tout d'abord validé (étape 430). Cette étape consiste notamment à comparer les données reçues avec des informations relatives à des modèles de compte mémorisées dans l'application de facturation, par exemple dans la base de données 435. Si le contexte n'est pas valide, par exemple si les informations reçues de l'application de gestion de la relation client ne sont pas compatibles avec les modèles de compte de l'application de facturation, une indication est adressée à l'application de gestion de la relation client et l'opération est annulée.If it is an account, the context is first validated (step 430). This step consists in comparing the received data with information relating to account templates stored in the billing application, for example in the database 435. If the context is not valid, for example if the information received customer relationship management application is not compatible with the billing application account templates, an indication is sent to the customer relationship management application and the transaction is canceled.
Les données mémorisées dans le format pivot utilisé, ici de type compte, sont alors converties selon le format utilisé par l'application de facturation (étape 440). Cette étape de conversion est également appelée une étape de restructuration des données. Cette étape de restructuration utilise ici des données mémorisées dans l'application de facturation, dans la base de données 435, notamment des informations relatives à des modèles de compte entreprise ou particulier. Pour effectuer cette étape de restructuration, le module d'intégration s'appuie sur son moteur d'enrichissement. A l'issu de l'étape de restructuration, toutes les données nécessaires à l'exécution de l'opération demandée sont ainsi rassemblées.The data stored in the pivot format used, here account type, are then converted to the format used by the billing application (step 440). This conversion step is also called a data restructuring step. This restructuring step here uses data stored in the billing application, in the database 435, including information relating to company or particular account templates. To perform this restructuring step, the integration module relies on its enrichment engine. At the end of the restructuring step, all the data necessary to perform the requested operation are thus collected.
Les données restructurées sont alors transmises à l'application de facturation sous forme d'objet compte (étape 445) pour permettre à cette application de créer ou modifier un compte selon les instructions et les informations contenues dans cet objet (étape 450).The restructured data is then transmitted to the billing application as an account object (step 445) to allow this application to create or modify an account according to the instructions and information contained therein (step 450).
Si l'objet de l'appel au module d'intégration est un contrat (étape 425), un second test est effectué pour déterminer s'il s'agit d'une demande de création ou de modification (étape 455). S'il s'agit d'une étape de création, le contexte est tout d'abord validé (étape 460) selon des informations relatives aux modèles de compte de facturation, aux listes de produits/services et aux paramètres associés, issues de l'application de facturation, par exemple de la base de données 465. Cette étape de validation consiste notamment à vérifier que les données reçues de l'application de gestion de la relation client sont conformes aux modèles de compte et aux offres gérées par l'application de facturation. A nouveau, si le contexte n'est pas valide, une indication est adressée à l'application de gestion de la relation client et l'opération est annulée.If the object of the integration module call is a contract (step 425), a second test is performed to determine whether it is a creation or modification request (step 455). If it is a creation step, the context is first validated (step 460) according to information relating to billing account templates, product / service lists and associated parameters, resulting from the billing application, for example from the database 465. This validation step consists in particular in verifying that the data received from the customer relationship management application comply with the account templates and offers managed by the application. billing. Again, if the context is not valid, an indication is sent to the customer relationship management application and the operation is canceled.
Les données mémorisées dans le format pivot utilisé, ici de type contrat, sont ensuite restructurées (étape 470). Cette étape de restructuration utilise ici des données mémorisées dans l'application de facturation, dans la base de données 465, notamment des informations relatives aux offres de produits et de services ainsi qu'aux paramètres de valorisation. Ainsi, à l'issu de l'étape de restructuration, toutes les données nécessaires à l'exécution de l'opération demandée sont rassemblées.The data stored in the pivot format used, here contract type, are then restructured (step 470). This restructuring step here uses data stored in the billing application, in the database 465, including information relating to product and service offers as well as valuation parameters. Thus, at the end of the restructuring step, all the data necessary to perform the requested operation are collected.
Les étapes de validation et de restructuration s'appuient sur le moteur d'enrichissement qui associe les types et valeurs des données émises par le CRM à des actions à effectuer. Ces actions vont, entre autres, extraire certaines données de l'application de facturation et permettre la validation des données du CRM ou l'ajout d'informations complétant la demande.The validation and restructuring stages are based on the enrichment engine that associates the types and values of the data sent by the CRM to actions to be performed. These actions will, among other things, extract certain data from the billing application and allow the validation of CRM data or the addition of information completing the request.
Les données restructurées sont alors transmises à l'application de facturation sous forme d'objet contrat (étape 445) pour permettre à cette application de créer un contrat selon les informations contenues dans cet objet (étape 450).The restructured data is then transmitted to the billing application as a contract object (step 445) to enable this application to create a contract according to the information contained in this object (step 450).
Si l'objet de l'appel au module d'intégration est un contrat (étapeIf the object of the call to the integration module is a contract (step
425) et s'il s'agit d'une demande de modification (étape 455), le contexte est tout d'abord validé (étape 475) selon des informations relatives aux offres de produits et de services ainsi qu'aux paramètres de valorisation, issues de l'application de facturation, par exemple de la base de données 465.425) and if it is a request for modification (step 455), the context is first validated (step 475) according to information relating to the product and service offerings as well as to the valuation parameters from the billing application, for example from the database 465.
Les données mémorisées dans le format pivot utilisé, ici de type contrat, sont ensuite restructurées (étape 480). Cette étape de restructuration utilise à nouveau des données mémorisées dans l'application de facturation, dans la base de données 465, notamment des informations relatives aux offres de produits et de services ainsi qu'aux paramètres de valorisation. Comme illustré, les étapes 475 et 480 sont répétées plusieurs fois, selon chacune des modifications à effectuer. A nouveau, les étapes de validation et de restructuration s'appuient sur le moteur d'enrichissement.The data stored in the pivot format used, here contract type, are then restructured (step 480). This restructuring step again uses data stored in the billing application in the database 465, including information on product and service offerings and valuation parameters. As illustrated, steps 475 and 480 are repeated several times, according to each of the modifications to be made. Once again, the validation and restructuring steps are based on the enrichment engine.
Les données restructurées sont alors transmises à l'application de facturation sous forme d'objet contrat (étape 445) pour permettre à cette application de créer un contrat selon les informations contenues dans cet objet (étape 450).The restructured data is then transmitted to the billing application as a contract object (step 445) to allow this application to create a contract according to the information contained in this object (step 450).
La constitution et la maintenance d'un compte de facturation sont ainsi automatisées. De même, l'association d'un élément de valorisation, qui permet la facturation, contenant par exemple un numéro de téléphone, à un produit souscrit par le client, par exemple une ligne téléphonique mobile, est automatique, tout comme la validation et la constitution des contrats souscrits ou modifiés des clients.The constitution and maintenance of a billing account are thus automated. Similarly, the combination of a valuation element, which allows billing, for example containing a telephone number, to a product subscribed by the customer, for example a mobile telephone line, is automatic, as is the validation and the formation of subscribed or modified customer contracts.
De plus, le module d'intégration est suffisamment générique pour s'adopter à la plupart des types d'offres, présents et à venir, notamment les offres combinant la téléphonie fixe et mobile, un accès Internet et la réception de la télévision via le réseau, afin d'être en mesure de gérer les offres du système de facturation qui peuvent évoluer régulièrement. En outre, le module d'intégration ne contient pas d'éléments de configuration spécifiques aux offres, types de contrats ou clients que peut avoir un opérateur. Ainsi, le module d'intégration est capable de s'adapter aux environnements des opérateurs en allant chercher les informations spécifiques dans le système de facturation lui-même, à l'aide de son moteur d'enrichissement s'appuyant sur la structure des formats pivots.In addition, the integration module is sufficiently generic to accommodate most types of offers, present and future, including offers combining fixed and mobile telephony, Internet access and television reception via the Internet. network, in order to be able to manage billing system offers that can evolve regularly. In addition, the integration module does not contain configuration elements specific to the offers, types of contracts or customers that an operator may have. Thus, the integration module is able to adapt to operator environments by searching for specific information in the billing system itself, using its enrichment engine based on the format structure. pivots.
Le moteur d'enrichissement comprend une liste de règles de type métier à appliquer lors de la validation et de la restructuration. Alternativement, le moteur d'enrichissement comprend des moyens lui permettant d'accéder à de telles règles. Ces règles sont priorisées afin de permettre, le cas échéant, une exécution séquentielle.The enrichment engine includes a list of business-type rules to apply when validating and restructuring. Alternatively, the enrichment engine includes means enabling it to access such rules. These rules are prioritized to allow, if necessary, a sequential execution.
Chaque règle du moteur d'enrichissement associe une action à un attribut de la structure récursive du format pivot de la demande.Each enhancement engine rule associates an action with an attribute of the recursive structure of the pivot format of the request.
Cet attribut est notamment déterminé par le type de l'élément pointé par cet attribut, par exemple un type commande, service, accès ou paramètre, l'opération demandée sur cet élément, par exemple une création, une modification ou une suppression, la valeur de l'attribut ainsi que le nombre d'itérations dans la structure hiérarchique du format pivot pour l'atteindre.This attribute is determined in particular by the type of the element pointed by this attribute, for example a command, service, access or parameter type, the operation requested on this element, for example a creation, a modification or a deletion, the value attribute as well as the number of iterations in the hierarchical structure of the pivot format to reach it.
Les actions possibles liées à cet élément pointé sont entre autres une extraction d'information dans une application externe, combinée ou non avec une insertion d'un élément dans la structure de la requête finale, une suppression d'information ou une validation de certaines informations.The possible actions linked to this pointed element are, among other things, an extraction of information in an external application, combined or not with an insertion of an element in the structure of the final request, a deletion of information or a validation of certain information. .
Chaque règle et chaque action sont, de préférence, associées à une description des éléments à extraire dans l'application externe, par exemple des éléments de valorisation, de cycle de facturation, de compte ou de squelette de paiement par type de client, offre ou service. Ainsi, le moteur de recherche peut déterminer l'élément de l'application externe traité lors d'une validation ou d'une restructuration.Each rule and each action is preferably associated with a description of the elements to be extracted in the external application, for example valuation elements, billing cycle, account or payment skeleton by type of customer, offer or service. Thus, the search engine can determine the element of the external application processed during a validation or a restructuring.
Les règles implémentées dans le moteur d'enrichissement permettent notamment d'obtenir ici les éléments suivants,The rules implemented in the enrichment engine make it possible to obtain here the following elements,
- les éléments permettant de définir quel est le service contenant la charge qui sera valorisée et son type ; - les éléments permettant de connaître les services et les paramètres des services valides au moment de la souscription en consultant les informations historiques des offres et services ; et,- elements to define which service contains the load that will be valued and its type; - the elements allowing to know the services and the parameters of the services valid at the moment of the subscription by consulting the historical information of the offers and services; and,
- les éléments de type modèle de compte de facturation permettant de définir les attributs de facturation, en particulier la fréquence du cycle de facturation et les informations de délai de paiement, selon le type de client.- Billing account template elements to define billing attributes, especially billing cycle frequency and payment time information, depending on the type of customer.
La figure 5, comprenant les figures 5a et 5b, illustre plus précisément un exemple de mise en œuvre des fonctions de validation du contexte et de restructuration, illustrées sur la figure 4, exécutées lorsque le module d'intégration reçoit une commande de création d'un contrat.FIG. 5, comprising FIGS. 5a and 5b, illustrates more precisely an example of implementation of the context validation and restructuring functions, illustrated in FIG. 4, executed when the integration module receives a creation command from contract.
Au début de chaque opération de validation et de restructuration, le moteur d'enrichissement se charge de répertorier, ou d'identifier, toutes les règles de type métiers à appliquer en fonction du type de format pivot et du type d'opération (étape 500). Comme indiqué précédemment, il s'agit, dans l'exemple illustré sur la figure 5, d'une création de contrat. Les règles sont appliquées les unes à la suite des autres selon un ordre prédéterminé.At the beginning of each commit and restructure operation, the enrichment engine is responsible for listing, or identifying, all the business rules to be applied based on the pivot format type and the transaction type (step 500 ). As indicated above, this is, in the example illustrated in FIG. 5, a creation of a contract. The rules are applied one after the other in a predetermined order.
A titre d'illustration, les règles associées au format pivot de type contrat et à l'opération de création peuvent être des règles de validation du compte de facturation, de souscription et de services ainsi que des règles de valorisation.By way of illustration, the rules associated with the contract type pivot format and the creation operation may be validation rules of the billing, subscription and service account as well as valuation rules.
Lorsqu'une règle n'est pas validée, une indication d'erreur est transmise à l'application de gestion de la relation client et l'opération est suspendue.When a rule is not validated, an error indication is sent to the CRM application and the operation is suspended.
Pour des opérations de validation d'un contexte, le module d'intégration compare les données reçues de l'application de gestion de la relation client avec des informations mémorisées dans l'application de facturation, selon les règles définies dans le moteur d'enrichissement (étapeFor context validation operations, the integration module compares the data received from the customer relationship management application with information stored in the billing application, according to the rules defined in the enrichment engine. (step
505). Le module d'intégration construit une requête pour obtenir l'élément renseigné par la règle et transmet une requête à l'application, ici l'application de facturation.505). The integration module constructs a request to obtain the element informed by the rule and sends a request to the application, here the billing application.
Ainsi, lorsque l'application de facturation reçoit une requête visant l'obtention d'informations relatives à un compte de facturation, elle récupère ces informations et les transmets au module d'intégration (étape 510) qui peut alors vérifier le compte de facturation selon les informations reçues de l'application de gestion de la relation client (étape 515).Thus, when the billing application receives a request for information relating to a billing account, it recovers these information and transmits to the integration module (step 510) which can then check the billing account according to the information received from the customer relationship management application (step 515).
Si la règle appliquée n'est pas une règle de validation (étape 505) ou après validation des paramètres du compte de facturation, les informations relatives aux offres et aux services sont accédées.If the applied rule is not a validation rule (step 505) or after validation of the billing account parameters, information about the offers and services are accessed.
Ainsi, lorsque l'application de facturation reçoit une requête visant l'obtention d'offres, de services et/ou des paramètres associés, à la date de la souscription d'un contrat, elle extrait ces informations de ses bases de données et les transmet au module d'intégration (étape 520). Des attributs de l'offre mère (215), des offres filles (225) et/ou des services (245), comme par exemple les codes ou dates de souscription, sont utilisés pour extraire les éléments de référence de l'application de facturation.Thus, when the billing application receives a request to obtain offers, services and / or associated parameters, on the date of the subscription of a contract, it extracts this information from its databases and transmits to the integration module (step 520). Parent offer (215), offer (225) and / or service (245) offerings, such as subscription codes or dates, are used to extract the reference elements from the billing application. .
Si la règle appliquée est une règle de validation de service (étape 525), le module d'intégration, via le moteur d'enrichissement, vérifie les données de la souscription reçues de l'application de gestion de la relation client avec les informations reçues précédemment de l'application de facturation (étape 530). Cette étape est, de préférence, réalisée pour chaque souscription, c'est-à-dire pour la souscription principale et toutes les sous- souscriptions qui en dépendent.If the rule applied is a service validation rule (step 525), the integration module, via the enrichment engine, checks the subscription data received from the customer relationship management application with the information received. previously of the billing application (step 530). This step is preferably performed for each subscription, that is to say for the main subscription and all the subscriptions that depend on it.
De façon similaire, si la règle appliquée est une règle de validation de paramètres de service (étape 535), le module d'intégration vérifie les paramètres des services proposés dans la souscription, reçus de l'application de gestion de la relation client, avec les informations reçues précédemment de l'application de facturation (étape 540).Similarly, if the applied rule is a service parameter validation rule (step 535), the integration module checks the parameters of the services offered in the subscription, received from the customer relationship management application, with the information previously received from the billing application (step 540).
Si les informations relatives au compte de facturation sont erronéesIf billing account information is wrong
(étape 515) ou si les données de la souscription (étape 530) et/ou les paramètres de services reçus ne sont pas conformes à l'offre (étape 540), une indication d'erreur est transmise à l'application de gestion de la relation client et l'opération est suspendue (étapes non représentées).(step 515) or if the subscription data (step 530) and / or the service parameters received are not in accordance with the offer (step 540), an error indication is transmitted to the management application of the customer relationship and the transaction is suspended (steps not shown).
Le moteur d'enrichissement contient, de préférence, des règles concernant les charges de valorisation et leurs types. Lorsque la règle appliquée est une règle de valorisation (étape 545), les informations relatives à la charge de valorisation dans l'offre sont alors recherchées dans les données reçues de l'application de facturation (étape 550) et sont associées aux données de souscription reçues de l'application de gestion de la relation client. Une charge de valorisation d'un type donné est identifiée via une règle du moteur d'enrichissement par son attribut et sa valeur dans le format pivot (230). Lorsque la charge de valorisation est identifiée dans l'offre, l'identifiant de valorisation (240) est affecté à cette charge en fonction de son type.The enrichment engine preferably contains rules concerning the recovery charges and their types. When the rule applied is a valuation rule (step 545), the valuation charge information in the offer is then searched for in the data received from the billing application (step 550) and is associated with the subscription data received from the billing application (step 550) and is associated with the subscription data received from the billing application (step 550). customer relationship management application. A valuation charge of a given type is identified through an Enrichment Engine rule by its attribute and its value in the pivot format (230). When the valuation charge is identified in the bid, the valuation identifier (240) is assigned to that charge based on its type.
Ces informations de valorisation sont alors ajoutées aux données de souscription reçues de l'application de gestion de la relation client (étape 555) pour former l'objet qui permettra à l'application de facturation de créer le contrat correspondant à la souscription.This valuation information is then added to the subscription data received from the customer relationship management application (step 555) to form the object that will allow the billing application to create the contract corresponding to the subscription.
Un test est alors effectué pour déterminer si tous les services correspondant à la souscription en cours de traitement ont été traités (étape 560). Dans la négative, le service suivant est traité (étapes 535 à 555).A test is then performed to determine if all services corresponding to the subscription under treatment have been processed (step 560). If not, the next service is processed (steps 535 to 555).
Si tous les services correspondant à la souscription en cours de traitement ont été traités (étape 560), un autre test est effectué pour déterminer si toutes les souscriptions dépendantes de la souscription principale ont été traitées (étape 565). Dans la négative, la souscription dépendante suivante est traitée (étapes 520 à 560). Enfin, si tous les tous les services correspondant à la souscription en cours de traitement et si toutes les souscriptions dépendantes de la souscription principale ont été traités, un test est effectué pour déterminer si toutes les règles identifiées ont été appliquées. Dans la négative, la règle suivante est appliquée (étapes 505 à 565). II convient de remarquer que selon le type d'opération, par exemple la modification d'un contrat ou la création de compte, les étapes de vérification et d'insertion d'information peuvent être différentes de celles décrites en référence à la figure 5. De même, l'étape d'insertion peut être remplacée ou comprendre une étape de sélection selon laquelle certaines données reçues de l'application de facturation sont utilisées pour sélectionner d'autres données reçues de l'application de facturation ou des données reçues de l'application de gestion de la relation client, afin de former l'objet devant être transmis à l'application de facturation, et réciproquement.If all the services corresponding to the subscription under treatment have been processed (step 560), another test is performed to determine whether all subscriptions dependent on the main subscription have been processed (step 565). If not, the next dependent subscription is processed (steps 520 to 560). Finally, if all the services corresponding to the subscription being processed and all subscriptions dependent on the main subscription have been processed, a test is performed to determine whether all the rules identified have been applied. If not, the following rule is applied (steps 505 to 565). It should be noted that depending on the type of operation, for example the modification of a contract or the creation of an account, the verification and insertion of information steps may be different from those described with reference to FIG. Similarly, the insertion step may be replaced or include a selection step in which some data received from the billing application is used to select other data received from the billing application or data received from the billing application. 'application of customer relationship management, to form the object to be transmitted to the billing application, and vice versa.
Selon un mode de réalisation particulier, le module d'intégration comprend une interface de type services web, couramment appelés web services, permettant à l'application de gestion de la relation client d'accéder directement aux services proposés par ce module. L'accès à ces services peut être conforme au standard http/SOAP (sigle d'HyperText Transfer Protocol et de Simple Object Access Protocol en terminologie anglo-saxonne). A titre d'illustration, les services proposés peuvent être les suivants, - envoi d'une opération de création ou modification des données client sur un format pivot « Client » ;According to a particular embodiment, the integration module comprises a web services type interface, commonly called web services, allowing the customer relationship management application to directly access the services offered by this module. Access to these services may comply with the http / SOAP standard (acronym for HyperText Transfer Protocol and Simple Object Access Protocol in English terminology). By way of illustration, the services proposed may be the following: - sending an operation for creating or modifying the customer data on a pivot format "Customer";
- envoi d'une opération de création ou modification des données compte de facturation sur un format pivot « Compte » ;- sending an operation to create or modify the billing account data on a pivot format "Account";
- envoi d'une opération de création ou modification des données contrat sur un format pivot « Commande » ;- sending an operation to create or modify the contract data on a pivot format "Order";
- envoi d'une opération de demande de devis sur un format pivot « Commande » ;- sending a quotation request operation on a pivot format "Order";
- envoi d'une opération d'activation sur le réseau des services souscrits sur un format pivot « Activation » ; - envoi d'une opération de demande de génération de facture sur un format pivot « Facture » ; et,- sending an activation operation on the network of subscribed services on a pivot format "Activation"; - sending an invoice generation request transaction on a "Invoice" pivot format; and,
- envoi d'une opération de demande de balance sur le compte de facturation sur un format pivot « Balance ».- sending a balance request operation to the billing account on a pivot format "Balance".
Selon un schéma classique de gestion des services, les requêtes reçues de l'application de gestion de la relation client sont mémorisées dans une file d'attente et traitées selon leur ordre d'arrivée. Alternativement, les requêtes peuvent être traitées de façon synchrone.According to a standard service management scheme, the requests received from the customer relationship management application are stored in a queue and processed according to their order of arrival. Alternatively, queries can be processed synchronously.
Toujours selon un mode de réalisation particulier, l'application de facturation est accessible via un API (sigle d'Application Programming Interface en terminologie anglo-saxonne) spécifique.Still according to a particular embodiment, the billing application is accessible via an API (abbreviation of Application Programming Interface in English terminology) specific.
Pour améliorer la disponibilité du module d'intégration, celui-ci peut être doublé, de façon purement logicielle ou de façon logicielle et matérielle, selon un mécanisme de redondance. Ainsi, si le module d'intégration connaît une défaillance, le module redondant peut prendre le relais. La file d'attente des requêtes est avantageusement recopiée du module défaillant vers le module redondant. La défaillance n'est détectable par l'application de gestion de la relation client que s'il y a au moins une requête en cours de traitement dans le module d'intégration. Dans ce cas, l'application détectera une erreur et pourra soumettre à nouveau la requête.To improve the availability of the integration module, it can be doubled, in a purely software or software and hardware, according to a redundancy mechanism. Thus, if the integration module fails, the redundant module can take over. The queuing queue is advantageously copied from the failed module to the redundant module. The failure is detectable by the customer relationship management application only if there is at least one request being processed in the integration module. In this case, the application will detect an error and may resubmit the request.
La figure 6 illustre un exemple d'architecture matérielle adaptée à mettre en œuvre l'invention, notamment les algorithmes représentés sur les figures 4 et 5. Le dispositif 600 comporte ici un bus de communication 605 auquel sont reliés :FIG. 6 illustrates an exemplary hardware architecture adapted to implement the invention, in particular the algorithms shown in FIGS. 4 and 5. The device 600 here comprises a communication bus 605 to which are connected:
- une unité centrale de traitement ou microprocesseur 610 (CPU, sigle de Central Processing Unit en terminologie anglo-saxonne) ;a central processing unit or microprocessor 610 (CPU, acronym for Central Processing Unit in English terminology);
- une mémoire morte 615 (ROM, acronyme de Read OnIy Memory en terminologie anglo-saxonne) pouvant comporter les programmes nécessaires à la mise en œuvre de l'invention ;- A read-only memory 615 (ROM, acronym for Read OnIy Memory in English terminology) may include the programs necessary for the implementation of the invention;
- une mémoire vive ou mémoire cache 620 (RAM, acronyme de Random Access Memory en terminologie anglo-saxonne) comportant des registres adaptés à enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; eta random access memory or cache memory 620 (RAM, acronym for Random Access Memory in English terminology) comprising registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs; and
- une interface de communication 650 adaptée à transmettre et à recevoir des données, notamment vers et depuis des dispositifs sur lesquels sont exécutés les applications hétérogènes.a communication interface 650 adapted to transmit and receive data, in particular to and from devices on which the heterogeneous applications are executed.
Le dispositif 600 dispose également, de préférence, des éléments suivants :The device 600 also preferably has the following elements:
- un écran 625 permettant de visualiser des données et pouvant servir d'interface graphique avec l'utilisateur qui pourra interagir avec les programmes selon l'invention, à l'aide d'un clavier et d'une souris 630 ou d'un autre dispositif de pointage tel qu'un écran tactile ou une télécommande ; - d'un disque dur 635 pouvant comporter les programmes précités et des données traitées ou à traiter selon l'invention ; et - d'un lecteur de cartes mémoires 640 adapté à recevoir une carte mémoire 645 et à y lire ou à y écrire des données traitées ou à traiter selon l'invention.a screen 625 making it possible to display data and which can serve as a graphical interface with the user who can interact with the programs according to the invention, using a keyboard and a mouse 630 or another pointing device such as a touch screen or a remote control; a hard disk 635 that may include the aforementioned programs and data processed or to be processed according to the invention; and a memory card reader 640 adapted to receive a memory card 645 and to read or write to it data processed or to be processed according to the invention.
Le bus de communication permet la communication et l'interopérabilité entre les différents éléments inclus dans le dispositif 600 ou reliés à lui. La représentation du bus n'est pas limitative et, notamment, l'unité centrale est susceptible de communiquer des instructions à tout élément du dispositif 600 directement ou par l'intermédiaire d'un autre élément du dispositif 600. Le code exécutable de chaque programme permettant au dispositif programmable de mettre en œuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur 635 ou en mémoire morte 615.The communication bus allows communication and interoperability between the various elements included in the device 600 or connected to it. The representation of the bus is not limiting and, in particular, the central unit is able to communicate instructions to any element of the device 600 directly or via another element of the device 600. The executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk 635 or in the read-only memory 615.
Selon une variante, la carte mémoire 645 peut contenir des données, notamment une table de correspondance entre les événements détectés et les commandes pouvant être sollicitées, ainsi que le code exécutable des programmes précités qui, une fois lu par le dispositif 600, est stocké dans le disque dur 635.According to one variant, the memory card 645 may contain data, in particular a correspondence table between the detected events and the commands that can be requested, as well as the executable code of the aforementioned programs which, once read by the device 600, is stored in the hard disk 635.
Selon une autre variante, le code exécutable des programmes pourra être reçu, au moins partiellement, par l'intermédiaire de l'interface 650, pour être stocké de façon identique à celle décrite précédemment.According to another variant, the executable code of the programs may be received, at least partially, via the interface 650, to be stored in a manner identical to that described above.
De manière plus générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif 600 avant d'être exécutés.More generally, the program or programs may be loaded into one of the storage means of the device 600 before being executed.
L'unité centrale 610 va commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur 635 ou dans la mémoire morte 615 ou bien dans les autres éléments de stockage précités.The central unit 610 will control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions which are stored in the hard disk 635 or in the read-only memory 615 or else in the other elements of aforementioned storage.
Lors de la mise sous tension, le ou les programmes qui sont stockés dans une mémoire non volatile, par exemple le disque dur 635 ou la mémoire morte 615, sont transférés dans la mémoire vive 620 qui contient alors le code exécutable du ou des programmes selon l'invention, ainsi que des registres pour mémoriser les variables et paramètres nécessaires à la mise en œuvre de l'invention.When powering on, the program or programs that are stored in a non-volatile memory, for example the hard disk 635 or the read-only memory 615, are transferred into the random access memory 620 which then contains the executable code of the program or programs according to the invention, as well as registers for memorize the variables and parameters necessary for the implementation of the invention.
Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente. Naturally, to meet specific needs, a person skilled in the field of the invention may apply modifications in the foregoing description.

Claims

REVENDICATIONS
1. Procédé d'ordinateur pour l'intégration d'applications hétérogènes dans un système comprenant au moins deux applications hétérogènes, ce procédé étant caractérisé en ce qu'il comprend les étapes suivantes,A computer method for integrating heterogeneous applications in a system comprising at least two heterogeneous applications, said method being characterized in that it comprises the following steps,
- réception d'au moins une première donnée d'une desdites au moins deux applications hétérogènes selon un format spécifique à ladite une desdites au moins deux applications hétérogènes ;receiving at least a first datum of one of said at least two heterogeneous applications in a format specific to said one of said at least two heterogeneous applications;
- conversion (420) de la dite au moins une donnée reçue selon un format de donnée prédéterminé distinct des formats de données utilisés par lesdites au moins deux applications hétérogènes ;converting (420) said at least one data item received according to a predetermined data format distinct from the data formats used by said at least two heterogeneous applications;
- réception d'au moins une seconde donnée de l'autre desdites au moins deux applications hétérogènes ;receiving at least one second data item from the other of said at least two heterogeneous applications;
- création (440, 470, 480) d'un objet comprenant ladite au moins une première donnée reçue convertie dans ledit format de donnée prédéterminé, ladite création étant réalisée selon ladite au moins une seconde donnée reçue, ledit objet pouvant être traité directement par ladite autre desdites au moins deux applications hétérogènes ; et,creation (440, 470, 480) of an object comprising said at least one first received data item converted into said predetermined data format, said creation being performed according to said at least one second piece of data received, said item being able to be processed directly by said other of said at least two heterogeneous applications; and,
- transmission (445) dudit objet créé à ladite autre desdites au moins deux applications hétérogènes.transmitting (445) said created object to said other of said at least two heterogeneous applications.
2. Procédé selon la revendication 1 comprenant en outre une étape de vérification (430, 460, 475) d'un contexte basé sur la comparaison de ladite au moins une première donnée reçue avec au moins une autre donnée reçue de ladite autre desdites au moins deux applications hétérogènes, distincte de ladite au moins une seconde donnée.The method of claim 1 further comprising a step of verifying (430, 460, 475) a context based on comparing said at least one first received data with at least one other data received from said other of said at least one received data. two heterogeneous applications, distinct from said at least one second datum.
3. Procédé selon la revendication 1 ou la revendication 2 caractérisé en ce que ledit format prédéterminé à une structure récursive. 3. Method according to claim 1 or claim 2 characterized in that said predetermined format to a recursive structure.
4. Procédé selon la revendication 3 selon lequel ladite étape de création comprend au moins une itération liée à la récursivité dudit format prédéterminé utilisé pour la conversion de ladite au moins une première donnée.4. The method of claim 3 wherein said creating step comprises at least one iteration related to the recursivity of said format. predetermined for use in converting said at least one first datum.
5. Procédé selon l'une quelconque des revendications précédentes selon lequel ladite étape de création dudit objet comprenant ladite au moins une première donnée reçue convertie dans ledit format de donnée prédéterminé, ladite création étant réalisée selon ladite au moins une seconde donnée reçue, comprend une étape d'insertion de ladite au moins une seconde donnée dans ledit objet.5. Method according to any one of the preceding claims, wherein said step of creating said object comprising said at least one first piece of data received converted into said predetermined data format, said creation being performed according to said at least one second piece of data received, comprises a step of inserting said at least one second datum into said object.
6. Procédé selon l'une quelconque des revendications précédentes selon lequel le procédé est accessible à ladite une desdites au moins deux applications hétérogènes sous forme de services web.6. Method according to any one of the preceding claims wherein the method is accessible to said one of said at least two heterogeneous applications in the form of web services.
7. Procédé selon l'une quelconque des revendications précédentes selon lequel ledit procédé accède à ladite autre desdites au moins deux applications hétérogènes par une interface spécifique de ladite autre desdites au moins deux applications hétérogènes.7. Method according to any one of the preceding claims, wherein said method accesses said other of said at least two heterogeneous applications by a specific interface of said other of said at least two heterogeneous applications.
8. Procédé selon l'une quelconque des revendications précédentes selon lequel ladite une desdites au moins deux applications hétérogènes est une application de gestion de la relation client, l'autre desdites au moins deux applications hétérogènes étant une application de facturation et/ou d'activation de services.The method according to any one of the preceding claims wherein said one of said at least two heterogeneous applications is a customer relationship management application, the other of said at least two heterogeneous applications being a billing application and / or activation of services.
9. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications précédentes lorsque ledit programme est exécuté sur un ordinateur. 9. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of the preceding claims when said program is executed on a computer.
10. Dispositif comprenant des moyens adaptés à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 8. 10. Device comprising means adapted to the implementation of each of the steps of the method according to any one of claims 1 to 8.
PCT/FR2010/051208 2009-06-24 2010-06-17 Method and device for integrating heterogeneous applications WO2010149896A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0954307 2009-06-24
FR0954307A FR2947355B1 (en) 2009-06-24 2009-06-24 METHOD AND DEVICE FOR INTEGRATING HETEROGENEOUS APPLICATIONS

Publications (1)

Publication Number Publication Date
WO2010149896A1 true WO2010149896A1 (en) 2010-12-29

Family

ID=41698497

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2010/051208 WO2010149896A1 (en) 2009-06-24 2010-06-17 Method and device for integrating heterogeneous applications

Country Status (2)

Country Link
FR (1) FR2947355B1 (en)
WO (1) WO2010149896A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030225789A1 (en) * 2002-05-30 2003-12-04 Oracle International Corporation Coordinated collaboration system in an integration platform
US6742181B1 (en) * 1998-10-16 2004-05-25 Mitsubishi Denki Kabushiki Kaisha Inter-application data transmitting/receiving system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742181B1 (en) * 1998-10-16 2004-05-25 Mitsubishi Denki Kabushiki Kaisha Inter-application data transmitting/receiving system and method
US20030225789A1 (en) * 2002-05-30 2003-12-04 Oracle International Corporation Coordinated collaboration system in an integration platform

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAVID A CHAPPELL ED - CHAPPELL DAVID A: "CHARACTERISTICS OF AN ESB. SERVICE CONTAINERS AND ABSTRACT ENDPOINTS. THE ESB SERVICE CONTAINER. PROTOCOLS, MESSAGING, CUSTOM ADAPTERS, AND SERVICES. ESB INTEGRATION PATTERNS AND RECURRING DESIGN SOLUTIONS. PASSAGES", ENTERPRISE SERVICE BUS, O'REILLY MEDIA, INC, 1005 GRAVENSTEIN HIGHWAY NORTH, SEBASTOPOL, CA 95472, 25 June 2004 (2004-06-25), pages 1 - 27, XP002510405, ISBN: 978-0-596-00675-4, Retrieved from the Internet <URL:http://proquest.safaribooksonline.com/0596006756> [retrieved on 20100304] *
J. DEDIC: "Rigorous thesis: Advanced topics on system integration", MASARYKOVA UNIVERZITA, 2005, Brno, pages 1 - 108, XP002571238, Retrieved from the Internet <URL:http://is.muni.cz/th/39307/fi_r/Rigo_v1.8.pdf> [retrieved on 20100301] *

Also Published As

Publication number Publication date
FR2947355B1 (en) 2011-07-29
FR2947355A1 (en) 2010-12-31

Similar Documents

Publication Publication Date Title
US10872000B2 (en) Late connection binding for bots
US7580946B2 (en) Smart integration engine and metadata-oriented architecture for automatic EII and business integration
US7174534B2 (en) Efficient system and method for running and analyzing multi-channel, multi-modal applications
US7516103B1 (en) Method and apparatus for facilitating electronic acquisition and maintenance of goods and services via the internet
US20030051066A1 (en) Method and system for deploying an asset over a multi-tiered network
US20050086360A1 (en) Methods and systems for real time integration services
US20030229884A1 (en) Interaction manager template
US20030078958A1 (en) Method and system for deploying an asset over a multi-tiered network
US11755461B2 (en) Asynchronous consumer-driven contract testing in micro service architecture
EP1768023A1 (en) System for implementing a business application
US8620774B1 (en) Automated marketplace management service
EP2169569B1 (en) Method and system for communication between distinct web applications
JP7087098B2 (en) Systems and methods to generate predictive-based GUIs to improve GUI response times
WO2007141446A1 (en) System for managing a multimodal interactive service
Indrasiri et al. Integrating microservices
WO2010149896A1 (en) Method and device for integrating heterogeneous applications
EP0685802A1 (en) Information system for consulting centralized information originating from operational applications
FR2888069A1 (en) METHOD OF EXCHANGING DATA BETWEEN A SERVER AND A CUSTOMER, SYSTEM SERVER COMPRISING THIS SERVER, CUSTOMER OF THIS SYSTEM, PROGRAMS FOR A COMPUTER FORMING A SERVER AND A COMPUTER FORMING A CLIENT
US11829952B1 (en) Resource management system
FR2848759A1 (en) Client and application server communicating method for e.g. financier computer system, involves converting call responses written in client or application format into format written in multi-channel multi-application server format by string
Kodali the design and implementation of an e-commerce Site for online book sales
WO2004039039A1 (en) Method for communication between servers and device therefor
FR3083891A1 (en) METHOD FOR EXCHANGING DATA IN A SERVER AND A PLURALITY OF CUSTOMER CONNECTED TERMINALS
WO2004057825A2 (en) Method for communication between servers with data format conversion and device therefor
Aschenbrenner Service-Oriented Database Architecture

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10734510

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10734510

Country of ref document: EP

Kind code of ref document: A1